shithub: sl

Download patch

ref: 1f822facf681064569c550cb43f01b0e8086e7df
parent: 7a962638be50058f40d670adb61df91cf6796579
author: Sigrid Solveig Haflínudóttir <sigrid@ftrv.se>
date: Thu May 1 21:58:39 EDT 2025

regen boot image

--- a/boot/sl.boot
+++ b/boot/sl.boot
@@ -46,7 +46,7 @@
   group vm) "VM-related functions."  assoc "Return a pair of a matching key and the associated value, or `NIL` if\nnone matched.  Keys are compared using `equal?`.\n\nExamples:\n\n    (def L (assoc-list 'a 0 'b 1))\n    (assoc 'b L) → (b . 1)\n    (assoc 'c L) → NIL"  > "Return `T` if the arguments are in strictly decreasing order (previous\none is greater than the next one)."  + "Return sum of the arguments or `0` when none specified."  (doc
   group number) "Operating numbers."  cadadr "Shorthand for (car (cdr (car (cdr lst))))."  caddr "Shorthand for (car (cdr (cdr lst)))."  (doc
   group rand) "Random numbers generation."  abs "Return absolute value of the argument."  compare "Return -1 if `x` is less than `y`, 0 if equal, and `1` if `y` is\ngreater than `x`.\n\nExamples:\n\n    (compare 'a 'b)   → -1\n    (compare 1 1)     → 0\n    (compare \"b\" \"a\") → 1"  add-exit-hook "Puts an one-argument function on top of the list of exit hooks.\n\nOn shutdown each exit hook is called with the exit status as a single\nargument, which is (usually) `NIL` on success and a string describing\nan error otherwise."  str? "Return `T` if the argument is a string, `NIL` otherwise."  doc-group "Define documentation for a group."  cons? "Return `T` if `v` is a cons cell, `NIL` otherwise.\n\nExamples:\n\n    (cons? 0)    → NIL\n    (cons? NIL)  → NIL\n    (cons? '(1)) → T"  keyword? "Return `T` if the argument is a keyword, `NIL` otherwise."  cdaaar "Shorthand for (cdr (car (car (car lst))))."  even? "Return `T` if `v` is an even integer, `NIL` otherwise."  aref "Return the sequence element specified by the subscripts.  The sequence\ncan be an array, vector, a list.  Multi-dimensional sequences\nof variating types are also supported.\n\nExamples:\n\n    (def a '((1 #(2 (3)) 4)))\n    (aref a 0)     → (1 (2 (3)) 4)\n    (aref a 1)     → index 1 out of bounds\n    (aref a 0 0)   → 1\n    (aref a 0 1 0) → 2\n    (aref a 0 2)   → 4"  *properties* "All properties of symbols recorded with `putprop` are recorded in this\ntable."  zero? "Return `T` if `v` is zero."  >= "Return `T` if the arguments are in non-increasing order (previous\none is greater than or equal to the next one)."  sym? "Return `T` if `v` is a symbol, `NIL` otherwise."  void? "Return `T` if `x` is `#<void>`, `NIL` otherwise."  proper-list? "Return `T` is the value is a proper list.  That is, a non-circular\nlist with the last element being `NIL`, as opposed to a dotted list.\n\nExamples:\n\n    (proper-list? NIL)      → T\n    (proper-list? '(1))     → T\n    (proper-list? '(1 . 2)) → NIL\n    (def l '(1))\n    (set-cdr! l l)          → #0=(1 . #0#)\n    (length l)              → +inf.0\n    (proper-list? l)        → NIL"  length= "Perform a bounded length test.\n\nUse this instead of `(= (length seq) n)`, since it avoids unnecessary\nwork and always terminates."  int? "Return `T` if the argument is an integer, `NIL` otherwise."  random "Return a random number in the range `[0, max]` (inclusive).\n\nThe result is either an integer or a floating point number, depending\non the type of the `max` argument.\n\nExamples:\n\n    (random 1)   → 1\n    (random 1.0) → 0.69517"  doc-for "Define documentation for a top level term.\n\nIf `term` is a function signature and `doc` is not specified, just\nthe signature will be included in the documentation, without\nreplacing any previously defined.\n\nFirst `doc` argument is supposed to be a string with the description\nof the term.  The following arguments are expected to be optional tag\npairings that provide grouping for multiple symbols and \"see also\"\nreferences.\n\nUseful in cases where setting the documentation for a term can't\n(or not preferred to) be made during the definition of said term.\nOne of those reasons is that the term is a built-in function\nimplemented in C.\n\nExamples:\n\n    (doc-for (func arg (arg2 0))\n      \"Return something about the `arg` and `arg2`.  This is a short\n       description.\n\n       This is the longer description, following the short one.\n\n       Examples:\n\n           (func 0)   → T\n           (func 1 3) → NIL\"\n      :doc-group stuff\n      :doc-see func2)\n    (doc-for (func arg (:another-variant NIL)))"  aset! "Modify the sequence element specified by the subscripts and return the\nnew value.  The sequence can be an array, vector, a list.\nMulti-dimensional sequences of variating types are also supported.\n\nExamples:\n\n    (def a '((1 #(2 (3)) 4)))\n    (aset! a 1 'x)     → index 1 out of bounds\n    (aset! a 0 0 'x)   → x\n    a                  → ((x #(2 (3)) 4))\n    (aset! a 0 1 9)    → 9\n    a              
\ No newline at end of file
-    → ((x #(9 (3)) 4))"  T "A boolean \"true\".\n\nExamples:\n\n    (not T)         → NIL\n    (if T 'yes 'no) → yes"  car "Return the first element of a cons cell (head of a list) or `NIL` if\nnot available.\n\nExamples:\n\n    (car NIL)      → NIL\n    (car '(1 2 3)) → 1\n    (car '(1 . 2)) → 1"  <= "Return `T` if the arguments are in non-decreasing order (previous\none is less than or equal to the next one)."  cons "Return a cons cell containing two arguments.\n\nExamples:\n\n    (cons 1 2)                     → (1 . 2)\n    (cons 1 '(2))                  → (1 2)\n    (cons 1 (cons 2 (cons 3 NIL))) → (1 2 3)"  cdaadr "Shorthand for (cdr (car (car (cdr lst))))."  - "Return the result of subtraction.  With only one argument a\nnegation is performed.\n\nExamples:\n\n    (- 1.5) → -1.5\n    (- 3 2) → 1"  rand "Return a random non-negative fixnum on its maximum range."  assq "Return a pair of a matching key and the associated value, or `NIL` if\nnone matched.  Keys are compared using `eq?`."  most-positive-fixnum "A constant value closest to infinity that can be represented by\nfixnum type on this particular platform."  Instructions "VM instructions mapped to their encoded byte representation."  assv "Return a pair of a matching key and the associated value, or `NIL` if\nnone matched.  Keys are compared using `eqv?`."  cdaddr "Shorthand for (cdr (car (cdr (cdr lst))))."  (doc
+    → ((x #(9 (3)) 4))"  T "A boolean \"true\".\n\nExamples:\n\n    (not T)         → NIL\n    (if T 'yes 'no) → yes"  car "Return the first element of a cons cell (head of a list) or `NIL` if\nnot available.\n\nExamples:\n\n    (car NIL)      → NIL\n    (car '(1 2 3)) → 1\n    (car '(1 . 2)) → 1"  <= "Return `T` if the arguments are in non-decreasing order (previous\none is less than or equal to the next one)."  cons "Return a cons cell containing two arguments.\n\nExamples:\n\n    (cons 1 2)                     → (1 . 2)\n    (cons 1 '(2))                  → (1 2)\n    (cons 1 (cons 2 (cons 3 NIL))) → (1 2 3)"  cdaadr "Shorthand for (cdr (car (car (cdr lst))))."  - "Return the result of subtraction.  With only one argument a\nnegation is performed.\n\nExamples:\n\n    (- 1.5) → -1.5\n    (- 3 2) → 1"  rand "Return a random non-negative fixnum on its maximum range."  assq "Return a pair of a matching key and the associated value, or `NIL` if\nnone matched.  Keys are compared using `eq?`."  most-positive-fixnum "A constant integer closest to positive infinity that can be\nrepresented by fixnum type on this particular platform."  Instructions "VM instructions mapped to their encoded byte representation."  assv "Return a pair of a matching key and the associated value, or `NIL` if\nnone matched.  Keys are compared using `eqv?`."  cdaddr "Shorthand for (cdr (car (cdr (cdr lst))))."  (doc
 \n    (def a \"1\")\n    (def b \"1\")\n    (eqv? a b)   → T\n    (def a '(1))\n    (def b '(1))\n    (eqv? a b)   → NIL"  io? "Return `T` if `term` is of `io` type, `NIL` otherwise."  eof-object? "Return `T` if the argument is `#<eof>`, `NIL` otherwise.\n\nThis object is returned by I/O functions to signal end of file,\nwhere applicable."  list "Return a list constructed of the arguments.\n\nExamples:\n\n    (list)              → NIL ; empty list\n    (list 1 2.5 \"a\" 'b) → (1 2.5 \"a\" b)"  most-negative-fixnum "A constant value closest to negative infinity that can be represented\nby fixnum type on this particular platform."  help "Display documentation the specified term, if available.\n\nThe optional parameter `kind` can be set to `group` to show\ndocumentation for the specified group instead of a single term.\nAll available documentation groups can be displayed with `(help\ngroups)`.\n\nAsterisk can be added to the beginning and/or end of the `term` in\norder to list the matching terms defined in the current environment.\nThis can be useful to recall a function's name.\n\nExamples:\n\n    (help str?)       ; show documentation for str?\n    (help type group) ; list items for dealing with types\n    (help str->*)     ; find functions converting from strings\n    (help *->str)     ; find functions converting to strings\n    (help *num*)      ; find anything related to numbers"  (doc
   group doc) "Writing and reading documentation."  memv "Return the tail of a list beginning with the item, or `NIL` otherwise.\nList elements are compared to the `item` using `eqv?`."  rand-u32 "Return a random integer on interval [0, 2³²-1]."  max "Return the largest among the arguments.\n\nExamples:\n\n    (max 3 1 9 4)     → 9\n    (max 'c 'h 'z 'a) → z\n    (max \"t\" \"g\" \"a\") → \"t\""  closure? "Return `T` if the argument is a function that is implemented in LISP\n(as opposed to a C builtin), `NIL` otherwise.\n\nExamples:\n\n    (closure? closure?) → T\n    (closure? length)   → NIL"  cddadr "Shorthand for (cdr (cdr (car (cdr lst))))."  rand-f64 "Return a random 64-bit floating point number on interval [0.0, 1.0]."  help-print-header "Format and print signature(s) of the term for `(help term)` output."  arg-counts "VM instructions mapped to their expected arguments count."  rune? "Return `T` if the value is a rune, `NIL` otherwise."  (doc
   group compress) "Compression."  defc*r "Define a shorthand for list access using `car` and `cdr`.\n\nExamples:\n\n    (defc*r caaaaaaaaddr) ; define the function"  identity "Return `x`.")  *doc-extra* #table(sym-set-doc ((:doc-group . doc))  cddddr ((:doc-group . list))  io-eof? ((:doc-group . io))  cadr ((:doc-group . list)