From acc561366f3fe6ec0377103f52ef0f7e923711c9 Mon Sep 17 00:00:00 2001 From: Rose Hogenson Date: Mon, 1 Aug 2022 19:35:19 -0700 Subject: Modify the project structure. Now the lib directory contains what will eventually end up on the user's /usr/lib/csc. When I write make install, it will copy all of the .csc files from lib into the destination lib directory. This means I can start working on the standard library in lib/scheme. --- lib/csc/linker-test.csc | 49 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 lib/csc/linker-test.csc (limited to 'lib/csc/linker-test.csc') diff --git a/lib/csc/linker-test.csc b/lib/csc/linker-test.csc new file mode 100644 index 0000000..adbcf91 --- /dev/null +++ b/lib/csc/linker-test.csc @@ -0,0 +1,49 @@ +(define-library (csc linker-test) + (import (scheme base) + (only (csc format) + sprintf) + (only (csc hash-map) + alist->map + hash-bytevector + make-comparer + make-map) + (only (csc list) + all) + (only (csc testing) + assert-equal + test) + (csc linker)) + (begin + + + (test link-labels + (assert-equal + '((alloc (local 0) (const 0)) + (jmp (const 2)) + (jmp (const 1))) + (link + '(((label 0) + (jmp (label 1)) + (label 1) + (jmp (label 0))))))) + + + (test link-labels-are-unique-per-program + (assert-equal + '((alloc (local 0) (const 0)) + (jmp (const 1)) + (jmp (const 2))) + (link + '(((label 0) + (jmp (label 0))) + ((label 0) + (jmp (label 0))))))) + + + (test link-globals + (assert-equal + '((alloc (local 0) (const 11)) + (peek (local 1) (local 0) (const 10))) + (link + '(((peek (local 1) (local 0) (global cons (csc based))))) + (alist->map compare-globals '(((global cons (csc based)) . 10)))))))) -- cgit v1.3.1