an attempt at a cross-platform standard library for hblang
Find a file
2025-02-09 23:56:22 +00:00
docs move tests to hbc-tests 2025-02-03 19:26:16 +00:00
hbc-tests move tests to hbc-tests 2025-02-03 19:26:16 +00:00
liblily temp liblily. progress pause until new hblang. 2025-02-09 23:56:22 +00:00
src temp liblily. progress pause until new hblang. 2025-02-09 23:56:22 +00:00
.gitattributes hb is hblang not harbour 2025-02-02 12:47:17 +00:00
.gitignore lots of work again (mostly broken on libc target) 2025-01-10 19:32:27 +00:00
build temp liblily. progress pause until new hblang. 2025-02-09 23:56:22 +00:00
LICENSE Initial commit 2024-12-31 11:47:31 -06:00
README.md temp liblily. progress pause until new hblang. 2025-02-09 23:56:22 +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.

Caution

hblang is currently very broken

like super broken. please don't use lily right now.
hblang is getting rewritten in zig, so soon we will have this all working again.

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