Comments (14)
I have long standing dream to reconstruct SICP in web format with interactive code snippets
from schism.
I'd be happy to help integrate this into https://webassembly.studio/ playground if there's interest.
from schism.
I think it's about the right time to get anyref and tail calls into chrome://flags, FWIW. I will see what I can do.
from schism.
Thanks for getting the issue fixed. I agree it'd be awesome to have a playground more like the one you listed. We could also consider something like an interactive textbook, similar to http://io.livecode.ch/learn/namin/icfp2017-artifact-auas7pp
from schism.
At this point, I think it just needs someone to take the time to do it. Schism has lambdas, garbage collection, and tail calls now, as well as better error handling, so it has significantly fewer rough edges. I think now is a pretty decent time to do this.
The one downside is that now that Schism relies on experimental Wasm features, I don't think there are any browsers that can run it without using custom flags or command line arguments.
from schism.
Hi, thanks for the bug report! It looks like what's going on is that in 336a0bc I significantly refactored the way the runtime works but never updated the playground. I'll try to get it updated, but I'm happy to review a PR if you'd rather take a stab at it.
from schism.
I will take a look. There is a chance I can restore intended logic based on this commit
from schism.
Fixed issue, but we still need a proper online playground. Please keep issue open for now
from schism.
We can start with really simple one, like playground.html
. Later we can get something more advanced, like:
- http://roman01la.github.io/threejs-cljs-playground/ which uses https://github.com/shaunlebron/parinfer-codemirror
- https://jaredforsyth.com/reepl/
- https://astexplorer.net/
from schism.
@mbebenita - That'd be awesome! What all would it take to integrate into webassembly.studio?
from schism.
So, all that would be needed is to host (as in available for download) the compiler somewhere, and then writing an example template. A contributor added support for AssemblyScript in a similar way.
WebAssembly.Studio basically has two integration points. When you click Build
, it loads build.ts
and runs the build
gulp task, and when you click Run
it loads main.html
in a sandbox. The rest is up to the template/project actually build and load the code. WebAssembly.Studio tries to emulate a local file system, so that users can easily download the project and run it locally.
A deeper integration where we add syntax highlighting, code completion, etc. for .ss
files requires more work. Luckily, that work would also benefit other embeddings of the Monaco editor which WebAssembly.Studio depends on.
from schism.
That doesn't sound too hard, and I think it'd be really useful. It might be best to wait until we get some more features, like lambdas and garbage collection, or at least label it as experimental, but I'd love to see this added to WebAssembly.Studio.
from schism.
What is blocking this?
from schism.
Any progress on getting those flags into chrome://flags
? I feel (perhaps naively?) that it brings those features one step closer to production
from schism.
Related Issues (20)
- Do we want a SchismValue or similar class?
- Bootstrapping from guile fails: "Unbound variable: %file-exists?" HOT 6
- master playground doesn't work HOT 2
- equal? should handle cyclic structures
- bug related to tail-call-indirect
- Allow multiple tests per test file
- test/list-find.ss fails HOT 1
- Guile bootstrap seems to be broken again? HOT 3
- Add macro expander
- Try µKanren as a test case
- Add support for failure tests
- Add file input ports
- First class procedures HOT 5
- Add a command to compile a file to .wasm HOT 3
- Question: What is the difference between the schism-stageN.wasm HOT 4
- Pass options to Schism.Engine as a dictionary HOT 1
- Remove `list-all-eq?` HOT 6
- README.md review: What does Schism do? HOT 2
- Add test case for string `eq?` behavior HOT 5
- Add some kind of `include-data` macro HOT 1
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 schism.