CIM(1)

πŸ“¦ version 5.1, in nixpkgs unstable

πŸ’… CIM(1) β€” the cim girlie's field guide

okay bestie, welcome to cim, from the General Commands Manual fam β€” this is the GNU Cim page and I'm about to make it make sense, no cap ✨

πŸŽ€ NAME πŸŽ€

cim β€” compile Simula programs into C. literally that's her whole job. πŸ’–

🌸 SYNOPSIS 🌸

cim [ options ] file ...

πŸ¦‹ DESCRIPTION πŸ¦‹

okay so GNU Cim is the Simula compiler that compiles into C β€” yes, she's a compiler that makes a C program, and then that C program gets compiled with cc and linked with other modules. multitasking icon behavior. πŸ’…

GNU Cim will accept one Simula program and other none Simula modules. the specified Simula program gets compiled and linked with the modules, periodt. and here's the cute part: if a main Simula program is compiled, then it will be automatic linked with the Simula modules that it uses. but if a separate Class or Procedure is compiled, then the linking will be supressed. lowkey genius. 🧚

✨ OPTIONS ✨

the following options are accepted by the cim command β€” buckle up buttercup, there's a lot of them and I love that for us 🫢

  • -a β€” try to produce an atr-file even if an error occurs. compare the produced atr-file with the atr-file produced from previous compilation and if they differ return an error status code. with use of this option it is possible to have external modules with circular dependencies. you will then need to compile all the modules with this option until no error status codes are returned. then you should do a final compilation with option -p or option -d. to get this to work it is important that the topmost external head does not contain any external declaration that is part of the circular dependency. such external declarations must be placed in an external head that comes after the first class- or procedure decraration. (yes that's a lot, i know, but she's that girl β€” read it twice, i believe in you 😭)
  • -b β€” the following argument will be parsed to the CC-command.
  • -B β€” the following argument will be parsed to the link-command.
  • -c β€” supress linking of the complete program.
  • -Cname β€” set the name of the C compiler.
  • -d β€” compare the produced c-code with the code produced from previous compilation and if they are equal then touch the object-file instead of compiling the c-code.
  • -Dname β€” define a symbol name.
  • -e β€” on systems that support dynamic linking, this prevents linking with the shared libraries. on other systems, this option has no effect. (she said "i mean... if you even can" πŸ’€)
  • -E β€” run only the preprocessor and output the result to standard output.
  • -g β€” make the C compiler produce debugging information. this option is useful for debugging the generated code.
  • -G β€” invoke the Gnu Project C compiler instead of the standard C compiler. this option is useful if the standard C compiler don't generate correct code. (shade. honestly, deserved.)
  • -h β€” print a summary of the options to cim, and exit.
  • -H β€” omit line number information in the compiled program. this will make the program smaller and faster. πŸ”₯
  • -I dir β€” use the Simula include file located in directory dir instead of the standard directory.
  • -llibrary β€” link with object library library. this option is parsed to the link-command.
  • -L dir β€” use the Simula library located in directory dir instead of the standard directory.
  • -m β€” the memory pool size may be set at runtime by an option -mn.
  • -mn β€” set the initial memory pool size to n mega bytes.
  • -Mn β€” set the maximal memory pool size to n mega bytes.
  • -N β€” only link the specifiede files. (that spelling? it's hers. we keep it. 😌)
  • -o β€” the following argument is the name of the output executable file.
  • -p β€” if supported for the target machines, generate position-independent code, suitable for use in a shared library.
  • -P β€” only link the specifiede files.
  • -q β€” run the compiler in quiet mode. 🀫
  • -s β€” only C-compile and link the specified files.
  • -S β€” run the source file trough Simula-compiler, only.
  • -R β€” recompile the module using the same timestamp.
  • -t β€” do not remove temporary files. if a main program is compiled with option -r, then the executable file will be removed unless this option or option -T is specified.
  • -Uname β€” remove any initial definition of the symbol name (inverse of the -D option).
  • -v β€” run the compiler in verbose mode. πŸ—£οΈ
  • -V β€” print the version number of Cim and exit.
  • -w β€” do not print warnings.

🌈 FILES 🌈

  • file β€” executable file.
  • file.a β€” library of source files, attribute files and object files. include this simula library when compiling and linking. the simula library is created with ar(1V) and ranlib(1). all source and .atr files should be placed before .o files in the archive. (order matters bestie, don't do her dirty πŸ™ˆ)
  • file.o β€” object file.
  • file.c β€” Simula-compiler output file.
  • file.h β€” output file that is included in file.c.
  • file.sim β€” Simula source file.
  • file β€” file names without an extension are assumed to be shorthand notation for the corresponding .sim file. (she's psychic like that πŸ’…)
  • /usr/local/lib/libcim.a β€” Simula library that contains the environment, Run Time System and class Simset and Simulation. the source code to Simset and Simulation is also included, so these parts can be compiled using compiler directive %include.
  • /usr/local/include/cim.h β€” include file for the produced C-code.

πŸ‘‘ SE ALSO πŸ‘‘

cc(1), ld(1), ar(1V), lorder(1), topsort(1), ranlib(1)

Standard Simula, SS 636114. The Simula Standards Group, August 1986.

Viderefoering og testing av et portabelt Simula-system. Hovedoppgave til cand.scient.-graden av Terje Mjoes. Institutt for informatikk, Universitetet i Oslo, April 1989.

Et portabelt Simula-system bygget paa C. Hovedoppgave til cand.scient.-graden av Sverre Johansen. Institutt for informatikk, Universitetet i Oslo, Mai 1987.


πŸ’œ DIAGNOSTICS πŸ’œ

the diagnostics produced by the Simula compiler are intended to be self-explanatory. she explains herself, she doesn't need a translator. 😌✨

πŸ’€ BUGS πŸ’€

bugs should be reported to bug-cim@gnu.org. do not suffer in silence, bestie, send the email πŸ“§

🌟 AUTHOR 🌟

Sverre Hvammen Johansen, Department of Informatics, University of Oslo. legend behavior, honestly πŸ‘‘


πŸŽ€ and that's the whole page, babe β€” this one's from 13 Jan 1989, filed under CIM(1) in the General Commands Manual, and yes she's vintage but she ate and left absolutely no crumbs. mwah πŸ’‹πŸ’–

πŸ“¦ where this page comes from