Skip to content

Latest commit

 

History

History
44 lines (34 loc) · 2.51 KB

roadmap.md

File metadata and controls

44 lines (34 loc) · 2.51 KB

Halite roadmap

1. Core Language Features:

  • Paradigm: Procedural with prototypal inheritance.
  • Syntax: Minimalist and simple for readability.
  • Type System: Strong, static, with optional type inference.
  • Memory Management: Garbage collected.
  • Concurrency: Parallelism-focused for high performance.

2. Syntax Specifics:

  • Function Definition and Call: Using func keyword for function definitions, with named arguments to allow any order of arguments during function calls.
  • Prototype Definition and Inheritance: Using prototype and extends keywords for prototype definitions and inheritance respectively.
  • Method Call: Methods called on objects using the dot (.) operator.
  • Default Argument Values: Specified using equals sign (=) followed by the default value.
  • String Interpolation: Enabled with a dollar sign ($) prefix and curly braces ({}) for variables and expressions.

3. Parallelism:

  • Fiber Definition and Control: fiber keyword to denote coroutines, with await for asynchronous operations and resume() method to control execution.

4. Module System:

  • Importing and Exporting: Explicit imports and exports using import and export keywords respectively. Aliasing and selective importing for flexibility.
  • Module Resolution: File-based and folder-based modules with a system for path resolution and package management.

5. Standard Library:

  • Extensive but Modular: Providing a wide range of functionality while allowing users to only include what they need.

6. Error Handling:

  • Python-like Error Handling: Using a try-catch mechanism.

7. Tooling:

  • Debugging and Profiling: Essential tools for debugging and profiling included.
  • Build Systems: Multiple build systems for easy library management, possibly with a tool similar to rustup.
  • Package Management: A mechanism to easily download and manage third-party libraries.

8. Interoperability:

  • Transpilation: Allowing transpilation to other languages for broader usability.

9. Deployment:

  • Standalone Executables: Targeting standalone executable deployment.

10. Community and Ecosystem:

  • Community-Driven: Fostering a community-driven ecosystem for library development and support.

11. Compiler:

  • Implementation: The compiler will be implemented in JavaScript on Bun, with PEG.js.