This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: UCNs-in-IDs patch


Geoff Keating <geoffk@geoffk.org> writes:

> On 15/03/2005, at 8:10 PM, Joseph S. Myers wrote:
>
>> On Tue, 15 Mar 2005, Geoffrey Keating wrote:
>>
>>> Could you quote a part of the standard which says that \u00c1 and
>>> \u00C1 count as a "different expansion" (or, in standardese, that they
>>> have "different spelling")?  I couldn't find any definition of the
>>> word 'spelling' at all, but maybe I missed it.
[...]

I do not have a strong opinion on how these "spelling" properties
should work, but would like to point out that preserving the exact
spelling of identifiers is going to be a huge implementation headache
and I don't see that it's worth the trouble.

More importantly, the conversation is presently debating minutiae at
the expense of larger concerns.  My primary concern with Geoff's
patches as they stand, is that he has not audited the compiler for
places where code assumes that identifiers consist exclusively of
characters from the set A-Za-z0-9_$.  Of particular concern are:
Symbol mangling in backends; diagnostic output; debugging output; 
C++ name mangling.

This is critical.  I expect multiple places will be found where use of
extended identifiers will produce ICEs, or worse, wrong code
generation.  The issue of printing garbage to the user's terminal has
already been mentioned, but is of less concern to me than, say, losing
the symbol suffixes mandated by the Windows ABIs (the Windows
programmer population seems more likely to me to try out this spiffy
new feature than some of our other user bases).

Because this is a question of fixing bugs introduced with the
implementation of a new feature, I really must insist that Geoff do
the audit himself.  As I said before, I do not appreciate attempts to
brush it off as unnecessary, or push the work onto other people.

Now, having read through the changes, I don't believe there is a need
to revert the patch or disable it by default until the audit is
completed.  We are in stage 1 and we can tolerate some degree of
breakage.  If it is not done by the time we get to stage 3 of this
development cycle, though, I'm going to consider disabling it subject
to a command-line option, and describing it as an experimental feature
in the release notes.

I apologize for snarkily saying everything should be reverted earlier.
I had not read the patches when I said that.  I reacted to Geoff's
behavior, not to the technical merits of the patch.  I'm still not
happy with Geoff's behavior, but I would prefer to divert that
conversation (which does need having) into a separate thread.

zw


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]