Volunteers welcome! We could use your help. Here are some ideas on how you can help with the general website.
General website
It'd be nice to make the front page http://readable.sourceforge.net snazzier.
In-browser demo
It'd be nice to have in-browser demos of the various notations, as:
- A filter (so they can type stuff in and see what it means) - like sweet-filter.
- A Scheme implementation (so they can see what it's like to interact with) - like sweet-guile.
- Generating sweet-expressions from existing Lisp expressions - like iformat.
We'll need to pick a Scheme-in-Javascript implementation. Some options:
- Biwa Scheme, http://www.biwascheme.org/ - looks plausible, they have lots of test cases (so are more likely to actually work). It looks like a good implementation, but the documentation is basically non-existant, which is a big blocker. There are a few demos, and http://jcubic.wordpress.com/2010/05/17/how-to-use-biwascheme/ has some hints. The page https://github.com/biwascheme/biwascheme/wiki/Extending-Scheme-interpreter seems to be the nearest to a "how to use". It implements read(), but NOT read-char() or peek-char(), and that's a big problem.
- Whalesong http://hashcollision.org/whalesong/ - a Racket to Javascript compiler. Racket is an extended Scheme; Whalesong replaces Moby-scheme. Looks promising, but what's the license?!?
- http://wiki.call-cc.org/eggref/4/spock (Spock) - SPOCK is a compiler and runtime system running inside a JavaScript environment with support for most of R5RS Scheme. The compiler uses Henry Baker's Cheney-on-the-MTA compilation strategy. BSD license.
- http://www.bluishcoder.co.nz/jsscheme/ - no read-char, it does have read.
- http://www-sop.inria.fr/indes/scheme2js/ - A separate compiler to Javascript. GPL. Abandoned. It appears complex to setup, but there's a precompiled Java version. Now integrated into HOP language, http://hop.inria.fr/ so not really what we need. But if we just displayed translations ("sweeten" and "unsweeten") this would work. Big plus: appears to have peek-char and get-char.
- http://csel.cs.colorado.edu/~silkense/js-scheme/ - no read or read-char.
- http://code.google.com/p/js-scheme/ (GPLv3). Doesn't appear to have read or read-char.
- http://goldenscheme.accelart.jp/ - BSD-licensed Scheme. Shockingly simple and clean, would be easy to extend. Big negative: no read, no read-char, etc.
- http://tryscheme.sourceforge.net/ - (get-char) seems to exist; I only see #eof, but it may be that something needs to be hooked to it. So maybe this can work.
- http://startscheme.com/mobile - can't seem to get it to load.
- https://github.com/patrickdlogan/nconc (Nconc) - stack-friendly tail calls and full call/cc! But doesn't seem to support read-char, and in general not much in the way of documentation.
- but a full
call/cc
can help us emulate peek-char
/read-char
on a terminal emulator. Or even just delimited continuations.
Here is a list of things that translate to Javascript:
https://github.com/jashkenas/coffee-script/wiki/List-of-languages-that-compile-to-JS
Other options include:
A completely different approach would be to use http://bellard.org/jslinux/ to run Linux in Javascript, and then install a Scheme implementation.
Meta-lists:
See also the general [TODO] list.