On Mon, Apr 01, 2024 at 02:51:07AM -0400, Philip McGrath wrote: > All of Racket's changes to Chez Scheme have been merged upstream. They > are the basis for the Chez Scheme 10.0.0 release. For the forseeable > future, Racket will continue to depend on a specific pre-release > version of Chez Scheme as part of Racket's "ABI": see upstream > discussion at . ... > (chez-scheme-for-racket-bootstrap-bootfiles): Stop inheriting from > 'chez-scheme-bootstrap-bootfiles'. > [arguments]: Rewrite without inheritance. Use `make cross.boot` instead > of broken experimental script for cross builds. > [home-page]: Use bootstrapping Racket package instead of archived Git > repository. > [description]: Rewrite to reflect upstreaming of Racket's changes to > Chez Scheme. > @@ -646,58 +725,70 @@ (define-public chez-scheme-bootstrap-bootfiles ... > > (define-public chez-scheme-for-racket-bootstrap-bootfiles > (package > - (inherit chez-scheme-bootstrap-bootfiles) > (name "chez-scheme-for-racket-bootstrap-bootfiles") > (version (package-version chez-scheme-for-racket)) > (source #f) ; avoid problematic cycle with racket.scm > (native-inputs > - (cons* chez-nanopass-bootstrap > - (if (%current-target-system) > - (list zuo > - chez-scheme-for-racket) > - (list racket-vm-bc)))) > + (cons chez-nanopass-bootstrap > + (if (%current-target-system) > + (list zuo > + chez-scheme-for-racket) > + (list racket-vm-bc)))) > + (build-system copy-build-system) > (arguments > - (substitute-keyword-arguments > - (package-arguments chez-scheme-bootstrap-bootfiles) > - ((#:phases those-phases #~%standard-phases) > - #~(let* ((those-phases #$those-phases) > - (unpack (assoc-ref those-phases 'unpack))) > - (modify-phases those-phases > - (replace 'unpack > - (lambda args > - (unpack #:source #$(or (package-source this-package) > - (package-source racket-vm-bc))))) > - (add-after 'unpack 'chdir > - (lambda args > - (chdir "racket/src/ChezScheme"))) > - (add-after 'chdir 'unpack-nanopass+stex > - (lambda args > - #$unpack-nanopass+stex)) > - (add-before 'install 'build > - (lambda* (#:key native-inputs inputs #:allow-other-keys) > - #$(cond > - ((%current-target-system) > - ;; cross-compiling > - #~(invoke > - (search-input-file (or native-inputs inputs) > - "/bin/zuo") > - "makefiles/boot.zuo" > - (search-input-file (or native-inputs inputs) > - "/bin/scheme") > - #$(or (racket-cs-native-supported-system?) > - (nix-system->pbarch-machine-type)))) > - (else > - ;; bootstrapping > - #~(invoke > - (search-input-file (or native-inputs inputs) > - "/opt/racket-vm/bin/racket") > - "../rktboot/main.rkt")))))))))) > - (supported-systems > - (package-supported-systems chez-scheme-for-racket)) > - (home-page "https://github.com/racket/ChezScheme") > - ;; ^ This is downstream of https://github.com/racket/racket, > - ;; but it's designed to be a friendly landing place for people > - ;; who want a ChezScheme-shaped repositroy. > + (list > + #:install-plan > + #~`(("boot/" "lib/chez-scheme-bootfiles")) > + #:phases > + #~(modify-phases %standard-phases > + (replace 'unpack > + (let ((unpack (assoc-ref %standard-phases 'unpack))) > + (lambda args > + (unpack #:source #$(or (package-source this-package) > + (package-source racket-vm-bc)))))) > + (add-after 'unpack 'unpack-nanopass > + #$unpack-nanopass) > + (add-after 'unpack-nanopass 'chdir > + (lambda args > + (chdir "racket/src/ChezScheme"))) > + (add-before 'install 'build > + #$(cond > + ((%current-target-system) > + ;; cross-compiling > + ;; TODO: share more of this with upstream, once we figure out > + ;; how best to manage running Chez as a cross-compiler and the > + ;; unfortate cycle with %racket-origin. > + #~(lambda* (#:key native-inputs inputs (parallel-build? #t) > + #:allow-other-keys) > + (invoke "./configure" > + "--force" ; don't complain about missing bootfiles > + #$(string-append > + "-m=" (or (racket-cs-native-supported-system?) > + (nix-system->pbarch-machine-type))) > + "ZUO=zuo" > + ;; ignore submodules: > + "ZLIB=-lz" > + "LZ4=-llz4" > + "STEXLIB=/GuixNotUsingStex") > + (apply invoke > + "make" > + `(,@(if parallel-build? > + `("-j" ,(number->string > + (parallel-job-count))) > + '()) > + ,(string-append "SCHEME=" > + (search-input-file > + (or native-inputs inputs) > + "/bin/scheme")) > + "cross.boot")))) > + (else > + ;; bootstrapping > + #~(lambda* (#:key native-inputs inputs #:allow-other-keys) > + (invoke > + (search-input-file (or native-inputs inputs) > + "/opt/racket-vm/bin/racket") > + "../rktboot/main.rkt")))))))) > + (home-page "https://pkgs.racket-lang.org/package/cs-bootstrap") > (synopsis "Chez Scheme bootfiles bootstrapped by Racket") > (description "Chez Scheme is a self-hosting compiler: building it > requires ``bootfiles'' containing the Scheme-implemented portions compiled for chez-scheme-for-racket-bootstrap timed out due to 3600 seconds of silence on riscv64-linux. I'm building it again with allowing for a longer silent period. chez-scheme-for-racket-bootstrap fails in the 'build phase on powerpc-linux. This is the same way that it fails on master, so there is no regression here. starting phase `build' error: in phase 'build': uncaught exception: %exception #<&invoke-error program: "/gnu/store/1q72i8fv2fnf5q2rscahdy90jiigym42-racket-vm-bc-8.12/opt/racket-vm/bin/racket" arguments: ("../rktboot/main.rkt") exit-status: #f term-signal: 6 stop-signal: #f> phase `build' failed after 0.4 seconds command "/gnu/store/1q72i8fv2fnf5q2rscahdy90jiigym42-racket-vm-bc-8.12/opt/racket-vm/bin/racket" "../rktboot/main.rkt" failed with signal 6 builder for `/gnu/store/hcccfsv6n1llkqgv98y8sk1wywflnk59-chez-scheme-for-racket-bootstrap-bootfiles-9.9.9-pre-release.23.drv' failed with exit code 1 -- Efraim Flashner רנשלפ םירפא GPG key = A28B F40C 3E55 1372 662D 14F7 41AA E7DC CA3D 8351 Confidentiality cannot be guaranteed on emails sent or received unencrypted