comp.lang.ada
 help / color / mirror / Atom feed
From: Ludovic Brenta <ludovic@ludovic-brenta.org>
Subject: Re: Does GNAT support a thread-free RTS?
Date: Mon, 12 Sep 2011 02:26:23 -0700 (PDT)
Date: 2011-09-12T02:26:23-07:00	[thread overview]
Message-ID: <9a41811f-086a-4447-a3c7-6144f68c16b4@et6g2000vbb.googlegroups.com> (raw)
In-Reply-To: j4jk1g$5vc$1@speranza.aioe.org

anon wrote on comp.lang.ada:
> Reference: GCC.GNU.org and Adacore.com
>
> My point is. Since "Glade" was put out to pasture, there is no package
> that fulfil the requirement for Annex D, that is stated for the "FSU
> threads" RTL. Because, "PolyOrb" does not meet the "completely accurate
> implementation of Annex D." requirement for "FSU threads".
>
> Plus, between 2004 .. 2010 for Linux (binary package) from
> Libre.Adacore.com only contains native, siji, and maRTE libraries
> only. No default FSU or ZCX RTL. If still available you will have
> to download source and compile your own version to get FSU threads.

Presumably, by "siji" you meant "sjlj" which stands for "setjump/
longjump exception handling".  GCC presently comes with two run-time
systems:

- zero-cost exception handling aka ZCX aka "native", which is the
default
  on most architectures.  The phrase "zero-cost" really means "zero
  distributed cost" which means you do not pay a performance penalty
unless
  and until you raise an exception.  Raising an exception is however
costly.

- sjlj aka setjump/longjump, which is the alternative, in which every
frame
  that might possibly raise an exception calls setjmp(3), thus
incurring
  distributed cost, and raising an exception calls longjmp(3), which
is
  cheap compared to the raising of an exception with ZCX.  sjlj is the
only
  supported run-time system on a few, non-mainstream architectures.

Both run-time systems now use native threads and both support Annex D
(real-time systems) insofar as the underlying kernel does.  The old
FSU threads were intended to provide better support for Annex D but
that was rendered unnecessary by the advances in Linux, Solaris and
other kernels.

It is true that, a few years ago, Glade used to require the sjlj run-
time system to implement exception handling across partitions in in
distributed programs (Annex E).  I know because I packaged it for
Debian.  However, PolyORB has not required sjlj since it introduced
support for Annex E in version 2.2.

--
Ludovic Brenta.
The stakeholders enable the educated core business by leveraging the
plannings.



  parent reply	other threads:[~2011-09-12  9:26 UTC|newest]

Thread overview: 26+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-09-10 15:19 Does GNAT support a thread-free RTS? Simon Wright
2011-09-11  8:20 ` J-P. Rosen
2011-09-11  9:22   ` John B. Matthews
2011-09-11  9:49     ` anon
2011-09-11 10:29       ` Pascal Obry
2011-09-12  0:33         ` anon
2011-09-12  7:27           ` Simon Wright
2011-09-12  9:26           ` Ludovic Brenta [this message]
2011-09-12  9:49             ` Ludovic Brenta
2011-09-13  1:22               ` anon
2011-09-12 13:01             ` Robert A Duff
2011-09-11 10:36   ` Simon Wright
2011-09-12  7:19   ` Ludovic Brenta
2011-09-12 23:22     ` Rugxulo
2011-09-13  7:03       ` Ludovic Brenta
2011-09-13  7:55         ` Ludovic Brenta
2011-09-13  8:30 ` Simon Wright
2011-09-13  9:39   ` Georg Bauhaus
2011-09-13 12:18     ` Dmitry A. Kazakov
2011-09-13 14:02       ` Robert A Duff
2011-09-13 16:35         ` Dmitry A. Kazakov
2011-09-13 16:54       ` Georg Bauhaus
2011-09-13 20:35         ` Dmitry A. Kazakov
2011-09-13 21:22           ` Georg Bauhaus
2011-09-14  7:58             ` Dmitry A. Kazakov
2011-09-13 10:57   ` Peter C. Chapin
replies disabled

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox