[m-dev.] bug fixes for module qualified cons_ids

Simon TAYLOR stayl at students.cs.mu.oz.au
Wed Apr 2 09:06:20 AEST 1997


Hi Fergus,

> > Currently the `.opt' files are written out immediately after type-checking,
> > so mode inference cannot be supported without running mode analysis as well.
> > Is the extra compilation time worth it? Actually, the check added here
> > is unnecessary, since exported predicates must have modes declared, so I've
> > removed it.
> 
> Uh, I think that is wrong.  Predicates that are not exported may still
> get put in the `.opt' file, if they are called by exported predicates.
> So, unless I am mistaken, that removal is a bug.  Please scrap my previous
> "That looks fine" comment; you should fix this bug before committing this
> stuff.
> 

intermod.m currently doesn't put an exported predicate's definition in the
`.opt' file if it calls predicates without modes declared.

>
> Yes, but what is the point of running the unused_args pass, if the `.opt'
> file has already been written out?  Where does the information in the
> unused_args pass get saved?  It looks to me like it just gets discarded,
> i.e. the --intermod-unused-args option doesn't work.
> 

unused_args.m appends some pragmas on to the end of the `.opt' file,
e.g. :- pragma unused_args(predicate, list:append, 3, 0, [1]).

Simon.



More information about the developers mailing list