Some more compile time errors, some bug fixes for runtime

This commit is contained in:
Dane Johnson 2025-08-25 11:44:48 -05:00
parent 274376a5de
commit 33f1618915
2 changed files with 18 additions and 2 deletions

View File

@ -31,7 +31,7 @@ alloc-do-gc
(drop)
(drop)
;; Run garbage collection
(push gc-start)
(push gc-run)
(call)
;; Tail-call allocation
(push alloc)
@ -123,6 +123,19 @@ reg-relocated
(drop)
(return)
gc-loop
(ref free)
(ref scan)
(<)
(branch gc-loop-done)
(ref scan)
(relocate-reg)
(push gc-loop)
(jmp)
gc-loop-done
(return)
main
;; These need to be initialized with the runtime
(push memory)

View File

@ -76,7 +76,10 @@
(when (eq? (car inst) 'push)
(if (number? (cadr inst))
(write-word (cadr inst))
(write-word (assq-ref labels (cadr inst)))))
(let ([address (assq-ref labels (cadr inst))])
(if address
(write-word (assq-ref labels (cadr inst)))
(error (format #f "Could not find label ~a" (cadr inst)))))))
(assembly-pass (cdr seq) labels))]))
(define (assemble instructions port)