comp.lang.ada
 help / color / mirror / Atom feed
Search results ordered by [date|relevance]  view[summary|nested|Atom feed]
thread overview below | download mbox.gz: |
* Re: Overloading attributes
  @ 2011-11-30 11:05  5%   ` anon
  0 siblings, 0 replies; 21+ results
From: anon @ 2011-11-30 11:05 UTC (permalink / raw)


As for RM 1.1.3 "Conformity of an Implementation with the Standard"

This is just a small list of errors within the GNAT system.
Lets see GNAT violates a number of paragraphs such as:

    2  Translate and correctly execute legal programs written in Ada,
       provided that they are not so large as to exceed the capacity of
       the implementation;

   15  A conforming implementation of this International Standard shall 
       produce for the execution of a given Ada program a set of 
       interactions with the external environment whose order and timing 
       are consistent with the definitions and requirements of this 
       International Standard for the semantics of the given program.

When the GNAT compiler see a raise statement like 

         raise Program_Error ;

instead of converting the routine into something like is 

         Raise_Exception ( Program_Error'Identity,
                           Integer'Image ( Line_Number ) ) ;
or maybe 

         Raise_Exception ( Program_Error'Identity,
                           "was explicit raise by <filename> at line" 
                           & Integer'Image ( Line_Number ) ) ;

it converts it to 

         RCheck_15 ( "<filename>", Line_number ) ;

that not translate and correctly. and the routines that must be 
executed may interfer with the program timing.


    5  Supply all language-defined library units required by this
       International Standard;

   16  An implementation that conforms to this Standard shall support 
       each capability required by the core language as specified.  In 
       addition, an implementation that conforms to this Standard may 
       conform to one or more Specialized Needs Annexes (or to none).  
       Conformance to a Specialized Needs Annex means that each 
       capability required by the Annex is provided as specified.

A number of packages in GNAT do not function as stated in the Standard 
an example is System.RPC and another is Ada.Asynchronous_Task_Control.

For the "Partition Communication Subsystem", Ada uses System.RPC which 
an older communication but is still in the RM and is still useful.

Also, since GNAT compiler can process a program for multi-environments 
it is required that all language-defined library units be fully 
functional so Ada.Asynchronous_Task_Control should be fully functional 
as well.

    6  Contain no variations except those explicitly permitted by this
       International Standard, or those that are impossible or
       impractical to avoid given the implementation's execution
       environment;

GNAT is always adding extra features that may or may not be in the 
next Standard version that can causes corruptions to occur with current 
Standard. Plus, there are a number of statements designs that are not 
functional like the "representation_clause" within the "Protected Units"


   10  The execution of certain code_statements (see 13.8); which 
       code_statements cause external interactions is implementation 
       defined.


While the System.Machine_Code package may be optional, but the coding of 
"code_statements" are not optional. GNAT does not allow "code_statements" 
of any kind. Actually the GNAT compiler does contains the code for 
processing a "code_statement" but it is deactivated.



Adacore GNAT compiler and RTL is one of two Ada leading Ada systems, the 
other is IBM/APEX system.  Since GNAT can not even meet the complete 
definition that is in "RM 1.1.3" that indicates that one or the other is 
corrupted or and should not be used.


This might expain one reason the Dod drop the mandated use of Ada.


In <f10225e5-d894-4ccb-924a-6cf741781fe4@t16g2000vba.googlegroups.com>, Mark Lorenzen <mark.lorenzen@gmail.com> writes:
>On 29 Nov., 12:58, a...@att.net wrote:
>> Where in the RM does it say that the compiler and RTL is the implementation?
>> As everyone says the Ada RM is the final word! And if it is not defined in
>> the RM then the compiler and RTL are not the implementation, but are the
>> tools for the implementation.
>
>I think that chapter 1.1.3 ("Conformity of an Implementation with the
>Standard") pretty well describes the expectations for an
>implementation. To me it's pretty obvious that the standard is talking
>about the toolchain and the RTL.
>
>Regards,
>
>Mark L




^ permalink raw reply	[relevance 5%]

* Re: Freezing a task
  @ 2011-11-19  7:37  5%     ` anon
  0 siblings, 0 replies; 21+ results
From: anon @ 2011-11-19  7:37 UTC (permalink / raw)


In some programming circles, the "main procedure" is also called the parent. 

And tasks without the "Terminate" statement some times will continue to 
execute, even when the parent aka "main procedure" dies. One reason for 
the disliked "Abort" statement.

Two examples of tasks that do not contain "terminate" statement are 
servers and tasking device drivers. For the task to stop, these tasks 
must be setup to handle a "Stop" type of call to interrupt the process 
or another routine may have to use the "Abort" statement.

Of course, there always the "Ada.Synchronous_Task_Control but that's
a more involved process. And a fully functional version of the package 
Ada.Asynchronous_Task_Control is not supply in the general release 
of GNAT version of Ada.

In my example the one thing I did not include was the single to 
multiple layers of exceptions that could be added.




In <cfdf14ce-1304-4c52-a8ec-3cfbd51669ee@g21g2000yqc.googlegroups.com>, Anh Vo <anhvofrcaus@gmail.com> writes:
>On Nov 17, 11:24=A0pm, a...@att.net wrote:
>> --
>> -- =A0Complete Program
>> --
>>
>> with Text_IO ;
>>
>> procedure u is
>>
>> =A0 use Text_IO ;
>>
>> =A0 task type test is
>> =A0 =A0 =A0 entry Start ; =A0 =A0-- initialize and start task
>> =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0-- and task can die if par=
>ent stops
>>
>> =A0 =A0 =A0 entry Wait ; =A0 =A0 -- Send task to sleep for a while
>> =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0-- and task can die if par=
>ent stops
>>
>> =A0 =A0 =A0 entry Continue ; -- wake up task
>> =A0 =A0 =A0 entry Stop ; =A0 =A0 -- stops and kill task
>> =A0 end test ;
>>
>> =A0 task body test is
>>
>> =A0 =A0 =A0 Count : Integer ;
>> =A0 =A0 begin
>> =A0 =A0 =A0 -- =A0Initialize task
>> =A0 =A0 =A0 Count :=3D 0 =A0;
>> =A0 =A0 =A0 Outer_Loop : loop
>> =A0 =A0 =A0 =A0 select
>> =A0 =A0 =A0 =A0 =A0 -- =A0start task
>> =A0 =A0 =A0 =A0 =A0 accept Start ;
>> =A0 =A0 =A0 =A0 =A0 =A0 Put_Line ( "Start" ) ;
>>
>> =A0 =A0 =A0 =A0 =A0 =A0 Main_Loop : loop
>> =A0 =A0 =A0 =A0 =A0 =A0 =A0 select
>>
>> =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 -- =A0pause task
>> =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 accept Wait ;
>> =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 Put_Line ( "Wait" ) ;
>> =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 New_Line ;
>>
>> =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 select
>>
>> =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 -- =A0sofware wake up task
>> =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 accept Continue ;
>> =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 Put_Line ( "Continue" ) ;
>>
>> =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 -- =A0software exit while in wait mod=
>e
>> =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 or
>> =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 accept Stop ;
>> =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 Put_Line ( "Stop" ) ;
>> =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 exit Outer_Loop ;
>>
>> =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 -- =A0exit if parent fails while in w=
>ait mode
>> =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 or
>> =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 terminate ;
>> =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 end select ;
>>
>> =A0 =A0 =A0 =A0 =A0 =A0 =A0 -- =A0software exit (abort) while in normal
>> =A0 =A0 =A0 =A0 =A0 =A0 =A0 -- =A0execution mode
>> =A0 =A0 =A0 =A0 =A0 =A0 =A0 or
>> =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 accept Stop ;
>> =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 Put_Line ( "Stop" ) ;
>> =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 exit Outer_Loop ;
>>
>> =A0 =A0 =A0 =A0 =A0 =A0 =A0 else
>> =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 -- - - - - - - - - - - --
>> =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 -- =A0Main Tasking Code =A0--
>> =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 -- - - - - - - - - - - --
>> =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 Put ( "Testing" ) ;
>> =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 Put ( Integer'Image ( Count ) ) ;
>> =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 New_Line ;
>> =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 Count :=3D Count + 1 ;
>> =A0 =A0 =A0 =A0 =A0 =A0 =A0 end select ;
>> =A0 =A0 =A0 =A0 =A0 end loop Main_Loop ;
>>
>> =A0 =A0 =A0 =A0 -- =A0exit if parent fails
>> =A0 =A0 =A0 =A0 or
>> =A0 =A0 =A0 =A0 =A0 terminate ;
>> =A0 =A0 =A0 =A0 end select ;
>> =A0 =A0 =A0 end loop Outer_Loop ;
>> =A0 =A0 =A0 Put_Line ( "Task has Terminated" ) ;
>> =A0 =A0 end test ;
>>
>> =A0testing_task =A0 =A0 =A0: test ;
>>
>> begin
>> =A0 Put_Line ( "Start Tasking" ) ;
>> =A0 New_Line ;
>> =A0 --
>> =A0 testing_task.Start ;
>> =A0 delay ( 0.01 ) ;
>> =A0 testing_task.Wait ;
>> =A0 delay ( 1.0 ) ;
>> =A0 testing_task.Continue ;
>> =A0 delay ( 0.01 ) ;
>> =A0 testing_task.Wait ;
>> =A0 --
>> =A0 delay ( 1.0 ) ;
>> =A0 testing_task.Stop ;
>> =A0 delay ( 0.5 ) ;
>> =A0 New_Line ;
>> end u ;
>
>I am not sure what was meant by couple of annotated comments
>mentioning parent fails. Normally, tasks are declared at library
>level. Thus, they will terminate when the main program terminates. In
>this particular example, the task will terminate when the main
>procedure terminates.
>
>Anh Vo




^ permalink raw reply	[relevance 5%]

* Re: Freezing a task
  2011-11-17 17:13  5% ` Adam Beneschan
  2011-11-17 18:01  0%   ` AdaMagica
@ 2011-11-18  1:22  0%   ` Rego, P.
  1 sibling, 0 replies; 21+ results
From: Rego, P. @ 2011-11-18  1:22 UTC (permalink / raw)


> Aside from the other suggestions, you might want to look into
> Ada.Synchronous_Task_Control and Ada.Asynchronous_Task_Control.

I shall go to take a look on it. Thank you.




^ permalink raw reply	[relevance 0%]

* Re: Freezing a task
  2011-11-17 17:13  5% ` Adam Beneschan
@ 2011-11-17 18:01  0%   ` AdaMagica
  2011-11-18  1:22  0%   ` Rego, P.
  1 sibling, 0 replies; 21+ results
From: AdaMagica @ 2011-11-17 18:01 UTC (permalink / raw)


> Aside from the other suggestions, you might want to look into
> Ada.Synchronous_Task_Control and Ada.Asynchronous_Task_Control.

Synch. might do the job, asynch is (for GNAT) only implemented on bare
boards.



^ permalink raw reply	[relevance 0%]

* Re: Freezing a task
  @ 2011-11-17 17:13  5% ` Adam Beneschan
  2011-11-17 18:01  0%   ` AdaMagica
  2011-11-18  1:22  0%   ` Rego, P.
    1 sibling, 2 replies; 21+ results
From: Adam Beneschan @ 2011-11-17 17:13 UTC (permalink / raw)


On Nov 17, 7:33 am, "Rego, P." <pvr...@gmail.com> wrote:
> Is is possible to freeze a task?
>
> I mean, if I have a task
>
> task body My_Task is
> begin
>   accept Start;
>   loop
>     Put ("1");
>     Put ("2");
>     Put ("3");
>     ...
>     Put ("n");
>   end loop;
> end My_Task;
>
> is there a way that I can "freeze" the task in its current state? If, for instance, the execution finished executing Put ("2");, how can I freeze it and later I can turn it to continue? I want to provoque a freeze from outside the task, and also from outside, order it to continue.
>
> I could sure implement, if I had the spec like
>
> type State_Type is
>   (RUN,
>    FROZEN);
>
> task type My_Task (State : State_Type) is
>    entry Start;
> end My_Task;
> --
>
> the body:
>
> task body My_Task is
> begin
>   accept Start;
>   loop
>     Put ("1");
>     Put ("2");
>     Put ("3");
>     ...
>     Put ("n");
>
>     loop
>      if State = RUN then exit; end if;
>     end loop;
>   end loop;
> end My_Task;
>
> but it would not be the case because I had to wait for the nth Put instruction line (i.e., the task would not be actually frozen, because the inside loop would be running).
>
> And T.E.D. from stackoverflow suggested me something that I could infer as
>
> task type My_Task (Start : Start_Type) is
>    entry Start;
>    entry Run;
> end My_Task
> --
> task body My_Task is
> begin
>   accept Start;
>   loop
>     Put ("1");
>     Put ("2");
>     Put ("3");
>     ...
>     Put ("n");
>
>     if State = FROZEN then
>        accept Run;
>        State := RUN;
>     end if;
>   end loop;
> end My_Task;
>
> Is there a more elegant way to do this? Maybe some procedure My_Task.FreezeNow in a unknown (by me) package? Thanks

Aside from the other suggestions, you might want to look into
Ada.Synchronous_Task_Control and Ada.Asynchronous_Task_Control.  I'm
not really clear on what you're trying to accomplish, so it's hard for
me to say whether those are appropriate solutions for you.  I think
that the other methods that have been suggested--an entry call on
another task or on a protected object, or an ACCEPT statement--would
be preferable if they get the job done.

                               -- Adam



^ permalink raw reply	[relevance 5%]

* Re: Ensuring resource cleanup
  @ 2010-02-08 16:18  4%     ` Robert A Duff
  0 siblings, 0 replies; 21+ results
From: Robert A Duff @ 2010-02-08 16:18 UTC (permalink / raw)


Florian Weimer <fw@deneb.enyo.de> writes:

> * Robert A. Duff:
>
>>> (because of the tag and because the finalizer is abort-deferred, ...
>>
>> I think if you use the appropriate pragma Restrictions, so the
>> compiler knows there are no aborts, it will avoid the cost
>> of deferring and undeferring aborts (which is quite high
>> on some systems).
>
> What is the appropriate pragma?  This doesn't seem to have an effect:
>
> pragma Restrictions (No_Asynchronous_Control);

That one says "I promise not to say 'with Ada.Asynchronous_Task_Control'",
which is not related to aborts.  It is considered obsolescent, because
there's now a more general No_Dependence restriction.

To get rid of aborts, I think you need both No_Abort_Statements
and Max_Asynchronous_Select_Nesting => 0.  I believe this will
cause the overhead of abort deferral to go away, but to be sure,
you should try it.

>>>...which
>>> seemed to defeat inlining
>>
>> Inlining of what?  The Initialize and Finalize calls?
>
> Most of the benefit of inlining them, because there are multiple
> subprogram calls involved, including indirect ones.  I doubt GCC
> treats them as intrinsics, so they interfere with register allocation
> etc.  GCC doesn't seem to be able to devirtualize the implicit call to
> Finalize, either.
>
> I don't understand why GNAT needs to maintain a separate finalization
> list, either.  C++ use regular exception handling for this task.

The new implementation of finalization I mentioned avoids those
lists.  Except that lists are needed in the case of heap-allocated
objects, because they need to be finalized when the scope of the
access type is left (unless finalized early by Unchecked_Deallocation).
C++ does not require that, so is easier to implement, at the cost
of possibly missing some finalizations.

But anyway, efficient finalization is most important for stack-allocated
objects.

>> You could wrap this is a procedure:
>>
>>     procedure With_Cleanup (Action : not null access procedure (...));
>>
>> so you only have to write the above pattern once (per type that needs
>> cleanup), and you can call it with any Action procedure you like.
>
> Yes, I need to try that.  Back when the original code was written,
> anonymous access-to-subprogram types were still rather buggy.

And inefficient, because they used trampolines.  GNAT got rid of
trampolines except in some corner cases.  Note that trampolines
will cause your program to crash if DEP is enabled on windows
(or the equivalent feature on Linux).  There's a restriction
for that, too -- search the GNAT docs for "trampoline".

- Bob



^ permalink raw reply	[relevance 4%]

* Re: MinGW Ada compiler licence question targeting commercial applications
  2009-06-18 19:05  3%       ` Hibou57 (Yannick Duchêne)
@ 2009-06-19  7:16  0%         ` Stephen Leake
  0 siblings, 0 replies; 21+ results
From: Stephen Leake @ 2009-06-19  7:16 UTC (permalink / raw)


[-- Attachment #1: Type: text/plain, Size: 3355 bytes --]

"Hibou57 (Yannick Duchêne)" <yannick_duchene@yahoo.fr> writes:

> On 18 juin, 20:32, "Jeffrey R. Carter"
> <spam.jrcarter....@nospam.acm.org> wrote:
>> That answers your main question: you can create proprietary
>> programs using the MinGW compiler. The rest of the paragraph is
>> legal CYA so they can't be sued if you use a (non-MinGW) pure GPL
>> library and try to claim that your program is not GPL.
>
> What CYA ? (I'm not native english, and there are many common english
> acronyms I do not know)

It means "Cover Your Ass", which is an idiom for "make sure you cannot
be sued".

> Well, a very interesing stuff : I've pointed a big difference between
> the GNAT GPS compiler and the MinGW Ada compiler (wich is althought
> sourced from GNAT)
>
> Juste look at the package body for “Ada.Asynchronous_Task_Control” as
> an exemple (the file is name “a-astaco.adb”).

The differece you note is the difference between GPL and GMGPL. GMGPL
allows distributing applications linked with the compiler runtime
without also distributing the source.

Whether the runtime is actually GMGPL is not strictly controlled by
this paragraph in the source code; it is actually controlled by the
license covering the method by which you got the compiler.

You need to talk to a lawyer.

>>-- As a special exception under Section 7 of GPL version 3, you are granted --
>>-- additional permissions described in the GCC Runtime Library Exception,   --
>>-- version 3.1, as published by the Free Software Foundation.
>>--

I haven't seen this before, but it is apparently the GNAT
modification, adapted to GPL 3.

> ( source is http://mirrors.xservers.ro/gentoo-portage/licenses/gcc-runtime-library-exception-3.1
> )
>
> 1. Grant of Additional Permission.
>
>> [...]
>>
>> You have permission to propagate a work of Target Code formed by
>> combining the Runtime Library with Independent Modules, even if such
>> propagation would otherwise violate the terms of GPLv3, provided that
>> all Target Code was generated by Eligible Compilation Processes. You
>> may then convey such a combination under terms of your choice,
>> consistent with the licensing of the Independent Modules.
>>
>> [...]
>
> I suppose “ consistent with the licensing of the Independent Modules.
> ” talks about other modules (i.e. other ones which does not make
> reference this notice).

Right.

> Now, a question about “ Eligible Compilation Processes ” : is a
> compilation processe Eligible if it links to a module which make
> reference to this satement ?

Yes, but you need to talk to a lawyer.

> If it is, both the first copyright notice found with the older version
> of MinGW and the newer one will allow to compile commercial
> application written in Ada.

Please don't use the word "commercial" in this sense; it just confuses
things. I know the GNAT Libre website uses it, but that is a sales
tool, not a license discussion. In license terms, "commercial" is
irrelevant. The only thing that matters is whether you are required to
distribute the source, and what license the distributed binary is
covered by.

That may ultimately determine whether you can make a profit according
to your particular business model, but the license itself is _not_
about making money.

-- 
-- Stephe

[-- Attachment #2: Type: application/pgp-signature, Size: 193 bytes --]

^ permalink raw reply	[relevance 0%]

* Re: MinGW Ada compiler licence question targeting commercial applications
  @ 2009-06-18 19:05  3%       ` Hibou57 (Yannick Duchêne)
  2009-06-19  7:16  0%         ` Stephen Leake
  0 siblings, 1 reply; 21+ results
From: Hibou57 (Yannick Duchêne) @ 2009-06-18 19:05 UTC (permalink / raw)


On 18 juin, 20:25, "Jeffrey R. Carter"
<spam.jrcarter....@nospam.acm.org> wrote:
> In the case of an Ada program, there are 2 consideration:
>
> 1. The Ada run-time. This has 2 parts:
>
>    a. The Ada run-time is linked with your program: If the run-time is pure GPL,
> then every program compiled by the compiler is GPL.
>
>    b. The Ada run-time is a shared library: If you don't distribute the library,
> then your program may not be GPL even if the library is pure GPL. If you do
> distribute the library, then your program is affected if the library is pure GPL.
>
> 2. Instantiating vendor-supplied generics, including generics defined in the
> standard. If these are pure GPL, then any program that instantiates any of them
> is GPL.

Thanks for this detailed description. You are talking like a lawyer :p

I hope some one else will find this thread useful

On 18 juin, 20:32, "Jeffrey R. Carter"
<spam.jrcarter....@nospam.acm.org> wrote:
> That answers your main question: you can create proprietary programs using the
> MinGW compiler. The rest of the paragraph is legal CYA so they can't be sued if
> you use a (non-MinGW) pure GPL library and try to claim that your program is not
> GPL.

What CYA ? (I'm not native english, and there are many common english
acronyms I do not know)


Well, a very interesing stuff : I've pointed a big difference between
the GNAT GPS compiler and the MinGW Ada compiler (wich is althought
sourced from GNAT)

Juste look at the package body for “Ada.Asynchronous_Task_Control” as
an exemple (the file is name “a-astaco.adb”).

The one shipped with GNAT GPS has the following copyright notice :


>--                                                                          --
>--                         GNAT RUN-TIME COMPONENTS                         --
>--                                                                          --
>--        A D A . A S Y N C H R O N O U S _ T A S K _ C O N T R O L         --
>--                                                                          --
>--                                 B o d y                                  --
>--                                                                          --
>--          Copyright (C) 1992-2005, Free Software Foundation, Inc.         --
>--                                                                          --
>-- GNAT is free software;  you can  redistribute it  and/or modify it under --
>-- terms of the  GNU General Public License as published  by the Free Soft- --
>-- ware  Foundation;  either version 2,  or (at your option) any later ver- --
>-- sion.  GNAT is distributed in the hope that it will be useful, but WITH- --
>-- OUT ANY WARRANTY;  without even the  implied warranty of MERCHANTABILITY --
>-- or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License --
>-- for  more details.  You should have  received  a copy of the GNU General --
>-- Public License  distributed with GNAT;  see file COPYING.  If not, write --
>-- to  the  Free Software Foundation,  51  Franklin  Street,  Fifth  Floor, --
>-- Boston, MA 02110-1301, USA.                                              --
>--                                                                          --
>--                                                                          --
>--                                                                          --
>--                                                                          --
>--                                                                          --
>--                                                                          --
>--                                                                          --
>--                                                                          --
>--                                                                          --
>-- GNAT was originally developed  by the GNAT team at  New York University. --
>-- Extensive contributions were provided by Ada Core Technologies Inc.      --

Notice the big blank by the way...

Now, let see the copyright notice for the same file, for the Ada
compiler (provided by GNAT) which comes with MinGW :

>------------------------------------------------------------------------------
>--                                                                          --
>--                         GNAT RUNTIME COMPONENTS                          --
>--                                                                          --
>--        A D A . A S Y N C H R O N O U S _ T A S K _ C O N T R O L         --
>--                                                                          --
>--                                 B o d y                                  --
>--                                                                          --
>--     Copyright (C) 1992,1993,1994,1995 Free Software Foundation, Inc.     --
>--                                                                          --
>-- GNAT is free software;  you can  redistribute it  and/or modify it under --
>-- terms of the  GNU General Public License as published  by the Free Soft- --
>-- ware  Foundation;  either version 2,  or (at your option) any later ver- --
>-- sion.  GNAT is distributed in the hope that it will be useful, but WITH- --
>-- OUT ANY WARRANTY;  without even the  implied warranty of MERCHANTABILITY --
>-- or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License --
>-- for  more details.  You should have  received  a copy of the GNU General --
>-- Public License  distributed with GNAT;  see file COPYING.  If not, write --
>-- to  the Free Software Foundation,  59 Temple Place - Suite 330,  Boston, --
>-- MA 02111-1307, USA.                                                      --
>--                                                                          --
>-- As a special exception,  if other files  instantiate  generics from this --
>-- unit, or you link  this unit with other files  to produce an executable, --
>-- this  unit  does not  by itself cause  the resulting  executable  to  be --
>-- covered  by the  GNU  General  Public  License.  This exception does not --
>-- however invalidate  any other reasons why  the executable file  might be --
>-- covered by the  GNU Public License.                                      --
>--                                                                          --
>-- GNAT was originally developed  by the GNAT team at  New York University. --
>-- Extensive contributions were provided by Ada Core Technologies Inc.      --
>--                                                                          --
>------------------------------------------------------------------------------

The blank is now filled and contains something which as important
conscequences

Finally, it the application statically links to this file and it is
compiled with GNAT GPS, it must be GPL, while if it is compiled with
MinGW, it can be GPL, of course, but it is not required to be.

The presence of this special statements should be checked for each
file required for the application.

A different copyright notice may be found, depending on the version of
MinGW. The actual release candidate has this one for the same file
(once again, the interesting thing is the middle part) :

>------------------------------------------------------------------------------
>--                                                                          --
>--                         GNAT RUN-TIME COMPONENTS                         --
>--                                                                          --
>--        A D A . A S Y N C H R O N O U S _ T A S K _ C O N T R O L         --
>--                                                                          --
>--                                 B o d y                                  --
>--                                                                          --
>--          Copyright (C) 1992-2009, Free Software Foundation, Inc.         --
>--                                                                          --
>-- GNAT is free software;  you can  redistribute it  and/or modify it under --
>-- terms of the  GNU General Public License as published  by the Free Soft- --
>-- ware  Foundation;  either version 3,  or (at your option) any later ver- --
>-- sion.  GNAT is distributed in the hope that it will be useful, but WITH- --
>-- OUT ANY WARRANTY;  without even the  implied warranty of MERCHANTABILITY --
>-- or FITNESS FOR A PARTICULAR PURPOSE.                                     --
>--                                                                          --
>-- As a special exception under Section 7 of GPL version 3, you are granted --
>-- additional permissions described in the GCC Runtime Library Exception,   --
>-- version 3.1, as published by the Free Software Foundation.               --
>--                                                                          --
>-- You should have received a copy of the GNU General Public License and    --
>-- a copy of the GCC Runtime Library Exception along with this program;     --
>-- see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see    --
>-- <http://www.gnu.org/licenses/>.                                          --
>--                                                                          --
>-- GNAT was originally developed  by the GNAT team at  New York University. --
>-- Extensive contributions were provided by Ada Core Technologies Inc.      --
>--                                                                          --
>------------------------------------------------------------------------------

But I do not really know how to interpret this one “ As a special
exception under Section 7 of GPL version 3, you are granted additional
permissions described in the GCC Runtime Library Exception, version
3.1, as published by the Free Software Foundation. ”

So what does this “ GCC Runtime Library Exception, version 3.1 ”
says ?

Here is what it says :

( source is http://mirrors.xservers.ro/gentoo-portage/licenses/gcc-runtime-library-exception-3.1
)

1. Grant of Additional Permission.

> [...]
>
> You have permission to propagate a work of Target Code formed by
> combining the Runtime Library with Independent Modules, even if such
> propagation would otherwise violate the terms of GPLv3, provided that
> all Target Code was generated by Eligible Compilation Processes. You
> may then convey such a combination under terms of your choice,
> consistent with the licensing of the Independent Modules.
>
> [...]

I suppose “ consistent with the licensing of the Independent Modules.
” talks about other modules (i.e. other ones which does not make
reference this notice).

Now, a question about “ Eligible Compilation Processes ” : is a
compilation processe Eligible if it links to a module which make
reference to this satement ?

If it is, both the first copyright notice found with the older version
of MinGW and the newer one will allow to compile commercial
application written in Ada.

But as I'm not sure about the meaning of “ Eligible Compilation
Processes ” ( and perhaps “ “ consistent with the licensing of the
Independent Modules. ” ” ), I will leave it as-is for the time,
waiting for comments on this interpretation (hope I'm not looking so
much clumsy).



^ permalink raw reply	[relevance 3%]

* Re: Proposal: pragma Assumption
  @ 2008-05-28 11:01  5%   ` anon
  0 siblings, 0 replies; 21+ results
From: anon @ 2008-05-28 11:01 UTC (permalink / raw)


Check the comments in GNAT's package "Ada.Asynchronous_Task_Control" 
which includes the "pragma Unimplemented_Unit;" statement.

And as for compiler allowing "--allow-unimplemented-units" this is 
against the Ada RM. It might be possible to compile Ada without the 
body for all routines But you must provide either a link (pragma Import) 
or the body to all routines before binding and linking.

In <13aa4422-c478-478e-8e33-882508d9d1f8@k30g2000hse.googlegroups.com>, =?ISO-8859-1?Q?Santiago_Urue=F1a?= <suruena@gmail.com> writes:
>> So the proposal would be adding to the next Ada revision two new
>> pragmas:
>>
>>   pragma Assumption ([Check =3D>] boolean_expression[,
>>                      [Message =3D>] string_expression]);
>>   pragma Assumption_Policy (policy_identifier);   -- Error, Check
>>
>I've been thinking more about it, and probably the compilers should be
>encouraged to choose a long switch name to reduce the chance of
>forgetting to remove that it in the final binary. For example, instead
>of (say) "-gnatap", choose something like "--allow-unimplemented-
>units".
>
>And maybe the pragma Assumption_Policy is a bad idea for the same
>reasons: this pragma has preference over the compiler switches (at
>least for gnat in the case of pragma Assert_Policy), so it is very
>easy to forget to change the policy from "Check" to "Error"...
>
>--
>Santiago Urue=F1a-Pascual
>Technical University of Madrid (UPM)




^ permalink raw reply	[relevance 5%]

* Re: Task Scheduling
  @ 2007-01-07 14:49  6% ` Ludovic Brenta
  0 siblings, 0 replies; 21+ results
From: Ludovic Brenta @ 2007-01-07 14:49 UTC (permalink / raw)


jpluto writes:
> A questions please:
>
> I am trying to solve a problem, and I am not sure how to code it.
>
> For example, if I have three arbitrary tasks, task1 has a priority
> than task2.
> Therefore, task1 will always preempt task2 and task3.
>
> However, if task2 ran first and locked a shared data resource that is
> shared with ONLY task3 and NOT task1.  Then if task1 arrives, I want
> task1 to yield the processor to task2 until task2 is finished using
> the resource even though task1 has the highest priority.
>
> The problem, task1 has a higher priority and does NOT use this shared
> resource.
> How can I ask this task1 not to run, and to wait whenever this shared
> resource is locked by task2 or task3?
>
> If you cannot think of a solution, then is there a way to use Timing
> Events to stop task1 whenever it is running? If so, could you show me
> the code to do it?
>
> I do not think this would be a great solution since there is an
> overhead of context switching since task1 is run and we have then to
> tell it to stop, but at least if you can help, it is still a solution
> to my problem.
>
> Thank you very much
> Jane

So, task1 does not use the shared resource, but must wait while task2
uses the shared resource, right?  I'm not sure I understand why this
is so.  I suspect a design flaw, but cannot tell for sure.  Could you
please explain why task1 needs to block at all, if it doesn't use the
shared resource?

Anyway, it seems that priority ceiling locking (see ARM D.3) would do
what you want, but only on a uniprocessor machine.

* task1 would have priority 2.
* task2 and task3 would have priority 1.
* The protected object would have priority 3, and use priority ceiling
  locking.

While task2 or task3 holds the protected object, they inherit priority
3 from the protected object, and therefore task1 cannot preempt them.

An alternative, working on both uniprocessors and multiprocessors,
would be for task2 to call Ada.Asynchronous_Task_Control.Hold to stop
task1, and Ada.Asynchronous_Task_Control.Continue to resume it.  But
that reeks of a design flaw, as I said above.

HTH

-- 
Ludovic Brenta.



^ permalink raw reply	[relevance 6%]

* Implementing Ada.Asynchronous_Task_Control in GNAT
@ 2005-05-24 13:28 12% Frank J. Lhota
  0 siblings, 0 replies; 21+ results
From: Frank J. Lhota @ 2005-05-24 13:28 UTC (permalink / raw)


The package Ada.Asynchronous_Task_Control allows one to suspend / resume 
  the execution of a task. The ARM states that an implementation is not 
required to support this package on environments where it would be 
infeasible.

GNAT generally does not support Ada.Asynchronous_Task_Control, but I 
believe that it would be possible to implement this package using the 
Win32 API calls SuspendThread / ResumeThread. These API calls will do 
the brunt of the work, but we still need to do some bookkeeping work in 
order to make sure that held tasks behave as specified in the ARM. If I 
had the code for how this package is implemented on other platforms, I 
could probably modify it to produce a working version of this package 
for MS Windows.

Does anyone know of a GNAT platform that implements asynchronous task 
control? If not, is there a document that explains what modifications 
should be performed on the Ada task control blocks for a call to Hold or 
Continue?



^ permalink raw reply	[relevance 12%]

* Re: GNAT and Ada.Asynchronous_Task_Control
  2004-05-04 15:47  5% ` Martin Krischik
  2004-05-04 17:49 12%   ` Frank J. Lhota
@ 2004-05-04 20:34 13%   ` Frank J. Lhota
  1 sibling, 0 replies; 21+ results
From: Frank J. Lhota @ 2004-05-04 20:34 UTC (permalink / raw)


Looking at both the 3.15p version and the CVS version of GNAT, it appears
that the package System.Task_Primitives.Operations defines the procedures
Suspend_Task and Resume_Task needed to do the OS-specific work of
Ada.Asynchronous_Task_Control. This really has me puzzled, for it seems like
GNAT has 95% of the intrastructure needed for a portable implementation of
Ada.Asynchronous_Task_Control. Why not complete the job and implement the
package?





^ permalink raw reply	[relevance 13%]

* Re: GNAT and Ada.Asynchronous_Task_Control
  2004-05-04 15:47  5% ` Martin Krischik
@ 2004-05-04 17:49 12%   ` Frank J. Lhota
  2004-05-04 20:34 13%   ` Frank J. Lhota
  1 sibling, 0 replies; 21+ results
From: Frank J. Lhota @ 2004-05-04 17:49 UTC (permalink / raw)


Thanks for the info, but I could not find a more detailed version of
Ada.Asynchronous_Task_Control here either.





^ permalink raw reply	[relevance 12%]

* Re: GNAT and Ada.Asynchronous_Task_Control
  2004-05-03 19:12 14% GNAT and Ada.Asynchronous_Task_Control Frank J. Lhota
  2004-05-04  6:19  6% ` Martin Krischik
@ 2004-05-04 15:47  5% ` Martin Krischik
  2004-05-04 17:49 12%   ` Frank J. Lhota
  2004-05-04 20:34 13%   ` Frank J. Lhota
  1 sibling, 2 replies; 21+ results
From: Martin Krischik @ 2004-05-04 15:47 UTC (permalink / raw)


Frank J. Lhota wrote:

> The Windows version of GNAT 3.14p does not implement the optional real
> time package Ada.Asynchronous_Task_Control. The Win32 API has the
> functions SuspendThread / ResumeThread needed to implement this package.
> To actually implement Ada.Asynchronous_Task_Control, we need to remove the
> Unimplemented_Unit pragma from the specification and provide the
> appropriate body.
> 
> The package body for Ada.Asynchronous_Task_Control in the "adainclude"
> directory, however, has empty subprogram bodies. No details are provided
> as to how the higher-level, task-related data is to be manipulated should
> be manipulated by this package. I recall seeing a more detailed version of
> a Ada.Asynchronous_Task_Control body, with comments indicating where the
> OS-specific calls need to go. Is this version of the
> Ada.Asynchronous_Task_Control body still distributed, and if so, where can
> I find it?

If you want to extend GNAT you should download the current development
version of GNAT from:

:ext:anoncvs@savannah.gnu.org:/cvsroot/gcc

That is, of course a cvs address. The actual commands for the download are:

SET CVSROOT=:ext:anoncvs@savannah.gnu.org:/cvsroot/gcc
cvs -qz9 checkout -P gcc 

This GNAT Version is 2 years more modern then the one you have got. However,
I have not been able to compile this version with Windows. Linux is OK.

Still you can have a look at the package in question. Either look at the
Linux version of the package or perhaps the feature has been included in
the current windows version allready.

Have Fun.

With Regards

Martin

-- 
mailto://krischik@users.sourceforge.net
http://www.ada.krischik.com




^ permalink raw reply	[relevance 5%]

* Re: GNAT and Ada.Asynchronous_Task_Control
  2004-05-04  6:19  6% ` Martin Krischik
@ 2004-05-04 13:53  6%   ` Frank J. Lhota
  0 siblings, 0 replies; 21+ results
From: Frank J. Lhota @ 2004-05-04 13:53 UTC (permalink / raw)


"Martin Krischik" <krischik@users.sourceforge.net> wrote in message
news:1900599.4t2HcsAS6G@linux1.krischik.com...
> Frank J. Lhota wrote:
> gnat 3.14p?  The actual public window version is 3.15p! If you have not
made
> a typing mistake you should update first.

Yup, you're right, I meant 3.15p. Sorry for the typo.





^ permalink raw reply	[relevance 6%]

* Re: GNAT and Ada.Asynchronous_Task_Control
  2004-05-03 19:12 14% GNAT and Ada.Asynchronous_Task_Control Frank J. Lhota
@ 2004-05-04  6:19  6% ` Martin Krischik
  2004-05-04 13:53  6%   ` Frank J. Lhota
  2004-05-04 15:47  5% ` Martin Krischik
  1 sibling, 1 reply; 21+ results
From: Martin Krischik @ 2004-05-04  6:19 UTC (permalink / raw)


Frank J. Lhota wrote:

> The Windows version of GNAT 3.14p does not implement the optional real

gnat 3.14p?  The actual public window version is 3.15p! If you have not made
a typing mistake you should update first.

With Regards

Martin

-- 
mailto://krischik@users.sourceforge.net
http://www.ada.krischik.com




^ permalink raw reply	[relevance 6%]

* GNAT and Ada.Asynchronous_Task_Control
@ 2004-05-03 19:12 14% Frank J. Lhota
  2004-05-04  6:19  6% ` Martin Krischik
  2004-05-04 15:47  5% ` Martin Krischik
  0 siblings, 2 replies; 21+ results
From: Frank J. Lhota @ 2004-05-03 19:12 UTC (permalink / raw)


The Windows version of GNAT 3.14p does not implement the optional real time
package Ada.Asynchronous_Task_Control. The Win32 API has the functions
SuspendThread / ResumeThread needed to implement this package. To actually
implement Ada.Asynchronous_Task_Control, we need to remove the
Unimplemented_Unit pragma from the specification and provide the appropriate
body.

The package body for Ada.Asynchronous_Task_Control in the "adainclude"
directory, however, has empty subprogram bodies. No details are provided as
to how the higher-level, task-related data is to be manipulated should be
manipulated by this package. I recall seeing a more detailed version of a
Ada.Asynchronous_Task_Control body, with comments indicating where the
OS-specific calls need to go. Is this version of the
Ada.Asynchronous_Task_Control body still distributed, and if so, where can I
find it?





^ permalink raw reply	[relevance 14%]

* Re: Ada Generic vs. C++ Templates
  2001-04-06  0:37  0%             ` James Rogers
@ 2001-04-06 10:38  0%               ` Colin Paul Gloster
  0 siblings, 0 replies; 21+ results
From: Colin Paul Gloster @ 2001-04-06 10:38 UTC (permalink / raw)


In article <3ACD1045.E9ECB65F@worldnet.att.net>, James Rogers wrote:
"DuckE wrote:
> 
> You have implied that GNAT implements the entire Ada95 standard.
> 
> While all of the "required" elements are supported, some things are not.
> 
> Just try making use of "Ada.Asynchronous_Task_Control" and you'll get a
> message:
>   Asynchonnous_Task_Control is not implemented.

This, of course, does not even approach the problems found with C++
compilers.

I am sure you will correct me if I am wrong in this. I believe the C++
standard contains no optional annexes."

Probably true that it has no optional annexes.

"GNAT does implement all required features of the Ada language, and
nearly every feature of the optional annexes. You cannot write an Ada
program that compiles in GNAT, using only required features of the 
language, and not successfully compile the same program using another
Ada compiler.

On the other hand, you can easily write a C++ program using the
Microsoft C++ compiler that will not compile properly using the
Watcom C++ compiler."

Watcom having gone bust before the Standard came to be. As for those
current Standard-sriving compilers, your point holds. There are people
who care though and do get more than one C++ compiler to successfully
compile the same source.

"The C++ reference manual is larger than the Ada reference manual.
This is only important as an indication of the difficulty of
compiler implementation implied by the size of the document. You
may deny the validity of this measure,"

I agree that it is indicative. Something I do not like is people
referencing "The C++ Programming Language" (or the second edition of 
"The C Programming Language", 1988, Prentice Hall in the case of C89 when
C89 was Standard C) as authoriative when they are not prescriptive -- the
Standard is the authority. Note even that "The C Programming
Language" predates the ex-standard people incorrectly throw it around as
defining and is based on a late draft standard.

It may be worth mentioning that staff writers for "C/C++ User's
Journal" have said things along the lines of such and such seems to be
the case in Standard C++, evidence to support said opinion (note
opinion and evidence, not things they are billing as definitely
correct interpretations of the Standard) being from whatever section (of
the actual Standard thank goodness). The editor said that because of such
common referrals to the C++ Standard in CUJ, the Standard is
excellent. Merely on that measure the opposite is a far more sensible
suspicion.

"but the current lack of compilers implementing the standard speaks
loudly to me. It must be due to the standard itself."

Yes. Note however that on average the greatest deficiencies in
completely implementating it seems to be in finishing off the
libraries. Libraries are not so much a language issue. Still the actual
language implementations have some way to go yet.

"The C++ language standard has too often ignored the concerns of compiler
writers. Features and language definitions have been placed in the
standard to satisfy application developers without proper concern for the
need to implement those features in a compiler."

My reaction to this makes me feel that it is grossly untrue.
Colin Paul
-- 
This signature file is included in protest against the hosting of Nazi
facist propaganda "Mein Kampf" written by Adolf Hitler on the Dublin City
University Networking Society (committee@RedBrick.DCU.Ie, DCU Networking
Society, c/o Clubs and Socs Office, The Hub, DCU, Glasnevin, Dublin 9,
Ireland) website at HTTP://WWW.RedBrick.DCU.Ie/~mellow/Adolf/ by
R. O'Brien whose username is mellow. On 22nd March 2001 Dublin City
University webmaster Niall O'Leary (niall.oleary@DCU.Ie, +353-1-700 5864, 
Room C203, Computer Services Department, Henry Grattan Building, DCU,
Glasnevin, Dublin 9, Ireland) authorised "Mein Kampf" to be on the
Internet via DCU and HEAnet (info@HEAnet.Ie, +353-1-6623412, HEAnet Ltd.,
Ground Floor, Marine House, Clanwilliam Court, Dublin 2, 
Ireland) resources. Please also complain to The President's Office, DCU,
Glasnevin, Dublin 9, Ireland, dcupres@DCU.Ie.



^ permalink raw reply	[relevance 0%]

* Re: Ada Generic vs. C++ Templates
  2001-04-05  3:38  5%           ` DuckE
@ 2001-04-06  0:37  0%             ` James Rogers
  2001-04-06 10:38  0%               ` Colin Paul Gloster
  0 siblings, 1 reply; 21+ results
From: James Rogers @ 2001-04-06  0:37 UTC (permalink / raw)


DuckE wrote:
> 
> You have implied that GNAT implements the entire Ada95 standard.
> 
> While all of the "required" elements are supported, some things are not.
> 
> Just try making use of "Ada.Asynchronous_Task_Control" and you'll get a
> message:
>   Asynchonnous_Task_Control is not implemented.

This, of course, does not even approach the problems found with C++
compilers.

I am sure you will correct me if I am wrong in this. I believe the C++
standard contains no optional annexes. 

GNAT does implement all required features of the Ada language, and
nearly every feature of the optional annexes. You cannot write an Ada
program that compiles in GNAT, using only required features of the 
language, and not successfully compile the same program using another
Ada compiler.

On the other hand, you can easily write a C++ program using the
Microsoft C++ compiler that will not compile properly using the
Watcom C++ compiler. 

The C++ reference manual is larger than the Ada reference manual.
This is only important as an indication of the difficulty of
compiler implementation implied by the size of the document. You
may deny the validity of this measure, but the current lack of
compilers implementing the standard speaks loudly to me. It must be
due to the standard itself. The C++ language standard has too often
ignored the concerns of compiler writers. Features and language
definitions have been placed in the standard to satisfy application
developers without proper concern for the need to implement those
features in a compiler.

Jim Rogers
Colorado Springs, Colorado USA



^ permalink raw reply	[relevance 0%]

* Re: Ada Generic vs. C++ Templates
  @ 2001-04-05  3:38  5%           ` DuckE
  2001-04-06  0:37  0%             ` James Rogers
  0 siblings, 1 reply; 21+ results
From: DuckE @ 2001-04-05  3:38 UTC (permalink / raw)



"James Rogers" <jimmaureenrogers@worldnet.att.net> wrote in message
news:3ACBBE65.D65BB767@worldnet.att.net...
> Francois Godme wrote:
> >
> > Even more, now that the language has been written down as a standard,
what can stop
> > the convergence of the C++ compilers to the standard?
>
> A related question coming to my mind is "What has kept the convergence
> of the C++ compilers to the standard up to this date?"
>
> As I recall, the GNAT compiler was certified as a correct and standard
> implementation of Ada95 within months of the standardization of Ada95.
>
> It has now been nearly four years since the standardization of C++.
> As of now, no compiler has been able to prove it properly implements
> the entire C++ standard.

You have implied that GNAT implements the entire Ada95 standard.

While all of the "required" elements are supported, some things are not.

Just try making use of "Ada.Asynchronous_Task_Control" and you'll get a
message:
  Asynchonnous_Task_Control is not implemented.

I believe GNAT was the first (and may still be the only, I'm not sure) to be
"validated" for Ada95 including all annexes.  This does not mean the
compiler is without bugs, nor does it mean that all features described by
the Ada95 standard are implemented.  It merely means that the validation
test suite was passed.

Don't get me wrong, I think validation is a good thing.  But you must be
careful about what it really means.

BTW: I don't really care whether the compiler I use is validated, but it is
reassuring.

SteveD

>
> This lack of success cannot be simply attributed to compiler vendors'
> yearning for independence. I beleive the cause is the difficulties
> posed by the C++ standard itself.
>
> I am growing more pessimistic that compliant C++ a compiler will ever
> be produced.
>
> Jim Rogers
> Colorado Springs, Colorado USA





^ permalink raw reply	[relevance 5%]

* Re: [Q]Gnat on Linux
  @ 1998-07-08  0:00  5%   ` grave
  0 siblings, 0 replies; 21+ results
From: grave @ 1998-07-08  0:00 UTC (permalink / raw)
  To: Markus Kuhn

Markus Kuhn wrote:


> Nevertheless, you will also have to look at
> <http://www.gnat.com/chat/2781.html> to handle the next problem that
> you will face after the crt1.o problem is fixed, but then everything
> should be ok.


I've tried the thing explain in http://www.gnat.com/chat/2781.html but
when I execute the shell :
#!/bin/tcsh -f
foreach f (../adainclude/*.ad[bs])
  gcc -c -O2 -gnatpga -I- $f
end

I get for all .ad[bs] this message :
a-sfteio.ads:20:12: "Ada" is not a predefined library unit
compilation abandoned
a-sfwtio.ads:20:12: "Ada" is not a predefined library unit
compilation abandoned
a-siocst.adb:42:31: "Ada.Sequential_Io.C_Streams" is not a predefined
library unit
compilation abandoned
a-siocst.ads:43:26: "Ada.Sequential_Io" is not a predefined library unit
compilation abandoned

I've tried it with the command line and I get the same result :
[xavier@pcu4 adalib]$ gcc -c -gnatpga -I- ../adainclude/a-astaco.adb
a-astaco.adb:40:17: "Ada.Asynchronous_Task_Control" is not a predefined
library unit
compilation abandoned

Do you understand this problem ?

I hope the RedHat 5.1 is not so far from the RedHat 5.0

xavier




^ permalink raw reply	[relevance 5%]

Results 1-21 of 21 | reverse | options above
-- pct% links below jump to the message on this page, permalinks otherwise --
1998-07-07  0:00     [Q]Gnat on Linux grave
1998-07-07  0:00     ` Markus Kuhn
1998-07-08  0:00  5%   ` grave
2001-04-02 14:28     Ada Generic vs. C++ Templates Josef Widder
2001-04-02 14:38     ` Ted Dennison
2001-04-02 20:57       ` Francois Godme
2001-04-02 21:26         ` Ted Dennison
2001-04-03 22:09           ` Francois Godme
2001-04-05  0:35             ` James Rogers
2001-04-05  3:38  5%           ` DuckE
2001-04-06  0:37  0%             ` James Rogers
2001-04-06 10:38  0%               ` Colin Paul Gloster
2004-05-03 19:12 14% GNAT and Ada.Asynchronous_Task_Control Frank J. Lhota
2004-05-04  6:19  6% ` Martin Krischik
2004-05-04 13:53  6%   ` Frank J. Lhota
2004-05-04 15:47  5% ` Martin Krischik
2004-05-04 17:49 12%   ` Frank J. Lhota
2004-05-04 20:34 13%   ` Frank J. Lhota
2005-05-24 13:28 12% Implementing Ada.Asynchronous_Task_Control in GNAT Frank J. Lhota
2007-01-07 14:28     Task Scheduling   jpluto
2007-01-07 14:49  6% ` Ludovic Brenta
2008-05-25 18:59     Proposal: pragma Assumption Santiago Urueña
2008-05-28  7:58     ` Santiago Urueña
2008-05-28 11:01  5%   ` anon
2009-06-17 19:37     MinGW Ada compiler licence question targeting commercial applications Hibou57 (Yannick Duchêne)
2009-06-18 11:07     ` Georg Bauhaus
2009-06-18 15:04       ` Hibou57 (Yannick Duchêne)
2009-06-18 18:25         ` Jeffrey R. Carter
2009-06-18 19:05  3%       ` Hibou57 (Yannick Duchêne)
2009-06-19  7:16  0%         ` Stephen Leake
2010-02-08 14:16     Ensuring resource cleanup Florian Weimer
2010-02-08 15:31     ` Robert A Duff
2010-02-08 16:01       ` Florian Weimer
2010-02-08 16:18  4%     ` Robert A Duff
2011-11-17 15:33     Freezing a task Rego, P.
2011-11-17 17:13  5% ` Adam Beneschan
2011-11-17 18:01  0%   ` AdaMagica
2011-11-18  1:22  0%   ` Rego, P.
2011-11-18  7:24     ` anon
2011-11-18 22:25       ` Anh Vo
2011-11-19  7:37  5%     ` anon
2011-11-26 23:13     Overloading attributes Matt Borchers
2011-11-29 12:50     ` Mark Lorenzen
2011-11-30 11:05  5%   ` anon

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