comp.lang.ada
 help / color / mirror / Atom feed
* Re: No call for Ada
  2004-04-04 10:00                   ` Florian Weimer
@ 2004-04-05 18:07                     ` Marc A. Criley
  2004-04-05 21:16                       ` Georg Bauhaus
                                         ` (2 more replies)
  0 siblings, 3 replies; 124+ messages in thread
From: Marc A. Criley @ 2004-04-05 18:07 UTC (permalink / raw)



"Florian Weimer" <fw@deneb.enyo.de> wrote in message
news:87zn9sjc5r.fsf@deneb.enyo.de...
> Ludovic Brenta <ludovic.brenta@insalien.org> writes:
>
> > Is this not a strength rather than a weakness?  Garbage collectors
> > encourage sloppy programming.
>
> So does Ada's type safety.

Pardon??

There are only a couple ways I can think of wherevone could conceivably
argue that type safety encouraged sloppy programming:

One way is if the programmer is just going to churn out code and then
compile it again and again and again ad nauseum while the compiler
identifies all the type conflicts after the fact. And the fixing of which
basically means going back and declaring types and variables intelligently,
which would've been much less exasperating to do at the start.

Or, due to the presence of Ada's type safety, the programmer wants to
_avoid_ it, and so declares all numeric variables to be of the standard
types integer and float.

It's in dynamically typed languages where I've seen sloppy programming as
regards variable typing.

Marc A. Criley





^ permalink raw reply	[flat|nested] 124+ messages in thread

* Re: No call for Ada
  2004-04-05 18:07                     ` No call for Ada Marc A. Criley
@ 2004-04-05 21:16                       ` Georg Bauhaus
  2004-04-06 11:00                         ` Marin David Condic
  2004-04-05 22:09                       ` Ludovic Brenta
  2004-04-05 22:20                       ` chris
  2 siblings, 1 reply; 124+ messages in thread
From: Georg Bauhaus @ 2004-04-05 21:16 UTC (permalink / raw)


Marc A. Criley <mcNOSPAM@mckae.com> wrote:
: 
: "Florian Weimer" <fw@deneb.enyo.de> wrote in message
: news:87zn9sjc5r.fsf@deneb.enyo.de...
:> Ludovic Brenta <ludovic.brenta@insalien.org> writes:
:>
:> > Is this not a strength rather than a weakness?  Garbage collectors
:> > encourage sloppy programming.
:>
:> So does Ada's type safety.
: 
: Pardon??

Maybe along these lines:
If everything is an int you have do spend lots of time making sure
you use the correct ranges in all sorts of places, and write code
which does this correctly.
Likewise you don't just rely on type systems to find the correct
subprogram, but think hard about it, use different names explicitly?....



^ permalink raw reply	[flat|nested] 124+ messages in thread

* Re: No call for Ada
  2004-04-05 18:07                     ` No call for Ada Marc A. Criley
  2004-04-05 21:16                       ` Georg Bauhaus
@ 2004-04-05 22:09                       ` Ludovic Brenta
  2004-04-05 22:20                       ` chris
  2 siblings, 0 replies; 124+ messages in thread
From: Ludovic Brenta @ 2004-04-05 22:09 UTC (permalink / raw)


"Marc A. Criley" writes:
> "Florian Weimer" wrote in message
> > Ludovic Brenta writes:
> >
> > > Is this not a strength rather than a weakness?  Garbage collectors
> > > encourage sloppy programming.
> >
> > So does Ada's type safety.
> 
> Pardon??
> 
> There are only a couple ways I can think of wherevone could conceivably
> argue that type safety encouraged sloppy programming:
> 
> One way is if the programmer is just going to churn out code and then
> compile it again and again and again ad nauseum while the compiler
> identifies all the type conflicts after the fact. And the fixing of which
> basically means going back and declaring types and variables intelligently,
> which would've been much less exasperating to do at the start.

Yes, but you still end up with a properly written, maintainable, Ada
program :) So, the extra effort was really the programmer's fault, and
the programmer was wise enough to recognise it as such and let the
compiler teach him.  A good apprentice of a Zen Master.  Next time,
this apprentice will avoid the unnecessary effort and produce a
(relatively) good program on the first attempt.

> Or, due to the presence of Ada's type safety, the programmer wants to
> _avoid_ it, and so declares all numeric variables to be of the standard
> types integer and float.

And then you end up with a C program that happens to be in Ada; the
programmer tries to rebel against the Master and produces bugs.

> It's in dynamically typed languages where I've seen sloppy programming as
> regards variable typing.

Yes.

-- 
Ludovic Brenta.



^ permalink raw reply	[flat|nested] 124+ messages in thread

* Re: No call for Ada
  2004-04-05 18:07                     ` No call for Ada Marc A. Criley
  2004-04-05 21:16                       ` Georg Bauhaus
  2004-04-05 22:09                       ` Ludovic Brenta
@ 2004-04-05 22:20                       ` chris
  2004-04-06 13:25                         ` Marc A. Criley
  2 siblings, 1 reply; 124+ messages in thread
From: chris @ 2004-04-05 22:20 UTC (permalink / raw)


Marc A. Criley wrote:
> "Florian Weimer" <fw@deneb.enyo.de> wrote in message
>
>>So does Ada's type safety.
>  
> Pardon??

It could be an attempt at wit?

> It's in dynamically typed languages where I've seen sloppy programming as
> regards variable typing.

That's because of sloppy programmers.  If they ain't smart enough to 
program in a language they shouldn't do it.



^ permalink raw reply	[flat|nested] 124+ messages in thread

* Re: No call for Ada
  2004-04-05 21:16                       ` Georg Bauhaus
@ 2004-04-06 11:00                         ` Marin David Condic
  0 siblings, 0 replies; 124+ messages in thread
From: Marin David Condic @ 2004-04-06 11:00 UTC (permalink / raw)


Measurements I've made of error rates tend to indicate that when 
everything is an int and the programmer has to make his own range checks 
and scalings and so forth, that error rates are *significantly* higher. 
People get lazy or make mistakes. Compilers apply predefined rules over 
and over and over and..... One is more likely than the other to get it 
wrong. Guess which? :-)

Or are we talking about that "Any *Competent* Programmer..." again? :-)

MDC

Georg Bauhaus wrote:
> 
> Maybe along these lines:
> If everything is an int you have do spend lots of time making sure
> you use the correct ranges in all sorts of places, and write code
> which does this correctly.
> Likewise you don't just rely on type systems to find the correct
> subprogram, but think hard about it, use different names explicitly?....


-- 
======================================================================
Marin David Condic
I work for: http://www.belcan.com/
My project is: http://www.jsf.mil/NSFrames.htm

Send Replies To: m   o   d   c @ a   m   o   g
                    c   n   i       c   .   r

     "Face it ladies, its not the dress that makes you look fat.
     Its the FAT that makes you look fat."

         --  Al Bundy

======================================================================




^ permalink raw reply	[flat|nested] 124+ messages in thread

* Re: No call for Ada
  2004-04-05 22:20                       ` chris
@ 2004-04-06 13:25                         ` Marc A. Criley
  2004-04-07  1:17                           ` Marius Amado Alves
  0 siblings, 1 reply; 124+ messages in thread
From: Marc A. Criley @ 2004-04-06 13:25 UTC (permalink / raw)



"chris" <spamoff.danx@ntlworld.com> wrote in message
news:FWkcc.21$zE6.0@newsfe3-win.server.ntli.net...
> Marc A. Criley wrote:
> > "Florian Weimer" <fw@deneb.enyo.de> wrote in message
> >
> >>So does Ada's type safety.
> >
> > Pardon??
>
> It could be an attempt at wit?
>
> > It's in dynamically typed languages where I've seen sloppy programming
as
> > regards variable typing.
>
> That's because of sloppy programmers.  If they ain't smart enough to
> program in a language they shouldn't do it.

<troll>
Are you therefore calling for the certification and licensing of
programmers?
</troll>

 :-)  :-)





^ permalink raw reply	[flat|nested] 124+ messages in thread

* No call for Ada
       [not found] <20040406215514.474514C410D@lovelace.ada-france.org>
@ 2004-04-06 23:42 ` Andrew Carroll
  2004-04-07  1:13   ` Ed Falis
                     ` (2 more replies)
  0 siblings, 3 replies; 124+ messages in thread
From: Andrew Carroll @ 2004-04-06 23:42 UTC (permalink / raw)
  To: comp.lang.ada

Boy, my original post, "No call for Ada", has blown up and spread out like a
wildfire.
I think it was originally "No call for Ada?".

I'm no expert with Ada but I've been trying things out.  I wrote several
small programs in Ada.  Nothing to really see the benefit of the "package"
and maintenance features of Ada yet.  One thing I have noticed, after having
worked with Ada a little bit and going to other "systems" is that Ada IS
spread out.  You go get GTK for this, and RAPID for that, and GNAT, and
MGNAT, and AdaGIDE, and on and on.  I was so tired of downloading stuff and
"making" it that I just went to Visual Basic, even though I had only a
tutorial on VB from a friend and some old software.

It isn't that "Ada" was bad, or unproductive, it was all the work to get the
tools.  Using VB has to be the easiest development I have done.  All I
wanted was to make a little tool to organize my CRC Cards so I could look at
them and edit them without having to scroll through a Word doc or buy some
expensive UML product.  It took me all of 10 hours.  Almost the same amount
of time I spent downloading and "making" all the Ada tools.

I haven't given up on Ada and I still seek to us Ada because it fits the way
I want to work.  It's just amazing to me that there is no one entity to
organize all these parts.  Microsoft is the entity for Microsoft, Sun is for
Java, Borland is one for C++.  With Ada it is all scattered about and
there's no apparent group effort.  Whatever it is, it's not a centralized
effort.  At least I don't see a centralized effort.

Would anyone be interested in that?

Good software is definitely NOT doomed.  In fact, quite the contrary.
Here's a read for you:
http://www.ad-mkt-review.com/public_html/air/ai200401.html


Andrew Carroll
Carroll-Tech
andrew@carroll-tech.net






^ permalink raw reply	[flat|nested] 124+ messages in thread

* Re: No call for Ada
  2004-04-06 23:42 ` Andrew Carroll
@ 2004-04-07  1:13   ` Ed Falis
  2004-04-07  7:06   ` Martin Krischik
  2004-04-07 13:46   ` Georg Bauhaus
  2 siblings, 0 replies; 124+ messages in thread
From: Ed Falis @ 2004-04-07  1:13 UTC (permalink / raw)


On Tue, 6 Apr 2004 17:42:07 -0600, Andrew Carroll 
<andrew@carroll-tech.net> wrote:

>
> Would anyone be interested in that?

While I realize that it is not necessarily portable to windows, it looks 
like what Ludovic is doing packaging Ada tools on Debian is a step in the 
right direction.  http://libre.act-europe.fr/ is also not at all bad as a 
collocation of necessary and interesting parts.

- Ed



^ permalink raw reply	[flat|nested] 124+ messages in thread

* Re: No call for Ada
  2004-04-06 13:25                         ` Marc A. Criley
@ 2004-04-07  1:17                           ` Marius Amado Alves
  0 siblings, 0 replies; 124+ messages in thread
From: Marius Amado Alves @ 2004-04-07  1:17 UTC (permalink / raw)
  To: comp.lang.ada

> <troll>
> Are you therefore calling for the certification and licensing of
> programmers?
> </troll>

<aside>
As of a couple of years informatics engineers can belong to the "ordem"
(gild?) of engineers in Portugal. For certain non-informatics activities
(e.g. civil construction), membership in this structure is required (e.g.
for civil and electrotechnic engineers). For informatics, AFAIN, there is no
regulation yet. I'd like to know about other countries.
</aside>






^ permalink raw reply	[flat|nested] 124+ messages in thread

* Re: No call for Ada
  2004-04-06 23:42 ` Andrew Carroll
  2004-04-07  1:13   ` Ed Falis
@ 2004-04-07  7:06   ` Martin Krischik
  2004-04-08 12:39     ` Ludovic Brenta
  2004-04-07 13:46   ` Georg Bauhaus
  2 siblings, 1 reply; 124+ messages in thread
From: Martin Krischik @ 2004-04-07  7:06 UTC (permalink / raw)


Andrew Carroll wrote:

> I haven't given up on Ada and I still seek to us Ada because it fits the
> way
> I want to work.  It's just amazing to me that there is no one entity to
> organize all these parts.  Microsoft is the entity for Microsoft, Sun is
> for
> Java, Borland is one for C++.  With Ada it is all scattered about and
> there's no apparent group effort.  Whatever it is, it's not a centralized
> effort.  At least I don't see a centralized effort.

There had been some attempts:

http://sourceforge.net/projects/ascl/

However even with 4 programers the project stalled.
 
> Would anyone be interested in that?

Well I would give up AdaCL and merge it into a unified library.

With Regards

Martin

PS: One can "take over" stalled SourceForge Projects.

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




^ permalink raw reply	[flat|nested] 124+ messages in thread

* Re: No call for Ada
  2004-04-06 23:42 ` Andrew Carroll
  2004-04-07  1:13   ` Ed Falis
  2004-04-07  7:06   ` Martin Krischik
@ 2004-04-07 13:46   ` Georg Bauhaus
  2 siblings, 0 replies; 124+ messages in thread
From: Georg Bauhaus @ 2004-04-07 13:46 UTC (permalink / raw)


Andrew Carroll <andrew@carroll-tech.net> wrote:
: 
: 
:   It's just amazing to me that there is no one entity to
: organize all these parts.  Microsoft is the entity for Microsoft, Sun is for
: Java, Borland is one for C++.

It is not that different the moment you want to do something
that doesn't happen to be in the vendors' packages. And usually
the number of suppliers can be > 1?



^ permalink raw reply	[flat|nested] 124+ messages in thread

* No call for Ada
       [not found] <20040407175513.BABA64C410A@lovelace.ada-france.org>
@ 2004-04-07 21:20 ` Andrew Carroll
  2004-04-08  6:39   ` Pascal Obry
  2004-04-08  9:36   ` Martin Krischik
       [not found] ` <001b01c41ce6$206bad80$0201a8c0@win>
  1 sibling, 2 replies; 124+ messages in thread
From: Andrew Carroll @ 2004-04-07 21:20 UTC (permalink / raw)
  To: comp.lang.ada

> ------------------------------
> From: Martin Krischik <krischik@users.sourceforge.net>
> Subject: Re: No call for Ada (was Re: Announcing new
> [snip]
> XML/Ada has complete Unicode support. I am using it for AdaCL.CGI. The
> problem is, as somebody allready pointed out, that you have to collect
half
> a dozend Libs before Ada becomes usefull. What needed is a Unified Ada
> Library which does not need to provide anything new - only put the
> different parts together for a "one click download".
>
> With Regards
>
> Martin

Yes, "one CLICK download".  I don't know that it would be one QUICK
download because I've downloaded about 100MB so far.  Which is about
a 3 day download for me.

Point is, most everyone here has a binding or library or "something" they
want to get out.  An investment so to speak in Ada.  What would happen
if RAPID and AdaGIDE were merged into one?  I would choose GLADE
but I don't think it can spit out MSIL.

How would JGNAT fit in?  Well, can't say for sure yet but I'm sure it could
fit in there somewhere.  Maybe that's the way to go for "Web Services"?
Doesn't Java have SOAP?
(A little soap in your java?  ewe, yuck.  Talk about a platform that
"runs"!)

Right now I have GTK, TCL/TK, RAPID, GLADE, AdaGIDE, MGNAT,
JGNAT, msil2ada, GNAT and JGRASP installed on my computer.  Don't
ask me why.  I am just evaluating all this stuff.  Well, except for GNAT.  I
had A# but it seems to have disappeared...hmmmmm.  Ohh, don't forget
GVD.

Now if we could combine RAPID, GLADE, AdaGIDE (or JGRASP),
MGNAT, GNAT, JGNAT, GVD, AUnit and msil2ada into one tool then
you would pretty much have it all covered as far as "human interaction"
and building/debugging.  You could combine a bunch of bindings like
AWS, GTK, TCL/TK, X11Ada, CORBA, POSIX, AdaCL and
could pull-in/reuse code from the Ada Software Repositories then
you would have a MONSTER.  Whoa ho ho!!!

Who would use it?  Other than me, I don't have a clue.  Who could
understand it?  Well, hopefully everyone who used it.

Monumental task?
Marketable?

What of conversion modules to help companies get into this tool?
Anyone want to write C#2A#?  How about VB.Net2Ada.Net?
Isn't that a market?

Then, the kicker, bust out a blazing fast version of AdaOS.
How many people are on this mailing list?  How many developers?
And that's not enough?

Comments?  Am I insane?


Andrew Carroll
Carroll-Tech
720-273-6814
andrew@carroll-tech.net





^ permalink raw reply	[flat|nested] 124+ messages in thread

* Re: No call for Ada
  2004-04-03 13:06           ` No call for Ada (was Re: Announcing new scripting/prototyping language) Marin David Condic
  2004-04-03 14:12             ` James Rogers
@ 2004-04-08  1:58             ` Berend de Boer
  1 sibling, 0 replies; 124+ messages in thread
From: Berend de Boer @ 2004-04-08  1:58 UTC (permalink / raw)


>>>>> "Marin" == Marin David Condic <nobody@noplace.com> writes:

    Marin> Then there is the issue of a GUI. Java comes with a GUI as
    Marin> an integral part. Ada does not. There are a few
    Marin> GUI-building kits for Ada, but not a standard one. So Java
    Marin> gets to come to the table saying "Here's your language and
    Marin> here's your GUI and all the Java developers know how to use
    Marin> both and they both work together in a variety of places..."

Yep, there's just on GUI for Java, everyone likes it and it has been a
phenomenal success on the desktop.

-- 
Regards,

Berend. (-:



^ permalink raw reply	[flat|nested] 124+ messages in thread

* Re: No call for Ada
  2004-04-07 21:20 ` No call for Ada Andrew Carroll
@ 2004-04-08  6:39   ` Pascal Obry
  2004-04-08  9:36   ` Martin Krischik
  1 sibling, 0 replies; 124+ messages in thread
From: Pascal Obry @ 2004-04-08  6:39 UTC (permalink / raw)



"Andrew Carroll" <andrew@carroll-tech.net> writes:
> and building/debugging.  You could combine a bunch of bindings like
> AWS, GTK, TCL/TK, X11Ada, CORBA, POSIX, AdaCL and

No, AWS is not a binding. It is a full framework to develop Web
applications. It binds to nothing! It brings a very different way to build
Web applications and all this in Ada.

Just wanted to correct this :)

Pascal.

-- 

--|------------------------------------------------------
--| Pascal Obry                           Team-Ada Member
--| 45, rue Gabriel Peri - 78114 Magny Les Hameaux FRANCE
--|------------------------------------------------------
--|              http://www.obry.org
--| "The best way to travel is by means of imagination"
--|
--| gpg --keyserver wwwkeys.pgp.net --recv-key C1082595



^ permalink raw reply	[flat|nested] 124+ messages in thread

* Re: No call for Ada
       [not found] ` <001b01c41ce6$206bad80$0201a8c0@win>
@ 2004-04-08  7:07   ` Marius Amado Alves
  0 siblings, 0 replies; 124+ messages in thread
From: Marius Amado Alves @ 2004-04-08  7:07 UTC (permalink / raw)
  To: comp.lang.ada

> Yes, "one CLICK download".  I don't know that it would be one QUICK
> download because I've downloaded about 100MB so far.  Which is about
> a 3 day download for me.

A CD can be delivered in *one* day to virtually anyone. Never underestimate
the bandwith of the postal service :-)




^ permalink raw reply	[flat|nested] 124+ messages in thread

* Re: No call for Ada
  2004-04-07 21:20 ` No call for Ada Andrew Carroll
  2004-04-08  6:39   ` Pascal Obry
@ 2004-04-08  9:36   ` Martin Krischik
  2004-04-08 17:17     ` Unified Ada library (was: No call for Ada) Björn Persson
  1 sibling, 1 reply; 124+ messages in thread
From: Martin Krischik @ 2004-04-08  9:36 UTC (permalink / raw)


Andrew Carroll wrote:

>> ------------------------------
>> From: Martin Krischik <krischik@users.sourceforge.net>
>> Subject: Re: No call for Ada (was Re: Announcing new
>> [snip]
>> XML/Ada has complete Unicode support. I am using it for AdaCL.CGI. The
>> problem is, as somebody allready pointed out, that you have to collect
> half
>> a dozend Libs before Ada becomes usefull. What needed is a Unified Ada
>> Library which does not need to provide anything new - only put the
>> different parts together for a "one click download".
>>
>> With Regards
>>
>> Martin

> Now if we could combine RAPID, GLADE, AdaGIDE (or JGRASP),
> MGNAT, GNAT, JGNAT, GVD, AUnit and msil2ada into one tool then
> you would pretty much have it all covered as far as "human interaction"
> and building/debugging.  You could combine a bunch of bindings like
> AWS, GTK, TCL/TK, X11Ada, CORBA, POSIX, AdaCL and
> could pull-in/reuse code from the Ada Software Repositories then
> you would have a MONSTER.  Whoa ho ho!!!
> 
> Who would use it?  Other than me, I don't have a clue.  Who could
> understand it?  Well, hopefully everyone who used it.
 
> Monumental task?
> Marketable?

Yes. It has been done for other languages - critics may look at
"http://www.perl.org/" or "http://www.python.org/". 

Yes they have more programmers now - but they both started as a "one man
show".

> Then, the kicker, bust out a blazing fast version of AdaOS.
> How many people are on this mailing list?  How many developers?
> And that's not enough?

I am shure there are enogh here. However, how many are prepared to give up
there privat project and merge it into a unified ada lib.

Mind you, they don't have to. When I did gnat-asis I dicovered the power of
"cvs import". Combining several projects into one with "cvs import" doen't
take that much work.

With Regards

Martin.

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




^ permalink raw reply	[flat|nested] 124+ messages in thread

* No call for Ada
       [not found] <20040408081031.D01934C4136@lovelace.ada-france.org>
@ 2004-04-08  9:44 ` Andrew Carroll
  0 siblings, 0 replies; 124+ messages in thread
From: Andrew Carroll @ 2004-04-08  9:44 UTC (permalink / raw)
  To: comp.lang.ada

> ------------------------------
> From: Pascal Obry <p.obry@wanadoo.fr>
> Subject: Re: No call for Ada
[snip]
> No, AWS is not a binding. It is a full framework to develop Web
> applications. It binds to nothing! It brings a very different way to build
> Web applications and all this in Ada.
>
> Just wanted to correct this :)
>
> Pascal.

I apologize Pascal, AWS is NOT a binding.  Sorry.
All I was trying to convey is that it, and other work, could be used to
provide functionality and re-use to the program I was talking about.

Andrew Carroll
Carroll-Tech
720-273-6814
andrew@carroll-tech.net





^ permalink raw reply	[flat|nested] 124+ messages in thread

* Re: No call for Ada
  2004-04-07  7:06   ` Martin Krischik
@ 2004-04-08 12:39     ` Ludovic Brenta
  2004-04-08 16:58       ` Martin Krischik
  0 siblings, 1 reply; 124+ messages in thread
From: Ludovic Brenta @ 2004-04-08 12:39 UTC (permalink / raw)


Martin Krischik said:
> PS: One can "take over" stalled SourceForge Projects.

How?  I looked for a "take over" command, but couldn't find one.

-- 
Ludovic Brenta.



^ permalink raw reply	[flat|nested] 124+ messages in thread

* RE: No call for Ada
@ 2004-04-08 12:44 Lionel.DRAGHI
  0 siblings, 0 replies; 124+ messages in thread
From: Lionel.DRAGHI @ 2004-04-08 12:44 UTC (permalink / raw)
  To: comp.lang.ada



| -----Message d'origine-----
| De: Ed Falis [mailto:falis@verizon.net]
...
| >
| > Would anyone be interested in that?
| 
| While I realize that it is not necessarily portable to 
| windows, it looks 
| like what Ludovic is doing packaging Ada tools on Debian is a 
| step in the 
| right direction.  http://libre.act-europe.fr/ is also not at 
| all bad as a 
| collocation of necessary and interesting parts.

Yes, Ludovic is doing a great job. Using Ada on Debian is now easier than
ever.

On the Windows side, there is Stephane Riviere's promising AIDE : 
Ada on a CD, with compiler/IDE/tools/library.
It's ready to run, and 100% free software.

Those environment are easy to install and use, giving more or less the same
ease *feeling* than on VB. 
Actually, it's just because the choice between components was done by the
"packager", here Ludovic or Stephane.

For those for wich the default choice is not the right one, some sort of
central Ada catalogue on the web is still missing.
 

-- 
Lionel Draghi



^ permalink raw reply	[flat|nested] 124+ messages in thread

* Re: No call for Ada
  2004-04-08 11:46                                         ` Jean-Pierre Rosen
@ 2004-04-08 13:53                                           ` Samuel Tardieu
  0 siblings, 0 replies; 124+ messages in thread
From: Samuel Tardieu @ 2004-04-08 13:53 UTC (permalink / raw)


>>>>> "Jean-Pierre" == Jean-Pierre Rosen <rosen@adalog.fr> writes:

Jean-Pierre> When one of my students asks "May I ask a stupid
Jean-Pierre> question?", I always reply: "There are no stupid
Jean-Pierre> questions. Only stupid answers".

And at the same time, you make your point :)



^ permalink raw reply	[flat|nested] 124+ messages in thread

* Re: No call for Ada
  2004-04-08 12:39     ` Ludovic Brenta
@ 2004-04-08 16:58       ` Martin Krischik
  0 siblings, 0 replies; 124+ messages in thread
From: Martin Krischik @ 2004-04-08 16:58 UTC (permalink / raw)


Ludovic Brenta wrote:

> Martin Krischik said:
>> PS: One can "take over" stalled SourceForge Projects.
> 
> How?  I looked for a "take over" command, but couldn't find one.

I have never done it myself however my understanding is that you apply for a
new project of the same name and tell the sourceforge staff in the freeform
description that this is indeed a takover.

With Regards

Martin

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




^ permalink raw reply	[flat|nested] 124+ messages in thread

* Unified Ada library (was: No call for Ada)
  2004-04-08  9:36   ` Martin Krischik
@ 2004-04-08 17:17     ` Björn Persson
  2004-04-09  6:44       ` Martin Krischik
  0 siblings, 1 reply; 124+ messages in thread
From: Björn Persson @ 2004-04-08 17:17 UTC (permalink / raw)


Martin Krischik wrote:

> I am shure there are enogh here. However, how many are prepared to give up
> there privat project and merge it into a unified ada lib.

I would. I'd really like to see a unified free Ada library. I only wish 
I had more to contribute. What little I have is a package I'm currently 
hacking on that provides very easy handling of command line parameters 
in a way that I think would be difficult to mimic in most other 
languages. It would be a tiny contribution, but I'd be delighted if it 
were accepted into a larger library.

By the way, I think it would be best to offer both a single big download 
for those who want it and also the same components in separate packages, 
configured to work together with a common directory structure, common 
documentation and so on.

-- 
Björn Persson

jor ers @sv ge.
b n_p son eri nu




^ permalink raw reply	[flat|nested] 124+ messages in thread

* Re: No call for Ada
  2004-04-08  9:59       ` Dmitry A. Kazakov
@ 2004-04-08 20:46         ` Marius Amado Alves
  2004-04-09 11:26           ` Marin David Condic
  2004-04-09 11:34           ` Dmitry A. Kazakov
  0 siblings, 2 replies; 124+ messages in thread
From: Marius Amado Alves @ 2004-04-08 20:46 UTC (permalink / raw)
  To: comp.lang.ada

Here's a idea to ease the adoption of Ada, and thus expand it, and thus
augment the percentage of reliable software in the world, and throw some
business our way along with it.

The main result is a CD+book that constitutes the big package everyone seems
to be expecting, containing every resource/library required to learn Ada and
build a vast class of applications, and easy to install and use.

*The economical feasability of this project assumes that such a package does
not exist already. Is GNAT Pro it? Is ACE? Another? If yes then stop reading
here.*

The realisation of this project requires money investment and/or resources,
because I see no other way to do it than setting up a team of Ada library
mantainers, application developers, authors, and perhaps trainers, holding
at least one initial physical meeting in a laboratory somewhere. 10 or 20
people.

This requires coordination, leading to the selection of participants and
identification of leaders. CEO+CTO is a likely structure. The very initial
brainstorming could be done right here on CLA, but to advance it should
rapidly shift to a dedicated structure. A virtual organization.

The first gathering would take a week or two and result in:
- the first prototype of the product
- a planned structure to produce and distribute copies of it
- coordination and maintainance structures strengthened.

The launch would of coincide with Ada 2005 :-)

This project clearly need managerial and commercial skills as well as
technical, and as I said, money investment (e.g. for the meetings), and thus
a business plan, and thus a market research. We have some market indicators
from the people on this list, but perhaps not enough. Basically we need to
have a good idea of how many entities would buy a copy, and for how much.
The expenditures we know. Once we have the market figures, the business plan
is relatively easy.





^ permalink raw reply	[flat|nested] 124+ messages in thread

* Re: Unified Ada library (was: No call for Ada)
  2004-04-08 17:17     ` Unified Ada library (was: No call for Ada) Björn Persson
@ 2004-04-09  6:44       ` Martin Krischik
  2004-04-09 21:14         ` Unified Ada library Björn Persson
  0 siblings, 1 reply; 124+ messages in thread
From: Martin Krischik @ 2004-04-09  6:44 UTC (permalink / raw)


Bjï¿œrn Persson wrote:

> Martin Krischik wrote:
> 
>> I am shure there are enogh here. However, how many are prepared to give
>> up there privat project and merge it into a unified ada lib.
> 
> I would. I'd really like to see a unified free Ada library. I only wish
> I had more to contribute. What little I have is a package I'm currently
> hacking on that provides very easy handling of command line parameters
> in a way that I think would be difficult to mimic in most other
> languages. It would be a tiny contribution, but I'd be delighted if it
> were accepted into a larger library.

AdaCL allready has a commandline parser. Still, I would not mind if you
merge your ideas in or add  a competing package if it provides a real
alternative.

Download AdaCL from adacl.sf.net and have a look at the AdaCL.GetOpt
package. If you want to join in get a source forge user and drop me a mail.

Once true Unified Ada Library appears then we just move together. 

With Regards

Martin

PS: currently I am using gcc 3.5 - older compilers migh have problems with
the project files. If so, just delete the offendings statements.
-- 
mailto://krischik@users.sourceforge.net
http://www.ada.krischik.com




^ permalink raw reply	[flat|nested] 124+ messages in thread

* Re: No call for Ada
  2004-04-08 20:46         ` No call for Ada Marius Amado Alves
@ 2004-04-09 11:26           ` Marin David Condic
  2004-04-09 15:50             ` Georg Bauhaus
  2004-04-09 11:34           ` Dmitry A. Kazakov
  1 sibling, 1 reply; 124+ messages in thread
From: Marin David Condic @ 2004-04-09 11:26 UTC (permalink / raw)


Well, I'm sure I could get my company to cough up a conference room for 
some kind of after-hours team sessions to facilitate some discussion. I 
don't know how much that would help. But I like the idea of doing 
something that puts together a book/CD for publication. Potentially, 
this is something a publishing firm could partially finance - but they 
wouldn't likely do that without seeing some market that would justify 
the cost. It may end up a follow-on deal.

What I'd imagine doing would be to pull together an integrated kit that 
supported a GUI, Database and Class Library. That might not be an 
unachievable goal, but, as you observe, it would take some money. 
Volunteer software only gets so far and the public seems to like the 
"Professionalism" that comes with commercially supported products.

Its a noble goal and I'd be willing to discuss it - and even do some 
speculative work on it if we agree on where it should go. However, I'd 
have to agree that it will need money eventually, so I don't see any way 
of doing this as an all-volunteer, evenings-and-weekends project.

MDC


Marius Amado Alves wrote:
> Here's a idea to ease the adoption of Ada, and thus expand it, and thus
> augment the percentage of reliable software in the world, and throw some
> business our way along with it.
> 
> The main result is a CD+book that constitutes the big package everyone seems
> to be expecting, containing every resource/library required to learn Ada and
> build a vast class of applications, and easy to install and use.
> 
> *The economical feasability of this project assumes that such a package does
> not exist already. Is GNAT Pro it? Is ACE? Another? If yes then stop reading
> here.*
> 
> The realisation of this project requires money investment and/or resources,
> because I see no other way to do it than setting up a team of Ada library
> mantainers, application developers, authors, and perhaps trainers, holding
> at least one initial physical meeting in a laboratory somewhere. 10 or 20
> people.
> 
> This requires coordination, leading to the selection of participants and
> identification of leaders. CEO+CTO is a likely structure. The very initial
> brainstorming could be done right here on CLA, but to advance it should
> rapidly shift to a dedicated structure. A virtual organization.
> 
> The first gathering would take a week or two and result in:
> - the first prototype of the product
> - a planned structure to produce and distribute copies of it
> - coordination and maintainance structures strengthened.
> 
> The launch would of coincide with Ada 2005 :-)
> 
> This project clearly need managerial and commercial skills as well as
> technical, and as I said, money investment (e.g. for the meetings), and thus
> a business plan, and thus a market research. We have some market indicators
> from the people on this list, but perhaps not enough. Basically we need to
> have a good idea of how many entities would buy a copy, and for how much.
> The expenditures we know. Once we have the market figures, the business plan
> is relatively easy.
> 
> 


-- 
======================================================================
Marin David Condic
I work for: http://www.belcan.com/
My project is: http://www.jsf.mil/NSFrames.htm

Send Replies To: m   o   d   c @ a   m   o   g
                    c   n   i       c   .   r

     "Face it ladies, its not the dress that makes you look fat.
     Its the FAT that makes you look fat."

         --  Al Bundy

======================================================================




^ permalink raw reply	[flat|nested] 124+ messages in thread

* Re: No call for Ada
  2004-04-08 20:46         ` No call for Ada Marius Amado Alves
  2004-04-09 11:26           ` Marin David Condic
@ 2004-04-09 11:34           ` Dmitry A. Kazakov
  1 sibling, 0 replies; 124+ messages in thread
From: Dmitry A. Kazakov @ 2004-04-09 11:34 UTC (permalink / raw)


Marius Amado Alves wrote:

> Here's a idea to ease the adoption of Ada, and thus expand it, and thus
> augment the percentage of reliable software in the world, and throw some
> business our way along with it.
> 
> The main result is a CD+book that constitutes the big package everyone
> seems to be expecting, containing every resource/library required to learn
> Ada and build a vast class of applications, and easy to install and use.
> 
> *The economical feasability of this project assumes that such a package
> does not exist already. Is GNAT Pro it? Is ACE? Another? If yes then stop
> reading here.*
> 
> The realisation of this project requires money investment and/or
> resources, because I see no other way to do it than setting up a team of
> Ada library mantainers, application developers, authors, and perhaps
> trainers, holding at least one initial physical meeting in a laboratory
> somewhere. 10 or 20 people.
> 
> This requires coordination, leading to the selection of participants and
> identification of leaders. CEO+CTO is a likely structure. The very initial
> brainstorming could be done right here on CLA, but to advance it should
> rapidly shift to a dedicated structure. A virtual organization.
> 
> The first gathering would take a week or two and result in:
> - the first prototype of the product
> - a planned structure to produce and distribute copies of it
> - coordination and maintainance structures strengthened.
> 
> The launch would of coincide with Ada 2005 :-)
> 
> This project clearly need managerial and commercial skills as well as
> technical, and as I said, money investment (e.g. for the meetings), and
> thus a business plan, and thus a market research. We have some market
> indicators from the people on this list, but perhaps not enough. Basically
> we need to have a good idea of how many entities would buy a copy, and for
> how much. The expenditures we know. Once we have the market figures, the
> business plan is relatively easy.

Where you will get the money? To make it useful, the body resposible for
this should as authoritative as ARG. These people are expensive to get.

In my view, nothing will change until governments (US, I do not believe in
EU) understand that the current state of software development is a real
threat, in a long term perspective, maybe, greater than terrorism.

-- 
Regards,
Dmitry A. Kazakov
www.dmitry-kazakov.de



^ permalink raw reply	[flat|nested] 124+ messages in thread

* Re: No call for Ada
  2004-04-09 11:26           ` Marin David Condic
@ 2004-04-09 15:50             ` Georg Bauhaus
  0 siblings, 0 replies; 124+ messages in thread
From: Georg Bauhaus @ 2004-04-09 15:50 UTC (permalink / raw)


Marin David Condic <nobody@noplace.com> wrote:

: What I'd imagine doing would be to pull together an integrated kit that 
: supported a GUI, Database and Class Library. That might not be an 
: unachievable goal, but, as you observe, it would take some money. 

Isn't this what you can get from RR software?




^ permalink raw reply	[flat|nested] 124+ messages in thread

* No call for Ada
       [not found] <20040409115529.8C0D24C412B@lovelace.ada-france.org>
@ 2004-04-09 19:01 ` Andrew Carroll
  2004-04-09 20:19   ` Marin David Condic
  2004-04-10 10:48   ` Dmitry A. Kazakov
  0 siblings, 2 replies; 124+ messages in thread
From: Andrew Carroll @ 2004-04-09 19:01 UTC (permalink / raw)
  To: comp.lang.ada

> ------------------------------
> From: Marin David Condic <nobody@noplace.com>
> Subject: Re: No call for Ada
>
> Well, I'm sure I could get my company to cough up a conference room for
> some kind of after-hours team sessions to facilitate some discussion. I
> don't know how much that would help.
[snip]
> but they wouldn't likely do that without seeing some market that would
justify
> the cost. It may end up a follow-on deal.

I don't know where you sent your email from (where your office is) but if it
isn't in Colorado then I'm guessing I would be missing the meetings.  Not
that I was invited.

> What I'd imagine doing would be to pull together an integrated kit that
> supported a GUI, Database and Class Library. That might not be an
> unachievable goal, but, as you observe, it would take some money.
> Volunteer software only gets so far and the public seems to like the
> "Professionalism" that comes with commercially supported products.

Considering all the pieces are already out there it is a highly achievable
goal.  All that really needs to be done is to have an "install" or "setup"
program to install the existing components.  I personally don't think
it would be such a bad idea to go through the existing components
and organize them/integrate them into one directory tree instead of
trying to work with the existing component directory layouts from
each individual component.

Who says we can't sell the final product?  As long as the source code
is freely available.  Look at RedHat Linux or FreeBSD.  They get from
$75 to ~$200 per box set.  Assuming of course that the license is the same.
Who's going to fund it initially?  Well I will, if $1.92 will cut it.


> Marius Amado Alves wrote:
> > Here's a idea to ease the adoption of Ada, and thus expand it, and thus
> > augment the percentage of reliable software in the world, and throw some
> > business our way along with it.
> >
> > The main result is a CD+book that constitutes the big package everyone
seems
> > to be expecting, containing every resource/library required to learn Ada
and
> > build a vast class of applications, and easy to install and use.

This is a great idea as well!!  I was aiming more for a box of software but
hey, if
it comes with a book instead then great.

As far as raising money, maybe we could sell some t-shirts to the
C/C++ community?  Better yet, we could develop some simple
little software programs for C/C++ developers and sell those.  OF
COURSE their writen in Ada, what else would bring some irony
to the situation?

------------------------------
From: "Dmitry A. Kazakov" <mailbox@dmitry-kazakov.de>
Subject: Re: No call for Ada
[snip]
> In my view, nothing will change until governments (US, I do not believe in
> EU) understand that the current state of software development is a real
> threat, in a long term perspective, maybe, greater than terrorism.
>
> --
> Regards,
> Dmitry A. Kazakov
> www.dmitry-kazakov.de

I'm not sure if your saying that governments need to verify all software
that goes to market, sort of like the FDA approves medications or
if your saying that the US companies are predominantly responsible
for the majority of bad software and it's the US governments fault.
Either way I agree that ALL software from EVERY country could
be writen better.  I disagree that it should be "approved" by some
government entity.  Imagine how much a copy of Windows would
cost then!!

Not only that but who approves the methods of approval?  What
your saying is like saying that the industry needs an unpenetrable
network firewall.  To your surprise, there is one!  Disconnect your
network from the Internet and then, your network is unpenetrable
from the Internet.  See how easy that was?


Andrew Carroll
Carroll-Tech
720-273-6814
andrew@carroll-tech.net





^ permalink raw reply	[flat|nested] 124+ messages in thread

* Re: No call for Ada
  2004-04-09 19:01 ` Andrew Carroll
@ 2004-04-09 20:19   ` Marin David Condic
  2004-04-14 14:29     ` Robert I. Eachus
  2004-04-10 10:48   ` Dmitry A. Kazakov
  1 sibling, 1 reply; 124+ messages in thread
From: Marin David Condic @ 2004-04-09 20:19 UTC (permalink / raw)


Andrew Carroll wrote:
> 
> I don't know where you sent your email from (where your office is) but if it
> isn't in Colorado then I'm guessing I would be missing the meetings.  Not
> that I was invited.
> 
Its at least a potential resource if face-to-face sessions were 
necessary from time to time. I doubt I could find a dozen or so Ada 
advocates in Palm Beach County, FL interested in working a project like 
this - but I bet come February, any given team would *love* to come here 
for a few sessions. :-)

> 
> Considering all the pieces are already out there it is a highly achievable
> goal.  All that really needs to be done is to have an "install" or "setup"
> program to install the existing components.  I personally don't think
> it would be such a bad idea to go through the existing components
> and organize them/integrate them into one directory tree instead of
> trying to work with the existing component directory layouts from
> each individual component.
> 

Its more than that. You can't just pile stuff onto a disk with an 
install shield and expect it to somehow be "good" - much less exciting 
enough to draw interest from the non-Ada crowd. It would need a) really 
nice integration of all the tools and b) a bunch of "leverage" you don't 
get right now.



> Who says we can't sell the final product?  As long as the source code
> is freely available.  Look at RedHat Linux or FreeBSD.  They get from
> $75 to ~$200 per box set.  Assuming of course that the license is the same.
> Who's going to fund it initially?  Well I will, if $1.92 will cut it.
> 
Sure. But one way or another, if you don't get some kind of revenue from 
somewhere, nobody has this as a "job" - just a hobby. Hobby stuff takes 
forever to emerge and won't have the kind of commercial support & 
quality one expects from similar products.


MDC

-- 
======================================================================
Marin David Condic
I work for: http://www.belcan.com/
My project is: http://www.jsf.mil/NSFrames.htm

Send Replies To: m   o   d   c @ a   m   o   g
                    c   n   i       c   .   r

     "Face it ladies, its not the dress that makes you look fat.
     Its the FAT that makes you look fat."

         --  Al Bundy

======================================================================




^ permalink raw reply	[flat|nested] 124+ messages in thread

* Re: Unified Ada library
  2004-04-09  6:44       ` Martin Krischik
@ 2004-04-09 21:14         ` Björn Persson
  2004-04-14  7:29           ` Martin Krischik
  0 siblings, 1 reply; 124+ messages in thread
From: Björn Persson @ 2004-04-09 21:14 UTC (permalink / raw)


Martin Krischik wrote:

> AdaCL allready has a commandline parser. Still, I would not mind if you
> merge your ideas in or add  a competing package if it provides a real
> alternative.
> 
> Download AdaCL from adacl.sf.net and have a look at the AdaCL.GetOpt
> package. If you want to join in get a source forge user and drop me a mail.

I did look at AdaCL before I started. If I understand GetOpt right it 
checks that the command line syntax is okay and delivers the parameters 
one by one as strings and characters. My package takes a different 
approach. It reads all the parameters at once and interprets them 
according to their specified types so that you get the values ready to 
use. It's not for everyone though, since it assumes that parameters may 
be given in any order. It wouldn't be appropriate for cloning the Unix 
"find" command for example. I think it and GetOpt could complement each 
other.

I can't show you the code right now because I'm in the middle of 
rearranging the whole data structure, but here's an example of how to 
use it (though the interface is still in alpha stage). Let's say we're 
writing a program to serve tea:

First we declare all the parameters' names as an enumeration and 
instantiate a generic package with this type:

    type parameters is (tea, volume, sugar, milk, no_milk, customer);
    package handle is new handler(parameters);

Then we need to instantiate a package for each data type that a 
parameter can have, except for boolean and string:

    type teas is (Ceylon, Friesland, green, peppermint);
    type volume is digits 5 range 0.0 .. 10.0;
    package tea_param is new handle.discrete_parameters(teas);
    package natural_param is new handle.discrete_parameters(natural);
    package volume_param is new handle.floating_point_parameters(volume);

Then we define all the parameters with name, type, description, whether 
they may be used once or several times, and whether they are mandatory 
or have defaults. Here the default is 1.65 dl of Ceylon tea with milk 
but no sugar. Customer must always be specified since it has no default 
value. The definitions are placed in an array that is passed to yet 
another generic package:

    spec : handle.parameter_spec :=
      (tea => tea_param.new_definition
         (description => "The taste of dried leaves boiled in water.",
          multiple => false,
          default => Ceylon),
       volume => volume_param.new_definition
         (description => "How much tea you want, in litres.",
          multiple => false,
          default => 0.165),
       sugar => natural_param.new_definition
         (description => "How many lumps of sugar you want.",
          multiple => false,
          default => 0),
       milk => handle.new_boolean_definition
         (description => "Squirted out of a cow.",
          multiple => false,
          default => true),
       no_milk => handle.antonym(milk),
       customer => handle.new_string_definition
         (description => "Who has ordered the tea.",
          multiple => false));

    package analyze is new handle.analyzer(spec);

Finally we call a procedure to parse the command line. If anything is 
wrong it will (optionally) print error messages and then raise an 
exception indicating that the program should terminate:

    analyze.analyze_parameters;

That's all. Now we can access the value of any parameter with a function 
call:

    put_line("Ordered by " & handle.value(customer));
    for lump in 1 .. natural_param.value(sugar) loop

If we want green tea without milk we can call the program like this:

    serve_tea --customer="Tricia McMillan" --tea=green --no_milk

Or for a large cup of Ceylon tea with sugar:

    serve_tea customer=Fenchurch volume=0.25 sugar=2 milk=false

The parameters "help" and "version" are also recognized, so if we type

    serve_tea --help

then analyze_parameters will print something like the following:

    tea=Ceylon|Friesland|green|peppermint  (default: Ceylon)
         The taste of dried leaves boiled in water.

    volume=0.0..10.0  (default: 0.165)
         How much tea you want, in litres.

    sugar=0..2147483647  (default: 0)
         How many lumps of sugar you want.

    milk  (default)
         Squirted out of a cow.
    no_milk
         The opposite of "milk".

    customer=<text>  (mandatory)
         Who has ordered the tea.


> Once true Unified Ada Library appears then we just move together. 

Well if we're going to wait for it to just _appear_ we'll need a lot of 
patience ...

-- 
Björn Persson

jor ers @sv ge.
b n_p son eri nu




^ permalink raw reply	[flat|nested] 124+ messages in thread

* Re: No call for Ada
  2004-04-09 19:01 ` Andrew Carroll
  2004-04-09 20:19   ` Marin David Condic
@ 2004-04-10 10:48   ` Dmitry A. Kazakov
  2004-04-11 17:23     ` chris
  1 sibling, 1 reply; 124+ messages in thread
From: Dmitry A. Kazakov @ 2004-04-10 10:48 UTC (permalink / raw)


Andrew Carroll wrote:

> From: "Dmitry A. Kazakov" <mailbox@dmitry-kazakov.de>
> Subject: Re: No call for Ada
> [snip]
>> In my view, nothing will change until governments (US, I do not believe
>> in EU) understand that the current state of software development is a
>> real threat, in a long term perspective, maybe, greater than terrorism.
>>
> I'm not sure if your saying that governments need to verify all software
> that goes to market, sort of like the FDA approves medications

There are different ways. Don't you agree that the software which fault may
lead to loss of human life shall be approved? For the rest it would be
enough to require some level of liability for commercial software depending
on its price and application area.

> or
> if your saying that the US companies are predominantly responsible
> for the majority of bad software and it's the US governments fault.

The government should have cared to keep OS diversity. It should have
invested in key software development areas such as languages, OS,
networking, graphics. Ada exists only because it was sponsored.

> Either way I agree that ALL software from EVERY country could
> be writen better.  I disagree that it should be "approved" by some
> government entity.  Imagine how much a copy of Windows would
> cost then!!

Imagine that a new Windows version will be bought once per decade? But see
above, there is no need to approve Windows used at home.

> Not only that but who approves the methods of approval?

It is much lesser problem. It is not rocket science to see what Windows is. 

> What
> your saying is like saying that the industry needs an unpenetrable
> network firewall.  To your surprise, there is one!  Disconnect your
> network from the Internet and then, your network is unpenetrable
> from the Internet.  See how easy that was?

Consider that recent attempts to introduce an internet-based voting system.
Sooner or later it will come.

-- 
Regards,
Dmitry A. Kazakov
www.dmitry-kazakov.de



^ permalink raw reply	[flat|nested] 124+ messages in thread

* Re: No call for Ada
  2004-04-10 10:48   ` Dmitry A. Kazakov
@ 2004-04-11 17:23     ` chris
  2004-04-12 10:29       ` Dmitry A. Kazakov
  0 siblings, 1 reply; 124+ messages in thread
From: chris @ 2004-04-11 17:23 UTC (permalink / raw)


Dmitry A. Kazakov wrote:
> Andrew Carroll wrote:
>>
>>I'm not sure if your saying that governments need to verify all software
>>that goes to market, sort of like the FDA approves medications
> 
> There are different ways. Don't you agree that the software which fault may
> lead to loss of human life shall be approved? For the rest it would be
> enough to require some level of liability for commercial software depending
> on its price and application area.

I sort of agree, however we all know any significant software will 
contain bugs no matter what you do so liability may not be the best way 
with respect to commercial software, unless it's in terms of negligance, 
for the foreseeable future.  Perhaps the licensing of software engineers 
is the way to go on this.  i.e. if the software engineer is licensed 
they meet certain standards they are fit to work on projects.  The 
problem is deciding who sets the criteria and who enforces it.

I wouldn't mind being licensed, infact it's probably one of the few ways 
you could make software without making it too risky for companies to 
develop it.  Lots of people won't like it though, especially programmers 
because everybody knows programming is a bit of witchcraft and art, that 
it's their god given right to code and it all just 'works'. ;)

>>What
>>your saying is like saying that the industry needs an unpenetrable
>>network firewall.  To your surprise, there is one!  Disconnect your
>>network from the Internet and then, your network is unpenetrable
>>from the Internet.  See how easy that was?
> 
> 
> Consider that recent attempts to introduce an internet-based voting system.
> Sooner or later it will come.

Like biometric ID cards in the UK.  The problem is the old line about 
theory and pratice.



^ permalink raw reply	[flat|nested] 124+ messages in thread

* Re: No call for Ada
  2004-04-11 17:23     ` chris
@ 2004-04-12 10:29       ` Dmitry A. Kazakov
  0 siblings, 0 replies; 124+ messages in thread
From: Dmitry A. Kazakov @ 2004-04-12 10:29 UTC (permalink / raw)


chris wrote:

> Dmitry A. Kazakov wrote:
>> Andrew Carroll wrote:
>>>
>>>I'm not sure if your saying that governments need to verify all software
>>>that goes to market, sort of like the FDA approves medications
>> 
>> There are different ways. Don't you agree that the software which fault
>> may lead to loss of human life shall be approved? For the rest it would
>> be enough to require some level of liability for commercial software
>> depending on its price and application area.
> 
> I sort of agree, however we all know any significant software will
> contain bugs no matter what you do so liability may not be the best way
> with respect to commercial software, unless it's in terms of negligance,
> for the foreseeable future.

There are different kinds of bugs. When I buy shoes I do not expect to use
them for the rest of my life. One could specify which kinds of software
defects are admissible and which are not.

> Perhaps the licensing of software engineers
> is the way to go on this.  i.e. if the software engineer is licensed
> they meet certain standards they are fit to work on projects.

I think that more important would be to license software firms. ISO-2000 is
a rubbish, but the idea was right.

> The problem is deciding who sets the criteria and who enforces it.

Law-makers prepare a legal basis, the government creates a body, judges send
Billy to jail. (:-))

> I wouldn't mind being licensed, infact it's probably one of the few ways
> you could make software without making it too risky for companies to
> develop it.

You mean to push the responsibility down to software engineers. No I think
that companies have to be liable for what they sell. Whether they choose to
employ licensed engineers to minimise risk, it is their business. Though in
some application areas it might be required by law.

> Lots of people won't like it though, especially programmers
> because everybody knows programming is a bit of witchcraft and art, that
> it's their god given right to code and it all just 'works'. ;)

We have an excellent field for those who want to apply their skills without
being responsible for the results. It's the free software movement.

-- 
Regards,
Dmitry A. Kazakov
www.dmitry-kazakov.de



^ permalink raw reply	[flat|nested] 124+ messages in thread

* Re: Unified Ada library
  2004-04-09 21:14         ` Unified Ada library Björn Persson
@ 2004-04-14  7:29           ` Martin Krischik
  2004-04-14 23:55             ` Björn Persson
  0 siblings, 1 reply; 124+ messages in thread
From: Martin Krischik @ 2004-04-14  7:29 UTC (permalink / raw)


Bjï¿œrn Persson wrote:

> Martin Krischik wrote:
> 
>> AdaCL allready has a commandline parser. Still, I would not mind if you
>> merge your ideas in or add  a competing package if it provides a real
>> alternative.
>> 
>> Download AdaCL from adacl.sf.net and have a look at the AdaCL.GetOpt
>> package. If you want to join in get a source forge user and drop me a
>> mail.
> 
> I did look at AdaCL before I started. If I understand GetOpt right it
> checks that the command line syntax is okay and delivers the parameters
> one by one as strings and characters. My package takes a different
> approach. It reads all the parameters at once and interprets them
> according to their specified types so that you get the values ready to
> use. It's not for everyone though, since it assumes that parameters may
> be given in any order. It wouldn't be appropriate for cloning the Unix
> "find" command for example. I think it and GetOpt could complement each
> other.

From what I read I think so too. If if you like to join the AdaCL Team
(there are 3 members already) you are welcome.

>> Once true Unified Ada Library appears then we just move together.
> 
> Well if we're going to wait for it to just _appear_ we'll need a lot of
> patience ...

Well the project itsalf is allready there
(http://sourceforge.net/projects/ascl) it just needs some fresh developers.

With Regards

Martin

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




^ permalink raw reply	[flat|nested] 124+ messages in thread

* Re: No call for Ada
  2004-04-09 20:19   ` Marin David Condic
@ 2004-04-14 14:29     ` Robert I. Eachus
  0 siblings, 0 replies; 124+ messages in thread
From: Robert I. Eachus @ 2004-04-14 14:29 UTC (permalink / raw)


Marin David Condic wrote:

> Sure. But one way or another, if you don't get some kind of revenue from 
> somewhere, nobody has this as a "job" - just a hobby. Hobby stuff takes 
> forever to emerge and won't have the kind of commercial support & 
> quality one expects from similar products.

The best way to do this would be to put together a reference book for 
the collection, and provide a CD with all the software plus compiler, 
for the PC.  (You could probably include other versions on the CD as 
well, but just having the non-Windows versions available for download is 
probably okay.)

Anyway, I have a project I have bitten off, and due to a failed disk, 
this is my first chance to get back to work on it...

-- 

                                           Robert I. Eachus

"The terrorist enemy holds no territory, defends no population, is 
unconstrained by rules of warfare, and respects no law of morality. Such 
an enemy cannot be deterred, contained, appeased or negotiated with. It 
can only be destroyed--and that, ladies and gentlemen, is the business 
at hand."  -- Dick Cheney




^ permalink raw reply	[flat|nested] 124+ messages in thread

* Re: No call for Ada
  2004-04-14 14:12         ` Robert I. Eachus
@ 2004-04-14 17:52           ` Jeffrey Carter
  2004-04-15 16:17             ` Warren W. Gay VE3WWG
  0 siblings, 1 reply; 124+ messages in thread
From: Jeffrey Carter @ 2004-04-14 17:52 UTC (permalink / raw)


Robert I. Eachus wrote:

> Personally, I think that the need for web servers for companies doing 
> web commerce is an area where Ada's strengths will eventually mean that 
> it is needed to avoid the hazards associated with other languages. There 
> is a large, nasty group of crackers out there, and if they ever sniff 
> out the ability to redirect the billions of dollars in e-commerce 
> transactions into their accounts, financially safe software will be in 
> great demand.

Indeed. Buffer overflows account for about half of all known 
vulnerabilities. People have been "fixing" these errors for over a 
decade, yet even today people are creating new buffer-overflow 
vulnerabilities, so it appears that something stronger than knowing 
about the problem is needed to avoid them. Something like a language 
that doesn't allow them in the first place. Yet none of the discussions 
of how to improve security mention the effects of appropriate language 
choice.

When big customers refuse to use networking SW written in a language 
that allows buffer overflows, Ada, and products like AWS, will be there 
to fill the need. But the customers need to know that language choice 
can make a big difference.

The server SW at AdaIC.org is written in Ada, and I understand that 
there have been many attempts to crack it, but none have succeeded. It 
would be nice if that could be documented, written up, and presented at 
security conferences and published in security journals.

Even better, if we could find the resources, would be to set up a dummy 
web site using that SW, and offer a reward to anyone who can crack it. 
That would generate a lot of interest.

-- 
Jeff Carter
"Blessed are they who convert their neighbors'
oxen, for they shall inhibit their girth."
Monty Python's Life of Brian
83




^ permalink raw reply	[flat|nested] 124+ messages in thread

* Re: Unified Ada library
  2004-04-14  7:29           ` Martin Krischik
@ 2004-04-14 23:55             ` Björn Persson
  2004-04-15  0:40               ` Randy Brukardt
                                 ` (2 more replies)
  0 siblings, 3 replies; 124+ messages in thread
From: Björn Persson @ 2004-04-14 23:55 UTC (permalink / raw)


Martin Krischik wrote:

> From what I read I think so too. If if you like to join the AdaCL Team
> (there are 3 members already) you are welcome.

I'll join you soon, but I think I'd better translate comments and 
identifiers to English first. And I see AdaCL uses the Booch components, 
so I should probably switch from Charles to Booch.


>>>Once true Unified Ada Library appears then we just move together.
>>
>>Well if we're going to wait for it to just _appear_ we'll need a lot of
>>patience ...
> 
> 
> Well the project itsalf is allready there
> (http://sourceforge.net/projects/ascl) it just needs some fresh developers.

I think what that kind of project needs is not just some developers 
working on that project. It needs the contribution of just about 
everyone who develops some free Ada library. If a number of ASCL 
developers were to collect libraries from all over the Web and integrate 
them they'd have a lot of work to do just to get familiar with other 
people's code. The original developers of the different libraries could 
probably do the necessary adaptations a lot quicker.

-- 
Björn Persson

jor ers @sv ge.
b n_p son eri nu




^ permalink raw reply	[flat|nested] 124+ messages in thread

* Re: Unified Ada library
  2004-04-14 23:55             ` Björn Persson
@ 2004-04-15  0:40               ` Randy Brukardt
  2004-04-15  8:40                 ` Martin Krischik
                                   ` (3 more replies)
  2004-04-15  8:23               ` Martin Krischik
  2004-04-17  8:37               ` Simon Wright
  2 siblings, 4 replies; 124+ messages in thread
From: Randy Brukardt @ 2004-04-15  0:40 UTC (permalink / raw)


[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1: Type: text/plain, Size: 1097 bytes --]

"Bj�rn Persson" <spam-away@nowhere.nil> wrote in message
news:1ckfc.56157$mU6.232357@newsb.telia.net...

> I'll join you soon, but I think I'd better translate comments and
> identifiers to English first. And I see AdaCL uses the Booch components,
> so I should probably switch from Charles to Booch.

If you're going to switch container libraries, I'd strongly suggest
considering using Ada.Containers, the proposed container library for Ada
200Y. Matt has a reference implementation available (it started out as
Charles, but it's changed a lot, especially after the recent ARG meeting).
It's still a bit of a moving target (especially this week, as we're revising
it based on the meeting decisions), but we're expecting that it will be
included in the standard and thus it will be included with all compilers in
the future. (And since we're keeping it compilable with Ada 95, at least so
far, it probably will be adopted very quickly.)

We don't particularly need libraries that duplicate functionality that is in
the standard (or will be standard), after all.

                   Randy.






^ permalink raw reply	[flat|nested] 124+ messages in thread

* Re: Unified Ada library
  2004-04-14 23:55             ` Björn Persson
  2004-04-15  0:40               ` Randy Brukardt
@ 2004-04-15  8:23               ` Martin Krischik
  2004-04-15 10:49                 ` Stephen Leake
  2004-04-15 18:01                 ` Georg Bauhaus
  2004-04-17  8:37               ` Simon Wright
  2 siblings, 2 replies; 124+ messages in thread
From: Martin Krischik @ 2004-04-15  8:23 UTC (permalink / raw)


Bjï¿œrn Persson wrote:

> Martin Krischik wrote:
> 
>> From what I read I think so too. If if you like to join the AdaCL Team
>> (there are 3 members already) you are welcome.
> 
> I'll join you soon, but I think I'd better translate comments and
> identifiers to English first. And I see AdaCL uses the Booch components,
> so I should probably switch from Charles to Booch.

Difficult to say.

Booch has beed desingened for Ada 95 with flexibility in mind. So you can
specify the storrage strategie. However it is far more difficult to use.
i.E. you need 3 "package .. is new" per component.

Charles is designed from the C++'s STL with easy usage in mind. You need
only one "package .. is new" per component. But advanced Ada features like
storrage pools aren't there.

A Unified Ada Library might just as well have both.

Another poster also jugested "Ada.Components". They have been designed to be
included with every Ada compiler and with simplicity of implementation on
mind. While it is good the have such a component library,  "Ada.Components"
are to limited to replace the more advanced component libraries.

>>>>Once true Unified Ada Library appears then we just move together.
>>>
>>>Well if we're going to wait for it to just _appear_ we'll need a lot of
>>>patience ...
>> 
>> 
>> Well the project itsalf is allready there
>> (http://sourceforge.net/projects/ascl) it just needs some fresh
>> developers.
> 
> I think what that kind of project needs is not just some developers
> working on that project. It needs the contribution of just about
> everyone who develops some free Ada library. If a number of ASCL
> developers were to collect libraries from all over the Web and integrate
> them they'd have a lot of work to do just to get familiar with other
> people's code. The original developers of the different libraries could
> probably do the necessary adaptations a lot quicker.

I think that was the problem leading to there failure. Learning from the
that mistake I would distinquish between "import" and "native" libs. 

The "import" libs I would just "cvs import" and change as little as
possible. Just adding some unified configuration and build management.

With Regards

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




^ permalink raw reply	[flat|nested] 124+ messages in thread

* Re: Unified Ada library
  2004-04-15  0:40               ` Randy Brukardt
@ 2004-04-15  8:40                 ` Martin Krischik
  2004-04-15 10:53                   ` Stephen Leake
  2004-04-15 16:26                 ` Warren W. Gay VE3WWG
                                   ` (2 subsequent siblings)
  3 siblings, 1 reply; 124+ messages in thread
From: Martin Krischik @ 2004-04-15  8:40 UTC (permalink / raw)


Randy Brukardt wrote:

> "Bjï¿œrn Persson" <spam-away@nowhere.nil> wrote in message
> news:1ckfc.56157$mU6.232357@newsb.telia.net...

> If you're going to switch container libraries, I'd strongly suggest
> considering using Ada.Containers, the proposed container library for Ada
> 200Y. Matt has a reference implementation available (it started out as

> We don't particularly need libraries that duplicate functionality that is
> in the standard (or will be standard), after all.

The booch components contain a total of 104 packages. And an extension pack
of another 27 packages within AdaCL.

Ada.Containers are far from providing all the features of the booch
components.

With Regards

Martin

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




^ permalink raw reply	[flat|nested] 124+ messages in thread

* Re: Unified Ada library
  2004-04-15  8:23               ` Martin Krischik
@ 2004-04-15 10:49                 ` Stephen Leake
  2004-04-15 13:53                   ` Martin Krischik
  2004-04-15 18:01                 ` Georg Bauhaus
  1 sibling, 1 reply; 124+ messages in thread
From: Stephen Leake @ 2004-04-15 10:49 UTC (permalink / raw)
  To: comp.lang.ada

Martin Krischik <krischik@users.sourceforge.net> writes:

> Björn Persson wrote:
> 
> > Martin Krischik wrote:
> > 
> >> From what I read I think so too. If if you like to join the AdaCL Team
> >> (there are 3 members already) you are welcome.
> > 
> > I'll join you soon, but I think I'd better translate comments and
> > identifiers to English first. And I see AdaCL uses the Booch components,
> > so I should probably switch from Charles to Booch.
> 
> Difficult to say.
> 
> Booch has beed desingened for Ada 95 with flexibility in mind. So you can
> specify the storrage strategie. However it is far more difficult to use.
> i.E. you need 3 "package .. is new" per component.

3 instantiations instead of 1 is not _far_ more difficult, in my
opinion. Using C++ is _far_ more difficult :).

If the library is being used in the implementation of AdaCL, needing
three instantiations per component should not be a problem; the people
writing AdaCL should not be novices.

> A Unified Ada Library might just as well have both.

Does that mean you would rename them and "unify" their interfaces, so
it is easy to switch from one to the other?

Simply including Charles and Booch in one distribution is not a
Unified Ada Library.

> Another poster also jugested "Ada.Components". They have been
> designed to be included with every Ada compiler and with simplicity
> of implementation on mind. 

I thought it was ease of use, like Charles. But it hasn't settled down
yet.

> While it is good the have such a component library, "Ada.Components"
> are to limited to replace the more advanced component libraries.

Part of the point of Ada.Components is to encourage a common style for
Ada component libraries. Ideally, everyone that needs components would
use Ada.Components for their simple needs, and then add higher-level
components in the same style, using existing Components as a base
whenever possible, and coordinating with others to maintain a common
style and avoid duplication. Then for Ada 1Z, we'll have more standard
components to add.

That's the hope, anyway :).

Right now, should definitely try to use Ada.Components. If you find a
design flaw that makes them unsuitable for your application, report
it; now is the only chance to fix it! And you may decide you like
them.

> >>>>Once true Unified Ada Library appears then we just move together.
> >>>
> >>>Well if we're going to wait for it to just _appear_ we'll need a lot of
> >>>patience ...
> >> 
> >> 
> >> Well the project itsalf is allready there
> >> (http://sourceforge.net/projects/ascl) it just needs some fresh
> >> developers.
> > 
> > I think what that kind of project needs is not just some developers
> > working on that project. It needs the contribution of just about
> > everyone who develops some free Ada library. If a number of ASCL
> > developers were to collect libraries from all over the Web and integrate
> > them they'd have a lot of work to do just to get familiar with other
> > people's code. The original developers of the different libraries could
> > probably do the necessary adaptations a lot quicker.

To be truly "unified", a set of libraries needs a common architecture.
That is nearly impossible with a random bunch of developers who have
no strong motivation to work together.

When I was doing Windex, there were a couple of other Windows bindings
developed. For each one, I suggested they work with me to develop a
common binding. In each case, it didn't happen, for various good
reasons.

People write libraries because they need them for their own work, or
to satisfy some curiosity that is uniquely theirs. Sacrificing design
principles or productivity to satisfy someone else's needs is very
hard to do!

> I think that was the problem leading to there failure. Learning from the
> that mistake I would distinquish between "import" and "native" libs. 
> 
> The "import" libs I would just "cvs import" and change as little as
> possible. Just adding some unified configuration and build
> management.

Configuration and build management is a tough problem; that's why the
standard Gnu build system, with autoconf, automake, and configure is
so complex. Doing that for a bunch of libraries would certainly be
worth while, but it's a hard job. You'll have to get each developer to
agree to use the common build system.

Making Debian packages is one example of doing common build
management. It doesn't help Windows users, though :).

-- 
-- Stephe




^ permalink raw reply	[flat|nested] 124+ messages in thread

* Re: Unified Ada library
  2004-04-15  8:40                 ` Martin Krischik
@ 2004-04-15 10:53                   ` Stephen Leake
  2004-04-15 12:20                     ` Martin Krischik
  0 siblings, 1 reply; 124+ messages in thread
From: Stephen Leake @ 2004-04-15 10:53 UTC (permalink / raw)
  To: comp.lang.ada

Martin Krischik <krischik@users.sourceforge.net> writes:

> Ada.Containers are far from providing all the features of the booch
> components.

Yes, it is. It's also the next Ada standard, and the core of the
proverbial "Standard Ada Library" that we've all been waiting for. 

The best approach is to use it where you can, and start building more
packages for it, to put in the next standard. 

Ideally, you can adapt your current component libraries to use
Ada.Components as a base without much trouble.

Having said that, I'm waiting for the next iteration of Arg changes
before I start changing SAL to use Ada.Components. But I have
participated in the design discussions.

-- 
-- Stephe




^ permalink raw reply	[flat|nested] 124+ messages in thread

* Re: Unified Ada library
  2004-04-15 10:53                   ` Stephen Leake
@ 2004-04-15 12:20                     ` Martin Krischik
  2004-04-15 17:30                       ` Georg Bauhaus
                                         ` (3 more replies)
  0 siblings, 4 replies; 124+ messages in thread
From: Martin Krischik @ 2004-04-15 12:20 UTC (permalink / raw)


Stephen Leake wrote:

> Martin Krischik <krischik@users.sourceforge.net> writes:
> 
>> Ada.Containers are far from providing all the features of the booch
>> components.
> 
> Yes, it is. It's also the next Ada standard, and the core of the
> proverbial "Standard Ada Library" that we've all been waiting for.

I agree with you on that point.
 
> The best approach is to use it where you can, and start building more
> packages for it, to put in the next standard.

In the last version I saw the tag was hidden. So using inheritance for
extension is closed.

> Ideally, you can adapt your current component libraries to use
> Ada.Components as a base without much trouble.

The main component currently used are bounded queues and all Ada.Components
I know of are unbounded. Yes you can use a Vector to create a Queue. And
any unbouded type can be make bounded. However with an hidden tag its extra
effort.
 
> Having said that, I'm waiting for the next iteration of Arg changes
> before I start changing SAL to use Ada.Components. But I have
> participated in the design discussions.

I am there too shouting "indefinite elements" all the time.

With Regards

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




^ permalink raw reply	[flat|nested] 124+ messages in thread

* Re: Unified Ada library
  2004-04-15 10:49                 ` Stephen Leake
@ 2004-04-15 13:53                   ` Martin Krischik
  2004-04-15 23:40                     ` Stephen Leake
  0 siblings, 1 reply; 124+ messages in thread
From: Martin Krischik @ 2004-04-15 13:53 UTC (permalink / raw)


Stephen Leake wrote:

> Martin Krischik <krischik@users.sourceforge.net> writes:
> 
>> Bjï¿œrn Persson wrote:
>> 
>> > Martin Krischik wrote:

>> Booch has beed desingened for Ada 95 with flexibility in mind. So you can
>> specify the storrage strategie. However it is far more difficult to use.
>> i.E. you need 3 "package .. is new" per component.
> 
> 3 instantiations instead of 1 is not _far_ more difficult, in my
> opinion. Using C++ is _far_ more difficult :).

:-) - But there is a strong movement that components should only need one
instantiation.

>> A Unified Ada Library might just as well have both.
> 
> Does that mean you would rename them and "unify" their interfaces, so
> it is easy to switch from one to the other?

I don't think that is possible. And not needed. Charles and Booch have so
different design philosophies that they can co-exist.
 
>> Another poster also jugested "Ada.Components". They have been
>> designed to be included with every Ada compiler and with simplicity
>> of implementation on mind.
 
> I thought it was ease of use, like Charles. But it hasn't settled down
> yet.

If "ease of use" was main point then they could have just taken Charles with
all its features. But they scaled it down not to overburden the standart.

>> While it is good the have such a component library, "Ada.Components"
>> are to limited to replace the more advanced component libraries.
> 
> Part of the point of Ada.Components is to encourage a common style for
> Ada component libraries.

I know and I hope they succed.

> Right now, should definitely try to use Ada.Components. If you find a
> design flaw that makes them unsuitable for your application, report
> it; now is the only chance to fix it! And you may decide you like
> them.

> To be truly "unified", a set of libraries needs a common architecture.
> That is nearly impossible with a random bunch of developers who have
> no strong motivation to work together.

How did the pyhton and perl guys do it? If I insert my SuSE DVD I have
hundreds of perl and pyhon libraries installed by default. They are made by
indivdualist - yet they come as one or two big rpm package.

With Regards

Martin

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




^ permalink raw reply	[flat|nested] 124+ messages in thread

* Re: No call for Ada
  2004-04-14 17:52           ` No call for Ada Jeffrey Carter
@ 2004-04-15 16:17             ` Warren W. Gay VE3WWG
  0 siblings, 0 replies; 124+ messages in thread
From: Warren W. Gay VE3WWG @ 2004-04-15 16:17 UTC (permalink / raw)


Jeffrey Carter wrote:

> Robert I. Eachus wrote:
> 
>> Personally, I think that the need for web servers for companies doing 
>> web commerce is an area where Ada's strengths will eventually mean 
>> that it is needed to avoid the hazards associated with other 
>> languages. There is a large, nasty group of crackers out there, and if 
>> they ever sniff out the ability to redirect the billions of dollars in 
>> e-commerce transactions into their accounts, financially safe software 
>> will be in great demand.
> 
> Indeed. Buffer overflows account for about half of all known 
> vulnerabilities. People have been "fixing" these errors for over a 
> decade, yet even today people are creating new buffer-overflow 
> vulnerabilities, so it appears that something stronger than knowing 
> about the problem is needed to avoid them. Something like a language 
> that doesn't allow them in the first place. Yet none of the discussions 
> of how to improve security mention the effects of appropriate language 
> choice.

That is why I have said in the past that someone needs to rewrite
BIND (DNS) in Ada. I would sleep better at night with an Ada version
of it exposed to the net than the C versions we use.

> When big customers refuse to use networking SW written in a language 
> that allows buffer overflows, Ada, and products like AWS, will be there 
> to fill the need. But the customers need to know that language choice 
> can make a big difference.

Absolutely.

-- 
Warren W. Gay VE3WWG
http://ve3wwg.tk




^ permalink raw reply	[flat|nested] 124+ messages in thread

* Re: Unified Ada library
  2004-04-15  0:40               ` Randy Brukardt
  2004-04-15  8:40                 ` Martin Krischik
@ 2004-04-15 16:26                 ` Warren W. Gay VE3WWG
  2004-04-15 17:26                   ` Georg Bauhaus
  2004-04-16 17:01                   ` Matthew Heaney
  2004-04-16 15:51                 ` Jano
  2004-04-17  0:43                 ` Björn Persson
  3 siblings, 2 replies; 124+ messages in thread
From: Warren W. Gay VE3WWG @ 2004-04-15 16:26 UTC (permalink / raw)


Randy Brukardt wrote:

> "Bj�rn Persson" <spam-away@nowhere.nil> wrote in message
> news:1ckfc.56157$mU6.232357@newsb.telia.net...
> 
>>I'll join you soon, but I think I'd better translate comments and
>>identifiers to English first. And I see AdaCL uses the Booch components,
>>so I should probably switch from Charles to Booch.
> 
> If you're going to switch container libraries, I'd strongly suggest
> considering using Ada.Containers, the proposed container library for Ada
> 200Y. Matt has a reference implementation available (it started out as
> Charles, but it's changed a lot, especially after the recent ARG meeting).
> It's still a bit of a moving target (especially this week, as we're revising
> it based on the meeting decisions), but we're expecting that it will be
> included in the standard and thus it will be included with all compilers in
> the future. (And since we're keeping it compilable with Ada 95, at least so
> far, it probably will be adopted very quickly.)
> 
> We don't particularly need libraries that duplicate functionality that is in
> the standard (or will be standard), after all.
> 
>                    Randy.

It is a good effort, and I think everyone welcomes that support in the
standard. However, it is still lacking some commonly needed components
like Trees. I don't remember if Charles has them, but the BC smart pointers
are handy as well.

-- 
Warren W. Gay VE3WWG
http://ve3wwg.tk




^ permalink raw reply	[flat|nested] 124+ messages in thread

* Re: Unified Ada library
  2004-04-15 16:26                 ` Warren W. Gay VE3WWG
@ 2004-04-15 17:26                   ` Georg Bauhaus
  2004-04-16 19:53                     ` Warren W. Gay VE3WWG
  2004-04-16 17:01                   ` Matthew Heaney
  1 sibling, 1 reply; 124+ messages in thread
From: Georg Bauhaus @ 2004-04-15 17:26 UTC (permalink / raw)


Warren W. Gay VE3WWG <warren@ve3wwg.tk> wrote:
 

: However, it is still lacking some commonly needed components
: like Trees.

What kind of trees do you need?
For what operations?
Some Charles components are _based_ on trees.



^ permalink raw reply	[flat|nested] 124+ messages in thread

* Re: Unified Ada library
  2004-04-15 12:20                     ` Martin Krischik
@ 2004-04-15 17:30                       ` Georg Bauhaus
  2004-04-15 18:05                         ` Jeffrey Carter
  2004-04-15 20:58                         ` Randy Brukardt
  2004-04-15 17:48                       ` Georg Bauhaus
                                         ` (2 subsequent siblings)
  3 siblings, 2 replies; 124+ messages in thread
From: Georg Bauhaus @ 2004-04-15 17:30 UTC (permalink / raw)


Martin Krischik <krischik@users.sourceforge.net> wrote:
 
: In the last version I saw the tag was hidden. So using inheritance for
: extension is closed.

I remember this has been discussed. Charles is to be used differently.
It doesn't always seem to think about Charles components in Booch terms.

 
: I am there too shouting "indefinite elements" all the time.

Yeah. Does everyone add one level of indirection to solve this?



^ permalink raw reply	[flat|nested] 124+ messages in thread

* Re: Unified Ada library
  2004-04-15 12:20                     ` Martin Krischik
  2004-04-15 17:30                       ` Georg Bauhaus
@ 2004-04-15 17:48                       ` Georg Bauhaus
  2004-04-17 17:47                       ` Matthew Heaney
  2004-06-28 23:31                       ` Matthew Heaney
  3 siblings, 0 replies; 124+ messages in thread
From: Georg Bauhaus @ 2004-04-15 17:48 UTC (permalink / raw)


Martin Krischik <krischik@users.sourceforge.net> wrote:
: 
: I am there too shouting "indefinite elements" all the time.
 
Seems like you have been heard :-)

generic

   type Key_Type (<>) is private;

   ...

package AI302.Containers.Indefinite_Hashed_Maps is




^ permalink raw reply	[flat|nested] 124+ messages in thread

* Re: Unified Ada library
  2004-04-15  8:23               ` Martin Krischik
  2004-04-15 10:49                 ` Stephen Leake
@ 2004-04-15 18:01                 ` Georg Bauhaus
  2004-04-16  6:46                   ` Martin Krischik
  1 sibling, 1 reply; 124+ messages in thread
From: Georg Bauhaus @ 2004-04-15 18:01 UTC (permalink / raw)


Martin Krischik <krischik@users.sourceforge.net> wrote:
 
: But advanced Ada features like
: storrage pools aren't there.

Hm. Do you need storage management for your own data
or do you wish to specify a pool for the components' "infrastructure"?
In the first case you are in command...

 
: "Ada.Components"
: are to limited to replace the more advanced component libraries.

Does it render them useless? 
(For example, looking at the 10 Boost things to be added to the
next C++, I find some of them, uhm, conventient like Perl regular
excessive syntax.)





^ permalink raw reply	[flat|nested] 124+ messages in thread

* Re: Unified Ada library
  2004-04-15 17:30                       ` Georg Bauhaus
@ 2004-04-15 18:05                         ` Jeffrey Carter
  2004-04-15 20:52                           ` Georg Bauhaus
  2004-04-15 20:58                         ` Randy Brukardt
  1 sibling, 1 reply; 124+ messages in thread
From: Jeffrey Carter @ 2004-04-15 18:05 UTC (permalink / raw)


Georg Bauhaus wrote:

> Martin Krischik <krischik@users.sourceforge.net> wrote:
>  
> : I am there too shouting "indefinite elements" all the time.
> 
> Yeah. Does everyone add one level of indirection to solve this?

I tend to abstract away the indefiniteness, then use the abstraction for 
the element. For example, if I want a structure of Strings, I use 
[Un]Bounded_String as the element (in this case the abstraction has been 
done for me). This generally has important benefits beyond the use of 
the structure. Consider manipulating "access String" values everywhere, 
instead of using Unbounded_String. The abstraction is cleaner, simpler, 
and safer.

-- 
Jeff Carter
"We burst our pimples at you."
Monty Python & the Holy Grail
16




^ permalink raw reply	[flat|nested] 124+ messages in thread

* Re: Unified Ada library
  2004-04-15 18:05                         ` Jeffrey Carter
@ 2004-04-15 20:52                           ` Georg Bauhaus
  2004-04-16  0:12                             ` Jeffrey Carter
  0 siblings, 1 reply; 124+ messages in thread
From: Georg Bauhaus @ 2004-04-15 20:52 UTC (permalink / raw)


Jeffrey Carter <spam@spam.com> wrote:
: I tend to abstract away the indefiniteness, then use the abstraction for 
: the element. [...]
: The abstraction is cleaner, simpler, and safer.

Thanks, that makes me think again. I'm still trying to find
a way to have a constructor subprogram with arguments that
must be run for proper initialisation. Is there a way this
can be forced without introducing indefiniteness?



-- Georg



^ permalink raw reply	[flat|nested] 124+ messages in thread

* Re: Unified Ada library
  2004-04-15 17:30                       ` Georg Bauhaus
  2004-04-15 18:05                         ` Jeffrey Carter
@ 2004-04-15 20:58                         ` Randy Brukardt
  2004-04-16  0:22                           ` Jeffrey Carter
  2004-04-16  2:17                           ` Georg Bauhaus
  1 sibling, 2 replies; 124+ messages in thread
From: Randy Brukardt @ 2004-04-15 20:58 UTC (permalink / raw)



"Georg Bauhaus" <sb463ba@l1-hrz.uni-duisburg.de> wrote in message
news:c5mgs2$er$2@a1-hrz.uni-duisburg.de...
> Martin Krischik <krischik@users.sourceforge.net> wrote:
> : I am there too shouting "indefinite elements" all the time.
>
> Yeah. Does everyone add one level of indirection to solve this?

For what it's worth, you don't have to shout anymore. The ARG spent 6 hours
on containers in Phoenix, and one of the many decisions was to include the
indefinite versions of the containers. Indeed, pretty much everything that
was discussed on Ada-Comment was added (Lists, set operations, and more).

Matt, Tucker, and I are working on a new draft with all of the changes
included; hopefully that will be done this week. (You can see the discussion
in the ARG minutes; the draft for the Phoenix meeting is up on the web
site.)

                   Randy.






^ permalink raw reply	[flat|nested] 124+ messages in thread

* Re: Unified Ada library
  2004-04-15 13:53                   ` Martin Krischik
@ 2004-04-15 23:40                     ` Stephen Leake
  0 siblings, 0 replies; 124+ messages in thread
From: Stephen Leake @ 2004-04-15 23:40 UTC (permalink / raw)
  To: comp.lang.ada

Martin Krischik <krischik@users.sourceforge.net> writes:

> Stephen Leake wrote:
> 
> > Martin Krischik <krischik@users.sourceforge.net> writes:
> > 
> >> Björn Persson wrote:
> >> 
> >> > Martin Krischik wrote:
> 
> >> Booch has beed desingened for Ada 95 with flexibility in mind. So you can
> >> specify the storrage strategie. However it is far more difficult to use.
> >> i.E. you need 3 "package .. is new" per component.
> > 
> > 3 instantiations instead of 1 is not _far_ more difficult, in my
> > opinion. Using C++ is _far_ more difficult :).
> 
> :-) - But there is a strong movement that components should only need one
> instantiation.

Hmm. I hear some people saying that, in the context of Ada.Components,
and in Grace. In both cases, the justification is "make it easy for
novices to use".

SAL is _not_ designed with that criteria; instead, the main goal is
"exploit the full power of Ada, in a consistent architecture".

> >> A Unified Ada Library might just as well have both.
> > 
> > Does that mean you would rename them and "unify" their interfaces, so
> > it is easy to switch from one to the other?
> 
> I don't think that is possible. And not needed. Charles and Booch have so
> different design philosophies that they can co-exist.

Then it is not a "unified" library; it is a "collection" of libraries.

Not a big deal, but it is important to be clear what you are doing.

And there is overlap between Charles and Booch. If I start an
application with Charles list, but then want to switch to Booch trees
(because they are better in some way for my application than Charles trees),
that's harder than it would be if the same feature was in Charles in
the first place.

> >> Another poster also jugested "Ada.Components". They have been
> >> designed to be included with every Ada compiler and with simplicity
> >> of implementation on mind.
>  
> > I thought it was ease of use, like Charles. But it hasn't settled down
> > yet.
> 
> If "ease of use" was main point then they could have just taken Charles with
> all its features. But they scaled it down not to overburden the standart.

The "overburden" was on the Arg in analyzing the proposal, not on the
implementers. Everyone expects the implementations to be pretty
straightforward.

> > To be truly "unified", a set of libraries needs a common architecture.
> > That is nearly impossible with a random bunch of developers who have
> > no strong motivation to work together.
> 
> How did the pyhton and perl guys do it? If I insert my SuSE DVD I have
> hundreds of perl and pyhon libraries installed by default. They are made by
> indivdualist - yet they come as one or two big rpm package.

Yes. But do they truly form a unified architecture? Or are they just
collections of individual things, each differing in user interface
conventions? I suspect the later, but I don't use them, so I don't know.

GNAT comes with a pretty large library, as well. It is noticably less
clean, less well organized, than the Ada standard. Producing unified
design is expensive.

-- 
-- Stephe




^ permalink raw reply	[flat|nested] 124+ messages in thread

* Re: Unified Ada library
  2004-04-15 20:52                           ` Georg Bauhaus
@ 2004-04-16  0:12                             ` Jeffrey Carter
  2004-04-16  3:41                               ` Georg Bauhaus
  0 siblings, 1 reply; 124+ messages in thread
From: Jeffrey Carter @ 2004-04-16  0:12 UTC (permalink / raw)


Georg Bauhaus wrote:

> Thanks, that makes me think again. I'm still trying to find
> a way to have a constructor subprogram with arguments that
> must be run for proper initialisation. Is there a way this
> can be forced without introducing indefiniteness?

I'm not sure what you mean. Can you provide an example?

-- 
Jeff Carter
"We burst our pimples at you."
Monty Python & the Holy Grail
16




^ permalink raw reply	[flat|nested] 124+ messages in thread

* Re: Unified Ada library
  2004-04-15 20:58                         ` Randy Brukardt
@ 2004-04-16  0:22                           ` Jeffrey Carter
  2004-04-16  1:15                             ` Randy Brukardt
                                               ` (2 more replies)
  2004-04-16  2:17                           ` Georg Bauhaus
  1 sibling, 3 replies; 124+ messages in thread
From: Jeffrey Carter @ 2004-04-16  0:22 UTC (permalink / raw)


Randy Brukardt wrote:

> For what it's worth, you don't have to shout anymore. The ARG spent 6 hours
> on containers in Phoenix, and one of the many decisions was to include the
> indefinite versions of the containers. Indeed, pretty much everything that
> was discussed on Ada-Comment was added (Lists, set operations, and more).
> 
> Matt, Tucker, and I are working on a new draft with all of the changes
> included; hopefully that will be done this week. (You can see the discussion
> in the ARG minutes; the draft for the Phoenix meeting is up on the web
> site.)

I'm in the Phoenix area. I wish I'd known. Unlike Heaney, I can't afford 
to fly all over the world promoting my view of Ada. Are these things 
open to the public?

Regarding the minutes, I mostly like what I see (other than the horrible 
error of not calling it Unbounded_Array). I have a nit: The minutes say, 
"Pascal wonders if 'and' and 'or' would be better for Union and 
Intersection." This implies that Union is equivalent to "and" and 
Intersection to "or"; actually it's the other way around.

It's because even experienced people such as Pascal get these wrong that 
I think even a simple bit-mapped set should include such operations, 
rather than relying on the user creating arrays of Boolean and applying 
Boolean operations on them directly.

-- 
Jeff Carter
"We burst our pimples at you."
Monty Python & the Holy Grail
16




^ permalink raw reply	[flat|nested] 124+ messages in thread

* Re: Unified Ada library
  2004-04-16  0:22                           ` Jeffrey Carter
@ 2004-04-16  1:15                             ` Randy Brukardt
  2004-04-16 23:33                               ` Jeffrey Carter
  2004-04-16 16:58                             ` Matthew Heaney
  2004-04-17 21:17                             ` Craig Carey
  2 siblings, 1 reply; 124+ messages in thread
From: Randy Brukardt @ 2004-04-16  1:15 UTC (permalink / raw)


"Jeffrey Carter" <spam@spam.com> wrote in message
news:eHFfc.12113$A_4.4564@newsread1.news.pas.earthlink.net...
...
> I'm in the Phoenix area. I wish I'd known. Unlike Heaney, I can't afford
> to fly all over the world promoting my view of Ada. Are these things
> open to the public?

By invitation only. But I doubt that you would have been turned down had you
asked. (New opinions never hurt.)

> Regarding the minutes, I mostly like what I see (other than the horrible
> error of not calling it Unbounded_Array). I have a nit: The minutes say,
> "Pascal wonders if 'and' and 'or' would be better for Union and
> Intersection." This implies that Union is equivalent to "and" and
> Intersection to "or"; actually it's the other way around.
>
> It's because even experienced people such as Pascal get these wrong that
> I think even a simple bit-mapped set should include such operations,
> rather than relying on the user creating arrays of Boolean and applying
> Boolean operations on them directly.

I suspect that it is more likely that the note taker (me) got it backwards
writing it down. And no one caught it.

                Randy.







^ permalink raw reply	[flat|nested] 124+ messages in thread

* Re: Unified Ada library
  2004-04-15 20:58                         ` Randy Brukardt
  2004-04-16  0:22                           ` Jeffrey Carter
@ 2004-04-16  2:17                           ` Georg Bauhaus
  2004-04-16 18:18                             ` Randy Brukardt
  2004-04-17 14:38                             ` Matthew Heaney
  1 sibling, 2 replies; 124+ messages in thread
From: Georg Bauhaus @ 2004-04-16  2:17 UTC (permalink / raw)


Randy Brukardt <randy@rrsoftware.com> wrote:
: 
: Matt, Tucker, and I are working on a new draft with all of the changes
: included; hopefully that will be done this week. (You can see the discussion
: in the ARG minutes; the draft for the Phoenix meeting is up on the web
: site.)

Reading the discussion I have become curious about the extent that
the power of STL-iterators/cursors is appreciated? (Please excuse
the bold statement.) That is, the technique of generic algorithms,
adaptors, ...

If typical cursor use is supposed to be "Exists(Position)" in a loop
iteration scheme, it is an interesting view but shouldn't "Exists"
be a prime example of a function that can be flexibly defined in terms
of Cursors/Iterators? Something Like

   generic
      stop: Cursor_Type;
   function generic_exists (position: Cursor_Type) return Boolean;
   --   false when position = stop

   ...


   declare
     it: Cursor_Type := first(a_cont);

     function Exists is new generic_exists(find(a_cont, a_value));
   begin
     while Exists(it) loop
        ...
     end loop;
   end;


Besides that, "exists" is frequently found in data structure
libraries of functional languages, but with a different meaning,
here is OCaML:

# List.exists ;;
- : ('a -> bool) -> 'a list -> bool = <fun>

(Let alone SETL2 where "exists" triggers iteration behind the scene :-)



-- Georg



^ permalink raw reply	[flat|nested] 124+ messages in thread

* Re: Unified Ada library
  2004-04-16  0:12                             ` Jeffrey Carter
@ 2004-04-16  3:41                               ` Georg Bauhaus
  2004-04-17  0:10                                 ` Jeffrey Carter
  0 siblings, 1 reply; 124+ messages in thread
From: Georg Bauhaus @ 2004-04-16  3:41 UTC (permalink / raw)


Jeffrey Carter <spam@spam.com> wrote:
: Georg Bauhaus wrote:
: 
:> Thanks, that makes me think again. I'm still trying to find
:> a way to have a constructor subprogram with arguments that
:> must be run for proper initialisation. Is there a way this
:> can be forced without introducing indefiniteness?
: 
: I'm not sure what you mean. Can you provide an example?


One real life problem asks me to make constant links between existing
items, and to make a collection of such links.  The items are read
at run time, and the links will be of varying kinds. So
I started with something like

      type Link(<>) is tagged limited private;

      function make(source, destination: access Node) return Link;

The private full view of Link has the same parenthesis as make,
i.e. access discriminants.
So far so good, but Link is now both indefinite and limited,
the make function is useless (before Ada 200Y?), although by
intention it is required.

The next best thing I could think of was to simply make

      type Link is tagged private;

      function make ...;

and use access constant Node pointers as components + programmer
discipline.

(I have also tried to turn Link into an ML style generic constructor
procedure,
   type Link is access procedure ...;
but the 'access values to procedure instances would refer to
subprograms at a deeper level than the access type "Link".)

I have a vague idea that another option is to use a Link subprogram,
and store linking information in the Nodes or in a backing structure.
(Something similar is done anyway, in a graphs section.) 
Since the links will be used with an algorithm that assumes linked pairs,
this will require an interface adapting the Node data. Maybe...

And last, I'm playing with moving the polymorphism of the links
to a generic formal.  Link will then be non-tagged and will have a
component of the generic formal type. Or maybe its 'class. Phew.

   generic
      type Arc is new Edge with private;
   package Links is

     type Link(source, destination: Node_Ptr := null) is private;
     -- or type Link(<>) is private;  if containers permit indefinite types

     function make ...;
     function connection(lnk: Link) return Arc;

   private
     type Link(source, destination: Node_Ptr := null) is
       record
          connection: Arc;
       end record;

   end Links;



-- Georg



^ permalink raw reply	[flat|nested] 124+ messages in thread

* Re: Unified Ada library
  2004-04-15 18:01                 ` Georg Bauhaus
@ 2004-04-16  6:46                   ` Martin Krischik
  2004-04-17 15:01                     ` Matthew Heaney
  0 siblings, 1 reply; 124+ messages in thread
From: Martin Krischik @ 2004-04-16  6:46 UTC (permalink / raw)


Georg Bauhaus wrote:

> Martin Krischik <krischik@users.sourceforge.net> wrote:
>  
> : But advanced Ada features like
> : storrage pools aren't there.
> 
> Hm. Do you need storage management for your own data
> or do you wish to specify a pool for the components' "infrastructure"?
> In the first case you are in command...

For a while I used a garbage collector for which I needed to specify
storrage pools.

However, I have extendeded the booch components to provide support for
indefinite objects - which is far more helpfull.

> : "Ada.Components"
> : are to limited to replace the more advanced component libraries.
> 
> Does it render them useless?

No of course not. For many basic features they are quite OK. And they have
support for indefinite objects ;-).

With Regards

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




^ permalink raw reply	[flat|nested] 124+ messages in thread

* Re: Unified Ada library
  2004-04-15  0:40               ` Randy Brukardt
  2004-04-15  8:40                 ` Martin Krischik
  2004-04-15 16:26                 ` Warren W. Gay VE3WWG
@ 2004-04-16 15:51                 ` Jano
  2004-04-16 22:08                   ` Matthew Heaney
  2004-04-17  0:43                 ` Björn Persson
  3 siblings, 1 reply; 124+ messages in thread
From: Jano @ 2004-04-16 15:51 UTC (permalink / raw)


[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1: Type: text/plain, Size: 512 bytes --]

Randy Brukardt dice...
> "Bj�rn Persson" <spam-away@nowhere.nil> wrote in message
> news:1ckfc.56157$mU6.232357@newsb.telia.net...
> 
> > I'll join you soon, but I think I'd better translate comments and
> > identifiers to English first. And I see AdaCL uses the Booch components,
> > so I should probably switch from Charles to Booch.
> 
> If you're going to switch container libraries, I'd strongly suggest
> considering using Ada.Containers, the proposed container library for Ada
> 200Y. 

Link, please?



^ permalink raw reply	[flat|nested] 124+ messages in thread

* Re: Unified Ada library
  2004-04-16  0:22                           ` Jeffrey Carter
  2004-04-16  1:15                             ` Randy Brukardt
@ 2004-04-16 16:58                             ` Matthew Heaney
  2004-04-17  0:05                               ` Jeffrey Carter
  2004-04-17 21:17                             ` Craig Carey
  2 siblings, 1 reply; 124+ messages in thread
From: Matthew Heaney @ 2004-04-16 16:58 UTC (permalink / raw)


Jeffrey Carter <spam@spam.com> wrote in message news:<eHFfc.12113$A_4.4564@newsread1.news.pas.earthlink.net>...
> 
> I'm in the Phoenix area. I wish I'd known. Unlike Heaney, I can't afford 
> to fly all over the world promoting my view of Ada. Are these things 
> open to the public?

I wish I were as rich as Jeff thinks I am.  (Believe me, I'm not.)  I
flew to Phoenix at my own expense, because I felt it was important for
the author of the container proposal to be there to participate in the
discussion of AI-302.

If Pascal wants me there, I will do the same for the next ARG meeting
in Spain (I'll be at the Ada-Europe conference anyway, to present a
paper and a tutorial), and for the meeting after that in Wisconsin.

My attendance at the ARG meeting in Phoenix had nothing to do with
"promoting my view of Ada."  I have much better things to do with my
time and money than that.


> Regarding the minutes, I mostly like what I see (other than the horrible 
> error of not calling it Unbounded_Array). I have a nit: The minutes say, 
> "Pascal wonders if 'and' and 'or' would be better for Union and 
> Intersection." This implies that Union is equivalent to "and" and 
> Intersection to "or"; actually it's the other way around.

I just checked the AI-302 reference implementation: "and" is a
renaming of Intersectiona and "or" is a renaming of Union.

But you don't have to take my word for it.  Just browse the latest
snapshot of the source yourself:

<http://charles.tigris.org/source/browse/charles/src/ai302/>


> It's because even experienced people such as Pascal get these wrong that 
> I think even a simple bit-mapped set should include such operations, 
> rather than relying on the user creating arrays of Boolean and applying 
> Boolean operations on them directly.

There are no bit-mapped sets in AI-302.  Elements are ordered
according to a less-than relation.  You can browse to source (see the
link above) to see how set interestion, union, etc, are implemented.

Regards,
Matt



^ permalink raw reply	[flat|nested] 124+ messages in thread

* Re: Unified Ada library
  2004-04-15 16:26                 ` Warren W. Gay VE3WWG
  2004-04-15 17:26                   ` Georg Bauhaus
@ 2004-04-16 17:01                   ` Matthew Heaney
  2004-04-16 19:56                     ` Warren W. Gay VE3WWG
  1 sibling, 1 reply; 124+ messages in thread
From: Matthew Heaney @ 2004-04-16 17:01 UTC (permalink / raw)


"Warren W. Gay VE3WWG" <warren@ve3wwg.tk> wrote in message news:<jJyfc.22340$2Z6.944587@news20.bellglobal.com>...
> 
> It is a good effort, and I think everyone welcomes that support in the
> standard. However, it is still lacking some commonly needed components
> like Trees. I don't remember if Charles has them, but the BC smart pointers
> are handy as well.

Neither Charles nor AI-302 has "trees" specifically.  Rather, we took
a more high-level approach and used a tree to implement the ordered
set.

Please peruse the source of the ordered set, and let me know what you
can do with a tree that you can't do with an ordered set.

<http://charles.tigris.org/source/browse/charles/src/ai302/>

Regards,
Matt



^ permalink raw reply	[flat|nested] 124+ messages in thread

* Re: Unified Ada library
  2004-04-16  2:17                           ` Georg Bauhaus
@ 2004-04-16 18:18                             ` Randy Brukardt
  2004-04-17 11:06                               ` Georg Bauhaus
  2004-04-17 14:38                             ` Matthew Heaney
  1 sibling, 1 reply; 124+ messages in thread
From: Randy Brukardt @ 2004-04-16 18:18 UTC (permalink / raw)


"Georg Bauhaus" <sb463ba@l1-hrz.uni-duisburg.de> wrote in message
news:c5nfmv$hf4$1@a1-hrz.uni-duisburg.de...
> Randy Brukardt <randy@rrsoftware.com> wrote:
> :
> : Matt, Tucker, and I are working on a new draft with all of the changes
> : included; hopefully that will be done this week. (You can see the
discussion
> : in the ARG minutes; the draft for the Phoenix meeting is up on the web
> : site.)
>
> Reading the discussion I have become curious about the extent that
> the power of STL-iterators/cursors is appreciated? (Please excuse
> the bold statement.) That is, the technique of generic algorithms,
> adaptors, ...
>
> If typical cursor use is supposed to be "Exists(Position)" in a loop
> iteration scheme, it is an interesting view but shouldn't "Exists"
> be a prime example of a function that can be flexibly defined in terms
> of Cursors/Iterators? Something Like

I have no idea of what you're talking about here, because Exists() is
supposed to be a function of a cursor. So claiming that somehow there is
difference between Exists() and cursors makes no sense.

The reason for replacing Null_Cursor with Exists() is simply that there is a
desire that there is not necessarily a single null value for cursors.

In any case, there are technical problems with this change that is holding
up the completion of the new draft of AI-302. Just because the ARG asked for
something during a discussion doesn't mean that it is actually possible to
do.

                       Randy.






^ permalink raw reply	[flat|nested] 124+ messages in thread

* Re: Unified Ada library
  2004-04-15 17:26                   ` Georg Bauhaus
@ 2004-04-16 19:53                     ` Warren W. Gay VE3WWG
  0 siblings, 0 replies; 124+ messages in thread
From: Warren W. Gay VE3WWG @ 2004-04-16 19:53 UTC (permalink / raw)


Georg Bauhaus wrote:

> Warren W. Gay VE3WWG <warren@ve3wwg.tk> wrote:
>  
> 
> : However, it is still lacking some commonly needed components
> : like Trees.
> 
> What kind of trees do you need?
> For what operations?
> Some Charles components are _based_ on trees.

I need BC.Containers.Trees.Multiway trees ;-)

Being based upon trees, and exposing a tree based API
are different. The last time I looked, this functionality
is missing in Charles.

Why do I need it?  I needed to build and use a parse tree
with the help of ayacc. Multiway trees work great for
this sort of thing. No pointers required either, since
tree sharing is already builtin.

-- 
Warren W. Gay VE3WWG
http://ve3wwg.tk




^ permalink raw reply	[flat|nested] 124+ messages in thread

* Re: Unified Ada library
  2004-04-16 17:01                   ` Matthew Heaney
@ 2004-04-16 19:56                     ` Warren W. Gay VE3WWG
  2004-04-17 15:04                       ` Matthew Heaney
  0 siblings, 1 reply; 124+ messages in thread
From: Warren W. Gay VE3WWG @ 2004-04-16 19:56 UTC (permalink / raw)


Matthew Heaney wrote:

> "Warren W. Gay VE3WWG" <warren@ve3wwg.tk> wrote in message news:<jJyfc.22340$2Z6.944587@news20.bellglobal.com>...
> 
>>It is a good effort, and I think everyone welcomes that support in the
>>standard. However, it is still lacking some commonly needed components
>>like Trees. I don't remember if Charles has them, but the BC smart pointers
>>are handy as well.
> 
> Neither Charles nor AI-302 has "trees" specifically.  Rather, we took
> a more high-level approach and used a tree to implement the ordered
> set.
> 
> Please peruse the source of the ordered set, and let me know what you
> can do with a tree that you can't do with an ordered set.
> 
> <http://charles.tigris.org/source/browse/charles/src/ai302/>

Hi Matt:

I responded to this issue in a prior post today.
In short, I need "tree sharing" and a "tree API" to
work with a parse tree (one example). If you want to fully
understand why, use BC.Containers.Tree.Multiway, and think
about how you would use this with ayacc.
-- 
Warren W. Gay VE3WWG
http://ve3wwg.tk




^ permalink raw reply	[flat|nested] 124+ messages in thread

* Re: Unified Ada library
  2004-04-16 15:51                 ` Jano
@ 2004-04-16 22:08                   ` Matthew Heaney
  2004-04-18 20:44                     ` Jano
  0 siblings, 1 reply; 124+ messages in thread
From: Matthew Heaney @ 2004-04-16 22:08 UTC (permalink / raw)


Jano <nono@unizar.es> wrote in message news:<MPG.1aea1f788efb778c9896e6@news.able.es>...
> Randy Brukardt dice...
> > 
> > If you're going to switch container libraries, I'd strongly suggest
> > considering using Ada.Containers, the proposed container library for Ada
> > 200Y. 
> 
> Link, please?

<http://charles.tigris.org/source/browse/charles/src/ai302/>

-Matt



^ permalink raw reply	[flat|nested] 124+ messages in thread

* Re: Unified Ada library
  2004-04-16  1:15                             ` Randy Brukardt
@ 2004-04-16 23:33                               ` Jeffrey Carter
  2004-04-17  5:40                                 ` Randy Brukardt
  0 siblings, 1 reply; 124+ messages in thread
From: Jeffrey Carter @ 2004-04-16 23:33 UTC (permalink / raw)


Randy Brukardt wrote:

> "Jeffrey Carter" <spam@spam.com> wrote in message
> news:eHFfc.12113$A_4.4564@newsread1.news.pas.earthlink.net...
> ...
>>It's because even experienced people such as Pascal get these wrong that
>>I think even a simple bit-mapped set should include such operations,
>>rather than relying on the user creating arrays of Boolean and applying
>>Boolean operations on them directly.
> 
> 
> I suspect that it is more likely that the note taker (me) got it backwards
> writing it down. And no one caught it.

Well, then, it's because even experienced people such as Randy get these 
wrong ... :)

-- 
Jeff Carter
"Now go away or I shall taunt you a second time."
Monty Python & the Holy Grail
07




^ permalink raw reply	[flat|nested] 124+ messages in thread

* Re: Unified Ada library
  2004-04-16 16:58                             ` Matthew Heaney
@ 2004-04-17  0:05                               ` Jeffrey Carter
  0 siblings, 0 replies; 124+ messages in thread
From: Jeffrey Carter @ 2004-04-17  0:05 UTC (permalink / raw)


Matthew Heaney wrote:

> I wish I were as rich as Jeff thinks I am.  (Believe me, I'm not.)  I
> flew to Phoenix at my own expense, because I felt it was important for
> the author of the container proposal to be there to participate in the
> discussion of AI-302.
> 
> If Pascal wants me there, I will do the same for the next ARG meeting
> in Spain (I'll be at the Ada-Europe conference anyway, to present a
> paper and a tutorial), and for the meeting after that in Wisconsin.

I didn't say Matt was rich, merely that he could afford to fly to places 
around the world. Given his statements that he could afford to fly to 
Phoenix, Europe, and Wisconsin this year, and the fact that he attended 
Ada-Europe as a presenter last year, I think that is an accurate 
statement. I haven't been able to afford to attend a conference for a 
long time.

-- 
Jeff Carter
"Now go away or I shall taunt you a second time."
Monty Python & the Holy Grail
07




^ permalink raw reply	[flat|nested] 124+ messages in thread

* Re: Unified Ada library
  2004-04-16  3:41                               ` Georg Bauhaus
@ 2004-04-17  0:10                                 ` Jeffrey Carter
  2004-04-17 10:46                                   ` Georg Bauhaus
  0 siblings, 1 reply; 124+ messages in thread
From: Jeffrey Carter @ 2004-04-17  0:10 UTC (permalink / raw)


Georg Bauhaus wrote:

> One real life problem asks me to make constant links between existing
> items, and to make a collection of such links.  The items are read
> at run time, and the links will be of varying kinds. So
> I started with something like
> 
>       type Link(<>) is tagged limited private;
> 
>       function make(source, destination: access Node) return Link;
> 
> The private full view of Link has the same parenthesis as make,
> i.e. access discriminants.
> So far so good, but Link is now both indefinite and limited,
> the make function is useless (before Ada 200Y?), although by
> intention it is required.

I guess I'm kind of thick. I don't understand why you think Link needs 
to be indefinite, nor why you want it tagged.

> The next best thing I could think of was to simply make
> 
>       type Link is tagged private;
> 
>       function make ...;
> 
> and use access constant Node pointers as components + programmer
> discipline.

Why is programmer discipline needed? The client does not have access to 
the components, and you don't seem to have a problem with multiple 
references if the client copies values of Link, since these contain 
pointers to existing items (assuming I understand that phrase correctly).

-- 
Jeff Carter
"Now go away or I shall taunt you a second time."
Monty Python & the Holy Grail
07




^ permalink raw reply	[flat|nested] 124+ messages in thread

* Re: Unified Ada library
  2004-04-15  0:40               ` Randy Brukardt
                                   ` (2 preceding siblings ...)
  2004-04-16 15:51                 ` Jano
@ 2004-04-17  0:43                 ` Björn Persson
  2004-04-17 15:09                   ` Matthew Heaney
  3 siblings, 1 reply; 124+ messages in thread
From: Björn Persson @ 2004-04-17  0:43 UTC (permalink / raw)


Randy Brukardt wrote:

> If you're going to switch container libraries, I'd strongly suggest
> considering using Ada.Containers, the proposed container library for Ada
> 200Y.

I had forgotten about that. Yes, if Ada.Containers becomes standard I 
should probably use that, but not until it has stabilized I think. I'm 
not experienced enough to say what is good or flawed design anyway, so I 
couldn't provide any feedback about the design of Ada.Containers. So 
since I expect Ada.Containers to be more similar to Charles than to 
Booch I think I'll stick to Charles for now.

Actually, I need a kind of ordered many-to-one mapping. I need to map 
several keys to the same value (the same object, not identical values), 
and iterate over the values (not the keys) in the same order that they 
were added in. I guess that's too specialized for Ada.Containers. I 
didn't find that in Booch either, so right now I have my own ad-hoc 
solution for that, built around a dynamic vector from Charles.

-- 
Björn Persson

jor ers @sv ge.
b n_p son eri nu




^ permalink raw reply	[flat|nested] 124+ messages in thread

* Re: Unified Ada library
  2004-04-16 23:33                               ` Jeffrey Carter
@ 2004-04-17  5:40                                 ` Randy Brukardt
  0 siblings, 0 replies; 124+ messages in thread
From: Randy Brukardt @ 2004-04-17  5:40 UTC (permalink / raw)


"Jeffrey Carter" <spam@spam.com> wrote in message
news:D3_fc.13460$k05.5988@newsread2.news.pas.earthlink.net...
> Randy Brukardt wrote:
>
> > "Jeffrey Carter" <spam@spam.com> wrote in message
> > news:eHFfc.12113$A_4.4564@newsread1.news.pas.earthlink.net...
> > ...
> >>It's because even experienced people such as Pascal get these wrong that
> >>I think even a simple bit-mapped set should include such operations,
> >>rather than relying on the user creating arrays of Boolean and applying
> >>Boolean operations on them directly.
> >
> >
> > I suspect that it is more likely that the note taker (me) got it
backwards
> > writing it down. And no one caught it.
>
> Well, then, it's because even experienced people such as Randy get these
> wrong ... :)

It's quite a trick to take 35 pages of notes and participate in discussions
at the same time. I find that I've frequently written down nonsense because
of two trains of thought crossing. The real job of making the minutes is to
decode the nonsense. But I don't always recognize nonsense when I re-read
it...

                     Randy.






^ permalink raw reply	[flat|nested] 124+ messages in thread

* Re: Unified Ada library
  2004-04-14 23:55             ` Björn Persson
  2004-04-15  0:40               ` Randy Brukardt
  2004-04-15  8:23               ` Martin Krischik
@ 2004-04-17  8:37               ` Simon Wright
  2 siblings, 0 replies; 124+ messages in thread
From: Simon Wright @ 2004-04-17  8:37 UTC (permalink / raw)


Bjï¿œrn Persson <spam-away@nowhere.nil> writes:

> I'll join you soon, but I think I'd better translate comments and
> identifiers to English first. And I see AdaCL uses the Booch
> components, so I should probably switch from Charles to Booch.

I think, as Randy said, that a new project should definitely start
with Ada.Containers (that is right, someone mentioned
Ada.Components? I see the source is AI302.Containers).

Ada.Containers is not expected to solve every problem; for example,
they don't include any locking, for essentially the same reason as
locking was removed from the BCs: there's no way to provide other than
the most simple features, because the requirements are so variable.

My current work project has a lot of investment in some of the BCs,
and really needs the Bounded versions and the control over storage
pools. Aside from that, it would be hard to change container library
because of the investment in code that uses library features (allowing
this was a mistake, with hindsight).

Other people might find SAL, or the BC extensions in AdaCL, just what
they need.

If you can find a ready-made library that has the exact feature you
need, then go for it. But if you need to modify it to do what you
want, consider using Ada.Containers; if nothing else, it'll add to the
pool of experience.

Ada.Containers isn't extensible in the same way that the BCs are. But
if you look at for example BC.Containers.Collections.Ordered.Unmanaged,
you'll see that it was a lot of work to provide what you/I might have 
hoped  would be simple. The major reuse area in the BCs is in the 
lower-level implementation packages, BC.Support.Bounded for example,
and using Ada.Containers as the implementation technology for your
specific containers is a similar approach.

-- 
Simon Wright                               100% Ada, no bugs.



^ permalink raw reply	[flat|nested] 124+ messages in thread

* Re: Unified Ada library
  2004-04-17  0:10                                 ` Jeffrey Carter
@ 2004-04-17 10:46                                   ` Georg Bauhaus
  2004-04-17 23:23                                     ` Jeffrey Carter
  0 siblings, 1 reply; 124+ messages in thread
From: Georg Bauhaus @ 2004-04-17 10:46 UTC (permalink / raw)


Jeffrey Carter <spam@spam.com> wrote:
: Georg Bauhaus wrote:
: 
:> 
:>       type Link(<>) is tagged limited private;
:> 
:>       function make(source, destination: access Node) return Link;
: 
: I guess I'm kind of thick. I don't understand why you think Link needs 
: to be indefinite, nor why you want it tagged.

(Sorry for being unclear, I'm probably too deep into this to
have a clear view.)
My reason to choose an indefinite type in this case has been that
I wan't a construtor to initialise the components of Link
objects. Default values won't do because they are not known
until runtime. How to express this requirement so that the
compiler will check?

The type is tagged because I wanted objects to be polymorphic,
for example, plain links, weighted links, ...
Now as I write this, there are good old variant records...

:> The next best thing I could think of was to simply make
:> 
:>       type Link is tagged private;
:> 
:>       function make ...;
:> 
:> and use access constant Node pointers as components + programmer
:> discipline.
: 
: Why is programmer discipline needed?

The programmer (me in this case, but who knows) can create objects
of type Link without calling make for initialisation, but make
is a must for proper initialisation.



thanks,
-- Georg



^ permalink raw reply	[flat|nested] 124+ messages in thread

* Re: Unified Ada library
  2004-04-16 18:18                             ` Randy Brukardt
@ 2004-04-17 11:06                               ` Georg Bauhaus
  2004-04-17 14:57                                 ` Matthew Heaney
  0 siblings, 1 reply; 124+ messages in thread
From: Georg Bauhaus @ 2004-04-17 11:06 UTC (permalink / raw)


Randy Brukardt <randy@rrsoftware.com> wrote:
: I have no idea of what you're talking about here, because Exists() is
: supposed to be a function of a cursor. So claiming that somehow there is
: difference between Exists() and cursors makes no sense.
: 
: The reason for replacing Null_Cursor with Exists() is simply that there is a
: desire that there is not necessarily a single null value for cursors.

I was thinking of Cursors as the pointer-like things that they
are in AI302 (and STL), if my understanding is correct.
Say I have an algorithm operating on the elements of some data
structure using two or more cursors, like approaching some "middle"
element "pointed to" by some other cursor from "two sides".
Sort of
    p := find(s, v);
    while j < p and p < k loop
       ...
       j := compute_next(j);
       k := compute_next(k);
    end loop;

If I wanted to express the condition using Exists with the cursors
j and k respectively, woudn't the cursors j and k have to "know" that
they "exist until p"?
Therefore I was wondering whether this isn't a different approach
to Cursors/Iterators, namely Cursors in the sense of objects, rather
than in the sense of pointers.




^ permalink raw reply	[flat|nested] 124+ messages in thread

* Re: Unified Ada library
  2004-04-16  2:17                           ` Georg Bauhaus
  2004-04-16 18:18                             ` Randy Brukardt
@ 2004-04-17 14:38                             ` Matthew Heaney
  1 sibling, 0 replies; 124+ messages in thread
From: Matthew Heaney @ 2004-04-17 14:38 UTC (permalink / raw)


Georg Bauhaus <sb463ba@l1-hrz.uni-duisburg.de> writes:

> Reading the discussion I have become curious about the extent that
> the power of STL-iterators/cursors is appreciated? (Please excuse
> the bold statement.) That is, the technique of generic algorithms,
> adaptors, ...

We didn't get into the generic algorithms, because it was outside of the
scope of the AI.  Charles has some generic algorithms (I still have some
work to do there), but I didn't include them in my original proposal, in
order to keep its size small.  (My original proposal was 150 pgs. long,
even without generic algorithms.)


> If typical cursor use is supposed to be "Exists(Position)" in a loop
> iteration scheme, it is an interesting view but shouldn't "Exists"
> be a prime example of a function that can be flexibly defined in terms
> of Cursors/Iterators?

The predicate Exists is used to test whether you've fallen off the end:

    procedure Op (L : in List) is
       I : Cursor := First (L);
    begin
       while Exists (I) loop
         E := Element (I);
         Next (I);
       end loop;
    end;


Some of the semantics of cursor behavior still have to be clarified, but
you might be able to use a Charles-like algorithm like this:

   proceudre Op (L : in List) is
      I : Cursor := First (L);
      J : constant Cursor := Next (Last (L));
   begin
      Algorithm (I, J);
   end;

However, it's still not clear whether the expression Next (Last (L)) is
even defined for an empty list.  (I think it should be, but it's up the
ARG to decide.)

I don't much like the Exists function.  I was hoping we could compromise
by defining a deferred constant called Null_Cursor, and defining Next
(Last (Container)) to return the value Null_Cursor.  But I lost that
battle and Null_Cursor is gone.  Oh, well.


-Matt



^ permalink raw reply	[flat|nested] 124+ messages in thread

* Re: Unified Ada library
  2004-04-17 11:06                               ` Georg Bauhaus
@ 2004-04-17 14:57                                 ` Matthew Heaney
  2004-04-17 22:09                                   ` Georg Bauhaus
  0 siblings, 1 reply; 124+ messages in thread
From: Matthew Heaney @ 2004-04-17 14:57 UTC (permalink / raw)


Georg Bauhaus <sb463ba@l1-hrz.uni-duisburg.de> writes:

> I was thinking of Cursors as the pointer-like things that they are in
> AI302 (and STL), if my understanding is correct.

I think a cursor should be a modeled explicitly as a pointer, but the
ARG wanted a more abstract approach.  However, you can probably do what
you're trying to do; see below.


> Say I have an algorithm operating on the elements of some data
> structure using two or more cursors, like approaching some "middle"
> element "pointed to" by some other cursor from "two sides".

That makes sense; it's how an algorithm to reverse a sequence would be
implemented, for example.


> Sort of
>     p := find(s, v);
>     while j < p and p < k loop
>        ...
>        j := compute_next(j);
>        k := compute_next(k);
>     end loop;

The only cursor for which "<" would make sense is for a random-access
container like a vector.  I wanted "<", "+", "-", etc operators for
vector cursors but that idea got vetoed.  In any event you'd have to
write the algorithm above like this:

   P := Find (List, E);
   J := First (List);
   K := Last (List);

   while J /= P and then K /= P loop
      ...
      Next (J);
      Previous (K);
   end;

(At least I think this is what you meant.)

I recommend you simply download the reference implementation (note that
it's going to get updated this weekend, to sync it up with the latest
draft AI), and then write some toy programs.

<http://charles.tigris.org/source/browse/charles/src/ai302/>



> If I wanted to express the condition using Exists with the cursors
> j and k respectively, woudn't the cursors j and k have to "know" that
> they "exist until p"?

The predicate function Exists just tells you whether you're pointing to
an element in the container.  I don't think Exists is appropriate for
your algorithm, since at every point you're pointing to an element in
the container.  (But I could be wrong -- I might have misinterpreted
your example.)


> Therefore I was wondering whether this isn't a different approach to
> Cursors/Iterators, namely Cursors in the sense of objects, rather than
> in the sense of pointers.

A cursor just carries around enough state to interrogate an element in
the container.

-Matt





^ permalink raw reply	[flat|nested] 124+ messages in thread

* Re: Unified Ada library
  2004-04-16  6:46                   ` Martin Krischik
@ 2004-04-17 15:01                     ` Matthew Heaney
  0 siblings, 0 replies; 124+ messages in thread
From: Matthew Heaney @ 2004-04-17 15:01 UTC (permalink / raw)


Martin Krischik <krischik@users.sourceforge.net> writes:

> However, I have extendeded the booch components to provide support for
> indefinite objects - which is far more helpfull.

I'll be adding support for indefinite element types to Charles at some
point (as soon as all the AI-302 activity dies down a bit), but in the
meantime the AI-302 reference implementation already has it.

<http://charles.tigris.org/source/browse/charles/src/ai302/>

Be aware that what's there now might be slightly out of date.  I still
need to update the reference implementation to match the latest draft
AI.

-Matt






^ permalink raw reply	[flat|nested] 124+ messages in thread

* Re: Unified Ada library
  2004-04-16 19:56                     ` Warren W. Gay VE3WWG
@ 2004-04-17 15:04                       ` Matthew Heaney
  2004-04-19 17:08                         ` Warren W. Gay VE3WWG
  0 siblings, 1 reply; 124+ messages in thread
From: Matthew Heaney @ 2004-04-17 15:04 UTC (permalink / raw)


"Warren W. Gay VE3WWG" <warren@ve3wwg.tk> writes:

> I responded to this issue in a prior post today.  In short, I need
> "tree sharing" and a "tree API" to work with a parse tree (one
> example). If you want to fully understand why, use
> BC.Containers.Tree.Multiway, and think about how you would use this
> with ayacc.

I see what you're getting at, but the current AI is very modest, and
therefore doesn't support recursive data structures.

The tree container is a good idea, though, and we should keep it in mind
for inclusion in a secondary standard.

-Matt



^ permalink raw reply	[flat|nested] 124+ messages in thread

* Re: Unified Ada library
  2004-04-17  0:43                 ` Björn Persson
@ 2004-04-17 15:09                   ` Matthew Heaney
  2004-04-17 18:06                     ` Ludovic Brenta
  2004-04-17 21:31                     ` Björn Persson
  0 siblings, 2 replies; 124+ messages in thread
From: Matthew Heaney @ 2004-04-17 15:09 UTC (permalink / raw)


Bj�rn Persson <spam-away@nowhere.nil> writes:

> Actually, I need a kind of ordered many-to-one mapping. I need to map
> several keys to the same value (the same object, not identical
> values), and iterate over the values (not the keys) in the same order
> that they were added in. I guess that's too specialized for
> Ada.Containers. I didn't find that in Booch either, so right now I
> have my own ad-hoc solution for that, built around a dynamic vector
> from Charles.

It sounds like you need a multimap, with an element that's a pointer to
the object shared among equal keys.

Charles has direct support for multimaps.  AI-302 does not.  To get a
multimap-like container from AI-302 components, you'll have to use a
(hashed) map with a vector or list as its element.

-Matt






^ permalink raw reply	[flat|nested] 124+ messages in thread

* Re: Unified Ada library
  2004-04-15 12:20                     ` Martin Krischik
  2004-04-15 17:30                       ` Georg Bauhaus
  2004-04-15 17:48                       ` Georg Bauhaus
@ 2004-04-17 17:47                       ` Matthew Heaney
  2004-04-18  7:03                         ` Martin Krischik
  2004-06-28 23:31                       ` Matthew Heaney
  3 siblings, 1 reply; 124+ messages in thread
From: Matthew Heaney @ 2004-04-17 17:47 UTC (permalink / raw)


Martin Krischik <krischik@users.sourceforge.net> writes:

> In the last version I saw the tag was hidden. So using inheritance for
> extension is closed.

That is indeed that case.  The containers do not support type extension.
(Note that the containers are tagged because that's the only way to get
controlledness.)

> The main component currently used are bounded queues and all Ada.Components
> I know of are unbounded. Yes you can use a Vector to create a Queue. And
> any unbouded type can be make bounded. However with an hidden tag its extra
> effort.

We added lists, which support queue-type functionality.

We are currently discussing whether deletion at the front end of a
vector should be O(1) (instead of just O(n) or O(log n)), which would
influence whether a vector could be used as a queue, too.

These are both unbounded forms, however, but that will still work for
your application, won't it?

The latest version of Charles has bounded lists (they aren't controlled
or tagged, either), so you could always use those if you really want a
bounded form.

Why do you need type extension?  


> I am there too shouting "indefinite elements" all the time.

We added indefinite forms to AI-302.  I'll add them to Charles as soon
as we finish the latest draft AI.

-Matt




^ permalink raw reply	[flat|nested] 124+ messages in thread

* Re: Unified Ada library
  2004-04-17 15:09                   ` Matthew Heaney
@ 2004-04-17 18:06                     ` Ludovic Brenta
  2004-04-18  3:02                       ` Matthew Heaney
  2004-04-17 21:31                     ` Björn Persson
  1 sibling, 1 reply; 124+ messages in thread
From: Ludovic Brenta @ 2004-04-17 18:06 UTC (permalink / raw)


Matthew Heaney writes:
> Charles has direct support for multimaps.  AI-302 does not.  To get
> a multimap-like container from AI-302 components, you'll have to use
> a (hashed) map with a vector or list as its element.

Matthew,  I must say I appreciate all the work you've done so far.

Do you anticipate that, in the long run, Charles will be split into
two parts, AI-302 and complementary containers and algorithms built on
top of AI-302?  Or that Charles will remain, essentially unchanged, as
an alternative to AI-302?

-- 
Ludovic Brenta.



^ permalink raw reply	[flat|nested] 124+ messages in thread

* Re: Unified Ada library
  2004-04-16  0:22                           ` Jeffrey Carter
  2004-04-16  1:15                             ` Randy Brukardt
  2004-04-16 16:58                             ` Matthew Heaney
@ 2004-04-17 21:17                             ` Craig Carey
  2 siblings, 0 replies; 124+ messages in thread
From: Craig Carey @ 2004-04-17 21:17 UTC (permalink / raw)


On Fri, 16 Apr 2004 00:22:34 GMT, Jeffrey Carter <spam@spam.com> wrote:

>Randy Brukardt wrote:
>
>> For what it's worth, you don't have to shout anymore. The ARG spent 6 hours
>> on containers in Phoenix, and one of the many decisions was to include the
>> indefinite versions of the containers. Indeed, pretty much everything that
>> was discussed on Ada-Comment was added (Lists, set operations, and more).
>> 
>> Matt, Tucker, and I are working on a new draft with all of the changes
>> included; hopefully that will be done this week. (You can see the discussion
>> in the ARG minutes; the draft for the Phoenix meeting is up on the web
>> site.)
>
>I'm in the Phoenix area. I wish I'd known. Unlike Heaney, I can't afford 
>to fly all over the world promoting my view of Ada. Are these things 
>open to the public?
>

No need to fly to a meeting?. It is could be unsafe to be obscure.

>Regarding the minutes, I mostly like what I see ...


So it seems that Mr Brukhardt suggests that ARG might let that
C++ data structures features into Ada 95.

I hope the Mr Taft and Mr Brukhardt get the ARG to stop putting time
into the consideration of all of the data structures packages and
instead there can be a website. I tried to argue to Mr M Heaney that
a very different package results if speed is an aim and ideology is
not allowed to be used. Ideology can lead to hint of an Algol 68
style where there is some fullness of cases.

Only 6 hours spent by the ARG. No problem since they could put an
unlimited amount of time into it and still pass something.

It is a plan to stabilize on something suboptimal that should not be
passed, easily forever. So maybe ACT would vote yes. That company
promoted to the Ada-Comment mailing list their GNAT.Sockets package.

Possibly a better alternative is a single zip file at some website
like http://www.adaic.org/ website.

If the aim was to bring C++ into Ada 95, there are basic syntax
features in Ada that are missing and that would hinder the porting
of C++ code to Ada 95.

How did Ada 95 get the super slow byte by byte theme that is in
its new "streams" features ?.

Suppose the reality for the ARG is like this: comp.lang.ada figures
it out early and withdraws and the ARG gets a small number of
comments. Maybe 4 packages might get mixed.

I can liken ARG's approving of C++-isms with how the chess scene.
There seems to be much over 100 chess programs and the Arena program
allows the quality of chess programs to be compared.

Arena:  http://www.playwitharena.com/   Just about all are losers

Currently  C++ programmers can fault Ada for
failing to resolve the overloading of package names, with the names
of subtypes inside the package. I.e., porting C++ classes to Ada
could do with improving. A check is needed to estimate if Ada is
getting C++-ised or whether the concrete-us-first bugs is becoming
an issue with the community's leaders.

With Mr Taft there, and GNAT's stance on getting stabilized over
backwards compatible designs, I lack confidence that ARG will do
nothing in this which seems that safest course and lacking any
associated problem.

It seems that the whole matter can be resolved without even reading
most of the documents. Perhaps Mr Heaney's much checked code
real-Ada code (to the casual eye) could be online at adaworld.com
instead of getting approved.

This comment is rough and I was not reading the e-mails at the
Ada-Comment mailing list. 

I am not against Mr Heany's code any more than inferior code.
Possibly this e-mail gets missed.



--  Craig carey



^ permalink raw reply	[flat|nested] 124+ messages in thread

* Re: Unified Ada library
  2004-04-17 15:09                   ` Matthew Heaney
  2004-04-17 18:06                     ` Ludovic Brenta
@ 2004-04-17 21:31                     ` Björn Persson
  2004-04-18  3:33                       ` Matthew Heaney
  1 sibling, 1 reply; 124+ messages in thread
From: Björn Persson @ 2004-04-17 21:31 UTC (permalink / raw)


Matthew Heaney wrote:

> Björn Persson <spam-away@nowhere.nil> writes:
> 
> 
>>Actually, I need a kind of ordered many-to-one mapping. I need to map
>>several keys to the same value (the same object, not identical
>>values), and iterate over the values (not the keys) in the same order
>>that they were added in. I guess that's too specialized for
>>Ada.Containers. I didn't find that in Booch either, so right now I
>>have my own ad-hoc solution for that, built around a dynamic vector
>>from Charles.
> 
> 
> It sounds like you need a multimap, with an element that's a pointer to
> the object shared among equal keys.

I got the impression that a multimap is multi because it allows multiple 
identical keys with different values (or put another way, one key may be 
mapped to several elements). That's not what I need.

Reading charles-multimaps-sorted-unbounded.adb I don't see a way to add 
a new key and connect it to an element that is already in the container.

-- 
Björn Persson

jor ers @sv ge.
b n_p son eri nu




^ permalink raw reply	[flat|nested] 124+ messages in thread

* Re: Unified Ada library
  2004-04-17 14:57                                 ` Matthew Heaney
@ 2004-04-17 22:09                                   ` Georg Bauhaus
  2004-04-18  4:11                                     ` Matthew Heaney
  0 siblings, 1 reply; 124+ messages in thread
From: Georg Bauhaus @ 2004-04-17 22:09 UTC (permalink / raw)


Matthew Heaney <matthewjheaney@earthlink.net> wrote:
 
: In any event you'd have to
: write the algorithm above like this:
: 
:   P := Find (List, E);
:   J := First (List);
:   K := Last (List);
: 
:   while J /= P and then K /= P loop
:      ...
:      Next (J);
:      Previous (K);
:   end;
: 
: (At least I think this is what you meant.)

Yes, thanks. And maybe the three cursors in the example shed some light 
on some other things from the minutes text that might be
related to each other, and led me to some speculations:

- "there are not many cursor objects in a program"
  vs.
- "Should we have set operations for Set?"

I think providing a fixed set of operations is more typical of
a Booch components approach rather than of a Charles components
approach, where the set operations would be generically
expressed using Set Iterators in e.g. generic union and intersection
algorithms? (AI302.Containers.Ordered_Sets uses instances of
Charles generic algorithms, AFAICS.)

If instead the containers provide the operations on their elements,
i.e. if the operations will not be provided by generic algorithms,
then the two quotes above fit together, in my head at least.


- "subranges are unlikely"

In an ordered data structure it is easy to find a range
of interesting items, to be passed to some algorithm.
For example, all persons named "Miller" from a telephone directory,
in order.
With the AI 302 dicussion in mind I think this is easily achieved with
either one of

1) one Cursor. It starts at the first occurence of "Miller"
   and ends at the last occurence of "Miller" (not Exists(it))

2) two Iterators. one pointing to the first Miller, the second
   pointing to the last (or beyond, as in Eiffel ITERATORs, and C++ STL)

If (1) is chosen, the Cursor object passed must carry and hide
the information that is made explicit in (2), right?

Another example is statistics. All persons with income <= 1_000,
with income between 1_001 and 2_000, and so on, for each calculate
some interesting numbers, collected from subject data in each group.
The calculations are the same for each group, the ranges are not,
the iterators are not, but both are frequently occuring.


My 2c,
Georg



^ permalink raw reply	[flat|nested] 124+ messages in thread

* Re: Unified Ada library
  2004-04-17 10:46                                   ` Georg Bauhaus
@ 2004-04-17 23:23                                     ` Jeffrey Carter
  2004-04-18 19:22                                       ` Georg Bauhaus
  0 siblings, 1 reply; 124+ messages in thread
From: Jeffrey Carter @ 2004-04-17 23:23 UTC (permalink / raw)


Georg Bauhaus wrote:
> My reason to choose an indefinite type in this case has been that
> I wan't a construtor to initialise the components of Link
> objects. Default values won't do because they are not known
> until runtime. How to express this requirement so that the
> compiler will check?

If I understand correctly, you want all objects of the type to be 
initialized when created using values not available until runtime. You 
think you need an indefinite type and a subprogram to do this, but it 
seems to me simply specifying the discriminants without defaults has the 
same effect. Consider:

package Discriminant_Test is
    type Link (D : access Integer) is tagged limited null record;

    V : Link;
end Discriminant_Test;

GNAT 3.15p reports an error with the declaration of V: "unconstrained 
subtype not allowed (need initialization)". So simply declaring

type Link (Source, Destination: access Node) is tagged limited private;

requires that the client provide the necessary initialization 
information when he declares an object of the type.

-- 
Jeff Carter
"All citizens will be required to change their underwear
every half hour. Underwear will be worn on the outside,
so we can check."
Bananas
29




^ permalink raw reply	[flat|nested] 124+ messages in thread

* Re: Unified Ada library
  2004-04-17 18:06                     ` Ludovic Brenta
@ 2004-04-18  3:02                       ` Matthew Heaney
  2004-04-18  3:08                         ` Hyman Rosen
  0 siblings, 1 reply; 124+ messages in thread
From: Matthew Heaney @ 2004-04-18  3:02 UTC (permalink / raw)


Ludovic Brenta <ludovic.brenta@insalien.org> writes:

> Matthew Heaney writes:
> > Charles has direct support for multimaps.  AI-302 does not.  To get
> > a multimap-like container from AI-302 components, you'll have to use
> > a (hashed) map with a vector or list as its element.
> 
> Matthew,  I must say I appreciate all the work you've done so far.

Thanks.  There's still a lot of work left to do, however.


> Do you anticipate that, in the long run, Charles will be split into
> two parts, AI-302 and complementary containers and algorithms built on
> top of AI-302?  Or that Charles will remain, essentially unchanged, as
> an alternative to AI-302?

Someone else was asking about that.  The answer is, I don't know yet.

There are two paths we could follow:

(1) Keep Charles as is (but add the rest of the algorithms, etc), and
    create a separate library a la the C++ boost library to test out
    AI-302 style containers for possible inclusion in a secondary Ada
    library standard.

(2) Morph Charles into something that's more in the style of AI-302.

Right now, I'm leaning towards (1).  The thing I like about Charles is
that it's a relatively pure port of the STL to Ada95.  There are C++
developers who think that the STL could only have been written in C++,
and Charles is my argument that that claim is false.

Most Ada developers who have a familiarity with the STL immediately
understand how Charles works, which supports my argument.

Both Charles and the AI-302 reference implementation are available at
the tigris page:

<http://charles.tigris.org/>

There's still a large chunk of Charles that's still at my Earthlink
homepage, and I'm currently working to move the rest of it over.  I want
to get that all taken care of prior to my Charles tutorial at Ada-Europe
in June.

-Matt




^ permalink raw reply	[flat|nested] 124+ messages in thread

* Re: Unified Ada library
  2004-04-18  3:02                       ` Matthew Heaney
@ 2004-04-18  3:08                         ` Hyman Rosen
  2004-04-18  4:19                           ` Matthew Heaney
  2004-04-18 21:58                           ` Georg Bauhaus
  0 siblings, 2 replies; 124+ messages in thread
From: Hyman Rosen @ 2004-04-18  3:08 UTC (permalink / raw)


Matthew Heaney wrote:
> Right now, I'm leaning towards (1).  The thing I like about Charles is
> that it's a relatively pure port of the STL to Ada95.  There are C++
> developers who think that the STL could only have been written in C++,
> and Charles is my argument that that claim is false.

Bravo. I hope you keep going with this. You will have to watch out for the
Ada people who hate and fear C++ and will seek to turn this library into
something that is more "like Ada" in their perception, and will thereby kill
it.



^ permalink raw reply	[flat|nested] 124+ messages in thread

* Re: Unified Ada library
  2004-04-17 21:31                     ` Björn Persson
@ 2004-04-18  3:33                       ` Matthew Heaney
  2004-04-19 15:23                         ` Björn Persson
  0 siblings, 1 reply; 124+ messages in thread
From: Matthew Heaney @ 2004-04-18  3:33 UTC (permalink / raw)


Bj�rn Persson <spam-away@nowhere.nil> writes:

> Matthew Heaney wrote:
> > It sounds like you need a multimap, with an element that's a pointer to
> > the object shared among equal keys.
> 
> I got the impression that a multimap is multi because it allows multiple
> identical keys with different values (or put another way, one key may be
> mapped to several elements). That's not what I need.

Yes, a multimap allows multiple key/element pairs to have identical key
values.


> Reading charles-multimaps-sorted-unbounded.adb I don't see a way to add
> a new key and connect it to an element that is already in the container.

The way to do that is to let the element type be a pointer:

  type Data_Type is ...;
  type Data_Access is access all Data_Type;

  function "<" (L, R : Data_Access) return Boolean is
  begin
    return L.all < R.all;
  end;

  package Data_Multimaps is
    new Charles.Multimaps.Sorted.Unbounded
     (Key_Type,
      Data_Access,  --NOTE: access type
      "<",
      "=");         --at your option

There are now a few ways you can go.  The first is to attempt to Find that key:

  M : Data_Multimaps.Container_Type;
  ...
  I : Data_Multimaps.Iterator_Type := Find (M, K);  

begin

  if I = Back (M) then -- not found
  
     Insert
       (Container => M,
        Key       => K,
        New_Item  => new Data'(...),
        Iterator  => I);

   else  -- already in map

     Insert
       (Container => M,
        Position  => I,  -- use hint
        Key       => K,
        New_Item  => Element (I),  -- share data
        Iterator  => I);  -- or whatever

   end if;

end;


If the key isn't already in the map, then we allocate a new data element
and perform an actual insertion.  If the key is in the map, then the
iterator returned by Find gives us the element value we want to share,
and so we insert a new key/element pair with that element value.

Note the I used the insert-with-hint form in the second branch.  This
turns the tree traversal into O(1) if the hint really turns out to be a
neighbor, which is the case here since Find returned a matching key.

However, you might have noticed that in the first branch, the insert
(sans hint) must essentially duplicate the work of Find, in order to
find the correct insertion position.  There is no need for this.

What we do is use Lower_Bound instead of Find.  Lower_Bound searches for
the smallest key not less than the key, which is just fancy way to say:

   Key <= Lower_Bound (M, Key)

The issue with Find is that it returns the Back sentinel if the search
fails, but there's nothing we can really do what that value.
Lower_Bound is better because it either returns the key if it's already
in the map, or its successor if it were in the map.  We can rewrite the
example above to use Lower_Bound instead of Find, like this:


  I : Data_Multimaps.Iterator_Type := Lower_Bound (M, K);  

begin

  if Is_Less_Key (K, I) then  -- did not match
  
     Insert
       (Container => M,
        Position  => I,  -- use hint
        Key       => K,
        New_Item  => new Data'(...),
        Iterator  => I);

   else  -- already in map

     Insert
       (Container => M,
        Position  => I,  -- use hint
        Key       => K,
        New_Item  => Element (I),  -- share data
        Iterator  => I);  -- or whatever

   end if;

end;


Now we can insert-with-hint in both branches.

If this does not meet your needs, let me know and we'll figure something
out.

Regards,
Matt





^ permalink raw reply	[flat|nested] 124+ messages in thread

* Re: Unified Ada library
  2004-04-17 22:09                                   ` Georg Bauhaus
@ 2004-04-18  4:11                                     ` Matthew Heaney
  2004-06-26  0:10                                       ` Matthew Heaney
  0 siblings, 1 reply; 124+ messages in thread
From: Matthew Heaney @ 2004-04-18  4:11 UTC (permalink / raw)


Georg Bauhaus <sb463ba@l1-hrz.uni-duisburg.de> writes:

> Yes, thanks. And maybe the three cursors in the example shed some
> light on some other things from the minutes text that might be related
> to each other, and led me to some speculations:
> 
> - "there are not many cursor objects in a program"
>   vs.
> - "Should we have set operations for Set?"

The operations Intersection, Union, Difference, and Symmetric_Difference
were added to the ordered set container.


> I think providing a fixed set of operations is more typical of
> a Booch components approach rather than of a Charles components
> approach, where the set operations would be generically
> expressed using Set Iterators in e.g. generic union and intersection
> algorithms? (AI302.Containers.Ordered_Sets uses instances of
> Charles generic algorithms, AFAICS.)

Yes, the reason they're not in the Charles sets is because you get that
functionality by instantiating the generic algorithms.

However, there was interest in having union, etc, for the ordered sets
in AI-302, so we added them to the ordered set container directly.

Yes, the AI-302 reference implementation uses the Charles algorithms to
implement those operations.


> If instead the containers provide the operations on their elements,
> i.e. if the operations will not be provided by generic algorithms,
> then the two quotes above fit together, in my head at least.

I don't think the quotes are related.  We added the operations to the
ordered set because they were desired, and because there was no generic
algorithm alternative.


> - "subranges are unlikely"
> 
> In an ordered data structure it is easy to find a range
> of interesting items, to be passed to some algorithm.
> For example, all persons named "Miller" from a telephone directory,
> in order.

There are no multi-map or multi-set containers in AI-302.  In this case,
you probably want a map, with a vector or list as the element.


> With the AI 302 dicussion in mind I think this is easily achieved with
> either one of
> 
> 1) one Cursor. It starts at the first occurence of "Miller"
>    and ends at the last occurence of "Miller" (not Exists(it))

There are no multimaps in AI-302.


> 2) two Iterators. one pointing to the first Miller, the second
>    pointing to the last (or beyond, as in Eiffel ITERATORs, and C++ STL)

If you had a multimap, that's how you'd do it.  In the case of Charles
(and STL), you'd use Lower_Bound and Upper_Bound to demarcate the range
of equal keys, and then iterate over that range.

But AI-302 doesn't have a multimap.


> If (1) is chosen, the Cursor object passed must carry and hide
> the information that is made explicit in (2), right?

In AI-302, you need to use a map, with a vector or list as the element.
You only need one cursor, to designate the key/element pair whose key is
"Miller".


> Another example is statistics. All persons with income <= 1_000, with
> income between 1_001 and 2_000, and so on, for each calculate some
> interesting numbers, collected from subject data in each group.  The
> calculations are the same for each group, the ranges are not, the
> iterators are not, but both are frequently occuring.

This would be a good use for the Lower_Bound and Upper_Bound operations
of a sorted set (Charles only).

Unfortunately, the ARG removed the Lower_Bound and Upper_Bound
operations from the ordered set in AI-302, so I'd have to think about
how to solve your problem.

-Matt





^ permalink raw reply	[flat|nested] 124+ messages in thread

* Re: Unified Ada library
  2004-04-18  3:08                         ` Hyman Rosen
@ 2004-04-18  4:19                           ` Matthew Heaney
  2004-04-27  0:21                             ` Craig Carey
  2004-04-18 21:58                           ` Georg Bauhaus
  1 sibling, 1 reply; 124+ messages in thread
From: Matthew Heaney @ 2004-04-18  4:19 UTC (permalink / raw)


Hyman Rosen <hyrosen@mail.com> writes:

> Matthew Heaney wrote:
> > Right now, I'm leaning towards (1).  The thing I like about Charles is
> > that it's a relatively pure port of the STL to Ada95.  There are C++
> > developers who think that the STL could only have been written in C++,
> > and Charles is my argument that that claim is false.
> 
> Bravo. I hope you keep going with this. You will have to watch out for
> the Ada people who hate and fear C++ and will seek to turn this
> library into something that is more "like Ada" in their perception,
> and will thereby kill it.


I like C++, and I like the STL.  I don't know what engenders such
vitriol against a language.

(I should take this opportunity to remind developers on this list the
C++ is not C.  C++ fixed many errors in C by adding better static type
checking, type-safe linkage, user-defined types, etc).

-Matt



^ permalink raw reply	[flat|nested] 124+ messages in thread

* Re: Unified Ada library
  2004-04-17 17:47                       ` Matthew Heaney
@ 2004-04-18  7:03                         ` Martin Krischik
  2004-04-18 20:12                           ` Georg Bauhaus
  0 siblings, 1 reply; 124+ messages in thread
From: Martin Krischik @ 2004-04-18  7:03 UTC (permalink / raw)


Matthew Heaney wrote:

> We are currently discussing whether deletion at the front end of a
> vector should be O(1) (instead of just O(n) or O(log n)), which would
> influence whether a vector could be used as a queue, too.

For a bounded queue this is not needed since a bounded queue could use the
ring approach. With that approach no elements a removed - only replaced.
 
> These are both unbounded forms, however, but that will still work for
> your application, won't it?

Again, with a ring approach this is not needed since the ai containers can
be preallocated. You just preallocate the vector to n elements are and then
round robin those elements to form the queue.

This is the way th booch components do it.

My main point still is: with an open tag this could be done more elegant.

> The latest version of Charles has bounded lists (they aren't controlled
> or tagged, either), so you could always use those if you really want a
> bounded form.
> 
> Why do you need type extension?

type Queue
is new 
   Vector
with record
   Size : Index_Type;
end record;

function Length (Container : Vector)
return Size_Type
renames Ada.Containers.Vectors.Length;

seems to me more natural (and shorter) then

package Vectors
is new Ada.Containers.Vectors (
    Index_Type => Index_Type ;
    Element_Type => Index_Type ;
    "=" => "=" )ᅵ; 

type Queue
is tagged record
   Data :  Vectors.Vector;
   Size : Index_Type;
end record;

function Length (Container : Queue)
return Size_Type;

pragma Inline (Lenght);

function Length (Container : Queue)
    return Size_Type
is
begin
    Ada.Containers.Vectors.Length (Queue.Data);
end Length;

With Regards

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




^ permalink raw reply	[flat|nested] 124+ messages in thread

* Re: Unified Ada library
  2004-04-17 23:23                                     ` Jeffrey Carter
@ 2004-04-18 19:22                                       ` Georg Bauhaus
  2004-04-19  3:33                                         ` Jeffrey Carter
  0 siblings, 1 reply; 124+ messages in thread
From: Georg Bauhaus @ 2004-04-18 19:22 UTC (permalink / raw)


Jeffrey Carter <spam@spam.com> wrote:
: GNAT 3.15p reports an error with the declaration of V: "unconstrained 
: subtype not allowed (need initialization)". So simply declaring
: 
: type Link (Source, Destination: access Node) is tagged limited private;
: 
: requires that the client provide the necessary initialization 
: information when he declares an object of the type.

Yes, that would work if there weren't requirements for the other
private record components that can't be fulfilled using defaults.
Like

   type Link (Source, Destination: access Node) is tagged limited
      record
         part: Some_Type := ???;   -- no reasonable default
      end record;

I think I'll have to live with the situation or try to find
some other mechanism.


Thanks,
Georg



^ permalink raw reply	[flat|nested] 124+ messages in thread

* Re: Unified Ada library
  2004-04-18  7:03                         ` Martin Krischik
@ 2004-04-18 20:12                           ` Georg Bauhaus
  2004-04-19  3:36                             ` Jeffrey Carter
  2004-04-19  7:38                             ` Martin Krischik
  0 siblings, 2 replies; 124+ messages in thread
From: Georg Bauhaus @ 2004-04-18 20:12 UTC (permalink / raw)


Martin Krischik <krischik@users.sourceforge.net> wrote:
: Matthew Heaney wrote:
 
:> Why do you need type extension?
: 
: type Queue
: is new 
:   Vector
: with record
:   Size : Index_Type;
: end record;

Though you would have to hide some Vector operations in order
to guarantee integrity of the queue (random access, Prepend, etc.)

I have had a need for a queue too, so I made the following, to
which I have added your Size component:

with AI302.Containers.Vectors;

generic
   type Element is private;

package Queues is

   type Queue(size: Natural) is private;

   procedure enqueue(q: in out Queue; e: Element);

   procedure dequeue(q: in out Queue; e: out Element);

   function is_empty(q: Queue) return Boolean;

private
   package Implementation is new AI302.Containers.Vectors
     (Index_Type => Natural, Element_Type => Element);


   type Queue(size: Natural) is new implementation.Vector;

end Queues;



-- Georg



^ permalink raw reply	[flat|nested] 124+ messages in thread

* Re: Unified Ada library
  2004-04-16 22:08                   ` Matthew Heaney
@ 2004-04-18 20:44                     ` Jano
  0 siblings, 0 replies; 124+ messages in thread
From: Jano @ 2004-04-18 20:44 UTC (permalink / raw)


Matthew Heaney dice...
> Jano <nono@unizar.es> wrote in message news:<MPG.1aea1f788efb778c9896e6@news.able.es>...
> > Randy Brukardt dice...
> > > 
> > > If you're going to switch container libraries, I'd strongly suggest
> > > considering using Ada.Containers, the proposed container library for Ada
> > > 200Y. 
> > 
> > Link, please?
> 
> <http://charles.tigris.org/source/browse/charles/src/ai302/>

Thanks!



^ permalink raw reply	[flat|nested] 124+ messages in thread

* Re: Unified Ada library
  2004-04-18  3:08                         ` Hyman Rosen
  2004-04-18  4:19                           ` Matthew Heaney
@ 2004-04-18 21:58                           ` Georg Bauhaus
  2004-04-19 14:30                             ` Hyman Rosen
  1 sibling, 1 reply; 124+ messages in thread
From: Georg Bauhaus @ 2004-04-18 21:58 UTC (permalink / raw)


Hyman Rosen <hyrosen@mail.com> wrote:
: Matthew Heaney wrote:
:> Right now, I'm leaning towards (1).  The thing I like about Charles is
:> that it's a relatively pure port of the STL to Ada95.  There are C++
:> developers who think that the STL could only have been written in C++,
:> and Charles is my argument that that claim is false.
: 
: Bravo. I hope you keep going with this. You will have to watch out for the
: Ada people who hate and fear C++ and will seek to turn this library into
: something that is more "like Ada" in their perception, and will thereby kill
: it.

Could you comment on the importance of iterators and generic
algorithms in the template libraries?


I just stumbled across this in Stroustrup's Language book (sections
16.2.1-3):

"The standard library containers and iterators (often called
the STL framework ..) can be understood as an approach to gain
the best of the two traditional models described previously [*].
That wasn't the way the STL was designed, though.  The STL was the
result of a single-minded search for uncompromisingly efficient
and generic algorithms.

"The aim of efficiency rules out hard-to-inline virtual functions
....  Therefore, we cannot present a standard interface to containers
or a standard iterator interface as an abstract class. Instead,
each kind of container supports a standard set of basic operations.
... Operations that cannot be efficiently implemented for all
containers are not included in the set of common operations.
 ... Each kind of container provides its own iterators that
support a standard set of iterator operations.

"The standard containers are not derived from a common base. Instead,
every container implements all of the standard container interface.
[dito for iterators].  No ... run-time type checking is involved.

 [*] Specialized Containers and Iterators, generics with type parameters
together with Iterator objects for the containers,
versus Based Containers, of a common base type, and with fat interfaces.




^ permalink raw reply	[flat|nested] 124+ messages in thread

* Re: Unified Ada library
  2004-04-18 19:22                                       ` Georg Bauhaus
@ 2004-04-19  3:33                                         ` Jeffrey Carter
  2004-04-20  2:00                                           ` Georg Bauhaus
  0 siblings, 1 reply; 124+ messages in thread
From: Jeffrey Carter @ 2004-04-19  3:33 UTC (permalink / raw)


Georg Bauhaus wrote:

> Yes, that would work if there weren't requirements for the other
> private record components that can't be fulfilled using defaults.
> Like
> 
>    type Link (Source, Destination: access Node) is tagged limited
>       record
>          part: Some_Type := ???;   -- no reasonable default
>       end record;

As I recall, your initialization function had the form

function Make (Source, Destination : access Node) return Link;

Where would these additional values come from in this form of the 
solution? Clearly there is some way to supply them. You can achieve the 
same effect with

type Link (...) is tagged limited record
    Part : Some_Type := Some_Function;
end record;

Some_Function can have the same access to the same state information at 
runtime that Make could have.

-- 
Jeff Carter
"Help! Help! I'm being repressed!"
Monty Python & the Holy Grail
67




^ permalink raw reply	[flat|nested] 124+ messages in thread

* Re: Unified Ada library
  2004-04-18 20:12                           ` Georg Bauhaus
@ 2004-04-19  3:36                             ` Jeffrey Carter
  2004-04-19  6:18                               ` Matthew Heaney
  2004-04-19  7:38                             ` Martin Krischik
  1 sibling, 1 reply; 124+ messages in thread
From: Jeffrey Carter @ 2004-04-19  3:36 UTC (permalink / raw)


Georg Bauhaus wrote:

> I have had a need for a queue too, so I made the following, to
> which I have added your Size component:

There are plenty of queues in the PragmAda Reusable Components, and 
they're likely to be more efficiently implemented than something based 
on the reference implementation of the Ada.Containers unbounded array 
component, Vector.

http://home.earthlink.net/~jrcarter010/pragmarc.htm

-- 
Jeff Carter
"Help! Help! I'm being repressed!"
Monty Python & the Holy Grail
67




^ permalink raw reply	[flat|nested] 124+ messages in thread

* Re: Unified Ada library
  2004-04-19  3:36                             ` Jeffrey Carter
@ 2004-04-19  6:18                               ` Matthew Heaney
  0 siblings, 0 replies; 124+ messages in thread
From: Matthew Heaney @ 2004-04-19  6:18 UTC (permalink / raw)


Jeffrey Carter <spam@spam.com> writes:

> There are plenty of queues in the PragmAda Reusable Components, and
> they're likely to be more efficiently implemented than something based
> on the reference implementation of the Ada.Containers unbounded array
> component, Vector.

Jeff is correct that the current version of the AI-302 vector isn't
intended for use as a queue -- that's what the list is for.

(We got rid of aliasing of vector components, so that will allow
deletion from the front of a vector to have O(1) time complexity.  But
that's not done yet, pending resolution of some technical issues in the
latest draft AI.)

-Matt



^ permalink raw reply	[flat|nested] 124+ messages in thread

* Re: Unified Ada library
  2004-04-18 20:12                           ` Georg Bauhaus
  2004-04-19  3:36                             ` Jeffrey Carter
@ 2004-04-19  7:38                             ` Martin Krischik
  1 sibling, 0 replies; 124+ messages in thread
From: Martin Krischik @ 2004-04-19  7:38 UTC (permalink / raw)


Georg Bauhaus wrote:

> Martin Krischik <krischik@users.sourceforge.net> wrote:
> : Matthew Heaney wrote:
>  
> :> Why do you need type extension?
> : 
> : type Queue
> : is new
> :   Vector
> : with record
> :   Size : Index_Type;
> : end record;

> Though you would have to hide some Vector operations in order
> to guarantee integrity of the queue (random access, Prepend, etc.)

Yes, and as a OOD I know it is not best example. The classic question - "a
queue is a vector" versus "a queue has vector" - is ticky to answer here.
 
> I have had a need for a queue too, so I made the following, to
> which I have added your Size component:

> with AI302.Containers.Vectors;
> 
> generic
>    type Element is private;
> 
> package Queues is

Shure, I would do the same if I wanted to use Ada.Containers. How about:

package Ada.Containers.Queues 

or looking over the fence to the C++ comunity:

package Boost.Containers.Queues

>    type Queue(size: Natural) is private;
> 
>    procedure enqueue(q: in out Queue; e: Element);
> 
>    procedure dequeue(q: in out Queue; e: out Element);
> 
>    function is_empty(q: Queue) return Boolean;

function Is_Full (q: Queue) return Boolean; 

> private
>    package Implementation is new AI302.Containers.Vectors
>      (Index_Type => Natural, Element_Type => Element);
> 
> 
>    type Queue(size: Natural) is new implementation.Vector;
> 
> end Queues;

With Regards

Martin

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




^ permalink raw reply	[flat|nested] 124+ messages in thread

* Re: Unified Ada library
  2004-04-18 21:58                           ` Georg Bauhaus
@ 2004-04-19 14:30                             ` Hyman Rosen
  2004-04-22 12:33                               ` Georg Bauhaus
  0 siblings, 1 reply; 124+ messages in thread
From: Hyman Rosen @ 2004-04-19 14:30 UTC (permalink / raw)


Georg Bauhaus wrote:
> Could you comment on the importance of iterators and generic
> algorithms in the template libraries?

You can write your algorithms for the most part as if you were
using pointers to iterate over arrays. Because no virtual
operations are involved, and because C++ compilers have been
taught that inlining template code is vital, the resulting
compiled code becomes very efficient. If the pointer-like code
attempts an operation that would be inefficent for some given
container (such as trying to subtract two iterators when they
refer to a linked list instead of an array), the code won't
compile because the operation isn't defined.

The idea was to have containers and algorithms that did not force
code to pay runtime abstraction penalties over use of plain arrays.
It was vital that code which used std::vector should be as efficient
as plain arrays for the things that plain arrays could do, otherwise
the community would have rejected the standard containers.

Not only that, having the algorithms look like array/pointer operations
allows them to be used on arrays as well as containers, since pointers
are iterators, and it comforts C programmers who can write code in the
style they are used to.



^ permalink raw reply	[flat|nested] 124+ messages in thread

* Re: Unified Ada library
  2004-04-18  3:33                       ` Matthew Heaney
@ 2004-04-19 15:23                         ` Björn Persson
  0 siblings, 0 replies; 124+ messages in thread
From: Björn Persson @ 2004-04-19 15:23 UTC (permalink / raw)


Matthew Heaney wrote:
[a tutorial about multimaps]

That was an interesting lesson, Matt. I like the insert-with-hint 
feature. Unfortunately you still haven't understood what I want to do.

Look at the example I posted (2004-04-09 23:14; message ID 
<gnEdc.89265$dP1.265199@newsc.telia.net>; the first post with only "Re: 
Unified Ada library" in the title).

The key type is an enumeration defined by the program that uses my 
package - the type Parameter in the example. Each key will occur in the 
map exactly once. The elements are records with all sorts of information 
about the parameters. To provide ease of use to the end user, parameters 
may have synonyms. "Check" and "v" might both be synonyms for "verify" 
for example. Boolean parameters may also have antonyms, like "no_milk" 
in the example. All synonyms and antonyms must be mapped to the same 
info record.

So far it looks like I could just use an array of pointers to info 
records: "Info : array(Parameter) of Info_Pointer". But then there's the 
help function. When "--help" is found on the command line, descriptions 
of all the parameters should be printed. I can't print the same 
description for each of the synonyms as if they were separate 
parameters. The description should be printed once with the synonyms 
listed. Therefore I need to iterate over the info records and visit each 
record only once.

Same thing with omitted parameters. When the whole command line has been 
read, I iterate over the info records and check for parameters that 
weren't found on the command line. If they're optional I assign default 
values; otherwise I print error messages. While it wouldn't hurt to 
assign a default value multiple times the error message should only be 
printed once.

I solved this by storing the info records in a vector and keeping an 
array of indices:

    subtype Info_Index is Positive
      range 1 .. Parameter'pos(Parameter'last) -
                 Parameter'pos(Parameter'first) + 1;
    package Info_Vectors is
      new Charles.Vectors.Unbounded(Info_Index, Parameter_Info);
    Info : aliased Info_Vectors.Container_Type;
    Info_Number : array(Parameter) of Info_Index;

So I have a solution, though maybe not the most elegant one. I just 
mentioned it because if I had found a library that provided a 
many-to-one map and used that I wouln't have wanted to throw that out 
and use only Ada.Containers.

-- 
Björn Persson

jor ers @sv ge.
b n_p son eri nu




^ permalink raw reply	[flat|nested] 124+ messages in thread

* Re: Unified Ada library
  2004-04-17 15:04                       ` Matthew Heaney
@ 2004-04-19 17:08                         ` Warren W. Gay VE3WWG
  0 siblings, 0 replies; 124+ messages in thread
From: Warren W. Gay VE3WWG @ 2004-04-19 17:08 UTC (permalink / raw)


Matthew Heaney wrote:
> "Warren W. Gay VE3WWG" <warren@ve3wwg.tk> writes:
>>I responded to this issue in a prior post today.  In short, I need
>>"tree sharing" and a "tree API" to work with a parse tree (one
>>example). If you want to fully understand why, use
>>BC.Containers.Tree.Multiway, and think about how you would use this
>>with ayacc.
> 
> I see what you're getting at, but the current AI is very modest, and
> therefore doesn't support recursive data structures.

That is understood: I wasn't trying to be critical.

> The tree container is a good idea, though, and we should keep it in mind
> for inclusion in a secondary standard.
> 
> -Matt

One other thing (if it is not too late), is to perhaps include
something like BC.Support.Smart_Pointers. This should be a fairly
trivial library addition code wise (though possibly not standards
wise). It would save people from having to (re)code this
themselves, every time it is needed. Just another $0.02 worth ;-)
-- 
Warren W. Gay VE3WWG
http://ve3wwg.tk




^ permalink raw reply	[flat|nested] 124+ messages in thread

* Re: Unified Ada library
  2004-04-19  3:33                                         ` Jeffrey Carter
@ 2004-04-20  2:00                                           ` Georg Bauhaus
  2004-04-20  9:26                                             ` Lutz Donnerhacke
  2004-04-20 15:33                                             ` Jeffrey Carter
  0 siblings, 2 replies; 124+ messages in thread
From: Georg Bauhaus @ 2004-04-20  2:00 UTC (permalink / raw)


Jeffrey Carter <spam@spam.com> wrote:
 
: type Link (...) is tagged limited record
:    Part : Some_Type := Some_Function;
: end record;
: 
: Some_Function can have the same access to the same state information at 
: runtime that Make could have.

(Lifting my forehead from the desk. "Some_Function" has removed
another prism from my glasses.) Thanks a lot, this brings me 
close to a very nice solution.


Georg



^ permalink raw reply	[flat|nested] 124+ messages in thread

* Re: Unified Ada library
  2004-04-20  2:00                                           ` Georg Bauhaus
@ 2004-04-20  9:26                                             ` Lutz Donnerhacke
  2004-04-20 15:03                                               ` Georg Bauhaus
  2004-04-20 15:33                                             ` Jeffrey Carter
  1 sibling, 1 reply; 124+ messages in thread
From: Lutz Donnerhacke @ 2004-04-20  9:26 UTC (permalink / raw)


* Georg Bauhaus wrote:
> Jeffrey Carter <spam@spam.com> wrote:
>: type Link (...) is tagged limited record
>:    Part : Some_Type := Some_Function;
>: end record;
>>
>> Some_Function can have the same access to the same state information at
>> runtime that Make could have.
>
> (Lifting my forehead from the desk. "Some_Function" has removed another
> prism from my glasses.) Thanks a lot, this brings me close to a very nice
> solution.

  task body xxx is
     y : Link(...);
  begin
     ...

results in TASKING_ERROR while elaboration a new task. Removing the
initializing part of the type works. (gcc version 3.3.2)

So be careful.



^ permalink raw reply	[flat|nested] 124+ messages in thread

* Re: Unified Ada library
  2004-04-20  9:26                                             ` Lutz Donnerhacke
@ 2004-04-20 15:03                                               ` Georg Bauhaus
  2004-04-20 15:29                                                 ` Jeffrey Carter
  0 siblings, 1 reply; 124+ messages in thread
From: Georg Bauhaus @ 2004-04-20 15:03 UTC (permalink / raw)


Lutz Donnerhacke <lutz@iks-jena.de> wrote:
: * Georg Bauhaus wrote:
:> Jeffrey Carter <spam@spam.com> wrote:
:>: type Link (...) is tagged limited record
:>:    Part : Some_Type := Some_Function;
:>: end record;

 
:  task body xxx is
:     y : Link(...);
:  begin
:     ...
 
: results in TASKING_ERROR while elaboration a new task. Removing the
: initializing part of the type works. (gcc version 3.3.2)

With some dummy code, this appears not to be the case with a more
recent GCC, and with ObjectAda 7.2.2. Is this just a property of
GCC 3.3.2 and/or some OS?



^ permalink raw reply	[flat|nested] 124+ messages in thread

* Re: Unified Ada library
  2004-04-20 15:03                                               ` Georg Bauhaus
@ 2004-04-20 15:29                                                 ` Jeffrey Carter
  0 siblings, 0 replies; 124+ messages in thread
From: Jeffrey Carter @ 2004-04-20 15:29 UTC (permalink / raw)


Georg Bauhaus wrote:

> Lutz Donnerhacke <lutz@iks-jena.de> wrote:
> : * Georg Bauhaus wrote:
> :> Jeffrey Carter <spam@spam.com> wrote:
> :>: type Link (...) is tagged limited record
> :>:    Part : Some_Type := Some_Function;
> :>: end record;
> 
>  
> :  task body xxx is
> :     y : Link(...);
> :  begin
> :     ...
>  
> : results in TASKING_ERROR while elaboration a new task. Removing the
> : initializing part of the type works. (gcc version 3.3.2)
> 
> With some dummy code, this appears not to be the case with a more
> recent GCC, and with ObjectAda 7.2.2. Is this just a property of
> GCC 3.3.2 and/or some OS?

This looks like a compiler error. Of course, if Some_Function is not 
task safe, such a declaration may produce unintended results.

-- 
Jeff Carter
"There's no messiah here. There's a mess all right, but no messiah."
Monty Python's Life of Brian
84




^ permalink raw reply	[flat|nested] 124+ messages in thread

* Re: Unified Ada library
  2004-04-20  2:00                                           ` Georg Bauhaus
  2004-04-20  9:26                                             ` Lutz Donnerhacke
@ 2004-04-20 15:33                                             ` Jeffrey Carter
  1 sibling, 0 replies; 124+ messages in thread
From: Jeffrey Carter @ 2004-04-20 15:33 UTC (permalink / raw)


Georg Bauhaus wrote:

> (Lifting my forehead from the desk. "Some_Function" has removed
> another prism from my glasses.) Thanks a lot, this brings me 
> close to a very nice solution.

It's called "Ada.Finalization" because Ada 83 already had perfectly good 
mechanisms for initialization.

-- 
Jeff Carter
"There's no messiah here. There's a mess all right, but no messiah."
Monty Python's Life of Brian
84




^ permalink raw reply	[flat|nested] 124+ messages in thread

* Re: Unified Ada library
  2004-04-19 14:30                             ` Hyman Rosen
@ 2004-04-22 12:33                               ` Georg Bauhaus
  2004-04-22 13:43                                 ` Dmitry A. Kazakov
  0 siblings, 1 reply; 124+ messages in thread
From: Georg Bauhaus @ 2004-04-22 12:33 UTC (permalink / raw)


Hyman Rosen <hyrosen@mail.com> wrote:
 
Thanks!

: You can write your algorithms for the most part as if you were
: using pointers to iterate over arrays.

Hm. Given Ada arrays, I'm wondering whether there should be
more general support for slicing, not just Splice for Lists.
Or whether sclices (for sorted containers?) should be handled by a

  procedure Generic_Replace_Slice(<curors...>).

Just a thought.



^ permalink raw reply	[flat|nested] 124+ messages in thread

* Re: Unified Ada library
  2004-04-22 12:33                               ` Georg Bauhaus
@ 2004-04-22 13:43                                 ` Dmitry A. Kazakov
  0 siblings, 0 replies; 124+ messages in thread
From: Dmitry A. Kazakov @ 2004-04-22 13:43 UTC (permalink / raw)


On Thu, 22 Apr 2004 12:33:35 +0000 (UTC), Georg Bauhaus
<sb463ba@l1-hrz.uni-duisburg.de> wrote:

>Hyman Rosen <hyrosen@mail.com> wrote:
> 
>: You can write your algorithms for the most part as if you were
>: using pointers to iterate over arrays.
>
>Hm. Given Ada arrays, I'm wondering whether there should be
>more general support for slicing, not just Splice for Lists.
>Or whether sclices (for sorted containers?) should be handled by a
>
>  procedure Generic_Replace_Slice(<curors...>).
>
>Just a thought.

If you have an index type (its value is a cursor), then sets of index
types are things which define slices (i.e. range) and submatrices
(dense or not) etc. One can made it as complex as one might wish.
Important for generic programming (in any form) to have an ability to
get the index type(s) of a container object.

As for Generic_Replace_Slice, if you have that sets of indices, then
you can built anonymous array subtypes upon them. So replace could
look as:

   A (<submartix>) := B;

Just a thought (:-))

--
Regards,
Dmitry Kazakov
www.dmitry-kazakov.de



^ permalink raw reply	[flat|nested] 124+ messages in thread

* Re: Unified Ada library
  2004-04-18  4:19                           ` Matthew Heaney
@ 2004-04-27  0:21                             ` Craig Carey
  2004-04-27  3:48                               ` Hyman Rosen
                                                 ` (2 more replies)
  0 siblings, 3 replies; 124+ messages in thread
From: Craig Carey @ 2004-04-27  0:21 UTC (permalink / raw)


On Sun, 18 Apr 2004 04:19:56 GMT, Matthew Heaney  wrote:
>Hyman Rosen <***n@mail.com> writes:
>> 
>> Bravo. I hope you keep going with this. You will have to watch out for

.                we/they

>> the Ada people who hate and fear C++ and will seek to turn this
>> library into something that is more "like Ada" in their perception,
>> and will thereby kill it.

If I got it right, the plan is to introduce "do it one by one" idealisms
and then as expected by at least the C++ folk, it just lacks the 
unpackageable complexity that would be appropriate.

Mr Heaney's (and Mr Carter's) code could go onto the Internet.

Even books can say that C++ copy (and along with perhaps over 40 other
competing packages from Eiffel and other languages with a following)
are now almost the authoritative version of that code that you would not
want to leave unmodified for more than avg. 0.5 weeks if actually used.

So apparently Ada 95 (Pascal (of IBM), etc.) is going to help beginners
get the 'ARG approved' Ada. Why doesn't the ARG mention them more
clearly?. C++ization and the rise of the changing Charles package is
not for experts.
 
Ada textbooks could be free, so having a purpose of officializing
the containerized readily unused clumpons that run slower and lack
debugging checks and tweaks, and are built over the idea of ignoring
the code's design, and doing things one by one, and then having the
code run too slow, is really something that even these unmentioned
students might not want to just have no opinion on.

Mr Rosen suggests that Mr Heaney should keep going.

Can someone identify a group of C++ programmers who articulately
and reasonably have a case for the bitsy-clumponizations of the
Ada Annotated Reference Manual ?. Are we missing their names too,
and also: in which year of this century, do the ARG's students
exist (the ones with a latent need for the fixes).

Is this about the 'prestige' of solidifying the Reference Manual.
I am against that.

...
>(I should take this opportunity to remind developers on this list the
>C++ is not C.  C++ fixed many errors in C by adding better static type
>checking, type-safe linkage, user-defined types, etc).
>
>-Matt






^ permalink raw reply	[flat|nested] 124+ messages in thread

* Re: Unified Ada library
  2004-04-27  0:21                             ` Craig Carey
@ 2004-04-27  3:48                               ` Hyman Rosen
  2004-04-27  7:39                               ` Georg Bauhaus
  2004-04-28  2:04                               ` Matthew Heaney
  2 siblings, 0 replies; 124+ messages in thread
From: Hyman Rosen @ 2004-04-27  3:48 UTC (permalink / raw)


Craig Carey wrote:
... < a rant that looks like it went through a Zippy the Pinhead processor > ...

You might want to control your righteous indignation just enough so that
your English is more coherent. (I charitably suppose that it's not your
native language.)

 From what I can make out of your statement, the reason we process aggregates
one-by-one is, just like the reason for Time given by Buckaroo Banzai, so that
everything doesn't happen at once.



^ permalink raw reply	[flat|nested] 124+ messages in thread

* Re: Unified Ada library
  2004-04-27  0:21                             ` Craig Carey
  2004-04-27  3:48                               ` Hyman Rosen
@ 2004-04-27  7:39                               ` Georg Bauhaus
  2004-04-28  2:04                               ` Matthew Heaney
  2 siblings, 0 replies; 124+ messages in thread
From: Georg Bauhaus @ 2004-04-27  7:39 UTC (permalink / raw)


Craig Carey <research@ijs.co.nz> wrote:
: 
: If I got it right, the plan is to introduce "do it one by one" idealisms
: and then as expected by at least the C++ folk, it just lacks the 
: unpackageable complexity that would be appropriate.

Barring generic algorithms?




^ permalink raw reply	[flat|nested] 124+ messages in thread

* Re: Unified Ada library
  2004-04-27  0:21                             ` Craig Carey
  2004-04-27  3:48                               ` Hyman Rosen
  2004-04-27  7:39                               ` Georg Bauhaus
@ 2004-04-28  2:04                               ` Matthew Heaney
  2004-04-28 20:35                                 ` Craig Carey
  2 siblings, 1 reply; 124+ messages in thread
From: Matthew Heaney @ 2004-04-28  2:04 UTC (permalink / raw)


Craig Carey <research@ijs.co.nz> writes:

> So apparently Ada 95 (Pascal (of IBM), etc.) is going to help
> beginners get the 'ARG approved' Ada. Why doesn't the ARG mention them
> more clearly?. C++ization and the rise of the changing Charles package
> is not for experts.

Work on next release of the AI-302 draft is progressing, and it should
be released sometime soon -- probably this week.

Once the draft of the AI has been released, I plan on synchronizing the
AI-302 reference implementation to the text of the AI, and on migrating
the remaining Charles packages from my home page to the tigris site.

-Matt



^ permalink raw reply	[flat|nested] 124+ messages in thread

* Re: Unified Ada library
  2004-04-28  2:04                               ` Matthew Heaney
@ 2004-04-28 20:35                                 ` Craig Carey
  0 siblings, 0 replies; 124+ messages in thread
From: Craig Carey @ 2004-04-28 20:35 UTC (permalink / raw)



Does Tigris allow Subversion to used with some success ?.
   http://charles.tigris.org/
Maybe Tigris could be used for other Ada 95 projects. Perhaps.
Do they provide use of Subversion to the Charles project ?.


On Wed, 28 Apr 2004 02:04:38 GMT, Matthew Heaney wrote:
...
>Work on next release of the AI-302 draft is progressing, and it should
>be released sometime soon -- probably this week.
>
>Once the draft of the AI has been released, I plan on synchronizing the
>AI-302 reference implementation to the text of the AI, and on migrating
>the remaining Charles packages from my home page to the tigris site.
>
>-Matt

I am now unclear on AI-302. Pehaps it could be OK for the RM. But it
should allow the hybrid algorithms speeding up the Ada containers
library, to be optimized.

Here is a sample article [referring to the 1994 C++ STL]. It shows that
a simple design can be slow. The Ada package spec ought allow the
tweaking parameters to be specified.

---
| B+ Retake: Sustaining High Volume Inserts into Large Data Pages (2001)
| Kurt Deschler, Elke A. Rundensteiner. International Workshop on Data Warehousing and OLAP
 ...
| To compare memory performance of the B+ and RB+ trees, we have
| implemented both structures in C++ using the Standard Template Library
| (STL) [ http://www.sgi.com/tech/stl/ ]. ... experiments prove that the
| RB+ tree can improve insert times by 3,000% when used with large data
| pages. //... [but there are] increased I/O costs ...

   http://citeseer.ist.psu.edu/deschler01retake.html

I'd prefer AI-302 to implement the most complex data structure (some
improved hybrid B-Tree algorithm) rather than anything as simple as the
linked list idea that apparently was being discussed.

---

AI-302:

| From: Robert A. Duff
| Sent: Monday, February 9, 2004  4:27 PM
|
| ... there are discussions going on in Ada-Comment, and also on arg.
| People are raising some of the same points on both.
| ... some key ARG members are not currently listening to Ada-Comment,
| and many Ada-Comment folks are not seeing the ARG mailing list.

 From:   http://www.ada-auth.org/cgi-bin/cvsweb.cgi/AIs/AI-30302.TXT

There is a lengthy report on the AI-302 discussions at Phoenix in 5-7 
March 2004, here:
   http://www.ada-auth.org/arg-minutes.html



- Craig Carey
function S(T : out L =: <>) is ...; --  Minor Issue # AC-00092
--  Default out mode parameters



^ permalink raw reply	[flat|nested] 124+ messages in thread

* Re: Unified Ada library
  2004-04-18  4:11                                     ` Matthew Heaney
@ 2004-06-26  0:10                                       ` Matthew Heaney
  2004-06-26 13:43                                         ` Georg Bauhaus
  2004-06-26 14:46                                         ` Matthew Heaney
  0 siblings, 2 replies; 124+ messages in thread
From: Matthew Heaney @ 2004-06-26  0:10 UTC (permalink / raw)


Matthew Heaney <matthewjheaney@earthlink.net> writes:

> Georg Bauhaus <sb463ba@l1-hrz.uni-duisburg.de> writes:
> 
> > Another example is statistics. All persons with income <= 1_000,
> > with income between 1_001 and 2_000, and so on, for each calculate
> > some interesting numbers, collected from subject data in each group.
> > The calculations are the same for each group, the ranges are not,
> > the iterators are not, but both are frequently occuring.
> 
> This would be a good use for the Lower_Bound and Upper_Bound
> operations of a sorted set (Charles only).
> 
> Unfortunately, the ARG removed the Lower_Bound and Upper_Bound
> operations from the ordered set in AI-302, so I'd have to think about
> how to solve your problem.

The functions Ceiling and Floor were officially added back to the
container library API during the ARG meeting Palma de Mallorca.

I have updated the reference implementation to include most of the
changes requested at the Palma meeting:

<http://charles.tigris.org/source/browse/charles/src/ai302/>

To implement the algorithm you describe above, you could do something
like this:

procedure Print_Statistics (S : in Integer_Sets.Set) is

   C, C2 : Cursor;
   I : Integer := 1000;

begin

   if Is_Empty (S) then
     Put_Line ("<empty>");
     return;
   end if;

   C := First (S);

   loop

      C2 := Ceiling (S, I);

      while C /= C2 loop
         Put (Element (C));
         New_Line;         
         Next (C);
      end loop;

      exit when not Has_Element (C2);

      New_Line;

      I := I + 1000;

   end loop;

end Print_Statistics;

This isn't exactly what you asked for, since the inner loop will exclude
the high value from the output of the current range.  To do exactly as
you specified you'd have to use Next (Floor (S, I)) instead of Ceil (but
I think you'd also have to handle some boundary conditions, which is why
I used the simpler algorithm above).

-Matt



^ permalink raw reply	[flat|nested] 124+ messages in thread

* Re: Unified Ada library
  2004-06-26  0:10                                       ` Matthew Heaney
@ 2004-06-26 13:43                                         ` Georg Bauhaus
  2004-06-26 14:46                                         ` Matthew Heaney
  1 sibling, 0 replies; 124+ messages in thread
From: Georg Bauhaus @ 2004-06-26 13:43 UTC (permalink / raw)


Matthew Heaney <matthewjheaney@earthlink.net> wrote:
 
: The functions Ceiling and Floor were officially added back to the
: container library API during the ARG meeting Palma de Mallorca.

Thanks for the update.
This adds some more support for generic algorithms. Great.
 
: This isn't exactly what you asked for, since the inner loop will exclude
: the high value from the output of the current range.  To do exactly as
: you specified you'd have to use Next (Floor (S, I)) instead of Ceil (but
: I think you'd also have to handle some boundary conditions, which is why
: I used the simpler algorithm above).

It's good enough :-)



^ permalink raw reply	[flat|nested] 124+ messages in thread

* Re: Unified Ada library
  2004-06-26  0:10                                       ` Matthew Heaney
  2004-06-26 13:43                                         ` Georg Bauhaus
@ 2004-06-26 14:46                                         ` Matthew Heaney
  2004-06-26 18:09                                           ` Georg Bauhaus
  2004-06-27 19:34                                           ` Marius Amado Alves
  1 sibling, 2 replies; 124+ messages in thread
From: Matthew Heaney @ 2004-06-26 14:46 UTC (permalink / raw)



"Matthew Heaney" <matthewjheaney@earthlink.net> wrote in message
news:uoen7t69b.fsf@earthlink.net...
> Matthew Heaney <matthewjheaney@earthlink.net> writes:
>
> The functions Ceiling and Floor were officially added back to the
> container library API during the ARG meeting Palma de Mallorca.
>
> I have updated the reference implementation to include most of the
> changes requested at the Palma meeting:
>
> <http://charles.tigris.org/source/browse/charles/src/ai302/>
>
> To implement the algorithm you describe above, you could do something
> like this:

See the new file test_ceiling.adb in the ai302 testdir:

<http://charles.tigris.org/source/browse/charles/src/ai302/testdir/>

I wrote a roof function to implement the exact algorithm you requested.  If
you uncomment the line that calls Ceiling (and comment the line that calls
Roof), then you can compare the behavior of each function.

-Matt







^ permalink raw reply	[flat|nested] 124+ messages in thread

* Re: Unified Ada library
  2004-06-26 14:46                                         ` Matthew Heaney
@ 2004-06-26 18:09                                           ` Georg Bauhaus
  2004-06-27  3:44                                             ` Matthew Heaney
  2004-06-27 11:48                                             ` Matthew Heaney
  2004-06-27 19:34                                           ` Marius Amado Alves
  1 sibling, 2 replies; 124+ messages in thread
From: Georg Bauhaus @ 2004-06-26 18:09 UTC (permalink / raw)


Matthew Heaney <mheaney@on2.com> wrote:
: <http://charles.tigris.org/source/browse/charles/src/ai302/testdir/>
: 
: I wrote a roof function to implement the exact algorithm you requested.  If
: you uncomment the line that calls Ceiling (and comment the line that calls
: Roof), then you can compare the behavior of each function.

Yes, this is it, thanks a lot.   BTW, is the API stabilising?
What do people think about the handy Insert procedure that does without
giving back the inserted element's Cursor and the success indicator?



^ permalink raw reply	[flat|nested] 124+ messages in thread

* Re: Unified Ada library
  2004-06-26 18:09                                           ` Georg Bauhaus
@ 2004-06-27  3:44                                             ` Matthew Heaney
  2004-06-27  5:24                                               ` Matthew Heaney
  2004-06-27 11:48                                             ` Matthew Heaney
  1 sibling, 1 reply; 124+ messages in thread
From: Matthew Heaney @ 2004-06-27  3:44 UTC (permalink / raw)


Georg Bauhaus <sb463ba@l1-hrz.uni-duisburg.de> writes:

> Matthew Heaney <mheaney@on2.com> wrote:
> : <http://charles.tigris.org/source/browse/charles/src/ai302/testdir/>
> : 
> : I wrote a roof function to implement the exact algorithm you requested.  If
> : you uncomment the line that calls Ceiling (and comment the line that calls
> : Roof), then you can compare the behavior of each function.
> 
> Yes, this is it, thanks a lot.   

You could also implement the roof function this way:

function Roof (S : Set; I : Integer) return Cursor is
   C : Cursor := Ceiling (S, I);
begin
   if Has_Element (C)
     and then Element (C) = I
   then
      return Next (C);
   end if;

   return C;
end Roof;

I think that should work.


> BTW, is the API stabilising?

Yes.  We added some stuff to the API, though, that will require an Ada95
compiler.  For example, all the generic operations are gone, and have
been replaced by non-generic operations that accept an anonymous
procedure pointer.  So instead of:

generic
   with procedure Process (C : in Cursor);
procedure Generic_Iteration (S : in Set);

we now have:

procedure Iteration (Container : in     Set;
                     Process   : access procedure (C : Cursor));

(I think that's the syntax.)


> What do people think about the handy Insert procedure that does
> without giving back the inserted element's Cursor and the success
> indicator?

I think it's a good idea, and I have to mention it to Randy.  It might
also make sense to have a Replace operation for sets, too.

-Matt



^ permalink raw reply	[flat|nested] 124+ messages in thread

* Re: Unified Ada library
  2004-06-27  3:44                                             ` Matthew Heaney
@ 2004-06-27  5:24                                               ` Matthew Heaney
  0 siblings, 0 replies; 124+ messages in thread
From: Matthew Heaney @ 2004-06-27  5:24 UTC (permalink / raw)


Matthew Heaney <matthewjheaney@earthlink.net> writes:

> Georg Bauhaus <sb463ba@l1-hrz.uni-duisburg.de> writes:
> 
> > BTW, is the API stabilising?
> 
> Yes.  We added some stuff to the API, though, that will require an Ada95
> compiler.  For example, all the generic operations are gone, and have
> been replaced by non-generic operations that accept an anonymous
> procedure pointer.  So instead of:
> 
> generic
>    with procedure Process (C : in Cursor);
> procedure Generic_Iteration (S : in Set);
> 
> we now have:
> 
> procedure Iteration (Container : in     Set;
>                      Process   : access procedure (C : Cursor));
> 
> (I think that's the syntax.)

I should also have mentioned that we made the partial view of the
container type tagged, which allows you to say:

procedure Op (S : Set) is
   procedure Process (C : Cursor) is ...;
begin
   S.Iterate (Process'Access);
end;




^ permalink raw reply	[flat|nested] 124+ messages in thread

* Re: Unified Ada library
  2004-06-26 18:09                                           ` Georg Bauhaus
  2004-06-27  3:44                                             ` Matthew Heaney
@ 2004-06-27 11:48                                             ` Matthew Heaney
  1 sibling, 0 replies; 124+ messages in thread
From: Matthew Heaney @ 2004-06-27 11:48 UTC (permalink / raw)


Georg Bauhaus <sb463ba@l1-hrz.uni-duisburg.de> writes:

> What do people think about the handy Insert procedure that does
> without giving back the inserted element's Cursor and the success
> indicator?

You should post a message about this on the ada-comment list, so that
the ARG is officially made aware of your feature request.

(One of the reasons we provided a reference implementation was so that
we could get feedback about the API.  I too have had a need for the same
operation as you requested.)

-Matt



^ permalink raw reply	[flat|nested] 124+ messages in thread

* Re: Unified Ada library
  2004-06-26 14:46                                         ` Matthew Heaney
  2004-06-26 18:09                                           ` Georg Bauhaus
@ 2004-06-27 19:34                                           ` Marius Amado Alves
  1 sibling, 0 replies; 124+ messages in thread
From: Marius Amado Alves @ 2004-06-27 19:34 UTC (permalink / raw)
  To: comp.lang.ada

> I wrote a roof function to implement the exact algorithm you requested...

Murphy strikes again :-) The minute you drop Roof and Ground from the 
spec a(nother) real world case shows up requiring it. ARG, we told you 
so :-)




^ permalink raw reply	[flat|nested] 124+ messages in thread

* Re: Unified Ada library
  2004-04-15 12:20                     ` Martin Krischik
                                         ` (2 preceding siblings ...)
  2004-04-17 17:47                       ` Matthew Heaney
@ 2004-06-28 23:31                       ` Matthew Heaney
  3 siblings, 0 replies; 124+ messages in thread
From: Matthew Heaney @ 2004-06-28 23:31 UTC (permalink / raw)


Martin Krischik <krischik@users.sourceforge.net> writes:

> In the last version I saw the tag was hidden. So using inheritance for
> extension is closed.
>

Note that as of the Palma release of the container library API this is
no longer true.  All of the container types are now publicly tagged.

-Matt





^ permalink raw reply	[flat|nested] 124+ messages in thread

end of thread, other threads:[~2004-06-28 23:31 UTC | newest]

Thread overview: 124+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
     [not found] <20040407175513.BABA64C410A@lovelace.ada-france.org>
2004-04-07 21:20 ` No call for Ada Andrew Carroll
2004-04-08  6:39   ` Pascal Obry
2004-04-08  9:36   ` Martin Krischik
2004-04-08 17:17     ` Unified Ada library (was: No call for Ada) Björn Persson
2004-04-09  6:44       ` Martin Krischik
2004-04-09 21:14         ` Unified Ada library Björn Persson
2004-04-14  7:29           ` Martin Krischik
2004-04-14 23:55             ` Björn Persson
2004-04-15  0:40               ` Randy Brukardt
2004-04-15  8:40                 ` Martin Krischik
2004-04-15 10:53                   ` Stephen Leake
2004-04-15 12:20                     ` Martin Krischik
2004-04-15 17:30                       ` Georg Bauhaus
2004-04-15 18:05                         ` Jeffrey Carter
2004-04-15 20:52                           ` Georg Bauhaus
2004-04-16  0:12                             ` Jeffrey Carter
2004-04-16  3:41                               ` Georg Bauhaus
2004-04-17  0:10                                 ` Jeffrey Carter
2004-04-17 10:46                                   ` Georg Bauhaus
2004-04-17 23:23                                     ` Jeffrey Carter
2004-04-18 19:22                                       ` Georg Bauhaus
2004-04-19  3:33                                         ` Jeffrey Carter
2004-04-20  2:00                                           ` Georg Bauhaus
2004-04-20  9:26                                             ` Lutz Donnerhacke
2004-04-20 15:03                                               ` Georg Bauhaus
2004-04-20 15:29                                                 ` Jeffrey Carter
2004-04-20 15:33                                             ` Jeffrey Carter
2004-04-15 20:58                         ` Randy Brukardt
2004-04-16  0:22                           ` Jeffrey Carter
2004-04-16  1:15                             ` Randy Brukardt
2004-04-16 23:33                               ` Jeffrey Carter
2004-04-17  5:40                                 ` Randy Brukardt
2004-04-16 16:58                             ` Matthew Heaney
2004-04-17  0:05                               ` Jeffrey Carter
2004-04-17 21:17                             ` Craig Carey
2004-04-16  2:17                           ` Georg Bauhaus
2004-04-16 18:18                             ` Randy Brukardt
2004-04-17 11:06                               ` Georg Bauhaus
2004-04-17 14:57                                 ` Matthew Heaney
2004-04-17 22:09                                   ` Georg Bauhaus
2004-04-18  4:11                                     ` Matthew Heaney
2004-06-26  0:10                                       ` Matthew Heaney
2004-06-26 13:43                                         ` Georg Bauhaus
2004-06-26 14:46                                         ` Matthew Heaney
2004-06-26 18:09                                           ` Georg Bauhaus
2004-06-27  3:44                                             ` Matthew Heaney
2004-06-27  5:24                                               ` Matthew Heaney
2004-06-27 11:48                                             ` Matthew Heaney
2004-06-27 19:34                                           ` Marius Amado Alves
2004-04-17 14:38                             ` Matthew Heaney
2004-04-15 17:48                       ` Georg Bauhaus
2004-04-17 17:47                       ` Matthew Heaney
2004-04-18  7:03                         ` Martin Krischik
2004-04-18 20:12                           ` Georg Bauhaus
2004-04-19  3:36                             ` Jeffrey Carter
2004-04-19  6:18                               ` Matthew Heaney
2004-04-19  7:38                             ` Martin Krischik
2004-06-28 23:31                       ` Matthew Heaney
2004-04-15 16:26                 ` Warren W. Gay VE3WWG
2004-04-15 17:26                   ` Georg Bauhaus
2004-04-16 19:53                     ` Warren W. Gay VE3WWG
2004-04-16 17:01                   ` Matthew Heaney
2004-04-16 19:56                     ` Warren W. Gay VE3WWG
2004-04-17 15:04                       ` Matthew Heaney
2004-04-19 17:08                         ` Warren W. Gay VE3WWG
2004-04-16 15:51                 ` Jano
2004-04-16 22:08                   ` Matthew Heaney
2004-04-18 20:44                     ` Jano
2004-04-17  0:43                 ` Björn Persson
2004-04-17 15:09                   ` Matthew Heaney
2004-04-17 18:06                     ` Ludovic Brenta
2004-04-18  3:02                       ` Matthew Heaney
2004-04-18  3:08                         ` Hyman Rosen
2004-04-18  4:19                           ` Matthew Heaney
2004-04-27  0:21                             ` Craig Carey
2004-04-27  3:48                               ` Hyman Rosen
2004-04-27  7:39                               ` Georg Bauhaus
2004-04-28  2:04                               ` Matthew Heaney
2004-04-28 20:35                                 ` Craig Carey
2004-04-18 21:58                           ` Georg Bauhaus
2004-04-19 14:30                             ` Hyman Rosen
2004-04-22 12:33                               ` Georg Bauhaus
2004-04-22 13:43                                 ` Dmitry A. Kazakov
2004-04-17 21:31                     ` Björn Persson
2004-04-18  3:33                       ` Matthew Heaney
2004-04-19 15:23                         ` Björn Persson
2004-04-15  8:23               ` Martin Krischik
2004-04-15 10:49                 ` Stephen Leake
2004-04-15 13:53                   ` Martin Krischik
2004-04-15 23:40                     ` Stephen Leake
2004-04-15 18:01                 ` Georg Bauhaus
2004-04-16  6:46                   ` Martin Krischik
2004-04-17 15:01                     ` Matthew Heaney
2004-04-17  8:37               ` Simon Wright
     [not found] ` <001b01c41ce6$206bad80$0201a8c0@win>
2004-04-08  7:07   ` No call for Ada Marius Amado Alves
2004-04-10 19:27 No call for Ada (was Re: Announcing new scripting/prototyping Wes Groleau
2004-04-10 20:06 ` tmoran
2004-04-10 21:38   ` Wes Groleau
2004-04-12 22:34     ` Randy Brukardt
2004-04-14 11:41       ` Marin David Condic
2004-04-14 14:12         ` Robert I. Eachus
2004-04-14 17:52           ` No call for Ada Jeffrey Carter
2004-04-15 16:17             ` Warren W. Gay VE3WWG
     [not found] <20040409115529.8C0D24C412B@lovelace.ada-france.org>
2004-04-09 19:01 ` Andrew Carroll
2004-04-09 20:19   ` Marin David Condic
2004-04-14 14:29     ` Robert I. Eachus
2004-04-10 10:48   ` Dmitry A. Kazakov
2004-04-11 17:23     ` chris
2004-04-12 10:29       ` Dmitry A. Kazakov
  -- strict thread matches above, loose matches on Subject: below --
2004-04-08 12:44 Lionel.DRAGHI
     [not found] <20040408081031.D01934C4136@lovelace.ada-france.org>
2004-04-08  9:44 ` Andrew Carroll
     [not found] <20040206174017.7E84F4C4114@lovelace.ada-france.org>
2004-02-07  8:50 ` No call for it Carroll-Tech
2004-02-07 13:00   ` No call for Ada (was Re: Announcing new scripting/prototyping language) Ludovic Brenta
2004-02-07 19:24     ` MSG
2004-02-08  3:15       ` Ludovic Brenta
2004-04-02 23:18         ` Beth Bruzan
2004-04-03  0:08           ` David Starner
2004-04-03  9:13             ` Ludovic Brenta
2004-04-03 11:51               ` Martin Krischik
2004-04-03 22:26                 ` Ludovic Brenta
2004-04-04 10:00                   ` Florian Weimer
2004-04-05 18:07                     ` No call for Ada Marc A. Criley
2004-04-05 21:16                       ` Georg Bauhaus
2004-04-06 11:00                         ` Marin David Condic
2004-04-05 22:09                       ` Ludovic Brenta
2004-04-05 22:20                       ` chris
2004-04-06 13:25                         ` Marc A. Criley
2004-04-07  1:17                           ` Marius Amado Alves
2004-04-03 13:06           ` No call for Ada (was Re: Announcing new scripting/prototyping language) Marin David Condic
2004-04-03 14:12             ` James Rogers
2004-04-03 14:29               ` Ludovic Brenta
2004-04-03 16:54                 ` Marin David Condic
2004-04-03 19:46                   ` Ludovic Brenta
2004-04-05 12:10                     ` Marin David Condic
2004-04-05 20:38                       ` Randy Brukardt
2004-04-06 11:59                         ` Marin David Condic
2004-04-06 19:07                           ` Randy Brukardt
2004-04-07  0:31                             ` David Starner
2004-04-07 17:40                               ` Pascal Obry
2004-04-07 22:14                                 ` David Starner
2004-04-07 22:44                                   ` Ed Falis
2004-04-07 23:06                                     ` Szymon Guz
2004-04-08 17:34                                       ` No call for Ada (was Re: Announcing new scripting/prototypinglanguage) Marius Amado Alves
2004-04-08 11:46                                         ` Jean-Pierre Rosen
2004-04-08 13:53                                           ` No call for Ada Samuel Tardieu
2004-04-08  1:58             ` Berend de Boer
     [not found] <20040406215514.474514C410D@lovelace.ada-france.org>
2004-04-06 23:42 ` Andrew Carroll
2004-04-07  1:13   ` Ed Falis
2004-04-07  7:06   ` Martin Krischik
2004-04-08 12:39     ` Ludovic Brenta
2004-04-08 16:58       ` Martin Krischik
2004-04-07 13:46   ` Georg Bauhaus
2004-04-06  8:17 No call for Ada (was Re: Announcing new scripting/prototyping language) Dmitry A. Kazakov
2004-04-07  2:15 ` Alexander E. Kopilovich
2004-04-07  9:34   ` Dmitry A. Kazakov
2004-04-07 11:38     ` Marin David Condic
2004-04-08  9:59       ` Dmitry A. Kazakov
2004-04-08 20:46         ` No call for Ada Marius Amado Alves
2004-04-09 11:26           ` Marin David Condic
2004-04-09 15:50             ` Georg Bauhaus
2004-04-09 11:34           ` Dmitry A. Kazakov

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