[plt-dev] Mysterious "link: module mismatch" bug

From: Doug Williams (m.douglas.williams at gmail.com)
Date: Tue Sep 8 20:57:23 EDT 2009

I have had a similar problem that requires me to roll back to 4.1.5 for some
of my code. I've tracked it down to the following code where I've using eval
to build a procedure from piece parts when constructing a rule network.
[They parts don't (necessarily) exist in the same syntactic construct, so I
can't build them in the rule macro and have to do it when building the rule
network.] It now fails (post 4.1.5) if the the rule actions contain
references things to another module.

(eval `(lambda ,previous-variable-list
                         (begin ,@(rule-actions rule)))
                     (namespace-anchor->namespace anchor)))

The error given is:

farmer.ss:26:11: link: module mismatch, probably from old bytecode whose
dependencies have changed: variable not provided (directly or indirectly)
from module: "C:\Documents and Settings\dwilliams\Application Data\PLT
Scheme\planet\300\4.2.0.900\
cache\williams\science.plt\3\5\random-distributions\triangular.ss"
accessed from module: "C:\Documents and Settings\dwilliams\Application
Data\PLT
Scheme\planet\300\4.2.0.900\cache\williams\inference.plt\2\0\private\inference-control.ss"
at source phase level: 0 in: random-triangular

In this case, random-triangular is defined in a required package. I suspect
it is something different with namespace-anchor->namespace or something
along those lines.

Any ideas?

Doug

On Tue, Sep 8, 2009 at 6:36 PM, Robby Findler
<robby at eecs.northwestern.edu>wrote:

> Do you get the error when you run from outside of DrScheme?
>
> Robby
>
> On Tue, Sep 8, 2009 at 7:04 PM, Carl Eastlund<cce at ccs.neu.edu> wrote:
> > The cleanup I did each time involved rm -r of the compiled/
> > directories, so the drscheme/ subdirectories were gone as well.
> >
> > --Carl
> >
> > On Wed, Sep 9, 2009 at 12:21 AM, Robby
> > Findler<robby at eecs.northwestern.edu> wrote:
> >> Likely the files in compiled/drscheme/ are out of date. Why cm isn't
> >> bringing them back into sync is unclear to me, but you can at least
> >> get out of the bad loop by deleting those directories.
> >>
> >> Robby
> >>
> >> On Tue, Sep 8, 2009 at 6:01 PM, Carl Eastlund<cce at ccs.neu.edu> wrote:
> >>> Running code in DrScheme from one of my planet development links, I
> >>> get this familiar error:
> >>>
> >>> link: module mismatch, probably from old bytecode whose dependencies
> >>> have changed: variable not provided (directly or indirectly and at the
> >>> expected position) from module:
> >>> "/Users/cce/research/planet/scheme/syntax.ss" accessed from module:
> >>> "/Users/cce/research/planet/scheme/require-provide.ss" at source phase
> >>> level: 0 in: provide/contract-contract-id-make-planet-path.62
> >>>
> >>> The usual process to fix this is to recompile the relevant files.  I
> >>> have now twice cleaned out all compiled files from my planet
> >>> development links and run a full 'setup-plt' to restore them, and the
> >>> message has not gone away.  What could be causing this, if the .zo
> >>> files are all up to date?
> >>>
> >>> Carl Eastlund
> >
> _________________________________________________
>  For list-related administrative tasks:
>  http://list.cs.brown.edu/mailman/listinfo/plt-dev
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.racket-lang.org/dev/archive/attachments/20090908/3d9cfbe7/attachment.html>

Posted on the dev mailing list.