wasm-effect-handlers
pymen
wasm-effect-handlers | pymen | |
---|---|---|
1 | 4 | |
30 | 12 | |
- | - | |
2.0 | 0.0 | |
almost 2 years ago | 12 months ago | |
WebAssembly | JavaScript | |
GNU General Public License v3.0 or later | BSD 2-clause "Simplified" License |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
wasm-effect-handlers
-
Can continuation passing style code perform well?
This won't be a very deep answer, but to connect with the original post, programming in CPS is more closely related to delimited continuations than call/cc is because the continuations are just ordinary functions in the host language, unlike call/cc continuations which are a bit more complex.
As for why delimited continuations are not more popular, many people find shift/reset a bit difficult to program with. In particular the type systems for them are a bit odd and some variants like prompt/control don't have nice type systems for them. Currently, the closely related notion of (algebraic) effect handlers is quite popular in the functional language design community as something quite similar in expressive power but more intuitive for programming and with very natural typing. The Koka language has a lot of nice introductory resources if you are interested in learning more: https://github.com/koka-lang/koka . There's even a serious proposal for adding something based on these to webassembly: https://github.com/effect-handlers/wasm-effect-handlers .
pymen
-
Pyffi – Use Python from Racket
Neat! Nicely done.
fwiw, I wrote a Lisp in Python whose sexprs ended up looking similar: https://github.com/shawwn/pymen
That’s the runtime for it, which is self hosted, so it supports that dot syntax but doesn’t actually use it in its own code. (If you add a new feature like dot syntax to a self hosted lisp, then you start using the feature, and later decide it was a bad idea, it becomes incredibly difficult to revert — So the compiler sticks to a minimal subset.
But it can run code almost exactly as you’ve written, minus the backslashes. It also has:
(for x in (list 1 2 3 4)
- The most misunderstood aspect of Python
-
Can continuation passing style code perform well?
Glad you asked. Like this: https://github.com/shawwn/pymen/blob/68b66dccc96910869ab370d...
(=defun choose-bind-test ()
What are some alternatives?
koka - Koka language compiler and interpreter
stack-overflow-import - Import arbitrary code from Stack Overflow as Python modules.
interface-types
threads - Threads and Atomics in WebAssembly
python - An interface to Python for Gambit Scheme
gc - Branch of the spec repo scoped to discussion of GC integration in WebAssembly
lumen - A Lisp for Lua and JavaScript
simd - Branch of the spec repo scoped to discussion of SIMD in WebAssembly
libpython-clj-examples - Examples using libpython-clj
reference-types - Proposal for adding basic reference types (anyref)