Agenda for Thursday
Jim Dehnert
dehnert at baalbek.engr.sgi.com
Tue May 2 01:24:25 UTC 2000
Following is an updated agenda. The status pages are updated and on
the web at:
http://reality.sgi.com/dehnert_engr/cxx/cxx-summary.html
The contact info page is now also there, in password-protected PDF only
for privacy. The password is "not an orc".
A reminder: At the next two meetings, I'd like to clear away most of
the significant and solvable issues, as I'll be gone for the following
5 Thursdays, and several implementations are far enough along to need
resolution. That means:
- Please look over the open issues carefully, and try to sort out
your ideas/position on them. Raise issues/clarify things by email
in advance if possible.
- These next two weeks are a good time to not miss the meetings if
you care about the issues.
- I'd like to try real hard to start on time, and we might go
overtime if things are moving.
- Note that the number has changed from the last "real" meeting:
it's now (650) 933-7952. (In general, if you're not sure, it's on
the contact page.)
Also, note that it doesn't usually work to try to contact me by email
or phone the morning of the meeting, as I come directly from home. If
you come in physically to the meeting, and the receptionist won't let
you come back to the conference room on your own, have her call the
conference room (it has a phone other than the one we use for the
meeting).
As usual, most of the updates are in the ABI layout document, in color.
The significant changes from last time are:
- Clarify ordering of vcall offsets.
- Further elaboration of the construction vtable.
- Specify COMDAT RTTI name (proposed resolution of A-28).
- Derive pointer-to-member RTTI and pointer RTTI from common base.
(Proposed resolution of A-29.)
- Clarify substitution in mangled names by changing grammar approach.
- Updates in Vague Linkage section.
Please take a careful look at the colored text, and raise any issues
you observe. In particular, be prepared to list other things which
need to be mentioned in the new vague linkage section.
Take a look at the material associated with the following issues.
Many of them are issues we think we've resolved, and all that's missing
is final approval of the descriptions. If you see something, please
send it by email, and it might get fixed before the meeting.
1) C-2: Priority for constructors. The base ABI group is not
particularly interested in this, because they are not getting
pressure from their C++ people to worry about it. So, if we want
to standardize this, we need to apply pressure within our
companies.
We have three choices:
- We can press ahead and try to build support for a common
solution.
- We can specify the API only (already done, and not strictly
speaking an ABI issue) so that implementors at least provide a
common source code mechanism.
- We can specify nothing.
I don't think we should pursue the first unless we have vendors
anxious to support it.
2) A-29: pointer-to-member RTTI. Proposed resolution and writeup OK?
3) A-28: incomplete class RTTI and equality testing. Proposed
resolution and writeup OK?
4) C-4: Construction vtables. Ready to close?
5) F-1: Mangling template parameters. Daveed has convinced me and
Matt that this is much simpler than what we were trying to
attempt. Does anyone else have residual confusion?
5) F-7: Mangling statics. Is writeup OK?
6) F-11: Hash for local strings. Close with current (non-hash)
writeup?
7) F-2: Mangled name size. Our hope has been that the substitution
mechanism will make further efforts unnecessary. How do we go
about validating this? Martin's first data are excellent.
Matt gave him another set of names to try -- any luck?
8) F-3: Mangling instantiation/specialization.
F-4: Empty throw specifications.
F-10: Mangling return types.
Coleen made a proposal for F-3. Jim updated the SGI interface
section to handle all three. Where should we go with this?
G-2: ODR violations. Is there anything we should be trying to
address besides the above cases? Can we close this one?
9) F-6: Demangler. We have an updated proposal from Matt. Is is
OK?
10) D-12: Unwind table location.
Unfortunately, though I'm not real happy with forcing the unwind
tables into the text segment being described, and believe that we
could avoid that restriction without significant complications,
I think the current scheme is workable for mainstream systems, and
I suspect that changing it at this point will encounter more
resistance than we can overcome. So without a groundswell of
support for a more general scheme, we should probably close this
with the current approach. Comments?
11) C-3: Order of ctors/dtors w.r.t. DSOs. Mark proposed a
simplification a while back to what we had accepted. It looks
good to me. Comments?
For next week, be prepared to discuss:
12) G-4, C-14: Specify form of local-scope single-initialization.
13) E-*: Do we go anywhere with templates? Note that our mangling
and vague linkage specifications should be sufficient to make
instantiations play together -- the principal issue is whether to
attempt to specify how to deal with instantiations that aren't
produced when the reference occurs, i.e. export templates.
14) H-*: Do we go anywhere with the runtime library interface?
I have been convinced that the extensive use of templates and
associated helper functions probably makes it impractical in the
short term to connect all but the simplest objects compiled with
one vendor's header files with another vendor's libC.
An intermediate model that might be more tractable is this:
Suppose that one compiles objects with multiple vendors'
compilers, but all with the header files for the target system.
Then the key issue in making them work together will be whether
the various non-Standard-Library interfaces used by the compilers
(e.g. internal math functions or some such) play together. If the
ABI specifies that such runtime routines be named to avoid
conflicts (e.g. __cxa_sgi_foo) and be placed in a library separate
from libC so that each vendor's set could be linked into the end
program, this seems doable. Comments?
Jim
- Jim Dehnert x3-4272
More information about the cxx-abi-dev
mailing list