reference-barrier
Marc Nieper-Wißkirchen
(27 Aug 2016 12:55 UTC)
|
Re: reference-barrier
John Cowan
(27 Aug 2016 14:01 UTC)
|
Re: reference-barrier
Marc Nieper-Wißkirchen
(27 Aug 2016 15:40 UTC)
|
Re: reference-barrier
Taylor R Campbell
(27 Aug 2016 18:30 UTC)
|
Re: reference-barrier
Marc Nieper-Wißkirchen
(29 Aug 2016 14:48 UTC)
|
Re: reference-barrier
Marc Nieper-Wißkirchen
(29 Oct 2016 08:29 UTC)
|
Re: reference-barrier
Marc Nieper-Wißkirchen
(18 Aug 2020 08:20 UTC)
|
Re: reference-barrier
Taylor R Campbell
(18 Aug 2020 14:17 UTC)
|
Re: reference-barrier
Marc Nieper-Wißkirchen
(18 Aug 2020 14:29 UTC)
|
Re: reference-barrier
Arthur A. Gleckler
(26 Aug 2020 23:22 UTC)
|
Re: reference-barrier Marc Nieper-Wißkirchen (27 Aug 2020 06:15 UTC)
|
Re: reference-barrier
Arthur A. Gleckler
(27 Aug 2020 06:26 UTC)
|
Re: reference-barrier
Marc Nieper-Wißkirchen
(07 Sep 2020 06:32 UTC)
|
Re: reference-barrier
Arthur A. Gleckler
(30 Nov 2020 19:46 UTC)
|
Re: reference-barrier
John Cowan
(30 Nov 2020 19:53 UTC)
|
Re: reference-barrier
Arthur A. Gleckler
(30 Nov 2020 20:31 UTC)
|
Re: reference-barrier
John Cowan
(30 Nov 2020 20:31 UTC)
|
Re: reference-barrier
Arthur A. Gleckler
(30 Nov 2020 20:47 UTC)
|
Re: reference-barrier
Arthur A. Gleckler
(30 Nov 2020 20:53 UTC)
|
Re: reference-barrier
Marc Nieper-Wißkirchen
(30 Nov 2020 21:10 UTC)
|
Suggestion (without proper HTML formatting): PFN: Because one cannot reliably operate on ephemerons in a portable way without calling the procedure `reference-barrier`, this post-finalization note makes the procedure `reference-barrier` mandatory. The following is an example where `reference-barrier` is needed: ;; Return the datum component of the ephemeron if its key component is KEY. Return #f otherwise. (define (ephemeron-ref ephemeron key) (let ((k (ephemeron-key ephemeron)) (d (ephemeron-datum ephemeron))) (and (not (ephemeron-broken? ephemeron)) (eq? key k) (reference-barrier k) d))) In this procedure, the evaluation of `(eq? key k)` is side effect free, so it can be evaluated at any time after `k` has been retrieved, in particular before the call `ephemeron-broken?`. Without the call to `reference-barrier`, `key` may, therefore, be no longer referenced when `ephemeron-broken?` is called so that this predicate may return `#f`. In other words, without the call to `reference-barrier`, a Scheme implementation may implement the above procedure as `(define (ephemeron-ref ephemeron key) #f)`. Am Do., 27. Aug. 2020 um 01:22 Uhr schrieb Arthur A. Gleckler <xxxxxx@speechcode.com>: > > Hi, Marc. Can you propose a PFN to address this without an answer to your clarification question to Taylor? If so, would you mind sending one when you have a chance? > > I'm working through my backlog of unanswered SRFI questions. > > Thanks.