[mercury-users] High-level vs LLDS grades

Peter Hawkins peter at hawkins.emu.id.au
Mon Jul 19 11:01:52 AEST 2004


Hi...

Is it just me, or is mail delivery to mercury-users very unreliable?

On Mon, 19 Jul 2004 10:14 am, Ralph Becket wrote:
> Peter Hawkins, Saturday, 17 July 2004:
> > * Is the grade reg.gc likely to be faster than hlc.gc?
> > * Is the grade hlc.gc likely to be faster than none.gc?
> > * What features (if any does the grade hlc.gc) lack? Are there any
> >   reasons to install the LLDS grades at all?
>
> Section 10.8.1, "Grades and grade components" of the Users' Manual tells
> you what the different grades do.  If you're using gcc then `asm_fast',
> which sets --gcc-global-registers --gcc-nonlocal-gotos --asm-labels, is
> almost certainly going to be faster than `reg', which sets just
> --gcc-global-registers, which is almost certainly going to be faster
> than `none', which uses no gcc extensions at all.

Yes, I realise that, but that wasn't what I asked. Currently I'm building 
different grades for each debian architecture - I'm wondering whether I can 
dispense with most of the LLDS grades and simply build the high level grades 
for all non-debugging grades.

>
> `hlc' generates high-level C code, but uses a low-level data
> representation, and is often a little faster than `asm_fast'.  `hl'
> generates both high-level C code and data structures and performs
> similarly.

Is there a good reason why the compiler isn't built using hlc.gc by default, 
then? It's faster, more portable, and most people using the source tarballs 
don't need to debug the compiler...

> > The only indication of this that I could find on the web pages was the
> > following list in the 0.10 release notes:
> > * abstractly exported equivalence types defined as `float'
> > * calling compare/3, or the `in = in' mode of unification, for certain
> >   standard library types (std_util__type_desc/0, and
> >   std_util__type_ctor_desc/0).
> > * calling copy/2 on higher-order terms
> > * demangling of symbol names in the profiler
> > * fact tables for procedures with determinism `nondet' or `multi'
> > * the Mercury debugger (mdb)
> > * the Morphine trace analysis system
> > * the Aditi deductive database interface
> > * the `--split-c-files' option
> > * the `--introduce-accumulators' option
> > * dynamic linking (via the dl__mercury_sym procedure in
> > extras/dynamic/dl.m in the mercury-extras distribution) for procedures
> > with arguments of type `float' or `char'
> >
> > Which of these still apply?

Those are the things that were missing from the hlc grade in the 10.0 release. 
Has anything changed?

=)
Peter
--------------------------------------------------------------------------
mercury-users mailing list
post:  mercury-users at cs.mu.oz.au
administrative address: owner-mercury-users at cs.mu.oz.au
unsubscribe: Address: mercury-users-request at cs.mu.oz.au Message: unsubscribe
subscribe:   Address: mercury-users-request at cs.mu.oz.au Message: subscribe
--------------------------------------------------------------------------



More information about the users mailing list