Readit News logoReadit News
jackdaniel · 2 months ago
This is just a test page. Today I've shared an information about an accepted grant proposal:

https://functional.cafe/@jackdaniel/114742776265318353

The work will go towards improving browser integration and porting to WASI.

remexre · 2 months ago
Will this include some form of SLIME support?
jackdaniel · 2 months ago
I didn't plan explicitly for SLIME, but loading swank shouldn't be much of a problem. The missing piece would be a bridge between a websocket and tcp I think.
deosjr · 2 months ago
I recently shared a project I did using Hoot, by Spritely institute. It's Guile Scheme compiling to WASM, and it works really well! See https://spritely.institute/hoot/

Latest on my project, in case you want to try it out: https://deosjr.github.io/dynamicland/whiskers.html

feeley · 2 months ago
Related:

The Gambit Scheme REPL that comes with a tutorial, supports threads in the browser and has a JS FFI: https://try.gambitscheme.org

Gambit in emacs in the browser: https://feeley.github.io/gambit-in-emacs-in-the-browser/

mishoo · 2 months ago
Hey, nice to see Ymacs is still used somewhere else than on my website :)

I don't know if you've been tracking it lately, but there was a big overhaul last year [1]. The version in your second link doesn't seem to work in current Firefox. If you'd like to update and need any help, please feel free to get in touch. (also, there's still some of your code in Ymacs :) although I kinda broke filename completion...)

[1] https://lisperator.net/blog/ymacs-reloaded/

jinlisp · 2 months ago
This is another comment of the author about maxima in the browser from four months ago: I'm experimenting with WASI and the GC extension for WASM, but that's months from today if we speak about complete port (given my time capacity at the moment). Don't know if the gc extension is used in this example.
jinlisp · 2 months ago
I was going to ask if maxima (a symbolic computation system) can be implemented in the browser, but it was answered four months ago [1]

[1] https://news.ycombinator.com/item?id=42853528

mixedmath · 2 months ago
Do you use maxima? Would you say it's still worth using and learning?
jinlisp · 2 months ago
It depends of what you need, but for example for calculus is a nice program. There is also sympy and Wolfram Mathematica. For symbolic computation I think that Mathematica is the strongest then maxima and then sympy, but sympy is based on python and I think it will get stronger. If you need numerical computation then there is octave or matlab or julia.
johnisgood · 2 months ago
Yes, I think it is worth learning. GNU units is worth learning, too. You know these math riddles? You can solve it using GNU units alone. :D
bevr1337 · 2 months ago
Why was LISP not one of the first languages able to compile to WASM? I've been curious ever since the awesome WASM project started tracking different projects. They use emojis for progress and LISP has been a hatching egg.
dmkolobov · 2 months ago
If I had to guess:

1. lack of native GC, you had to roll your own by providing a runtime.

2. lack of tail-call elimination in V1 of the spec. This essentially forces you to trampoline everything.

stassats · 2 months ago
> lack of tail-call elimination

But lisp doesn't need TCO.

no_wizard · 2 months ago
It sorta has been. As a language design it is already native via the WAT[0] which compiles to web assembly.

[0]: https://webassemblyman.com/wat_webassembly_text_format.html

bevr1337 · 2 months ago
Do you know why only sorta? My understanding is that only toy implementations exist right now but nothing production ready. I'm poking around Google and GitHub and not finding any new information.

> Implementing Lisp onto WebAssembly is so obvious that you may wonder why somebody did not have this idea long ago.

I did find this on the Femto GitHub and got a chuckle. Yes, dear author, that is exactly the piece of information I want explained. Too funny.

tempodox · 2 months ago
> Are we consing yet?

  > #'cons
  #<compiled-function CONS 0x43cee0>
That's a definite yes :)

jackdaniel · 2 months ago
Btw, eval (ed "wecl.lisp") to see some interesting function definitions, like canvas or webgl access drafts.