[m-dev.] 0.13 release: op/3 syntax

Ralph Becket rafe at cs.mu.OZ.AU
Fri Mar 3 14:59:49 AEDT 2006


Peter Schachte, Friday,  3 March 2006:
> 
> That's much closer.  But for this to work, there would have to be only
> one such program, and every module that wants operators would have to
> use that one, so this preprocessor needs to be a standard Mercury
> tool.  Otherwise we're back to the problem of mixing operators from
> different modules, and your argument breaks down.

Yes, but it addresses Doug's request as far as I can see (although Doug
has said that he thinks it a terrible idea, but not why).

> But it's all still rather painful to work with the standard mmake and
> mmc --make technology, so those should also be amended to do the
> preprocessing automatically.

Not really.  Just use an ordinary Makefile to automatically run the
preprocessor over any changed Mercury-with-op/3 files to get vanilla
Mercury files, then get it to run `mmc --make'.  Problem solved.

> And as I've argued before, modules should be able to export operators
> much as they do predicates and funtions.  So you'd need to modify your
> preprocessor to read the interface sections of imported modules
> looking for :- op declarations.  But OK, that's doable.

Before we get on to the mechanics of how it could work, you have to
convince a skeptical bunch of language designers that we should add the
facility in the first place.

> OK, now you've got the functionality right.  But unfortunately you've
> slowed down compilation a bit, so it would be a good idea to do some
> profiling and see if you can't speed it back up.

I assure you that filtering of this kind would be unnoticeable in any
compilation.

> Maybe you could
> removing the completely pointless process launch/read/write phase?
> Not a huge expense, but you might as well merge the preprocessor into
> the Mercury compiler.  Then you could also back out the changes to
> mmake and mmc --make.
> 
> OK, that's got it.  :-)

Now you're optimising something that doesn't exist for a facility that
shouldn't exist :-)  (IMHO)

-- Ralph
--------------------------------------------------------------------------
mercury-developers mailing list
Post messages to:       mercury-developers at cs.mu.oz.au
Administrative Queries: owner-mercury-developers at cs.mu.oz.au
Subscriptions:          mercury-developers-request at cs.mu.oz.au
--------------------------------------------------------------------------



More information about the developers mailing list