[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