[racket-dev] literal strings and numbers are now interned
At Tue, 22 Nov 2011 09:18:30 -0700, Matthew Flatt wrote:
> Along the same lines, I think it's unlikely that good programs are
> affected by the `read' interning change
Some Scribble tests failed in DrDr, because the Scribble reader
actually promises a distinct "\n" for literal newlines. There's no way
to make that work with syntax objects, since `datum->syntax' now always
interns strings.
Any objection to removing that feature of the Scribble reader?
The idea of a specific "\n" isn't compatible with separate compilation,
even prior to v5.2.0.4, in the sense that
a.rkt
-----
#lang at-exp racket
(provide is-source-newline?)
(define nl '@{
})
(define (is-source-newline? v) (eq? (first nl) v))
b.rkt
-----
#lang at-exp racket
(require "a.rkt")
(define nl '@{
})
(is-source-newline? (first nl))
produces different results depending on whether "b.rkt" is run from
bytecode or from source.