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*