[parenscript-devel] Project announcement: cl-spidermonkey

Red Daly reddaly at gmail.com
Tue Jul 13 06:56:39 UTC 2010


On Sat, Jul 3, 2010 at 4:36 PM, Daniel Gackle <danielgackle at gmail.com> wrote:
> 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

It looks like 3b's slime-proxy project is the most relevant.
js-comint-el seems better for a js runtime operating outside of a host
lisp.

I would love to see a Parenscript mode that interacts gracefully with SLIME.

For me it would be ideal to have a SLIME-derived mode for editing
.paren files, and a SLIME-derived Parenscript REPL that interacted
with the host lisp.  The REPL may evaluate Parenscript forms in a
CL-SPIDERMONKEY environment, or it may push compiled code into a web
client via the WebSocket API[1] or some other means--it's really up
the host lisp.

I'm not particularly familiar with emacs lisp or SLIME, but I think
extending SLIME would be the best means of enhancing Parenscript
editing.  Slime Proxy seems like the perfect approach (
http://github.com/3b/slime-proxy )

Red

[1] http://dev.w3.org/html5/websockets/

>
> On Thu, Jul 1, 2010 at 11:58 AM, Red Daly <reddaly at 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 at common-lisp.net
>> http://common-lisp.net/cgi-bin/mailman/listinfo/parenscript-devel
>
>
> _______________________________________________
> 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