[m-rev.] For review: Improve the name mangling of foreign methods in the IL backend

Jonathan Morgan jonmmorgan at gmail.com
Sat Jun 9 19:10:12 AEST 2007


On 6/9/07, Julien Fischer <juliensf at csse.unimelb.edu.au> wrote:
>
> On Fri, 8 Jun 2007, Jonathan Morgan wrote:
>
> > On 6/7/07, Julien Fischer <juliensf at csse.unimelb.edu.au> wrote:
> >>
> >> On Thu, 7 Jun 2007, Jonathan Morgan wrote:
> >>
> >> >
> >> > The error message given is:
> >> >
> >> > mercury_compile: cannot find `foreign_type_spec.foreign_type.int' in
> >> > directories .,
> >> C:/cygwin/usr/local/mercury-rotd-2007-05-26/lib/mercury/ints.
> >> > foreign_type_spec.m:007: In definition of type `foreign_type_spec.ft2'/0:
> >> > foreign_type_spec.m:007:   error: undefined type `foreign'/0.
> >> > mercury_compile: cannot find `foreign_type_spec.int0' in directories
> >> > ., C:/cygwin/usr/local/mercury-rotd-2007-05-26/lib/mercury/ints.
> >> >
> >> > While I'm no expert in the Mercury build system, I wouldn't expect my
> >> > change to cause this problem.
> >>
> >> With rotd-2006-06-06, the error I'm getting is:
> >>
> >>         Uncaught Mercury exception:
> >>         Software Error: mlds_to_il.m: Unexpected: IL procedure is not a
> >> function
> >>
> >> which was is an assertion that your change introduced.
> >>
> >> Are you sure your copy of tests is up-to-date?  foreign_type_spec was
> >> failing but Simon Taylor fixed it at the beginning of May and AFAIK it
> >> has been working ever since.
> >
> > My version of the tests and of the compiler is up to date (ignore the
> > rotd-2007-05-26, as that is just what I started with), and I get the
> > following output.  This is done under Cygwin, using the command mmake
> > foreign_type_spec.runtest.  I don't know whether this is an error with
> > my build, or with Cygwin, or what.
> >
> > mmc --make-private-interface --grade asm_fast.gc  --grade il
> > --flags ../TESTS_FLAGS     foreign_type_spec
> > mercury_compile: cannot find `foreign_type_spec.foreign_type.int3' in
> > directories ., C:/cygwin/usr/local/mercury-rotd-2007-05-26/lib/mercury/ints.
> > Error reading interface files.
> > `foreign_type_spec.int0' not written.
> > mercury_compile: cannot find `foreign_type_spec.int0' in directories
> > ., C:/cygwin/usr/local/mercury-rotd-2007-05-26/lib/mercury/ints.
> > Error reading interface files.
> > `foreign_type_spec.foreign_type.int0' not written.
> > make: *** [foreign_type_spec.date0] Error 1
>
> Did you build the dependencies before invoking the .runtest target?
> e.g.,
>
>         mmake foreign_type_spec.depend

No.  I've been using `mmc --make' for so long that I'd completely
forgotten about mmake needing the depend step.  It now produces the
same error with both mmake and mmc --make.

Jon
--------------------------------------------------------------------------
mercury-reviews mailing list
Post messages to:       mercury-reviews at csse.unimelb.edu.au
Administrative Queries: owner-mercury-reviews at csse.unimelb.edu.au
Subscriptions:          mercury-reviews-request at csse.unimelb.edu.au
--------------------------------------------------------------------------



More information about the reviews mailing list