diff options
author | Philip McGrath <philip@philipmcgrath.com> | 2023-08-23 20:08:04 -0400 |
---|---|---|
committer | Efraim Flashner <efraim@flashner.co.il> | 2023-09-08 09:05:47 +0300 |
commit | 0a69961953307040f4c3994ae09286768ce67c9c (patch) | |
tree | 4611e3eda076d266d50b91c4429e4431a784b7a7 /gnu/packages/patches/racket-backport-8.10-rktboot.patch | |
parent | 72745172d155e489936f694d6b9013cb76272370 (diff) |
gnu: racket: Update to 8.10.
* gnu/packages/patches/racket-rktboot-riscv64-support.patch: Move to ...
* gnu/packages/patches/racket-backport-8.10-rktboot.patch: ... this
file, together with a related upstreamed patch.
* gnu/local.mk (dist_patch_DATA): Update accordingly.
* gnu/packages/racket/scm (%racket-origin)[patches]: Likewise.
(%racket-version): Update to 8.10.
(racket)[inputs]<data, deinprogramm, drracket, gui, htdp, math>
<net-cookies, pict, plot, racklog, redex, scribble, slideshow, snip>
<typed-racket, string-constants, syntax-color, web-server>: Update
hashes.
* gnu/packages/chez.scm (chez-scheme-for-racket): Update to
9.9.9-pre-release.17.
Signed-off-by: Efraim Flashner <efraim@flashner.co.il>
Diffstat (limited to 'gnu/packages/patches/racket-backport-8.10-rktboot.patch')
-rw-r--r-- | gnu/packages/patches/racket-backport-8.10-rktboot.patch | 130 |
1 files changed, 130 insertions, 0 deletions
diff --git a/gnu/packages/patches/racket-backport-8.10-rktboot.patch b/gnu/packages/patches/racket-backport-8.10-rktboot.patch new file mode 100644 index 0000000000..834001bd83 --- /dev/null +++ b/gnu/packages/patches/racket-backport-8.10-rktboot.patch @@ -0,0 +1,130 @@ +From 5446e36e0685ec5c7b4f812dec5bf7959db4f906 Mon Sep 17 00:00:00 2001 +From: Efraim Flashner <efraim@flashner.co.il> +Date: Thu, 20 Jul 2023 15:56:21 +0300 +Subject: [PATCH 1/2] rktboot: Add support for riscv64. + +(cherry picked from commit f80c5d001d5235556ae9cde617b1e3a1322d0505) +--- + racket/src/rktboot/machine-def.rkt | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/racket/src/rktboot/machine-def.rkt b/racket/src/rktboot/machine-def.rkt +index 8ff0688652..59ebfc88d8 100644 +--- a/racket/src/rktboot/machine-def.rkt ++++ b/racket/src/rktboot/machine-def.rkt +@@ -25,6 +25,7 @@ + [(regexp-match? #rx"^t?arm32" target-machine) "arm32"] + [(regexp-match? #rx"^t?arm64" target-machine) "arm64"] + [(regexp-match? #rx"^t?ppc32" target-machine) "ppc32"] ++ [(regexp-match? #rx"^t?rv64" target-machine) "rv64"] + [(regexp-match? #rx"^t?pb" target-machine) "pb"] + [else (error "machine.def: cannot infer architecture")]))] + [s (regexp-replace* #rx"[$][(]Mend[)]" s + +base-commit: b10ecfb8311fca2d42636eea2ca12aff0b76b208 +-- +2.41.0 + + +From 6261c3582c386e770d654ca6a36f112834f35aef Mon Sep 17 00:00:00 2001 +From: Philip McGrath <philip@philipmcgrath.com> +Date: Sun, 16 Jul 2023 15:47:14 -0400 +Subject: [PATCH 2/2] rktboot: improve machene type inference + +Related to https://issues.guix.gnu.org/62231 +Related to https://github.com/racket/racket/issues/3948 + +(cherry picked from commit 005488491cee89e7db38109de4c9dcf2d8d5aef0) +--- + racket/src/rktboot/config.rkt | 73 +++++++++++++++++++++++++++++------ + 1 file changed, 61 insertions(+), 12 deletions(-) + +diff --git a/racket/src/rktboot/config.rkt b/racket/src/rktboot/config.rkt +index 7a969017ed..2b411e002c 100644 +--- a/racket/src/rktboot/config.rkt ++++ b/racket/src/rktboot/config.rkt +@@ -15,20 +15,69 @@ + (path->complete-path scheme-dir)))))) + (hash-set! ht 'make-boot-scheme-dir scheme-dir) + ++(define (infer-target-machine) ++ ;; Compute a native or pbarch machine string for the current platform. ++ ;; Some caveats: ++ ;; 1. A pbarch Racket will always infer a pbarch machine, ++ ;; even if a native machine exists. Hopefully this is an ++ ;; unlikely scenario: if you're running Racket CS, you've ++ ;; bootstrapped Chez somehow, so you could use `re.boot`. ++ ;; 2. A `tpb` or `pb` Racket on a 32-bit platform would still return ++ ;; 64 from `(system-type 'word)`, but, in addition to the above, ++ ;; it is not currently possible or desired to build Racket as ++ ;; `tpb` or `pb` (as opposed to pbarch variants): ++ ;; see <https://github.com/racket/racket/issues/4692>. ++ ;; 3. On a hypothetical platform where Chez supported both the ++ ;; architecture and the OS, but not the combination of the two, ++ ;; (e.g. riscv64 Windows) this code would currently return a ++ ;; non-existent native machine (e.g. trv64nt) instead of a ++ ;; working pbarch machine. Presumably this could be fixed if ++ ;; such a platform came into existence. ++ (define s (path->string (system-library-subpath #f))) ++ (define arch+os ++ (cond ++ [(regexp-match #rx"^([^\\]+)\\\\([^\\]+)$" s) ++ => (λ (m) ++ (reverse (cdr m)))] ++ [(regexp-match #rx"^([^-]+)-(.+)$" s) ++ => cdr] ++ [else ++ (error 'infer-target-machine "unknown format for system library subpath" ++ "produced" (system-library-subpath #f))])) ++ (define arch ++ (case (car arch+os) ++ [("x86_64" "amd64") "a6"] ; https://github.com/racket/racket/issues/4691 ++ [("i386") "i3"] ++ [("aarch64") "arm64"] ++ [("arm") "arm32"] ++ [("ppc") "ppc32"] ++ [("riscv64") "rv64"] ++ [("unknown") #f] ; pb machine types ++ [else #f])) ++ (define os ++ (case (cadr arch+os) ++ [("macosx" "darwin" "ios") "osx"] ++ [("win32" "cygwin") "nt"] ++ [("linux" "android") "le"] ++ [("gnu-hurd") "gnu"] ++ [("freebsd") "fb"] ++ [("openbsd") "ob"] ++ [("netbsd") "nb"] ++ [("solaris") "s2"] ; NOT "sunos4" (I think) ++ [("qnx") "qnx"] ++ [("unknown") #f] ; pb machine types ++ [else #f])) ++ (if (and arch os) ++ (string-append "t" arch os) ++ (format "tpb~a~a" ++ (system-type 'word) ++ (if (system-big-endian?) ++ "b" ++ "l")))) ++ + (define target-machine (or (hash-ref ht 'make-boot-targate-machine #f) + (getenv "MACH") +- (case (system-type) +- [(macosx) (if (eqv? 64 (system-type 'word)) +- "ta6osx" +- "ti3osx")] +- [(windows) (if (eqv? 64 (system-type 'word)) +- "ta6nt" +- "ti3nt")] +- [else +- (case (path->string (system-library-subpath #f)) +- [("x86_64-linux") "ta6le"] +- [("i386-linux") "ti3le"] +- [else #f])]))) ++ (infer-target-machine))) + (hash-set! ht 'make-boot-targate-machine target-machine) + + (define optimize-level-init 3) +-- +2.41.0 + |