(doc-group vm «VM-related functions.»)(defdoc (environment) «Return the list of all bound top level symbols.» :doc-group vm :doc-see print-stack-trace)(defdoc (vm-stats (io *io-out*)) «Print various VM-related information, such as the number of GC calls so far, heap, and stack size, etc.» :doc-group vm)(defdoc (tag-of v) «Return the internal VM tag of the value.» :doc-example «(tag-of 1) ; ↳ fixnum» :doc-example «(tag-of NIL) ; ↳ special» :doc-example «(tag-of "hello") ; ↳ cvalue» :doc-example «(tag-of (s32 1)) ; ↳ unboxed» :doc-group vm :doc-see type-of)(defdoc (builtin sym) «Return the builtin associated with the symbol. Throws an exception if no such builtin exists.» :doc-example «(builtin 'map) ; ↳ #fn(map)» :doc-example «(builtin 'print) ; ‼ arguments error: builtin "print" not found» :doc-group vm)(defdoc (gc) «Force a garbage collection run. One does not need to execute this function manually since garbage collection will happen automatically, based on the amount of data allocated.» :doc-group vm :doc-see vm-stats)(defdoc (*prompt*) «Function called by REPL to tell the user it's expecting input. The default `*prompt*` function prints `#;> `, which by itself is a commented-out expression, allowing the user to copy-paste the entire line (with the prompt) to reevaluate.» :doc-group vm :doc-see *interactive*)(defdoc *interactive* «Variable indicating whether VM is running in "interactive" mode (`T`, REPL is active) or not (`NIL`, REPL is not active). Interactive mode can be forced by adding `-i` as the first command line argument.» :doc-group vm :doc-see *prompt*)(defdoc *argv* «The list of command line arguments. If StreetLISP was started in interactive mode without a file specified for execution, `*argv*` will be a list containing just one value - the name of the `sl` executable. Otherwise, the file specified for execution and the rest of the remaining arguments will form the `*argv*` list. StreetLISP's own options, such as `-i` and `-H ...` will be stripped out in any case.» :doc-example «; $ sl -i -H 12345 *argv* ; ↳ ("sl")» :doc-example «; $ sl script.sl -i abc *argv* ; ↳ ("script.sl" "-i" "abc")» :doc-group vm :doc-see *interactive*)
(doc-group vm
«VM-related functions.»)
(defdoc (environment)
«Return the list of all bound top level symbols.»
:doc-group vm
:doc-see print-stack-trace)
(defdoc (vm-stats (io *io-out*))
«Print various VM-related information, such as the number of GC
calls so far, heap, and stack size, etc.»
:doc-group vm)
(defdoc (tag-of v)
«Return the internal VM tag of the value.»
:doc-example
«(tag-of 1)
; ↳ fixnum»
:doc-example
«(tag-of NIL)
; ↳ special»
:doc-example
«(tag-of "hello")
; ↳ cvalue»
:doc-example
«(tag-of (s32 1))
; ↳ unboxed»
:doc-group vm
:doc-see type-of)
(defdoc (builtin sym)
«Return the builtin associated with the symbol.
Throws an exception if no such builtin exists.»
:doc-example
«(builtin 'map)
; ↳ #fn(map)»
:doc-example
«(builtin 'print)
; ‼ arguments error: builtin "print" not found»
:doc-group vm)
(defdoc (gc)
«Force a garbage collection run.
One does not need to execute this function manually since garbage
collection will happen automatically, based on the amount of data
allocated.»
:doc-group vm
:doc-see vm-stats)
(defdoc (*prompt*)
«Function called by REPL to tell the user it's expecting input.
The default `*prompt*` function prints `#;> `, which by itself is a
commented-out expression, allowing the user to copy-paste the entire
line (with the prompt) to reevaluate.»
:doc-group vm
:doc-see *interactive*)
(defdoc *interactive*
«Variable indicating whether VM is running in "interactive" mode (`T`,
REPL is active) or not (`NIL`, REPL is not active).
Interactive mode can be forced by adding `-i` as the first command
line argument.»
:doc-group vm
:doc-see *prompt*)
(defdoc *argv*
«The list of command line arguments.
If StreetLISP was started in interactive mode without a file specified
for execution, `*argv*` will be a list containing just one value - the
name of the `sl` executable.
Otherwise, the file specified for execution and the rest of the remaining
arguments will form the `*argv*` list.
StreetLISP's own options, such as `-i` and `-H ...` will be stripped
out in any case.»
:doc-example
«; $ sl -i -H 12345
*argv*
; ↳ ("sl")»
:doc-example
«; $ sl script.sl -i abc
*argv*
; ↳ ("script.sl" "-i" "abc")»
:doc-group vm
:doc-see *interactive*)