summaryrefslogtreecommitdiff
path: root/module/system/vm/objcode.scm
diff options
context:
space:
mode:
authorAndy Wingo <wingo@pobox.com>2009-02-01 10:15:00 +0100
committerAndy Wingo <wingo@pobox.com>2009-02-01 10:15:00 +0100
commit1f1ec13b5c459717b22030565e591f1f713ee39d (patch)
tree8e404fed86e857fd6a860cfdc9eaae0466dc0bbf /module/system/vm/objcode.scm
parent9aeaabdc4571b5a2319c88e02904bd8996d5ac01 (diff)
downloadguile-1f1ec13b5c459717b22030565e591f1f713ee39d.tar.gz
add code for writing out metadata to the end of a program
* libguile/objcodes.c (make_objcode_by_mmap, scm_c_make_objcode_slice): Verify the lengths with the meta-length. (scm_objcode_meta): New procedure, for getting at the meta-info of an objcode. (scm_objcode_to_bytecode): (scm_write_objcode): Write bytecode with the metadata too. * module/system/vm/objcode.scm: Export object-meta. * module/language/assembly.scm (byte-length): * module/language/assembly/compile-bytecode.scm (write-bytecode): * module/language/assembly/decompile-bytecode.scm (decode-load-program): * module/language/assembly/disassemble.scm (disassemble-load-program): * module/language/glil/compile-assembly.scm (glil->assembly): * test-suite/tests/asm-to-bytecode.test ("compiler"): Change to load-program format to have meta-or-#f instead of meta-length, so that we can serialize the meta as objcode without a load-program byte. Add a test for writing out the meta.
Diffstat (limited to 'module/system/vm/objcode.scm')
-rw-r--r--module/system/vm/objcode.scm3
1 files changed, 2 insertions, 1 deletions
diff --git a/module/system/vm/objcode.scm b/module/system/vm/objcode.scm
index 209f2da54..df1ff26e4 100644
--- a/module/system/vm/objcode.scm
+++ b/module/system/vm/objcode.scm
@@ -20,7 +20,8 @@
;;; Code:
(define-module (system vm objcode)
- #:export (objcode? bytecode->objcode objcode->bytecode
+ #:export (objcode? objcode-meta
+ bytecode->objcode objcode->bytecode
load-objcode write-objcode
word-size byte-order))