target-toolchain: cross-target
target-toolchain: lib/runtime.com
-@IF_LIARC@microcode/scheme: compile-runtime
+@IF_LIARC@microcode/scheme: all-runtime
@IF_SVM@microcode/scheme: microcode/svm1-defns.h
microcode/scheme:
(cd microcode && $(MAKE) all)
@IF_LIARC@all-runtime: bundle-runtime
.PHONY: bundle-runtime
+bundle-runtime: runtime/runtime-os2.c
bundle-runtime: runtime/runtime-unx.c
+bundle-runtime: runtime/runtime-w32.c
.PHONY: compile-runtime
compile-runtime: toolchain
(cond ((string? item) item)
((char? item) (string item))
((symbol? item) (symbol-name item))
- ((number? item) (number->string item))
+ ((number? item)
+ ;; XXX Kludgey test for negative zero, to support building
+ ;; from versions when NUMBER->STRING failed to do that itself.
+ (if (and (flo:flonum? item)
+ (flo:zero? item)
+ (flo:negative? (flo:atan2 item -1.)))
+ "-0."
+ (number->string item)))
((decoded-time? item) (decoded-time->iso8601-string item))
((not item) "false")
((eq? item #t) "true")
prog)))
((flo:flonum? obj)
(build/string stackify-opcode/push-flonum
- (number->string obj)
+ ;; XXX Kludgey test for negative zero, to
+ ;; support building from versions when
+ ;; NUMBER->STRING failed to do that itself.
+ (if (and (flo:zero? obj)
+ (flo:negative? (flo:atan2 obj -1.)))
+ "-0."
+ (number->string obj))
prog))
;; The runtime system needs the following
((interpreter-return-address? obj)