top | item 8680589

Gambit in Emacs in the browser

66 points| aerique | 11 years ago |feeley.github.io | reply

14 comments

order
[+] jpolitz|11 years ago|reply
The best thing about this is that there is emulated thread management via setTimeout going on underneath to allow for Ctrl-C and other interactivity while things are running. No background workers, no running things on the server, this is some single-page engineering goodness.

It implements proper tail calls, too, so it looks like you can run `(define (f) (f)) (f)` forever.

Cool stuff, this is one of the most robust single-page REPL experiences I've seen.

[+] alcoholiday|11 years ago|reply
This is hilariously awesome! Aparently it's using ymacs (which I didn't know about until now) http://www.ymacs.org/ for the 'emacs'and an emscripten compiled version of Gambit (scheme).

So wrong, yet so right. I would hire this guy.

(working swell in Chrome)

[+] feeley|11 years ago|reply
I'm glad you guys appreciate the hack value! I'm personally amazed at Mihai Bazon's work on ymacs. By the way, if you want to drive the DOM from Scheme, there's the builtin function jseval:

(jseval "alert('hello')")

[+] JasonFruit|11 years ago|reply
Interacting with the REPL directly works for a few forms, and then it seems to get confused, interpreting output as part of the next form (I'm on Chrome for Linux version 38.0.2125.104 (64-bit)). However, when I open a buffer and write the Scheme over there, sending expressions as I usually do when developing, it works beautifully. An example:

    > (display "help!")
    help!>(newline)
    *** ERROR IN (console)@2.1 -- Unbound variable: help!>
That problem aside, this is really, really cool, and I enjoyed playing with it using a separate buffer.
[+] mike_ivanov|11 years ago|reply
This thing just has killed my browser.
[+] psibi|11 years ago|reply
Can confirm it on Firefox 33.1 in Linux. The memory usage shot upto 98% and swap got filled by 50%. Had to kill the process.
[+] TomDavey|11 years ago|reply
What browser is that? I'm using Firefox 33.1.1 on Windows 7 and it's working fine, although I've just begun to explore the app. I'm not trying to deliberately break it.

So far this is rather impressive. A Scheme REPL in the browser, not bad!

Edit: I meant Firefox 33.1.1, not 31.1.1.

[+] agumonkey|11 years ago|reply
Needs at least 2GB of available ram to build (5-10 secs on a Core2Duo laptop)

ps: Firefox Nightly 37a / Archlinux / 4GB

[+] smlacy|11 years ago|reply
What's Gambit? Links like this without context aren't useful.
[+] erikcw|11 years ago|reply
Agreed in principle. In this case it looks like a Gambit Scheme REPL.
[+] asolove|11 years ago|reply
Does it have tail calls, dynamic-wind, and hygienic macros? If so, I have a very interesting use for this in creating visualizations of microkanren execution traces.