an attempt at a cross-platform standard library for hblang
Find a file
koniifer 33cf8d7209 iterator work
improve performance of split, chars, chars_ref
properly implement lily.iter.Iterator.fold
partially implement lily.iter.Iterator.collect
fix lily.iter.Skip logic
code cleanup
write proposed iterator spec
2025-01-18 18:49:46 +00:00
docs iterator work 2025-01-18 18:49:46 +00:00
src iterator work 2025-01-18 18:49:46 +00:00
.gitignore lots of work again (mostly broken on libc target) 2025-01-10 19:32:27 +00:00
build medium sized work 2025-01-17 12:39:01 +00:00
LICENSE Initial commit 2024-12-31 11:47:31 -06:00
README.md lots of work again (mostly broken on libc target) 2025-01-10 19:32:27 +00:00
TODO.md lots of work again (mostly broken on libc target) 2025-01-10 19:32:27 +00:00

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