SNOBOL4CMD(1)

πŸ“¦
version 2.3.1 Β· 3 versions
, in fedora 43, fedora 44, opensuse-leap 16.0

πŸ’– SNOBOL4CMD(1) β€” bestie's guide to the snobol4 command line πŸ’–

okay so this is the manual for SNOBOL4CMD, page 1 of the CSNOBOL4 Manual β€” it's the whole vibe of how you actually talk to the SNOBOL4 interpreter from your terminal. No cap. ✨


🌸 NAME 🌸

snobol4 β€” the SNOBOL4 interpreter command line syntax. that's it, that's the name, she's iconic πŸ’…


πŸ¦‹ SYNOPSIS πŸ¦‹

snobol4 [ options ... ] [ file ... ] [ param ... ]

so you got your options, then your files, then your params, in that order bestie, don't fight it 🫢


✨ OPTIONS ✨

  • -b β€” kills the start-up banner AND the termination output. lowkey important: those only show up when you didn't give any source files on the command line. also fyi in earlier releases of CSNOBOL4, -b toggled banner output instead, and banners were on by default. glow-up moment fr 😭
  • -d ndesc β€” allocates a "dynamic storage" region of ndesc descriptors for program code and data. a suffix of k multiplies the number by 1024, a suffix of m multiplies the number by 1048576. a bigger dynamic region may mean fewer garbage collections (storage regenerations), BUT huge values may make execution slow down when large amounts of garbage collect. most programs do not need a bigger dynamic region to run. if your program dies with an "Insufficient storage to continue" message, that's your sign to bump the dynamic storage region size up. and psst β€” the -h option shows you the default dynamic region size πŸ‘‘
  • -f β€” toggles folding of identifiers to upper case (see -CASE and &CASE).
  • -g β€” turns on garbage collection tracing (it sets &GTRACE to -1).
  • -h β€” give help. shows the usage message, and includes the default sizes for the "dynamic region" and the pattern match stack. bestie behavior honestly πŸ₯°
  • -k β€” toggles running programs that have compilation errors (see the -ERROR and -NOERRORS extensions). by default, programs with compilation errors will not be run.
  • -l LISTINGFILE β€” enables listing output to the named file. the default listing side is LEFT.
  • -n β€” toggles running programs after compilation (see the -EXECUTE and -NOEXECUTE extensions). by default, programs are run after compilation.
  • -p β€” toggles SPITBOL extensions (also controlled by -PLUSOPS).
  • -r β€” toggles reading INPUT from the command line / source file(s) after the END label. otherwise, INPUT defaults (back) to standard input once program compilation is complete.
  • -s β€” toggles termination statistics (off by default).
  • -u param β€” specify a parameter string available via HOST(0).
  • -v β€” show version and exit. bye πŸ‘‹
  • -x β€” force banner and termination output.
  • -z β€” show the directory search path in use (including all -I options on the command line) and exit.
  • -B β€” toggles SNOBOL4B operators (also controlled by -[NO]BLOCKS).
  • -I directory β€” adds directory to the directory search path before any other directories (i.e.; from SNOPATH or default entries). may be used multiple times. stack 'em up πŸ’…
  • -L file β€” preload a SNOBOL4 source file. may be used multiple times. this is literally how you preload the sdb(1) source code debugger, iykyk.
  • -M β€” specifies that all items left on the command line after option processing is complete are to be treated as filenames. the files are read in turn until an END statement is found. (any remaining data is available via the INPUT variable if the -r option is also given.)
  • -N β€” disables the standard search path, INCLUDING the current working directory. only directories specified by -I options will be searched. mnemonic: "no standard include". she said no thanks, blocked 🚫
  • -P ndesc β€” allocates ndesc descriptors for the pattern match stack. a suffix of k multiplies the number by 1024, a suffix of m multiplies the number by 1048576. the pattern match stack is what saves backtracking and conditional assignment information during pattern matching. if your program dies with an "Overflow during pattern matching" message (Error 16), you need to increase the pattern match stack size. the -h option shows the default pattern match stack size. πŸŽ€
  • -S ndesc β€” allocates ndesc descriptors for the interpreter stack. a suffix of k multiplies the number by 1024, a suffix of m multiplies the number by 1048576. the interpreter stack saves data and passes parameters to internal procedures. if your program dies with a "Stack overflow" message (Error 21), you need to increase the interpreter stack size. a common reason you'd need extra stack space is tracing deeply nested DATA() structures during garbage collection. the -h option shows the default interpreter stack size. 😭
  • -U β€” disables stdio buffering. it's also set if the SNOBOL4UNBUFFERED environment variable is set to a non-null value. this will increase runtime, but it improves behavior when sucking on pipes (use ptys!). πŸ™ˆ
  • -- β€” terminates processing items as options. any remaining strings are treated as files or user parameters (see the HOST() function).

πŸ‘‘ SEE ALSO πŸ‘‘


and that's the whole page bestie, you ate that πŸ“

sign-off: this manual is from CSNOBOL4B 2.3.1, dated March 31, 2022. that's the source, the version, and the date β€” all three, no cap. periodt πŸ’œπŸ¦‹βœ¨

πŸ“¦ where this page comes from