<div dir="ltr">It isn&#39;t to do with drracket. It is to do with the fact that it is triggered in a context where, say, the reader doesn&#39;t behave the way it would with the default parameters. <div><br></div><div style>
Long story short: there are lots and lots of parameters that affect how compilation and raco setup generally behave. If these are not set to well-known things, then raco setup doesn&#39;t work. That&#39;s what happened here.</div>
<div style><br></div><div style>Relatedly: raco setup run in a sandbox that limits read and write access doesn&#39;t work either.</div><div style><br></div><div style>Robby</div></div><div class="gmail_extra"><br><br><div class="gmail_quote">
On Mon, Feb 4, 2013 at 7:27 AM, Jay McCarthy <span dir="ltr">&lt;<a href="mailto:jay.mccarthy@gmail.com" target="_blank">jay.mccarthy@gmail.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
I&#39;m not sure why it is a strange configuration, but maybe I missed<br>
that part of the thread.<br>
<br>
More generally, why should running the function version of &quot;raco<br>
setup&quot; behave differently in a DrRacket buffer than it does on the<br>
command line?<br>
<span class="HOEnZb"><font color="#888888"><br>
Jay<br>
</font></span><div class="HOEnZb"><div class="h5"><br>
On Mon, Feb 4, 2013 at 6:17 AM, Robby Findler<br>
&lt;<a href="mailto:robby@eecs.northwestern.edu">robby@eecs.northwestern.edu</a>&gt; wrote:<br>
&gt; Going back in this thread, I think that changing which files DrRacket<br>
&gt; compiles is not the right direction to go to solve the problem discussed<br>
&gt; here. The problem is that planet2 is running raco setup in a strange<br>
&gt; configuration. Avoiding compiling files will not solve this problem.<br>
&gt;<br>
&gt; Robby<br>
&gt;<br>
&gt;<br>
&gt; On Sat, Feb 2, 2013 at 4:31 PM, Robby Findler &lt;<a href="mailto:robby@eecs.northwestern.edu">robby@eecs.northwestern.edu</a>&gt;<br>
&gt; wrote:<br>
&gt;&gt;<br>
&gt;&gt; Planet 1 explicitly deals with this by having the runtime system give it<br>
&gt;&gt; access to the original parameterization, which it picks and chooses<br>
&gt;&gt; parameters from to restore (to make sure that this kind of thing doesn&#39;t<br>
&gt;&gt; happen).<br>
&gt;&gt;<br>
&gt;&gt; Robby<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt; On Sat, Feb 2, 2013 at 4:08 PM, Danny Yoo &lt;<a href="mailto:dyoo@hashcollision.org">dyoo@hashcollision.org</a>&gt; wrote:<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; &gt;&gt;&gt; &gt;&gt; I&#39;m not sure if this is a bug or not, so I&#39;m bringing it up on the<br>
&gt;&gt;&gt; &gt;&gt;&gt; &gt;&gt; list.  But when I do the following:<br>
&gt;&gt;&gt; &gt;&gt;&gt; &gt;&gt;<br>
&gt;&gt;&gt; &gt;&gt;&gt; &gt;&gt; #lang racket<br>
&gt;&gt;&gt; &gt;&gt;&gt; &gt;&gt; (require compiler/cm)<br>
&gt;&gt;&gt; &gt;&gt;&gt; &gt;&gt; (manager-compile-notify-handler displayln)<br>
&gt;&gt;&gt; &gt;&gt;&gt; &gt;&gt; (managed-compile-zo<br>
&gt;&gt;&gt; &gt;&gt;&gt; &gt;&gt;<br>
&gt;&gt;&gt; &gt;&gt;&gt; &gt;&gt;<br>
&gt;&gt;&gt; &gt;&gt;&gt; &gt;&gt; &quot;/home/samth/sw/plt/collects/tests/typed-racket/succeed/null-program.rkt&quot;)<br>
&gt;&gt;&gt; &gt;&gt;&gt; &gt;&gt;<br>
&gt;&gt;&gt; &gt;&gt;&gt; &gt;&gt; Then the compiler places the compiled files in the<br>
&gt;&gt;&gt; &gt;&gt;&gt; &gt;&gt; `compiled/drracket/` directory, and looks for compiled files there<br>
&gt;&gt;&gt; &gt;&gt;&gt; &gt;&gt; as<br>
&gt;&gt;&gt; &gt;&gt;&gt; &gt;&gt; well.<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; Reviving this thread.  This is exactly the root of the issue hitting<br>
&gt;&gt;&gt; Neil Toronto with that weird reader error with Optimization Coach.<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; When we&#39;re installing PLaneT2 packages, part of the process reruns a<br>
&gt;&gt;&gt; raco setup.  At that point, raco setup is running under a context of<br>
&gt;&gt;&gt; that customized bytecode compiler/module loader.  In fact, it starts<br>
&gt;&gt;&gt; compiling the rest of the collects under that custom<br>
&gt;&gt;&gt; DrRacket-compiling context, and I see the following after executing:<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; ---<br>
&gt;&gt;&gt; raco setup: version: 5.3.2 [3m]<br>
&gt;&gt;&gt; raco setup: variants: 3m<br>
&gt;&gt;&gt; raco setup: main collects: /Applications/Racket v5.3.2/collects<br>
&gt;&gt;&gt; raco setup: collects paths:<br>
&gt;&gt;&gt; raco setup:   /Users/dyoo/Library/Racket/5.3.2/collects<br>
&gt;&gt;&gt; raco setup:   /Applications/Racket v5.3.2/collects<br>
&gt;&gt;&gt; raco setup: --- pre-installing collections ---<br>
&gt;&gt;&gt; raco setup: --- compiling collections ---<br>
&gt;&gt;&gt; raco setup: making: racket<br>
&gt;&gt;&gt; raco setup:  in racket<br>
&gt;&gt;&gt; raco setup:  in racket/base/lang<br>
&gt;&gt;&gt; raco setup:  in s-exp/lang<br>
&gt;&gt;&gt; raco setup:  in syntax<br>
&gt;&gt;&gt; raco setup:  in racket/contract<br>
&gt;&gt;&gt; raco setup:  in racket/contract/private<br>
&gt;&gt;&gt; raco setup:  in setup<br>
&gt;&gt;&gt; raco setup:  in racket/private<br>
&gt;&gt;&gt; raco setup:  in config<br>
&gt;&gt;&gt; raco setup:  in compiler/private<br>
&gt;&gt;&gt; raco setup:  in setup/private<br>
&gt;&gt;&gt; raco setup:  in planet<br>
&gt;&gt;&gt; raco setup:  in planet/private<br>
&gt;&gt;&gt; raco setup:  in racket/unsafe<br>
&gt;&gt;&gt; raco setup:  in syntax/private<br>
&gt;&gt;&gt; raco setup:  in racket/private/lang<br>
&gt;&gt;&gt; raco setup:  in mzlib<br>
&gt;&gt;&gt; raco setup:  in mzscheme<br>
&gt;&gt;&gt; raco setup:  in scheme<br>
&gt;&gt;&gt; raco setup:  in mzscheme/lang<br>
&gt;&gt;&gt; raco setup:  in mzlib/private<br>
&gt;&gt;&gt; raco setup:  in syntax/parse<br>
&gt;&gt;&gt; raco setup:  in syntax/parse/private<br>
&gt;&gt;&gt; raco setup:  in compiler<br>
&gt;&gt;&gt; raco setup:  in unstable<br>
&gt;&gt;&gt; raco setup:  in syntax/parse/experimental<br>
&gt;&gt;&gt; raco setup:  in racket/match<br>
&gt;&gt;&gt; raco setup:  in syntax/parse/experimental/private<br>
&gt;&gt;&gt; raco setup:  in racket/draw/private<br>
&gt;&gt;&gt; raco setup:  in ffi/unsafe<br>
&gt;&gt;&gt; raco setup:  in ffi<br>
&gt;&gt;&gt; raco setup:  in racket/draw/unsafe<br>
&gt;&gt;&gt; raco setup:  in file<br>
&gt;&gt;&gt; raco setup:  in racket/draw<br>
&gt;&gt;&gt; raco setup:  in rackunit<br>
&gt;&gt;&gt; raco setup:  in rackunit/private<br>
&gt;&gt;&gt; raco setup:  in racket/gui<br>
&gt;&gt;&gt; raco setup:  in racket/place/private<br>
&gt;&gt;&gt; raco setup:  in mred<br>
&gt;&gt;&gt; raco setup:  in mred/private<br>
&gt;&gt;&gt; raco setup:  in scheme/private/lang<br>
&gt;&gt;&gt; raco setup:  in scheme/private<br>
&gt;&gt;&gt; raco setup:  in scheme/base/lang<br>
&gt;&gt;&gt; raco setup:  in racket/snip/private<br>
&gt;&gt;&gt; raco setup:  in mred/private/wx<br>
&gt;&gt;&gt; raco setup:  in mred/private/wx/common<br>
&gt;&gt;&gt; raco setup:  in mred/private/wxme<br>
&gt;&gt;&gt; raco setup:  in racket/lang<br>
&gt;&gt;&gt; raco setup:  in scheme/private/provider/lang<br>
&gt;&gt;&gt; raco setup:  in scheme/private/provider<br>
&gt;&gt;&gt; raco setup:  in scheme/lang<br>
&gt;&gt;&gt; raco setup:  in compatibility<br>
&gt;&gt;&gt; raco setup: --- parallel build using 4 processes ---<br>
&gt;&gt;&gt; raco setup: 3 making:<br>
&gt;&gt;&gt; /Users/dyoo/Library/Racket/5.3.2/pkgs/installed/sxml/sxml (sxml)<br>
&gt;&gt;&gt; raco setup: 2 making: scribblings/main/user<br>
&gt;&gt;&gt; raco setup: 3 making:<br>
&gt;&gt;&gt; /Users/dyoo/Library/Racket/5.3.2/pkgs/installed/sxml/sxml/scribblings<br>
&gt;&gt;&gt; raco setup: 3 making:<br>
&gt;&gt;&gt; /Users/dyoo/Library/Racket/5.3.2/pkgs/installed/sxml/sxml/ssax (ssax)<br>
&gt;&gt;&gt; raco setup: --- updating info-domain tables ---<br>
&gt;&gt;&gt; raco setup: updating: &lt;user&gt;/info-domain/compiled/cache.rktd<br>
&gt;&gt;&gt; raco setup: --- creating launchers ---<br>
&gt;&gt;&gt; raco setup: --- building documentation ---<br>
&gt;&gt;&gt; link: bad variable linkage;<br>
&gt;&gt;&gt;  reference to a variable that has the wrong procedure or structure-type<br>
&gt;&gt;&gt; shape<br>
&gt;&gt;&gt;   reference phase level: 0<br>
&gt;&gt;&gt;   variable module: &quot;/Applications/Racket<br>
&gt;&gt;&gt; v5.3.2/collects/syntax/location.rkt&quot;<br>
&gt;&gt;&gt;   variable phase: 0<br>
&gt;&gt;&gt;   reference in module: &quot;/Applications/Racket<br>
&gt;&gt;&gt; v5.3.2/collects/racket/date.rkt&quot; in: module-name-fixup<br>
&gt;&gt;&gt; ---<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; At this point forward, I think the following is happening: it appears<br>
&gt;&gt;&gt; that once this happens, things are completely hosed because DrRacket<br>
&gt;&gt;&gt; is somehow loading both DrRacket-specific bytecode for some modules,<br>
&gt;&gt;&gt; and others with the standard bytecode.  The mix leads to the linkage<br>
&gt;&gt;&gt; errors.<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; Does this explanation sound plausible?<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;<br>
&gt;<br>
</div></div><div class="im HOEnZb">&gt; _________________________<br>
&gt;   Racket Developers list:<br>
&gt;   <a href="http://lists.racket-lang.org/dev" target="_blank">http://lists.racket-lang.org/dev</a><br>
&gt;<br>
<br>
<br>
<br>
</div><div class="HOEnZb"><div class="h5">--<br>
Jay McCarthy &lt;<a href="mailto:jay@cs.byu.edu">jay@cs.byu.edu</a>&gt;<br>
Assistant Professor / Brigham Young University<br>
<a href="http://faculty.cs.byu.edu/~jay" target="_blank">http://faculty.cs.byu.edu/~jay</a><br>
<br>
&quot;The glory of God is Intelligence&quot; - D&amp;C 93<br>
</div></div></blockquote></div><br></div>