[m-dev.] for review: changes to NEWS file

Tyson Dowd trd at cs.mu.oz.au
Mon Nov 24 11:21:43 AEDT 1997


On 24-Nov-1997, Fergus Henderson <fjh at cs.mu.oz.au> wrote:
> Tyson Dowd, you wrote:
> > 
> > You should mention the recent GRADEFLAGS change, since it is a user
> > visible change.
> 
> Good point.
> 
> > > +* Array bounds checking can now be disabled.
> > > +
> > > +  To disable array bounds checking, you must compile with
> > > +  `--intermodule-optimization' enabled and you must also
> > > +  define the C macro ML_OMIT_ARRAY_BOUNDS_CHECKS (e.g. by using
> > > +  `MGNUCFLAGS=-DML_OMIT_ARRAY_BOUNDS_CHECKS' in your Mmake file). 
> > 
> > I don't think this is enough information - in particular this needs to be
> > done while compiling the library, or you need to copy the array module
> > and build it locally (IIRC that is). 
> 
> If intermodule inlining is enabled, then no you don't need to copy
> the array module locally.

Well, that depends on your optimization level (which isn't too bad
a thing for it to rely on though).

Recompiling the library or using a local copy are reliable ways of
getting it to work. Using intermodule optimization is unreliable -
because of inlining thresholds, it won't be possible (in general) to
have all bounds checking eliminated. For example, array_lookup is used
in array_bsearch2. It will almost certainly be inlined into
array_bsearch2. But array_bsearch2 won't get put into the array.opt
file, so we will still have bounds checks in every call to array_bsearch2.

Calling this behaviour "disabling bounds checks" is misleading ;-)

-- 
       Tyson Dowd           # 
                            #         Linux versus Windows is a 
     trd at cs.mu.oz.au        #            Win lose situation.
http://www.cs.mu.oz.au/~trd #



More information about the developers mailing list