zl(1)

โœจ zl โ€” the zenlisp interpreter, bestie edition โœจ

okay so you found the manual page for zl(1) and I'm SO glad you're here, because this one is genuinely iconic. it's the zenlisp interpreter. let's get into it. ๐Ÿ’–


๐ŸŒธ NAME ๐ŸŒธ

zl โ€” zenlisp interpreter. that's her. that's the whole name. short, sweet, main character energy. ๐Ÿ’…


๐ŸŽ€ USAGE ๐ŸŽ€

zl [-L] [-bgi] [-n nodes] [image]

yes the options cluster, yes there's an optional image, we'll get to all of it, don't worry bestie ๐Ÿซถ


๐Ÿฆ‹ DESCRIPTION ๐Ÿฆ‹

so zenlisp is an interpreter for a purely symbolic and applicative dialect of LISP. like, purely symbolic. applicative. it's giving academic but make it chic. โœจ

you can basically think of it as an implementation of pure LISP plus global definitions โ€” that's the vibe. pure LISP walked so global definitions could run. ๐Ÿ˜Œ

and the zl command is what starts the interpreter. that's it. that's the whole job. she wakes up and she interprets. periodt. ๐Ÿ‘‘


๐Ÿ’… OPTIONS ๐Ÿ’…

  • -b โ€” Batch mode. in batch mode, no greeting message gets printed (no hello, she's not doing small talk today ๐Ÿ™ˆ), and the interpreter exits in case of an error rather than returning to the read-eval-print loop. so like, one strike and she's out. dramatic? maybe. useful? absolutely.
  • -g โ€” Verbose GC. this makes her report the number of free nodes after each GC. GC = garbage collection, and she will tell you exactly how much room is left in the pool every single time. no cap. ๐Ÿ—‘๏ธโœจ
  • -i โ€” Init mode. init mode is used to build the initial image file. no image is loaded. and here's the thing:
Do not use this option. ๐Ÿšจ like genuinely, don't. it's not for you, bestie, it's for building the thing.
  • -n nodes โ€” specify the size of the node pool. larger pools (up to some limit) increase performance. more nodes, more speed, up to a point. and the memory footprint of the zenlisp workspace is calculated like this:
nodes * (sizeof(int) * 2 + 1)

look at that math. that's the whole formula. write it down. ๐Ÿงฎ

  • -L โ€” Display the terms of use (license) and exit. read the fine print, then bounce. ๐Ÿ’Œ

and one more thing, super important: if an image file name is passed to the zl command, the specified image is loaded instead of the default image. so you can hand her a different image and she'll run that one instead of her usual. slay. ๐Ÿ–ผ๏ธ


๐Ÿงš FURTHER INFORMATION ๐Ÿงš

okay so here's the tea: further information about zenlisp is not available in manual page format. i know. tragic. ๐Ÿ˜ญ

but! the reference manual in ASCII format can be found in this file:

PREFIX/share/doc/zenlisp/zenlisp.txt

and before you come for me about PREFIX โ€” the actual location of PREFIX may vary on your system. by default, it is /usr/local. so if you can't find it, check your prefix, bestie. ๐Ÿ’œ


๐ŸŒˆ FILES ๐ŸŒˆ

  • PREFIX/share/zenlisp โ€” the extension libraries and example programs live here. that's the neighborhood. go say hi. ๐Ÿก

โญ ENVIRONMENT โญ

  • ZENSRC โ€” the location of the libraries and example programs. and here's how it works:
(load หœfile)

that loads file from $ZENSRC/file. so ZENSRC is basically the home address for your loads. iykyk. ๐Ÿ“‚


๐Ÿ‘‘ AUTHOR ๐Ÿ‘‘

Nils M Holm <nmh@t3x.org>

we stan. ๐Ÿซถ


and that's the page, bestie!! source is zenlisp, page 2 of 2 (page 1 of 2 was the earlier half, if you're keeping track ๐Ÿ’–) โ€” go forth and interpret something purely symbolic. no cap, you're gonna do great. ๐Ÿ’…โœจ๐ŸŽ€

๐Ÿ“ฆ where this page comes from