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)

Re: reference-barrier Taylor R Campbell 27 Aug 2016 18:29 UTC

   Date: Sat, 27 Aug 2016 15:40:16 +0000
   From: Marc Nieper-Wißkirchen <xxxxxx@nieper-wisskirchen.de>

   > It's optional because it has to do something that in a non-trivial
   > implementation of ephemerons, such as Racket's, can't always be done.  If
   > you need reference barriers, your code willl not be portable to all
   > R7RS-large implementations, which is a pity, but there it is.

   Is it a hard fact that it may be non-trivial to implement
   `reference-barrier' for a given proper implementation of ephemerons?

Here's an implementation of reference-barrier that will almost
certainly have the desired immediate effect in any implementation,
though it may leak space.

(define last-reference 0)
(define (reference-barrier x)
  (let ((y last-reference))
    (set! last-reference x)
    y))

I have a hard time believing that there are any Scheme systems out
there in which it is actually difficult to implement reference-barrier
correctly.  It should be reliably included.

   On the other hand, how do you want to code safely without
   `reference-barrier'?

Can't.