diff options
| author | romir kulshrestha <romir.kulshrestha@gmail.com> | 2026-03-05 14:47:01 +0100 |
|---|---|---|
| committer | romir kulshrestha <romir.kulshrestha@gmail.com> | 2026-03-06 12:21:18 +0100 |
| commit | 8b7956b965147407274f062799200db54eb50d3b (patch) | |
| tree | 4eb60b9434ed504e3eef0650cb6b90ffcbdc1b8c | |
| parent | 6826cf0be1816a8320835ab315d46063dc746aac (diff) | |
run script
| -rw-r--r-- | oryxc/build.rs | 20 | ||||
| -rwxr-xr-x | run.zsh | 21 |
2 files changed, 38 insertions, 3 deletions
diff --git a/oryxc/build.rs b/oryxc/build.rs index 59233c5..7216935 100644 --- a/oryxc/build.rs +++ b/oryxc/build.rs @@ -174,8 +174,18 @@ fn generate_code( writeln!(f, "/* Autogenerated – DO NOT EDIT */").unwrap(); writeln!(f).unwrap(); - writeln!(f, "static {upper_name}_L1: [u16; {}] = {level1:?};", level1.len()).unwrap(); - writeln!(f, "static {upper_name}_L2: [u64; {}] = {level2:?};", level2.len()).unwrap(); + writeln!( + f, + "static {upper_name}_L1: [u16; {}] = {level1:?};", + level1.len() + ) + .unwrap(); + writeln!( + f, + "static {upper_name}_L2: [u64; {}] = {level2:?};", + level2.len() + ) + .unwrap(); writeln!(f, "#[inline]").unwrap(); writeln!(f, "pub fn {pred_name}(c: char) -> bool {{").unwrap(); writeln!(f, "\tlet cp = c as usize;").unwrap(); @@ -184,7 +194,11 @@ fn generate_code( if u64s_per_block == 1 { writeln!(f, "\tunsafe {{ return ({upper_name}_L2.get_unchecked(blki) & (1 << in_blk_offset_p)) != 0; }}").unwrap(); } else { - writeln!(f, "\tlet wordi = (blki * {u64s_per_block}) + (in_blk_offset_p >> 6);").unwrap(); + writeln!( + f, + "\tlet wordi = (blki * {u64s_per_block}) + (in_blk_offset_p >> 6);" + ) + .unwrap(); writeln!(f, "\tlet biti = in_blk_offset_p & 0x3F;").unwrap(); writeln!(f, "\tunsafe {{ return (*{upper_name}_L2.get_unchecked(wordi) & (1 << biti)) != 0; }}").unwrap(); } @@ -0,0 +1,21 @@ +#!/usr/bin/env bash +set -uo pipefail + +BINARY=./target/debug/oryx +COUNT=${COUNT:-100} + +success=0 +fail=0 + +for ((i=1; i<=COUNT; i++)); do + printf '%3d: ' "$i" + if "$BINARY" "$@"; then + echo success + ((success++)) + else + echo fail + ((fail++)) + fi +done + +echo "Done: $success succeeded, $fail failed"
\ No newline at end of file |