[HN Gopher] Zuo: A Tiny Racket for Scripting
___________________________________________________________________
Zuo: A Tiny Racket for Scripting
Author : homarp
Score : 52 points
Date : 2022-04-13 16:56 UTC (1 days ago)
(HTM) web link (github.com)
(TXT) w3m dump (github.com)
| Decabytes wrote:
| There is more information about the reason for this here^1 Below
| is an excerpt
|
| > As in Non-recursive Make Considered Harmful: Build Systems at
| Scale, we can build a better make. This commit mostly imitates
| Shake as described there, but in a Racket style and called "Zuo"
| (based on the Chinese word for "make"). The Zuo implementation
| started at https://github.com/mflatt/zuo, but here it's in the
| intended long-term home, racket/src/zuo.
|
| > The goal is for Racket to be be just as easy for end-users to
| build as now after converting scripts from make and /bin/sh to
| zuo. So, make should work in Racket's top-level directory, and
| configure plus make plus make install should work in a source
| directory or distribution, all with no new pre-installed packages
| required. The new makefiles will be small, however, just ensuring
| that the zuo executable is built and then handing off to Zuo
| scripts.
|
| 1. https://github.com/racket/racket/pull/4179
| [deleted]
| ciprian_craciun wrote:
| I've quickly played with it, and from what I've seen it's almost
| perfect for scripting, at least due to the following reasons:
|
| * it can be linked statically, thus it should run on any Linux
| with a simple copy; (not by default, use `LDFLAGS=-static`;)
|
| * it can embed in the binary the core library (and other
| libraries of choice), thus there is no need for other files to be
| installed; (this is not by default, but by using the `image.zuo`
| directly one can get this;)
|
| * it has minimal startup latency, almost 2x lower than Python2.7,
| and many times less than Python3.10; (this is without the extra
| libraries embedded, with the extra libraries embedded it's still
| faster than Python2.7, but not by that a large of a margin;)
|
| I haven't yet checked the available API, but it does seem to be
| quite enough for simple system related scripting.
| mhitza wrote:
| For those interested in another Scheme implementation, that
| compiles to native code, with a fair amount of community
| libraries, I recommend Chicken Scheme.
| threatofrain wrote:
| Possible contenders.
|
| https://janet-lang.org
|
| https://fennel-lang.org
| LesZedCB wrote:
| maybe babashka too? lightweight clojure with scripting
| features.
|
| https://github.com/babashka/babashka
| dmux wrote:
| And https://practical-scheme.net/gauche/index.html
| Decabytes wrote:
| I think part of the issue with using another language can be
| highlighted here
|
| > The problem with the current build system could be
| characterized as too large a gap between C and make and the
| next runnable element, which is either Chez Scheme or Racket
| BC; neither of those are simple to build. Zuo, a tiny Racket,
| is an intermediate step to bridge that gap.
___________________________________________________________________
(page generated 2022-04-14 23:02 UTC)