Ah, I see. Now that I know that, I can duplicate the problem more easily: just having Plot's "draw.rkt" open in another tab gives me a link error. As soon as I close that tab, DrRacket uses the .zo files compiled by raco setup, and plotting works again.

Another workaround (besides closing a tab) is to choose "No debugging or profiling" from the language dialog. Apparently, that makes the .zo files DrRacket builds compatible with the output of raco setup. But I still have to wait for it to recompile everything the first time.

I think the current behavior would be fine with a small tweak. Is it possible for DrRacket to determine whether each .zo file in the "compiled" directory is up-to-date, and use those that are? Then I could either have DrRacket's on-demand compiler build Plot, or use raco setup.

(The former would be much easier if the "-c" flag could clean just one collection or package, though.)

Neil ⊥

On 01/03/2014 09:28 PM, Robby Findler wrote:
Yes: as an experiment we decided to treat files that are open
differently than other files for the purposes of recompiling them.

Looks like that's probably a bad design decision. But it may just be a
bug too, since I thought it was re-compiling more, not less, when you
have the file open.

Robby


On Fri, Jan 3, 2014 at 7:22 PM, Jens Axel Søgaard <jensa...@soegaard.net
<mailto:jensa...@soegaard.net>> wrote:

    Try this:
       - open the menu "Language" in DrRacket
       - choose the menu item "Choose language..."
       - click the button "Show details"
       - remove the tick in "Populate 'compiled' directories (for faster
    loading)

    /Jens Axel



    2014/1/4 Neil Toronto <neil.toro...@gmail.com
    <mailto:neil.toro...@gmail.com>>:
     > I do this:
     >
     >  * In DrRacket, open
    "pkgs/plot-pkgs/plot-lib/plot/private/common/draw.rkt"
     >
     >  * Make a small change, save
     >
     >  * At the command line, "racket/bin/raco setup --no-docs -l plot"
     >
     >  * Run a test file in another tab in DrRacket that has (require plot)
     >
     >
     > I wait a long time (I think it's recompiling) and get this error:
     >
     > link: bad variable linkage;
     >  reference to a variable that has the wrong procedure or
    structure-type
     > shape
     >   reference phase level: 0
     >   variable module:
     > "/home/neil/plt/pkgs/plot-pkgs/plot-lib/plot/private/common/draw.rkt"
     >   variable phase: 0
     >   reference in module:
     >
    "/home/neil/plt/pkgs/plot-pkgs/plot-gui-lib/plot/private/gui/plot2d.rkt"
    in:
     > draw-bitmap
     >
     >
     > So I remove the "compiled" directory and try again. Same problem.
     >
     > Here's the kicker: I always get link errors *until I close
    "draw.rkt" in
     > DrRacket*. After that, I can remove the "compiled" directory,
    rebuild, and
     > run the program without errors.
     >
     > Does anybody know what's going on?
     >
     > Neil ⊥
     > _________________________
     >  Racket Developers list:
     > http://lists.racket-lang.org/dev



    --
    --
    Jens Axel Søgaard

    _________________________
       Racket Developers list:
    http://lists.racket-lang.org/dev



_________________________
 Racket Developers list:
 http://lists.racket-lang.org/dev

Reply via email to