NICE-ESG-Libs Digest Thu, 23 Mar 95 Volume 1 : Issue 205
Today's Topics:
Bertrand's comments on the recent proposals
NICE Eiffel Standards Group -- Library Committee Mailing List
To post to list:
NICE-ESG-Libs@atlanta.twr.com
To send mail to the Chairman of the committee:
NICE-ESG-Libs-chair@atlanta.twr.com
Administrative matters (sign up, unsubscribe, mail problems, etc):
NICE-ESG-Libs-request@atlanta.twr.com
Date: Wed, 22 Mar 95 22:11:52 EST
From: fhart@atlanta.twr.com (C. Frederick Hart)
Subject: Bertrand's comments on the recent proposals
To: nice-esg-libs
I wish to make a quick response to the technical content of Bertrand's
last posting.
The concern that simply moving `hash_code' to GENERAL can cause
problems for existing Eiffel code is valid. I wish this observation
had been made in time for the proposal to have been modified since
there is an apparently easy fix. Simply leave HASHABLE as it is and
add a new hashing feature to GENERAL. I like Paul's suggestion of
`hash_value'. No existing software is invalidated and users who need
universal hashing get it in a standard way. The difficulty with users
adding a hashing function to ANY is that it is unreasonable to expect
that users could write efficient and portable hashing functions that
are applicable to all objects. Such functions would likely have to
make use of runtime information that is peculiar to each compiler, and
there is no guarantee that such information is available from every
vendor.
Bertrand gave no technical arguments for why he voted to prevent
default values from being hashable. No other general purpose
implementation of hashing of which I am aware has this restriction. I
cannot see that removing such an obscure restriction places an undue
burden on the ISE libraries especially since removing the restriction
should be trivial. This seems in line with Bertrand's and Eiffel's
philosophy of making life hard on the compiler writers and not the
users.
Bertrand asserts that we should omit PART_COMPARABLE on the theory
that it is unnecessary. Nevertheless, ISE, SIG, and Tower all have
such a class in their current kernels. All seem to find it useful.
The operators <, >, etc that are found in COMPARABLE have their
natural seeds in PART_COMPARABLE. Why not just standardize this
class. As Bertrand says, "let's codify existing practice". COMPARABLE
and PART_COMPARABLE describe mathematical "orderings". The other
mathematical terms that Bertrand refers to: "transitive relations,
preorders, symmetric relations, reflexive relations" do not describe
orderings and are not germane to this discussion.
As far as Bertrand's objection to COMPARABLE goes, he refers to some
discussions with Michael Schweitzer last year. Since I was not party
to those discussions I can not evaluate the rationale he used. The
reasons for including order_equal in Paul's and Tower's proposal were
outlined in detail in my original proposal. Nothing Bertrand has
posted has negated those arguments.
-- Fred Hart (fhart@atlanta.twr.com)
Tower Technology Corporation http://www.cm.cf.ac.uk/Tower/

|
|