GAC(1)

πŸ’… GAC(1) β€” the GAP Compiler, but make it make sense

okay so real talk: this is GAC, aka the GAP Compiler, and it lives in the User Commands corner of section 1 of the manual. she compiles stuff. that's her whole personality and honestly? iconic. let's get into it 🫢


✨ SYNOPSIS ✨

gac [-c|-d] [-o <output>] {-f<option>} <input>...

that's the whole vibe check right there: some flags, an output name if you're feeling fancy, and then a whole pile of input files. periodt.


🌸 DESCRIPTION 🌸

bestie. GAC compiles the input files. that's the job. but like, not just any files β€” the inputs have rules, and the rules are:

  • GAP source code β€” suffix .g or .gap πŸ“
  • C source code β€” suffix .c 🧚
  • compiled code files β€” suffix .o πŸ’œ

anything else? not invited to the party, sorry.

now the flags, and yes we're going through all of them because each one is a main character:

  • -c β€” compiles the input files into statically loadable object files, which then have to be linked together into a new kernel. ngl, that's the committed-relationship option.
  • -d β€” compiles the input files into dynamically loadable object files, which a kernel can load at runtime. lowkey the free-spirit option.
  • -C β€” only compiles the input files down to C code, which will still need compilation and linking before it's actually usable. it's giving "halfway there, bestie" 😭
  • -r β€” statically compiled files get assumed to be given by pathnames relative to the GAP root, and get compiled for automatic loading when files are sought relative to the GAP root. iykyk.
  • -o <output> β€” names the output file <output>. that's it, that's the whole flag. cute.
  • -save-temps β€” tells gac to not delete any intermediate files. the messy-girl option and we respect it πŸ™ˆ
  • -p <option> β€” passes the option <option> to the C compiler.
  • -P <option> β€” passes the option <option> to the C linker.
  • -L <option> β€” tells gac to pass the option <option> to the C linker when linking dynamic modules. and here's the tea β˜• β€” contrary to -P, this option gets appended at the end of the link command, after the .o files to link. order matters, bestie, always has πŸ’…

πŸ¦‹ SEE ALSO πŸ¦‹

  • gap(1) β€” her sister, go say hi

also!! you can read the complete manual in /usr/share/gap/doc, or you can use the online help system. just type ?help inside GAP to access it. literally that easy bestie 🌈


πŸ‘‘ AUTHORS πŸ‘‘

The GAP Group <https://www.gap-system.org> β€” the collective. the whole squad. we stan.


Copyright (1988--2024) by its authors.

GAP is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. no cap, free as in freedom πŸ’–


ok that's the whole page, you're officially a GAP compiler girlie now. go compile something and slay ✨

β€” with love from The GAP team, April 2024, signing off πŸ«ΆπŸ’…

πŸ“¦ where this page comes from