Remix.run Logo
sieve 4 hours ago

A replacement for python.

- The base is a freestanding register VM deeply tied to the Linux kernel.

- It supports a set of primitives types, array types and record types.

- Concurrency is Erlang-ish --- an M:N scheduler that can manage tens of thousands of green processes. VM uses instruction fuel to preempt processes.

- GC is Cheney for the nursery + M&S for the rest. Each process has its own GC.

- tailcall support.

- first class functions.

- Phase One will only have Vm0, which is clean (it has access to a bounded set of Linux syscalls). Will think about Vm1 that handles the libc infection later.

- JIT is not on the table in Phase One.

- The language is statically typed and borrows syntax from python extensively, but drops OOP entirely.

- OOP is faked using UFCS.

- Operator overloading is supported.

- Exceptions are the default error handling mechanism. There are two hierarchies: Fault and Error. Fault cannot be trapped without rethrowing. Fault WILL crash the VM.

- It is being developed in private right now. As I am User # 0, all the choices I make reflect my own opinions and biases. I might release the code as OSS once the core is stabilized.

- I have done very basic microbenchmarking and the VM is so much faster than python right now that it is not a fair comparison anymore. I can also create and iterate over massive primitive arrays with ease. The principal comparison should be C, and here it is consistently about 8x slower and that performance profile will probably remain constant because dispatch has a real cost that cannot be magically wished away. I will be very happy with 5/6x.