From cea82c1ddcea951b24287d057d38375a9caaf7b1 Mon Sep 17 00:00:00 2001 From: Matthew Flatt Date: Sat, 29 Dec 2018 10:15:13 -0600 Subject: [PATCH] cs: use vfasl for boot files --- racket/src/cs/c/Makefile.in | 18 ++++++++++++++++-- racket/src/cs/c/to-vfasl.ss | 17 +++++++++++++++++ racket/src/cs/compile-file.ss | 1 + 3 files changed, 34 insertions(+), 2 deletions(-) create mode 100644 racket/src/cs/c/to-vfasl.ss diff --git a/racket/src/cs/c/Makefile.in b/racket/src/cs/c/Makefile.in index 806512113e..8c167d4bbe 100644 --- a/racket/src/cs/c/Makefile.in +++ b/racket/src/cs/c/Makefile.in @@ -123,8 +123,21 @@ scheme: scheme-make: cd @SCHEME_SRC@ && ./configure @SCHEME_CONFIG_ARGS@ CC="$(CC)" CFLAGS="$(BASE_CFLAGS)" LDFLAGS="$(LDFLAGS)" + mkdir -p @SCHEME_SRC@/@MACH@/boot/@MACH@ + $(MAKE) @SCHEME_SRC@/@MACH@/boot/@MACH@/equates.h + $(MAKE) @SCHEME_SRC@/@MACH@/boot/@MACH@/petite.boot + $(MAKE) @SCHEME_SRC@/@MACH@/boot/@MACH@/scheme.boot cd @SCHEME_SRC@ && $(MAKE) +# Replace "equates.h", etc., if they seem to be out of date. +# Otherwise, `make` on Chez Scheme cna fail. +@SCHEME_SRC@/@MACH@/boot/@MACH@/equates.h: @SCHEME_SRC@/boot/@MACH@/equates.h + cp @SCHEME_SRC@/boot/@MACH@/equates.h @SCHEME_SRC@/@MACH@/boot/@MACH@/equates.h +@SCHEME_SRC@/@MACH@/boot/@MACH@/petite.boot: @SCHEME_SRC@/boot/@MACH@/petite.boot + cp @SCHEME_SRC@/boot/@MACH@/petite.boot @SCHEME_SRC@/@MACH@/boot/@MACH@/petite.boot +@SCHEME_SRC@/@MACH@/boot/@MACH@/scheme.boot: @SCHEME_SRC@/boot/@MACH@/scheme.boot + cp @SCHEME_SRC@/boot/@MACH@/scheme.boot @SCHEME_SRC@/@MACH@/boot/@MACH@/scheme.boot + racket.boot: racket.so $(SCHEME) --script $(srcdir)/convert-to-boot.ss @COMPRESS_COMP@ racket.so racket.boot @@ -186,8 +199,9 @@ $(RKTFW): $(BOOT_OBJS) $(BOOT_FILES) rm -f Racket.framework/Racket ln -s Versions/$(FWVERSION)_CS/Racket Racket.framework/Racket mkdir -p Racket.framework/Versions/$(FWVERSION)_CS/boot - cp $(SCHEME_INC)/petite.boot $(SCHEME_INC)/scheme.boot $(FW_BOOT_DEST) - cp racket.boot $(FW_BOOT_DEST) + $(SCHEME) --script $(srcdir)/to-vfasl.ss @COMPRESS_COMP@ $(SCHEME_INC)/petite.boot $(FW_BOOT_DEST)/petite.boot + $(SCHEME) --script $(srcdir)/to-vfasl.ss @COMPRESS_COMP@ $(SCHEME_INC)/scheme.boot $(FW_BOOT_DEST)/scheme.boot petite + $(SCHEME) --script $(srcdir)/to-vfasl.ss @COMPRESS_COMP@ racket.boot $(FW_BOOT_DEST)/racket.boot petite scheme $(BOOTSTRAP_RACKET) $(srcdir)/adjust-compress.rkt @COMPRESS_COMP@ $(FW_BOOT_DEST)/petite.boot $(FW_BOOT_DEST)/scheme.boot $(FW_BOOT_DEST)/racket.boot # ---------------------------------------- diff --git a/racket/src/cs/c/to-vfasl.ss b/racket/src/cs/c/to-vfasl.ss new file mode 100644 index 0000000000..84db8d0a53 --- /dev/null +++ b/racket/src/cs/c/to-vfasl.ss @@ -0,0 +1,17 @@ +(compile-compressed #f) + +(define-values (src dest deps) + (let loop ([args (command-line-arguments)]) + (cond + [(and (pair? args) + (equal? (car args) "--compress")) + (compile-compressed #t) + (loop (cdr args))] + [(null? args) + (error 'to-vfasl "missing src argument")] + [(null? (cdr args)) + (error 'to-vfasl "missing dest argument")] + [else + (values (car args) (cadr args) (cddr args))]))) + +(vfasl-convert-file src dest deps) diff --git a/racket/src/cs/compile-file.ss b/racket/src/cs/compile-file.ss index bb0bb0d2ec..2ccb81c1ee 100644 --- a/racket/src/cs/compile-file.ss +++ b/racket/src/cs/compile-file.ss @@ -32,6 +32,7 @@ (eval '(define (f x) (fxvector-set! x 0 (op 0)))) (eval '(f (fxvector 0)))))) +(check-defined 'vfasl-convert-file) ;; ----------------------------------------