[parenscript-devel] Project announcement: cl-spidermonkey

Vladimir Sedach vsedach at gmail.com
Thu Jul 1 19:39:26 UTC 2010


This is pretty cool. I'm going to start a parallel test suite for
Parenscript based on cl-spidermonkey.

Thanks,
Vladimir

2010/7/1 Red Daly <reddaly at gmail.com>:
> 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 at common-lisp.net
> http://common-lisp.net/cgi-bin/mailman/listinfo/parenscript-devel
>




More information about the parenscript-devel mailing list