Repository navigation
v0.4.2
Install
curl -fsSL https://raw.githubusercontent.com/orelang/ore/main/install.sh | shor brew install orelang/tap/ore; then ore update keeps it up to date.
Each archive carries its LLVM and lld.
| For | File |
|---|---|
| Linux x86-64 | ore-v0.4.2-linux-amd64.tar.gz |
| Linux arm64 | ore-v0.4.2-linux-arm64.tar.gz |
| macOS arm64 | ore-v0.4.2-darwin-arm64.tar.gz |
| VS Code extension | ore-vscode-v0.4.2.vsix |
| Zed extension | ore-zed-v0.4.2.zip |
The editor extensions run ore lsp, so ore must be on PATH. VS Code:
install "Ore" (orelang.ore) from the Marketplace or Open VSX, or
code --install-extension ore-vscode-v0.4.2.vsix. Zed: unzip
ore-zed-v0.4.2.zip and pick its directory in zed: install dev extension
(Zed builds it with Rust, which must be installed with rustup).
What is in 0.4.2
Faster string-keyed maps.
- String-keyed maps are faster (
bench/knucleotideabout 1.9x,wordcount
1.25x,map1.25x, in CPU time on an M-series Mac). The index of a map
keeps the high bits of each key's hash beside the entry, so probing
compares keys only when those match; string keys and 8-byte keys
(integers, objects by identity) are hashed and compared by the runtime
itself, strings a word at a time instead of FNV-1a's byte at a time; and
map.set(key, f(map.get(key))), wherefonly computes with locals and
constants (counts.set(w, (counts.get(w) ?? 0) + 1)), hashes and looks
up the key once.indexOfandsplitno longer call memcmp for a
one-byte separator.