Refactor Examples to use assert_eq

This commit updates all example files to use `assert_eq!` for verifying
output, replacing the previous `Output:` comments. This change makes the
examples more robust and self-testing.

The benchmark results in some examples have also been slightly adjusted,
reflecting minor performance variations after the refactoring.

Additionally, a runtime panic handling mechanism has been introduced in
the VM for function calls, which improves error reporting for unexpected
panics.
This commit is contained in:
2026-03-26 15:07:48 +01:00
parent 0088a644eb
commit 16af3ae9fc
40 changed files with 313 additions and 235 deletions
+12 -13
View File
@@ -1,24 +1,23 @@
;; Benchmark: 102ns
;; Benchmark-Repeat: 20685
;; Output: [42 150]
;; Benchmark: 196ns
;; Benchmark-Repeat: 10532
(do
;; 1. Provokation Stack-Gap (bei Optimization Level 2)
(def result
(fn []
(do
(def result
(fn []
(do
;; Wird entfernt, Slot 0 ist dann "leer"
(def unused 10)
(def unused 10)
;; Bleibt auf Slot 1 -> Lücke!
(def used 42)
(def used 42)
used)))
;; 2. Provokation Inlining-Blockade
;; Diese Funktion wird nicht inlined, weil sie ein 'def' enthält
(def complex-add
(fn [a]
(do
(def b 100)
(def complex-add
(fn [a]
(do
(def b 100)
(+ a b))))
[(result) (complex-add 50)]
(assert-eq [42 150] [(result) (complex-add 50)])
)