BiwaScheme is a Scheme interpreter written in JavaScript.
Works with web browsers (including mobile devices) and Node.js.
see http://www.biwascheme.org/
- http://www.biwascheme.org/repos/release/biwascheme-min.js (release version)
Just load biwascheme.js (or biwascheme-min.js) and write Scheme code.
<!DOCTYPE html>
<html>
<body>
<div id="bs-console"></div>
<script src="biwascheme.js">
(display "hello, world!")
</script>
</body>
</html>
-
$ npm install biwascheme
-
create a file a.scm:
(display "Hello, world!") (newline)
-
$ biwas a.scm
-
$ npm install biwascheme
-
create a file a.scm:
(display "Hello, world!") (newline)
-
create a file server.js:
var BiwaScheme = require("biwascheme").BiwaScheme; BiwaScheme.run("a.scm");
-
$ node server.js
- release/
- biwascheme.js : The latest release version, uncompressed
- biwascheme-min.js : The latest release version, compressed
- node_modules/
- Files for npm package
- demo/
- Demos
- src/
- deps/
- Dependencies (jQuery, underscore)
- system/
- Source code of the interpreter
- library/
- Built-in library functions
- platform/
- Platform dependent code (browser, node, etc.)
- deps/
- test/
- Unit tests
- tuplespace/
- (experimental) TupleSpace implemented in Scheme
- website/
- HTMLs and CSS of www.biwascheme.org
Prerequisites:
- make
- sed
- node (Node.js)
- uglifyjs ($ npm install uglify-js -g)
Make compiles src/*.js into release/biwascheme.js.
$ make
- edit Makefile
- edit src/development_loader.js
- Edit History.txt
- Edit VERSION
- Edit node_modules/biwascheme/package.json
- $ make -B
- Make sure it is working:
- run tests
- open test/spec.html
- open test/spec.html#release
- open test/spec.html#min
- run test/browser_functions/
- $ cd test/browser_functions && node server.js && open http://localhost:7001/
- run demos
- demo/*
- open repl.html
- open website/i.html
- try npm package
- $ npm install node_modules/biwascheme/ -g
- $ biwas -v
- run tests
- $ git tag x.y.z
- Push changes to github (with --tags)
- Update website ($ git pull)
- Copy generated files (release/) to web server
- Publish npm package
- $ npm publish node_modules/biwascheme/
MIT-LICENSE
-
Kent Dyvbig, Three implementation models for scheme
-
jsScheme
- http://alex.ability.ru/scheme.html (inavailable)
-
ExplorerCanvas (demo/excanvas.js)
https://github.com/biwascheme/biwascheme
Yutaka HARA (yhara) yutaka.hara.gmail.com http://twitter.com/yhara_en