lily/README.md
koniifer fd42e53ae5 lots of work again (mostly broken on libc target)
implement foldhash
implement hashmap
squash & log some more bugs
clean up Target & Config interfaces
add rudimentary math functions
extract allocators to new directory
implement vec.get_ref
fix capitalisation
document some of lily's type spec
2025-01-10 19:32:27 +00:00

1.2 KiB

Lily

an attempt at a cross-platform standard library for hblang.

Important

all features, targets, modules, etc, are provisional and may be subject to change or deletion

use ./build -h to see available arguments.

supports:

  • changing target
  • custom linker (for native targets)
  • running the executable (for native targets)
  • setting output path
  • dumping assembly representation
  • only recompiling if either source or environment change

To change build target

use the -t flag supplied in ./build

use a target triple (i.e. x86_64-unknown-linux-gnu), or pick from one of these aliases:

Note

hbvm == ableos (for now)

  • hbvm
  • ableos
  • libc (links to system libc)

Modifying build config

compiler flags are in: ./build (at top of file)

used for NON-CODE configuration

compile-time configuration is in: ./src/lily/lib.hb

used for things like toggling debug assertions, setting minimum log level, etc

Features

features include:

  • heap allocator
  • system rand
  • memory operations
  • math operations
  • string operations, including split iteration
  • hasher
  • hashmap
  • vec (dynamic array)
  • printing & logging
  • result type
  • typesystem wrapper
  • string formatting & interpolation