diff options
author | Andy Wingo <wingo@pobox.com> | 2025-04-29 10:54:52 +0200 |
---|---|---|
committer | Andy Wingo <wingo@pobox.com> | 2025-04-30 10:41:44 +0200 |
commit | ec8d08fc4feaa90d7c6c0c5ea12f5a3298555bab (patch) | |
tree | 0f85696cfa813229e84a3af7dd0b923dfae47ccb | |
parent | 2bfc1779c5a4434efcecfe1e720149260f2e57fc (diff) | |
download | guile-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.scm | 12 | ||||
-rw-r--r-- | 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* |