Revision history for CRoaring
0.2.2 2026-04-15T23:43:15+01:00
- Build.rakumod: detect system glibc via `ldd --version` and
fall back to source compile when it's older than the prebuilt
target (currently v2.35, matching the ubuntu-22.04 CI runner).
Previously, users on Ubuntu 20.04 / Debian 11 / RHEL 8 /
Amazon Linux 2 downloaded a prebuilt .so that loaded but
failed at first symbol use with "GLIBC_2.xx not found". The
guard fires before the download so affected users just see a
one-line note and a ~20s source compile instead.
CROARING_BINARY_ONLY=1 now hard-fails with a clear message on
old-glibc systems rather than producing a broken install.
- New CI workflow .github/workflows/glibc-fallback.yml: runs
`zef install .` inside an ubuntu:20.04 container (glibc 2.31)
and asserts both that the fallback message appears in the
build log and that the source-compiled .so loads + works.
0.2.1 2026-04-14T23:02:44+01:00
- Windows prebuilt download: swap `shell "curl '$url' ..."` for
`run 'curl', ..., $url` with an arg list. cmd.exe treats single
quotes as literal characters, which mangled the URL + caused
curl to parse the Windows drive letter in the output path as
a malformed URL scheme. The shell-less invocation sidesteps
cmd.exe/bash quoting quirks entirely.
- SHA256 check rewritten against the same shell-free pattern:
`run 'certutil'` / `run 'shasum'` with stdout captured via
pipe. Windows digest parsing now tolerates both the unspaced
(Win10+) and space-separated-bytes (older Windows) certutil
output formats.
0.2.0 2026-04-14T22:48:19+01:00
- Prebuilt-binary-first install path. Build.rakumod now attempts
to download a statically-linked .dylib / .so / .dll from the
repo's GitHub Releases for the detected (OS, arch) pair before
falling back to source compilation.
- SHA256 verification against bundled resources/checksums.txt;
refuses any prebuilt whose hash isn't recorded (hard security
boundary — no downloaded checksums trusted).
- Cache downloaded artefacts in $XDG_CACHE_HOME/CRoaring-binaries/
(or $HOME/.cache/ fallback) so reinstalls skip the network.
- Hardened source-compile fallback: macOS uses @rpath install
name for relocatability; Linux + macOS strip symbols.
- New env knobs: CROARING_BUILD_FROM_SOURCE=1 to skip prebuilts;
CROARING_BINARY_ONLY=1 to refuse fallback; CROARING_BINARY_URL
to override the release base URL; CROARING_CACHE_DIR to
override the cache location; CROARING_LIB for runtime lib path
override.
- New workflow .github/workflows/build-binaries.yml: builds and
publishes prebuilt artefacts for six platforms (macOS arm64,
macOS x86_64, Linux x86_64/aarch64 glibc, Windows x86_64/arm64)
on manual dispatch or binaries-* tag push.
- README: documented the two install paths, env vars, supported
platforms, and the independent binary-release version scheme
(binaries-croaring--r).
0.1.3 2026-04-07T19:46:26+01:00
- Fixed Windows build: cd to vendor dir before cl/link so .obj files are co-located
0.1.2 2026-04-07T19:39:47+01:00
- Fixed Windows DLL symbol exports using .def file + separate compile/link
- Build.rakumod uses two-step cl/link on Windows for correct /DEF: handling
0.1.1 2026-04-07T19:29:18+01:00
- Added Windows CI support using MSVC via compnerd/gha-setup-vsdevenv
0.1.0 2026-04-07T18:40:37+01:00
- Initial release
- NativeCall bindings for CRoaring compressed bitmaps
- Vendored C amalgamation with Build.rakumod
- Set operations: and, or, xor, andnot
- Bulk operations: add-many, from-array, from-range
- Pagination: select, slice, slice-reverse
- Serialization: portable format serialize/deserialize
- C helpers: radix sort, merge, dedupe, bitmap-based remove
- Deterministic dispose + GC-based DESTROY