From: geert@fozzie.sun3.iaf.nl (Geert Bosch)
Subject: Re: Java vs Ada 95 (Was Re: Once again, Ada absent from DoD SBIR solicitation)
Date: 1996/11/18
Date: 1996-11-18T00:00:00+00:00 [thread overview]
Message-ID: <56okri$96q@fozzie.sun3.iaf.nl> (raw)
In-Reply-To: dewar.848239512@merv
Robert Dewar (dewar@merv.cs.nyu.edu) wrote:
Robert replies to my earlier remark:
You cannot assume anything about the bodies of standard units that is
not specified in the reference manual. The question here focuses on
whether RM A.3 applies to implicit calls to finalize, and what exactly
"perform as specified" means for these implicit calls, given that no
specification for finalize is given.
I think it is a real reach to say that an Ada implementation is allowed
to provide an Unbounded_Strings package body which execution can be
erroneous in tasking programs.
I think it is a real reach to say that RM A.3 forbids the reference count
approach, but it is certainaly discussable.
Of course the RM doesn't forbid refcounting! It just has to be implemented
properly, ie task-safe. It is possible to write a safe and correct
reference counted implementation of bounded strings that satisfies
these criterea. Of course you need a low-overhead locking primitive
as I said, or even better, you would just use an Ada compiler with a
fast implementation of simple protected types (using test-and-set or a
similair primitive instead of OS calls).
Note that Geert's claim about test and set is wrong, or at least wrong if
you claim to implemnt Annex D. Simple minded use of test and set can
lead to priority inversions of a type forbidden by Annex D,
Simple minded use of any locking scheme can lead to problems, but
that is not an excuse to use no locking at all for a reference-counting
Bounded_String implementation.
A possible scheme for safe reference counting using test-and-set
as locking mechanism is given below, but it is not tested or whatsoever.
type Safe_Fast_Lock is array (System.Priority'Range) of Boolean;
pragma Pack (Safe_Fast_Lock);
pragma Volatile_Components (Safe_Fast_Lock);
Locking_Error : exception;
procedure Get
(The_Lock : in out Safe_Fast_Lock;
The_Priority : in Priority) is
begin
while Test_And_Set (The_Lock (The_Priority)) loop
delay 0.0;
end loop;
for P in reverse Priority.First .. The_Priority - 1 loop
if Test_And_Set (The_Lock (P)) then
-- Task with lower priority already has the lock and may
-- be starved. A more advanced scheme might be used here.
for Q in P + 1 .. The_Priority loop
The_Lock (P) := False;
end loop;
raise Locking_Error;
end if;
end loop;
end Get;
procedure Release
(The_Lock : in out Safe_Fast_Lock;
The_Priority : in Priority) is
begin
for P in Priority'First .. The_Priority loop
The_Lock (P) := False;
end loop;
end Release;
type Referenced_Data is record
Lock : Safe_Fast_Lock := (others => False);
Count : Natural := 0;
Data : ...;
end record;
procedure Add_Reference (Reference : in out Referenced_Data) is
My_Priority : Get_Priority;
begin
Get (Reference.Lock, My_Priority);
Reference.Count := Reference.Count + 1;
Release (Reference.Lock (My_Priority));
end Add_Reference;
procedure Remove_Reference (Reference : in out Referenced_Data) is
My_Priority : Get_Priority;
No_References : Boolean;
begin
Get (Reference.Lock, My_Priority);
Reference.Count := Reference.Count - 1;
No_References := (Reference.Count = 0);
Release (Reference.Lock, My_Priority);
if No_References then
... -- Deallocate the data
end if;
end Remove_Reference;
--
E-Mail: geert@sun3.iaf.nl
next prev parent reply other threads:[~1996-11-18 0:00 UTC|newest]
Thread overview: 250+ messages / expand[flat|nested] mbox.gz Atom feed top
1996-10-08 0:00 Once again, Ada absent from DoD SBIR solicitation Gregory Aharonian
1996-10-08 0:00 ` Gandalf
1996-10-09 0:00 ` Bill Nielsen
1996-10-09 0:00 ` Stanley R. Allen
1996-10-09 0:00 ` C++ Standardization (was: Once again, Ada absent from DoD SBIR solicitation) David Shochat
1996-10-10 0:00 ` Robert Dewar
1996-10-10 0:00 ` David Shochat
1996-10-20 0:00 ` Richard Riehle
1996-10-20 0:00 ` nasser
1996-10-21 0:00 ` Shayne Flint
1996-10-21 0:00 ` Robert A Duff
1996-10-21 0:00 ` Robert Dewar
1996-10-22 0:00 ` Ken Garlington
1996-10-22 0:00 ` Shayne Flint
1996-10-22 0:00 ` Robert A Duff
1996-10-22 0:00 ` Rush Kester
1996-10-11 0:00 ` Ed Falis
1996-10-11 0:00 ` Robert Dewar
1996-10-12 0:00 ` Kevin D. Heatwole
1996-10-12 0:00 ` Robert Dewar
1996-10-13 0:00 ` Larry Kilgallen
1996-10-13 0:00 ` Ed Falis
1996-10-11 0:00 ` Dave Wood
1996-10-11 0:00 ` Dave Wood
1996-10-17 0:00 ` Garbage Collection in Ada Thomas Kendelbacher
1996-10-10 0:00 ` Once again, Ada absent from DoD SBIR solicitation Mike Stark
1996-10-10 0:00 ` Stanley R. Allen
1996-10-11 0:00 ` Mitch Gart
1996-10-11 0:00 ` Robert Dewar
1996-10-14 0:00 ` Mitch Gart
1996-10-14 0:00 ` Ken Garlington
1996-10-11 0:00 ` Ken Garlington
1996-10-14 0:00 ` Norman H. Cohen
1996-10-14 0:00 ` Bevin R. Brett
1996-10-10 0:00 ` Mitch Gart
1996-10-10 0:00 ` Java vs Ada 95 (Was Re: Once again, Ada absent from DoD SBIR solicitation) Brian Rogoff
1996-10-10 0:00 ` Dave
1996-10-11 0:00 ` Robert Dewar
1996-10-12 0:00 ` davedave
1996-10-12 0:00 ` Robert Dewar
1996-10-13 0:00 ` Larry Kilgallen
1996-10-11 0:00 ` Tucker Taft
1996-10-14 0:00 ` Brian Rogoff
1996-10-15 0:00 ` Mitch Gart
1996-10-15 0:00 ` Larry Kilgallen
1996-10-15 0:00 ` Mark A Biggar
1996-10-16 0:00 ` Brian Rogoff
1996-10-28 0:00 ` Kenneth Almquist
1996-10-29 0:00 ` Invoking parental methods (was: Java vs Ada 95) Larry Kilgallen
1996-10-31 0:00 ` Kenneth Almquist
1996-10-31 0:00 ` Larry Kilgallen
1996-11-05 0:00 ` Mitch Gart
1996-11-05 0:00 ` Tucker Taft
1996-11-05 0:00 ` Larry Kilgallen
1996-11-06 0:00 ` Robert A Duff
1996-11-06 0:00 ` Larry Kilgallen
1996-11-06 0:00 ` Robert I. Eachus
1996-11-07 0:00 ` David Wheeler
1996-11-06 0:00 ` Mitch Gart
1996-11-08 0:00 ` Jon S Anthony
1996-11-08 0:00 ` Robert I. Eachus
1996-11-05 0:00 ` Larry Kilgallen
1996-11-09 0:00 ` Joel VanLaven
1996-10-15 0:00 ` Java vs Ada 95 (Was Re: Once again, Ada absent from DoD SBIR solicitation) Robert A Duff
1996-10-15 0:00 ` Portability of Arithmetic (was: Java vs Ada 95) Larry Kilgallen
1996-10-16 0:00 ` Robert A Duff
1996-10-16 0:00 ` Robert Dewar
1996-10-17 0:00 ` Robert A Duff
1996-10-17 0:00 ` Larry Kilgallen
1996-10-18 0:00 ` Robert A Duff
1996-10-17 0:00 ` Robert Dewar
1996-10-18 0:00 ` Larry Kilgallen
1996-10-18 0:00 ` Robert A Duff
1996-10-18 0:00 ` Norman H. Cohen
1996-10-18 0:00 ` Robert Dewar
1996-10-18 0:00 ` Brian R. Hanson
1996-10-19 0:00 ` Robert Dewar
1996-10-19 0:00 ` Larry Kilgallen
1996-10-22 0:00 ` Once again, Ada absent from DoD SBIR solicitation Dale Stanbrough
1996-10-27 0:00 ` Robert Dewar
1996-10-21 0:00 ` Portability of Arithmetic (was: Java vs Ada 95) Norman H. Cohen
1996-10-21 0:00 ` Robert Dewar
1996-10-21 0:00 ` Lance Kibblewhite
1996-10-21 0:00 ` Norman H. Cohen
1996-10-21 0:00 ` Robert Dewar
1996-10-22 0:00 ` Larry Kilgallen
1996-10-23 0:00 ` Robert Dewar
1996-10-23 0:00 ` Larry Kilgallen
1996-10-23 0:00 ` Norman H. Cohen
1996-10-17 0:00 ` Stephen Leake
1996-10-17 0:00 ` Robert A Duff
1996-10-17 0:00 ` Larry Kilgallen
1996-10-18 0:00 ` Robert A Duff
1996-10-17 0:00 ` Robert Dewar
1996-10-15 0:00 ` Java vs Ada 95 (Was Re: Once again, Ada absent from DoD SBIR solicitation) Robert Dewar
1996-10-17 0:00 ` Alan Brain
1996-10-17 0:00 ` Robert Dewar
1996-10-17 0:00 ` Robert A Duff
1996-10-18 0:00 ` Keith Thompson
1996-10-20 0:00 ` Alan Brain
1996-10-24 0:00 ` Robert I. Eachus
1996-10-15 0:00 ` Mike Stark
1996-10-15 0:00 ` Robert Dewar
1996-10-16 0:00 ` Mike Stark
1996-10-17 0:00 ` Robert A Duff
1996-10-17 0:00 ` Why no Propagates? Matthew Heaney
1996-10-18 0:00 ` Robert A Duff
1996-10-18 0:00 ` Robert Dewar
1996-10-18 0:00 ` Norman H. Cohen
1996-10-18 0:00 ` Robert Dewar
1996-10-16 0:00 ` Java vs Ada 95 (Was Re: Once again, Ada absent from DoD SBIR solicitation) Brian Rogoff
1996-10-16 0:00 ` Robert Dewar
1996-10-17 0:00 ` Robert A Duff
1996-10-17 0:00 ` Robert Dewar
1996-11-22 0:00 ` Van Snyder
1996-11-25 0:00 ` Java vs Ada vs Inferno, floating point arithmetic Anssi Porttikivi
1996-10-16 0:00 ` Java vs Ada 95 (Was Re: Once again, Ada absent from DoD SBIR solicitation) Brian Rogoff
1996-10-16 0:00 ` Jon S Anthony
1996-10-11 0:00 ` Stephen Leake
1996-10-11 0:00 ` Dave
1996-10-11 0:00 ` Robert Dewar
1996-10-12 0:00 ` Dave
1996-10-12 0:00 ` Robert Dewar
1996-10-14 0:00 ` Keith Thompson
1996-10-18 0:00 ` Why no Propagates? Michel Gauthier
1996-10-22 0:00 ` Richard A. O'Keefe
1996-10-23 0:00 ` Michel Gauthier
1996-10-11 0:00 ` Java vs Ada 95 (Was Re: Once again, Ada absent from DoD SBIR solicitation) Mitch Gart
1996-10-11 0:00 ` Jon S Anthony
1996-10-11 0:00 ` Jon S Anthony
1996-10-12 0:00 ` Robert Dewar
1996-10-14 0:00 ` Mitch Gart
1996-10-14 0:00 ` Brian R. Hanson
1996-10-14 0:00 ` Keith Thompson
1996-10-15 0:00 ` Dale Stanbrough
1996-10-15 0:00 ` Brian R. Hanson
1996-10-20 0:00 ` nasser
1996-10-12 0:00 ` davedave
1996-10-12 0:00 ` Robert Dewar
1996-10-16 0:00 ` Jon S Anthony
1996-10-16 0:00 ` Jon S Anthony
1996-10-14 0:00 ` Brian Rogoff
1996-10-14 0:00 ` Jon S Anthony
1996-10-14 0:00 ` Jon S Anthony
1996-10-14 0:00 ` Jon S Anthony
1996-10-14 0:00 ` Jon S Anthony
1996-10-14 0:00 ` Robert Dewar
1996-10-15 0:00 ` Robert A Duff
1996-10-15 0:00 ` Larry Kilgallen
1996-10-16 0:00 ` Lars Farm
1996-10-16 0:00 ` Robert Dewar
1996-10-17 0:00 ` Why no Free? Matthew Heaney
1996-10-18 0:00 ` John Herro
1996-10-19 0:00 ` John Herro
1996-10-18 0:00 ` Robert A Duff
1996-10-18 0:00 ` Robert Dewar
1996-10-15 0:00 ` Java vs Ada 95 (Was Re: Once again, Ada absent from DoD SBIR solicitation) Robert I. Eachus
1996-10-15 0:00 ` Robert Dewar
1996-10-15 0:00 ` Robert I. Eachus
1996-10-15 0:00 ` Brian Rogoff
1996-10-16 0:00 ` Jon S Anthony
1996-10-16 0:00 ` Jon S Anthony
1996-10-16 0:00 ` Jon S Anthony
1996-10-16 0:00 ` Samuel T. Harris
1996-10-16 0:00 ` Jon S Anthony
1996-10-18 0:00 ` Keith Thompson
1996-10-16 0:00 ` Jon S Anthony
1996-10-17 0:00 ` Robert Dewar
1996-10-17 0:00 ` Robert Dewar
1996-10-18 0:00 ` Jon S Anthony
1996-10-18 0:00 ` Jon S Anthony
1996-10-18 0:00 ` Jon S Anthony
1996-10-29 0:00 ` Kenneth Almquist
1996-10-29 0:00 ` Robert Dewar
1996-10-31 0:00 ` Kenneth Almquist
1996-10-29 0:00 ` Jon S Anthony
1996-10-29 0:00 ` Robert I. Eachus
1996-10-30 0:00 ` Stephen Leake
1996-10-31 0:00 ` Lars Farm
1996-10-31 0:00 ` Kenneth Almquist
1996-10-31 0:00 ` Jon S Anthony
1996-11-01 0:00 ` Robert I. Eachus
1996-11-01 0:00 ` Robert A Duff
[not found] ` <55gkch$gg6@fozzie.sun3.iaf.nl>
1996-11-03 0:00 ` Robert A Duff
1996-11-03 0:00 ` Robert Dewar
1996-11-04 0:00 ` Larry Kilgallen
1996-11-04 0:00 ` Robert Dewar
1996-11-05 0:00 ` Fast locking (Was Re: Java vs Ada 95) Geert Bosch
1996-11-06 0:00 ` Larry Kilgallen
1996-11-06 0:00 ` Geert Bosch
1996-11-07 0:00 ` Larry Kilgallen
1996-11-07 0:00 ` Robert Dewar
1996-11-11 0:00 ` Norman H. Cohen
1996-11-08 0:00 ` Geert Bosch
1996-11-06 0:00 ` Robert Dewar
1996-11-02 0:00 ` Java vs Ada 95 (Was Re: Once again, Ada absent from DoD SBIR solicitation) Robert Dewar
1996-11-04 0:00 ` Robert I. Eachus
1996-11-05 0:00 ` Larry Kilgallen
1996-11-14 0:00 ` Robert Dewar
1996-11-16 0:00 ` Geert Bosch
1996-11-17 0:00 ` Robert Dewar
1996-11-17 0:00 ` Robert A Duff
1996-11-18 0:00 ` Robert Dewar
1996-11-19 0:00 ` Robert A Duff
1996-11-18 0:00 ` Norman H. Cohen
1996-11-18 0:00 ` Geert Bosch [this message]
1996-11-22 0:00 ` Robert Dewar
1996-11-16 0:00 ` Robert A Duff
1996-11-16 0:00 ` Robert Dewar
1996-11-17 0:00 ` Unbounded strings (Was: Java vs Ada 95 (Was Re: Once again, Ada absent from DoD SBIR solicitation)) Robert A Duff
1996-11-18 0:00 ` Robert Dewar
1996-11-19 0:00 ` Robert A Duff
1996-11-23 0:00 ` Robert Dewar
1996-11-24 0:00 ` Robert A Duff
1996-11-25 0:00 ` Norman H. Cohen
1996-11-27 0:00 ` Robert Dewar
1996-11-19 0:00 ` Joel VanLaven
1996-11-23 0:00 ` Robert Dewar
1996-11-21 0:00 ` Robert I. Eachus
1996-11-24 0:00 ` Robert Dewar
1996-11-24 0:00 ` Fergus Henderson
1996-11-24 0:00 ` Robert Dewar
1996-11-25 0:00 ` Kevin D. Heatwole
1996-11-25 0:00 ` Robert A Duff
1996-11-26 0:00 ` Kevin D. Heatwole
1996-11-26 0:00 ` Robert A Duff
1996-11-26 0:00 ` Larry Kilgallen
1996-11-27 0:00 ` Robert Dewar
1996-11-27 0:00 ` Norman H. Cohen
1996-11-29 0:00 ` Robert A Duff
1996-11-29 0:00 ` Fergus Henderson
1996-11-26 0:00 ` Geert Bosch
1996-11-26 0:00 ` Robert Dewar
1996-11-25 0:00 ` Robert I. Eachus
1996-11-20 0:00 ` Jon S Anthony
1996-11-24 0:00 ` Robert Dewar
1996-11-06 0:00 ` Java vs Ada 95 (Was Re: Once again, Ada absent from DoD SBIR solicitation) Robert I. Eachus
1996-10-11 0:00 ` Ada and the DoD HLA (was: " John Cosby
1996-10-13 0:00 ` Java vs Ada 95 (Was " Hannes Haug
1996-11-03 0:00 ` Hannes Haug
1996-11-06 0:00 ` Fast locking (Was Re: Java vs Ada 95) Hannes Haug
1996-11-06 0:00 ` Hannes Haug
1996-10-11 0:00 ` Once again, Ada absent from DoD SBIR solicitation Matthew M. Lih
1996-10-18 0:00 ` Rush Kester
1996-10-21 0:00 ` C++ Standardization (was: Once again, Ada absent from DoD SBIR solicitation) David Emery
1996-10-10 0:00 ` Jon S Anthony
1996-10-11 0:00 ` Jon S Anthony
1996-10-22 0:00 ` Tarjei Jensen
1996-10-22 0:00 ` C++ Standardization (was: Once again, Ian Ward
1996-11-01 0:00 ` Java vs Ada 95 (Was Re: Once again, Ada absent from DoD SBIR solicitation) Jon S Anthony
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox