comp.lang.ada
 help / color / mirror / Atom feed
From: Simon Wright <simon@pushface.org>
Subject: Re: Use of entries using Ravenscar
Date: 22 Dec 2001 12:25:30 +0000
Date: 2001-12-22T12:25:32+00:00	[thread overview]
Message-ID: <x7vlmfv7879.fsf@smaug.pushface.org> (raw)
In-Reply-To: usna67xaf.fsf@gsfc.nasa.gov

Stephen Leake <stephen.a.leake.1@gsfc.nasa.gov> writes:

> In any case, this is complaining about the internals of the GNAT
> runtime system; note the package name "System.Tasking". It could be
> you have some object and/or .ali files hanging around from either
> "the old compiler" or "compiling without Pragma (Ravenscar)". Try
> deleting _everything_, and recompiling from scratch.

The example gives the same error messages under 3.14a1.

Ravenscar is (implemented as) a set of restrictions, and it turns out
that the problem shows up only if you have all three of

  pragma Restrictions (No_Abort_Statements);
  pragma Restrictions (No_Entry_Queue);
  pragma Restrictions (Max_Asynchronous_Select_Nesting => 0);

The listing produced with -gnatDG is

  with ada;
  with ada;
  with ada.ada__real_time;
  with ada.ada__text_io;
  with signal_handler_test;
  use ada.ada__real_time, ada.ada__text_io, signal_handler_test;
  with ada.ada__real_time.ada__real_time__delays;
  with system;
  with system.system__tasking;
  with system.system__tasking.system__tasking__protected_objects.
    system__tasking__protected_objects__single_entry;

  procedure test_entry is
     period : constant duration := 500000000.0E-8;
     next_time : ada__real_time__time;
     L_1 : label
  begin
     L_1 : loop
	next_time := ada__real_time__Oadd (ada__real_time__clock, 
	  ada__real_time__to_time_span (period));
	ada__real_time__delays__delay_until (next_time);
	B1b : declare
	begin

	     system__tasking__protected_objects__single_entry__protected_single_entry_call 
	     (signal_handler_test__protected_signal_handler_testTV!(
	     signal_handler_test__protected_signal_handler_test)._object'
	     unchecked_access, system__null_address, 
	     system__tasking__simple_call);
	end B1b;
     end loop L_1;
  end test_entry;

which is a lot simpler than what's generated without Ravenscar.

This really does look like a candidate for support from those who know
what they're talking about!



  parent reply	other threads:[~2001-12-22 12:25 UTC|newest]

Thread overview: 21+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2001-12-18 16:28 Use of entries using Ravenscar Jimmy Dubén
2001-12-20  7:54 ` Jimmy Dubén
2001-12-20  8:46   ` martin.m.dowie
2001-12-20 13:52     ` Jimmy Dubén
2001-12-20 14:59   ` Stephen Leake
2001-12-20 15:14     ` martin.m.dowie
2001-12-20 20:34       ` Jimmy Dub�n
2001-12-21 22:47         ` martin.m.dowie
2001-12-22  1:52           ` Jimmy Dub�n
2001-12-22 15:27             ` martin.m.dowie
2001-12-22 22:56               ` Jimmy Dub�n
2001-12-23 11:02                 ` martin.m.dowie
2001-12-22 12:25     ` Simon Wright [this message]
2001-12-23 18:48       ` Jimmy Dub�n
2001-12-26 18:02         ` Simon Wright
2001-12-23 20:01       ` Stephen Leake
2001-12-24  8:52         ` Jimmy Dub�n
2001-12-26 18:20           ` Simon Wright
2001-12-27 10:57             ` Jimmy Dub�n
2001-12-28 18:36               ` Simon Wright
2001-12-27 11:11             ` Florian Weimer
replies disabled

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