Mycelium/.gitlab-ci.yml
Ava Affine 3a0a141738 QuickMap and CI
This commit adds a new datatype: the quickmap. It provides an extremely
fast but relatively high collision string hash to whatever key hashmap.

This is optimized purely for variable names, and is intended to use for
variable name lookup during (eval ...) or (string->symbol ...) if I must
implement that.

The hashmap is bucketed, with a set number of buckets (199 in this case).
Each bucket is preallocated at initialization containing an empty vector.
There will only ever be one of these initialized as it is only to contain
globally accessible names.

The interface provides new, get, remove, contains_key, insert, and an
iterator implementation.

Unit tests are included and CI is updated.

Signed-off-by: Ava Affine <ava@sunnypup.io>
2025-06-10 14:16:38 -07:00

42 lines
633 B
YAML
Executable file

default:
image: rustlang/rust:nightly
stages:
- build
- test-frontend
- test-backend
compile-library:
stage: build
script:
- cargo build --lib
compile-decomposer:
stage: build
script:
- cargo build --bin decomposer
unit-test-lexer:
stage: test-frontend
script:
- cargo test lexer
unit-test-parser:
stage: test-frontend
script:
- cargo test parser
unit-test-number-package:
stage: test-backend
script:
- cargo test number
unit-test-stackstack:
stage: test-backend
script:
- cargo test stackstack
unit-test-quickmap:
stage: test-backend
script:
- cargo test hmap