wingo pushed a commit to branch wip-whippet
in repository guile.

commit ec8d08fc4feaa90d7c6c0c5ea12f5a3298555bab
Author: Andy Wingo <wi...@pobox.com>
AuthorDate: Tue Apr 29 10:54:52 2025 +0200

    Move atomic primitive registration to (language tree-il)
    
    * module/ice-9/atomic.scm: Don't add-interesting-primitive! here.
    * module/language/tree-il/primitives.scm
    (*interesting-primitive-names*): Instead, import atomics here and
    register the primitives as usual.  This will let atomics be used earlier
    in the boot graph.
---
 module/ice-9/atomic.scm                | 12 ++----------
 module/language/tree-il/primitives.scm |  9 +++++++--
 2 files changed, 9 insertions(+), 12 deletions(-)

diff --git a/module/ice-9/atomic.scm b/module/ice-9/atomic.scm
index 2a8af901d..5fadd6fab 100644
--- a/module/ice-9/atomic.scm
+++ b/module/ice-9/atomic.scm
@@ -1,6 +1,6 @@
 ;; Atomic operations
 
-;;;; Copyright (C) 2016 Free Software Foundation, Inc.
+;;;; Copyright (C) 2016, 2025 Free Software Foundation, Inc.
 ;;;;
 ;;;; This library is free software; you can redistribute it and/or
 ;;;; modify it under the terms of the GNU Lesser General Public
@@ -18,8 +18,6 @@
 ;;;;
 
 (define-module (ice-9 atomic)
-  #:use-module ((language tree-il primitives)
-                :select (add-interesting-primitive!))
   #:export (make-atomic-box
             atomic-box?
             atomic-box-ref
@@ -29,10 +27,4 @@
 
 (eval-when (expand load eval)
   (load-extension (string-append "libguile-" (effective-version))
-                  "scm_init_atomic")
-  (add-interesting-primitive! 'make-atomic-box)
-  (add-interesting-primitive! 'atomic-box?)
-  (add-interesting-primitive! 'atomic-box-ref)
-  (add-interesting-primitive! 'atomic-box-set!)
-  (add-interesting-primitive! 'atomic-box-swap!)
-  (add-interesting-primitive! 'atomic-box-compare-and-swap!))
+                  "scm_init_atomic"))
diff --git a/module/language/tree-il/primitives.scm 
b/module/language/tree-il/primitives.scm
index dd5592a41..f6de61d9b 100644
--- a/module/language/tree-il/primitives.scm
+++ b/module/language/tree-il/primitives.scm
@@ -1,6 +1,6 @@
 ;;; open-coding primitive procedures
 
-;; Copyright (C) 2009-2015, 2017-2023 Free Software Foundation, Inc.
+;; Copyright (C) 2009-2015, 2017-2023, 2025 Free Software Foundation, Inc.
 
 ;;;; This library is free software; you can redistribute it and/or
 ;;;; modify it under the terms of the GNU Lesser General Public
@@ -20,6 +20,7 @@
 
 (define-module (language tree-il primitives)
   #:use-module (system base pmatch)
+  #:use-module (ice-9 atomic)
   #:use-module (ice-9 match)
   #:use-module (ice-9 threads)
   #:use-module (rnrs bytevectors)
@@ -133,7 +134,11 @@
     bytevector-ieee-single-native-ref bytevector-ieee-single-native-set!
     bytevector-ieee-double-ref bytevector-ieee-double-set!
     bytevector-ieee-double-native-ref bytevector-ieee-double-native-set!
-    f32vector-ref f32vector-set! f64vector-ref f64vector-set!))
+    f32vector-ref f32vector-set! f64vector-ref f64vector-set!
+
+    make-atomic-box atomic-box?
+    atomic-box-ref atomic-box-set!
+    atomic-box-swap! atomic-box-compare-and-swap!))
 
 (define (add-interesting-primitive! name)
   (hashq-set! *interesting-primitive-vars*

Reply via email to