- manual parser - stl refinements - all language constructs are now Send
39 lines
1.3 KiB
Markdown
39 lines
1.3 KiB
Markdown
This document is a wishlist, its items aren't ordered in any way other than inline notes about dependency relations
|
|
|
|
# Language
|
|
|
|
## Typeclasses
|
|
Elixir-style protocols probably, only with n-ary dispatch which I saw in SICP-js
|
|
|
|
# Rules
|
|
|
|
## Placeholder constraints
|
|
Simultaneously match a pattern to a subexpression and give it a name to copy it over
|
|
|
|
- Copy unique 1->1 names over by default to preserve their location info
|
|
|
|
# STL
|
|
|
|
## Command short-circuiting
|
|
Functions for each command type which destructure it and pass it to an Orchid callback
|
|
|
|
## Runtime error handling
|
|
result? multipath cps utils? Not sure yet.
|
|
|
|
## Pattern matching
|
|
This was the main trick in Orchid, still want to do it, still need to polish the language first
|
|
|
|
## Macro error handling
|
|
Error tokens with rules to lift them out. Kinda depends on preservation of location info in rules to be really useful
|
|
|
|
# Systems
|
|
|
|
## Async
|
|
Join allows to run code when a tuple of pending events all resolve on the event poller
|
|
|
|
## New: Network
|
|
Event-driven I/O with single-fire events and resubscription to relay backpressure to the OS. Initially TCP
|
|
|
|
## New: Marshall
|
|
Serialization of Orchid data, including code, given customizable sets of serializable foreign items. Alternatively, code reflection so that all this can go in the STL
|