Austin Zheng
Austin Zheng
I don't think I can implement a proper STM system. However, a decent approximation that might serve for low-traffic purposes follows: A `ref` is represented by a reference type (type...
The way Xcode handles dependencies between projects is a shambling dumpster fire. Take some time to figure out exactly what needs to be done so people who want to build...
Compatibility with SwiftPM should be explored in tandem with efforts to make the codebase portable. It's not really clear right now what Swift 2.2's story for dylibs in conjunction with...
Project's not dead; I've just been dealing with many personal things. Before any serious rearchitecting can be done, the project needs to refactored so that it: - Can be built...
Add support for atoms. To quote the ClojureScript documentation: "Clojure's model of values, state, identity, and time is valuable even in single-threaded environments." However, atoms should be built in a...
The `attempt` special form should be replaced by a proper try-catch-finally, with reified exceptions holding `EvalError`s and the ability to catch specific error types. This is necessary for building `binding`...
Add support for the inline function reader macro (e.g. `#(doSomething %0 %1)`). Expanding this macro is relatively straightforward, with the caveat that the expander needs to know know many `%n`...
Support for `future` should be feasible via GCD. This is an experimental feature. It may also be possible to extend this feature to support `promise` and `deliver`.
The error system is tolerable right now, but could be significantly better. In particular, decent stacktraces should be possible via the interpreter's Context stack system. Not sure if line info...
One of Clojure's most powerful features is pattern-based destructuring in the argument vectors for `let` and `fn`: http://blog.jayfields.com/2010/07/clojure-destructuring.html Figure out how it works and implement.