No description
  • PureBasic 96.1%
  • Shell 3.9%
Find a file
René Linder 3cfc404fb2 arena-guard: Poison-Guard/Sentinel-Smoke + build.sh -co-Flag + lhs_lib-Bump
lhs_lib -> 902770e (lhs_arena Poison-Guard + Concurrency-Sentinel).

- tests/smoke/lhs_arena_guard_smoke.pb (14 Asserts):
  [1] Normalbetrieb -> keine False-Positives (Poison/Concurrency/Callback alle 0)
  [2] Use-after-Destroy + Map-Read-after-Destroy + Double-Destroy -> sichere
      Defaults (0/#False) statt SIGSEGV/SIGABRT; PoisonHits + Callback (Alloc/
      MapRead/Destroy via DiagOpName) bestaetigt
  [3] Concurrency-Sentinel: Holder (Reset-Loop, haelt in_mut waehrend Chunk-Walk)
      vs reiner Reader (MapExists, schreibt in_mut nie -> speichersicher) ->
      ConcurrencyHits > 0 zuverlaessig (842k Hits in Runde 1)
- build.sh: per-File-Extra-Flags; lhs_arena_guard_smoke baut mit
  -co LHS_ARENA_DEBUG=1 (PB-Module kapseln Konstanten -> Quelltext-`#`-Define
  erreicht das Module nicht; CLI-Injektion quert die Grenze).
- CLAUDE.md: Smoke-Liste um lhs_arena_guard (14) ergaenzt.

Voller build.sh-Lauf gruen; arena/arena_stress/arena_atomic_stress/gc_*-Suiten
+ json (102) unveraendert rc=0.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-04 15:35:48 +02:00
bench_results GC_MEM: Dynamische Verifikation (Helgrind/DRD) + Edge-Tests + Bench-Baseline 2026-06-03 07:40:16 +02:00
idee_docs idee_docs: Code-Analyse Reviewer=Kimi + Datum klargestellt 2026-06-03 15:50:37 +02:00
lhs_lib@902770e0eb arena-guard: Poison-Guard/Sentinel-Smoke + build.sh -co-Flag + lhs_lib-Bump 2026-06-04 15:35:48 +02:00
tests arena-guard: Poison-Guard/Sentinel-Smoke + build.sh -co-Flag + lhs_lib-Bump 2026-06-04 15:35:48 +02:00
.gitignore Bump lhs_lib submodule (lhs_file/cpu_info/mem_info), add smokes + build helper + CLAUDE.md 2026-05-14 15:09:40 +02:00
.gitmodules Initial: lhs_lib_full wrapper repo (lhs_lib submodule + tests + bench results) 2026-05-14 14:29:45 +02:00
CLAUDE.md arena-guard: Poison-Guard/Sentinel-Smoke + build.sh -co-Flag + lhs_lib-Bump 2026-06-04 15:35:48 +02:00
README.md Initial: lhs_lib_full wrapper repo (lhs_lib submodule + tests + bench results) 2026-05-14 14:29:45 +02:00

lhs_lib_full

Wrapper-Repository für lhs_lib (eingebunden als Git-Submodule) plus Tests, Benchmarks und Bench-Ergebnisse.

Analog zum NET_Framework-Layout (net_lib als Submodule + Drumherum).

Verzeichnis-Layout

lhs_lib_full/
├── lhs_lib/                     ← Submodule: gitea.lihaso.com:3001/PB_Includes/lhs_lib.git
│   ├── SYS/                     (Module: lhs_arena, lhs_atomic, lhs_lockfree_queue,
│   │                             lhs_disk_vfs, lhs_log, lhs_log_ext, lhs_uuid,
│   │                             lhs_sys_debug_wrapper)
│   ├── GUI/                     (lhs_dialog)
│   └── README.md
├── tests/
│   ├── lhs_arena_bench.pb       Performance-Benchmark gegen PB-Native
│   ├── lhs_arena_memprof.pb     Memory-Footprint-Profiler (Peak-RSS, Page-Faults)
│   └── build_csv.sh             Vergleichstabellen-Generator
└── bench_results/
    ├── comparison.csv           Modern vs alte CPU
    ├── ryzen_results.txt        Ryzen AI 9 HX 370 (24c, Zen 5)
    ├── x5650_results.txt        Xeon X5650 (4c VM, Westmere)
    ├── memprof_local.txt        Memory-Profile Ryzen
    └── memprof_x5650.txt        Memory-Profile X5650

Clone mit Submodule

git clone --recurse-submodules ssh://git@gitea.lihaso.com:3001/PB_Includes/lhs_lib_full.git
# oder nachträglich:
git clone ssh://git@gitea.lihaso.com:3001/PB_Includes/lhs_lib_full.git
cd lhs_lib_full
git submodule update --init --recursive

Tests bauen + laufen

cd tests
pbcompilerc lhs_arena_bench.pb   --thread --optimizer --executable arena_bench
pbcompilerc lhs_arena_memprof.pb                     --executable arena_memprof

./arena_bench   > ../bench_results/$(hostname)_bench.txt
./arena_memprof pb         100000 > ../bench_results/$(hostname)_memprof_pb.txt
./arena_memprof arena      100000 > ../bench_results/$(hostname)_memprof_arena.txt
./arena_memprof ppql_pb     50000 > ../bench_results/$(hostname)_memprof_ppql_pb.txt
./arena_memprof ppql_arena  50000 > ../bench_results/$(hostname)_memprof_ppql_arena.txt

Bench-Highlights

Ryzen AI 9 HX 370 (24 Cores, Zen 5) gegen PB-Native bei 100 000 Map-Einträgen:

Test PB-Native lhs_arena Speedup
Map-Lifecycle (Insert + Lookup + Cleanup) 269 ms 27.6 ms 9.7×
Concurrent (1000 Threads × 5k ops, 90% read) 4.62 s 102 ms 45×
PPQL Result-Set 50k Rows × 10 Cols 9.89 s 69 ms 143×
HTTP Header-Match (500 known, Bytes-API) 1.4 µs/op 43 ns/op 32×

Xeon X5650 (4c VM, Westmere) — vor allem im Tail-Latency-Verhalten und unter Heap-Druck zeigt sich der Gewinn ähnlich oder deutlicher.

Volle Auswertung: bench_results/comparison.csv

Lizenz

SPDX-License-Identifier: LGPL-2.1-or-later OR Commercial

Siehe lhs_lib/README.md für Details und info@lihaso.ch für kommerzielle Lizenzierung.