[racket-dev] shared no longer works on cons?!?
On Thu, Oct 20, 2011 at 10:11 PM, Ryan Culpepper <ryan at cs.utah.edu> wrote:
> Looks like it works in 5.0.2 (November 2010) but fails in 5.1 (February
> 2011).
You're talking about in the teaching languages, right? In #lang
racket, I see the first-produces-error behavior back to 5.0:
[robby at penghu] /Applications/Racket v5.0.2/bin$ ./racket
Welcome to Racket v5.0.2.
> (first (shared ((x (cons 1 x))) x))
first: expected argument of type <non-empty list>; given #0='(1 . #0#)
At least for the racket language, this seems to go back at least as far as 5.0:
[robby at penghu] /Applications$ ./Racket\ v5.0/bin/racket
Welcome to Racket v5.0.
> (first (shared ((x (cons 1 x))) x))
first: expected argument of type <non-empty list>; given #0='(1 . #0#)
> The ultimate problem seems to be that deinprogramm/signature/signature-unit
> uses first from racket/list (checks list?, ie non-cyclic) rather than
> mzlib/list (only checks pair?).
This looks like it was the commit that changed the behavior for the
teaching languages:
http://git.racket-lang.org/plt/commitdiff/c7d67f9babc2496aaf295a08264b79750785314b
and judging from the commit message, the change in behavior was not intentional.
Robby