[HN Gopher] Show HN: Now my pet programming language can run in ...
___________________________________________________________________
Show HN: Now my pet programming language can run in the browser
Author : nbittich
Score : 53 points
Date : 2024-02-10 14:36 UTC (8 hours ago)
(HTM) web link (nbittich.github.io)
(TXT) w3m dump (nbittich.github.io)
| mcdonje wrote:
| Got a blog post about building this?
| simonw wrote:
| It's not a blog post but the GitHub Actions workflow that
| deploys that site has some clues
| https://github.com/nbittich/adana/blob/42d167b1d04ad2e2f4045...
| ZoomerCretin wrote:
| Ah. I was curious about the Rust-style function returns (just
| having the name of the variable on the last line without a
| "return" statement or keyword), but knowing that the language
| is written in Rust answers my question of why that design
| decision was made ;)
| nbittich wrote:
| I may try writing something about my experience building this
| project, I'm terrible at writing but it was so much fun, I
| think it is worth the effort :)
| Instantnoodl wrote:
| Tasty name! Great work :) I'm sure that was a lot of fun to build
| nbittich wrote:
| Thank you :)
| beardyw wrote:
| I think there is a role for a scripting language in the browser
| akin to scripting in a spreadsheet. Sadly I don't see an accepted
| standard. Key would be what it can't do (access the document
| model, access the internet etc), not so much what it can.
| javajosh wrote:
| I agree, but I imagine there either is or will be a js-in-wasm
| project that can suitably truncate the environment. Not that js
| is actually not good at this sort of application (triple equals
| get old fast), but people already know it.
|
| And of course there's lua.
| nilslice wrote:
| It may just be my own unique obsession to peek at the internals
| of .wasm, but if anyone else is curious:
|
| https://modsurfer.dylibso.com/module?hash=ab6f4b2de9db171347...
|
| u/nbittich - curious if you've tried to use your language as as a
| scripting language inside other apps? I took a peek at your
| browser wasm environment, and think we could hook up the
| `compute` entrypoint you have here[0], but I'm not certain what
| the `ctx` does without going super deep, and if it could be
| passed into an Extism function[1] (which is how I'd try to run it
| from within 16+ other languages).
|
| [0]: https://github.com/nbittich/adana/blob/master/adana-
| script-w...
|
| [1]: https://github.com/extism/extism
| nbittich wrote:
| Thank you for having a look at it! I didn't know extism, will
| definitely have a look at the readme right after I finish to
| write this comment.
|
| The ctx variable is a piece of memory, kind of the heap where
| functions and variables are stored during the script execution;
| I did it that way because I wanted to keep whatever is in that
| memory after each script execution, so in a prior version you
| could define a variable x, run the script, then re-run a
| completely different script, but still have access to the x
| variable. I removed it at the end because I wasn't sure if it
| was a good idea, or at the very least should be documented, but
| I kept the ctx thing there (could easily remove it tho)
| nilslice wrote:
| ah that makes sense! so `compute` can still execute a script
| with an empty memory (just to test things out)?
|
| feel free to join us on Discord if you'd like:
| https://extism.org/discord -- happy to chat about it there. I
| think your language embedded in a bunch of apps as a
| scripting lang (beyond Rust) would be really cool to see.
___________________________________________________________________
(page generated 2024-02-10 23:00 UTC)