APL(1)

πŸ“¦ version 2.0, in nixos 26.05, nixpkgs unstable, ubuntu stonking

✨ NAME ✨

apl β€” a free APL interpreter πŸ’– (this is the GNU APL manual page, bestie, and she's a baddie)


🌸 SYNOPSIS 🌸

apl [options]

πŸ¦‹ DESCRIPTION πŸ¦‹

okay so. GNU APL is an interpreter for the programming language APL, and she comes with support for nested arrays as defined in ISO standard 13751 β€” aka "Programming Language APL, Extended". no cap, she's ISO-certified and she knows it πŸ’…

this man page? it only covers the command line options of GNU APL. that's it. for the complete, full, director's-cut documentation of GNU APL you gotta go look at the info(1) file apl.info, which ships with GNU APL. iykyk πŸ“–βœ¨

before we even get into the options, real talk, it's worthwile to mention how to stop (i.e. exit) it, because this trips people up CONSTANTLY:

⚠️ Neither Ctrl+C nor Ctrl+D will stop GNU APL. these keys serve other purposes. do not fight them, they are busy.

instead, you leave GNU APL with the command )OFF (on a separate line), like this:

)OFF

if APL is in the middle of computing an expression (and possibly caught in an endless loop 😭), then you may have to press Ctrl+C β€” which is called ATTENTION in APL β€” in order to return to APL's command mode, and then give the )OFF command. rescue mission complete 🫢

GNU APL accepts the following command line options:


πŸŽ€ OPTIONS πŸŽ€

  • --cfg β€” show the ./configure options that were used, then exit. receipts! 🧾
  • --[no]Color β€” start with ]COLOR ON or ]COLOR OFF. pick your aesthetic bestie 🌈
  • -d β€” run the interpreter in the background (i.e. as a daemon). she's mysterious, she's lurking πŸ‘€
  • --emacs β€” run in (old) emacs mode. vintage vibe ✨
  • --emacs_arg arg β€” run in (new) emacs mode with argument arg. glow up edition πŸ’…
  • -f file β€” read input from file rather than from the keyboard. when the end of the file is reached, input is switched back to the keyboard. if you want to terminate the APL interpreter after executing the file, then use )OFF as the last line in the file. (yes, again with the )OFF. she's the moment.)
  • --gpl β€” show the GNU APL license (GPL) and exit. legal queen πŸ‘‘
  • -h, --help β€” print all command line options with a brief hint of what they do. your map, your girl πŸ—ΊοΈ
  • -L wsname β€” )LOAD wsname on start-up.
  • --LX expr β€” execute expr first (like βŽ•LX).
  • --id proc β€” use processor ID proc for this interpreter. if no ID is provided, then the first unused ID > 1000 is taken by this interpreter, and the ID becomes used as long as the interpreter runs. processor IDs are used by shared variables to identify share partners. it's giving assigned seating fr fr πŸͺ‘
  • -l num β€” turn logging facility num ON (if dynamic logging is configured). the logging facility for startup messages can be turned on even when dynamic logging is not configured.
  • --echoCIN β€” copy the input line (after editing) to stdout. for creating session logs. screenshots but make it text πŸ“Έ
  • --noCIN β€” do not echo stdin to stdout. almost a must for scripting (unless you're troubleshooting a script, in which case gossip, babe πŸ‘€).
  • --noCONT β€” do not load a CONTINUE workspace on start-up.
  • -p N β€” use profile N in preference files.
  • --[no]SV β€” do [not] start APserver (a shared variable server) on start-up. this disables communication with other workspaces or auxiliary processors through shared variables.
  • --par pproc β€” use processor parent ID pproc (default: no parent ID).
  • -s, --script β€” this option is an abbreviation for --silent --noCIN --noCONT -f - (a typical combination of options for APL scripts). combo meal πŸ“
  • --show_bin_dir β€” display the binary directory (where, according to ./configure,
  • --show_doc_dir β€” display the directory where, according to ./configure, documentation files for GNU APL are intalled)
  • --show_etc_dir β€” display the system configuration directory where, according to ./configure, the preferences file for GNU APL is intalled
  • --show_lib_dir β€” display the system configuration directory where, according to ./configure, shared library files and the workspaces shipped with GNU APL are intalled.
  • --show_src_dir β€” display the source directory where, according to ./configure, GNU APL was compiled. this can be used, for example, by native functions that are built outside the GNU APL source tree to find GNU APL header files needed to compile. finding files, finding herself 🧭
  • --show_all_dirs β€” display all the directories above. all of them. every single one. the whole family 🌈
  • -q, --silent β€” suppress printing of the GNU APL welcome message. useful for APL scripts. (no hello, just business 😌)
  • -T testcases ... β€” run testcases. testcases are text files that contain both input to the APL interpreter and the expected response from the interpreter. the output from the interpreter is compared with the expected output in the testcase file(s) and differences are marked. in addition a summary file is created that tells whether or not each of the testcases was successful. grading her own homework, and she aces it πŸ’―
  • --TM mode β€” test mode. this option [says] how the interpreter shall behave when running a number of testcases (as specified with the -T option). modes below ⬇️
    • --TM 0 (default) β€” run all testcases and exit after the last testcase. bye ✌️
    • --TM 1 β€” like --TM 0 if no error was detected. however, if one of the testcases has failed, then the interpreter does not exit so that the user can investigate the state of APL (SI, variable values, etc.).
    • --TM 2 β€” like --TM 1, but stay in the interpreter even if all testcases have passed. this can be useful in order to quickly bring the interpreter into a specific state and continue manual troubleshooting from that state. she's not leaving, she lives here now 🏠
    • --TM 3 β€” like --TM 1, but stop testcase execution after the first failed testcase (i.e. do not exit).
    • --TM 4 β€” like --TM 3, but exit after the first failed testcase. the is useful for automatic regression tests, where no errors are expected.
  • --TR β€” execute test case files in random order. chaos mode, but make it diagnostics 🎲
  • --TS β€” normally, when the interpreter is run with the -T option, then an existing summary.log file is overridden without notice. this option causes new test results to be appended to a possibly existing summary.log instead of overriding it. no throwing away your history πŸ’–
  • -v, --version β€” show version information and exit.
  • -w milli β€” wait milli milliseconds at start-up. useful to give other programs that are started together with this interpreter time to initialize themselves. hydration break for the other processes πŸ’§
  • -- β€” end of options for the interpreter. there can be more options following; these options are ignored by the APL interpreter, but are visible in the APL system variable βŽ•ARG (which plays the role of arguments argc/argv in main(int argc, char * argv[]) in C/C++). not ignored by you, though πŸ‘€
  • +APPOPT, ++APPOPT ARG1, +++APPOPT ARG1 ARG2, ... β€” ignored by the interpreter, but copied to βŽ•ARG, along with their argument(s) (if any). the number of + indicates the number of option arguments (including the name of the option itself).

πŸ“’ REPORTING BUGS πŸ“’

found a bug? spilled the tea? report bugs to bug-apl@gnu.org πŸ›πŸ’Œ

GNU APL


πŸ’œ AUTHOR πŸ’œ

this manual page was written by JΓΌrgen Sauermann, the author and maintainer of GNU APL. living legend behaviour, honestly πŸ‘‘βœ¨


okay that's the whole page, bestie!! 🫢 this was the GNU APL page, dated 2014 July 28 β€” take care of her, run her responsibly, and remember: )OFF, not Ctrl+D. mwah πŸ’‹πŸŒΈπŸŽ€

πŸ“¦ where this page comes from