Comments (20)
Don't like the idea of JSCL, I'd expect Common Lisp compiles to WebAssembly rather than interpreted in js. I think it's possible to compile embedded common lisp or clasp with emscripten. The https://repl.it use emscripten to create client side REPL for many languages (unfortunately no CL). I'll give a try this weekend. If it doesn't work well I'll try cl-Jupyter.
from paip-lisp.
I am jscl author. I could give it a try to run examples in it. If some fragment doesn't work it is actually a good reason to activate the development a bit :-)
from paip-lisp.
I'm making a programmable blog (thinking Medium.com + Jupyter Notebook ), aiming to become a platform for interactive e-textbooks. I recently added support for Clojure Script
https://epiphany.pub/@shi-yan/Test-ClojureScript
(purely browser based, no backend)
Intro: https://epiphany.pub/@shi-yan/introduction
from paip-lisp.
Hello there, Hacker News!
from paip-lisp.
Slip: missing &key etc.
@norvig support for &key
arguments could be achieved by redefining DEFUN
and LAMBDA
as macros on top of DESTRUCTURING-BIND
, for which there is a fairly complete implementation. The reason I didn't do it is that (as I mentioned) it was really slow — but it could still be okay for didactical usage. More notably, however, SLip is missing LOOP
, VALUES
and CLOS (there's a TinyCLOS-based object system, but I wouldn't expect any real CLOS examples to work with it).
BTW I meant to say that SLip started out as a playground based on chapter 23 "Compiling Lisp" from this very book. While it remained just a playground, it was still a mind-blowing experience for me to work on it. Thank you for that chapter, and for the whole book!
from paip-lisp.
I wonder how practical it'd be to compile an interpreted Common Lisp to WebAssembly. As a preliminary, I just built CLISP for x86/Linux, and it looks like the stripped native binary and the memory image add up to a bit over 6MB:
$ ls -l lisp.run lispinit.mem
-rw-r--r-- 1 parallels parallels 3140504 Apr 5 16:33 lispinit.mem
-rwxr-xr-x 1 parallels parallels 3195288 Apr 5 16:44 lisp.run
I tried to look up typical relative sizes for x86 binaries vs. WebAssembly, but didn't find it online.
from paip-lisp.
This is not exactly what you were asking: https://github.com/next-browser/next but related.
from paip-lisp.
JSCL is a start and still under development.
from paip-lisp.
JSCL looks promising! But not currently very active.
from paip-lisp.
Looks like there's at least one common lisp jupyter kernel for common lisp.
It'd still probably be a good idea to dockerize it though.
from paip-lisp.
Does anybody have experience with cl-Jupyter
? https://github.com/fredokun/cl-jupyter/blob/master/about-cl-jupyter.ipynb
from paip-lisp.
No comments about the notebook idea ? It maybe worth to try ...
from paip-lisp.
@davazp it would nice to compare the jscl approach with jupyter notebooks . The Lean Theorem Prover is using a nice tool for produzing all their documentations too
https://leanprover.github.io/theorem_proving_in_lean/
Can we adapt it to run CL?
from paip-lisp.
@davazp, that would be great -- I'm looking forward to seeing what you can do.
from paip-lisp.
That seems like too much to download over a slow connection.
from paip-lisp.
Could cl-notebook
be useful in this context? It's not fully browser-based, but I think it'd be possible to deploy a sandboxed instance somewhere (or even a set of on-demand instances).
from paip-lisp.
I have long held that Javascript is an abomination. I think that browsers should have en embedded lisp interpreter, not necessarily Common LIsp.
from paip-lisp.
I have used cl-jupyter and it worked fine for me.
from paip-lisp.
from paip-lisp.
Maybe https://github.com/viebel/klipse?
from paip-lisp.
Related Issues (20)
- Handling formulae HOT 3
- Inconsistent rewrite rules in chapter 2's rule-based grammar HOT 1
- Change "master" to "main" HOT 1
- Markdown tables HOT 13
- Upcoming: a better scan? HOT 5
- Updating images HOT 5
- Errata for queues in chapter 10
- suggestion: add an info page to ebook? HOT 2
- fix chapter links HOT 1
- code and tables
- whitespace cleanup HOT 1
- encode parentheses
- Fix up Exercise and Answer lines
- Table of contents for PDF HOT 9
- Pseudocode block formatting
- Convert PAIP.txt to PAIP.md
- so old.... HOT 2
- Chapter 8 - recursive expansion of abbreviated patterns
- CMU Python HOT 2
- texinfo version for reading in emacs
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from paip-lisp.