From: Anh Vo <anhvofrcaus@gmail.com>
Subject: Re: 4 beginner's questions on the PL Ada
Date: Mon, 12 Aug 2013 10:39:31 -0700 (PDT)
Date: 2013-08-12T10:39:31-07:00 [thread overview]
Message-ID: <8c8d6ec3-aabb-4bf0-80bf-354f63e574eb@googlegroups.com> (raw)
In-Reply-To: <87mwoqbao2.fsf@VLAN-3434.student.uu.se>
On Friday, August 9, 2013 6:24:13 PM UTC-7, Emanuel Berg wrote:
> Anh Vo <anhvofrcaus@gmail.com> writes:
>
> You guys should do a field trip to gnu.emacs.help - there, we just
> post code all days! It is much better. Code speaks louder than
> words. It is very difficult to follow all this discussion on
> memory allocation etc., but the few times you posted code there
> wasn't a letter I didn't understand immediately.
>
> And isn't that the same way with you? If you were to explain the C
> for loop to another programmer, would you not just write
>
> for (i = 0; i < STOP; i++) { printf("Pretty clear, huh?\n"); }
>
> But I don't doubt your Ada knowledge, or you helpful attitude.
Hmmmm... These have nothing to do with how a task name implemented with respect to portability.
>> You can give/assign a name to a task the way you like by using
>> predefined package Ada.Task_Attributes. In this case you most
>> likely instantiate it with String subtype. Therefore, it is will
>> be completely portable.
>
> And (drumroll...) how would that look?
Here is how a task name is consistently implemented across different compilers. By the way, this is a complete running program.
with Ada.Exceptions;
with Ada.Text_Io;
with Ada.Task_Attributes;
with Ada.Task_Identification;
with GNAT.Traceback.Symbolic;
use Ada;
procedure Task_Name_Test is
use Text_Io;
type Name is access String;
Default_Name : constant Name := new String'("Generic task name");
Package Task_Manager is new Task_Attributes (Name, Default_Name);
task Gentleman is
entry Hello;
entry Goodbye;
end Gentleman;
task body Gentleman is
begin
accept Hello;
Put_Line ("My name is " &
Task_Manager.Value (Task_Identification.Current_Task).all &
". It's my pleasure to meeting you");
accept Goodbye;
Put_Line ("Hopefully, we will meet again in the future.");
end Gentleman;
Gentleman_Name : Name := new String'("Gentleman");
begin
Put_Line ("Task_Name_Test starts");
Task_Manager.Set_Value (Val => Gentleman_Name, T => Gentleman'Identity);
Gentleman.Hello;
Gentleman.Goodbye;
Put_Line ("Task_Name_Test starts");
exception
when Err : others =>
Put_Line (Exceptions.Exception_Name(Err) & " was raised");
Put_Line (GNAT.Traceback.Symbolic.Symbolic_Traceback(Err));
end Task_Name_Test;
Once again, it is about task name. If it is not, it should not belong here.
Anh Vo.
next prev parent reply other threads:[~2013-08-12 17:39 UTC|newest]
Thread overview: 70+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-08-09 16:50 4 beginner's questions on the PL Ada Emanuel Berg
2013-08-09 17:09 ` Adam Beneschan
2013-08-09 17:16 ` Emanuel Berg
2013-08-09 17:46 ` Alan Jump
2013-08-09 18:10 ` Emanuel Berg
2013-08-09 19:01 ` Randy Brukardt
2013-08-09 21:38 ` Emanuel Berg
2013-08-09 22:00 ` Jeffrey Carter
2013-08-09 22:16 ` Emanuel Berg
2013-08-10 0:39 ` Anh Vo
2013-08-10 1:24 ` Emanuel Berg
2013-08-10 6:16 ` Simon Wright
2013-08-10 12:13 ` Emanuel Berg
2013-08-10 17:12 ` Mike H
2013-08-10 17:53 ` Emanuel Berg
2013-08-10 19:50 ` Dennis Lee Bieber
2013-08-10 22:23 ` Emanuel Berg
2013-08-11 7:12 ` Georg Bauhaus
2013-08-11 12:44 ` Emanuel Berg
2013-08-11 21:12 ` Bill Findlay
2013-08-11 21:22 ` Emanuel Berg
2013-08-12 17:39 ` Anh Vo [this message]
2013-08-12 18:15 ` Anh Vo
2013-08-12 19:57 ` Simon Wright
2013-08-12 20:13 ` Anh Vo
2013-08-10 0:52 ` Jeffrey Carter
2013-08-12 19:47 ` Randy Brukardt
2013-08-09 22:08 ` Robert A Duff
2013-08-09 22:23 ` Emanuel Berg
2013-08-09 22:36 ` Robert A Duff
2013-08-09 22:42 ` Emanuel Berg
2013-08-09 23:48 ` Robert A Duff
2013-08-09 23:50 ` Emanuel Berg
2013-08-09 23:56 ` Emanuel Berg
2013-08-10 0:44 ` Jeffrey Carter
2013-08-10 0:51 ` Robert A Duff
2013-08-09 22:47 ` Alan Jump
2013-08-09 23:33 ` Adam Beneschan
2013-08-09 23:43 ` Alan Jump
2013-08-10 0:19 ` Robert A Duff
2013-08-10 0:52 ` Jeffrey Carter
2013-08-10 0:48 ` Robert A Duff
2013-08-09 23:40 ` Robert A Duff
2013-08-09 23:25 ` Dennis Lee Bieber
2013-08-09 18:29 ` Jeffrey Carter
2013-08-09 18:51 ` Adam Beneschan
2013-08-09 19:05 ` Jeffrey Carter
2013-08-09 18:35 ` Simon Wright
2013-08-09 23:21 ` Dennis Lee Bieber
2013-08-09 23:48 ` Emanuel Berg
2013-08-10 2:45 ` Dennis Lee Bieber
2013-08-10 3:33 ` Emanuel Berg
2013-08-10 14:57 ` Shark8
2013-08-10 17:43 ` Emanuel Berg
2013-08-10 17:55 ` Emanuel Berg
2013-08-10 23:15 ` Simon Clubley
2013-08-11 12:16 ` Emanuel Berg
2013-08-12 18:07 ` Adam Beneschan
2013-08-11 0:34 ` Shark8
2013-08-11 12:42 ` Emanuel Berg
2013-08-11 13:24 ` Peter C. Chapin
2013-08-11 13:37 ` Emanuel Berg
2013-08-11 15:15 ` Mike H
2013-08-12 17:56 ` Adam Beneschan
2013-08-10 6:03 ` Jeffrey Carter
2013-08-12 17:17 ` Eryndlia Mavourneen
2013-08-12 17:27 ` Jeffrey Carter
2013-08-10 12:31 ` Emanuel Berg
2013-08-10 12:37 ` Emanuel Berg
2013-08-10 12:52 ` Emanuel Berg
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox