Red,
It sounds awesome. I've often wondered how hard it would be to get a PS REPL running inside Emacs.
Would this project be relevant to the effort? Or is it supplanted by your stuff?
http://js-comint-el.sourceforge.net/
Daniel
On Thu, Jul 1, 2010 at 11:58 AM, Red Daly reddaly@gmail.com wrote:
Dearest Meta Javascripters,
I have written a library for interfacing Common Lisp with the Spidermonkey Javascript engine. You may find some use in this for testing Parenscript code, or ever running Parenscript code to do some important, lisp-end task. In any case, what follows is excerpted from the README. The home page for the project is http://github.com/gonzojive/cl-spidermonkey . Contributes are of course welcome.
All the very best, Red
# CL-SpiderMonkey: Common Lisp interface to Javascript
### A Common Lisp library for interacting with Javascript through the SpiderMonkey library
## Introduction
cl-spidermonkey provides a Javascript runtime environment inside of Common Lisp by embedding a widely-used and tested Javascript engine: Mozilla's SpiderMonkey.
With full access to Javascript from Common Lisp, it becomes easier to test Javascript libraries in the same breath as normal testing. It also allows a Lisp REPL to be used as a Javascript REPL, and for many other combinations of lisp and JS.
## Installation
Before you do anything you need the git repostiory.
git clone git://github.com/gonzojive/cl-spidermonkey.git
First you need to compile Spidermonkey. It's not that bad! Just cd into the vendor directory and then run the install script:
cd vendor sh install-spidermonkey.sh
That will download and install SpiderMonkey, and set up all the paths properly.
Now you should be able to load the library in lisp:
REPL> (asdf:operate 'asdf:load-op :cl-spidermonkey)
## Usage
Right now there are only two exported symbols, so things are pretty easy:
REPL> (sm::with-js-context (context) (sm:evaluate-js "10 * 24;")) 240
Note that you can only get doubles, ints, strings, voids (undefined), nulls, and boolean values back from EVALUATE-JS. Any other object will come back as a pointer to a JS_Object whichs needs further attention from the bindings. If you are so inclined, lookat the src/spidermonkey-bindings.lisp file for more info on how to deal with native Spidermonkey objects.
parenscript-devel mailing list parenscript-devel@common-lisp.net http://common-lisp.net/cgi-bin/mailman/listinfo/parenscript-devel