
Gambit in Emacs in the browser - aerique
https://feeley.github.io/gambit-in-emacs-in-the-browser/
======
jpolitz
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
This is hilariously awesome! Aparently it's using ymacs (which I didn't know
about until now) [http://www.ymacs.org/](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
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
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.

------
nmcfarl
The code is here: [https://github.com/feeley/gambit-in-emacs-in-the-
browser/tre...](https://github.com/feeley/gambit-in-emacs-in-the-
browser/tree/gh-pages)

------
mike_ivanov
This thing just has killed my browser.

~~~
psibi
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.

------
smlacy
What's Gambit? Links like this without context aren't useful.

~~~
tokenrove
It's an excellent Scheme implementation:
[http://dynamo.iro.umontreal.ca/wiki/index.php/Main_Page](http://dynamo.iro.umontreal.ca/wiki/index.php/Main_Page)

I agree with your sentiment in general, although I feel Gambit is pretty well-
known, especially because of its merits for application delivery.

------
asolove
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.

------
nodivbyzero
Why did you create it?

