comp.lang.ada
 help / color / mirror / Atom feed
From: "Dmitry A. Kazakov" <mailbox@dmitry-kazakov.de>
Subject: Re: gnat: Execution_Time is not supported in this configuration
Date: Fri, 4 Dec 2009 12:26:26 +0100
Date: 2009-12-04T12:26:27+01:00	[thread overview]
Message-ID: <1fhe7xz86ka87$.13so8n7lqqhec$.dlg@40tude.net> (raw)
In-Reply-To: 5e5d6fb5-e719-4195-925c-d1286699393d@f16g2000yqm.googlegroups.com

On Fri, 4 Dec 2009 03:09:35 -0800 (PST), singo wrote:

> I have recently become very interested of Ada 2005, and it's real-time
> annex. However, as a new user of Ada I face some problems with the
> software.
> 
> I cannot get the package Ada.Execution_Time to work with gnat,
> although the gnat documentation says that the real-time annex is fully
> supported... I use the gnat version 4.4 on a Ubuntu 9.10 distribution.
> 
> The typical error message I get is
> 
> gcc -c executiontime.adb
> Execution_Time is not supported in this configuration
> compilation abandoned
> 
> How can I configure gnat to support the Ada.Execution_Time package?
> 
> Hopefully somebody can help me!
> 
> Thanks in advance!
> 
> Ingo
> 
> Below follows an example program that generates the error messge.
> 
> with Ada.Text_IO; use Ada.Text_IO;
> with Ada.Real_Time; use Ada.Real_Time;
> with Ada.Execution_Time;
> 
> procedure ExecutionTime is
>    task T;
> 
>    task body T is
>       Start : CPU_Time;
>       Interval : Time_Span := Milliseconds(100);
>    begin
>       Start := Ada.Execution_Time.Clock;
>       loop
>          Put_Line(Duration'Image(Ada.Execution_Time.Clock - Start));
>          delay To_Duration(Interval);
>       end loop;
>    end T;
> begin
>    null;
> end ExecutionTime;

I cannot tell anything about Ubuntu, but the program you provided contains
language errors.

It also has the problem that "delay" is non busy in Ada, i.e. the program
will count 0 CPU time for a very long time, at least under Windows, where
the system services, which I presume, Ada.Execution_Time relies on, are
broken.

Anyway, here is the code which works to me:

with Ada.Text_IO;         use Ada.Text_IO;
with Ada.Real_Time;       use Ada.Real_Time;
with Ada.Execution_Time;  use Ada.Execution_Time;

procedure ExecutionTime is
   task T;
   task body T is
      Start : CPU_Time := Clock;
   begin
      loop
         Put_Line (Duration'Image (To_Duration (Clock - Start)));
         for I in 1..40 loop
            Put ("."); -- This does something!
         end loop;
      end loop;
   end T;
begin
   null;
end ExecutionTime;

Under Windows this shows rather poor performance, which again is not
surprising, because as I said there is no way to implement
Ada.Execution_Time under Windows.

Maybe Linux counts CPU time better, I never investigated this issue.

-- 
Regards,
Dmitry A. Kazakov
http://www.dmitry-kazakov.de



  reply	other threads:[~2009-12-04 11:26 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-12-04 11:09 gnat: Execution_Time is not supported in this configuration singo
2009-12-04 11:26 ` Dmitry A. Kazakov [this message]
2009-12-04 12:10 ` Georg Bauhaus
2009-12-07  8:08   ` singo
2009-12-07 17:13     ` John B. Matthews
2009-12-04 18:28 ` John B. Matthews
2009-12-04 19:01   ` Dmitry A. Kazakov
2009-12-04 21:50     ` John B. Matthews
2009-12-05  2:59     ` Randy Brukardt
replies disabled

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