CSI(1)

πŸ’– csi(1) β€” bestie edition πŸ’–

okay so you opened the manual page for csi, the CHICKEN Scheme interpreter, and honestly? you're about to have the best time. it's a General Commands Manual, and it's giving iconic, periodt. pull up a chair, grab a strawberry πŸ“, and let's get into it.


✨ NAME ✨

csi β€” the CHICKEN Scheme interpreter. that's her. that's the whole name. short, sweet, main character energy. πŸ‘‘


🌸 SYNOPSIS 🌸

csi [OPTION ...] [FILENAME ...]

that's the shape of it, bestie. options first, filenames after, or just yolo with no args at all.


πŸ’… DESCRIPTION πŸ’…

so csi is an interpreter for the programming language Scheme, and not to brag but she supports most of the features described in the Revised^5 Report on the Algorithmic Language Scheme. R5RS girlies, she sees you. 🫢

and here's the cute part: csi is implemented as a program compiled with the CHICKEN compiler. she's self-made, she's bootstrapped, she's literally that girl.

quick vocab moment so nobody gets lost:

  • FILENAME is a Scheme source file name with optional extension.
  • OPTION may be one of the following (and yes, we're doing ALL of them, no skipping, i don't gatekeep):

πŸŽ€ OPTIONS πŸŽ€

  • -h, -help β€” display usage and dip. short and sweet. ✨
  • -version β€” display version and dip.
  • -release β€” print the release number and dip. (yes it's different from -version, don't @ me)
  • -i, -case-insensitive β€” enable case-insensitive reading. she's not picky about your caps, slay. πŸ’…
  • -e EXPRESSION, -eval EXPRESSION β€” evaluate the given expression. just run it, no thoughts.
  • -p EXPRESSION, -print EXPRESSION β€” evaluate the given expression and print the result(s). showing her work, love that. 🌟
  • -P EXPRESSION, -pretty-print EXPRESSION β€” evaluate and print result(s) prettily. it's the same but with a glow-up. ✨
  • -D SYMBOL, -feature SYMBOL β€” register feature identifier. adding to the vibe list.
  • -no-feature SYMBOL β€” disable built-in feature identifier. taking it off the vibe list. πŸ’€
  • -q, -quiet β€” do not print banner. no intro, we're getting straight to the point. πŸ™ˆ
  • -n, -no-init β€” do not load the initialization file, .csirc. skipping the pre-game.
  • -b, -batch β€” terminate after command-line processing. one and done, bye bestie. πŸ‘‹
  • -w, -no-warnings β€” disable all warnings. living dangerously, i respect it. 😭
  • -K STYLE, -keyword-style STYLE β€” enable alternative keyword-syntax. the options are prefix, suffix or none. pick your fighter. πŸ”₯
  • -no-parentheses-synonyms β€” disable list delimiter synonyms. parens stay parens, no substitutes.
  • -no-symbol-escape β€” disables support for escaped symbols. the backslash era is over, sorry. πŸ’€
  • -r5rs-syntax β€” disable the CHICKEN extensions to R5RS syntax. going full purist, no cap.
  • -s PATHNAME, -script PATHNAME β€” use interpreter for shell scripts. she contains multitudes. 🐚
  • -ss PATHNAME β€” run a script with a main procedure. the formal version, she has structure.
  • -sx PATHNAME β€” same as -s, but print each expression as it is evaluated. live commentary mode, obsessed. πŸ‘€
  • -setup-mode β€” prefer the current directory when locating extensions. home turf advantage.
  • -R NAME, -require-extension NAME β€” import extension before executing code. grabbing the aux cord before the song starts. 🎧
  • -I PATHNAME, -include-path PATHNAME β€” add PATHNAME to the include path. one more place to look, she's thorough.
  • -- β€” ignore all following options. everything after this is Not An Option, fr fr.

🌈 ENVIRONMENT 🌈

the following environment variables change the behaviour of csi:

  • CSI_OPTIONS β€” when set to a string of command-line options, then the options are passed implicitly to every direct or indirect invocation of csi. it's like a lil outfit she wears to every event. πŸ’–
⚠️ important heads up: runtime options of the form -:⟨OPTIONS⟩ cannot be passed using this method. sorry bestie, those ones don't fit in the bag.
  • CHICKEN_INCLUDE_PATH β€” contains one or more pathnames where the interpreter should also look for include files, separated by ; characters. semicolon-separated, don't use commas, i beg. 🧚

πŸ¦‹ FILES πŸ¦‹

  • $XDG_CONFIG_HOME/chicken/csirc β€” Scheme file loaded on startup. ($XDG_CONFIG_HOME defaults to $HOME/.config.) the modern girlie config location. ✨
  • $HOME/.csirc β€” Scheme file loaded on startup if the previous one doesn't exist. the fallback queen. πŸ‘‘

⭐ EXIT STATUS ⭐

the csi utility exits 0 on success, and >0 if an error occurs. clean exit, clean conscience. πŸ’…


πŸ’œ SEE ALSO πŸ’œ

more information can be found in the CHICKEN User's Manual: http://wiki.call-cc.org/manual/index β€” go read it, iykyk. πŸ“š


πŸ‘‘ AUTHORS πŸ‘‘

The CHICKEN Team. legends, honestly. no notes. 🫢


πŸ’€ BUGS πŸ’€

submit bug reports by e-mail to chicken-janitors@nongnu.org. don't be mean about it, they're doing their best. πŸ™ˆ


and that's the whole page, bestie!! this manual came to you from Debian, dated Apr 26, 2017, so if you're reading this, just know she's been serving since 2017 and she's still that girl. mwah πŸ’–βœ¨ bye! πŸŽ€

πŸ“¦ where this page comes from