diff --git a/src/ikarus.boot b/src/ikarus.boot index cf607fe..79349c0 100644 Binary files a/src/ikarus.boot and b/src/ikarus.boot differ diff --git a/src/libassembler.ss b/src/libassembler.ss index 1b734b7..38ed13e 100644 --- a/src/libassembler.ss +++ b/src/libassembler.ss @@ -1,4 +1,8 @@ +(library (ikarus assembler) + (export) + (import (scheme)) + (primitive-set! 'make-code (lambda (code-size freevars) (unless (and (fixnum? code-size) ($fx>= code-size 0)) @@ -54,3 +58,6 @@ (unless (vector? v) (error 'set-code-reloc-vector! "~s is not a vector" v)) (foreign-call "ikrt_set_code_reloc_vector" x v))) + +) + diff --git a/src/makefile.ss b/src/makefile.ss index 97db91f..e0b3afd 100755 --- a/src/makefile.ss +++ b/src/makefile.ss @@ -228,25 +228,25 @@ (whack-system-env #t) (define scheme-library-files - '(["libhandlers.ss" "libhandlers.fasl" p0 onepass] - ["libcontrol0.ss" "libcontrol0.fasl" p0 onepass] - ["libcontrol1.ss" "libcontrol1.fasl" p0 onepass] - ["libcollect.ss" "libcollect.fasl" p0 onepass] - ["librecord.ss" "librecord.fasl" p0 onepass] - ["libcxr.ss" "libcxr.fasl" p0 onepass] - ["libnumerics.ss" "libnumerics.fasl" p0 onepass] - ["libguardians.ss" "libguardians.fasl" p0 onepass] - ["libcore.ss" "libcore.fasl" p0 onepass] - ["libchezio.ss" "libchezio.fasl" p0 onepass] - ["libhash.ss" "libhash.fasl" p0 onepass] - ["libwriter.ss" "libwriter.fasl" p0 onepass] - ["libtokenizer.ss" "libtokenizer.fasl" p0 onepass] + '( ["libhandlers.ss" "libhandlers.fasl" p0 onepass] + ["libcontrol0.ss" "libcontrol0.fasl" p0 onepass] + ["libcontrol1.ss" "libcontrol1.fasl" p0 onepass] + ["libcollect.ss" "libcollect.fasl" p0 onepass] + ["librecord.ss" "librecord.fasl" p0 onepass] + ["libcxr.ss" "libcxr.fasl" p0 onepass] + ["libnumerics.ss" "libnumerics.fasl" p0 onepass] + ["libguardians.ss" "libguardians.fasl" p0 onepass] + ["libcore.ss" "libcore.fasl" p0 onepass] + ["libchezio.ss" "libchezio.fasl" p0 onepass] + ["libhash.ss" "libhash.fasl" p0 onepass] + ["libwriter.ss" "libwriter.fasl" p0 onepass] + ["libtokenizer.ss" "libtokenizer.fasl" p0 onepass] ["libassembler.ss" "libassembler.fasl" p0 onepass] - ["libintelasm.ss" "libintelasm.fasl" p0 onepass] + ["libintelasm.ss" "libintelasm.fasl" p0 onepass] ["libfasl.ss" "libfasl.fasl" p0 onepass] ["libtrace.ss" "libtrace.fasl" p0 onepass] - ["libcompile.ss" "libcompile.fasl" p1 onepass] - ["psyntax-7.1.ss" "psyntax.fasl" p0 onepass] + ["libcompile.ss" "libcompile.fasl" p1 onepass] + ["psyntax-7.1.ss" "psyntax.fasl" p0 onepass] ["libpp.ss" "libpp.fasl" p0 onepass] ["libcafe.ss" "libcafe.fasl" p0 onepass] ["libposix.ss" "libposix.fasl" p0 onepass] diff --git a/src/syntax.ss b/src/syntax.ss index df3555d..1285976 100644 --- a/src/syntax.ss +++ b/src/syntax.ss @@ -602,6 +602,8 @@ [fxlogand fxlogand-label (core-prim . fxlogand)] [fxlogor fxlogor-label (core-prim . fxlogor)] [fxlognot fxlognot-label (core-prim . fxlognot)] + [$fx>= $fx>=-label (core-prim . $fx>=)] + [$fx< $fx<-label (core-prim . $fx<)] ;;; generic arithmetic [- minus-label (core-prim . -)] [* *-label (core-prim . *)] @@ -677,15 +679,18 @@ [$record/rtd? $record/rtd?-label (core-prim . $record/rtd?)] ;;; codes [$closure-code $closure-code-label (core-prim . $closure-code)] + [$code? $code?-label (core-prim . $code?)] + [$code-reloc-vector $code-reloc-vector-label (core-prim . $code-reloc-vector)] + [$code-freevars $code-freevars-label (core-prim . $code-freevars)] + [$code-size $code-size-label (core-prim . $code-size)] + [$code-ref $code-ref-label (core-prim . $code-ref)] + [$code-set! $code-set!-label (core-prim . $code-set!)] [code? code?-label (core-prim . code?)] [code-reloc-vector code-reloc-vector-label (core-prim . code-reloc-vector)] [code-size code-size-label (core-prim . code-size)] [code-freevars code-freevars-label (core-prim . code-freevars)] [code-ref code-ref-label (core-prim . code-ref)] - ; [X X-label (core-prim . X)] - ; [X X-label (core-prim . X)] - ; [X X-label (core-prim . X)] - ; [X X-label (core-prim . X)] + [code-set! code-set!-label (core-prim . code-set!)] ;;; misc [immediate? immediate?-label (core-prim . immediate?)] [primitive-set! primitive-set!-label (core-prim . primitive-set!)]