passerine
passerine copied to clipboard
A small extensible programming language designed for concise expression with little code.
The VM should be `Send`, but not `Sync`. This will most likely be resolved once we start implementing Passerine's concurrency model.
We've added two new compiler features, but haven't done much in the way of project restructuring to accommodate this change. Referencing #33, the new compiler pipeline should be: - lex...
Passerine's module system is pretty simple. At it's core, a module is defined as: ``` my_module = mod { x = 0 y = n -> x + 1 double...
**Remaining tasks copied from #52.** This PR still has a long way to go, but is getting closer to completion. Here's what's left: **Phase 1** - [X] Refactored the representation...
Currently it is:  I'd like to change it to some other more representative example of the language.
Vaporization is not yet implemented, as there are other features that need to be in place before it makes sense to add it in. Here's how we'd need to do...
I may write some ideas down for codegen for multiple backends later. Requires some sort of typed (or type-erased) low level IR format. I plan to move away from the...
Right now, this example prints 106: ```elm z = 3 f = x -> x + y + z y = 5 z = 100 println (f 1) -- 106...
I've locked down the type and effect system, but I haven't documented it anywhere. Seeing that the internet is seriously in need of an approachable explanation as to what algebraic...
https://github.com/vrtbl/passerine/blob/3796465ae108bba8b3a66f5c3ab71709a76b3fc8/src/compiler/lex.rs#L152-L158 UTF-8's ability to represent ASCII in-place allows lexers for ASCII characters to be implemented extra-efficiently by skipping decoding of utf-8 bytes. It's fine to simply scan directly through the...