F - Standard Library

Assert Standard Library (or asslib) is an interface between an abstract Assert language and an operating system. With its help, the execution of some keywords is implemented.

If you dump a compiled file, you can see standard names in the ELF-symtab section (6-7 in the output below):

$ readelf -s compiled.o

Symbol table '.symtab' contains 9 entries:
   Num:    Value          Size Type    Bind   Vis      Ndx Name
     0: 0000000000000000     0 NOTYPE  LOCAL  DEFAULT  UND 
     1: 0000000000000000     0 FILE    LOCAL  DEFAULT  ABS hello.o
     2: 0000000000000000     0 SECTION LOCAL  DEFAULT    1 .text
     3: 0000000000000000     0 SECTION LOCAL  DEFAULT    2 .rodata
     4: 0000000000000000     0 SECTION LOCAL  DEFAULT    3 .data
     5: 0000000000000000     0 SECTION LOCAL  DEFAULT    4 .bss
     6: 0000000000000000     0 NOTYPE  GLOBAL DEFAULT  UND __ass_print
     7: 0000000000000000     0 NOTYPE  GLOBAL DEFAULT  UND __ass_scan
     8: 0000000000000038     0 NOTYPE  GLOBAL DEFAULT    1 _start

Sources

You can find the source code in the official Assert repository:

  • asslib.s - standard library implementation for legacy backend
  • asslib-llvm.c - standard library implementation for llvm backend
  • STDLIB - ELF64 configuration file.