From b6af0e942dcde433db96a298a25490aa44e88173 Mon Sep 17 00:00:00 2001 From: zinc Date: Thu, 15 Oct 2026 15:25:23 +0330 Subject: hold: copy hold.h with micro.c everywhere; xref baseline for hold globals; lsp keyword completion yields to a same-named symbol; compiler message avoids the word actor --- tests/bench/bench_bytes.sh | 2 +- tests/bench/bench_share.sh | 2 +- tests/bench/bench_strings.sh | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) (limited to 'tests/bench') diff --git a/tests/bench/bench_bytes.sh b/tests/bench/bench_bytes.sh index 775b71d..c509da4 100644 --- a/tests/bench/bench_bytes.sh +++ b/tests/bench/bench_bytes.sh @@ -10,7 +10,7 @@ T=$(mktemp -d) trap 'rm -rf "$T"' EXIT $CC -O2 -w src/tools/genmap.c -o "$T/genmap" || exit 1 GENMAP="$T/genmap" bash src/tools/automap.sh run "$T/run" src/runtime/run.zc tests/programs/bench_bytes.zc >/dev/null || exit 1 -cp src/micro/micro.c src/micro/micro_port.h src/micro/port_linux.c src/core/core.c src/core/io_linux.c src/core/fops.h src/core/bops.h src/core/stack.h src/core/genome.h "$T/run/" +cp src/micro/micro.c src/micro/micro_port.h src/micro/port_linux.c src/core/core.c src/core/io_linux.c src/core/fops.h src/core/bops.h src/core/stack.h src/core/hold.h src/core/genome.h "$T/run/" $CC -O2 -w -DJTYPE=int "$T/run/core.c" "$T/run/io_linux.c" -o "$T/zy" || exit 1 $CC -O2 -w "$T/run/micro.c" "$T/run/port_linux.c" -o "$T/zym" || exit 1 vms=("$T/zy" "$T/zym"); names=("interp" "micro") diff --git a/tests/bench/bench_share.sh b/tests/bench/bench_share.sh index 5cb1bfd..c47f5f5 100644 --- a/tests/bench/bench_share.sh +++ b/tests/bench/bench_share.sh @@ -8,7 +8,7 @@ T=$(mktemp -d) trap 'rm -rf "$T"' EXIT $CC -O2 -w src/tools/genmap.c -o "$T/genmap" || exit 1 "$T/genmap" --preset run -o "$T/run" >/dev/null || exit 1 -cp src/tools/zc0.c src/micro/micro.c src/micro/micro_port.h src/micro/port_linux.c src/core/core.c src/core/io_linux.c src/core/fops.h src/core/bops.h src/core/stack.h src/core/genome.h "$T/run/" +cp src/tools/zc0.c src/micro/micro.c src/micro/micro_port.h src/micro/port_linux.c src/core/core.c src/core/io_linux.c src/core/fops.h src/core/bops.h src/core/stack.h src/core/hold.h src/core/genome.h "$T/run/" $CC -O1 -w "$T/run/zc0.c" -o "$T/zc0" || exit 1 cat "$T/run/rt.zc" src/core/core.zc src/runtime/run.zc tests/programs/bench_share.zc | "$T/zc0" > "$T/run/genome.bin" || exit 1 $CC -O2 -w -DJTYPE=int "$T/run/core.c" "$T/run/io_linux.c" -o "$T/zy" || exit 1 diff --git a/tests/bench/bench_strings.sh b/tests/bench/bench_strings.sh index b14bf57..8bf3b77 100644 --- a/tests/bench/bench_strings.sh +++ b/tests/bench/bench_strings.sh @@ -8,7 +8,7 @@ T=$(mktemp -d) trap 'rm -rf "$T"' EXIT $CC -O2 -w src/tools/genmap.c -o "$T/genmap" || exit 1 "$T/genmap" --preset run -o "$T/run" >/dev/null || exit 1 -cp src/tools/zc0.c src/micro/micro.c src/micro/micro_port.h src/micro/port_linux.c src/core/core.c src/core/io_linux.c src/core/fops.h src/core/bops.h src/core/stack.h src/core/genome.h "$T/run/" +cp src/tools/zc0.c src/micro/micro.c src/micro/micro_port.h src/micro/port_linux.c src/core/core.c src/core/io_linux.c src/core/fops.h src/core/bops.h src/core/stack.h src/core/hold.h src/core/genome.h "$T/run/" $CC -O1 -w "$T/run/zc0.c" -o "$T/zc0" || exit 1 cat "$T/run/rt.zc" src/core/core.zc src/runtime/run.zc tests/programs/bench_strings.zc | "$T/zc0" > "$T/run/genome.bin" || exit 1 $CC -O2 -w -DJTYPE=int "$T/run/core.c" "$T/run/io_linux.c" -o "$T/zy" || exit 1 -- cgit v1.2.3 From af6e910abedd6fe3091b41910bd289c338b24612 Mon Sep 17 00:00:00 2001 From: zinc Date: Thu, 15 Oct 2026 16:22:50 +0330 Subject: bench: actor peak-rss probe (N=0/10/100 on zy, zyi, zym) --- tests/bench/rss/a0.zc | 11 +++++++++++ tests/bench/rss/a10.zc | 11 +++++++++++ tests/bench/rss/a100.zc | 11 +++++++++++ tests/bench/rss/measure.py | 13 +++++++++++++ 4 files changed, 46 insertions(+) create mode 100644 tests/bench/rss/a0.zc create mode 100644 tests/bench/rss/a10.zc create mode 100644 tests/bench/rss/a100.zc create mode 100644 tests/bench/rss/measure.py (limited to 'tests/bench') diff --git a/tests/bench/rss/a0.zc b/tests/bench/rss/a0.zc new file mode 100644 index 0000000..b8555d0 --- /dev/null +++ b/tests/bench/rss/a0.zc @@ -0,0 +1,11 @@ +namespace; +include rt, actor; +typecheck on; +int work(int n) { rt.syscall(48, 500, 0, 0); return n + 1; } +fn main() { + let n = 0, i = 0, sum = 0; + actor.Actor*[101] as; + while (i < n) { as[i] = rt.new(actor.Actor); as[i].spawn(work); as[i].recv(fn(int v) { sum = sum + v; return 0; }); as[i].send(i); i++; } + i = 0; while (i < n) { as[i].await(); as[i].close(); i++; } + rt.put_n(sum); rt.put_c(10); return 0; +} diff --git a/tests/bench/rss/a10.zc b/tests/bench/rss/a10.zc new file mode 100644 index 0000000..aa09ce1 --- /dev/null +++ b/tests/bench/rss/a10.zc @@ -0,0 +1,11 @@ +namespace; +include rt, actor; +typecheck on; +int work(int n) { rt.syscall(48, 500, 0, 0); return n + 1; } +fn main() { + let n = 10, i = 0, sum = 0; + actor.Actor*[101] as; + while (i < n) { as[i] = rt.new(actor.Actor); as[i].spawn(work); as[i].recv(fn(int v) { sum = sum + v; return 0; }); as[i].send(i); i++; } + i = 0; while (i < n) { as[i].await(); as[i].close(); i++; } + rt.put_n(sum); rt.put_c(10); return 0; +} diff --git a/tests/bench/rss/a100.zc b/tests/bench/rss/a100.zc new file mode 100644 index 0000000..f869026 --- /dev/null +++ b/tests/bench/rss/a100.zc @@ -0,0 +1,11 @@ +namespace; +include rt, actor; +typecheck on; +int work(int n) { rt.syscall(48, 500, 0, 0); return n + 1; } +fn main() { + let n = 100, i = 0, sum = 0; + actor.Actor*[101] as; + while (i < n) { as[i] = rt.new(actor.Actor); as[i].spawn(work); as[i].recv(fn(int v) { sum = sum + v; return 0; }); as[i].send(i); i++; } + i = 0; while (i < n) { as[i].await(); as[i].close(); i++; } + rt.put_n(sum); rt.put_c(10); return 0; +} diff --git a/tests/bench/rss/measure.py b/tests/bench/rss/measure.py new file mode 100644 index 0000000..070db1e --- /dev/null +++ b/tests/bench/rss/measure.py @@ -0,0 +1,13 @@ +import sys,subprocess,resource,os +repo=sys.argv[1] +for b in ['zy','zyi','zym']: + row=[b] + for n in [0,10,100]: + pid=os.fork() + if pid==0: + fd=os.open(f''+os.path.dirname(os.path.abspath(__file__))+'/a{n}.zc',os.O_RDONLY); os.dup2(fd,0) + nul=os.open('/dev/null',os.O_WRONLY); os.dup2(nul,1) + os.chdir(repo); os.execv(f'{repo}/build/bin/{b}',[b]) + _,st,ru=os.wait4(pid,0) + row.append(f'{ru.ru_maxrss/1024:.1f}' + ('' if st==0 else f'(st{st})')) + print(' '.join(row)) -- cgit v1.2.3 From 7a3b9ed01e74b32b2775f2dc435abb66743771ff Mon Sep 17 00:00:00 2001 From: zinc Date: Thu, 15 Oct 2026 16:23:06 +0330 Subject: bench: rss probe path fix --- tests/bench/rss/measure.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'tests/bench') diff --git a/tests/bench/rss/measure.py b/tests/bench/rss/measure.py index 070db1e..b4ad889 100644 --- a/tests/bench/rss/measure.py +++ b/tests/bench/rss/measure.py @@ -5,7 +5,7 @@ for b in ['zy','zyi','zym']: for n in [0,10,100]: pid=os.fork() if pid==0: - fd=os.open(f''+os.path.dirname(os.path.abspath(__file__))+'/a{n}.zc',os.O_RDONLY); os.dup2(fd,0) + fd=os.open(os.path.dirname(os.path.abspath(__file__))+f'/a{n}.zc',os.O_RDONLY); os.dup2(fd,0) nul=os.open('/dev/null',os.O_WRONLY); os.dup2(nul,1) os.chdir(repo); os.execv(f'{repo}/build/bin/{b}',[b]) _,st,ru=os.wait4(pid,0) -- cgit v1.2.3