[bug#53878,v4,10/15] gnu: Add racket-vm-bc.

Message ID 20220220060610.178131-11-philip@philipmcgrath.com
State New
Headers
Series Update Racket to 8.4. Adjust Chez Scheme packages. |

Commit Message

Philip McGrath Feb. 20, 2022, 6:06 a.m. UTC
  * gnu/packages/chez-and-racket-bootstrap.scm (racket-vm-bc): New variable.
---
 gnu/packages/chez-and-racket-bootstrap.scm | 23 ++++++++++++++++++++++
 1 file changed, 23 insertions(+)
  

Patch

diff --git a/gnu/packages/chez-and-racket-bootstrap.scm b/gnu/packages/chez-and-racket-bootstrap.scm
index c99b8ff19e..2f649fe67f 100644
--- a/gnu/packages/chez-and-racket-bootstrap.scm
+++ b/gnu/packages/chez-and-racket-bootstrap.scm
@@ -475,6 +475,29 @@  (define maybe-release-catalog
      ;; The LGPL components are only used by Racket BC.
      (license (list license:lgpl3+ license:asl2.0 license:expat)))))
 
+(define-public racket-vm-bc
+  (package
+    (inherit racket-vm-cgc)
+    (name "racket-vm-bc")
+    (native-inputs
+     (modify-inputs (package-native-inputs racket-vm-cgc)
+       (prepend racket-vm-cgc)))
+    (arguments
+     (substitute-keyword-arguments (package-arguments racket-vm-cgc)
+       ((#:configure-flags _ '())
+        #~(cons "--enable-bconly"
+                #$(racket-vm-common-configure-flags)))))
+    (synopsis "Racket BC [3M] implementation")
+    (description "The Racket BC (``before Chez'' or ``bytecode'')
+implementation was the default before Racket 8.0.  It uses a compiler written
+in C targeting architecture-independent bytecode, plus a JIT compiler on most
+platforms.  Racket BC has a different C API and supports a slightly different
+set of architectures than the current default runtime system, Racket CS (based
+on ``Chez Scheme'').  It is the recommended implementation for architectures
+that Racket CS doesn't support.
+
+This package is the normal implementation of Racket BC with a precise garbage
+collector, 3M (``Moving Memory Manager'').")))
 ;;
 ;; Chez Scheme:
 ;;