Log in

jscl rising

I am impressed with the web-based jscl repl. Most Lisp web repls are for toy Lisps. I was so charmed that the first form I tried in JSCL, (make-package "FOO"), worked that I didn't mind that a lot of other stuff hasn't been implemented yet. I want to help hack on it to make it better!

A bunch of people have forked it on github to add more and more functionality, and I think jscl will just keep getting cooler. Good job, David Vázquez and contributors!


Hi Zach,
Take a look at this one too
At the moment it only runs on Firefox or Chrome, but it seems fairly complete.
It has a small CLOS implementation, tinyCLOS.
It even has a tiny inbuilt emacs editor with a SLIME in it.

I was quite impressed with it.

I'll look at JSCL too.

I've thought about using the internals of it to allow for a lisp in phonegap apps. Not sure if this will work, but it might. If it did, this would allow using lisp on most of the phonegap supported phones (which is most of them).

Cool! But...no make-package? :)
Hi Zach,
Hmm, yes. It is a bit different, but it's there.
From within the Ymacs slime, do

(%make-package "foo")

...and you get
PACKAGE "FOO" (with html braces that mess up this post)

This is a slightly non-standard way of making a package. I imagine one could simply make make-package which calls %make-package. the %calls are usually built from js-defun, not normal defun. A quick search of the code shows that it's closely tied to the javascript beneath.

here is his %make-package

defp("%make-package", true, function(m, nargs){
checknargs(nargs, 1, 3);
var nicknames = nargs >= 3 ? m.pop() : null;
var uses = nargs >= 2 ? m.pop() : null;
var name = as_string(m.pop());
checktype(name, LispString);
var pak = LispPackage.get(name);
LispCons.forEach(uses, function(use){
use = as_string(use);
var p = LispPackage.get_existing(use);
if (!LispPackage.is(p))
error("Cannot find package " + use);
LispCons.forEach(nicknames, function(nick){
return pak;

Edited at 2013-04-30 06:12 am (UTC)
SLip is pretty nice, but the best is Ymacs. I love it. I would like to see JSCL in it. :-)

Edited at 2013-05-01 11:39 am (UTC)