🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: comp.std.c++
Article #3056

Re: Throwing an exception from within a si

#3056
From: David Chase
Date: Mon, 22 Jan 1996 06:01
52 lines
3284 bytes
In article <4dos4l$ra9@engnews1.Eng.Sun.COM>,
Steve Clamage <clamage@Eng.Sun.COM> wrote:
>In article k04@wcap.centerline.com, chase@centerline.com (David Chase) writes:

>I'm more than willing to assume your implementation technique has merit.
>Yet didn't you say you were not able to get it approved? So what
>is a C++ implementor to do if the only reasonable implementation
>technique violates the platform ABI?

Use of techniques not mandated by the ABI does not necessarily
"violate" the ABI.  For instance, Sun's current C++ product uses
PC-ranges, yet these are not discussed in the ABI.  Note that the C++
subroutines interoperate with ABI-conforming subroutines.  Placing
something like that in the ABI merely helps reduce the chance that
each and every language and vendor will do something different and
non-interoperable.  The actual reasons why it didn't make it in had a
lot less to do with technology, and more to do with intercompany
politics (and I must admit that I did not explain myself well at the
time).

>I want to say again that a criterion for a feature in the standard is not
>whether you can somehow implement it on some systems. The criterion is more
>like whether you can implement it with appropriate efficiency on all
>systems and not adversely affect programs that don't use the feature.
>If a feature does not meet this criterion, it has to be widely beneficial
>to justify its inclusion.

Well, most programs I've seen (Sparc, 386, 68K, VAX) used pretty
simple calling sequences, even in the presence of some scheduling, and
those programs aren't adversely affected by this.  It's efficient on
all reasonable systems (I haven't figured out how it would work on a
B1700, for example), and I've had my ear bent talking to people (at
Sun) doing video about how brain-dead they think it is to not have
asynchronous exceptions.  Furthermore, I fully expect that people will
do stupid stuff in signal handlers, no matter what the standard says.
I realize that there are difficulties (how much of the constructor has
completed?) but they aren't related to maintaining consistent
activation records.

Really, this is slightly pointless -- I had this argument with other
people years ago, and I know that it will have no effect on the
language.  However, it is simply not the case that it is difficult to
maintain consistent activation records in the presence of asynchronous
exceptions.

speaking for myself,

David Chase
---
[ comp.std.c++ is moderated.  Submission address: std-c++@ncar.ucar.edu.
  Contact address: std-c++-request@ncar.ucar.edu.  The moderation policy
  is summarized in http://dogbert.lbl.gov/~matt/std-c++/policy.html. ]
Technical Details
Message-ID: <4dumo5$bav@wcap.centerline.com>
Path: arc1-ca.pugleaf.net!in1.uu.net!bounce-back
References: <4doh5o$k04@wcap.centerline.com> <4dos4l$ra9@engnews1.Eng.Sun.COM>

Show Full Headers
Complete Article Headers
From: chase@centerline.com (David Chase)
Message-ID: <4dumo5$bav@wcap.centerline.com>
X-Original-Date: 22 Jan 1996 00:45:57 GMT
Path: arc1-ca.pugleaf.net!in1.uu.net!bounce-back
Date: 22 Jan 96 06:01:26 GMT
Approved: fjh@cs.mu.oz.au
Newsgroups: comp.std.c++
Subject: Re: Throwing an exception from within a si
Organization: CenterLine Software
References: <4doh5o$k04@wcap.centerline.com> <4dos4l$ra9@engnews1.Eng.Sun.COM>
X-Auth: PGPMoose V1.1 PGP comp.std.c++
 iQBFAgUBMQMoROEDnX0m9pzZAQFeHQF+JjIXTw6aCPds2dKE7wRnNSzl0LsYsb4Y
 wAtqeE0UKbxKHXMCFMxnHVpzsQyzo38U
 =UjIq