Scheme interpreter written in JavaScript
Clone or download
Pull request Compare This branch is 11 commits behind biwascheme:master.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
bin
demo
doc
release
src
test
tools
tuplespace
website
.gitignore
.npmignore
CNAME
History.txt
MIT-LICENSE.txt
Makefile
README.md
TODO.mkd
VERSION
config.ru
favicon.ico
index_.html
local_website.js
package.json

README.md

BiwaScheme

biwascheme logo

BiwaScheme is a Scheme interpreter written in JavaScript.

Works with web browsers (including mobile devices) and Node.js.

Demos

see http://www.biwascheme.org/

Download

How to use

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>

How to use with node.js to run a biwa script

  1. $ npm install biwascheme

  2. create a file a.scm:

    (display "Hello, world!") (newline)

  3. $ biwas a.scm

How to use from inside node.js as a module

  1. $ npm install biwascheme

  2. create a file server.js:

    var BiwaScheme = require("biwascheme"); BiwaScheme.run("(+ 1 2)"); // or // BiwaScheme.run_file("a.scm");

  3. $ node server.js

Files

  • release/
    • the following files are generated here with $ make
      • biwascheme.js
      • biwascheme-min.js
      • node_biwascheme.js
  • 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.)
  • test/
    • Unit tests
  • tuplespace/
    • (experimental) TupleSpace implemented in Scheme
  • web/
  • www.biwascheme.org.js
    • web server

Building biwascheme.js

Prerequisites:

  • make
  • sed
  • node (Node.js)
  • uglifyjs ($ npm install uglify-js -g)

Make compiles src/*.js into release/biwascheme.js.

$ make

Links

Development memos

How to add a new file

  • edit Makefile
  • edit src/development_loader.js

How to release

(moved to doc/dev/release.md)

How to upgrade dependencies

jQuery:

  • update src/deps/jquery.js

underscore:

  • update src/deps/underscore.js
  • update node_modules/biwascheme/package.json

underscore.string:

  • update src/deps/underscore.string.js
  • update node_modules/biwascheme/package.json

Website

repo: biwascheme/biwascheme.github.io.

Run local website

You can run the website locally with Node and express.

$ make
$ npm install
$ node local_website.js
$ open http://localhost:7001

License

MIT-LICENSE

BiwaScheme logo by @jcubic: Creative Commons Attribution 3.0

Acknowledgements

Contact

https://github.com/biwascheme/biwascheme

Yutaka HARA (yhara) yutaka.hara.gmail.com http://twitter.com/yhara_en