<html><head><meta http-equiv="Content-Type" content="text/html charset=us-ascii"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;"><div>I've now concocted a simple but strange test case using three files:</div><div><br></div><div>;;; three.rkt</div><div>#lang racket</div><div><br></div><div>;;; two.rkt</div><div>#lang datalog</div><div><br></div><div>;;; one.rkt</div><div><div>#lang racket/base</div><div>(require racket/rerequire)</div><div>(dynamic-rerequire (string->path "two.rkt"))</div><div>(eval '(require "three.rkt") (make-base-namespace))</div></div><div><br></div><div>Then from the command line:</div><div><br></div><div>>racket one.rkt</div><div><br></div><div>And you should get:</div><div><br></div><div><div>define-values: assignment disallowed;</div><div> cannot re-define a constant</div><div> constant: lang:read.1</div><div> in module: "/Users/mb/git/racket/racket/collects/racket/main.rkt"</div><div> context...:</div><div> (submod /Users/mb/git/racket/racket/collects/racket/main.rkt reader): [running body]</div><div> standard-module-name-resolver</div><div> standard-module-name-resolver</div></div><div><br></div><div><br></div><div><br></div><br><div><div>On Aug 6, 2014, at 4:02 PM, Spencer Florence <<a href="mailto:florence@northwestern.edu">florence@northwestern.edu</a>> wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite"><div dir="ltr">"lang:read.1" looks a some name generated by "syntax-local-lift-expression" or "generate-temporaries". IIRC the ".1" is how the printer handles showing identifiers that may have the same symbol, but different scope.<br>
<br>so:<br><br><div><div>#lang racket</div><div>(define-syntax (example stx)</div><div> (syntax-case stx ()</div><div> [(_) </div><div> (with-syntax ([id (syntax-local-lift-expression #''anything)])</div><div>
#'(displayln 'id))]))</div><div>(example)</div><div>(example)<br><br><br>would display something like</div></div><div><br></div><div>lifted.0</div><div>lifted.2<br><br>But I'm not sure what makes the name "lang:read".</div>
</div><div class="gmail_extra"><br><br><div class="gmail_quote">On Wed, Aug 6, 2014 at 5:50 PM, Matthew Butterick <span dir="ltr"><<a href="mailto:mb@mbtype.com" target="_blank">mb@mbtype.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Under certain circumstances, because of what I assume is a bug in my code, I get an error like this:<br>
<br>
> define-values: assignment disallowed;<br>
> cannot re-define a constant<br>
> constant: lang:read.1<br>
> in module: "/Users/mb/git/racket/racket/collects/racket/main.rkt"<br>
> context...:<br>
> (submod /Users/mb/git/racket/racket/collects/racket/main.rkt reader): [running body]<br>
<br>
I understand how the "assignment disallowed" error arises. What I don't understand is the meaning of "lang:read.1" in this context. I'm guessing it has something to do with the #lang line (?) but ... the rest is hazy.<br>
<br>
Clarification welcome.<br>
____________________<br>
Racket Users list:<br>
<a href="http://lists.racket-lang.org/users" target="_blank">http://lists.racket-lang.org/users</a><br>
</blockquote></div><br></div>
</blockquote></div><br></body></html>