GOO(1)

πŸ’– GOO β€” the manual, but make it slay πŸ’–

okay bestie, sit down, hydrate, because we're talking about goo and g2c β€” aka the generic object-orientator, which is a whole programming language. ✨ This is the General Commands Manual page for them, and yes I'm gonna explain every last crumb. no crumbs left behind. πŸ“


πŸ¦‹ NAME πŸ¦‹

goo, g2c β€” generic object-orientator (programming language). that's the whole name. iconic behavior honestly. πŸ‘‘


✨ SYNOPSIS ✨

goo
g2c

that's it. that's the vibe. no flags, no drama. πŸŽ€


πŸ’… DESCRIPTION πŸ’…

So this manual page documents briefly the goo and g2c commands. briefly!! we're doing the short version bestie, the trailer not the whole movie. 😌

goo and g2c interactively evaluate statements in GOO, which is a dynamic, type-based, object-oriented language living in the same family as Dylan and Scheme. and the language itself? designed to be:

  • simple
  • productive
  • powerful
  • extensible
  • dynamic
  • efficient
  • real-time

seven personality traits, all of them valid, all of them eating. πŸ”₯

Now here's the tea β˜• β€” goo and g2c support two evaluation modes, and which one you get is controlled by the environment variable GOO_EVAL_MODE. the two commands are literally the same except for which mode is the default. twins. πŸ’•

  1. ast mode β€” short for "abstract syntax tree", and this is the default for goo. in this mode they directly interpret parsed goo expressions.
  2. g2c mode β€” this is the default for g2c. in this mode, instead of interpreting, they translate expressions into dynamically compiled C code. yes. C code. at runtime. main character energy fr fr. πŸ’€βœ¨

πŸŽ€ OPTIONS πŸŽ€

None.

that's it. zero options. not a single flag. she simply does not take requests. πŸ’…


🌸 USAGE 🌸

Typing goo or g2c at your shell will start up a goo read-eval-print loop (the classic REPL, we love her 🫢). she accepts s-expressions and top-level commands commencing with a comma. so if you see a comma, that's a command, not a vibe.

here's the full list of available commands, no skips:

  • ,quit β€” Exit the program. bye bestie, love u, text me. 😭
  • ^C (control-C) β€” Invoke a recursive read-eval-print loop. yes, a REPL inside a REPL. she contains multitudes. πŸŒ€
  • ,g2c-eval β€” Change to dynamic compilation evaluation.
  • ,ast-eval β€” Change to ast evaluation.
  • ,in ,name β€” Change to module name.
ngl the ^C one is lowkey the funniest thing here, it's giving inception πŸ’€

🌈 ENVIRONMENT 🌈

  • GOO_EVAL_MODE β€” Determines evaluation mode, as documented in DESCRIPTION above. (go scroll up bestie, it's the ast vs g2c thing πŸ‘†)
  • GOO_ROOT β€” Installation root (/usr on Debian systems); files needed at runtime can be found under ${GOO_ROOT}/lib/goo. so if she can't find her stuff, this is where she's looking. πŸ“

🧚 SEE ALSO 🧚

The full GOO reference manual lives at:

  • /usr/share/doc/goo/goo.pdf.gz
  • /usr/share/doc/goo/manual/goomanual.html

go read it, it's giving ✨ extended universe ✨


πŸ’œ AUTHOR πŸ’œ

goo was written by Jonathan Bachrach. shoutout to the founder, the OG, the blueprint. πŸ‘‘

This manual page was written by Aaron M. Ucko <ucko@debian.org>, for the Debian project, based on Jonathan's documentation (but may be used by others). generous!! we love a reusable license moment. πŸŽ€


so yeah. that's the whole page. goo and g2c, dated 2005-08-04, from the General Commands Manual for GOO(1) β€” and that's a wrap, bestie. go start a REPL and interpret some s-expressions. you got this. mwah. πŸ’–βœ¨πŸ¦‹πŸŒΈπŸŽ€πŸ’…πŸ«Ά