summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndy Wingo <wingo@pobox.com>2025-04-29 10:54:52 +0200
committerAndy Wingo <wingo@pobox.com>2025-04-30 10:41:44 +0200
commitec8d08fc4feaa90d7c6c0c5ea12f5a3298555bab (patch)
tree0f85696cfa813229e84a3af7dd0b923dfae47ccb
parent2bfc1779c5a4434efcecfe1e720149260f2e57fc (diff)
downloadguile-ec8d08fc4feaa90d7c6c0c5ea12f5a3298555bab.tar.gz
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.
-rw-r--r--module/ice-9/atomic.scm12
-rw-r--r--module/language/tree-il/primitives.scm9
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*