add code for writing out metadata to the end of a program
authorAndy Wingo <wingo@pobox.com>
Sun, 1 Feb 2009 09:15:00 +0000 (10:15 +0100)
committerAndy Wingo <wingo@pobox.com>
Sun, 1 Feb 2009 09:15:00 +0000 (10:15 +0100)
commit1f1ec13b5c459717b22030565e591f1f713ee39d
tree8e404fed86e857fd6a860cfdc9eaae0466dc0bbf
parent9aeaabdc4571b5a2319c88e02904bd8996d5ac01
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.
libguile/objcodes.c
libguile/objcodes.h
module/language/assembly.scm
module/language/assembly/compile-bytecode.scm
module/language/assembly/decompile-bytecode.scm
module/language/assembly/disassemble.scm
module/language/glil/compile-assembly.scm
module/system/vm/objcode.scm
test-suite/tests/asm-to-bytecode.test