I’m just pasting this as I’m sure there are others here following the project with interest
[copy-paste update from EFF Slack] Wednesday, April 29th
Lee S. Barney
For those who are interested, here is a very brief overview of where the Silica self-hosted compiler is.
ToDos before making the Silica compiler and language repo public are:
debugging supervision trees
exceptions?? (needs to be done at least before project BEES begins). Project BEES is in ideation phase right now.
Silica-compiler is a Phase 2, self-hosted compiler (definitely pre-release). Phase 1 was the bootstrap compiler. Phase 3 is being ideated right now.
Currently only MacOS is supported.
ESP32-S3 (Xtensa LX7) is support starting.
Linux on AArch64 starting soon (as soon as MacOS is ready).
Linux on x86-64 starting soon (volunteers? If not, after).
All supporting of these are being considered for being done as part of the Phase 2 compiler due to time constraints.
progress.txt
1)Numeric types: int8, int16, int32, int64, uint8, uint16, uint32, uint64, float16, float32, float64
2)Booleans (true/false) and unit
3)Characters and UTF-8 string literals with standard escapes
4)Atoms (:…)
5)Line and block comments
6)Operators: arithmetic, comparison, logical, binding
7)Filename-based modules with module, use/export
8)Named fn declarations with explicit parameter and return types
9)Structural tuples and tuple patterns
10)Inline record (“struct”) types and literals, field access .field, struct patterns
11)Recursive functions and tail-oriented control flow (case, tail_call-style codegen)
12)ignore '_'
13)case...of with guards
14)Trait declarations and impl … for …
15)Explicit effect lists on pure/sequence/produces procedural blocks (sequence … produces …)
16)Memory model surface: regions, ref, buf, typed memory spaces, mem/alloc_region/read_ref/write_ref-class operations (with staged lifetime guarantees)
17)Immutable List[T, Space] (constructors, literals, matching)
18)Actor concurrency: actor_ref, spawn, call, cast; behavior signatures; mandatory expr impl ActorMessage {} marker on message payloads
19)Growable-stack–visible ergonomics: region ownership at actor spawn (moved_region checking), get_actor_memory_usage
20)Supervisors: Supervisor trait marker, spawn_linked, declarative supervision trees, start_child, restart strategies (:one_for_one, :one_for_all, :rest_for_one), restart policies (:permanent/:temporary/:transient), escalation / restart-frequency limits as in completed supervisor phases
21)wait_for_exit/0 blocks until root supervisor exits or recieves exit from the commandline
Project BEES(BEAM Elastic Execution Surface)
https://github.com/yenrab/project-bees