S2CI(1)

πŸ“¦ version 2012.10.14, in ubuntu jammy

πŸ’… S2CI β€” the manual page, but make it cute ✨

okay bestie, gather round, because we're talking about s2ci(1) β€” yes, that's the General Commands Manual entry, and yes, it's giving iconic Scheme energy. πŸπŸ’–


🌸 NAME 🌸

s2ci β€” Scheme interpreter. that's it, that's the whole vibe. πŸ‘‘


✨ SYNTAX ✨

s2ci [ option ]

just the command, maybe a lil option, and you're off. slay.


πŸ¦‹ DESCRIPTION πŸ¦‹

so the s2ci command (which, fun fact, used to be called sci β€” glow-up era πŸ’…) invokes a Scheme interpreter.

the language it accepts is the one defined in the essential portions of the Revised4 Report on the Algorithmic Language Scheme, with a few minor constraints and some additions. not the whole thing, the essential portions. keep up. πŸ““

and here's the lowkey wild part: the Scheme interpreter is written in Scheme, which has then been compiled using the Scheme-to-C compiler, s2cc. it's Scheme all the way down, bestie. πŸŒ€ no cap.


πŸŽ€ OPTIONS πŸŽ€

these options are accepted by s2ci. there are ten of them. we're doing all ten. periodt. πŸ’…

  • -e β€” echoes text read from the standard input file onto the standard output file. πŸ‘€
  • -emacs β€” the Scheme interpreter is controlled by GNU emacs. yes, emacs. it's a whole thing.
  • -nh β€” do not print the interpreter version header on the standard output file. no header, no problem.
  • -np β€” do not prompt for input from the standard input file on the standard output file. quiet lil guy.
  • -q β€” do not print the result of each expression evaluation. you asked, it stays silent. 🀫
  • -scgc statflag β€” enables garbage collection statistics. if set to 1, then garbage collection statistics will be printed. the default is 0, which results in no statistics. πŸ—‘οΈβœ¨
  • -sch heap β€” specifies the initial size of the heap in megabytes. the default heap size is 4 MB. the maximum heap size allowed is 1000 MB. don't go past that, she's fragile. 😭
  • -scl percent β€” specifies the percent of the heap allocated after a generational garbage collection that will force a full collection. the default is 40%.
  • -scm main β€” specifies the function that should be used instead of the predefined "main". ⚠️ the function name must be entered in the correct case, i.e. letters typically upshifted. case matters, bestie, do not play. πŸ™ˆ
  • -scmh heap β€” specifies the maximum heap size in megabytes. the default is five times the initial size of the heap. πŸ“

🌈 ENVIRONMENT VARIABLES 🌈

plot twist: the things controlled by the -sc.. flags can also be controlled by environment variables. and if you pass both the flag and the environment variable? the flag's value wins. flag supremacy, iykyk. πŸ‘‘

  • SCGCINFO β€” controls the reporting of garbage collection statistics to the standard error file. if set to 1, then garbage collection statistics will be printed. the default setting is 0, which will not print the statistics.
  • SCHEAP β€” specifies the initial size of the heap in megabytes. the default heap size is 4 MB. the maximum heap size allowed is 1000 MB.
  • SCLIMIT β€” specifies the percent of the heap allocated after a generational garbage collection that will force a full collection. the default is 40%.
  • SCMAXHEAP β€” specifies the maximum size of the heap in megabytes. the default value is five times the initial heap size.

πŸ“ FILES πŸ“

the interpreter is one a.out file with the name s2ci. everything else that comes with the interpreter lives in the directory .../schemetoc/scrt. one file, one folder, minimal drama. 🧚


πŸ‘‘ SEE ALSO πŸ‘‘

the reading list, bestie. it's long. it's academic. it's slay. πŸ“š

  • Harold Abelson and Gerald Jay Sussman with Julie Sussman, Structure and Interpretation of Computer Programs, The MIT Press.
  • William Clinger and Jonathan Rees (Editors), Revised4 Report on the Algorithmic Language Scheme, LISP Pointers, Volume IV, Number 3, July-September 1991. PostScript for this report is included in the software distribution.
  • Jerry D. Smith, An Introduction to Scheme, Prentice Hall, Inc. Chapter notes for using this text with Scheme->C are included in the software distribution.
  • R. Kent Dybvig, The SCHEME Programming Language, Prentice Hall, Inc.
  • Daniel P. Friedman and Matthias Felleisen, The Little LISPer, MIT Press.
  • Joel F. Bartlett, Scheme->C a Portable Scheme-to-C Compiler, WRL Research Report 89/1.

additional documentation is included in the software distribution. 🫢

  • s2cc(1) β€” the compiler bestie, go say hi.

πŸ’¬ QUESTIONS, COMMENTS, AND COMPLAINTS πŸ’¬

got thoughts? got feelings? got beef with the heap size? take it here:

http://alioth.debian.org/projects/scheme2c/

⭐ lowkey reminder: this page is S2CI(1), and the footer says local β€” that's the source/version, and the date's the same as the page itself, so consider this your cute lil sign-off: local edition, S2CI(1), forever and always. mwah. πŸ’–βœ¨πŸŽ€
πŸ“¦ where this page comes from