mirror of
https://git.savannah.gnu.org/git/guile.git
synced 2025-05-12 00:30:20 +02:00
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.
This commit is contained in:
parent
2bfc1779c5
commit
ec8d08fc4f
2 changed files with 9 additions and 12 deletions
|
@ -1,6 +1,6 @@
|
||||||
;; Atomic operations
|
;; 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
|
;;;; This library is free software; you can redistribute it and/or
|
||||||
;;;; modify it under the terms of the GNU Lesser General Public
|
;;;; modify it under the terms of the GNU Lesser General Public
|
||||||
|
@ -18,8 +18,6 @@
|
||||||
;;;;
|
;;;;
|
||||||
|
|
||||||
(define-module (ice-9 atomic)
|
(define-module (ice-9 atomic)
|
||||||
#:use-module ((language tree-il primitives)
|
|
||||||
:select (add-interesting-primitive!))
|
|
||||||
#:export (make-atomic-box
|
#:export (make-atomic-box
|
||||||
atomic-box?
|
atomic-box?
|
||||||
atomic-box-ref
|
atomic-box-ref
|
||||||
|
@ -29,10 +27,4 @@
|
||||||
|
|
||||||
(eval-when (expand load eval)
|
(eval-when (expand load eval)
|
||||||
(load-extension (string-append "libguile-" (effective-version))
|
(load-extension (string-append "libguile-" (effective-version))
|
||||||
"scm_init_atomic")
|
"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!))
|
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
;;; open-coding primitive procedures
|
;;; 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
|
;;;; This library is free software; you can redistribute it and/or
|
||||||
;;;; modify it under the terms of the GNU Lesser General Public
|
;;;; modify it under the terms of the GNU Lesser General Public
|
||||||
|
@ -20,6 +20,7 @@
|
||||||
|
|
||||||
(define-module (language tree-il primitives)
|
(define-module (language tree-il primitives)
|
||||||
#:use-module (system base pmatch)
|
#:use-module (system base pmatch)
|
||||||
|
#:use-module (ice-9 atomic)
|
||||||
#:use-module (ice-9 match)
|
#:use-module (ice-9 match)
|
||||||
#:use-module (ice-9 threads)
|
#:use-module (ice-9 threads)
|
||||||
#:use-module (rnrs bytevectors)
|
#:use-module (rnrs bytevectors)
|
||||||
|
@ -133,7 +134,11 @@
|
||||||
bytevector-ieee-single-native-ref bytevector-ieee-single-native-set!
|
bytevector-ieee-single-native-ref bytevector-ieee-single-native-set!
|
||||||
bytevector-ieee-double-ref bytevector-ieee-double-set!
|
bytevector-ieee-double-ref bytevector-ieee-double-set!
|
||||||
bytevector-ieee-double-native-ref bytevector-ieee-double-native-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)
|
(define (add-interesting-primitive! name)
|
||||||
(hashq-set! *interesting-primitive-vars*
|
(hashq-set! *interesting-primitive-vars*
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue