uwm-masters-thesis
theta-idl
uwm-masters-thesis | theta-idl | |
---|---|---|
3 | 1 | |
5 | 42 | |
- | - | |
10.0 | 0.0 | |
over 3 years ago | about 1 year ago | |
TeX | Haskell | |
- | GNU General Public License v3.0 or later |
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.
uwm-masters-thesis
-
Show HN: We are trying to (finally) get tail-calls into the WebAssembly standard
Neat! This proposal caused me a lot of headaches, mechanizing its specification was the primary contribution of my Master's thesis a couple years ago[1]. Glad to see it finally moving forward after stalling for so long! Excellent work!
[1]: https://github.com/jacobmischka/uwm-masters-thesis/releases/...
- WebAssembly 2.0 Working Draft
theta-idl
-
Show HN: We are trying to (finally) get tail-calls into the WebAssembly standard
I've found it comes up pretty often. Sometimes because the logic I'm writing demands it—traversing over some kind of nested recursive structure, for example—but more often because it makes the code easier to read. A real-world example: I have a little interface description language which can generate code in a few different target languages. I want to factor out some of the more complex logic (eg dealing with record types) into self-contained, testable functions, which means that my top-level toDefinition function needs to call toRecord, which needs to call toDefinition for each of the record's fields[1].
(Sorry if it's hard to follow the code without context, but that's the problem with examples—either they're too trivial to be interesting, or they're complex enough to be a bit confusing!)
Additionally—and maybe even more importantly—tail call elimination also makes code written in continuation-passing style (CPS) more efficient. While CPS isn't something we usually want to write by hand, a lot of common abstractions (async libraries, promises, monads) map to CPS under the hood.
[1]: https://github.com/target/theta-idl/blob/stage/theta/src/The...
What are some alternatives?
spec - WebAssembly specification, reference interpreter, and test suite.
proposal-ptc-syntax - Discussion and specification for an explicit syntactic opt-in for Tail Calls.
interface-types
WebKit - Home of the WebKit project, the browser engine used by Safari, Mail, App Store and many other applications on macOS, iOS and Linux.
meetings - WebAssembly meetings (VC or in-person), agendas, and notes
virgil - A fast and lightweight native programming language
component-model - Repository for design and specification of the Component Model
go - The Go programming language
multi-memory - Multiple per-module memories for Wasm
TypeScript - TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
reference-crdts - Simple, tiny spec-compliant reference implementations of Yjs and Automerge's list types.
ecma262 - Status, process, and documents for ECMA-262