SISC(1)

πŸ’– SISC β€” like, the Second Interpreter of Scheme Code, bestie πŸ’–

okay so before we even get into it: this page lives in the General Commands Manual section, and its manual name is SISC(1). yes that's the vibe. grab a boba, we're doing this πŸ§‹βœ¨


🌸 NAME 🌸

sisc β€” Second Interpreter of Scheme Code


✨ SYNOPSIS ✨

sisc [ option ...  ] [ argument ...  [ -- [ program‐option ...  ] ]
the brackets are nesting, girlies β€” everything in [ ] is optional, and there's a -- in there that changes everything. stay with me πŸ’…

πŸ¦‹ DESCRIPTION πŸ¦‹

SISC, aka the Second Interpreter of Scheme Code, is an extensible Java based interpreter of the Scheme language. She's described in the Revised^5 Report on the Algorithmic Language Scheme β€” and on top of that she adds numerous extensions, including Java integration. yes. java. in your scheme. iconic behavior honestly 😌


πŸŽ€ STARTUP FILE AND EXPRESSION OPTIONS πŸŽ€

  • -c name / --call-with-args name β€” calls the top-level procedure name with the remaining command-line arguments that come after the -- delimiter. so like, your procedure gets the leftovers 🫢
  • -e expr / --eval expr β€” evaluates the expression you handed it. simple. slay πŸ’œ
  • -x / --no-repl β€” tells SISC to run the command line and then dip out without entering the REPL. no repl, no problem πŸšͺπŸ’¨
  • -h heap‐file / --heap heap‐file β€” says heap-file should be used as the initial heap image. it's giving starter pack πŸŽ’
  • -p config‐file / --properties config‐file β€” points at a Java property file that holds application properties. your settings, your rules ✨
  • -l [<host>:]<port> / --listen [<host>:]<port> β€” SERVER MODE πŸ‘‘ listens on <host>/<port> for REPL connections. yes she's hosting. main character energy fr fr

🌈 COMMAND LINE BEHAVIOR 🌈

okay bestie, this is the part you screenshot. the command line gets processed like this, in this exact order:

  1. First, the entire command line is processed β€” noting the settings of each switch, and accumulating all the Scheme source files and arguments that come after the end of options sequence.
  2. Second, the heap file is loaded.
  3. Third, each Scheme source file is loaded in the order they occured on the command line. Errors are noted.
  4. Fourth, if present, the expression in an --eval switch is evaluated. Errors are noted.
  5. Fifth, if present, the named function in a --call-with-args switch is applied to the arguments after the end of options sequence. Its return value is noted.
  6. Sixth, if --no-repl was not specified, the REPL is invoked.
  7. Finally β€” if the REPL was run, and if its return value is an integer, that integer is returned as SISC's overall return code. If the REPL was not run, and any return code supporting step above was run, the most recent return code is returned. If no return code step was performed, but a success/failure step was performed, 1 is returned if any failures occured, 0 otherwise.
the ordering is NOT decorative, bestie. step two comes before step three for a reason. do not shuffle these. 🫠

🧚 EXECUTABLE SCRIPTS 🧚

SISC supports all the required SRFI-22 bootstraps. if you wanna know more about using it to write executable Scheme programs, go consult the body of SRFI-22. iykyk πŸ’«


πŸ’œ MORE INFORMATION πŸ’œ

want further info on SISC? please read the SISC for Seasoned Schemers manual, available at:

http://sisc.sourceforge.net/manual/

πŸ’€ BUGS πŸ’€

Submit bug reports to the SISC Users Mailing List. don't suffer in silence, bestie 😭


πŸ‘‘ AUTHOR πŸ‘‘

SISC was created by Scott G. Miller (sgmiller@gmail.com) with significant contribution from Matthias Radestock (matthias@sorted.org). legends, both of them, no cap 🌟


and that's the whole page, fr fr 🫢 this came to you from the 4th Berkeley Distribution, dated June 2005, under the manual name SISC(1). go write something iconic with it πŸ’…βœ¨