From: anon@anon.org (anon)
Subject: Re: How to exit an Ada program with (unix shell) error code?
Date: Thu, 14 May 2009 02:55:43 GMT
Date: 2009-05-14T02:55:43+00:00 [thread overview]
Message-ID: <PKLOl.226644$4m1.46779@bgtnsc05-news.ops.worldnet.att.net> (raw)
In-Reply-To: d73c38a7-8d9b-447f-a462-2aac8630c45f@v23g2000pro.googlegroups.com
Well, lets see. I did answer the original poster, Adam. It just that
Martin suggest that functions are not portable and that where you
came in.
Now, all OS's (AT&T OS port, Linux, and Windows) shell or application
loaders, calls a program using the following format:
Exit_Status := Application.all ( Augment_Count,
Argument_List,
Environment_List ) ;
This is defined from the "implementation's execution environment" which
RM 1.1.3 (6) states that if it is "impossible or impractical" then Ada
variations are permitted. Which states that all Ada partitions that are
executed under this type of OS which calls a program as a function shall
return a value aka Exit_Status.
The exception is where the program exits abnormally, such as an
"unhanded exception" or using the two exit routines
"System.OS_LIB.OS_Exit" and "System.OS_LIB.OS_Abort".
Also RM 1.1.3 (12), strengths these calling conversion and the normal
function type of return value.
Then you have RM 10.2 (21) which states that Ada must conform to the
"implementation's execution environment". By return an exit status
unless it terminates abnormally since it was called as a function.
10.2 (21) A call to the main subprogram, if the partition has one. If
the main subprogram has parameters, they are passed; where
the actuals come from is implementation defined. What
happens to the result of a main function is also
implementation defined.
1.1.3 (12) Any result returned or exception propagated from a main
subprogram (see 10.2) or an exported subprogram (see
Annex B) to an external caller;
1.1.3 (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;
Note: Hope you had a fun holiday!!!
Also for Martin.
Can a user-created procedure (main subprogram) be concerned as a "public
parameterless library procedures. No! The reason is that the procedure
is not public, it first must be bound by the binding process.
10.2 (29) An implementation may restrict the kinds of subprograms it
supports as main subprograms. However, an implementation is
required to support all main subprograms that are public
parameterless library procedures.
In <d73c38a7-8d9b-447f-a462-2aac8630c45f@v23g2000pro.googlegroups.com>, Adam Beneschan <adam@irvine.com> writes:
>On May 8, 3:17 am, a...@anon.org (anon) wrote:
>
>[Note: I was out of town for a long weekend, for Mother's Day, and saw
>this post just today.]
>
>> Now, in the case of, Ada.Command_Line, RM A.15 (21) states:
>>
>> 21 An alternative declaration is allowed for package Command_Line if
>> different functionality is appropriate for the external execution
>> environment.
>
>OK, I wasn't aware of this. But it doesn't help your case any. In
>the post to which I was responding, you said:
>
>"And since there are times where the Ada.Command_Line package is
>not available, there has to be a way to send a 'exit status' to the OS
>in those case."
>
>If the OS is such that it expects programs to return an exit status,
>then certainly an alternative (or omitted) declaration of
>Ada.Command_Line that did not support Set_Exit_Status would not be
>"appropriate for the external execution environment". (It would only
>be appropriate in cases where there is no real OS, or if there's a
>bare-bones OS that does not care about exit statuses.) I think the
>point you're trying to make is that the language should *require*
>support for parameterless functions as main programs, but you still
>haven't demonstrated your point; ignoring cases where the vendor just
>plain screws up by providing an inappropriate version of Command_Line,
>you have not shown that there is ever a need to support main programs
>of this form.
>
> -- Adam
next prev parent reply other threads:[~2009-05-14 2:55 UTC|newest]
Thread overview: 45+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-05-04 9:08 How to exit an Ada program with (unix shell) error code? reinkor
2009-05-04 9:17 ` Samuel Tardieu
2009-05-04 9:26 ` reinkor
2009-05-04 9:31 ` Ludovic Brenta
2009-05-04 9:47 ` reinkor
2009-05-04 9:54 ` Martin
2009-05-04 11:38 ` sjw
2009-05-04 10:07 ` stefan-lucks
2009-05-04 13:42 ` Robert A Duff
2009-05-04 16:19 ` Martin
2009-05-07 9:48 ` anon
2009-05-04 16:09 ` anon
2009-05-05 10:49 ` Rob Norris
2009-05-05 11:15 ` Georg Bauhaus
2009-05-05 11:43 ` Martin
2009-05-05 14:57 ` Adam Beneschan
2009-05-05 15:34 ` Jean-Pierre Rosen
2009-05-06 15:28 ` Adam Beneschan
2009-05-06 22:10 ` Randy Brukardt
2009-05-07 9:08 ` anon
2009-05-07 10:01 ` Georg Bauhaus
2009-05-07 11:22 ` anon
2009-05-07 12:08 ` Martin
2009-05-07 13:34 ` Georg Bauhaus
2009-05-07 16:26 ` Adam Beneschan
2009-05-08 10:17 ` anon
2009-05-12 22:55 ` Adam Beneschan
2009-05-14 2:55 ` anon [this message]
2009-05-14 8:04 ` Martin
2009-05-14 8:39 ` Martin
2009-05-14 8:45 ` Martin
2009-05-14 9:34 ` Ludovic Brenta
2009-05-14 10:05 ` Martin
2009-05-14 12:38 ` Georg Bauhaus
2009-05-14 15:34 ` Adam Beneschan
2009-05-15 10:20 ` anon
2009-05-15 11:19 ` Martin
2009-05-05 20:48 ` anon
2009-05-05 21:01 ` Adam Beneschan
2009-05-06 11:30 ` Hibou57 (Yannick Duchêne)
2009-05-05 20:31 ` anon
2009-05-05 21:27 ` Martin
2009-05-06 8:41 ` anon
2009-05-06 9:14 ` Martin
2009-05-06 11:41 ` Georg Bauhaus
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox