bramble
LIPS
Our great sponsors
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
bramble
-
How to Learn Nix
I've been looking into Nix a lot lately (but have yet to take the leap - I'll probably start with devshell)
But a couple of projects have come up lately that piqued my interest wrt syntax and alteratives (Since I am not sure about Scheme anymore than Nix (as a langauge) :-)
* https://github.com/maxmcd/bramble
-
Ask HN: What Are You Working On?
An alternative to Nix that uses Starlark (python syntax) instead of a purely functional programming language: https://github.com/maxmcd/bramble
I struggled to climb the steep learning curve of Nix/NixOS and wondered what it would be like with a more familiar (to me) syntax.
It's been very rewarding to write. I was able to implement some ideas from the initial Nix paper that aren't present in Nix. Nix is also quite dependent on the use of the /nix/store path, but I was able to allow a user to use almost any path for their build store without sacrificing on the potential for a shared build cache. I also want to have better native support for things like building docker images, among other features.
I'm currently implementing sandboxing and finalizing some of the build structure, but hoping it'll be usable sometime soon.
LIPS
- LIPS: Powerful Scheme based Lisp interpreter in JavaScript
-
(Learn 'Scheme)
Sweet, I'll have to give that a go :)
Another option in browser land is lips[0], which exclusively targets a js backend.
[0] https://lips.js.org
-
All Web frontend lisp projects
For Scheme implementations there are LIPS and biwascheme. I haven't done more than play around with them, so I can't really give an informed opinion about pros and cons or favorites.
-
Extending a Language β Writing Powerful Macros in Scheme
Your example revealed a bug in my Scheme interpreter. This is an example that fails to match:
-
What other Scheme parser tricks do you know?
In my interpreter, LIPS Scheme, vector literal syntax is created using a syntax extension, a token that is mapped to a function or a macro. So you can use things like this:
-
How to list defined symbols?
I'm not sure about other Scheme interpreters but in my interpreter LIPS Scheme, there is (env) function that returns a list of symbols. You can also access environment objects e.g. (current-environment) return object that is used internally. And you can even access the scope chain because the env object has __parent__ property that returns the parent scope.
-
May I see some of your projects? :)
Few of my Open Source projects: * jQuery terminal * LIPS Scheme * Gaiman * Sysend * Wayne
-
Async / Await in Scheme
(define promise (--> '>(fetch "https://lips.js.org/") (then (lambda (res) (res.text))) (then (lambda (text) (. (text.match #/\s*([^>]+?)\s*<\/h1>/) 1)))))
-
Yes we are men. Men is what we are.
ngl when I first saw the headline my first thought was, βWait, bring CAR into JavaScript? Make it a Lisp? But hasn't it already been done?β
-
If you were hired to create a new distribution of Lisp, what would you include?
Languages like Biwa Scheme and LIPS Scheme are good for running Scheme in the browser. But I would prefer compiling Scheme code to JavaScript in the server, then serving the compiled JavaScript image to the browser.
What are some alternatives?
goget - π¦ A simple, good looking, go modules TUI! No more looking for the right "go get" command!
scheme-lsp-server
nix-gui - Use NixOS Without Coding
biwascheme - Scheme interpreter written in JavaScript
nonguix - Nonguix mirror β pull requests ignored, please use upstream for that
murex - A smarter shell and scripting environment with advanced features designed for usability, safety and productivity (eg smarter DevOps tooling)
bread - :bread: Install, update and remove AppImage from your CLI.
atbswp - A minimalist macro recorder
dotfiles - A collection of my dotfiles
osmosis-js - JS reference implementation of Osmosis, a JSON data store with peer-to-peer background sync
nixpkgs - Nix Packages collection & NixOS
spleeter-web - Self-hostable web app for isolating the vocal, accompaniment, bass, and drums of any song. Supports Spleeter, D3Net, Demucs, Tasnet, X-UMX. Built with React and Django.