Hi all

I've recently started working with Ada and the Ravenscar profile, a subset of the Ada concurrency model. While trying to create a simple interrupt handling program, for handling SIGINT, in a unix platform using the latest version of gnat, I've come across a problem for which I ask your help:

Ravenscar profile restricts the attachment of signals to procedures to the pragma Attach_Handler(<handler>, <interrupt_id>). But when run gnatmake I get the compilation error:
missing argument for parameter "New_Handlers" in call to "Install_Handlers" declared at s-interr.ads:272

Checking out this file I see that procedure Install_Handlers is declared this way, in s-interr.adb:

procedure Install_Handlers
(Object : access Static_Interrupt_Protection;
New_Handlers : in New_Handler_Array)
is
begin
for N in New_Handlers'Range loop

-- We need a lock around this ???

Object.Previous_Handlers (N).Interrupt := New_Handlers (N).Interrupt;
Object.Previous_Handlers (N).Static := User_Handler
(New_Handlers (N).Interrupt).Static;

-- We call Exchange_Handler and not directly Interrupt_Manager.
-- Exchange_Handler so we get the Is_Reserved check.

Exchange_Handler
(Old_Handler => Object.Previous_Handlers (N).Handler,
New_Handler => New_Handlers (N).Handler,
Interrupt => New_Handlers (N).Interrupt,
Static => True);
end loop;
end Install_Handlers;


The only way (until now) I can make compilation work is if remove pragma ravenscar from the code (of all packages), which is not what I intend....
Is it that the ravenscar profile somehow restricts the use of data structures in the call to Install_Handlers?

If someone could please enlighten me about this issue I would much appreciate it, thanks