work in progress | array |
Remove the "frozen" status from features 'put', 'item' and infix "@".
Please select one of the following:
A frozen 'item' might make it easier for a vendor to produce an efficient
implementation of ARRAY (and I think a vendor requested it for this
reason).
But there is a big price to pay for a frozen 'item' - it makes it
impossible to inherit from ARRAY and implement, say, a SPARSE_ARRAY
where storage is not allocated for elements having default values.
manus@eiffel.com, 11 October:
In most of cases, it is not a problem to have a non-frozen version of
`item'. The user will pay the price of polymorphic calls on `item'
if
he redefines it. The only place where it is a problem in ISE's
implementation is with `array optimization' that we implemented
completely on the fact that `item' is frozen and that we know what
it
is doing.
Roger Browne, 13 October:
I think this can be resolved by disabling the optimization if 'item'
has
been redefined.
manus@eiffel.com, 14 October:
Definitely, and we are ready to do so.
Roger Browne, 13 October:
Then, any system that does not redefine 'item' will work exactly as
it
does now, and will be optimized exactly as it is now. But in addition
the user will gain the ability to redefine 'item' if they are prepared
to forego maximum optimization.
manus@eiffel.com, 14 October:
Agreed.
Dominique Colnet, 12 October:
We don't want frozen item (both for ARRAY and STRING).
Alexander Kogtenkov, 12 October:
It's a compiler business to optimize the things. Frozen features
are not for optimization but for fixed implementations, say "clone"
in GENERAL or external feature that invokes Win32 API. This is
a design issue.
Marcus Kallabis, 14 October:
We agree with removing frozen from 'item'.
In iss-base we rely on this for the 'array_optimization' feature (it
makes
things easier), but it's no problem to change this to support the new
standard.
Vendors exploiting the current frozen status of these features for optimization purposes will need to adjust their optimization process to check for redefinitions of these features.
Accept the proposal
sergei_ivanov@object-tools.com
sparker@eiffel.ie
ansible@xnet.com
kevin@ethossoft.co.nz
pc_cohen@hotmail.com
ericb@gobosoft.com
tking@insystems.com
doylep@ecf.toronto.edu
gmc333@my-deja.com
kwaxer@aha.ru
Don't mind (happy either way)
jcm@mstr.hgc.edu
richieb@netlabs.net
Strongly accept the proposal
andreas.leitner@teleweb.at
chcouder@club-internet.fr
joachim.durchholz@halstenbach.de
dominique.colnet@loria.fr
genepi@sympatico.ca
simonwillcocks@enterprise.net
manus@eiffel.com
jweirich@one.net
steinman@sco.edu
franck.arnaud@omgroup.com
votes sent to the discussion list:
-