No description
  • PureBasic 93.8%
  • Shell 6.2%
Find a file
René Linder c7af39ec17 LHSLIB-7: Smoke Section 15 (20 RFC-8259-Strictness-Asserts) + Submodule-Bump
20 neue Smoke-Asserts in Section [15] (lhs_json_smoke.pb):
  - Fix #1 UTF-8: invalid continuation, stray continuation, encoded
    surrogate, valid multi-byte
  - Fix #2 Builder State-Machine: Push-in-Object, Key-in-Array,
    Doppel-Root, ArrEnd-in-Object, FinalizeToString offen/leer,
    Valid-Path
  - Fix #3 Decoded Keys: \/ via ObjectGet, \n im Key, UTF-8-Multi-Byte
    Key, KeyString liefert dekodiert
  - Fix #4 Float: NaN broken, Infinity broken, finite OK

Plus Section 10: 2 alte laxe Tests angepasst auf neue strikte Semantik
("Fresh builder Not-yet-valid" + "ObjEnd ohne Open → broken").

Submodule-Bump lhs_lib → 079e694.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-17 12:43:15 +02:00
bench_results Initial: lhs_lib_full wrapper repo (lhs_lib submodule + tests + bench results) 2026-05-14 14:29:45 +02:00
lhs_lib@079e694f97 LHSLIB-7: Smoke Section 15 (20 RFC-8259-Strictness-Asserts) + Submodule-Bump 2026-05-17 12:43:15 +02:00
tests LHSLIB-7: Smoke Section 15 (20 RFC-8259-Strictness-Asserts) + Submodule-Bump 2026-05-17 12:43:15 +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 CLAUDE.md: Logger-Stack + AllocAtomic + 2026-05-16 Stand 2026-05-16 04:17:58 +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.