Skip to content

Commit

Permalink
Moved Roadmap to it's own file and structured it as Gleam's (#202)
Browse files Browse the repository at this point in the history
  • Loading branch information
igaray authored Mar 3, 2025
1 parent a113f03 commit cca5d8c
Show file tree
Hide file tree
Showing 2 changed files with 65 additions and 55 deletions.
60 changes: 5 additions & 55 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,11 @@ In the realm of low-level programming, language safety, performance and simplici

Writing good code should be easy. The language must be simple enough to fit in a single person’s head. Programs are about transforming data into other forms of data. Code is about expressing algorithms, not the type system. We aim to develop a simpler version of Rust that includes an optional default runtime featuring green threads and a preemptive scheduler, similar to those found in Go and Erlang.

## Roadmap

Check out our feature roadmap [here](ROADMAP.md)
For a detailed view of current status check the [project](https://github.com/orgs/lambdaclass/projects/23).

## Installing from Source

Building is as simple as cloning this repository and running the `make build` command, provided you have all the needed dependencies.
Expand Down Expand Up @@ -232,61 +237,6 @@ The design was very heavily influenced by all these programming languages:
- [Nim](https://nim-lang.org/)
- [Acton](https://www.acton-lang.org)

## Roadmap

For a full roadmap check the [project](https://github.com/orgs/lambdaclass/projects/23).


Meaning:
- ✔️ = implemented
- 🏗️ = work in progress
- :x: = work not started yet
- 🤔 = to be defined

Builtin Features:
- if/else ✔️
- while ✔️
- modules ✔️
- imports ✔️
- floats ✔️
- borrowing ✔️
- structs ✔️
- casts ✔️
- for 🏗️
- ffi 🏗️
- linear type checker 🏗️
- impl block 🏗️
- generics 🏗️
- enums :x:
- match :x:
- borrow checker :x:
- traits :x:
- unsafe :x:

Standard lib features:
- arrays 🏗️
- iterators :x:
- option :x:
- box :x:
- rc (for cyclical data structures like graphs) :x:
- operating system threads with move only semantics :x:
- rayon-like :x:

Post-runtime features:
- runtime with preemptive green threads :x:
- erlang like profiling :x:
- erlang like tracing :x:
- erlang like observer :x:
- standard library :x:
- gleam otp like library patterns :x:
- http server :x:
- json :x:
- sql server :x:
- serde replacement :x:
- rustler like binding generator to call rust code :x:
- embeddable concrete (no allocator, first-class support for no standard library, etc) :x:
- capabilities 🤔

## Benchmarking

There are some simple program benchmarks against Rust.
Expand Down
60 changes: 60 additions & 0 deletions ROADMAP.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
# Concrete Roadmap

Legend:
- ✔️ = implemented
- 🏗️ = work in progress
- :x: = work not started yet
- 🤔 = to be defined

## In Progress
Builtin Features:
- generics 🏗️
- stdlib support 🏗️

Standard lib features:
- arrays/vectors 🏗️

## Done
Builtin Features:
- if/else ✔️
- while ✔️
- modules ✔️
- imports ✔️
- floats ✔️
- borrowing ✔️
- structs ✔️
- casts ✔️

## Planned
- enums :x:
- match :x:
- for :x:
- ffi :x:
- linear type checker :x:
- impl block :x:
- borrow checker :x:
- traits :x:
- unsafe :x:
- iterators :x:
- option :x:
- box :x:
- rc (for cyclical data structures like graphs) :x:
- operating system threads with move only semantics :x:
- rayon-like :x:

Post-runtime features:
- runtime with preemptive green threads :x:
- erlang like profiling :x:
- erlang like tracing :x:
- erlang like observer :x:
- standard library :x:
- gleam otp like library patterns :x:
- http server :x:
- json :x:
- sql server :x:
- serde replacement :x:
- rustler like binding generator to call rust code :x:
- embeddable concrete (no allocator, first-class support for no standard library, etc) :x:

## Research
- capabilities 🤔

0 comments on commit cca5d8c

Please sign in to comment.