Skip to content

Latest commit

 

History

History

Projects

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Projects

This directory contains all Jet-related code, excluding third-party projects.

Overview

The codebase is divided into two categories:

  • main projects (stored in this folder)
  • component libraries (stored in the Components folder)

Every project that is directly related to the Jet language is a main project. The second group consists of libraries that are used by the main projects. We are aware that as the language evolves, the number of sub-projects will increase significantly, so we decided to have the most important ones separated from the rest.

Core vs Foundation

It is important to clarify the difference between the Core and Foundation:

The Core is a common library used by other main projects that provide language-related functionality (such as module system, type system, etc.).

The Foundation is a component library with the most basic functionality that is used across the whole codebase, such as:

  • Standard library aliases (e.g., u8, i32, usize, String, Opt, etc.)
  • Result type

Summary

Here is a list of all projects in the codebase:

Main projects

Project Namespace Brief description
Libraries
Parser jet::parser::* Responsible for providing a grammar and generating AST.
Core jet::core::* Provides common, language-related functionality such as module system, type system, etc.
Compiler jet::compiler::* The base library that is used by the CompilerApp (and possibly other projects in the future)
VM (TBD) jet::vm::* (FUTURE PLAN) Implements an on-the-fly execution of the Jet code, improving compile-time capabilities of the language and providing a way to run Jet code on any platform.
Applications
CompilerApp - The app project that creates the jetc executable.
VMApp (TBD) - (FUTURE PLAN) The app project that creates the rigvm executable.
Other
Test - Tests the behavior of various components of the codebase.

Component projects

Project Namespace Brief description
Foundation jet::comp::foundation::* The most basic functionality that is used across the whole codebase, such as standard library aliases, Result type, etc.
PEG jet::comp::peg::* A custom implementation of a PEG parser generator used by the Parser project.
Format jet::comp::fmt::* Formatting library that exposes fmtlib content as a module.