Notes from the meeting
Jim Dehnert
dehnert at baalbek.engr.sgi.com
Thu Jul 6 21:09:25 UTC 2000
>From today's (6 July) meeting agenda:
1-4) Mark's runtime proposals were all accepted. I will incorporate
them in the draft, and close the issues except where non-cursory
review seems desirable.
5) The vector allocator/deallocator runtimes will be extern "C".
6) Covariant returns. It is the concensus that further wording is
required. I agree with Jason's latest mail on the subject.
Could Jason and Mark please attempt to identify where comments
are required? (I will too, but...)
7) I will remove the extra flags from __vmi_class_type_info.
8) I will attempt a more consistent renaming of the type_info data
members, without prefixes.
9) We generally accepted Alex's proposed mangling grammar modifications,
with a couple of minor changes that will appear in the draft.
There is one significant problem, related to covariant return
types. When the overridden function is defined in the primary
base class of the class defining the overriding function, they
require the same 'this' adjustment, which is what is used for our
mangling, but differ in their result adjustments. We concluded
that we needed to include the result adjustments in the mangling.
Upon further thought, though, I don't think this is needed. The
two functions have different definitions, with different
hierarchical names. The result adjustment is determined by which
function is called and where it is called from, and there
shouldn't be an opportunity to confuse them.
Am I missing something?
Also, on Alex's request, we revisited the issue of thread-safe one-time
initialization. We agreed that, if there's to be any hope of
interoperability of compilers supporting it, they need the same API for
handling the guard variable.
The proposed solution is to strongly suggest that implementors who
hope ever to support this call a routine:
extern "C" int __cxx_gv_test_and_set ( long long *gv );
The routine returns "true" to only one caller, and "false" to all
others after the first has released the lock. We neglected to note
that the release also needs specification. How about:
extern "C" void __cxx_gv_release ( long long *gv );
Comments?
Next meeting 20 July.
Jim
- Jim Dehnert x3-4272
More information about the cxx-abi-dev
mailing list