pike(1)

πŸ‘‘ pike(1) β€” Pike Manual πŸ‘‘

okay so welcome to the Pike Manual, bestie πŸ’– this is the page for pike(1), the one and only compiler + interpreter situation. grab a strawberry πŸ“ and let's go.


✨ NAME ✨

pike β€” pike compiler and interpreter


🌸 SYNOPSIS 🌸

pike [ -driver-options ...  ] [ script [ script-arguments ...  ] ]

πŸ¦‹ DESCRIPTION πŸ¦‹

Compiler and interpreter for the Pike programming language. that's it. that's the vibe. she compiles, she interprets, she slays πŸ’…


πŸ’… OPTIONS πŸ’…

okay so these ones are the options the loader supports, iykyk:

  • -a β€” bump the debug level of the peep-hole optimizer by 1 (debug).
  • -anum β€” set the debug level of the peep-hole optimizer to num (debug).
  • -Dsymbol β€” define the preprocessor symbol symbol to 1.
  • -Dsymbol=value β€” define the preprocessor symbol symbol to value.
  • -d β€” bump the debug level by 1 (debug).
  • -dnum β€” set the debug level to num (debug).
  • -dc β€” bump the debug level of the Pike compiler (debug).
  • -dg β€” resets the debug malloc at every garbage collection (debug).
  • -dL β€” Windows only: enable Windows error dialogs when dll files cannot be loaded.

ngl this one has lore 🫢 it's super common for Pike to have modules linked to dll files that just aren't in every installation. so by default these error dialogs are turned off, so that Pike doesn't hang on them while it's trying to load certain modules. no cap.

BUT. and this is the plot twist 😭 the error dialogs are literally the only way to see which dll's could not be loaded. so if you're trying to figure out why a certain module refuses to load, this option may be necessary. it's giving detective mode πŸ”

  • -dp β€” turns off the peep hole optimization (debug).
  • -ds β€” debug signals (debug).
  • -dt β€” turn off tail recursion optimization (debug).
  • -dT β€” enable extra checks in the thread library, e.g. mutex sanity checks (debug).
  • -l β€” bump the debug level of the global optimizer by 1 (debug).
  • -lnum β€” set the debug level of the global optimizer to num (debug).
  • -mmaster_program β€” use master_program instead of the ordinary master program.
  • -p β€” bump the level of profiling by 1 (debug).
  • -pnum β€” set the level of profiling to num (debug).
  • -ps β€” enable stack profiling (debug).
  • -qnum β€” end execution after executing num Pike instructions.
  • -rt β€” turn on runtime checking of arguments to function calls, and soft casts.
  • -rT β€” turn on #pragma strict_types for all files.
  • -snum β€” set Pike stack size to num (minimum is 256). ⚠️ don't get cute with numbers under 256.
  • -ssnum β€” set the pike C-level thread stack size to num.
  • -t β€” bump the level of runtime trace by 1 (debug).
  • -tnum β€” set the level of runtime trace to num (debug).
  • -tg β€” log the gc runs to stderr.

and these next ones? these are supported by the default master program. different department, same queen πŸ‘‘

  • -h, --help, β€” print help message and exit.
  • -eexpr, --execute=expr β€” execute expr and exit.
  • -xtoolname β€” execute internal tool toolname from Tools.Standalone. omit toolname for a list of available tools.
  • -E, --preprocess β€” just run the preprocessor.
  • -Idir, --include-path=dir β€” append dir to the include path.
  • -Mdir, --modue-path=dir β€” append dir to the module path.
  • -Pdir, --program-path=dir β€” append dir to the program path.
  • -v, --version β€” print version of Pike and exit.
  • -Vmajor.minor, --compat=major.minor β€” set the compatibility version to Pike version major.minor.
  • -w, --warnings β€” enable warnings.
  • -W, --woff, --no-warnings β€” disable warnings.
  • --assembler-debug β€” set the peephole optimizer debug level (debug).
  • --autoreload β€” turn on the autoreload mode of the master.
  • --compiler-trace β€” turn on tracing of the Pike compiler (debug).
  • --debug β€” increase or set the debug level (debug).
  • --debug-without=feature β€” hide feature from the resolver (debug).
  • --dumpversion β€” print the Pike version number to stderr, e.g. "8.0.10\n"
  • --features β€” list some of the features that are enabled in this Pike binary and exit (debug).
  • --info β€” show various information about this Pike installation and exit (debug).
  • --optimizer-debug β€” set the global optimizer debug level (debug).
  • --show-all-cpp-warnings, --picky-cpp β€” enable warnings for failing #if constant() expressions.
  • --show-paths β€” show the paths pike will use and exit (debug).
  • --trace β€” increase the trace level (debug).
  • --trace=num β€” set the trace level to num (debug).

πŸŽ€ OPERANDS πŸŽ€

only one operand, and she's the main character:

  • script β€” a path to a script written in Pike to be compiled and then executed. everything on the commandline after the script gets passed as arguments to the main() function in the script. periodt. πŸ’–

if no script is specified, pike will start in interactive- (Hilfe) mode. yes, Hilfe. iconic. 😌


🧚 REGISTRY KEYS 🧚

on Windows, Pike is affected by the following keys in the registry:

  • HKEY_CURRENT_USER\Software\Pike\8.0\PIKE_MASTER
  • HKEY_LOCAL_MACHINE\Software\Pike\8.0\PIKE_MASTER

β€” Specifies the name of the master program (overridden by -m). if these keys are not set (which is the default, bestie), then Pike finds the master by relative path from pike.exe.


🌈 ENVIRONMENT 🌈

Pike is affected by the following environment variables:

  • PIKE_MASTER β€” specifies the name of the master program (overridden by -m).

depending on the operating system, Pike may be affected by these ones too:

  • LC_ALL β€” overrides the other LC_* variables.
  • LC_COLLATE β€” specifies the character collation sequence.
  • LC_CTYPE β€” specifies the character classification.
  • LC_MESSAGES β€” specifies the language of the system messagedatabase.
  • LC_NUMERIC β€” specifies the decimal and thousand delimiters.
  • LC_TIME β€” specifies the date and time formats.

and the default master program is affected by these bad boys:

  • PIKE_INCLUDE_PATH β€” list of directories separated with colon (:), to search for include-files.
  • PIKE_PROGRAM_PATH β€” list of directories separated with colon (:), to search for program-files.
  • PIKE_MODULE_PATH β€” list of directories separated with colon (:), to search for modules.
  • LONG_PIKE_ERRORS β€” if set, disables truncation of paths in backtraces.
  • SHORT_PIKE_ERRORS β€” if set and LONG_PIKE_ERRORS is not set, truncates paths to just the filename in backtraces.
  • PIKE_BACKTRACE_LEN β€” the maximum number of elements in arrays to describe in backtraces.
⚠️ heads up bestie: all of the above environment variables have effect before the default master program attempts to load the Getopt(3P) module, which occurrs before the master program arguments are parsed. timing is everything, fr fr. πŸ•

πŸ’€ EXIT STATUS πŸ’€

the following exit values are returned:

  • 0 β€” Successfull completion. πŸŽ‰
  • >0 β€” An error occurred. See output on stderr (fd #2) for reason. 😭

πŸ“ FILES πŸ“

  • /usr/local/pike/8.0.*/lib/master.pike β€” default master program
  • /usr/local/pike/8.0.*/lib/modules/* β€” default module directory
  • /usr/local/pike/8.0.*/lib/?.?/* β€” backward compatibility modules
  • /usr/local/pike/8.0.*/lib/include/* β€” pike include files
  • /usr/local/pike/8.0.*/tools/pike.el β€” emacs fontlock definitions for pike-mode
  • /usr/local/pike/8.0.*/include/pike/* β€” C-include files
  • /usr/local/pike/8.0.*/man/* β€” manual pages for pike

⭐ SEE ALSO ⭐

hilfe(1), Getopt(3P), environ(5).

  • Pike Programming Tutorial
  • Pike Reference Manual
  • Pike: an Introduction by H. William Welliver III and Martin BΓ€hr, 2007.

http://pike.ida.liu.se/


and that's the whole page, bestie πŸ’œ tysm for reading, go write something iconic with it 🫢

this masterpiece came to you from Pike, dated $Date: 2008/08/12 20:18:50 $ β€” yeah she's vintage, she's still serving πŸ‘‘βœ¨