comp.lang.ada
 help / color / mirror / Atom feed
* What exactly is the licensing situation with Gnat?
@ 2014-11-10  9:30 Hubert
  2014-11-10 10:03 ` Markus Schöpflin
  2014-11-10 10:38 ` What exactly is the licensing situation with GNAT? Jacob Sparre Andersen
  0 siblings, 2 replies; 241+ messages in thread
From: Hubert @ 2014-11-10  9:30 UTC (permalink / raw)


So I am relatively new to Ada and I never really looked much into all 
the Open Source license models that are out there, so I don't know much 
about the differences. I'm trying to understand the particular situation 
that Adacore's Gnat package has.

Can someone please tell me if I am wrong here:

A) The compiler is basically GPL meaning anybody can copy it.
B) The Ada and Gnat libraries that come with it are also GPL so if you 
use them to write a program and give that program away you must also 
give away the source code.
C) If you buy the Pro version your receive the runtime libraries with a 
different license that allows you to sell a program written with them 
without giving out the code.

D) Here I am not sure: If you write a program that does not use the Ada 
and Gnat libraries, then you are not obliged to give away the source 
code as well since you dont use any GPL licensed code in your program?

E) What about the Ada.Standard library which is a pseudo library and 
built into the compiler? One has to use elements from that library, 
there's no way around that.



---
This email is free from viruses and malware because avast! Antivirus protection is active.
http://www.avast.com



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

* Re: What exactly is the licensing situation with Gnat?
  2014-11-10  9:30 What exactly is the licensing situation with Gnat? Hubert
@ 2014-11-10 10:03 ` Markus Schöpflin
  2014-11-10 10:38 ` What exactly is the licensing situation with GNAT? Jacob Sparre Andersen
  1 sibling, 0 replies; 241+ messages in thread
From: Markus Schöpflin @ 2014-11-10 10:03 UTC (permalink / raw)


No, there are basically three versions of Gnat:

1) FSF: Is GPL but contains an exception that allows you the create programs 
which are not GPL (basically the same as e.g. g++)

2) AdaCore Libre: Also GPL, but no exception. Hence your program is also GPL.

3) AdaCore Pro: Commercial and allows you to create programs which are not GPL.

Markus

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

* Re: What exactly is the licensing situation with GNAT?
  2014-11-10  9:30 What exactly is the licensing situation with Gnat? Hubert
  2014-11-10 10:03 ` Markus Schöpflin
@ 2014-11-10 10:38 ` Jacob Sparre Andersen
  2014-11-10 11:09   ` Hubert
  1 sibling, 1 reply; 241+ messages in thread
From: Jacob Sparre Andersen @ 2014-11-10 10:38 UTC (permalink / raw)


Hubert wrote:

> I'm trying to understand the particular situation that Adacore's Gnat
> package has.

AdaCore distributes two "GNAT" packages:

1) GNAT Pro
2) GNAT GPL

You should be aware that the Free Software Foundation (FSF), Debian and
others distribute a third variant of GNAT, typically known as GNAT FSF.
GNAT FSF has more or less the same license as GNAT Pro, but the releases
tend to fall a bit behind GNAT Pro and GNAT GPL.

> A) The compiler is basically GPL meaning anybody can copy it.

True for both.

> B) The Ada and Gnat libraries that come with it are also GPL so if you
> use them to write a program and give that program away you must also
> give away the source code.

Not true for GNAT Pro.  True for GNAT GPL.

> C) If you buy the Pro version your receive the runtime libraries with
> a different license that allows you to sell a program written with
> them without giving out the code.

You don't buy GNAT Pro.  You buy a support contract.  With the support
contract you "magically" get access to GNAT Pro.

> D) Here I am not sure: If you write a program that does not use the
> Ada and Gnat libraries, then you are not obliged to give away the
> source code as well since you dont use any GPL licensed code in your
> program?

True for GNAT Pro.  Not necessarily true for GNAT GPL, as the run-time
library for GNAT GPL is plain GPL, and typically will be compiled into
your application.

> E) What about the Ada.Standard library which is a pseudo library and
> built into the compiler? One has to use elements from that library,
> there's no way around that.

If you compile your application with GNAT Pro, everything is fine.  If
you compile it with GNAT GPL, you should assume that the application is
plain GPL.


As I see it, the main reason for downloading and using GNAT GPL is to
get to play with the latest version of GNAT (without spending money on a
support contract).  If you want to be able to distribute your software
according to your preferred license, you should stick to GNAT FSF and/or
make enough money to pay for a support contract.

Greetings,

Jacob
-- 
"Universities are not part of the nation's security organisation,
 they are not the nation's research laboratory either: they are
 the nation's universities."                     -- E.W. Dijkstra

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

* Re: What exactly is the licensing situation with GNAT?
  2014-11-10 10:38 ` What exactly is the licensing situation with GNAT? Jacob Sparre Andersen
@ 2014-11-10 11:09   ` Hubert
  2014-11-10 11:19     ` Markus Schöpflin
  0 siblings, 1 reply; 241+ messages in thread
From: Hubert @ 2014-11-10 11:09 UTC (permalink / raw)


Ok, thanks everyone, I see that it is really complicated when you get 
down to the details, but in principle it's like if you sell a program, 
you need the Pro version or you use the FSF version which is most likely 
older and may not have all the feature or current bug fixes.

The good thing is that the GPL version allows me to play around and see 
if I can incorporate Ada tools into our project and then buy the pro 
version later, if it turns out to be useful.

---
This email is free from viruses and malware because avast! Antivirus protection is active.
http://www.avast.com

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

* Re: What exactly is the licensing situation with GNAT?
  2014-11-10 11:09   ` Hubert
@ 2014-11-10 11:19     ` Markus Schöpflin
  2014-11-10 15:45       ` David Botton
  0 siblings, 1 reply; 241+ messages in thread
From: Markus Schöpflin @ 2014-11-10 11:19 UTC (permalink / raw)


Am 10.11.2014 um 12:09 schrieb Hubert:

[...]

> The good thing is that the GPL version allows me to play around and see if I
> can incorporate Ada tools into our project and then buy the pro version later,
> if it turns out to be useful.

I would start with the FSF version and use the AdaCore versions only when you 
encounter bugs that are not easily worked around.

Markus

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

* Re: What exactly is the licensing situation with GNAT?
  2014-11-10 11:19     ` Markus Schöpflin
@ 2014-11-10 15:45       ` David Botton
  2014-11-11  0:09         ` Hubert
  0 siblings, 1 reply; 241+ messages in thread
From: David Botton @ 2014-11-10 15:45 UTC (permalink / raw)


> I would start with the FSF version and use the AdaCore versions only when you 
> encounter bugs that are not easily worked around.

Despite my open disdain for AdaCore's switch in licenses of their pubic versions to a GPL virus run time. I would say that it depends on platform and what you are looking to do if it makes sense to start with the FSF version or not.

On Windows for example until MinGW is updated to a more recent compiler and includes GPR tools you are probably better off with the GPL version regardless of use.

Based on what you wrote in previous posts, since your project would later on be looking at support best to start with the GPL version regardless of platform in my opinion.

David Botton

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

* Re: What exactly is the licensing situation with GNAT?
  2014-11-10 15:45       ` David Botton
@ 2014-11-11  0:09         ` Hubert
  2014-11-11 10:54           ` Georg Bauhaus
  2014-11-11 13:37           ` john
  0 siblings, 2 replies; 241+ messages in thread
From: Hubert @ 2014-11-11  0:09 UTC (permalink / raw)


On 11/10/2014 7:45 AM, David Botton wrote:
>> I would start with the FSF version and use the AdaCore versions only when you
>> encounter bugs that are not easily worked around.
>
> Despite my open disdain for AdaCore's switch in licenses of their pubic versions to a GPL virus run time. I would say that it depends on platform and what you are looking to do if it makes sense to start with the FSF version or not.
>
> On Windows for example until MinGW is updated to a more recent compiler and includes GPR tools you are probably better off with the GPL version regardless of use.
>
> Based on what you wrote in previous posts, since your project would later on be looking at support best to start with the GPL version regardless of platform in my opinion.
>
> David Botton
>
Yes, plus I really need the GPS editor for my Ada code at the moment. I 
have no experience whatsoever with Emacs or Vim and I am somewhat 
addicted to having a hierarchy browser (I know we wrote big programs in 
the 90s without it but I couldn't imagine that anymore). I want to take 
a serious look at the new Slickedit version when it is released and then 
I hope I can use that to edit, compile and debug, since I'm having my 
problems with the debug environment in GPS it is a bit cumbersome with 2 
or 3 steps necessary to start a program under the debugger.


---
This email is free from viruses and malware because avast! Antivirus protection is active.
http://www.avast.com



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

* Re: What exactly is the licensing situation with GNAT?
  2014-11-11  0:09         ` Hubert
@ 2014-11-11 10:54           ` Georg Bauhaus
  2014-11-11 11:05             ` Hubert
  2014-11-11 13:37           ` john
  1 sibling, 1 reply; 241+ messages in thread
From: Georg Bauhaus @ 2014-11-11 10:54 UTC (permalink / raw)


On 11.11.14 01:09, Hubert wrote:
> I have no experience whatsoever with Emacs or Vim and I am somewhat addicted to having a hierarchy browser (I know we wrote big programs in the 90s without it but I couldn't imagine that anymore).

For the record, Emacs has speedbar, which (for Ada mode version 4.x)
displays a hierarchy of folders, Ada files, and the declarations
contained therein. These are grouped by kind. Clicking on a leaf displays
the corresponding item in the editor, in context.

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

* Re: What exactly is the licensing situation with GNAT?
  2014-11-11 10:54           ` Georg Bauhaus
@ 2014-11-11 11:05             ` Hubert
  0 siblings, 0 replies; 241+ messages in thread
From: Hubert @ 2014-11-11 11:05 UTC (permalink / raw)


On 11/11/2014 2:54 AM, Georg Bauhaus wrote:
> On 11.11.14 01:09, Hubert wrote:
>> I have no experience whatsoever with Emacs or Vim and I am somewhat
>> addicted to having a hierarchy browser (I know we wrote big programs
>> in the 90s without it but I couldn't imagine that anymore).
>
> For the record, Emacs has speedbar, which (for Ada mode version 4.x)
> displays a hierarchy of folders, Ada files, and the declarations
> contained therein. These are grouped by kind. Clicking on a leaf displays
> the corresponding item in the editor, in context.
>
Good to know, it sounds like some sort of browser after all. I will wait 
for Slick edit however since I had some experience with it in the past. 
At the moment it looks like it will take another month or two I guess, 
they still seem to have major stability problems although they are 
supposedly far in the testing process.


---
This email is free from viruses and malware because avast! Antivirus protection is active.
http://www.avast.com



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

* Re: What exactly is the licensing situation with GNAT?
  2014-11-11  0:09         ` Hubert
  2014-11-11 10:54           ` Georg Bauhaus
@ 2014-11-11 13:37           ` john
  2014-11-11 22:52             ` Hubert
  1 sibling, 1 reply; 241+ messages in thread
From: john @ 2014-11-11 13:37 UTC (permalink / raw)



> Yes, plus I really need the GPS editor for my Ada code at the moment.

I would recommend using the GPS editor of Adacore GNAT GPL in combination with GNAT FSF as the compiler. That's what I do, and at least on Ubuntu it works fine. Just remember not to use any libraries provided by Adacore's GNAT.

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

* Re: What exactly is the licensing situation with GNAT?
  2014-11-11 13:37           ` john
@ 2014-11-11 22:52             ` Hubert
  2014-11-11 23:10               ` David Botton
  0 siblings, 1 reply; 241+ messages in thread
From: Hubert @ 2014-11-11 22:52 UTC (permalink / raw)


On 11/11/2014 5:37 AM, john@peppermind.com wrote:
>
>> Yes, plus I really need the GPS editor for my Ada code at the moment.
>
> I would recommend using the GPS editor of Adacore GNAT GPL in combination with GNAT FSF as the compiler. That's what I do, and at least on Ubuntu it works fine. Just remember not to use any libraries provided by Adacore's GNAT.
>
I never thought about that combination, I thought you have to use the 
compiler that comes with GPS but it makes sense.

Speaking of this, what are the libraries that are specific to the GPL 
version? I know the Ada libraries are the language standard, so I assume 
all the Gnat libraries are extensions provided by Adacore?


---
This email is free from viruses and malware because avast! Antivirus protection is active.
http://www.avast.com

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

* Re: What exactly is the licensing situation with GNAT?
  2014-11-11 22:52             ` Hubert
@ 2014-11-11 23:10               ` David Botton
  2014-11-11 23:25                 ` Alan Jump
  2014-11-12  7:38                 ` Simon Wright
  0 siblings, 2 replies; 241+ messages in thread
From: David Botton @ 2014-11-11 23:10 UTC (permalink / raw)


They essentially virused the standard Ada runtime. It is certainly a question if it would hold in truth legally, but basically even with no runtime they would claim your resulting executable is GPL.

David Botton 

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

* Re: What exactly is the licensing situation with GNAT?
  2014-11-11 23:10               ` David Botton
@ 2014-11-11 23:25                 ` Alan Jump
  2014-11-12  0:50                   ` David Botton
  2014-11-12  7:38                 ` Simon Wright
  1 sibling, 1 reply; 241+ messages in thread
From: Alan Jump @ 2014-11-11 23:25 UTC (permalink / raw)


On Tuesday, November 11, 2014 3:10:26 PM UTC-8, David Botton wrote:
> They essentially virused the standard Ada runtime. It is certainly a question if it would hold in truth legally, but basically even with no runtime they would claim your resulting executable is GPL.
> 
> David Botton

"Virused"?

'Splain, please.


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

* Re: What exactly is the licensing situation with GNAT?
  2014-11-11 23:25                 ` Alan Jump
@ 2014-11-12  0:50                   ` David Botton
  2014-11-12  1:02                     ` Simon Clubley
                                       ` (2 more replies)
  0 siblings, 3 replies; 241+ messages in thread
From: David Botton @ 2014-11-12  0:50 UTC (permalink / raw)


Some viruses can be good, some viruses can be bad, and some viruses that are good are being abused.

By using the GPL in a compiler run time, initial boot loader code, etc. AdaCore places a  "license virus" on your software, i.e. regardless of your intended license it is now under the full GPL.

That may be a good thing for OS tools even compiler tools, etc. perhaps you may even prefer the GPL, but when placed in a compiler it is an abuse designed to make an open source compiler Shareware at best.

David Botton

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

* Re: What exactly is the licensing situation with GNAT?
  2014-11-12  0:50                   ` David Botton
@ 2014-11-12  1:02                     ` Simon Clubley
  2014-11-12  7:09                       ` Gour
  2014-11-12  7:41                       ` Simon Wright
  2014-11-12  1:15                     ` Hubert
  2014-11-12  7:13                     ` Pascal Obry
  2 siblings, 2 replies; 241+ messages in thread
From: Simon Clubley @ 2014-11-12  1:02 UTC (permalink / raw)


On 2014-11-12, David Botton <david@botton.com> wrote:
> Some viruses can be good, some viruses can be bad, and some viruses that are good are being abused.
>
> By using the GPL in a compiler run time, initial boot loader code,
> etc. AdaCore places a "license virus" on your software,
> i.e. regardless of your intended license it is now under the full GPL.
>
> That may be a good thing for OS tools even compiler tools,
> etc. perhaps you may even prefer the GPL, but when placed in a
> compiler it is an abuse designed to make an open source compiler

s/compiler/compiler's runtime/

surely ?

> Shareware at best.
>

And what no-one has mentioned so far this time around is that you
simply would not be having this conversation when talking about
normal C/C++ compilers.

This whole licence situation is yet another barrier in the way of
getting people to use Ada.

Simon.

PS: I've been around the Ada world long enough to remember the days
when GtkAda was GMGPL. That little fiasco killed my use of Ada in
GTK based front ends stone dead so I can understand how someone new
to the Ada world might look at the GPL compiler situation and then
go and choose another language which simply doesn't have those
issues.

-- 
Simon Clubley, clubley@remove_me.eisner.decus.org-Earth.UFP
Microsoft: Bringing you 1980s technology to a 21st century world


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

* Re: What exactly is the licensing situation with GNAT?
  2014-11-12  0:50                   ` David Botton
  2014-11-12  1:02                     ` Simon Clubley
@ 2014-11-12  1:15                     ` Hubert
  2014-11-12  1:24                       ` David Botton
  2014-11-12  8:06                       ` Simon Wright
  2014-11-12  7:13                     ` Pascal Obry
  2 siblings, 2 replies; 241+ messages in thread
From: Hubert @ 2014-11-12  1:15 UTC (permalink / raw)


On 11/11/2014 16:50 PM, David Botton wrote:
> Some viruses can be good, some viruses can be bad, and some viruses that are good are being abused.
>
> By using the GPL in a compiler run time, initial boot loader code, etc. AdaCore places a  "license virus" on your software, i.e. regardless of your intended license it is now under the full GPL.
>
> That may be a good thing for OS tools even compiler tools, etc. perhaps you may even prefer the GPL, but when placed in a compiler it is an abuse designed to make an open source compiler Shareware at best.
>
> David Botton
>

Ok, I was wondering about that for a while, hence my question about the 
GPL situation with the libraries. I was under the impressino that the 
thing that makes the resulting program GPL was the libraries and not the 
compiler, but this explains now why any output from the GPL compiler is 
GPL if the runtime that is essential to run the compiled program is also 
GPL.
The whole situation is not so easily understood and the explanation in 
the Libre Adacore package don't make it much clearer either. I was 
thinking if it is the Libraries only, one could omit them and write a 
new set of libraries, but this essentially rules that out.

Now this raises another question. I have been reading through the posts 
regarding Gnoga ( a great project by the way ) and it is my 
understanding that the applications developed with Gnoga can run on a 
server and the browser on the client side only render the output. How is 
the situation with that sort of stuff? If you write a server application 
that is never given out, can you do that with the GPL version?

---
This email is free from viruses and malware because avast! Antivirus protection is active.
http://www.avast.com



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

* Re: What exactly is the licensing situation with GNAT?
  2014-11-12  1:15                     ` Hubert
@ 2014-11-12  1:24                       ` David Botton
  2014-11-12  1:33                         ` Hubert
                                           ` (3 more replies)
  2014-11-12  8:06                       ` Simon Wright
  1 sibling, 4 replies; 241+ messages in thread
From: David Botton @ 2014-11-12  1:24 UTC (permalink / raw)


> Ok, I was wondering about that for a while, hence my question about the 
> GPL situation with the libraries. I was under the impressino that the 
> thing that makes the resulting program GPL was the libraries and not the 
> compiler, but this explains now why any output from the GPL compiler is 
> GPL if the runtime that is essential to run the compiled program is also 
> GPL.

No, the GNAT GPL is a "special" case designed to virus software. The FSF versions do not contain code that would do that and so even though the compiler is GPL it does not produce executables that would be under the GPL unless you linked in some library that did that.

> The whole situation is not so easily understood and the explanation in 
> the Libre Adacore package don't make it much clearer either. I was 
> thinking if it is the Libraries only, one could omit them and write a 
> new set of libraries, but this essentially rules that out.

it is possible I am wrong about the binding code, but I am under the impression they hold that anything produced by their public compiler is GPL unless you have GNAT PRO.

> Now this raises another question. I have been reading through the posts 
> regarding Gnoga ( a great project by the way ) and it is my 
> understanding that the applications developed with Gnoga can run on a 
> server and the browser on the client side only render the output. How is 
> the situation with that sort of stuff? If you write a server application 
> that is never given out, can you do that with the GPL version?

Yes you can :) It is a loophole. Since you are not distributing your binaries only using them server side you do not have to share the source.

Honestly I am actually a fan of the GPL and hope you will when you can share the sources and of course changes and extensions to Gnoga as well.

The FSF versions do work with Gnoga as well. (For windows MinGW will be updated soon and will work and for Linux you need for now Debian sid)

David Botton


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

* Re: What exactly is the licensing situation with GNAT?
  2014-11-12  1:24                       ` David Botton
@ 2014-11-12  1:33                         ` Hubert
  2014-11-12  7:13                         ` Gour
                                           ` (2 subsequent siblings)
  3 siblings, 0 replies; 241+ messages in thread
From: Hubert @ 2014-11-12  1:33 UTC (permalink / raw)



> Honestly I am actually a fan of the GPL and hope you will when you can share the sources and of course changes and extensions to Gnoga as well.
>

Yes it is not bad for tools and stuff. Of course, when you write an 
application that you want to make money with, it's not so good. My first 
project I'll be working on soon is a text user interface library and I 
intend to make that public, although not many people will be interested 
in text output, but I think that for simple tools etc it is easier to 
have a simple UI that to get into all the overhead that a graphical UI 
comes with.




---
This email is free from viruses and malware because avast! Antivirus protection is active.
http://www.avast.com



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

* Re: What exactly is the licensing situation with GNAT?
  2014-11-12  1:02                     ` Simon Clubley
@ 2014-11-12  7:09                       ` Gour
  2014-11-12 11:06                         ` David Botton
  2014-11-12  7:41                       ` Simon Wright
  1 sibling, 1 reply; 241+ messages in thread
From: Gour @ 2014-11-12  7:09 UTC (permalink / raw)


On Wed, 12 Nov 2014 01:02:56 +0000 (UTC)
Simon Clubley <clubley@remove_me.eisner.decus.org-Earth.UFP> wrote:

> PS: I've been around the Ada world long enough to remember the days
> when GtkAda was GMGPL. That little fiasco killed my use of Ada in
> GTK based front ends stone dead so I can understand how someone new
> to the Ada world might look at the GPL compiler situation and then
> go and choose another language which simply doesn't have those
> issues.

You're right.

I was not at all thinking about it when considering to use Ada to write
(multi-platform) desktop app using GtkAda, but now I must say that it
sheds different light on using Ada for GUI app.

Too bad, considering people have some other language choices to consider
for the task...


Sincerely,
Gour

-- 
A person is said to be elevated in yoga when, having renounced 
all material desires, he neither acts for sense gratification 
nor engages in fruitive activities.


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

* Re: What exactly is the licensing situation with GNAT?
  2014-11-12  0:50                   ` David Botton
  2014-11-12  1:02                     ` Simon Clubley
  2014-11-12  1:15                     ` Hubert
@ 2014-11-12  7:13                     ` Pascal Obry
  2014-11-12  7:47                       ` Hubert
                                         ` (3 more replies)
  2 siblings, 4 replies; 241+ messages in thread
From: Pascal Obry @ 2014-11-12  7:13 UTC (permalink / raw)


Le mardi 11 novembre 2014 à 16:50 -0800, David Botton a écrit :
> By using the GPL in a compiler run time, initial boot loader code,
> etc. AdaCore places a "license virus" on your software, i.e.
> regardless of your intended license it is now under the full GPL.

Well another point of view is that it encourage Open Source softwares.
And after all we all know that we can sell Open Source software. The
only requirement is to make available the sources if someone ask for
them when you sell the software.

I bet this is in fact no big deal for many applications.

-- 
  Pascal Obry /  Magny Les Hameaux (78)

  The best way to travel is by means of imagination

  http://v2p.fr.eu.org
  http://www.obry.net

  gpg --keyserver keys.gnupg.net --recv-key F949BD3B


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

* Re: What exactly is the licensing situation with GNAT?
  2014-11-12  1:24                       ` David Botton
  2014-11-12  1:33                         ` Hubert
@ 2014-11-12  7:13                         ` Gour
  2014-11-12 10:56                           ` David Botton
  2014-11-12  8:12                         ` Simon Wright
  2014-11-12  8:16                         ` Simon Wright
  3 siblings, 1 reply; 241+ messages in thread
From: Gour @ 2014-11-12  7:13 UTC (permalink / raw)


On Tue, 11 Nov 2014 17:24:50 -0800 (PST)
David Botton <david@botton.com> wrote:

> Yes you can :) It is a loophole. Since you are not distributing your
> binaries only using them server side you do not have to share the
> source.

What is the possibility that the hole might be eliminated by Adacore
if e.g. Gnoga become (too) popular allowing people to take advantage of
it without getting into Pro contracts (which is probably anyway too
expensive for smaller players)?


Sincerely,
Gour

-- 
Before giving up this present body, if one is able to tolerate 
the urges of the material senses and check the force of desire and 
anger, he is well situated and is happy in this world.

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

* Re: What exactly is the licensing situation with GNAT?
  2014-11-11 23:10               ` David Botton
  2014-11-11 23:25                 ` Alan Jump
@ 2014-11-12  7:38                 ` Simon Wright
  1 sibling, 0 replies; 241+ messages in thread
From: Simon Wright @ 2014-11-12  7:38 UTC (permalink / raw)


David Botton <david@botton.com> writes:

> It is certainly a question if it would hold in truth legally, but
> basically even with no runtime they would claim your resulting
> executable is GPL.

What would you have copied? It's the *runtime* that has had the
*runtime* exception rmoved from it.

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

* Re: What exactly is the licensing situation with GNAT?
  2014-11-12  1:02                     ` Simon Clubley
  2014-11-12  7:09                       ` Gour
@ 2014-11-12  7:41                       ` Simon Wright
  2014-11-13  1:30                         ` Simon Clubley
  1 sibling, 1 reply; 241+ messages in thread
From: Simon Wright @ 2014-11-12  7:41 UTC (permalink / raw)


Simon Clubley <clubley@remove_me.eisner.decus.org-Earth.UFP> writes:

> PS: I've been around the Ada world long enough to remember the days
> when GtkAda was GMGPL.

"was" -> "stopped being" ?


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

* Re: What exactly is the licensing situation with GNAT?
  2014-11-12  7:13                     ` Pascal Obry
@ 2014-11-12  7:47                       ` Hubert
  2014-11-12  9:08                       ` Thomas Jahrne
                                         ` (2 subsequent siblings)
  3 siblings, 0 replies; 241+ messages in thread
From: Hubert @ 2014-11-12  7:47 UTC (permalink / raw)


> Well another point of view is that it encourage Open Source softwares.
> And after all we all know that we can sell Open Source software. The
> only requirement is to make available the sources if someone ask for
> them when you sell the software.
>
> I bet this is in fact no big deal for many applications.
>
That is basically correct. Of course it depends on the situation. Fir 
instance, I licensed a 3D graphics engine some 2 years ago. It cost 
about 500$ at the time. You would get the complete source code with it.

However the variable names were so cryptic, and there were absolutely no 
comments in the source code, I mean zero, nada, I have never ever seen 
such a void in my life. I believe the developer was using a tool to 
remove all comments before he gave out the source.

The effect was really that you could hardly use the code to do anything 
like fixing a problem or adding a feature. Analyzing the source, say to 
write your own engine would be a complete waste of time. So I guess 
handing out the source code is not the terrible thing that closed source 
developer might think it is.

I am thinking about releasing the source of our game client too in the 
future (it's in C++) so that maybe people can develop their own client 
based on it. But of course I would never give out the code to the server 
part since that's where the money is generated.


---
This email is free from viruses and malware because avast! Antivirus protection is active.
http://www.avast.com


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

* Re: What exactly is the licensing situation with GNAT?
  2014-11-12  1:15                     ` Hubert
  2014-11-12  1:24                       ` David Botton
@ 2014-11-12  8:06                       ` Simon Wright
  2014-11-12  8:26                         ` Hubert
  1 sibling, 1 reply; 241+ messages in thread
From: Simon Wright @ 2014-11-12  8:06 UTC (permalink / raw)


Hubert <herrdoktor@fumanchu.com> writes:

> Ok, I was wondering about that for a while, hence my question about
> the GPL situation with the libraries. I was under the impressino that
> the thing that makes the resulting program GPL was the libraries and
> not the compiler, but this explains now why any output from the GPL
> compiler is GPL if the runtime that is essential to run the compiled
> program is also GPL.

GCC itself has always been GPL; WindRiver, for example, have always
provided GCC as one of the compilers their customers could use to build
proprietary applications.

To quote from the GNU Licences FAQ[1],

   The GCC Runtime Library Exception covers libgcc, libstdc++,
   libfortran, libgomp, libdecnumber, and other libraries distributed
   with GCC. The exception is meant to allow people to distribute
   programs compiled with GCC under terms of their choice, even when
   parts of these libraries are included in the executable as part of
   the compilation process.

and from the GCC Runtime Library Exception Rationale[2],

   [...]  the FSF decided long ago to allow developers to use GCC's
   libraries to compile any program, regardless of its
   license. Developing nonfree software is not good for society, and we
   have no obligation to make it easier. We decided to permit this
   because forbidding it seemed likely to backfire, and because using
   small libraries to limit the use of GCC seemed like the tail wagging
   the dog.

This is why the FSF GCC Ada runtime _does_ carry the Runtime Library
Exception.

The last sentence is, of course, borne out by this present row.

> The whole situation is not so easily understood and the explanation in
> the Libre Adacore package don't make it much clearer either. I was
> thinking if it is the Libraries only, one could omit them and write a
> new set of libraries, but this essentially rules that out.

For info, which explanation? I've certainly heard what I considered to
be misleading statements on this from AdaCore, but that could well have
been because they were trying to persuade management and I was only
present as technical assistance.

You could write a new set of libraries (probably working from the FSF
compilers) but that would be a large task (mammoth if you started from
scratch, and moreover a moving target).

[1] http://www.gnu.org/licenses/gpl-faq.html#LibGCCException
[2] http://www.gnu.org/licenses/gcc-exception-faq.html


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

* Re: What exactly is the licensing situation with GNAT?
  2014-11-12  1:24                       ` David Botton
  2014-11-12  1:33                         ` Hubert
  2014-11-12  7:13                         ` Gour
@ 2014-11-12  8:12                         ` Simon Wright
  2014-11-12  8:35                           ` Hubert
  2014-11-12  8:16                         ` Simon Wright
  3 siblings, 1 reply; 241+ messages in thread
From: Simon Wright @ 2014-11-12  8:12 UTC (permalink / raw)


David Botton <david@botton.com> writes:

>> Now this raises another question. I have been reading through the
>> posts regarding Gnoga ( a great project by the way ) and it is my
>> understanding that the applications developed with Gnoga can run on a
>> server and the browser on the client side only render the output. How
>> is the situation with that sort of stuff? If you write a server
>> application that is never given out, can you do that with the GPL
>> version?
>
> Yes you can :) It is a loophole. Since you are not distributing your
> binaries only using them server side you do not have to share the
> source.

You might be interested in the Affero GPL?
http://www.gnu.org/licenses/why-affero-gpl.html

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

* Re: What exactly is the licensing situation with GNAT?
  2014-11-12  1:24                       ` David Botton
                                           ` (2 preceding siblings ...)
  2014-11-12  8:12                         ` Simon Wright
@ 2014-11-12  8:16                         ` Simon Wright
  3 siblings, 0 replies; 241+ messages in thread
From: Simon Wright @ 2014-11-12  8:16 UTC (permalink / raw)


David Botton <david@botton.com> writes:

>> The whole situation is not so easily understood and the explanation
>> in the Libre Adacore package don't make it much clearer either. I was
>> thinking if it is the Libraries only, one could omit them and write a
>> new set of libraries, but this essentially rules that out.
>
> it is possible I am wrong about the binding code, but I am under the
> impression they hold that anything produced by their public compiler
> is GPL unless you have GNAT PRO.

They would, wouldn't they.

http://en.wikipedia.org/wiki/Mandy_Rice-Davies#.22He_would.2C_wouldn.27t_he.3F.22


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

* Re: What exactly is the licensing situation with GNAT?
  2014-11-12  8:06                       ` Simon Wright
@ 2014-11-12  8:26                         ` Hubert
  0 siblings, 0 replies; 241+ messages in thread
From: Hubert @ 2014-11-12  8:26 UTC (permalink / raw)


> You could write a new set of libraries (probably working from the FSF
> compilers) but that would be a large task (mammoth if you started from
> scratch, and moreover a moving target).

Well I was more talking hypothetically, I certainly have no urge to do 
that. I just recently dropped a huge proprietary library we were using 
for 10 years or so in order to move to STL for the first time and I 
appreciate the power these libraries offer over smaller proprietary ones.



---
This email is free from viruses and malware because avast! Antivirus protection is active.
http://www.avast.com

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

* Re: What exactly is the licensing situation with GNAT?
  2014-11-12  8:12                         ` Simon Wright
@ 2014-11-12  8:35                           ` Hubert
  2014-11-12  9:25                             ` Mark Carroll
  2014-11-12 10:53                             ` Simon Wright
  0 siblings, 2 replies; 241+ messages in thread
From: Hubert @ 2014-11-12  8:35 UTC (permalink / raw)


> You might be interested in the Affero GPL?
> http://www.gnu.org/licenses/why-affero-gpl.html

No I'm not writing anything that I want to protect for myself. I'm just 
trying to understand what the situation with Ada is since we are 
discussing a port to Ada as a possibility, however that would still be a 
few years in the future to be realistic, for the time being it is just 
inhouse tool programming, but I am always in favor of checking out 
feasibility first before I spend a considerable amount of time getting 
into a matter only to find out that a simple issue makes my whole effort 
obsolete. That's why I usually ask for the price of a program before I 
download the trial version and if I don't get that info, I know it's 
because the price is exorbitant.

I know Ada would be well suited for our project from a language point of 
view, the question is now what about the license situation. In general 
the move (meaning getting the pro license) would only be feasible if our 
project in the current version generates enough money (which we won't 
know before next year), since I know the price is in the 10K$ range. If 
not I will take a hard look at the FSF version, what puts me off for the 
time being is the comments I read so far that the FSF version is behind 
the GPL version, however I don't know yet in what particular way, if 
it's missing language features, missing libraries, having bugs that are 
fixed in the GPL version etc.




---
This email is free from viruses and malware because avast! Antivirus protection is active.
http://www.avast.com

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

* Re: What exactly is the licensing situation with GNAT?
  2014-11-12  7:13                     ` Pascal Obry
  2014-11-12  7:47                       ` Hubert
@ 2014-11-12  9:08                       ` Thomas Jahrne
  2014-11-12 10:19                         ` Georg Bauhaus
  2014-11-12  9:30                       ` Mark Carroll
  2014-11-12 11:05                       ` David Botton
  3 siblings, 1 reply; 241+ messages in thread
From: Thomas Jahrne @ 2014-11-12  9:08 UTC (permalink / raw)


On 2014-11-12, Pascal Obry <pascal@obry.net> wrote:
> Le mardi 11 novembre 2014 ?? 16:50 -0800, David Botton a ??crit :
>> By using the GPL in a compiler run time, initial boot loader code,
>> etc. AdaCore places a "license virus" on your software, i.e.
>> regardless of your intended license it is now under the full GPL.
>
> Well another point of view is that it encourage Open Source softwares.
> And after all we all know that we can sell Open Source software.

Although that is technically true it doesn't happen often. Especially it's a
little funny in this context since Adacore doesn't sell GNAT they just sell
the support. But there is a little gotcha since you can't get the toolchain
unless you buy support for it.

All funded with U.S. taxpayer money.

I call BULLSHIT.

> I bet this in fact no big deal for many applications.

Again in the context of Ada where everything is virtually 100% defence and
the remainder government projects it is certainly a big deal and you will
never see this source code. Which is why they are able to get people to buy
their toolchain oops I meant support for their toolchain.

Thomas


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

* Re: What exactly is the licensing situation with GNAT?
  2014-11-12  8:35                           ` Hubert
@ 2014-11-12  9:25                             ` Mark Carroll
  2014-11-12  9:37                               ` Hubert
  2014-11-12 10:53                             ` Simon Wright
  1 sibling, 1 reply; 241+ messages in thread
From: Mark Carroll @ 2014-11-12  9:25 UTC (permalink / raw)


Hubert <herrdoktor@fumanchu.com> writes:

> If not I will take a hard look at the FSF version, what puts me off
> for the time being is the comments I read so far that the FSF version
> is behind the GPL version, however I don't know yet in what particular
> way, if it's missing language features, missing libraries, having bugs
> that are fixed in the GPL version etc.

I also have the impression that there's a lack of assurance that
bug-fixes, etc. will keep flowing to the FSF version, and there's a
shortage of cheap or free alternatives for compiling closed code?
(It's not like I am funded by CPFF contracts from DoD BAAs.)

I had been looking at creating an GUI application that would have to
work well on Windows, so I also have a bit of work to do in
understanding more about the dependency on MinGW for that, but maybe
that's all transparent and wonderful, just new to me.

I don't need to make language decisions right now, but all this is
keeping me nervously on the fence; I don't want to commit to a direction
for which affordable support is in danger of withering and, while I had
thought it a good idea to use a coming project to learn and try out Ada,
it is not like I am having to develop near-real-time embedded systems or
suchlike.

-- Mark


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

* Re: What exactly is the licensing situation with GNAT?
  2014-11-12  7:13                     ` Pascal Obry
  2014-11-12  7:47                       ` Hubert
  2014-11-12  9:08                       ` Thomas Jahrne
@ 2014-11-12  9:30                       ` Mark Carroll
  2014-11-12 11:05                       ` David Botton
  3 siblings, 0 replies; 241+ messages in thread
From: Mark Carroll @ 2014-11-12  9:30 UTC (permalink / raw)


Pascal Obry <pascal@obry.net> writes:

> Le mardi 11 novembre 2014 à 16:50 -0800, David Botton a écrit :
>> By using the GPL in a compiler run time, initial boot loader code,
>> etc. AdaCore places a "license virus" on your software, i.e.
>> regardless of your intended license it is now under the full GPL.
>
> Well another point of view is that it encourage Open Source softwares.
> And after all we all know that we can sell Open Source software. The
> only requirement is to make available the sources if someone ask for
> them when you sell the software.
>
> I bet this is in fact no big deal for many applications.

In the case of the full GPL, the requirements are far more than that!
The customer have the ability to tweak and sell it themselves, etc.

-- Mark


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

* Re: What exactly is the licensing situation with GNAT?
  2014-11-12  9:25                             ` Mark Carroll
@ 2014-11-12  9:37                               ` Hubert
  2014-11-12 10:31                                 ` jm.tarrasa
                                                   ` (3 more replies)
  0 siblings, 4 replies; 241+ messages in thread
From: Hubert @ 2014-11-12  9:37 UTC (permalink / raw)


> I don't need to make language decisions right now, but all this is
> keeping me nervously on the fence; I don't want to commit to a direction
> for which affordable support is in danger of withering and, while I had
> thought it a good idea to use a coming project to learn and try out Ada,
> it is not like I am having to develop near-real-time embedded systems or
> suchlike.
>
> -- Mark
>

Well from what I have learned so far, I see the situation as follows:
- If you want to make and release full GPL software you're good to go 
with the GPL version of Ada
- If you write code for Missiles or Nuclear Power Plants, you're good to 
go with the Pro version
- If you're a little guy wanting to write a professional piece of 
software that you want to sell but it is not mission critical you are 
somewhat hanging in the air.

It is my opinion that what is missing is some sort of intermediate 
license for people who just want to write small scale applications and 
don't have the security requirements of big projects adn thus don't need 
the support that Adacore offers. Something like Turbo Pascal in the past 
or maybe even Visual Studio in the Personal Edition or so.

Personally I wouldn't mind paying a few 100$ right now for a license 
that would allow me to write closed source applications even if I get no 
support or just some way to report bugs which may or may not be fixed 
later. I don't need a minuteman response if I find a bug with Ada (which 
is more than unlikely to happen anyway). the current Pro license is 
something I consider but only given our particular situation where we 
sell a product first and then rewrite part or all of it in Ada and have 
the money to get the license. I would not consider it if I were to start 
a brand new project of which I have no idea how the sales situation will be.

So something like a personal license that would be nice to have.





---
This email is free from viruses and malware because avast! Antivirus protection is active.
http://www.avast.com


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

* Re: What exactly is the licensing situation with GNAT?
  2014-11-12  9:08                       ` Thomas Jahrne
@ 2014-11-12 10:19                         ` Georg Bauhaus
  0 siblings, 0 replies; 241+ messages in thread
From: Georg Bauhaus @ 2014-11-12 10:19 UTC (permalink / raw)


On 12.11.14 10:08, Thomas Jahrne wrote:
> Especially it's a
> little funny in this context since Adacore doesn't sell GNAT they just sell
> the support.

No.

https://archive.fosdem.org/2012/interview/robert-dewar

Find "sell".

In the corresponding video, the president of said company more emphatically
states that they do sell software. Have you seen one AdaCore contract?

> But there is a little gotcha since you can't get the toolchain
> unless you buy support for it.

No.

What part of the AdaCore tool chain centered around GNAT can one not
get for free, and compatibly with both FOSS and closed source development?
The GNAT stuff, GPS, etc. are also available as part of Linux systems.

(The other remarks: about trains in France, the UK, and elsewhere, as well
as cars from Japan being 100% run by the military seem to lend themselves
to an estimation of their value.)

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

* Re: What exactly is the licensing situation with GNAT?
  2014-11-12  9:37                               ` Hubert
@ 2014-11-12 10:31                                 ` jm.tarrasa
  2014-11-12 10:43                                   ` J-P. Rosen
                                                     ` (3 more replies)
  2014-11-12 11:15                                 ` David Botton
                                                   ` (2 subsequent siblings)
  3 siblings, 4 replies; 241+ messages in thread
From: jm.tarrasa @ 2014-11-12 10:31 UTC (permalink / raw)


> - If you're a little guy wanting to write a professional piece of 
> software that you want to sell but it is not mission critical you are 
> somewhat hanging in the air.

10K$/seat makes no sense. Obviously Adacore is not interested in you.

There is a market of deep pockets for Ada (so far), but there is no market of small Ada developers. They have locked customers with deep pockets and  no competence, so they are not interested in other market.

You could argue that such market is shrinking and could die.
So? 
Gnat investment was recovered long ago (did they invest or was DoD's investment?). Now they have no advertising costs, almost no development costs (what they have? a developer? two?) whatever they get from deep pockets is almost net profit. 
Creating a market for Ada small developers would mean to create an ecosystem, compete against other languages. Why should they invest such amount of resources in an uncertain adventure? 

so, when the deep pockets market die, they'll let Gnat die. You are not in the equation.

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

* Re: What exactly is the licensing situation with GNAT?
  2014-11-12 10:31                                 ` jm.tarrasa
@ 2014-11-12 10:43                                   ` J-P. Rosen
  2014-11-12 10:44                                   ` Hubert
                                                     ` (2 subsequent siblings)
  3 siblings, 0 replies; 241+ messages in thread
From: J-P. Rosen @ 2014-11-12 10:43 UTC (permalink / raw)


Le 12/11/2014 11:31, jm.tarrasa@gmail.com a écrit :
Please do not spread information that you know nothing about (and I am
not an employee of AdaCore).

> [...] Now they have no advertising costs

They are certainly the company that invests the most in advertising, for
example by actively supporting Ada associations (including Ada-France
and Ada-Europe), providing material (recently, Ada-France had a booth at
Linux expo, where we distributed Barnes book and other valuable
material, provided free of charge by AdaCore), etc...

> almost no
>> development costs (what they have? a developer? two?)
They have tens of developers, actively improving the compiler and
environment tools.

-- 
J-P. Rosen
Adalog
2 rue du Docteur Lombard, 92441 Issy-les-Moulineaux CEDEX
Tel: +33 1 45 29 21 52, Fax: +33 1 45 29 25 00
http://www.adalog.fr


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

* Re: What exactly is the licensing situation with GNAT?
  2014-11-12 10:31                                 ` jm.tarrasa
  2014-11-12 10:43                                   ` J-P. Rosen
@ 2014-11-12 10:44                                   ` Hubert
  2014-11-12 12:06                                     ` Gour
                                                       ` (2 more replies)
  2014-11-12 11:18                                   ` David Botton
  2014-11-13  0:01                                   ` David Botton
  3 siblings, 3 replies; 241+ messages in thread
From: Hubert @ 2014-11-12 10:44 UTC (permalink / raw)



> There is a market of deep pockets for Ada (so far), but there is no market of small Ada developers. They have locked customers with deep pockets and  no competence, so they are not interested in other market.

I agree here. I guess though it's a bit of a chicken-egg problem. 
without software to get one started with Ada, there is no incentive to 
use Ada over C++ but without little guys using Ada, there is little 
incentive to write software others could use.

The Gnoga project might be something to get people started though. Part 
of what put me off two years ago was that Gtk wasn't working very well 
for me. The layout editor was messing up half my screen and looked not 
very user friendly, so my conclusion was without a decent User Interface 
library it makes little sense for me to invest more time.



---
This email is free from viruses and malware because avast! Antivirus protection is active.
http://www.avast.com



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

* Re: What exactly is the licensing situation with GNAT?
  2014-11-12  8:35                           ` Hubert
  2014-11-12  9:25                             ` Mark Carroll
@ 2014-11-12 10:53                             ` Simon Wright
  2014-11-12 11:19                               ` David Botton
  1 sibling, 1 reply; 241+ messages in thread
From: Simon Wright @ 2014-11-12 10:53 UTC (permalink / raw)


Hubert <herrdoktor@fumanchu.com> writes:

>> You might be interested in the Affero GPL?
>> http://www.gnu.org/licenses/why-affero-gpl.html
>
> No I'm not writing anything that I want to protect for myself.

I was aimng that remark more at David.

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

* Re: What exactly is the licensing situation with GNAT?
  2014-11-12  7:13                         ` Gour
@ 2014-11-12 10:56                           ` David Botton
  0 siblings, 0 replies; 241+ messages in thread
From: David Botton @ 2014-11-12 10:56 UTC (permalink / raw)


No possibility since FSF gnat works just as well.

David Botton


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

* Re: What exactly is the licensing situation with GNAT?
  2014-11-12  7:13                     ` Pascal Obry
                                         ` (2 preceding siblings ...)
  2014-11-12  9:30                       ` Mark Carroll
@ 2014-11-12 11:05                       ` David Botton
  2014-11-12 11:32                         ` Pascal Obry
  3 siblings, 1 reply; 241+ messages in thread
From: David Botton @ 2014-11-12 11:05 UTC (permalink / raw)


> Well another point of view is that it encourage Open Source softwares.

Not true and the reason the FSF compilers do not encumber their executables like AdaCore's GPL version. Even they, who are the father of Free software advocates, know that the GPL in this context is a poison to advocating the use of the GPL itself.

David Botton


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

* Re: What exactly is the licensing situation with GNAT?
  2014-11-12  7:09                       ` Gour
@ 2014-11-12 11:06                         ` David Botton
  0 siblings, 0 replies; 241+ messages in thread
From: David Botton @ 2014-11-12 11:06 UTC (permalink / raw)


>was not at all thinking about it when considering to use Ada to write
> (multi-platform) desktop app using GtkAda, but now I must say that it
> sheds different light on using Ada for GUI app.

Thankfully you can use Gnoga now and an FSF compiler :)

David Botton


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

* Re: What exactly is the licensing situation with GNAT?
  2014-11-12  9:37                               ` Hubert
  2014-11-12 10:31                                 ` jm.tarrasa
@ 2014-11-12 11:15                                 ` David Botton
  2014-11-13 23:56                                   ` David Botton
  2014-11-12 13:31                                 ` Jacob Sparre Andersen
  2014-11-12 22:47                                 ` Randy Brukardt
  3 siblings, 1 reply; 241+ messages in thread
From: David Botton @ 2014-11-12 11:15 UTC (permalink / raw)


> It is my opinion that what is missing is some sort of intermediate 
> license for people who just want to write small scale applications and 
> don't have the security requirements of big projects adn thus don't need 
> the support that Adacore offers.

I had a meeting this last Monday with AdaCore with a business model to make that possible and lucrative for them.

With or without them, I have a solution to this currently in the works and I'll give them a bit of time before I push the sans AdaCore solution.

I would rather do it with them despite what they did to the community with the GPL version, total disregard of it, they have put in the work on the compiler and the language that deserves giving them a chance to be part of the solution.

David Botton


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

* Re: What exactly is the licensing situation with GNAT?
  2014-11-12 10:31                                 ` jm.tarrasa
  2014-11-12 10:43                                   ` J-P. Rosen
  2014-11-12 10:44                                   ` Hubert
@ 2014-11-12 11:18                                   ` David Botton
  2014-11-13  0:01                                   ` David Botton
  3 siblings, 0 replies; 241+ messages in thread
From: David Botton @ 2014-11-12 11:18 UTC (permalink / raw)


>(what they have? a developer? two?) 

Huh? I can tell you right now they have a huge team and top notch. I don't like a decision they make but this is false information. There is tons of development going on.

David Botton

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

* Re: What exactly is the licensing situation with GNAT?
  2014-11-12 10:53                             ` Simon Wright
@ 2014-11-12 11:19                               ` David Botton
  0 siblings, 0 replies; 241+ messages in thread
From: David Botton @ 2014-11-12 11:19 UTC (permalink / raw)



> > No I'm not writing anything that I want to protect for myself.
> 
> I was aimng that remark more at David.

That is the bomb against the loophole, I don't want it closed. I'd almost say to not let people know about that effort :)

David Botton


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

* Re: What exactly is the licensing situation with GNAT?
  2014-11-12 11:05                       ` David Botton
@ 2014-11-12 11:32                         ` Pascal Obry
  2014-11-12 12:31                           ` David Botton
  0 siblings, 1 reply; 241+ messages in thread
From: Pascal Obry @ 2014-11-12 11:32 UTC (permalink / raw)


Le mercredi 12 novembre 2014 à 03:05 -0800, David Botton a écrit : 
> > Well another point of view is that it encourage Open Source softwares.
> 
> Not true and the reason the FSF compilers do not encumber their
> executables like AdaCore's GPL version. Even they, who are the father
> of Free software advocates, know that the GPL in this context is a
> poison to advocating the use of the GPL itself.

But then if the FSF compiler is used to create Open Source software
that's fine. But then again, what's wrong with the GPL one? At the end
you have an Open Source software :)

I understand that GNAT FSF can be used for closed sources software, but
again how many they are? I'm not saying there is nothing, but as I said
in my first post the GPL do cover the most majority of Ada projects
needs.

Regards,

-- 
  Pascal Obry /  Magny Les Hameaux (78)

  The best way to travel is by means of imagination

  http://v2p.fr.eu.org
  http://www.obry.net

  gpg --keyserver keys.gnupg.net --recv-key F949BD3B



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

* Re: What exactly is the licensing situation with GNAT?
  2014-11-12 10:44                                   ` Hubert
@ 2014-11-12 12:06                                     ` Gour
  2014-11-12 12:38                                       ` David Botton
  2014-11-12 13:20                                     ` Dmitry A. Kazakov
  2014-11-12 22:53                                     ` Randy Brukardt
  2 siblings, 1 reply; 241+ messages in thread
From: Gour @ 2014-11-12 12:06 UTC (permalink / raw)


On Wed, 12 Nov 2014 02:44:28 -0800
Hubert <herrdoktor@fumanchu.com> wrote:

> The Gnoga project might be something to get people started though.

I'm still not fully sold out on Gnoga and admit that (maybe) I'd be
happier having choice of maintained/stable wx/Qt bindings for
multi-platform GUI app.

> Part of what put me off two years ago was that Gtk wasn't working
> very well for me. The layout editor was messing up half my screen and
> looked not very user friendly, so my conclusion was without a decent
> User Interface library it makes little sense for me to invest more
> time.

...and hearing about yout past Gtk experience is not encouraging,
although Ada itself looks as one of the rare sane choices.


Sincerely,
Gour

-- 
A person who is not disturbed by the incessant flow of 
desires — that enter like rivers into the ocean, which is 
ever being filled but is always still — can alone achieve 
peace, and not the man who strives to satisfy such desires.



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

* Re: What exactly is the licensing situation with GNAT?
  2014-11-12 11:32                         ` Pascal Obry
@ 2014-11-12 12:31                           ` David Botton
  2014-11-12 13:17                             ` G.B.
  0 siblings, 1 reply; 241+ messages in thread
From: David Botton @ 2014-11-12 12:31 UTC (permalink / raw)



> But then if the FSF compiler is used to create Open Source software
> that's fine. But then again, what's wrong with the GPL one? At the end
> you have an Open Source software :)

Because for businesses that doesn't work. Most people like me who are happy to write and share GMGPL and GPL software are often making a living for companies that _WILL NOT_ allow GPL executables with their corporate IP mixed in.

So a GPL compiler _kills_ Ada use for everyone but those developing OS tools or other such projects.

We want to advocate Ada and the GPL on the runtime _HURTS_ it not helps it.

> I understand that GNAT FSF can be used for closed sources software, but
> again how many they are?

More than you can ever imagine. People are not posting their closed source use, but I can tell you that I've written more closed source Ada than public and so have most here.


> I'm not saying there is nothing, but as I said
> in my first post the GPL do cover the most majority of Ada projects
> needs.

That is _COMPLETELY_ false information and the same ridiculous argument I've heard from AdaCore trying to justify their shortsighted and harmful decision to GPL Virus the compiler and make it Shareware. They turned GNAT in to a toy.

The _reality_ is that the GPL compiler killed tons of __GPL__ projects and even more GMGPL projects.

Add to that the the GPL compiler has completely closed down all advocacy of Ada for the business world.

I'm going to make sure that changes :) hopefully with AdaCore, but even if without.

David Botton


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

* Re: What exactly is the licensing situation with GNAT?
  2014-11-12 12:06                                     ` Gour
@ 2014-11-12 12:38                                       ` David Botton
  2014-11-12 15:23                                         ` Gour
  0 siblings, 1 reply; 241+ messages in thread
From: David Botton @ 2014-11-12 12:38 UTC (permalink / raw)


> I'm still not fully sold out on Gnoga and admit that (maybe) I'd be
> happier having choice of maintained/stable wx/Qt bindings for
> multi-platform GUI app.

Nothing truly is for everyone :)

However once I have the native clients (which could even be using Qt) to build executables with embedded browsers and Gnoga it will replace most need and be far more compatible across platforms that Qt or Gtk.

Plus I should have native client for Android and eventually iOS coming.

The Gnoga project beyond the framework and coming tools is to push Ada to the business world and that will include fixing the GNAT image and providing solid professional use Ada compilers (with or without AdaCore, the offer is on AdaCore's table now, we will see).

David Botton

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

* Re: What exactly is the licensing situation with GNAT?
  2014-11-12 12:31                           ` David Botton
@ 2014-11-12 13:17                             ` G.B.
  2014-11-12 14:21                               ` David Botton
  0 siblings, 1 reply; 241+ messages in thread
From: G.B. @ 2014-11-12 13:17 UTC (permalink / raw)


On 12.11.14 13:31, David Botton wrote:
> Add to that the the GPL compiler has completely closed down all advocacy of Ada for the business world.

Has the GPL branch produced an opportunity for other compiler makers?
I understand that they, too, would mostly require customers with
deeper pockets.

As a new customer, I would be

(1) needing an affordable compiler (Ada 2005, generics working)
(2) be fine with reduced support (cf. Apple, MS, etc.!)

and compiler vendors would need

(3) protection against freeloaders destroying their full support
business.

For (3) to work, have contracts include a clause that limits
customers who want to employ the affordable compiler in unjust
enrichment.


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

* Re: What exactly is the licensing situation with GNAT?
  2014-11-12 10:44                                   ` Hubert
  2014-11-12 12:06                                     ` Gour
@ 2014-11-12 13:20                                     ` Dmitry A. Kazakov
  2014-11-12 22:53                                     ` Randy Brukardt
  2 siblings, 0 replies; 241+ messages in thread
From: Dmitry A. Kazakov @ 2014-11-12 13:20 UTC (permalink / raw)


On Wed, 12 Nov 2014 02:44:28 -0800, Hubert wrote:

> Part 
> of what put me off two years ago was that Gtk wasn't working very well 
> for me. The layout editor was messing up half my screen and looked not 
> very user friendly,

That likely is because GTK's philosophy of dealing with the layout is
different from the traditional fixed-layout approach as known in Windows
GDI or Delphi.

GTK's idea (similar to TeX, BTW) is that the layout and all widgets must be
resizable by default. Which is IMO far more natural, at least for desktop
applications. One of the advantages is that the UI looks well in all screen
resolutions, provided designed correctly. However, it may require a bit
more mental efforts while designing the layout and some courage not to go
easy GLADE path.

-- 
Regards,
Dmitry A. Kazakov
http://www.dmitry-kazakov.de


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

* Re: What exactly is the licensing situation with GNAT?
  2014-11-12  9:37                               ` Hubert
  2014-11-12 10:31                                 ` jm.tarrasa
  2014-11-12 11:15                                 ` David Botton
@ 2014-11-12 13:31                                 ` Jacob Sparre Andersen
  2014-11-12 14:33                                   ` David Botton
  2014-11-12 22:47                                 ` Randy Brukardt
  3 siblings, 1 reply; 241+ messages in thread
From: Jacob Sparre Andersen @ 2014-11-12 13:31 UTC (permalink / raw)


Hubert <herrdoktor@fumanchu.com> wrote:

> - If you're a little guy wanting to write a professional piece of
> software that you want to sell but it is not mission critical you are
> somewhat hanging in the air.

You should consider if Janus/Ada is relevant for you.  It has some
limitations (for Microsoft Windows, only Ada 95), but it also comes with
what appears to be the most Ada friendly Ada GUI library available
(CLAW).

Greetings,

Jacob
-- 
Growing older is compulsory. Growing up isn't.


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

* Re: What exactly is the licensing situation with GNAT?
  2014-11-12 13:17                             ` G.B.
@ 2014-11-12 14:21                               ` David Botton
  2014-11-12 18:31                                 ` john
  0 siblings, 1 reply; 241+ messages in thread
From: David Botton @ 2014-11-12 14:21 UTC (permalink / raw)


> > Add to that the the GPL compiler has completely closed down all advocacy of Ada for the business world.
> 
> Has the GPL branch produced an opportunity for other compiler makers?

The opportunity is there, however none have taken it. Partly because unfamiliarity with how to monetize Open Source projects, which in the case of most companies to date it is through selling "Support" not the code or executables as the product.

> I understand that they, too, would mostly require customers with
> deeper pockets.

It is not required. It is one market. The problem is that Ada vendors got lazy pursuing other venues since there was easy pickin' on the government cheese.

> As a new customer, I would be
> 
> (1) needing an affordable compiler (Ada 2005, generics working)
> (2) be fine with reduced support (cf. Apple, MS, etc.!)

And you are the majority software developers even for Ada. I placed a business proposal in AdaCore's hands this last Monday to target your market. That proposal lays out how I plan on doing it with their being part or not.


> and compiler vendors would need
> 
> (3) protection against freeloaders destroying their full support
> business.

No, what they need is a good product. AdaCore has that. No one that can afford their support walks away because of bad service. It was shortsighted thinking on their part to make their public version Shareware killing off all startups and serious business investments in Ada.

That is my goal to correct that. I'll be posting various aspects of the Gnoga business model soon, today I will be starting with its goals in another post.

> For (3) to work, have contracts include a clause that limits
> customers who want to employ the affordable compiler in unjust
> enrichment.

Unjust.... I am afraid that thinking is pre-the FSF movement, Gnat is built on GCC and has to be released GPL and the US taxpayer money which also required it be freely available, etc.

Would you say it is unjust that AdaCore is profiting on GCC?

AdaCore has _not been_ unjust, even though not super timely, they have given back to the FSF updates.

They are just outside the "spirit" and "intent" of the above and doing things to hurt Ada advocacy outside of their niche market.

Yes Stallman's position is that he wished he could put a GPL Virus in the compiler, but he states clearly he _didn't_ to advocate the use of Free software...

So let's see AdaCore is not encouraging Free software development OR Ada advocacy by having replaced the runtime on their public version.

What they did was create a Shareware version of GNAT that is intended to make others think that GNAT can not be used for professional use if not their Pro version.

I still am happy they still put out the GPL version despite that it is Shareware. Since without it they would have totally killed the Ada community not just maimed it. 

I am certainly hoping they continue to put out a GPL version but I am pushing and _investing_ time and money with the hope they will match to go back to GMGPL and be part of the new movement to push Ada for general purpose application development.

David Botton




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

* Re: What exactly is the licensing situation with GNAT?
  2014-11-12 13:31                                 ` Jacob Sparre Andersen
@ 2014-11-12 14:33                                   ` David Botton
  2014-11-12 15:07                                     ` David Botton
  2014-11-12 23:06                                     ` Randy Brukardt
  0 siblings, 2 replies; 241+ messages in thread
From: David Botton @ 2014-11-12 14:33 UTC (permalink / raw)



> You should consider if Janus/Ada is relevant for you.  It has some
> limitations (for Microsoft Windows, only Ada 95), but it also comes with
> what appears to be the most Ada friendly Ada GUI library available
> (CLAW).

CLAW and Janus, having used both are a _very_ nice top notch compiler and library combo.

However, GWindows and GNATCOM (http://sourceforge.net/projects/gnavi/) are more capable, very well maintained, open source, and easier to use and they work well with the windows FSF version of GNAT that comes with MinGW. You can use Ada 2005 and Ada 2012 with them as a result too.

Despite the lack of PR (not sure why they are not listed in the AdaIC.org list of packages for example. It is probably the largest ada framework used outside of those distributed today by AdaCore in the world.

When I created them they were placed under the GMGPL so you can enjoy using them in commercial products and I have and hundreds others do.

When I abandoned public Ada projects and advocacy ten years ago, _because_ those libraries are open source people like Gautier de Montmollin and others were willing to get involved and are even running the show on them now. So Open Source is a critical part of success today. You just have to be creative to know how to monetize it.

For application development MinGW is absolutely usable for professional development.

Same goes for other platform GNATs and you should have no qualms of using it for non-safety critical work.

David Botton

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

* Re: What exactly is the licensing situation with GNAT?
  2014-11-12 14:33                                   ` David Botton
@ 2014-11-12 15:07                                     ` David Botton
  2014-11-12 16:39                                       ` Simon Wright
  2014-11-12 23:06                                     ` Randy Brukardt
  1 sibling, 1 reply; 241+ messages in thread
From: David Botton @ 2014-11-12 15:07 UTC (permalink / raw)


Ok it is probably an exaggeration that GWindows / Gnatcom is the largest non AdaCore framework, some older stuff like Booch components etc probably still beat it. :)

David Botton


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

* Re: What exactly is the licensing situation with GNAT?
  2014-11-12 12:38                                       ` David Botton
@ 2014-11-12 15:23                                         ` Gour
  2014-11-12 16:30                                           ` David Botton
  0 siblings, 1 reply; 241+ messages in thread
From: Gour @ 2014-11-12 15:23 UTC (permalink / raw)


On Wed, 12 Nov 2014 04:38:34 -0800 (PST)
David Botton <david@botton.com> wrote:

> However once I have the native clients (which could even be using Qt)
> to build executables with embedded browsers and Gnoga it will replace
> most need and be far more compatible across platforms that Qt or Gtk.

Well, I mentioned wx and Qt since both are suitable for desktop apps
offering rich set of widgets. Wx provides native look on Mac/Win -
nothing against GTK being 'native' on Linux, although there is work on
wxQt port as well. Otoh, Qt is also very rich toolkit and with good
support, even for monibile OS-es.

It seems that Gnoga *could* be able to be used instead. Moreover, let me
say that "It doesn't matter if a cat is black or white, so long as it
catches mice." ;)

> Plus I should have native client for Android and eventually iOS
> coming.

How would that go along with desktop clients?

> The Gnoga project beyond the framework and coming tools is to push
> Ada to the business world and that will include fixing the GNAT image
> and providing solid professional use Ada compilers (with or without
> AdaCore, the offer is on AdaCore's table now, we will see).

This is very noble attempt - Ada looks as capable as all other so called
'modern' languages both in terms of features and performance as well, so
if you succeed in your attempt, it will be great service for Ada
community. I'm very thankful to you for it!!


Sincerely,
Gour

-- 
One who is not disturbed in mind even amidst the threefold 
miseries or elated when there is happiness, and who is free 
from attachment, fear and anger, is called a sage of steady mind.


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

* Re: What exactly is the licensing situation with GNAT?
  2014-11-12 15:23                                         ` Gour
@ 2014-11-12 16:30                                           ` David Botton
  0 siblings, 0 replies; 241+ messages in thread
From: David Botton @ 2014-11-12 16:30 UTC (permalink / raw)



> How would that go along with desktop clients?

Gnoga uses the same code base for desktop, web or mobile.

On desktop and android/ios instead of websockets it is possible to just get a direct hook in to the webkit/ie/gecko engine and talk direct. I have some concept code for webkit on Mac and ie and tested a few methods for gecko (XULRunner). It is a lower priority for the moment since can run on all those platforms with websockets now.

> Ada looks as capable as all other so called
> 'modern' languages both in terms of features and performance as well

I believe more so :)

David Botton


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

* Re: What exactly is the licensing situation with GNAT?
  2014-11-12 15:07                                     ` David Botton
@ 2014-11-12 16:39                                       ` Simon Wright
  0 siblings, 0 replies; 241+ messages in thread
From: Simon Wright @ 2014-11-12 16:39 UTC (permalink / raw)


David Botton <david@botton.com> writes:

> Ok it is probably an exaggeration that GWindows / Gnatcom is the
> largest non AdaCore framework, some older stuff like Booch components
> etc probably still beat it. :)

There have been 412 downloads of the BCs from Sourceforge[1] in the year
to date, to my surprise.

The last open ticket was created in January 2007.

I must admit I haven't checked the BCs out with Ada 2012 ...

[1] http://sourceforge.net/p/booch95/

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

* Re: What exactly is the licensing situation with GNAT?
  2014-11-12 14:21                               ` David Botton
@ 2014-11-12 18:31                                 ` john
  2014-11-12 18:56                                   ` David Botton
  2014-11-13  1:48                                   ` Simon Clubley
  0 siblings, 2 replies; 241+ messages in thread
From: john @ 2014-11-12 18:31 UTC (permalink / raw)



> Yes Stallman's position is that he wished he could put a GPL Virus in the compiler

Have you talked to him personally about that? To me this seems like a pretty unfair statement, given that most if not all other FSF-backed programming languages do not encumber executables with the GPL.

The runtime engine should have been put under LGPL and wasn't (perhaps because LGPL didn't exist at that time?), but I would be surprised to hear that this was in any way RMS's decision. 


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

* Re: What exactly is the licensing situation with GNAT?
  2014-11-12 18:31                                 ` john
@ 2014-11-12 18:56                                   ` David Botton
  2014-11-12 19:24                                     ` David Botton
  2014-11-13  1:48                                   ` Simon Clubley
  1 sibling, 1 reply; 241+ messages in thread
From: David Botton @ 2014-11-12 18:56 UTC (permalink / raw)



> Have you talked to him personally about that? To me this seems like a pretty unfair statement, given that most if not all other FSF-backed programming languages do not encumber executables with the GPL.

He wrote it on the FSF website and why he chose _not_ to GPL the runtimes.

> The runtime engine should have been put under LGPL and wasn't (perhaps because LGPL didn't exist at that time?), but I would be surprised to hear that this was in any way RMS's decision.

The FSF of the GNAT version is not encumbered and no, he would not do such a thing for the same reasons he wrote in general about not making the other GCC runtimes GPL. This was an AdaCore decision to Shareware a version of the compiler they put out publicly. Disclaimer: AdaCore have every right to do so as well.

David Botton





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

* Re: What exactly is the licensing situation with GNAT?
  2014-11-12 18:56                                   ` David Botton
@ 2014-11-12 19:24                                     ` David Botton
  0 siblings, 0 replies; 241+ messages in thread
From: David Botton @ 2014-11-12 19:24 UTC (permalink / raw)


> He wrote it on the FSF website and why he chose _not_ to GPL the runtimes.

This was quoted earlier I think:

"However, the FSF decided long ago to allow developers to use GCC's libraries to compile any program, regardless of its license. Developing nonfree software is not good for society, and we have no obligation to make it easier. We decided to permit this because forbidding it seemed likely to backfire, and because using small libraries to limit the use of GCC seemed like the tail wagging the dog."

So now for Ada this would not only be like the tail wagging the dog, but the toe jam wagging the dog.....


David Botton

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

* Re: What exactly is the licensing situation with GNAT?
  2014-11-12  9:37                               ` Hubert
                                                   ` (2 preceding siblings ...)
  2014-11-12 13:31                                 ` Jacob Sparre Andersen
@ 2014-11-12 22:47                                 ` Randy Brukardt
  2014-11-12 23:23                                   ` Britt
  2014-11-13  7:46                                   ` George Curioso
  3 siblings, 2 replies; 241+ messages in thread
From: Randy Brukardt @ 2014-11-12 22:47 UTC (permalink / raw)


"Hubert" <herrdoktor@fumanchu.com> wrote in message 
news:zTF8w.509165$No4.167804@fx19.iad...
...
> - If you're a little guy wanting to write a professional piece of software 
> that you want to sell but it is not mission critical you are somewhat 
> hanging in the air.

You could of course use a different, commercial Ada compiler, rather than 
insisting on GNAT. At least Janus/Ada still costs $195 for the personal 
version and $500 for the professional version. See www.rrsoftware.com. 
(Disclaimer for new people here, I'm a co-founder and primary author of 
Janus/Ada, so I'm a bit biased. :-)

> It is my opinion that what is missing is some sort of intermediate license 
> for people who just want to write small scale applications and don't have 
> the security requirements of big projects adn thus don't need the support 
> that Adacore offers. Something like Turbo Pascal in the past or maybe even 
> Visual Studio in the Personal Edition or so.

Aonix used to have an ObjectAda version like that, but I heard that they got 
rid of it as they couldn't afford to support it. Janus/Ada is in that price 
range as well, but I have to admit the same is true -- there isn't enough 
business to justify working on it full-time. I have to do standardization 
stuff and ACATS stuff to make ends meet.

> Personally I wouldn't mind paying a few 100$ right now for a license that 
> would allow me to write closed source applications even if I get no 
> support or just some way to report bugs which may or may not be fixed 
> later.

See note about Janus/Ada above. ;-)

                   Randy Brukardt, R.R. Software, Inc.



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

* Re: What exactly is the licensing situation with GNAT?
  2014-11-12 10:44                                   ` Hubert
  2014-11-12 12:06                                     ` Gour
  2014-11-12 13:20                                     ` Dmitry A. Kazakov
@ 2014-11-12 22:53                                     ` Randy Brukardt
  2014-11-12 23:21                                       ` David Botton
                                                         ` (4 more replies)
  2 siblings, 5 replies; 241+ messages in thread
From: Randy Brukardt @ 2014-11-12 22:53 UTC (permalink / raw)


"Hubert" <herrdoktor@fumanchu.com> wrote in message 
news:aSG8w.567817$Q61.266688@fx13.iad...
...
> The Gnoga project might be something to get people started though. Part of 
> what put me off two years ago was that Gtk wasn't working very well for 
> me. The layout editor was messing up half my screen and looked not very 
> user friendly, so my conclusion was without a decent User Interface 
> library it makes little sense for me to invest more time.

Unfortunately, if it is like most of David's other software, it won't work 
on other Ada compilers. (That is a common problem, not really picking on 
David here, a lot of supposedly Ada software is really GNAT software.) That 
locks you into GNAT, and as you note, the costs for getting regular support 
for GNAT are not really affordable.

One of the reasons we built Claw was to provide a Windows interface that 
would work on any Ada 95 compiler for Windows, not just GNAT. That requires 
displine and testing that most hobbyests wouldn't bother with.

                                         Randy.




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

* Re: What exactly is the licensing situation with GNAT?
  2014-11-12 14:33                                   ` David Botton
  2014-11-12 15:07                                     ` David Botton
@ 2014-11-12 23:06                                     ` Randy Brukardt
  2014-11-12 23:31                                       ` David Botton
  1 sibling, 1 reply; 241+ messages in thread
From: Randy Brukardt @ 2014-11-12 23:06 UTC (permalink / raw)


"David Botton" <david@botton.com> wrote in message 
news:bb4c0cb4-65d3-4081-a47f-10e87bcd91f1@googlegroups.com...

>> You should consider if Janus/Ada is relevant for you.  It has some
>> limitations (for Microsoft Windows, only Ada 95), but it also comes with
>> what appears to be the most Ada friendly Ada GUI library available
>> (CLAW).

>CLAW and Janus, having used both are a _very_ nice top notch compiler and 
>library combo.

>However, GWindows and GNATCOM (http://sourceforge.net/projects/gnavi/) are 
>more capable, very well >maintained, open source, and easier to use and 
>they work well with the windows FSF version of GNAT that comes >with MinGW. 
>You can use Ada 2005 and Ada 2012 with them as a result too.

GWindows is still GNAT-only, right? If you want to use a different Ada 
compiler, Claw is really your only option.

>Despite the lack of PR (not sure why they are not listed in the AdaIC.org 
>list of packages for example.
>It is probably the largest ada framework used outside of those distributed 
>today by AdaCore in the world.

The AdaIC page is a list of locations to look for free software, not a "list 
of packages". GWindows is in libre (at least it used to be), so it doesn't 
get a separate listing. The same is true Dmitry's various packages, Tero's 
stuff, and so on.

The page really is just a listing of places to look, and it mainly is just a 
list of links that we feed to the search engine. The intent was that the way 
to find any package was to use the search engine 
(http://www.adaic.org/ada-resources/ada-on-the-web/) to find possibilities.

(Besides, I thought AdaPower had such a list of packages. Which hasn't been 
updated in forever... :-)

                                                          Randy.


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

* Re: What exactly is the licensing situation with GNAT?
  2014-11-12 22:53                                     ` Randy Brukardt
@ 2014-11-12 23:21                                       ` David Botton
  2014-11-13  1:49                                         ` Randy Brukardt
  2014-11-14  4:51                                         ` Randy Brukardt
  2014-11-13  0:48                                       ` What exactly is the licensing situation with GNAT? sbelmont700
                                                         ` (3 subsequent siblings)
  4 siblings, 2 replies; 241+ messages in thread
From: David Botton @ 2014-11-12 23:21 UTC (permalink / raw)



> Unfortunately, if it is like most of David's other software, it won't work 
> on other Ada compilers

Not true. Janus is the only Windows compiler with an issue.

There was an ABI issue with using Janus that was too much effort for me to consider as a volunteer effort for  a non Open Source compiler, however, GnatCOM was used  on Aonix OpenAda and in Rational's Ada compiler. Privately I can give you a list of projects where I know it was used if you like not on GNAT.

I do not know if GWindows was used on other compilers, but other than the fact that I tend to use Object'Img there is nothing GNAT specific about the project. Since GNAT is the only open source compiler, it is the only one I choose to support until there are others.


> That requires displine and testing that most hobbyests wouldn't bother with.

I think that you confuse Open Source developers with "Hobbyest", that is usually not the case at all.

GnatCOM was a professional supported product by GNAT.

GWindows is used as a professional product by fortune 500 companies. I didn't go through with my plan 10 years ago with bringing Ada to the business sector because of license changes in GNAT to the public version and various other issues. Using FSF compilers in those days was not a big option.

There is nothing in Gnoga other than the use again of Object'Img preventing it from being used on Janus if it ever gets updated to Ada 2012. I'd be happy to help you do the work to replace AWS if needed with your own implementation of Websockets, etc.

I think that for many people they have not "figured" out how to make Open Source work to their advantage. It has in my career. 

I'd be happy to talk to you privately any time about how to make Janus work in an Open Source environment provided you could open it. If you can't perhaps we can talk about options for a new Open Source compiler. I really liked Janus.

Your CLAW Open Source version came too late, if it was a year before I probably would have forked it and used it instead of created GWindows.

David Botton



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

* Re: What exactly is the licensing situation with GNAT?
  2014-11-12 22:47                                 ` Randy Brukardt
@ 2014-11-12 23:23                                   ` Britt
  2014-11-13  2:10                                     ` Randy Brukardt
  2014-11-13 16:51                                     ` Tero Koskinen
  2014-11-13  7:46                                   ` George Curioso
  1 sibling, 2 replies; 241+ messages in thread
From: Britt @ 2014-11-12 23:23 UTC (permalink / raw)


On Wednesday, November 12, 2014 5:47:24 PM UTC-5, Randy Brukardt wrote:

> 
> You could of course use a different, commercial Ada compiler, rather than 
> insisting on GNAT. At least Janus/Ada still costs $195 for the personal 
> version and $500 for the professional version. See www.rrsoftware.com. 

Randy,

I remember buying one of your early versions of of Janus Ada for $99. It might have been around 1989 or so. I might buy the current personal edition if I could be sure it would work on Windows 7 or 8.1.

Your website appears a bit dated with the references to Windows 95/NT and Rational Apex NT (which I used in the past before Rational killed it).

What is the status of Janus Ada and CLAW with regard to Windows 7 & 8?

- Britt

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

* Re: What exactly is the licensing situation with GNAT?
  2014-11-12 23:06                                     ` Randy Brukardt
@ 2014-11-12 23:31                                       ` David Botton
  2014-11-13  1:59                                         ` Randy Brukardt
  0 siblings, 1 reply; 241+ messages in thread
From: David Botton @ 2014-11-12 23:31 UTC (permalink / raw)


> GWindows is still GNAT-only, right? If you want to use a different Ada 
> compiler, Claw is really your only option.

Nope, would be a simple compile and change a few lines here and there for Object'Img.

It could be it has been used on other compilers, I didn't keep track. Others run the project now and may know.

Also since others maintain it now, not myself, there may be Ada 2005 and 2012 code already in it. Perhaps some day if there as actually another compiler for 2005 or 2012 we can see.

> The page really is just a listing of places to look, and it mainly is just a 
> list of links that we feed to the search engine. The intent was that the way 
> to find any package was to use the search engine 
> (http://www.adaic.org/ada-resources/ada-on-the-web/) to find possibilities.

Thanks for the explantation.

> (Besides, I thought AdaPower had such a list of packages. Which hasn't been 
> updated in forever... :-)

As I said in a few threads, I abandoned all public Ada projects 10 years ago with the start of Shareware GNAT. Now that there is a professional grade unencumbered open source compiler again (GNAT-FSF), I have taken an interest again to give Ada one more try. I think it is worth it, I assume you do to :)

I'd love to see you involved Randy on making the new push of Ada into the Application's market. You have more experience than many others in the Ada world in that space (most have Zero) and it would serve you well in it. Contact me by e-mail and we can talk more.

BTW Gnoga would work well with Janus although it would take some work to backport to Ada 95 and It would need a websocket implementation other than AWS which requires 2012.

Given that, yes AdaPower will be updated soon, using Gnoga actually :)

David Botton


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

* Re: What exactly is the licensing situation with GNAT?
  2014-11-12 10:31                                 ` jm.tarrasa
                                                     ` (2 preceding siblings ...)
  2014-11-12 11:18                                   ` David Botton
@ 2014-11-13  0:01                                   ` David Botton
  2014-11-13  0:03                                     ` David Botton
  3 siblings, 1 reply; 241+ messages in thread
From: David Botton @ 2014-11-13  0:01 UTC (permalink / raw)


> Now they have no advertising costs, almost no development costs (what they have? a developer? two?) whatever they get from deep pockets is almost net profit.

Some recent upstream from AdaCore gcc/ada: https://gcc.gnu.org/git/?p=gcc.git;a=history;f=gcc/ada

I may not agree with AdaCore's making a Shareware GNAT, because it harms potential use of Ada in markets they don't even start to understand, but they do good work and a lot of it.

I would like them for the benefit of Ada in all markets to consider other approaches as I presented to them. However if they don't my plan is to drive the GNAT-FSF compilers into those markets as the _Professional_ compilers they are. Which ultimately will still net them the "big fish" in those markets.

AdaCore is not "costing" on the results of the government funds if giving back to the FSF, only being very shortsighted.

David Boton


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

* Re: What exactly is the licensing situation with GNAT?
  2014-11-13  0:01                                   ` David Botton
@ 2014-11-13  0:03                                     ` David Botton
  0 siblings, 0 replies; 241+ messages in thread
From: David Botton @ 2014-11-13  0:03 UTC (permalink / raw)


> AdaCore is not "costing"

coasting 

You get the point :)


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

* Re: What exactly is the licensing situation with GNAT?
  2014-11-12 22:53                                     ` Randy Brukardt
  2014-11-12 23:21                                       ` David Botton
@ 2014-11-13  0:48                                       ` sbelmont700
  2014-11-13  1:31                                         ` Randy Brukardt
  2014-11-13  1:29                                       ` Randy Brukardt
                                                         ` (2 subsequent siblings)
  4 siblings, 1 reply; 241+ messages in thread
From: sbelmont700 @ 2014-11-13  0:48 UTC (permalink / raw)


On Wednesday, November 12, 2014 5:53:48 PM UTC-5, Randy Brukardt wrote:
> 
> One of the reasons we built Claw was to provide a Windows interface that 
> would work on any Ada 95 compiler for Windows, not just GNAT. That requires 
> displine and testing that most hobbyests wouldn't bother with.
> 
>                                          Randy.

I was under the impression that any Win32 Ada program was by definition compiler-specific, since there is no standardized way to import stdcall subprograms? 

-sb


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

* Re: What exactly is the licensing situation with GNAT?
  2014-11-12 22:53                                     ` Randy Brukardt
  2014-11-12 23:21                                       ` David Botton
  2014-11-13  0:48                                       ` What exactly is the licensing situation with GNAT? sbelmont700
@ 2014-11-13  1:29                                       ` Randy Brukardt
  2014-11-13  8:03                                         ` Georg Bauhaus
  2014-11-13 16:26                                         ` Tero Koskinen
  2014-11-13  1:54                                       ` Hubert
  2014-11-13  8:03                                       ` Pete Ballmer
  4 siblings, 2 replies; 241+ messages in thread
From: Randy Brukardt @ 2014-11-13  1:29 UTC (permalink / raw)


"Randy Brukardt" <randy@rrsoftware.com> wrote in message 
news:m40odq$tdv$1@loke.gir.dk...
...
> One of the reasons we built Claw was to provide a Windows interface that 
> would work on any Ada 95 compiler for Windows, not just GNAT. That 
> requires displine and testing that most hobbyests wouldn't bother with.

I should have noted (beyond spelling better in the above!) that the Ada 2012 
pragma Profile (No_Implementation_Extensions) should help a great deal with 
that. If that's put into a package, the majority of of 
implementation-defined things would be identified. But it can't identify 
everything.

                                Randy.


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

* Re: What exactly is the licensing situation with GNAT?
  2014-11-12  7:41                       ` Simon Wright
@ 2014-11-13  1:30                         ` Simon Clubley
  0 siblings, 0 replies; 241+ messages in thread
From: Simon Clubley @ 2014-11-13  1:30 UTC (permalink / raw)


On 2014-11-12, Simon Wright <simon@pushface.org> wrote:
> Simon Clubley <clubley@remove_me.eisner.decus.org-Earth.UFP> writes:
>
>> PS: I've been around the Ada world long enough to remember the days
>> when GtkAda was GMGPL.
>
> "was" -> "stopped being" ?

That will work as well :-), but what I was trying to say was there was
a time when GtkAda was GMGPL and I chose to use it because it was GMGPL.

So much for posting last thing at night. :-)

Simon.

-- 
Simon Clubley, clubley@remove_me.eisner.decus.org-Earth.UFP
Microsoft: Bringing you 1980s technology to a 21st century world

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

* Re: What exactly is the licensing situation with GNAT?
  2014-11-13  0:48                                       ` What exactly is the licensing situation with GNAT? sbelmont700
@ 2014-11-13  1:31                                         ` Randy Brukardt
  0 siblings, 0 replies; 241+ messages in thread
From: Randy Brukardt @ 2014-11-13  1:31 UTC (permalink / raw)


<sbelmont700@gmail.com> wrote in message 
news:bb27f98c-bf30-4287-acb3-7ee2b284f22f@googlegroups.com...
> On Wednesday, November 12, 2014 5:53:48 PM UTC-5, Randy Brukardt wrote:
>>
>> One of the reasons we built Claw was to provide a Windows interface that
>> would work on any Ada 95 compiler for Windows, not just GNAT. That 
>> requires
>> displine and testing that most hobbyests wouldn't bother with.
>>
>>                                          Randy.
>
> I was under the impression that any Win32 Ada program was by definition 
> compiler-specific,
>since there is no standardized way to import stdcall subprograms?

I suppose that's formally true ("stdcall" not appearing in the RM), but 
every Ada compiler for Windows that I know of uses "stdcall" for the 
convention name. (Janus/Ada was the only one that didn't initially, and that 
was easily solved. :-) So practically, that's not a portability problem. We 
were able to put the differences into a handful of packages (mostly having 
to do with linking pragmas).

                                    Randy.




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

* Re: What exactly is the licensing situation with GNAT?
  2014-11-12 18:31                                 ` john
  2014-11-12 18:56                                   ` David Botton
@ 2014-11-13  1:48                                   ` Simon Clubley
  2014-11-13  7:40                                     ` Harry Bolger
  1 sibling, 1 reply; 241+ messages in thread
From: Simon Clubley @ 2014-11-13  1:48 UTC (permalink / raw)


On 2014-11-12, john@peppermind.com <john@peppermind.com> wrote:
>
>> Yes Stallman's position is that he wished he could put a GPL Virus in the compiler
>
> Have you talked to him personally about that? To me this seems like
> a pretty unfair statement, given that most if not all other FSF-backed
> programming languages do not encumber executables with the GPL.
>

Actually, it's an accurate statement IIRC.

David's already posted a statement which I was unaware of and which backs
up my memory that in the very early days of gcc, RMS proposed that _any_
output from the gcc compiler would also be covered by the GPL.

IIRC, the backlash from that was so huge (by the standards of the time)
that RMS made it formally clear this wasn't, and would not be, the case.

Simon.

-- 
Simon Clubley, clubley@remove_me.eisner.decus.org-Earth.UFP
Microsoft: Bringing you 1980s technology to a 21st century world

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

* Re: What exactly is the licensing situation with GNAT?
  2014-11-12 23:21                                       ` David Botton
@ 2014-11-13  1:49                                         ` Randy Brukardt
  2014-11-13  8:18                                           ` Georg Bauhaus
  2014-11-14  4:51                                         ` Randy Brukardt
  1 sibling, 1 reply; 241+ messages in thread
From: Randy Brukardt @ 2014-11-13  1:49 UTC (permalink / raw)


"David Botton" <david@botton.com> wrote in message 
news:19fa65d4-72c9-44ab-b44b-4ea0929c18f2@googlegroups.com...

>> Unfortunately, if it is like most of David's other software, it won't 
>> work
>> on other Ada compilers

>Not true. Janus is the only Windows compiler with an issue.

>There was an ABI issue with using Janus that was too much effort for me to 
>consider as a
>volunteer effort for  a non Open Source compiler, however, GnatCOM was used 
>on
>Aonix OpenAda and in Rational's Ada compiler. Privately I can give you a 
>list of projects
>where I know it was used if you like not on GNAT.

Didn't even remember GnatCOM. (With a name like that, why would anyone 
expect it to work with any other Ada compiler? Marketing, as you mention, is 
important.)

>I do not know if GWindows was used on other compilers, but other than the 
>fact that
>I tend to use Object'Img there is nothing GNAT specific about the project. 
>Since
>GNAT is the only open source compiler, it is the only one I choose to 
>support until
>there are others.

Understand the latter. Have you ever tried profile 
(No_Implementation_Extensions)? My experience is that people use a lot of 
them without even being aware. (That's true for me, too, BTW).

My recollection is that GWindows depended on Unrestricted_Access (a huge 
amount of GNAT software does), and that really only works with the GCC 
runtime model. (The use of trampolines caused lots of problems on Windows; 
AdaCore has finally gotten rid of most of those.)

>> That requires displine and testing that most hobbyests wouldn't bother 
>> with.
>
>I think that you confuse Open Source developers with "Hobbyest", that is 
>usually not the case at all.

Well, the vast majority of the Ada software posted here is not 
professionally developed. The authors may be professional, but the software 
is a side-line at best. That's what I was thinking of when I said the above.

>GnatCOM was a professional supported product by GNAT.

Right, but those sorts of products have even less incentive to work on other 
compilers. They only really care about their own compiler.

>GWindows is used as a professional product by fortune 500 companies. I 
>didn't go
>through with my plan 10 years ago with bringing Ada to the business sector 
>because
>of license changes in GNAT to the public version and various other issues. 
>Using FSF
>compilers in those days was not a big option.

It did however cannibalize our Claw business such that it made it 
non-economic to put major work into it, and of course poliferated 
interfaces. One of the major goals that we had for Claw was to make a 
semi-standard interface for Windows so that everyone could use a single 
interface.

>There is nothing in Gnoga other than the use again of Object'Img preventing 
>it from
>being used on Janus if it ever gets updated to Ada 2012. I'd be happy to 
>help you do
>the work to replace AWS if needed with your own implementation of 
>Websockets, etc.

I'm not sure I have the time; I've spread myself too thin to do anything 
well which is not helping Ada much. (And of course the "updating to Ada 
2012" probably ought to have priority.) But I'll keep that in mind should 
the need arise.

>I think that for many people they have not "figured" out how to make Open 
>Source
>work to their advantage. It has in my career.
>
>I'd be happy to talk to you privately any time about how to make Janus work 
>in an
>Open Source environment provided you could open it. If you can't perhaps we 
>can
>talk about options for a new Open Source compiler. I really liked Janus.

I've seriously considered that, but I'm dubious that a business model based 
on support alone would work (we always had problems selling support 
contracts). Anyway, let's take this off line; my e-mail hasn't changed since 
the last time we talked. :-)

>Your CLAW Open Source version came too late, if it was a year before I 
>probably
>would have forked it and used it instead of created GWindows.

That's of course the big annoyance for me. We'd always intended to open 
source the binding once the government obligation had been cleared. We 
didn't do it immediately because I didn't want it forked until it was pretty 
well tested (and the because the Builder had to be good enough to stand on 
its own). Had you talked to me before starting GWindows, I'm pretty sure we 
could have worked something out (given that there wasn't any major 
difference between our plans and your plans).

But that's water under the dam at this point. I promise I'll forget about 
Web-Claw. :-)

                                  Randy.




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

* Re: What exactly is the licensing situation with GNAT?
  2014-11-12 22:53                                     ` Randy Brukardt
                                                         ` (2 preceding siblings ...)
  2014-11-13  1:29                                       ` Randy Brukardt
@ 2014-11-13  1:54                                       ` Hubert
  2014-11-13  2:04                                         ` Hubert
                                                           ` (3 more replies)
  2014-11-13  8:03                                       ` Pete Ballmer
  4 siblings, 4 replies; 241+ messages in thread
From: Hubert @ 2014-11-13  1:54 UTC (permalink / raw)


> Unfortunately, if it is like most of David's other software, it won't work
> on other Ada compilers. (That is a common problem, not really picking on
> David here, a lot of supposedly Ada software is really GNAT software.) That
> locks you into GNAT, and as you note, the costs for getting regular support
> for GNAT are not really affordable.

Let's face it: Gnat is the only compiler out there that has any chance 
of making it to mainstream market. I contacted the other two vendors of 
Ada compilers (forgot the names, I refer to them internally as the green 
and the silver/blue website). they dont have prices on their sites, have 
cool pics of fighter jets and only support up to Ada 95. I wanted to ask 
for prices, evaluation version and I didn't even get a response, so I 
guess unless you have "IBM" or "Pentagon" in your email domain, they 
don't even read your email.



---
This email is free from viruses and malware because avast! Antivirus protection is active.
http://www.avast.com

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

* Re: What exactly is the licensing situation with GNAT?
  2014-11-12 23:31                                       ` David Botton
@ 2014-11-13  1:59                                         ` Randy Brukardt
  2014-11-13  2:21                                           ` David Botton
  0 siblings, 1 reply; 241+ messages in thread
From: Randy Brukardt @ 2014-11-13  1:59 UTC (permalink / raw)


"David Botton" <david@botton.com> wrote in message 
news:c9535bc6-4e37-4e92-a2a1-3a5f7280d324@googlegroups.com...
>> GWindows is still GNAT-only, right? If you want to use a different Ada
>> compiler, Claw is really your only option.
>
>Nope, would be a simple compile and change a few lines here and there for 
>Object'Img.
>
>It could be it has been used on other compilers, I didn't keep track. 
>Others run
>the project now and may know.

I remember that another vendor I know tried that and told me that it was 
very difficult to get to work on their implementation. Dunno if that was an 
older version or if it is still true. (It would surely be worse on Janus/Ada 
with the weird System.Address size and the like.)

>Also since others maintain it now, not myself, there may be Ada 2005 and 
>2012 code
>already in it. Perhaps some day if there as actually another compiler for 
>2005 or 2012
>we can see.

You're sounding like Dewar. :-) The Rational/IBM compiler is a full 
implementation of Ada 2005. Janus/Ada supports some Ada 2005 stuff, and will 
support more when I get a round tuit, as well as some Ada 2012 stuff.

...
>> (Besides, I thought AdaPower had such a list of packages. Which hasn't 
>> been
>> updated in forever... :-)
>
>As I said in a few threads, I abandoned all public Ada projects 10 years 
>ago with the
>start of Shareware GNAT. Now that there is a professional grade 
>unencumbered open
>source compiler again (GNAT-FSF), I have taken an interest again to give 
>Ada one
>more try. I think it is worth it, I assume you do to :)
>
>I'd love to see you involved Randy on making the new push of Ada into the
>Application's market. You have more experience than many others in the Ada
>world in that space (most have Zero) and it would serve you well in it. 
>Contact
>me by e-mail and we can talk more.

Write me with what you have in mind.

>BTW Gnoga would work well with Janus although it would take some work to
>backport to Ada 95 and It would need a websocket implementation other than
>AWS which requires 2012.

Well, Ada 95 + 10% of Ada 2005. Not sure what "websocket" you are talking 
about here. NC.Sockets is a regular, portable sockets implementation that 
works on both Windows and Linux. ("NC" ==> "Not Claw", it's based on the 
Claw sockets implementation, but with the Windows-specific stuff filed off. 
Tero Koskinen built a Linux version which I've been using for that part. 
It's BSD-licensed. I need to finish that up one of these days, as the Ada 
search engine and Trash-finder both depend on it, and I need to port them 
from our obsolete W2K server to the newish Linux server.)

>Given that, yes AdaPower will be updated soon, using Gnoga actually :)

                         Randy.


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

* Re: What exactly is the licensing situation with GNAT?
  2014-11-13  1:54                                       ` Hubert
@ 2014-11-13  2:04                                         ` Hubert
  2014-11-13  7:53                                         ` Luther Bogart
                                                           ` (2 subsequent siblings)
  3 siblings, 0 replies; 241+ messages in thread
From: Hubert @ 2014-11-13  2:04 UTC (permalink / raw)


Ok, One was GreenHills and the other was Atego, I looked them up



---
This email is free from viruses and malware because avast! Antivirus protection is active.
http://www.avast.com


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

* Re: What exactly is the licensing situation with GNAT?
  2014-11-12 23:23                                   ` Britt
@ 2014-11-13  2:10                                     ` Randy Brukardt
  2014-11-13  5:13                                       ` Shark8
  2014-11-13  9:43                                       ` Gour
  2014-11-13 16:51                                     ` Tero Koskinen
  1 sibling, 2 replies; 241+ messages in thread
From: Randy Brukardt @ 2014-11-13  2:10 UTC (permalink / raw)


"Britt" <britt.snodgrass@gmail.com> wrote in message 
news:1af12fe7-ddd9-4eec-b8d3-3237d3e1427a@googlegroups.com...
> On Wednesday, November 12, 2014 5:47:24 PM UTC-5, Randy Brukardt wrote:
>
>>
>> You could of course use a different, commercial Ada compiler, rather than
>> insisting on GNAT. At least Janus/Ada still costs $195 for the personal
>> version and $500 for the professional version. See www.rrsoftware.com.
>
> Randy,
>
> I remember buying one of your early versions of of Janus Ada for $99. It 
> might have been around 1989 or so. I might buy the current personal 
> edition if I could be sure it would work on Windows 7 or 8.1.
>
> Your website appears a bit dated with the references to Windows 95/NT and 
> Rational Apex NT
>(which I used in the past before Rational killed it).

I've been holding off on updating the website until all of the Windows 7 
issues are cleared.

> What is the status of Janus Ada and CLAW with regard to Windows 7 & 8?

Windows 8 == Vista to me; I'm waiting for Windows 10 as a system that tried 
to make the desktop a second-class citizen is near-worthless for 
programming. So no testing there. (Tom Moran reported that everything works 
the same there as it does on Windows 7; I don't think there are any 
additional issues, but as I said, I didn't try them.)

As far as Windows 7 goes, there are a few minor problems that have so far 
kept the compiler in beta. The main one is that the uninstaller doesn't work 
(I can't seem to convince Windows that it should have the permissions to 
uninstall, even when run explicitly as an administrator). The minor one 
(considering that it is obsolete even if it works) is that the GUI 
programming environment doesn't work at all; you'd have to use some other 
editor. (Most people prefer to do that anyway, but it really ought to work; 
to do that, it will have to be totally replaced, something I don't have time 
for right now.)

The Claw binding and Claw programs work on Windows 7, so far as I can tell 
via testing. The Claw Builder comes up with a white screen for some reason 
on Windows 7, so it isn't usable right now on that system. (I'm guessing 
that there is a deadlock situation in the way Claw writes the overlay, but 
it will take some intensive testing to figure out the cause.) A more minor 
problem is that the help files have to be found manually every time you open 
them, for some reason Windows 7 can't remember where they are.

Anyway, the beta works on Windows 7, with some glitches. Once the glitches 
are gone, I'll update the web site, too.

                                        Randy.



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

* Re: What exactly is the licensing situation with GNAT?
  2014-11-13  1:59                                         ` Randy Brukardt
@ 2014-11-13  2:21                                           ` David Botton
  2014-11-13 22:01                                             ` Randy Brukardt
  0 siblings, 1 reply; 241+ messages in thread
From: David Botton @ 2014-11-13  2:21 UTC (permalink / raw)


> Write me with what you have in mind.

I will be in touch soon.

> Not sure what "websocket" you are talking 

Is part of HTML5, http://en.wikipedia.org/wiki/WebSocket

David Botton


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

* Re: What exactly is the licensing situation with GNAT?
  2014-11-13  2:10                                     ` Randy Brukardt
@ 2014-11-13  5:13                                       ` Shark8
  2014-11-13  9:43                                       ` Gour
  1 sibling, 0 replies; 241+ messages in thread
From: Shark8 @ 2014-11-13  5:13 UTC (permalink / raw)


On 12-Nov-14 19:10, Randy Brukardt wrote:
>
> Anyway, the beta works on Windows 7, with some glitches. Once the glitches
> are gone, I'll update the web site, too.
>

Good to hear.

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

* Re: What exactly is the licensing situation with GNAT?
  2014-11-13  1:48                                   ` Simon Clubley
@ 2014-11-13  7:40                                     ` Harry Bolger
  2014-11-13  8:30                                       ` Georg Bauhaus
  0 siblings, 1 reply; 241+ messages in thread
From: Harry Bolger @ 2014-11-13  7:40 UTC (permalink / raw)


On 2014-11-13, Simon Clubley <clubley@remove_me.eisner.decus.org-Earth.UFP> wrote:
>
> David's already posted a statement which I was unaware of and which backs
> up my memory that in the very early days of gcc, RMS proposed that _any_
> output from the gcc compiler would also be covered by the GPL.
>
> IIRC, the backlash from that was so huge (by the standards of the time)
> that RMS made it formally clear this wasn't, and would not be, the case.

That's now. I suspect once world domination draws near they will pull that
trick out of their sleeve and it will be too late for the lemmings to do
anything about it.

Harry

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

* Re: What exactly is the licensing situation with GNAT?
  2014-11-12 22:47                                 ` Randy Brukardt
  2014-11-12 23:23                                   ` Britt
@ 2014-11-13  7:46                                   ` George Curioso
  2014-11-13 22:14                                     ` Randy Brukardt
  1 sibling, 1 reply; 241+ messages in thread
From: George Curioso @ 2014-11-13  7:46 UTC (permalink / raw)


On 2014-11-12, Randy Brukardt <randy@rrsoftware.com> wrote:

> You could of course use a different, commercial Ada compiler, rather than 
> insisting on GNAT. At least Janus/Ada still costs $195 for the personal 
> version and $500 for the professional version. See www.rrsoftware.com. 
> (Disclaimer for new people here, I'm a co-founder and primary author of 
> Janus/Ada, so I'm a bit biased. :-)

It's hard to tell from your website exactly which *NIX are supported. If you
could clarify that it might be helpful. Many people are no longer using
Windows and or prefer coding on UNIX or UNIX-like platforms as I'm sure you know.

Will it run on Linux, Solaris (x86 or SPARC), FreeBSD, etc? 32 bits or 64? I
downloaded your test executables (I think they were old a.out) years ago and
I couldn't get them to work on anything I had running at the time.

>> Personally I wouldn't mind paying a few 100$ right now for a license that 
>> would allow me to write closed source applications even if I get no 
>> support or just some way to report bugs which may or may not be fixed 
>> later.
>
> See note about Janus/Ada above. ;-)

Please clarify exactly what platforms and Ada versions are supported. I've
heard (read) good things about your toolchain but your website doesn't help ;-)

George

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

* Re: What exactly is the licensing situation with GNAT?
  2014-11-13  1:54                                       ` Hubert
  2014-11-13  2:04                                         ` Hubert
@ 2014-11-13  7:53                                         ` Luther Bogart
  2014-11-13  7:58                                           ` Luther Bogart
  2014-11-13 16:38                                         ` Tero Koskinen
  2014-11-13 21:57                                         ` Randy Brukardt
  3 siblings, 1 reply; 241+ messages in thread
From: Luther Bogart @ 2014-11-13  7:53 UTC (permalink / raw)


On 2014-11-13, Hubert <herrdoktor@fumanchu.com> wrote:
>> Unfortunately, if it is like most of David's other software, it won't work
>> on other Ada compilers. (That is a common problem, not really picking on
>> David here, a lot of supposedly Ada software is really GNAT software.) That
>> locks you into GNAT, and as you note, the costs for getting regular support
>> for GNAT are not really affordable.
>
> Let's face it: Gnat is the only compiler out there that has any chance 
> of making it to mainstream market. I contacted the other two vendors of 
> Ada compilers (forgot the names, I refer to them internally as the green 
> and the silver/blue website). they dont have prices on their sites, have 
> cool pics of fighter jets and only support up to Ada 95. I wanted to ask 
> for prices, evaluation version and I didn't even get a response, so I 
> guess unless you have "IBM" or "Pentagon" in your email domain, they 
> don't even read your email.

I have had similar experiences and said so here over the years. I even
called and got the guy to laugh at me over the phone for the price of a long
distance call (no distributor here). But they can't sell it to IBM since IBM
already has Ada they bought from Rational. IBM previously sold off their Ada
370 version to a company in Virginia. Those people are a lot more personable
(and reasonable) but you still have to take out a second mortgage if you
want to use Ada.

Anyway I don't agree with you thaht GNAT can make it in the mainstream
market if you mean the real Ada market. There are already a few companies in
that space and they'll stay there until the business disappears.

As far as hobbyist, personal, or small professional developer goes there
shouldn't be any reason why gcc-Ada can't be just like gcc and gfortran,
without an encumbered runtime. People are selling stuff written in gcc all
the time and they don't have to open source it.

Luther


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

* Re: What exactly is the licensing situation with GNAT?
  2014-11-13  7:53                                         ` Luther Bogart
@ 2014-11-13  7:58                                           ` Luther Bogart
  0 siblings, 0 replies; 241+ messages in thread
From: Luther Bogart @ 2014-11-13  7:58 UTC (permalink / raw)


On 2014-11-13, Luther Bogart <playitagain@morocco.com> wrote:
> On 2014-11-13, Hubert <herrdoktor@fumanchu.com> wrote:

>> Let's face it: Gnat is the only compiler out there that has any chance 
>> of making it to mainstream market. I contacted the other two vendors of 
>> Ada compilers (forgot the names, I refer to them internally as the green 
>> and the silver/blue website). they dont have prices on their sites, have 
>> cool pics of fighter jets and only support up to Ada 95. I wanted to ask 
>> for prices, evaluation version and I didn't even get a response, so I 
>> guess unless you have "IBM" or "Pentagon" in your email domain, they 
>> don't even read your email.
>

I meant to write

Anyway I don't agree with you that GNAT "is the only compiler out there
that has any chance of making it to the mainstream market" since there
already 4 or 5 significant players in that business space.

Obviously GNAT made it already ;-) They are just not motivated to sell
licenses to hobbyists or small startup-type development ventures.

Luther



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

* Re: What exactly is the licensing situation with GNAT?
  2014-11-13  1:29                                       ` Randy Brukardt
@ 2014-11-13  8:03                                         ` Georg Bauhaus
  2014-11-13 22:22                                           ` Randy Brukardt
  2014-11-13 16:26                                         ` Tero Koskinen
  1 sibling, 1 reply; 241+ messages in thread
From: Georg Bauhaus @ 2014-11-13  8:03 UTC (permalink / raw)


On 13.11.14 02:29, Randy Brukardt wrote:
> I should have noted (beyond spelling better in the above!) that the Ada 2012
> pragma Profile (No_Implementation_Extensions) should help a great deal with
> that. If that's put into a package,


A test case program is another place I sometimes use to make
sure the language used stays Ada. In particular, the earlier (Ada 95)

  No_Implementation_{Attributes|Pragmas}

restriction identifiers serve these cases well.

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

* Re: What exactly is the licensing situation with GNAT?
  2014-11-12 22:53                                     ` Randy Brukardt
                                                         ` (3 preceding siblings ...)
  2014-11-13  1:54                                       ` Hubert
@ 2014-11-13  8:03                                       ` Pete Ballmer
  2014-11-13  8:41                                         ` Georg Bauhaus
  2014-11-13  8:59                                         ` Georg Bauhaus
  4 siblings, 2 replies; 241+ messages in thread
From: Pete Ballmer @ 2014-11-13  8:03 UTC (permalink / raw)


On 2014-11-12, Randy Brukardt <randy@rrsoftware.com> wrote:

> Unfortunately, if it is like most of David's other software, it won't work 
> on other Ada compilers. (That is a common problem, not really picking on 
> David here, a lot of supposedly Ada software is really GNAT software.) That 
> locks you into GNAT, and as you note, the costs for getting regular support 
> for GNAT are not really affordable.

This is an issue with all of FSF's proprietary stuff generally not just
Ada. What percentage of "C" code written for Linux and NUXI is actually
really C rather than gcc? Not very much. It's bad for the ecosystem when
code only compiles under one toolchain. FSF knows that and that's why they
create all these extensinons. It's just another smarter form of vendor
lock-in and it's hard to understand why people accept this.

It takes a lot of discipline and expense to write portable code and all the
gxx stuff makes it tempting to do otherwise. You _will_ be fsfimilated!

Peter

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

* Re: What exactly is the licensing situation with GNAT?
  2014-11-13  1:49                                         ` Randy Brukardt
@ 2014-11-13  8:18                                           ` Georg Bauhaus
  2014-11-13 21:51                                             ` Randy Brukardt
  0 siblings, 1 reply; 241+ messages in thread
From: Georg Bauhaus @ 2014-11-13  8:18 UTC (permalink / raw)


On 13.11.14 02:49, Randy Brukardt wrote:
> My recollection is that GWindows depended on Unrestricted_Access (a huge
> amount of GNAT software does), and that really only works with the GCC
> runtime model.

I understand ICC's compiler has (something like) Unrestricted_Access?

(But maybe some uses of 'Unrestricted_Access may be supplanted now
with plain access subprogram parameters of Ada 2005.)

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

* Re: What exactly is the licensing situation with GNAT?
  2014-11-13  7:40                                     ` Harry Bolger
@ 2014-11-13  8:30                                       ` Georg Bauhaus
  2014-11-13  8:41                                         ` Harry Bolger
  0 siblings, 1 reply; 241+ messages in thread
From: Georg Bauhaus @ 2014-11-13  8:30 UTC (permalink / raw)


On 13.11.14 08:40, Harry Bolger wrote:
> That's now. I suspect once world domination draws near they will pull that
> trick out of their sleeve and it will be too late for the lemmings to do
> anything about it.

You're joking, right?


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

* Re: What exactly is the licensing situation with GNAT?
  2014-11-13  8:30                                       ` Georg Bauhaus
@ 2014-11-13  8:41                                         ` Harry Bolger
  2014-11-13  8:57                                           ` Georg Bauhaus
  2014-11-13 14:30                                           ` Maciej Sobczak
  0 siblings, 2 replies; 241+ messages in thread
From: Harry Bolger @ 2014-11-13  8:41 UTC (permalink / raw)


On 2014-11-13, Georg Bauhaus <bauhaus@futureapps.invalid> wrote:
> On 13.11.14 08:40, Harry Bolger wrote:
>> That's now. I suspect once world domination draws near they will pull that
>> trick out of their sleeve and it will be too late for the lemmings to do
>> anything about it.
>
> You're joking, right?
>

About what? Stalemate has already acknowledged he wants this. He just
couldn't shove it down people's throats far enough at that time. Later on
when Linux finishes blotting out all the other desktop and low-end server OS
and all the other toolchains have disappeared people will have to swallow
whatever the FSF tells them and like it, sir! All that proprietary gcc code
they wrote over the past twenty years thinking it was C won't compile or run
on anything else and they'll be locked in.

Is this such a difficult proposition for you?

Harry


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

* Re: What exactly is the licensing situation with GNAT?
  2014-11-13  8:03                                       ` Pete Ballmer
@ 2014-11-13  8:41                                         ` Georg Bauhaus
  2014-11-13  8:59                                         ` Georg Bauhaus
  1 sibling, 0 replies; 241+ messages in thread
From: Georg Bauhaus @ 2014-11-13  8:41 UTC (permalink / raw)


On 13.11.14 09:03, Pete Ballmer wrote:
> It's just another smarter form of vendor
> lock-in and it's hard to understand why people accept this.

Other than simply ignorance and imitation, accepting language
extensions could well be a direct consequence of how
consultancy works, I think, and of how GTD management works.
There are rewards:

Sentences about language involving "technically superior", "long term",
"portable", etc, have no momentary effect.  They don't get things done,
now. They do not help "getting things re-done" forever, too, if
software may become finished, with no control over profitable sequels.
Just an observation.

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

* Re: What exactly is the licensing situation with GNAT?
  2014-11-13  8:41                                         ` Harry Bolger
@ 2014-11-13  8:57                                           ` Georg Bauhaus
  2014-11-13 14:30                                           ` Maciej Sobczak
  1 sibling, 0 replies; 241+ messages in thread
From: Georg Bauhaus @ 2014-11-13  8:57 UTC (permalink / raw)


On 13.11.14 09:41, Harry Bolger wrote:
> On 2014-11-13, Georg Bauhaus <bauhaus@futureapps.invalid> wrote:
>> On 13.11.14 08:40, Harry Bolger wrote:
>>> That's now. I suspect once world domination draws near they will pull that
>>> trick out of their sleeve and it will be too late for the lemmings to do
>>> anything about it.
>>
>> You're joking, right?
>>
>
> About what? Stalemate has already acknowledged he wants this. He just
> couldn't shove it down people's throats far enough at that time.

Right. And a single citizen cannot survive a move against most of his
supporters, including commercial supporters like Redhat or Oracle or
AdaCore, who make a living in the enterprise and military spaces.
The powers insinuated are even less if there is the prospect of moving
towards differently licensed open source LLVM. I don't think the FSF
is sufficiently suicidal for that.

>  All that proprietary gcc code
> they wrote over the past twenty years thinking it was C won't compile or run
> on anything else and they'll be locked in.

I recall that many GNU-isms are well supported by major C compilers,
including Intel, and also that the same argument could apply in reverse
when trying to port C or Fortran away form Intel-isms.

Apple, OTOH, have been doing exactly what you have outlined, a couple
of times, and they are doing well.

> Is this such a difficult proposition for you?

Not difficult to decipher as a fine specimen of FUD, by all standards
I can just now think of. For example, completeness.

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

* Re: What exactly is the licensing situation with GNAT?
  2014-11-13  8:03                                       ` Pete Ballmer
  2014-11-13  8:41                                         ` Georg Bauhaus
@ 2014-11-13  8:59                                         ` Georg Bauhaus
  1 sibling, 0 replies; 241+ messages in thread
From: Georg Bauhaus @ 2014-11-13  8:59 UTC (permalink / raw)


On 13.11.14 09:03, Pete Ballmer wrote:
> It's just another smarter form of vendor
> lock-in and it's hard to understand why people accept this.

And BTW, this is how Ada started! Someone did no longer want
to accept his organization being locked-in to over 400 vendors.

History repeating?


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

* Re: What exactly is the licensing situation with GNAT?
  2014-11-13  2:10                                     ` Randy Brukardt
  2014-11-13  5:13                                       ` Shark8
@ 2014-11-13  9:43                                       ` Gour
  2014-11-13 22:06                                         ` Randy Brukardt
  1 sibling, 1 reply; 241+ messages in thread
From: Gour @ 2014-11-13  9:43 UTC (permalink / raw)


On Wed, 12 Nov 2014 20:10:39 -0600
"Randy Brukardt" <randy@rrsoftware.com> wrote:

> Windows 8 == Vista to me; I'm waiting for Windows 10 as a system that
> tried to make the desktop a second-class citizen is near-worthless
> for programming. So no testing there. 

What about Linux (x86_64) and someone wanting to write multi-platform
open-source desktop app?


Sincerely,
Gour


-- 
You have a right to perform your prescribed duty, but you
are not entitled to the fruits of action. Never consider 
yourself the cause of the results of your activities,
and never be attached to not doing your duty.


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

* Re: What exactly is the licensing situation with GNAT?
  2014-11-13  8:41                                         ` Harry Bolger
  2014-11-13  8:57                                           ` Georg Bauhaus
@ 2014-11-13 14:30                                           ` Maciej Sobczak
  2014-11-13 19:19                                             ` Peter Chapin
  1 sibling, 1 reply; 241+ messages in thread
From: Maciej Sobczak @ 2014-11-13 14:30 UTC (permalink / raw)



> About what? Stalemate has already acknowledged he wants this. He just
> couldn't shove it down people's throats far enough at that time. Later on
> when Linux finishes blotting out all the other desktop and low-end server OS
> and all the other toolchains have disappeared people will have to swallow
> whatever the FSF tells them and like it, sir!

By "all the other toolchains" you mean also llvm? Because as far as I know, this toolchain is actually starting to push gcc out of the picture (think FreeBSD, Apple). So, don't worry about the world dominance of gcc and possible tricks that might follow.

-- 
Maciej Sobczak * http://www.inspirel.com


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

* Re: What exactly is the licensing situation with GNAT?
  2014-11-13  1:29                                       ` Randy Brukardt
  2014-11-13  8:03                                         ` Georg Bauhaus
@ 2014-11-13 16:26                                         ` Tero Koskinen
  2014-11-13 22:29                                           ` Randy Brukardt
  1 sibling, 1 reply; 241+ messages in thread
From: Tero Koskinen @ 2014-11-13 16:26 UTC (permalink / raw)


13.11.2014 3:29, Randy Brukardt wrote:
> "Randy Brukardt" <randy@rrsoftware.com> wrote in message 
> news:m40odq$tdv$1@loke.gir.dk...
> ...
>> One of the reasons we built Claw was to provide a Windows interface that 
>> would work on any Ada 95 compiler for Windows, not just GNAT. That 
>> requires displine and testing that most hobbyests wouldn't bother with.
> 
> I should have noted (beyond spelling better in the above!) that the Ada 2012 
> pragma Profile (No_Implementation_Extensions) should help a great deal with 
> that. If that's put into a package, the majority of of 
> implementation-defined things would be identified. But it can't identify 
> everything.

Too bad, right now the pragma does not work in practice :)

Janus/Ada [for Ada 95/07] - Version 3.1.2b (Windows NT 386)
...
Input File Is C:\work\ahven\src\AHVEN.ADS
#
In File C:\work\ahven\src\AHVEN.ADS at line 18
--------------
   17:
   18:  pragma Profile (No_Implementation_Extensions);
---------------^
*WARNING* Unknown pragma (6.5.2)


ICC Ada Compiler [v9.0.57 Jan 24, 2014] Target x86 Win32
Compiling c:/work/ahven/src/ahven.ads
"ahven.ads", line 18: Warning: Ignored pragma: Profile.

(Yes, I am using Ada 95/2005/2007 compilers, but it is not fair to tease
people with features implemented only in one compiler.)

Yours,
 Tero

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

* Re: What exactly is the licensing situation with GNAT?
  2014-11-13  1:54                                       ` Hubert
  2014-11-13  2:04                                         ` Hubert
  2014-11-13  7:53                                         ` Luther Bogart
@ 2014-11-13 16:38                                         ` Tero Koskinen
  2014-11-13 21:57                                         ` Randy Brukardt
  3 siblings, 0 replies; 241+ messages in thread
From: Tero Koskinen @ 2014-11-13 16:38 UTC (permalink / raw)


13.11.2014 3:54, Hubert wrote:
>> Unfortunately, if it is like most of David's other software, it won't
>> work
>> on other Ada compilers. (That is a common problem, not really picking on
>> David here, a lot of supposedly Ada software is really GNAT software.)
>> That
>> locks you into GNAT, and as you note, the costs for getting regular
>> support
>> for GNAT are not really affordable.
> 
> Let's face it: Gnat is the only compiler out there that has any chance
> of making it to mainstream market. I contacted the other two vendors of
> Ada compilers (forgot the names, I refer to them internally as the green
> and the silver/blue website). they dont have prices on their sites, have
> cool pics of fighter jets and only support up to Ada 95. I wanted to ask
> for prices, evaluation version and I didn't even get a response, so I
> guess unless you have "IBM" or "Pentagon" in your email domain, they
> don't even read your email.
...
> Ok, One was GreenHills and the other was Atego, I looked them up

I have managed to contact Atego sales people in Europe about
a year ago. But I admit, it was somewhat hard to do. I had to
pester HR persons (via email) to find me a sales guy who was
answering to his emails.

But in the end, I found two (one of them was vice-president of
sales department iirc), plus one software engineer.

I was even able to get a quote from them for ObjectAda (2005 version).

Otherwise their price was "ok", but
1) They license their compiler only for a year at time. After year
is over, you need to renew the license or you cannot use the compiler
anymore.
2) They only deal with other companies. They don't have procedures
to sell (or give) compilers to invidual people.

Also, I don't know has the situation changed after the latest merger.

Yours,
 Tero



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

* Re: What exactly is the licensing situation with GNAT?
  2014-11-12 23:23                                   ` Britt
  2014-11-13  2:10                                     ` Randy Brukardt
@ 2014-11-13 16:51                                     ` Tero Koskinen
  1 sibling, 0 replies; 241+ messages in thread
From: Tero Koskinen @ 2014-11-13 16:51 UTC (permalink / raw)


13.11.2014 1:23, Britt wrote:
> What is the status of Janus Ada and CLAW with regard to Windows 7 & 8?

Janus/Ada works on 64-bit Windows 8.1. There are some quirks with
filenames (they seem to be partially case sensitive), but otherwise
everything is ok. (I regularly test my Ada software on Windows 8.1
with Janus/Ada.)

On 64-bit Windows 7 everything works fine.

http://build.ada-language.com/view/JanusAda/ provides build logs
for some of my Ada packages compiled on Windows 7.

Yours,
 Tero


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

* Re: What exactly is the licensing situation with GNAT?
  2014-11-13 14:30                                           ` Maciej Sobczak
@ 2014-11-13 19:19                                             ` Peter Chapin
  2014-11-13 19:43                                               ` David Botton
  0 siblings, 1 reply; 241+ messages in thread
From: Peter Chapin @ 2014-11-13 19:19 UTC (permalink / raw)


On Thu, 13 Nov 2014, Maciej Sobczak wrote:

>> About what? Stalemate has already acknowledged he wants this. He just
>> couldn't shove it down people's throats far enough at that time. Later on
>> when Linux finishes blotting out all the other desktop and low-end server OS
>> and all the other toolchains have disappeared people will have to swallow
>> whatever the FSF tells them and like it, sir!
>
> By "all the other toolchains" you mean also llvm? Because as far as I 
> know, this toolchain is actually starting to push gcc out of the picture 
> (think FreeBSD, Apple). So, don't worry about the world dominance of gcc 
> and possible tricks that might follow.

I agree with this. It seems like in some circles gcc is seen as 
yesterday's technology. I'd worry more about LLVM taking over the world.

Peter


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

* Re: What exactly is the licensing situation with GNAT?
  2014-11-13 19:19                                             ` Peter Chapin
@ 2014-11-13 19:43                                               ` David Botton
  0 siblings, 0 replies; 241+ messages in thread
From: David Botton @ 2014-11-13 19:43 UTC (permalink / raw)


> I agree with this. It seems like in some circles gcc is seen as 
> yesterday's technology. I'd worry more about LLVM taking over the world.

About time someone get the fire to Finish the work already started (and was working) for porting the GNAT front end to LLVM or write a new one :)

I'm a bit busy ;) I have a good excuse.

David Botton

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

* Re: What exactly is the licensing situation with GNAT?
  2014-11-13  8:18                                           ` Georg Bauhaus
@ 2014-11-13 21:51                                             ` Randy Brukardt
  2014-11-14  8:36                                               ` Dmitry A. Kazakov
  0 siblings, 1 reply; 241+ messages in thread
From: Randy Brukardt @ 2014-11-13 21:51 UTC (permalink / raw)


"Georg Bauhaus" <bauhaus@futureapps.invalid> wrote in message 
news:m41pge$si1$1@dont-email.me...
> On 13.11.14 02:49, Randy Brukardt wrote:
>> My recollection is that GWindows depended on Unrestricted_Access (a huge
>> amount of GNAT software does), and that really only works with the GCC
>> runtime model.
>
> I understand ICC's compiler has (something like) Unrestricted_Access?

My recollection was that ICC has it, but it only works in limited 
circumstances -- they couldn't implement the entire thing as supported by 
GNAT.

> (But maybe some uses of 'Unrestricted_Access may be supplanted now
> with plain access subprogram parameters of Ada 2005.)

Right, there is a similarity (not 100%). For Janus/Ada, such parameters 
would be (if I ever got around to implementing them), a record containing 
roughly 20 words of memory to carry the call state. A bit expensive to 
initialize, but it would work (generic formal subprograms have a similar 
implementation, but there the memory is associated with the instance rather 
than the individual actual subprogram parameter).

I recall Adam suggesting that some special sort of named 
access-to-subprogram type be defined with similar characteristics to the 
anonymous access-to-subprogram. Such a thing could be made to work, while 
the bare pointer used for normal access-to-subprogram types would not work. 
But of course it would be susceptible to dangling pointers, and won't 
(usually) be compatible with C.

                                  Randy.


                                  Randy.


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

* Re: What exactly is the licensing situation with GNAT?
  2014-11-13  1:54                                       ` Hubert
                                                           ` (2 preceding siblings ...)
  2014-11-13 16:38                                         ` Tero Koskinen
@ 2014-11-13 21:57                                         ` Randy Brukardt
  2014-11-13 22:02                                           ` Mark Carroll
  2014-11-13 22:43                                           ` Jeffrey Carter
  3 siblings, 2 replies; 241+ messages in thread
From: Randy Brukardt @ 2014-11-13 21:57 UTC (permalink / raw)


"Hubert" <herrdoktor@fumanchu.com> wrote in message 
news:DbU8w.703256$Fo3.563225@fx09.iad...
>> Unfortunately, if it is like most of David's other software, it won't 
>> work
>> on other Ada compilers. (That is a common problem, not really picking on
>> David here, a lot of supposedly Ada software is really GNAT software.) 
>> That
>> locks you into GNAT, and as you note, the costs for getting regular 
>> support
>> for GNAT are not really affordable.
>
> Let's face it: Gnat is the only compiler out there that has any chance of 
> making it to mainstream market. I contacted the other two vendors of Ada 
> compilers (forgot the names, I refer to them internally as the green and 
> the silver/blue website). they dont have prices on their sites, have cool 
> pics of fighter jets and only support up to Ada 95. I wanted to ask for 
> prices, evaluation version and I didn't even get a response, so I guess 
> unless you have "IBM" or "Pentagon" in your email domain, they don't even 
> read your email.

You obviously never contacted RR Software, because our pricing isn't like 
that. Despite replying directly to me!

Anyway, Atego (in an earlier form), tried a cheaper Ada compiler, but gave 
it up after a number of years (at least 5) because they couldn't make money 
from it. Our experience at RR Software is similar. My guess is that no Ada 
compiler ever could be "mainstream", because the language doesn't contain 
curly brackets -- a for a lot of people, programming can only be done in a 
language with such brackets. (Sadly, I'm serious.) Of course, people could 
prove me wrong by flocking here to buy Janus/Ada. ;-)

                                         Randy.


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

* Re: What exactly is the licensing situation with GNAT?
  2014-11-13  2:21                                           ` David Botton
@ 2014-11-13 22:01                                             ` Randy Brukardt
  0 siblings, 0 replies; 241+ messages in thread
From: Randy Brukardt @ 2014-11-13 22:01 UTC (permalink / raw)


"David Botton" <david@botton.com> wrote in message 
news:4b1a6407-6c5d-4ccd-8992-0bff7965ed0d@googlegroups.com...
>> Write me with what you have in mind.
>
> I will be in touch soon.
>
>> Not sure what "websocket" you are talking
>
> Is part of HTML5, http://en.wikipedia.org/wiki/WebSocket

I see, it would need some sort of extension to the NC.HTTP package (which is 
of course implemented on top of NC.Sockets). I'll have to look into when I 
get some time.

                                   Randy.




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

* Re: What exactly is the licensing situation with GNAT?
  2014-11-13 21:57                                         ` Randy Brukardt
@ 2014-11-13 22:02                                           ` Mark Carroll
  2014-11-13 22:43                                           ` Jeffrey Carter
  1 sibling, 0 replies; 241+ messages in thread
From: Mark Carroll @ 2014-11-13 22:02 UTC (permalink / raw)


"Randy Brukardt" <randy@rrsoftware.com> writes:

> My guess is that no Ada compiler ever could be "mainstream", because
> the language doesn't contain curly brackets -- a for a lot of people,
> programming can only be done in a language with such brackets. (Sadly,
> I'm serious.)

I think you may be correct: I believe that was a big part with the
"problem" with Modula-3's popularity. (Again, there was a commercial
company supporting a compiler -- Critical Mass -- they folded years ago
but kindly open-sourced their work which is now on GitHub.) When Java
came out I was kind of disappointed when I learned more about it, but I
think the C-style syntax -- one of the most obvious attributes -- was a
big winner.

-- Mark

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

* Re: What exactly is the licensing situation with GNAT?
  2014-11-13  9:43                                       ` Gour
@ 2014-11-13 22:06                                         ` Randy Brukardt
  2014-11-13 23:37                                           ` Gour
  0 siblings, 1 reply; 241+ messages in thread
From: Randy Brukardt @ 2014-11-13 22:06 UTC (permalink / raw)


"Gour" <gour@atmarama.net> wrote in message 
news:20141113104356.6b2b43a4@atmarama.ddns.net...
> On Wed, 12 Nov 2014 20:10:39 -0600
> "Randy Brukardt" <randy@rrsoftware.com> wrote:
>
>> Windows 8 == Vista to me; I'm waiting for Windows 10 as a system that
>> tried to make the desktop a second-class citizen is near-worthless
>> for programming. So no testing there.
>
> What about Linux (x86_64) and someone wanting to write multi-platform
> open-source desktop app?

Not yet - can't get spread too thin. (Gotta get Windows 7 working right, 
plus some things promised to customers before looking at more targets.) 
There'd be little problem making a 32-bit version for Linux, 64-bit of 
course would need a different code generator so more work but not that 
difficult.

                                       Randy.


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

* Re: What exactly is the licensing situation with GNAT?
  2014-11-13  7:46                                   ` George Curioso
@ 2014-11-13 22:14                                     ` Randy Brukardt
  2014-11-14  8:18                                       ` George Curioso
  0 siblings, 1 reply; 241+ messages in thread
From: Randy Brukardt @ 2014-11-13 22:14 UTC (permalink / raw)


"George Curioso" <curiousgeorge@thezoo.net> wrote in message 
news:m41nld$2rh$1@speranza.aioe.org...
> On 2014-11-12, Randy Brukardt <randy@rrsoftware.com> wrote:
>
>> You could of course use a different, commercial Ada compiler, rather than
>> insisting on GNAT. At least Janus/Ada still costs $195 for the personal
>> version and $500 for the professional version. See www.rrsoftware.com.
>> (Disclaimer for new people here, I'm a co-founder and primary author of
>> Janus/Ada, so I'm a bit biased. :-)
>
> It's hard to tell from your website exactly which *NIX are supported. If 
> you
> could clarify that it might be helpful. Many people are no longer using
> Windows and or prefer coding on UNIX or UNIX-like platforms as I'm sure 
> you know.
>
> Will it run on Linux, Solaris (x86 or SPARC), FreeBSD, etc? 32 bits or 64? 
> I
> downloaded your test executables (I think they were old a.out) years ago 
> and
> I couldn't get them to work on anything I had running at the time.
>
>>> Personally I wouldn't mind paying a few 100$ right now for a license 
>>> that
>>> would allow me to write closed source applications even if I get no
>>> support or just some way to report bugs which may or may not be fixed
>>> later.
>>
>> See note about Janus/Ada above. ;-)
>
> Please clarify exactly what platforms and Ada versions are supported. I've
> heard (read) good things about your toolchain but your website doesn't 
> help ;-)

Practically, the toolchain is Windows-only at this point. We don't have 
anything for Linux or FreeBSD, it wouldn't be hard to create such a thing, 
but it's important get one thing right before moving on to other things. 
When I redo the website, I'll remove the Unix references (since I recycled 
the computer that supported those versions this spring in a tax-saving move, 
I couldn't actually provide one even if someone wanted it). Of course, the 
source code is still in our version control, so it could be regenerated if 
necessary -- but it hasn't been updated since 1997.

                                   Randy.


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

* Re: What exactly is the licensing situation with GNAT?
  2014-11-13  8:03                                         ` Georg Bauhaus
@ 2014-11-13 22:22                                           ` Randy Brukardt
  0 siblings, 0 replies; 241+ messages in thread
From: Randy Brukardt @ 2014-11-13 22:22 UTC (permalink / raw)


"Georg Bauhaus" <bauhaus@futureapps.invalid> wrote in message 
news:m41ojr$rdq$1@dont-email.me...
> On 13.11.14 02:29, Randy Brukardt wrote:
>> I should have noted (beyond spelling better in the above!) that the Ada 
>> 2012
>> pragma Profile (No_Implementation_Extensions) should help a great deal 
>> with
>> that. If that's put into a package,
>
>
> A test case program is another place I sometimes use to make
> sure the language used stays Ada. In particular, the earlier (Ada 95)
>
>  No_Implementation_{Attributes|Pragmas}
>
> restriction identifiers serve these cases well.

Right, but there are a number of other cases that 
No_Implementation_Extensions covers: implementation-defined things in 
language-defined packages (there are a number of such places in the RM, such 
as in System); No_Implementation_Aspect_Specifications (obviously only 
relevant for Ada 2012, but still important); and No_Implementation_Units 
(which covers implementation-defined descendants of Ada, System, and 
Interfaces; implementation-defined children of Ada are banned, but 
grandchildren are allowed).

Still not covered are issues like the representation of predefined types 
(esp. Integer and Float), and implementation-defined behavior (such as what 
happens when a potentially blocking operation is called from a protected 
action). These things can't really be detected at compile-time.

                                        Randy.


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

* Re: What exactly is the licensing situation with GNAT?
  2014-11-13 16:26                                         ` Tero Koskinen
@ 2014-11-13 22:29                                           ` Randy Brukardt
  0 siblings, 0 replies; 241+ messages in thread
From: Randy Brukardt @ 2014-11-13 22:29 UTC (permalink / raw)


"Tero Koskinen" <tero.koskinen@iki.fi> wrote in message 
news:m42m41$2vk$1@loke.gir.dk...
> 13.11.2014 3:29, Randy Brukardt wrote:
>> "Randy Brukardt" <randy@rrsoftware.com> wrote in message
>> I should have noted (beyond spelling better in the above!) that the Ada 
>> 2012
>> pragma Profile (No_Implementation_Extensions) should help a great deal 
>> with
>> that. If that's put into a package, the majority of of
>> implementation-defined things would be identified. But it can't identify
>> everything.
>
> Too bad, right now the pragma does not work in practice :)
...
> (Yes, I am using Ada 95/2005/2007 compilers, but it is not fair to tease
> people with features implemented only in one compiler.)

I think it's fair in this case as it's that "one compiler" that most people 
are using. It's pretty easy to erase a single pragma (and note in the 
Janus/Ada, as it is a warning, you don't even have to erase it); if you 
started with GNAT (which 98% of free software will have done), you're not 
likely to introduce any ICC or Janus/Ada extensions anyway.

Of course, beyond that, it's important that other vendors catch up. The 
Contracts stuff in particular is a big advantage for Ada over other 
languages. (And ignore the man behind the curtain. ;-)

                             Randy.





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

* Re: What exactly is the licensing situation with GNAT?
  2014-11-13 21:57                                         ` Randy Brukardt
  2014-11-13 22:02                                           ` Mark Carroll
@ 2014-11-13 22:43                                           ` Jeffrey Carter
  2014-11-14  1:36                                             ` Hubert
  1 sibling, 1 reply; 241+ messages in thread
From: Jeffrey Carter @ 2014-11-13 22:43 UTC (permalink / raw)


On 11/13/2014 02:57 PM, Randy Brukardt wrote:
> 
> My guess is that no Ada 
> compiler  the language doesn't contain 
> curly brackets -- a for a lot of people, programming can only be done in a 
> language with such brackets. (Sadly, I'm serious.) Of course, people could 
> prove me wrong by flocking here to buy Janus/Ada. ;-)

My guess is that no Ada compiler ever could be "mainstream", because it's a
software-engineering language, and 98% of developers aren't S/W engineers.

But perhaps if we could outlaw languages with braces we could bring that number
down significantly?

Symbols  American     British
()       Parentheses  Brackets
[]       Brackets     Square brackets
{}       Braces       Curly brackets

Since ARM 2.1(15) uses "parenthesis", I guess here on c.l.a we should use the
American terms.

-- 
Jeff Carter
"What's the amount of the insult?"
Never Give a Sucker an Even Break
104

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

* Re: What exactly is the licensing situation with GNAT?
  2014-11-13 22:06                                         ` Randy Brukardt
@ 2014-11-13 23:37                                           ` Gour
  0 siblings, 0 replies; 241+ messages in thread
From: Gour @ 2014-11-13 23:37 UTC (permalink / raw)


On Thu, 13 Nov 2014 16:06:26 -0600
"Randy Brukardt" <randy@rrsoftware.com> wrote:

Hiya Randy,

> Not yet - can't get spread too thin. (Gotta get Windows 7 working
> right, plus some things promised to customers before looking at more
> targets.) There'd be little problem making a 32-bit version for
> Linux, 64-bit of course would need a different code generator so more
> work but not that difficult.

I have visited your site which needs some love to be more up-to-date,
but let me say that even for writing open-source application(s), I'd be
ready to pay reasonable price for native Ada compiler available for
64-bit Linux with some sort of GUI bindings - e.g. wx so one can write
multi-platform apps.

In regard to the point from another message, I believe there is market
for Ada & SW engineers. Take a look at FPC/Lazarus or check how many
contributors are there for e.g. Julia language which is pretty young. No
need to speak about Python which atrracts many engineering people. Iow,
it's not that everyone is into system programming and I'm sure David's
push of Ada into application's space market is justifying.


Sincerely,
Gour

-- 
Many, many births both you and I have passed. I can remember 
all of them, but you cannot, O subduer of the enemy!

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

* Re: What exactly is the licensing situation with GNAT?
  2014-11-12 11:15                                 ` David Botton
@ 2014-11-13 23:56                                   ` David Botton
  2014-11-14  7:50                                     ` community-based compiler (was Re: What exactly is the licensing situation with GNAT?) Gour
  2014-11-14  8:25                                     ` What exactly is the licensing situation with GNAT? Pete Ballmer
  0 siblings, 2 replies; 241+ messages in thread
From: David Botton @ 2014-11-13 23:56 UTC (permalink / raw)


> I had a meeting this last Monday with AdaCore with a business model to make that possible and lucrative for them.

They did not feel my business model supports the change back to  GMGPL, even for a targeted market, and the available FSF compilers can serve the needs of those other markets.

Respectable position.

<< I would rather do it with them despite what they did to the community with the GPL version, total disregard of it, they have put in the work on the compiler and the language that deserves giving them a chance to be part of the solution.>>

This could be taken out of context of the rest of the thread, so to make clear:

I feel (obviously) very strongly the switch from GMGPL to GPL version of public versions for GNAT was a split of AdaCore away from the Ada community to a business centric model to strengthen their hold in their markets even though it weekend the communities ability to advocate in markets that AdaCore does not feel will work for them.

I respected their decision and their right to make that decision then 10 years ago as I continue to do so now.

The last intention I have is to discourage anyone from the excellent support AdaCore offers if you are in their market. Again very clear from every post.

I think every message I've given has reflected the above which is balanced and extremely fair.

I encourage people to use and improve the FSF version of GNAT and build a stronger community version if Ada is to be advocated beyond the niche markets it is in now.

David Botton




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

* Re: What exactly is the licensing situation with GNAT?
  2014-11-13 22:43                                           ` Jeffrey Carter
@ 2014-11-14  1:36                                             ` Hubert
  2014-11-14  4:45                                               ` Randy Brukardt
  2014-11-14  8:51                                               ` Dmitry A. Kazakov
  0 siblings, 2 replies; 241+ messages in thread
From: Hubert @ 2014-11-14  1:36 UTC (permalink / raw)


> My guess is that no Ada compiler ever could be "mainstream", because it's a
> software-engineering language, and 98% of developers aren't S/W engineers.

That is a point that I have been contemplating for a while now but in 
conjunction with Object Oriented Programming. When I look back at my 
career I realize that I became lazier and lazier in terms of designing 
before programming with the advent of OOP. I think OOP is designed to to 
just that: Give you a false sense of "naturalism" and "ease" because 
"objects are so natural to the way humans think" and "everything in 
nature is an object" etc.

And it's true. It is much easier to start with some C++ style objects 
and add some methods that operate on the data and then have some other 
objects call these methods and so on. Everything is easy. Up to a 
certain point. And then it is too late.

In my opinion OOP is a way to make people write programs who should not 
be writing programs. There is a reason that "agile software development" 
and "scrum" rose up in parallel with OOP. I am not a big fan of OOP 
although I am using it out of necessity because the software I'm working 
with is based on it.

Looking back, this should probably be in it's own post and not at the 
10th level of a post regarding licensing questions :)



---
This email is free from viruses and malware because avast! Antivirus protection is active.
http://www.avast.com



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

* Re: What exactly is the licensing situation with GNAT?
  2014-11-14  1:36                                             ` Hubert
@ 2014-11-14  4:45                                               ` Randy Brukardt
  2014-11-14  5:24                                                 ` Hubert
  2014-11-14  8:51                                               ` Dmitry A. Kazakov
  1 sibling, 1 reply; 241+ messages in thread
From: Randy Brukardt @ 2014-11-14  4:45 UTC (permalink / raw)


"Hubert" <herrdoktor@fumanchu.com> wrote in message 
news:10d9w.55626$8w1.22302@fx12.iad...
...
> In my opinion OOP is a way to make people write programs who should not be 
> writing programs. There is a reason that "agile software development" and 
> "scrum" rose up in parallel with OOP.

IMHO, "agile" is the only sensible way to create software. In hindsight, 
I've always developed software that way, from the early 1980s to now, almost 
exclusively in Ada, and for most of the time, no OOP was in sight. But of 
course "agile" just boils down to short development cycles and frequent 
testing; that just good sense (compared to waterfall as usually used in the 
1980s).

Perhaps you're confusing agile with test-driven development (TDD) and other 
such nonsense? Luckily, they don't have much to do with each other (even if 
they are often used together). TDD, of course is a way to guarentee the 
lowest quality software that still "works" (for some definition of "works"). 
It means the software will certainly break as soon as someone thinks of a 
new way to use it, which is silly (because users are clever and will 
invitably come up with unanticipated ways to use anything) and dangerous 
(because the criminals will find those holes and abuse them).

                                        Randy.




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

* Re: What exactly is the licensing situation with GNAT?
  2014-11-12 23:21                                       ` David Botton
  2014-11-13  1:49                                         ` Randy Brukardt
@ 2014-11-14  4:51                                         ` Randy Brukardt
  2014-11-14  5:12                                           ` David Botton
  2014-11-15 17:32                                           ` Florian Weimer
  1 sibling, 2 replies; 241+ messages in thread
From: Randy Brukardt @ 2014-11-14  4:51 UTC (permalink / raw)


"David Botton" <david@botton.com> wrote in message 
news:19fa65d4-72c9-44ab-b44b-4ea0929c18f2@googlegroups.com...
...
>There is nothing in Gnoga other than the use again of Object'Img preventing 
>it
>from being used on Janus if it ever gets updated to Ada 2012.

Semi-related to this is that we approved Obj'Image as a language-defined 
attribute, to be included in the 2015 Ada Corrigendum. [AdaCore told us that 
they had used 'Img only because the language would not allow them to change 
Image that way. The ARG has no such limitations. ;-)] So there should be 
little reason to use the GNAT extension going forward. Of course, I don't 
know when that will appear in GNAT or other compilers, but it's unlikely to 
be much work and it's obviously used a lot, so I expect it to be relatively 
quick (at least in compilers that are still actively developed; it'll be a 
fairly high priority for Janus/Ada, because it is so handy).

                                        Randy.


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

* Re: What exactly is the licensing situation with GNAT?
  2014-11-14  4:51                                         ` Randy Brukardt
@ 2014-11-14  5:12                                           ` David Botton
  2014-11-14  6:13                                             ` Randy Brukardt
  2014-11-15 17:32                                           ` Florian Weimer
  1 sibling, 1 reply; 241+ messages in thread
From: David Botton @ 2014-11-14  5:12 UTC (permalink / raw)


> Semi-related to this is that we approved Obj'Image as a language-defined 
> attribute, to be included in the 2015 Ada Corrigendum.

Very nice.

Do you have a list of which parts of Ada 2005 and 2012 Janus already supports? I'd like to see what is involved in getting Gnoga running on it (outside that AWS would not compile on it as is, although it may be possible to pear down things to just what is needed which is a very small part of AWS and port that).

If not too big a job, even though I am partial to open source tools obviously, I'd consider doing the port.

David Botton



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

* Re: What exactly is the licensing situation with GNAT?
  2014-11-14  4:45                                               ` Randy Brukardt
@ 2014-11-14  5:24                                                 ` Hubert
  0 siblings, 0 replies; 241+ messages in thread
From: Hubert @ 2014-11-14  5:24 UTC (permalink / raw)


> Perhaps you're confusing agile with test-driven development (TDD) and other
> such nonsense? Luckily, they don't have much to do with each other (even if
> they are often used together). TDD, of course is a way to guarentee the
> lowest quality software that still "works" (for some definition of "works").
> It means the software will certainly break as soon as someone thinks of a
> new way to use it, which is silly (because users are clever and will
> invitably come up with unanticipated ways to use anything) and dangerous
> (because the criminals will find those holes and abuse them).
>
>                                          Randy.
>
>

I don't know, I dont really follow the latest software development fads 
that much, I have my own ways, but I also realize that my technique is 
flawed because the lure of the "easy to make object" always lures me 
into doing things step by step, that is not to worry about what's down 
the road as long as I'm working on something that must come earlier and 
then I realize that what comes later in the process has requirements 
that were not considered in the early stages and I have to go back and 
change what I did before.

I think that is pretty much "agile" development. I test a lot though, 
usually go through new code with the debugger line by line, so my 
programs basically run every step I take, it's just that later I 
discover I missed some steps or took the wrong path. I'm working in C++ 
at the moment, mind you, so that language might encourage the developer 
to use bad techniques. When I did a small Ada project I deliberately 
took the opportunity to work differently and the result was much more 
satisfying.

I am thinking more along the line of the Waterfall model, however with 
modern designtools which weren't available in the 80s. Diagrams were 
mostly made by hand in those days and changing them was a pain in the 
butt, today that is much easier with tools like Visio or other graphical 
editors.






---
This email is free from viruses and malware because avast! Antivirus protection is active.
http://www.avast.com

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

* Re: What exactly is the licensing situation with GNAT?
  2014-11-14  5:12                                           ` David Botton
@ 2014-11-14  6:13                                             ` Randy Brukardt
  2014-11-14  8:40                                               ` Dmitry A. Kazakov
  0 siblings, 1 reply; 241+ messages in thread
From: Randy Brukardt @ 2014-11-14  6:13 UTC (permalink / raw)


"David Botton" <david@botton.com> wrote in message 
news:25731193-c0b5-4ab7-87ff-ba8c6a42cdbd@googlegroups.com...
>> Semi-related to this is that we approved Obj'Image as a language-defined
>> attribute, to be included in the 2015 Ada Corrigendum.
>
>Very nice.
>
>Do you have a list of which parts of Ada 2005 and 2012 Janus already 
>supports?

Yes, of course, but it's a pretty short list at the moment (mostly stuff 
involving aggregates, including <>). Probably not enough for your purposes.

>  I'd like to see what is involved in getting Gnoga running on it (outside 
> that
> AWS would not compile on it as is, although it may be possible to pear
> down things to just what is needed which is a very small part of AWS and 
> port that).

Or build something on top of NC_Sockets, if it's not too complicated 
(unlikely). One of the example programs for NC_Sockets is a simple web 
server (the one used for Ada-Auth.org/RRSoftware.com is a grown-up version 
of that example).

>If not too big a job, even though I am partial to open source tools 
>obviously, I'd consider doing the port.

If I had to guess, probably too big of a job today, but obviously new stuff 
is coming. It would be interesting to know what Ada 2005/Ada 2012 features 
you need. Probably we should take this off-line (it's not of much general 
interest, and I don't want to start promising stuff publically, I'm not that 
good at delivering as it is. :-)

                                   Randy.


David Botton



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

* community-based compiler (was Re: What exactly is the licensing situation with GNAT?)
  2014-11-13 23:56                                   ` David Botton
@ 2014-11-14  7:50                                     ` Gour
  2014-11-14  7:57                                       ` community-based compiler Gour
                                                         ` (2 more replies)
  2014-11-14  8:25                                     ` What exactly is the licensing situation with GNAT? Pete Ballmer
  1 sibling, 3 replies; 241+ messages in thread
From: Gour @ 2014-11-14  7:50 UTC (permalink / raw)


On Thu, 13 Nov 2014 15:56:35 -0800 (PST)
David Botton <david@botton.com> wrote:

Hello David,

> They did not feel my business model supports the change back to
> GMGPL, even for a targeted market, and the available FSF compilers
> can serve the needs of those other markets.

It's a bit sad to hear it, but let's move forward...

>I encourage people to use and improve the FSF version of GNAT and
> build a stronger community version if Ada is to be advocated beyond
> the niche markets it is in now.

I confess being total greenhorn when it comes to Ada, its compilers and
(their) business models, but there is part in me not liking to see
another Betamax vs VHS battle being won by less capable technology.

Yesterday I researched a bit R.R.Software's web site and found that
their Janus/Ada compiler is "...the only compiler on the market that is
written in Ada and self compiled in a personal computer environment."

It's clear that it's behind Adacore's GNAT, but, maybe, it can be basis
of the future's (more) community-based compiler?

Of course, I do not have the slightest idea about their business model
and whether it's possible to do it, but the point is that (the compiler)
being written in Ada might be more approachable for community members to
help and hack on it.

Here I can think about e.g. Bacula - backup & restore application which
exists as Bacula Systems (http://www.baculasystems.com/) providing
features & support for enterprise customers who are often paying for the
features which are later added to the community version
(http://bacula.org/), but the point is that community is actively
contributing with patches, debugging, bugreports etc. while the main
developers still have enough to pay the bills. :-)

Another example might be Julia language which is hosted at Github and at
the moment there are 4611 star-gazers, 935 forks and 298 contributors
and its ecosystem is growing rapidly.

Based on what I've seen/heard, it seems that Ada community is not much
involved in shaping GNAT, even in its FSF incarnation...


Sincerely,
Gour

-- 
Even a man of knowledge acts according to his own nature, for 
everyone follows the nature he has acquired from the three modes. 
What can repression accomplish?

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

* Re: community-based compiler
  2014-11-14  7:50                                     ` community-based compiler (was Re: What exactly is the licensing situation with GNAT?) Gour
@ 2014-11-14  7:57                                       ` Gour
  2014-11-14 14:53                                       ` community-based compiler (was Re: What exactly is the licensing situation with GNAT?) Luke A. Guest
  2014-11-14 17:13                                       ` community-based compiler (was Re: What exactly is the licensing situation with GNAT?) Shark8
  2 siblings, 0 replies; 241+ messages in thread
From: Gour @ 2014-11-14  7:57 UTC (permalink / raw)


On Fri, 14 Nov 2014 08:50:46 +0100
Gour <gour@atmarama.net> wrote:

> Based on what I've seen/heard, it seems that Ada community is not much
> involved in shaping GNAT, even in its FSF incarnation...

Of course I forgot to mention yesterday's news about Microsoft
open-sourcing their .NET and today's about Go(lang) moving to Github. ;)

> Sincerely,
> Gour

-- 
He who is satisfied with gain which comes of its own accord, who 
is free from duality and does not envy, who is steady in both 
success and failure, is never entangled, although performing actions.

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

* Re: What exactly is the licensing situation with GNAT?
  2014-11-13 22:14                                     ` Randy Brukardt
@ 2014-11-14  8:18                                       ` George Curioso
  0 siblings, 0 replies; 241+ messages in thread
From: George Curioso @ 2014-11-14  8:18 UTC (permalink / raw)


On 2014-11-13, Randy Brukardt <randy@rrsoftware.com> wrote:
> "George Curioso" <curiousgeorge@thezoo.net> wrote in message 
> news:m41nld$2rh$1@speranza.aioe.org...
>> On 2014-11-12, Randy Brukardt <randy@rrsoftware.com> wrote:

>> Will it run on Linux, Solaris (x86 or SPARC), FreeBSD, etc? 32 bits or 64? 
>> I
>> downloaded your test executables (I think they were old a.out) years ago 
>> and
>> I couldn't get them to work on anything I had running at the time.
>>
>> Please clarify exactly what platforms and Ada versions are supported. I've
>> heard (read) good things about your toolchain but your website doesn't 
>> help ;-)
>
> Practically, the toolchain is Windows-only at this point. We don't have 
> anything for Linux or FreeBSD, it wouldn't be hard to create such a thing, 
> but it's important get one thing right before moving on to other things. 

Thanks for the info. My preferences are for Solaris but that is a declining
market. Still you could probably make a few bucks if you can support it
readily. However Linux is surely a growth market. Most developers have a
Linux box around for stuff that won't run on other systems.

> When I redo the website, I'll remove the Unix references (since I recycled 
> the computer that supported those versions this spring in a tax-saving move, 
> I couldn't actually provide one even if someone wanted it). Of course, the 
> source code is still in our version control, so it could be regenerated if 
> necessary -- but it hasn't been updated since 1997.

I'm sure people would agree to host your development in exchange for a copy
of your product on whatever platform(s) you'd like it to run on.

George


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

* Re: What exactly is the licensing situation with GNAT?
  2014-11-13 23:56                                   ` David Botton
  2014-11-14  7:50                                     ` community-based compiler (was Re: What exactly is the licensing situation with GNAT?) Gour
@ 2014-11-14  8:25                                     ` Pete Ballmer
  2014-11-14 12:46                                       ` Peter Chapin
  1 sibling, 1 reply; 241+ messages in thread
From: Pete Ballmer @ 2014-11-14  8:25 UTC (permalink / raw)


On 2014-11-13, David Botton <david@botton.com> wrote:

> I encourage people to use and improve the FSF version of GNAT and build a
>stronger community version if Ada is to be advocated beyond the niche
>markets it is in now. 

I don't contribute to GPL projects. I have contributed code, cash, and
hosting for BSD-licensed and other freely licensed projects and will
continue to do so. I'll be happy when FSF closes up shop and Stalemate is
back in the gutter with a bottle of booze where he belongs.

Other systems like LLVM would be ok except they're not supporting anything
but Intel. That is the same kind of destructivness that makes Linux
dangerous only from a different angle. FreeBSD may have gone to it but now
they have the unpleasant decision of writing code that will compile under
gcc and LLVM or ceasing to support non-Intel platforms.

Until people stop using proprietary compiler extensions and learn the value
of portable code and how to write it, moving in this direction or that
direction is just bouncing the problem around and around and it shows no
signs of being recognized let alone any hope to ever be fixed.

Pete


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

* Re: What exactly is the licensing situation with GNAT?
  2014-11-13 21:51                                             ` Randy Brukardt
@ 2014-11-14  8:36                                               ` Dmitry A. Kazakov
  2014-11-14 22:24                                                 ` Randy Brukardt
  0 siblings, 1 reply; 241+ messages in thread
From: Dmitry A. Kazakov @ 2014-11-14  8:36 UTC (permalink / raw)


On Thu, 13 Nov 2014 15:51:54 -0600, Randy Brukardt wrote:

> I recall Adam suggesting that some special sort of named 
> access-to-subprogram type be defined with similar characteristics to the 
> anonymous access-to-subprogram. Such a thing could be made to work, while 
> the bare pointer used for normal access-to-subprogram types would not work. 
> But of course it would be susceptible to dangling pointers, and won't 
> (usually) be compatible with C.

I was always wondering why it was not a plain subprogram type. That would
solve a lot of problem, interfacing C included. E.g.

   type procedure Callback;
   pragma Convention (C, Callback);

   procedure Foo (F : Callback);
   pragma Import (C, Foo);

   procedure Bar is
      X : Callback :=
      begin
          ...
      end;
   begin
      Foo (X); -- I know what I am doing
   end Bar;

Certainly there is a danger that C would copy the pointer and use it after
leaving Bar, but that is not Ada's concern. Because it is equally apply to
*any* non-scalar arguments passed to C.

-- 
Regards,
Dmitry A. Kazakov
http://www.dmitry-kazakov.de

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

* Re: What exactly is the licensing situation with GNAT?
  2014-11-14  6:13                                             ` Randy Brukardt
@ 2014-11-14  8:40                                               ` Dmitry A. Kazakov
  2014-11-14 22:29                                                 ` Randy Brukardt
  0 siblings, 1 reply; 241+ messages in thread
From: Dmitry A. Kazakov @ 2014-11-14  8:40 UTC (permalink / raw)


On Fri, 14 Nov 2014 00:13:28 -0600, Randy Brukardt wrote:

> Or build something on top of NC_Sockets, if it's not too complicated 
> (unlikely). One of the example programs for NC_Sockets is a simple web 
> server (the one used for Ada-Auth.org/RRSoftware.com is a grown-up version 
> of that example).

Could you elaborate this a bit. Specifically:

1. Do NC_Scokets support socket select? (My HTTP server, presently based on
GNAT.Sockets, needs select).

2. Which platforms are supported?

-- 
Regards,
Dmitry A. Kazakov
http://www.dmitry-kazakov.de


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

* Re: What exactly is the licensing situation with GNAT?
  2014-11-14  1:36                                             ` Hubert
  2014-11-14  4:45                                               ` Randy Brukardt
@ 2014-11-14  8:51                                               ` Dmitry A. Kazakov
  2014-11-14  9:02                                                 ` Stan Mills
  2014-11-14  9:19                                                 ` Hubert
  1 sibling, 2 replies; 241+ messages in thread
From: Dmitry A. Kazakov @ 2014-11-14  8:51 UTC (permalink / raw)


On Thu, 13 Nov 2014 17:36:06 -0800, Hubert wrote:

> That is a point that I have been contemplating for a while now but in 
> conjunction with Object Oriented Programming. When I look back at my 
> career I realize that I became lazier and lazier in terms of designing 
> before programming with the advent of OOP. I think OOP is designed to to 
> just that: 

Hmm, actually OOD and OOP require more upfront design than traditional
procedural approach. Ad-hoch subprograms are much easier and quicker stuff
than ad-hoc type + subprograms (=class) with thinking about possible
inheritance etc.

> Give you a false sense of "naturalism" and "ease" because 
> "objects are so natural to the way humans think" and "everything in 
> nature is an object" etc.

OK, that is OOA religion. You don't need to belive in objects created by
God in order to carefully design types your program is going to use.

In fact Ada was always OO, as you could define new types and provide
operations for these types in Ada 83. It even had some form of inheritance
in the form of type cloning (type X is new Integer). 

Some used to say that Ada 83 was object-based, but not fully
object-oriented.

-- 
Regards,
Dmitry A. Kazakov
http://www.dmitry-kazakov.de


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

* Re: What exactly is the licensing situation with GNAT?
  2014-11-14  8:51                                               ` Dmitry A. Kazakov
@ 2014-11-14  9:02                                                 ` Stan Mills
  2014-11-14 10:14                                                   ` Dmitry A. Kazakov
  2014-11-14  9:19                                                 ` Hubert
  1 sibling, 1 reply; 241+ messages in thread
From: Stan Mills @ 2014-11-14  9:02 UTC (permalink / raw)


On 2014-11-14, Dmitry A. Kazakov <mailbox@dmitry-kazakov.de> wrote:
> On Thu, 13 Nov 2014 17:36:06 -0800, Hubert wrote:
>
>> That is a point that I have been contemplating for a while now but in 
>> conjunction with Object Oriented Programming. When I look back at my 
>> career I realize that I became lazier and lazier in terms of designing 
>> before programming with the advent of OOP. I think OOP is designed to to 
>> just that: 
>
> Hmm, actually OOD and OOP require more upfront design than traditional
> procedural approach. Ad-hoch subprograms are much easier and quicker stuff
> than ad-hoc type + subprograms (=class) with thinking about possible
> inheritance etc.

That's if you are responsible for the whole thing or care about doing it properly.

The way OO is used today all the real work is expected to have already been
done by the class library writers and the "coder" just cuts and pastes his
way to the end of the program. Next!

> In fact Ada was always OO, as you could define new types and provide
> operations for these types in Ada 83. It even had some form of inheritance
> in the form of type cloning (type X is new Integer).
>
> Some used to say that Ada 83 was object-based, but not fully
> object-oriented.

True and it was not even the first to do so. OO is supposed to be about a
way to solve problems, not about using somebody else's libraries to avoid
writing any code. But thanks to Java and lately C++ it has degenerated
considerably from the former into the latter.

Stan Mills


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

* Re: What exactly is the licensing situation with GNAT?
  2014-11-14  8:51                                               ` Dmitry A. Kazakov
  2014-11-14  9:02                                                 ` Stan Mills
@ 2014-11-14  9:19                                                 ` Hubert
  2014-11-14 10:30                                                   ` Dmitry A. Kazakov
  1 sibling, 1 reply; 241+ messages in thread
From: Hubert @ 2014-11-14  9:19 UTC (permalink / raw)


> Hmm, actually OOD and OOP require more upfront design than traditional
> procedural approach. Ad-hoch subprograms are much easier and quicker stuff
> than ad-hoc type + subprograms (=class) with thinking about possible
> inheritance etc.

That maybe the theory, but what I have experienced is that it is 
immensely easy to just start writing code and have great success with 
it. In fact it is much easier than writing subprograms and modules etc. 
That is the stuff that requires planning.

Objects just "flow from the brain into the computer". But later they are 
going to bite you and that is my criticism. That it seems so easy and 
natural in the beginning which gives the programmer a false sense of 
security. But it will backfire. Again I am only referring to C++ here.

Of course I know that UML is intended to be used in the planning 
process, but it is so overcomplicated that many people will never use 
it. I know I don't (except timing diagrams which are pretty handy when 
it comes to multi threading programs).







---
This email is free from viruses and malware because avast! Antivirus protection is active.
http://www.avast.com

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

* Re: What exactly is the licensing situation with GNAT?
  2014-11-14  9:02                                                 ` Stan Mills
@ 2014-11-14 10:14                                                   ` Dmitry A. Kazakov
  2014-11-14 10:38                                                     ` Stan Mills
  0 siblings, 1 reply; 241+ messages in thread
From: Dmitry A. Kazakov @ 2014-11-14 10:14 UTC (permalink / raw)


On Fri, 14 Nov 2014 09:02:49 +0000 (UTC), Stan Mills wrote:

> On 2014-11-14, Dmitry A. Kazakov <mailbox@dmitry-kazakov.de> wrote:
>> On Thu, 13 Nov 2014 17:36:06 -0800, Hubert wrote:
>>
>>> That is a point that I have been contemplating for a while now but in 
>>> conjunction with Object Oriented Programming. When I look back at my 
>>> career I realize that I became lazier and lazier in terms of designing 
>>> before programming with the advent of OOP. I think OOP is designed to to 
>>> just that: 
>>
>> Hmm, actually OOD and OOP require more upfront design than traditional
>> procedural approach. Ad-hoch subprograms are much easier and quicker stuff
>> than ad-hoc type + subprograms (=class) with thinking about possible
>> inheritance etc.
> 
> That's if you are responsible for the whole thing or care about doing it properly.
> 
> The way OO is used today all the real work is expected to have already been
> done by the class library writers and the "coder" just cuts and pastes his
> way to the end of the program. Next!

This is how everything is done today. Certainly it is not OO's fault or
OO's feature. On the contrary, OO, specifically the concepts of inheritance
and instances, addresses software-reuse, which is exactly the opposite to
the cut and paste approach.

-- 
Regards,
Dmitry A. Kazakov
http://www.dmitry-kazakov.de


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

* Re: What exactly is the licensing situation with GNAT?
  2014-11-14  9:19                                                 ` Hubert
@ 2014-11-14 10:30                                                   ` Dmitry A. Kazakov
  2014-11-15  1:00                                                     ` Hubert
  2014-11-17  8:11                                                     ` Stan Mills
  0 siblings, 2 replies; 241+ messages in thread
From: Dmitry A. Kazakov @ 2014-11-14 10:30 UTC (permalink / raw)


On Fri, 14 Nov 2014 01:19:04 -0800, Hubert wrote:

>> Hmm, actually OOD and OOP require more upfront design than traditional
>> procedural approach. Ad-hoch subprograms are much easier and quicker stuff
>> than ad-hoc type + subprograms (=class) with thinking about possible
>> inheritance etc.
> 
> That maybe the theory, but what I have experienced is that it is 
> immensely easy to just start writing code and have great success with 
> it. In fact it is much easier than writing subprograms and modules etc. 
> That is the stuff that requires planning.

I don't see how this could be true. One problem with such statements is
that people compare incomparable things or consider usage of ready
components as if it were the program of their own. If you carefully analyse
any of these activities under procedural vs. OO approach you will find
that:

1. Reuse is in order of magnitude easier and safer when with OO.

2. Writing your own new code requires more upfront thinking and writing but
is greatly safer in the long run.

Ergo, OO is good for software engineering, which should surprise nobody,
because in essence OO, leaving OOA/D religion aside, is nothing but an
improved type system.

> Objects just "flow from the brain into the computer". But later they are 
> going to bite you and that is my criticism. That it seems so easy and 
> natural in the beginning which gives the programmer a false sense of 
> security.

This is a logical fallacy. Compare: Ada gives the programmer a false sense
of security, therefore we must stick to ANSI C.

OO is as insecure as the OOPL allows it to be. E.g. Ada requires overriding
the primitive operations returning tagged results. That is secure. Ada does
not require either "overriding" or "not overriding" to appear. That is
insecure. So?

> Of course I know that UML is intended to be used in the planning 
> process, but it is so overcomplicated that many people will never use 
> it. I know I don't (except timing diagrams which are pretty handy when 
> it comes to multi threading programs).

Modeling is a part of OOA/D, not OOP. I am very sceptical about OOA/D.
Regarding modeling it is IMO a plain wrong approach to software
engineering. But again, that is not OOP. You can do OOP without modeling as
well as modeling without OOP or even without having an OOPL.

-- 
Regards,
Dmitry A. Kazakov
http://www.dmitry-kazakov.de

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

* Re: What exactly is the licensing situation with GNAT?
  2014-11-14 10:14                                                   ` Dmitry A. Kazakov
@ 2014-11-14 10:38                                                     ` Stan Mills
  2014-11-14 12:57                                                       ` Peter Chapin
  2014-11-14 13:35                                                       ` Dmitry A. Kazakov
  0 siblings, 2 replies; 241+ messages in thread
From: Stan Mills @ 2014-11-14 10:38 UTC (permalink / raw)


On 2014-11-14, Dmitry A. Kazakov <mailbox@dmitry-kazakov.de> wrote:
> On Fri, 14 Nov 2014 09:02:49 +0000 (UTC), Stan Mills wrote:
>
>> On 2014-11-14, Dmitry A. Kazakov <mailbox@dmitry-kazakov.de> wrote:
>>> On Thu, 13 Nov 2014 17:36:06 -0800, Hubert wrote:
>>>
>>>> That is a point that I have been contemplating for a while now but in 
>>>> conjunction with Object Oriented Programming. When I look back at my 
>>>> career I realize that I became lazier and lazier in terms of designing 
>>>> before programming with the advent of OOP. I think OOP is designed to to 
>>>> just that: 
>>>
>>> Hmm, actually OOD and OOP require more upfront design than traditional
>>> procedural approach. Ad-hoch subprograms are much easier and quicker stuff
>>> than ad-hoc type + subprograms (=class) with thinking about possible
>>> inheritance etc.
>> 
>> That's if you are responsible for the whole thing or care about doing it properly.
>> 
>> The way OO is used today all the real work is expected to have already been
>> done by the class library writers and the "coder" just cuts and pastes his
>> way to the end of the program. Next!
>
> This is how everything is done today. Certainly it is not OO's fault or
> OO's feature.

Oh, I beg to differ. Sun certainly dumbed down programming when they
designed Java. It's about making unqualified people "productive" and the
best way to do that is for qualified people to write as much code as
possible for unqualified people to use. The primary feature of OO in
practice is the huge set of class libraries to reduce the amount of future
coding as much as possible to simple cut and paste of existing bad code. The
only thing a regular programmer can't write in Java or C++ today is
something that doesn't already have a class library to do it for him.

> On the contrary, OO, specifically the concepts of inheritance and
> instances, addresses software-reuse, which is exactly the opposite to the
> cut and paste approach.

That's the theory. But in practice, having all the hard stuff written
already just promotes cutting and pasting of a different color. The code
that *uses* those classes is normally not reusable. That's what is cutting
and pasting. It's been shoved down a level or two.

Don't try and impose your sense of rigor and order on chaos and think
everybody works according to sound software engineering practice ;-)
The reality is unfortunately like I said. People are worse coders than they
were before OO and they are crippled, not enabled, by immense class
libraries. 1/2% of the people are writing 99% of the usable code. The other
guys are just invoking their methods.

I have seen guys who never wrote a program from scratch in any language, and
who can't understand or code any algorithm at all. But they are able to
build huge ivory towers of applications based on nothing but other people's
libaries. Everything is a black box to them and if you ask how it works all
they can explain is how to invoke the methods they used. It was true in C
and it's much worse with Java and C++, not to mention the new OO scripting
languages. In the end OO is about the other guy doing all the work and you
feeling like you accomplished something by using it. It's a big lie. Those
people aren't programmers, they're disabled end-users.

Stan

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

* Re: What exactly is the licensing situation with GNAT?
  2014-11-14  8:25                                     ` What exactly is the licensing situation with GNAT? Pete Ballmer
@ 2014-11-14 12:46                                       ` Peter Chapin
  2014-11-15  8:47                                         ` Mart van de Wege
                                                           ` (2 more replies)
  0 siblings, 3 replies; 241+ messages in thread
From: Peter Chapin @ 2014-11-14 12:46 UTC (permalink / raw)


On Fri, 14 Nov 2014, Pete Ballmer wrote:

> Other systems like LLVM would be ok except they're not supporting anything
> but Intel.

I'm not sure I understand what you mean. When I look at the LLVM web site 
I see:

"An easily retargettable code generator, which currently supports X86, 
X86-64, PowerPC, PowerPC-64, ARM, Thumb, SPARC, Alpha, CellSPU, MIPS, 
MSP430, SystemZ, and XCore."

Are you saying that only the Intel support is used or gets active 
development?

Peter

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

* Re: What exactly is the licensing situation with GNAT?
  2014-11-14 10:38                                                     ` Stan Mills
@ 2014-11-14 12:57                                                       ` Peter Chapin
  2014-11-14 22:33                                                         ` Randy Brukardt
  2014-11-17  8:28                                                         ` Stan Mills
  2014-11-14 13:35                                                       ` Dmitry A. Kazakov
  1 sibling, 2 replies; 241+ messages in thread
From: Peter Chapin @ 2014-11-14 12:57 UTC (permalink / raw)


On Fri, 14 Nov 2014, Stan Mills wrote:

> I have seen guys who never wrote a program from scratch in any language, 
> and who can't understand or code any algorithm at all. But they are able 
> to build huge ivory towers of applications based on nothing but other 
> people's libaries. Everything is a black box to them and if you ask how 
> it works all they can explain is how to invoke the methods they used.

Isn't this exactly the idea of abstraction and data hiding, not to mention 
software reuse? In the old days everyone wrote everything from scratch. 
What you described sounds like progress to me.

After all we don't expect programmers, even software engineers, to write 
their own compilers, assemblers, and operating systems. Those things are 
just black boxes.

I suppose one could argue that a professional software engineer should be 
capable of writing such things if they needed to, but that they only 
choose not to because it's not cost effective. So perhaps what you are 
really saying is that 99% of programmers are just not capable of writing 
the kinds of libraries they routinely use.

Peter


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

* Re: What exactly is the licensing situation with GNAT?
  2014-11-14 10:38                                                     ` Stan Mills
  2014-11-14 12:57                                                       ` Peter Chapin
@ 2014-11-14 13:35                                                       ` Dmitry A. Kazakov
  2014-11-14 15:29                                                         ` Things that OO programming lacks (was: What exactly is the licensing situation with GNAT?) G.B.
  2014-11-17  8:36                                                         ` What exactly is the licensing situation with GNAT? Stan Mills
  1 sibling, 2 replies; 241+ messages in thread
From: Dmitry A. Kazakov @ 2014-11-14 13:35 UTC (permalink / raw)


On Fri, 14 Nov 2014 10:38:17 +0000 (UTC), Stan Mills wrote:

> On 2014-11-14, Dmitry A. Kazakov <mailbox@dmitry-kazakov.de> wrote:
>> On Fri, 14 Nov 2014 09:02:49 +0000 (UTC), Stan Mills wrote:
>>
>>> On 2014-11-14, Dmitry A. Kazakov <mailbox@dmitry-kazakov.de> wrote:
>>>> On Thu, 13 Nov 2014 17:36:06 -0800, Hubert wrote:
>>>>
>>>>> That is a point that I have been contemplating for a while now but in 
>>>>> conjunction with Object Oriented Programming. When I look back at my 
>>>>> career I realize that I became lazier and lazier in terms of designing 
>>>>> before programming with the advent of OOP. I think OOP is designed to to 
>>>>> just that: 
>>>>
>>>> Hmm, actually OOD and OOP require more upfront design than traditional
>>>> procedural approach. Ad-hoch subprograms are much easier and quicker stuff
>>>> than ad-hoc type + subprograms (=class) with thinking about possible
>>>> inheritance etc.
>>> 
>>> That's if you are responsible for the whole thing or care about doing it properly.
>>> 
>>> The way OO is used today all the real work is expected to have already been
>>> done by the class library writers and the "coder" just cuts and pastes his
>>> way to the end of the program. Next!
>>
>> This is how everything is done today. Certainly it is not OO's fault or
>> OO's feature.
> 
> Oh, I beg to differ. Sun certainly dumbed down programming when they
> designed Java. It's about making unqualified people "productive" and the
> best way to do that is for qualified people to write as much code as
> possible for unqualified people to use. The primary feature of OO in
> practice is the huge set of class libraries to reduce the amount of future
> coding as much as possible to simple cut and paste of existing bad code.

Well, and the alternative would be? To re-implement everything each time?
Actually, the maturity of an engineering discipline is measured by the
level of reuse of standardised solutions and components.

> The
> only thing a regular programmer can't write in Java or C++ today is
> something that doesn't already have a class library to do it for him.

Maybe. In this context, can the regular programmer do anything better with
any of competing paradigms:

1. Procedural
2. Functional
3. Relational
 
I bet, that anybody is far better off with OO than with any from the above.

>> On the contrary, OO, specifically the concepts of inheritance and
>> instances, addresses software-reuse, which is exactly the opposite to the
>> cut and paste approach.
> 
> That's the theory. But in practice, having all the hard stuff written
> already just promotes cutting and pasting of a different color. The code
> that *uses* those classes is normally not reusable. That's what is cutting
> and pasting. It's been shoved down a level or two.

Maybe. But, again, what would be better?

As a simple example consider Ada's design of, say, Ada.Streams. This is an
OO design. The type Root_Stream_Type is as tagged as it could be.

Now, take either of the paradigms #1, #2, #3 and outline a better design of
streams. Could you?

> Don't try and impose your sense of rigor and order on chaos and think
> everybody works according to sound software engineering practice ;-)
[...]

But this is not an OO problem. The problem is with CS as a whole and with
missing software market. You need two things for having a decent
engineering discipline, that is a sound science (CS is trash) and a working
economical stimulus rewarding quality products and punishing swindlers (SW
market is ruined).

-- 
Regards,
Dmitry A. Kazakov
http://www.dmitry-kazakov.de


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

* Re: community-based compiler (was Re: What exactly is the licensing situation with GNAT?)
  2014-11-14  7:50                                     ` community-based compiler (was Re: What exactly is the licensing situation with GNAT?) Gour
  2014-11-14  7:57                                       ` community-based compiler Gour
@ 2014-11-14 14:53                                       ` Luke A. Guest
  2014-11-14 14:57                                         ` David Botton
                                                           ` (4 more replies)
  2014-11-14 17:13                                       ` community-based compiler (was Re: What exactly is the licensing situation with GNAT?) Shark8
  2 siblings, 5 replies; 241+ messages in thread
From: Luke A. Guest @ 2014-11-14 14:53 UTC (permalink / raw)


Gour <gour@atmarama.net> wrote:
> On Thu, 13 Nov 2014 15:56:35 -0800 (PST)
> David Botton <david@botton.com> wrote:
> 
> Yesterday I researched a bit R.R.Software's web site and found that
> their Janus/Ada compiler is "...the only compiler on the market that is
> written in Ada and self compiled in a personal computer environment."

GNAT is written in Ada and can compile itself.

> It's clear that it's behind Adacore's GNAT, but, maybe, it can be basis
> of the future's (more) community-based compiler?

Unlikely it will be open sourced.

> being written in Ada might be more approachable for community members to
> help and hack on it.

I think there needs to be something totally new for that to happen.

> (http://bacula.org/), but the point is that community is actively
> contributing with patches, debugging, bugreports etc. while the main
> developers still have enough to pay the bills. :-)

Difficult with a market as small as ours :(

> 
> Another example might be Julia language which is hosted at Github and at
> the moment there are 4611 star-gazers, 935 forks and 298 contributors
> and its ecosystem is growing rapidly.

Might have a look at that.

> 
> Based on what I've seen/heard, it seems that Ada community is not much
> involved in shaping GNAT, even in its FSF incarnation...

It's more that the community has never been allowed to.

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

* Re: community-based compiler (was Re: What exactly is the licensing situation with GNAT?)
  2014-11-14 14:53                                       ` community-based compiler (was Re: What exactly is the licensing situation with GNAT?) Luke A. Guest
@ 2014-11-14 14:57                                         ` David Botton
  2014-11-14 16:16                                           ` Luke A. Guest
  2014-11-14 15:27                                         ` Gour
                                                           ` (3 subsequent siblings)
  4 siblings, 1 reply; 241+ messages in thread
From: David Botton @ 2014-11-14 14:57 UTC (permalink / raw)


> It's more that the community has never been allowed to.

What is stopping it? I have not gotten in to compiler development, but I would assume anyone can send patches to the FSF

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

* Re: community-based compiler
  2014-11-14 14:53                                       ` community-based compiler (was Re: What exactly is the licensing situation with GNAT?) Luke A. Guest
  2014-11-14 14:57                                         ` David Botton
@ 2014-11-14 15:27                                         ` Gour
  2014-11-14 16:16                                           ` Luke A. Guest
  2014-11-14 16:03                                         ` community-based compiler (was Re: What exactly is the licensing situation with GNAT?) Tero Koskinen
                                                           ` (2 subsequent siblings)
  4 siblings, 1 reply; 241+ messages in thread
From: Gour @ 2014-11-14 15:27 UTC (permalink / raw)


On Fri, 14 Nov 2014 14:53:43 +0000 (UTC)
Luke A. Guest <laguest@archeia.com> wrote:

> GNAT is written in Ada and can compile itself.

Why is then GCC in equation and not bootstrapping like with e.g. GHC, D,
Nim, Rust etc...even Go is going that direction?


Sincerely,
Gour

-- 

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

* Things that OO programming lacks (was: What exactly is the licensing situation with GNAT?)
  2014-11-14 13:35                                                       ` Dmitry A. Kazakov
@ 2014-11-14 15:29                                                         ` G.B.
  2014-11-14 16:32                                                           ` Things that OO programming lacks Dmitry A. Kazakov
  2014-11-17  8:36                                                         ` What exactly is the licensing situation with GNAT? Stan Mills
  1 sibling, 1 reply; 241+ messages in thread
From: G.B. @ 2014-11-14 15:29 UTC (permalink / raw)


On 14.11.14 14:35, Dmitry A. Kazakov wrote:
>> That's the theory. But in practice, having all the hard stuff written
>> >already just promotes cutting and pasting of a different color. The code
>> >that*uses*  those classes is normally not reusable. That's what is cutting
>> >and pasting. It's been shoved down a level or two.
> Maybe. But, again, what would be better?

Better? A mode of expressing what we know beyond our objects,
in dedicated language:

Since programmers are starting to know more about patterns
of connecting objects, I suppose something expressing those
patterns more clearly would be useful.
For example, "connections" may refer to order of calls in time,
and to "flow" caused by "data".

A way to express these patterns of OO  programming will avoid
producing intractable state manipulation code (a.k.a. spaghetti).
OO does not prevent programmers from just operating setters
and getters, "knowing" the effects this has on the "other" object.

When a programming method using patterns relies on naming
and conventions, like the GoF patterns do, that's not language,
is it?

Another important example is events.

Consider a system with many inputs, many outputs, and also
some treads. A GUI program, or a control unit, an OS, etc.
There will be events in need of a response.
Events are generated either by programs or by the world.

Then I want to express, at the language level, using
dedicated source text:

-  What are all of the events than can have a normal effect
    on the program?

-  What are the possible orders of these events?

-  How can I arrange for orders of events to be know
    at or after run time?

-  How can I connect events expressly to objects that
    respond to the events?

-  How can I learn, by looking at specific language in
    a program, which objects are connected to an event?

At first, Ada's task type seem to covers order of events,
in bodies (only?). Using the control structure of the
language facilitates expressing possible orders:

   task body ... is
   begin
      ...
      accept first_this;
      ...
      accept then_that (...)
      ...
      loop
       select
         accept either_A (...)
         ...
       or
         accept or_B (...)
         ...
       end select;
      end loop;
   end ;

But this is only half way, since task objects' definition does not,
by design, show possible connections of multiple task objects in
a program.  The other side, that of calling tasks (selectively)
adds to the complexity of analysis.

Similarly, there are ways to place a restriction on the
order of subprogram calls. For example, one might force an order
by having a sequence of functions consume and produce objects
from an ordered sequence of types:

    function A (Obj : T0) return T1:
    function B (Obj : T1) return T2:
    ...
    function M (Obj : T16) return T5:
    ...

Or one could be using condition expressions, like in

   procedure P (Object : in out Typ; ...)
    with
      Pre => Object.State (State_No'(4711));


   function State (Object : in Typ) return State_No;

but both are not specific language, and at least the second,
i.e. Pre referring to object state, require mere conventions.

To me these look like a poor workarounds, Pre more than the types TK,
even when they assist the client programmer writing calls of
subprograms in proper order. Which only shows that a way to
express order, e.g. in interfaces, is valuable.

To have language for expressing connections in a program would
be better.  We only got tools that show graphs of a few arrows,
as in design diagrams for interfaces and models. But we do not
really have source text specifically addressing order of events,
and connections made on the occasion.



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

* Re: community-based compiler (was Re: What exactly is the licensing situation with GNAT?)
  2014-11-14 14:53                                       ` community-based compiler (was Re: What exactly is the licensing situation with GNAT?) Luke A. Guest
  2014-11-14 14:57                                         ` David Botton
  2014-11-14 15:27                                         ` Gour
@ 2014-11-14 16:03                                         ` Tero Koskinen
  2014-11-14 22:40                                         ` Randy Brukardt
  2014-11-16 19:29                                         ` Florian Weimer
  4 siblings, 0 replies; 241+ messages in thread
From: Tero Koskinen @ 2014-11-14 16:03 UTC (permalink / raw)


14.11.2014 16:53, Luke A. Guest wrote:
> Gour <gour@atmarama.net> wrote:
>> Yesterday I researched a bit R.R.Software's web site and found
>> that their Janus/Ada compiler is "...the only compiler on the
>> market that is written in Ada and self compiled in a personal
>> computer environment."
> 
> GNAT is written in Ada and can compile itself.

Actually, you need C (and these days C++) compiler also to
compile GNAT. Of course, these days almost every Linux
system has gcc&g++ installed (especially if you have GNAT installed),
so this is not a big issue.

If I have understood correctly, building Janus/Ada can be done
with "plain" Ada compiler and Microsoft linker alone, no other tools needed.

Yours,
 Tero

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

* Re: community-based compiler
  2014-11-14 15:27                                         ` Gour
@ 2014-11-14 16:16                                           ` Luke A. Guest
  2014-11-14 16:26                                             ` Gour
  0 siblings, 1 reply; 241+ messages in thread
From: Luke A. Guest @ 2014-11-14 16:16 UTC (permalink / raw)


Gour <gour@atmarama.net> wrote:
> On Fri, 14 Nov 2014 14:53:43 +0000 (UTC)
> Luke A. Guest <laguest@archeia.com> wrote:
> 
>> GNAT is written in Ada and can compile itself.
> 
> Why is then GCC in equation and not bootstrapping like with e.g. GHC, D,
> Nim, Rust etc...even Go is going that direction?

They're going to rewrite go in another language?

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

* Re: community-based compiler (was Re: What exactly is the licensing situation with GNAT?)
  2014-11-14 14:57                                         ` David Botton
@ 2014-11-14 16:16                                           ` Luke A. Guest
  2014-11-14 16:34                                             ` David Botton
  0 siblings, 1 reply; 241+ messages in thread
From: Luke A. Guest @ 2014-11-14 16:16 UTC (permalink / raw)


David Botton <david@botton.com> wrote:
>> It's more that the community has never been allowed to.
> 
> What is stopping it? I have not gotten in to compiler development, but I
> would assume anyone can send patches to the FSF

People have sent patches to AdaCore and ended getting slagged off ending up
in massive arguments. Patches then rejected. Heard this from the person it
happened to.

Any question I have raised re certain things have been met with silence or
one liners explaining nothing and therefore being useless.

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

* Re: community-based compiler
  2014-11-14 16:16                                           ` Luke A. Guest
@ 2014-11-14 16:26                                             ` Gour
  2014-11-14 16:48                                               ` Luke A. Guest
  0 siblings, 1 reply; 241+ messages in thread
From: Gour @ 2014-11-14 16:26 UTC (permalink / raw)


On Fri, 14 Nov 2014 16:16:22 +0000 (UTC)
Luke A. Guest <laguest@archeia.com> wrote:

> They're going to rewrite go in another language?

No, they're converting compiler from C to Go

E.g. http://gophercon.sourcegraph.com/post/83820197495/russ-cox-porting-the-go-compiler-from-c-to-go


Sincerely,
Gour

-- 
Whenever and wherever there is a decline in religious practice, 
O descendant of Bharata, and a predominant rise of irreligion — 
at that time I descend Myself.


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

* Re: Things that OO programming lacks
  2014-11-14 15:29                                                         ` Things that OO programming lacks (was: What exactly is the licensing situation with GNAT?) G.B.
@ 2014-11-14 16:32                                                           ` Dmitry A. Kazakov
  2014-11-15 19:46                                                             ` Georg Bauhaus
  2014-11-16 17:54                                                             ` Simon Wright
  0 siblings, 2 replies; 241+ messages in thread
From: Dmitry A. Kazakov @ 2014-11-14 16:32 UTC (permalink / raw)


On Fri, 14 Nov 2014 16:29:56 +0100, G.B. wrote:

> On 14.11.14 14:35, Dmitry A. Kazakov wrote:
>>> That's the theory. But in practice, having all the hard stuff written
>>> >already just promotes cutting and pasting of a different color. The code
>>> >that*uses*  those classes is normally not reusable. That's what is cutting
>>> >and pasting. It's been shoved down a level or two.
>> Maybe. But, again, what would be better?
> 
> Better? A mode of expressing what we know beyond our objects,
> in dedicated language:
> 
> Since programmers are starting to know more about patterns
> of connecting objects, I suppose something expressing those
> patterns more clearly would be useful.

What objects? There is none, as you thrown OO under the bus...

> For example, "connections" may refer to order of calls in time,
> and to "flow" caused by "data".

For example Ada.Streams show us "connecting patterns".

> Another important example is events.

I didn't list event-driven AKA data-driven paradigm in my list of
paradigms, since it is so horrific, that nobody should seriously consider
it as useful.

> Consider a system with many inputs, many outputs, and also
> some treads.

Which are? Remember the paradigms. If you are not going to introduce a new
one, there are no things you listed. In OO there are objects. In the
procedural paradigm there are subprograms (and a fixed set of types). In
functional there are functions. In relational there are relations (and a
fixed set of types). That is.

If you want going data-driven show how it could be done in the first
approximation at least more safer than randomly generated hexadecimal
code... (Saying no word about reuse)

[...]
> To me these look like a poor workarounds, Pre more than the types TK,
> even when they assist the client programmer writing calls of
> subprograms in proper order.

This is meaningless at best. If subprograms cannot be called freely, this
is a bad [procedural] design, per definition of. You should fix your
decomposition, as it evidently goes along wrong lines = couples
subprograms. Subprograms in procedural decomposition meant independent with
well defined interfaces. BTW, from this immediately follows, for example,
that global variables are bad.

> To have language for expressing connections in a program would
> be better.  We only got tools that show graphs of a few arrows,
> as in design diagrams for interfaces and models. But we do not
> really have source text specifically addressing order of events,
> and connections made on the occasion.

Not at all. There are tons of graphical languages having fancy lines all
over the screen. That helps in no way. In fact all of them are greatly less
safe, unmaintainable and inefficient as a bonus.

-- 
Regards,
Dmitry A. Kazakov
http://www.dmitry-kazakov.de


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

* Re: community-based compiler (was Re: What exactly is the licensing situation with GNAT?)
  2014-11-14 16:16                                           ` Luke A. Guest
@ 2014-11-14 16:34                                             ` David Botton
  2014-11-14 16:42                                               ` Luke A. Guest
  2014-11-16 19:30                                               ` community-based compiler Florian Weimer
  0 siblings, 2 replies; 241+ messages in thread
From: David Botton @ 2014-11-14 16:34 UTC (permalink / raw)


> People have sent patches to AdaCore

Why not deal directly with the FSF, there must be some maintainer on that side?

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

* Re: community-based compiler (was Re: What exactly is the licensing situation with GNAT?)
  2014-11-14 16:34                                             ` David Botton
@ 2014-11-14 16:42                                               ` Luke A. Guest
  2014-11-16 19:30                                               ` community-based compiler Florian Weimer
  1 sibling, 0 replies; 241+ messages in thread
From: Luke A. Guest @ 2014-11-14 16:42 UTC (permalink / raw)


David Botton <david@botton.com> wrote:
>> People have sent patches to AdaCore
> 
> Why not deal directly with the FSF, there must be some maintainer on that side?

Hmm not sure about that as they tend to merge in stuff themselves.

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

* Re: community-based compiler
  2014-11-14 16:26                                             ` Gour
@ 2014-11-14 16:48                                               ` Luke A. Guest
  2014-11-16 19:31                                                 ` Florian Weimer
  0 siblings, 1 reply; 241+ messages in thread
From: Luke A. Guest @ 2014-11-14 16:48 UTC (permalink / raw)


Gour <gour@atmarama.net> wrote:
> On Fri, 14 Nov 2014 16:16:22 +0000 (UTC)
> Luke A. Guest <laguest@archeia.com> wrote:
> 
>> They're going to rewrite go in another language?
> 
> No, they're converting compiler from C to Go
> 
> E.g.
> http://gophercon.sourcegraph.com/post/83820197495/russ-cox-porting-the-go-compiler-from-c-to-go



I read it was written in c++ specifically to get around the bootstrap
issue.

Luke


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

* Re: community-based compiler (was Re: What exactly is the licensing situation with GNAT?)
  2014-11-14  7:50                                     ` community-based compiler (was Re: What exactly is the licensing situation with GNAT?) Gour
  2014-11-14  7:57                                       ` community-based compiler Gour
  2014-11-14 14:53                                       ` community-based compiler (was Re: What exactly is the licensing situation with GNAT?) Luke A. Guest
@ 2014-11-14 17:13                                       ` Shark8
  2014-11-14 18:55                                         ` David Botton
  2 siblings, 1 reply; 241+ messages in thread
From: Shark8 @ 2014-11-14 17:13 UTC (permalink / raw)


I agree with you that there ought to be another open-source 
freely-available Ada compiler -- I started some work on one a while back 
but didn't get too far (other things came up), but there are some things 
that I think we ought to consider essential:

* Tools -- We cannot accept the current norm as acceptable; we need a 
setup that is not so fragile that installing it in an unexpected place 
ruins it.
* The Library -- I've become convinced that the library model really is 
better than the source-file model, especially considering
* Projects -- We need good control for setting up projects and 
subprojects, "related-but-seprate" projects, DSA, managing 'teams', 
source control and so on... and that ties back to tools.

There's a couple interesting papers regarding using databases for 
version-control where the DB is only updated on a consistant state. 
(i.e. you cannot save non-compilable code into the DB.) -- There's also 
some interesting stuff regarding storing source 'code' in Databases. 
(DIANA [Descriptive Intermediate Attributed Notation for Ada], for example.)

There's also the OpenToken project which could be used for the 
tokenizing/parsing.


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

* Re: community-based compiler (was Re: What exactly is the licensing situation with GNAT?)
  2014-11-14 17:13                                       ` community-based compiler (was Re: What exactly is the licensing situation with GNAT?) Shark8
@ 2014-11-14 18:55                                         ` David Botton
  2014-11-14 20:53                                           ` Shark8
  2014-11-14 21:05                                           ` Luke A. Guest
  0 siblings, 2 replies; 241+ messages in thread
From: David Botton @ 2014-11-14 18:55 UTC (permalink / raw)


> I agree with you that there ought to be another open-source 
> freely-available Ada compiler

What resources are needed to make it happen?

Although I am just as happy to see GNAT get a community project behind it to insure unencumbered runtimes and compilers available freely to all in simple easy install packages.

I am sure many including myself would get involved to work on bugs and issues if it was clear and easy to get a working dev environment and clear path to submit fixes. That may exist now, I just don't know.

Anyone have any links to getting started with building and how to submit to the FSF changes?

David Botton


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

* Re: community-based compiler (was Re: What exactly is the licensing situation with GNAT?)
  2014-11-14 18:55                                         ` David Botton
@ 2014-11-14 20:53                                           ` Shark8
  2014-11-14 21:07                                             ` Luke A. Guest
  2014-11-15 12:44                                             ` Brian Drummond
  2014-11-14 21:05                                           ` Luke A. Guest
  1 sibling, 2 replies; 241+ messages in thread
From: Shark8 @ 2014-11-14 20:53 UTC (permalink / raw)


On 14-Nov-14 11:55, David Botton wrote:
>> I agree with you that there ought to be another open-source
>> >freely-available Ada compiler
> What resources are needed to make it happen?

Hm, I think there are several things that are needed, and which would 
have different emphasis at different points in development. -- For 
example, a good, clear plan for the overall architecture and underlying 
tech* would be essential. -- Another thing that might be useful is, from 
the ground up, employing formal methods (ie Ada/SPARK and proofs) for 
correctness.**

After the initial stages,*** the "clear path to submit patches and bug 
reports" becomes much more important after getting to an operable state.

* e.g. if it used DIANA for its interface between the front-end and 
back-end (and tools) that should be (a) shown and (b) well documented.
OR if it uses a SCID [ http://mindprod.com/project/scid.html ] approach 
documentation of the underlying DB and interfacing to it.

** In that case, for bootstrapping, it might be worth it to develop a 
Strict Ada 2012 compiler [w/ the corrigenda] in Ada 2012, meaning that 
it doesn't accept obsolescent features, and then add those later.

*** A non-encumbered, correctness-checked RTL, with as much 
implementation-/architecture-dependent stuff isolated as possible [i.e. 
as portable as possible] would be a good offshoot.

> Although I am just as happy to see GNAT get a community project behind
> it to insure unencumbered runtimes and compilers available freely to
> all in simple easy install packages.
>
> I am sure many including myself would get involved to work on bugs and
> issues if it was clear and easy to get a working dev environment and
> clear path to submit fixes. That may exist now, I just don't know.

I haven't found a good path, but then I'm more interested in a whole new 
project rather than tying ourselves down to a single implementation.

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

* Re: community-based compiler (was Re: What exactly is the licensing situation with GNAT?)
  2014-11-14 18:55                                         ` David Botton
  2014-11-14 20:53                                           ` Shark8
@ 2014-11-14 21:05                                           ` Luke A. Guest
  1 sibling, 0 replies; 241+ messages in thread
From: Luke A. Guest @ 2014-11-14 21:05 UTC (permalink / raw)


David Botton <david@botton.com> wrote:


> Anyone have any links to getting started with building and how to submit
> to the FSF changes?

I've seen responses on the interweb re building GCC as 'if you have to ask
you shouldn't be doing it.' No joke.

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

* Re: community-based compiler (was Re: What exactly is the licensing situation with GNAT?)
  2014-11-14 20:53                                           ` Shark8
@ 2014-11-14 21:07                                             ` Luke A. Guest
  2014-11-14 22:35                                               ` Shark8
  2014-11-15 12:44                                             ` Brian Drummond
  1 sibling, 1 reply; 241+ messages in thread
From: Luke A. Guest @ 2014-11-14 21:07 UTC (permalink / raw)


Shark8 <OneWingedShark@gmail.com> wrote:

> Hm, I think there are several things that are needed, and which would
> have different emphasis at different points in development. -- For
> example, a good, clear plan for the overall architecture and underlying
> tech* would be essential. -- Another thing that might be useful is, from
> the ground up, employing formal methods (ie Ada/SPARK and proofs) for correctness.**

Jesus! That would be hell. A compiler without dynamic memory? Really? No
thanks.

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

* Re: What exactly is the licensing situation with GNAT?
  2014-11-14  8:36                                               ` Dmitry A. Kazakov
@ 2014-11-14 22:24                                                 ` Randy Brukardt
  2014-11-14 22:43                                                   ` Jeffrey Carter
  2014-11-15  9:18                                                   ` Dmitry A. Kazakov
  0 siblings, 2 replies; 241+ messages in thread
From: Randy Brukardt @ 2014-11-14 22:24 UTC (permalink / raw)


"Dmitry A. Kazakov" <mailbox@dmitry-kazakov.de> wrote in message 
news:fo7cw4s3dd6g$.1jh55iopdn64m$.dlg@40tude.net...
> On Thu, 13 Nov 2014 15:51:54 -0600, Randy Brukardt wrote:
>
>> I recall Adam suggesting that some special sort of named
>> access-to-subprogram type be defined with similar characteristics to the
>> anonymous access-to-subprogram. Such a thing could be made to work, while
>> the bare pointer used for normal access-to-subprogram types would not 
>> work.
>> But of course it would be susceptible to dangling pointers, and won't
>> (usually) be compatible with C.
>
> I was always wondering why it was not a plain subprogram type. That would
> solve a lot of problem, interfacing C included. E.g.

I don't know why it is an access rather than just directly a type. Perhaps a 
lack of imagination? But there's insufficient difference to justify the 
change today.

OTOH, I don't see why this would be any different than access types 
vis-a-vis interfacing with C and the like. The type would have a 
representation (likely one similar to access-to-subprogram), and that's the 
problem for 'Unrestricted_Access - it needs a different representation to 
support 'Unrestricted_Access from 'Access. And the representation needed for 
'Unrestricted_Access is incompatible with C (other than on GCC, which is 
unusual). If you simply allowed any subprogram to match a subprogram type, 
you couldn't allow interface to C. Or you'd have to have an accessibility 
check on the use only for interface to C. Or some other messy rule - would 
not gain anything.

                                            Randy.


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

* Re: What exactly is the licensing situation with GNAT?
  2014-11-14  8:40                                               ` Dmitry A. Kazakov
@ 2014-11-14 22:29                                                 ` Randy Brukardt
  2014-11-15  9:29                                                   ` Dmitry A. Kazakov
  0 siblings, 1 reply; 241+ messages in thread
From: Randy Brukardt @ 2014-11-14 22:29 UTC (permalink / raw)


I've been using Claw.Sockets for so long that I don't know what the 
underlying implementation is. So I don't know what "select" is used for or 
whether it's implemented in NC_Sockets. Claw.Sockets has a server type 
that's used for implemented servers (like web and mail servers).

As to the platforms, Linux 64-bit (tested under GNAT) and Windows 32-bit 
(tested under GNAT and Janus/Ada) are what I have in hand. I suspect that 
Linux 32-bit would be easy to create based on the 64-bit version, but I've 
had no need to do so.

I'll be posting a NC_Sockets package fairly soon, once I get the last few 
spec updates finished and correct the test programs. (And I have to figure 
out error handling in the Linux version, I don't think it works right, and 
that's a big deal to my servers of course.) My best guess is that I'll get 
this done in January or so (have some ARG and ACATS tasks to do first).

                              Randy.

"Dmitry A. Kazakov" <mailbox@dmitry-kazakov.de> wrote in message 
news:b1qru34mbble.yzrut134ayon$.dlg@40tude.net...
> On Fri, 14 Nov 2014 00:13:28 -0600, Randy Brukardt wrote:
>
>> Or build something on top of NC_Sockets, if it's not too complicated
>> (unlikely). One of the example programs for NC_Sockets is a simple web
>> server (the one used for Ada-Auth.org/RRSoftware.com is a grown-up 
>> version
>> of that example).
>
> Could you elaborate this a bit. Specifically:
>
> 1. Do NC_Scokets support socket select? (My HTTP server, presently based 
> on
> GNAT.Sockets, needs select).
>
> 2. Which platforms are supported?
>
> -- 
> Regards,
> Dmitry A. Kazakov
> http://www.dmitry-kazakov.de 


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

* Re: What exactly is the licensing situation with GNAT?
  2014-11-14 12:57                                                       ` Peter Chapin
@ 2014-11-14 22:33                                                         ` Randy Brukardt
  2014-11-17  8:28                                                         ` Stan Mills
  1 sibling, 0 replies; 241+ messages in thread
From: Randy Brukardt @ 2014-11-14 22:33 UTC (permalink / raw)


"Peter Chapin" <PChapin@vtc.vsc.edu> wrote in message 
news:alpine.CYG.2.11.1411140752250.7264@WIL414CHAPIN.vtc.vsc.edu...
...
> After all we don't expect programmers, even software engineers, to write 
> their own compilers, assemblers, and operating systems. Those things are 
> just black boxes.

I don't know about that, I did (and a mail server and web server as well). I 
just I don't play that well with others. ;-)

                               Randy.



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

* Re: community-based compiler (was Re: What exactly is the licensing situation with GNAT?)
  2014-11-14 21:07                                             ` Luke A. Guest
@ 2014-11-14 22:35                                               ` Shark8
  2014-11-15  1:07                                                 ` Luke A. Guest
  0 siblings, 1 reply; 241+ messages in thread
From: Shark8 @ 2014-11-14 22:35 UTC (permalink / raw)


On 14-Nov-14 14:07, Luke A. Guest wrote:
> Jesus! That would be hell. A compiler without dynamic memory? Really? No
> thanks.

Ah, right; I'd forgotten about that restriction -- I was thinking more 
along the lines of the prover-/verifier-tools -- though aren't there 
large chunks where you don't need dynamic memory?

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

* Re: community-based compiler (was Re: What exactly is the licensing situation with GNAT?)
  2014-11-14 14:53                                       ` community-based compiler (was Re: What exactly is the licensing situation with GNAT?) Luke A. Guest
                                                           ` (2 preceding siblings ...)
  2014-11-14 16:03                                         ` community-based compiler (was Re: What exactly is the licensing situation with GNAT?) Tero Koskinen
@ 2014-11-14 22:40                                         ` Randy Brukardt
  2014-11-15  1:07                                           ` Luke A. Guest
  2014-11-15  8:08                                           ` community-based compiler Gour
  2014-11-16 19:29                                         ` Florian Weimer
  4 siblings, 2 replies; 241+ messages in thread
From: Randy Brukardt @ 2014-11-14 22:40 UTC (permalink / raw)


"Luke A. Guest" <laguest@archeia.com> wrote in message 
news:1315933065437669370.358664laguest-archeia.com@nntp.aioe.org...
> Gour <gour@atmarama.net> wrote:
>> On Thu, 13 Nov 2014 15:56:35 -0800 (PST)
>> David Botton <david@botton.com> wrote:
>>
>> Yesterday I researched a bit R.R.Software's web site and found that
>> their Janus/Ada compiler is "...the only compiler on the market that is
>> written in Ada and self compiled in a personal computer environment."
>
> GNAT is written in Ada and can compile itself.

The front-end is. The back end (GCC) is in C, I believe. Janus/Ada is all 
Ada except for a snippet of assembler in the runtime.

>> It's clear that it's behind Adacore's GNAT, but, maybe, it can be basis
>> of the future's (more) community-based compiler?
>
> Unlikely it will be open sourced.

Why do you say that? It's something I've thought about; I'd certainly do it 
if I decided to stop selling it. I don't think there is any business reason 
that it couldn't be open-sourced at this point (that wouldn't have been true 
10 years ago).

                                     Randy.




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

* Re: What exactly is the licensing situation with GNAT?
  2014-11-14 22:24                                                 ` Randy Brukardt
@ 2014-11-14 22:43                                                   ` Jeffrey Carter
  2014-11-15  9:18                                                   ` Dmitry A. Kazakov
  1 sibling, 0 replies; 241+ messages in thread
From: Jeffrey Carter @ 2014-11-14 22:43 UTC (permalink / raw)


On 11/14/2014 03:24 PM, Randy Brukardt wrote:
> 
> I don't know why it is an access rather than just directly a type. Perhaps a 
> lack of imagination? But there's insufficient difference to justify the 
> change today.

IIRC, this was initially discussed for the purpose of passing a subprogram to a
C pointer-to-function, which suggested the access-to-subprogram type with all
the attendant accessibility problems.

-- 
Jeff Carter
"I've got to stay here, but there's no reason
why you folks shouldn't go out into the lobby
until this thing blows over."
Horse Feathers
50


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

* Re: What exactly is the licensing situation with GNAT?
  2014-11-14 10:30                                                   ` Dmitry A. Kazakov
@ 2014-11-15  1:00                                                     ` Hubert
  2014-11-15  1:24                                                       ` Hubert
  2014-11-15  7:22                                                       ` Gour
  2014-11-17  8:11                                                     ` Stan Mills
  1 sibling, 2 replies; 241+ messages in thread
From: Hubert @ 2014-11-15  1:00 UTC (permalink / raw)


>> Objects just "flow from the brain into the computer". But later they are
>> going to bite you and that is my criticism. That it seems so easy and
>> natural in the beginning which gives the programmer a false sense of
>> security.
>
> This is a logical fallacy. Compare: Ada gives the programmer a false sense
> of security, therefore we must stick to ANSI C.

I don't think so. You are trying to show that my argument is false by 
giving an unrelated analogy. Consider this instead:

Total government control in a fascist state controls crime and makes 
people safer (for Instance Mussolini practically wiped out the Mafia 
during his reign) therefore we must all live in a non fascist state.

The reality is that you want to live in a non fascist state for totally 
different reasons and the security aspect has nothing to do with it.

My argument was that the ease with which OOP allows the inexperienced 
programmer to achieve quick results hides the fact that the resulting 
programs are bad and hard to manage since it is possible to achieve 
these results without thorough planning, therefore many programmers will 
chose this path because it gives quick initial results with less work. 
Instead sticking with "harder to master" techniques forces one to plan 
ahead since you don't have these "natural" objects that come easy. Not 
everything that's easy is also a progress.

There is a fair amount of criticism about OO design and programming. I 
dont think we will be able to solve that discussion here and I won't 
repeat all the arguments either since there are tons, but you are 
welcome to check out the granddaddy of all OO critics which is archived 
here:

http://reocities.com/tablizer/oopbad.htm






---
This email is free from viruses and malware because avast! Antivirus protection is active.
http://www.avast.com



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

* Re: community-based compiler (was Re: What exactly is the licensing situation with GNAT?)
  2014-11-14 22:40                                         ` Randy Brukardt
@ 2014-11-15  1:07                                           ` Luke A. Guest
  2014-11-15  8:08                                           ` community-based compiler Gour
  1 sibling, 0 replies; 241+ messages in thread
From: Luke A. Guest @ 2014-11-15  1:07 UTC (permalink / raw)


"Randy Brukardt" <randy@rrsoftware.com> wrote:
> "Luke A. Guest" <laguest@archeia.com> wrote in message 

> Why do you say that? It's something I've thought about; I'd certainly do it 
> if I decided to stop selling it. I don't think there is any business reason 
> that it couldn't be open-sourced at this point (that wouldn't have been true 
> 10 years ago).

Given that it's your business, I would've thought opening it up would my be
conducive to selling it any longer. Fine if you stop selling it, but you
haven't yet.


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

* Re: community-based compiler (was Re: What exactly is the licensing situation with GNAT?)
  2014-11-14 22:35                                               ` Shark8
@ 2014-11-15  1:07                                                 ` Luke A. Guest
  2014-11-18  0:52                                                   ` Randy Brukardt
  0 siblings, 1 reply; 241+ messages in thread
From: Luke A. Guest @ 2014-11-15  1:07 UTC (permalink / raw)


Shark8 <OneWingedShark@gmail.com> wrote:
> On 14-Nov-14 14:07, Luke A. Guest wrote:
>> Jesus! That would be hell. A compiler without dynamic memory? Really? No
>> thanks.
> 
> Ah, right; I'd forgotten about that restriction -- I was thinking more
> along the lines of the prover-/verifier-tools -- though aren't there
> large chunks where you don't need dynamic memory?

Not really no. An entire compiler pretty much uses the heap exclusively,
you'd be hard pressed to build a compiler using ore allocated memory or
just static amounts in general.

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

* Re: What exactly is the licensing situation with GNAT?
  2014-11-15  1:00                                                     ` Hubert
@ 2014-11-15  1:24                                                       ` Hubert
  2014-11-15  9:45                                                         ` Dmitry A. Kazakov
  2014-11-15  7:22                                                       ` Gour
  1 sibling, 1 reply; 241+ messages in thread
From: Hubert @ 2014-11-15  1:24 UTC (permalink / raw)


I don't know if I made myself clear enough.

You were trying to show that my argument was false by giving an analogy 
that sounded absurd and then concluding that my argument was equally absurd.

I tried to show that the conclusion I drew was valid, but not based on 
an argument like the one you gave but instead for other reasons. The 
fact that Ada is safer than C has nothing to do with the fact that the 
OO techniques that are present in Ada as well as C++, Java and a host of 
other modern language lead people to write badly planned software. 
Writing procedural software will instead lead to better planned software 
because it forces people to do more planning.

Hope that makes it clearer.




---
This email is free from viruses and malware because avast! Antivirus protection is active.
http://www.avast.com



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

* Re: What exactly is the licensing situation with GNAT?
  2014-11-15  1:00                                                     ` Hubert
  2014-11-15  1:24                                                       ` Hubert
@ 2014-11-15  7:22                                                       ` Gour
  2014-11-15  9:57                                                         ` Dmitry A. Kazakov
  1 sibling, 1 reply; 241+ messages in thread
From: Gour @ 2014-11-15  7:22 UTC (permalink / raw)


On Fri, 14 Nov 2014 17:00:32 -0800
Hubert <herrdoktor@fumanchu.com> wrote:

> There is a fair amount of criticism about OO design and programming.
> I dont think we will be able to solve that discussion here and I
> won't repeat all the arguments either since there are tons, but you
> are welcome to check out the granddaddy of all OO critics which is
> archived here:

Or this one:

"Object-oriented programming is an exceptionally bad idea which could
only have originated in California.” – Edsger Dijkstra


Sincerely,
Gour

-- 
Never was there a time when I did not exist, 
nor you, nor all these kings; nor in the future 
shall any of us cease to be.



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

* Re: community-based compiler
  2014-11-14 22:40                                         ` Randy Brukardt
  2014-11-15  1:07                                           ` Luke A. Guest
@ 2014-11-15  8:08                                           ` Gour
  1 sibling, 0 replies; 241+ messages in thread
From: Gour @ 2014-11-15  8:08 UTC (permalink / raw)


On Fri, 14 Nov 2014 16:40:39 -0600
"Randy Brukardt" <randy@rrsoftware.com> wrote:

> Why do you say that? It's something I've thought about; I'd certainly
> do it if I decided to stop selling it. I don't think there is any
> business reason that it couldn't be open-sourced at this point (that
> wouldn't have been true 10 years ago).

Well, I'd be glad if you could find business model to do it prior to
that.

Let me mention notable example here what is possible to achieve: Nim(rod) langauge
(http://nim-lang.org/) where its main dev (Andreas) designed nice
langauge and wrote, practically single-handedly, without support from any
company, MIT-licensed compiler written in Nim(rod) itself and today has
870 star-gazers at Github as well as ~60 contributors. All these, by
working on it in his spare time!! (Personally, I'd be happy if he
manages to make this work as source of his living as well).


With the current state of affairs, it's hard that Ada will penetrate
more into open-source market and/or fill application's space as
envisioned by David with his Gnoga project.


Sincerely,
Gour

-- 
As a strong wind sweeps away a boat on the water, 
even one of the roaming senses on which the mind 
focuses can carry away a man's intelligence.


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

* Re: What exactly is the licensing situation with GNAT?
  2014-11-14 12:46                                       ` Peter Chapin
@ 2014-11-15  8:47                                         ` Mart van de Wege
  2014-11-16  9:32                                         ` Pete Ballmer
  2014-11-16 19:41                                         ` Florian Weimer
  2 siblings, 0 replies; 241+ messages in thread
From: Mart van de Wege @ 2014-11-15  8:47 UTC (permalink / raw)


Peter Chapin <PChapin@vtc.vsc.edu> writes:

> On Fri, 14 Nov 2014, Pete Ballmer wrote:
>
>> Other systems like LLVM would be ok except they're not supporting anything
>> but Intel.
>
> I'm not sure I understand what you mean. When I look at the LLVM web
> site I see:
>
> "An easily retargettable code generator, which currently supports X86,
> X86-64, PowerPC, PowerPC-64, ARM, Thumb, SPARC, Alpha, CellSPU, MIPS,
> MSP430, SystemZ, and XCore."
>
> Are you saying that only the Intel support is used or gets active
> development?
>
I think that might be the case yes.

The LLVM guys have a habit of claiming support for features when they
are barely out of alpha. For example, their language support is mostly
'in development' with the exception of the C family and Haskell, and yet
they claim support for multiple languages beyond that. The rather shaky
state of Ada support by way of dragonegg is a case in point.

It's a good project, and competition brings new ideas, but their and
their supporters' marketing should be taken with a grain of salt.

Mart

-- 
"We will need a longer wall when the revolution comes."
    --- AJS, quoting an uncertain source.


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

* Re: What exactly is the licensing situation with GNAT?
  2014-11-14 22:24                                                 ` Randy Brukardt
  2014-11-14 22:43                                                   ` Jeffrey Carter
@ 2014-11-15  9:18                                                   ` Dmitry A. Kazakov
  2014-11-18  0:37                                                     ` Randy Brukardt
  1 sibling, 1 reply; 241+ messages in thread
From: Dmitry A. Kazakov @ 2014-11-15  9:18 UTC (permalink / raw)


On Fri, 14 Nov 2014 16:24:14 -0600, Randy Brukardt wrote:

> OTOH, I don't see why this would be any different than access types 
> vis-a-vis interfacing with C and the like. The type would have a 
> representation (likely one similar to access-to-subprogram), and that's the 
> problem for 'Unrestricted_Access - it needs a different representation to 
> support 'Unrestricted_Access from 'Access. And the representation needed for 
> 'Unrestricted_Access is incompatible with C (other than on GCC, which is 
> unusual). If you simply allowed any subprogram to match a subprogram type, 
> you couldn't allow interface to C. Or you'd have to have an accessibility 
> check on the use only for interface to C. Or some other messy rule - would 
> not gain anything.

Except that whatever checks needed they will not include pointer checks. If
a nested subprogram cannot be passed to C, then it cannot. But the reason
shall not be accessibility pointer check. The only reason allowed is
"cannot implement pragma Convention".

-- 
Regards,
Dmitry A. Kazakov
http://www.dmitry-kazakov.de


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

* Re: What exactly is the licensing situation with GNAT?
  2014-11-14 22:29                                                 ` Randy Brukardt
@ 2014-11-15  9:29                                                   ` Dmitry A. Kazakov
  2014-11-15  9:40                                                     ` Pascal Obry
                                                                       ` (2 more replies)
  0 siblings, 3 replies; 241+ messages in thread
From: Dmitry A. Kazakov @ 2014-11-15  9:29 UTC (permalink / raw)


On Fri, 14 Nov 2014 16:29:59 -0600, Randy Brukardt wrote:

> I've been using Claw.Sockets for so long that I don't know what the 
> underlying implementation is. So I don't know what "select" is used for or 
> whether it's implemented in NC_Sockets. Claw.Sockets has a server type 
> that's used for implemented servers (like web and mail servers).

Select() is essential for heavy duty and light weight servers as it allows
one task to handle multiple sockets without blocking. AdaSockets, the only
alternative to GNAT.Sockets I know, does not support select.

(I don't know if AWS uses blocking sockets for its server or socket-select)

-- 
Regards,
Dmitry A. Kazakov
http://www.dmitry-kazakov.de

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

* Re: What exactly is the licensing situation with GNAT?
  2014-11-15  9:29                                                   ` Dmitry A. Kazakov
@ 2014-11-15  9:40                                                     ` Pascal Obry
  2014-11-15 11:18                                                     ` Tero Koskinen
  2014-11-18  0:28                                                     ` Randy Brukardt
  2 siblings, 0 replies; 241+ messages in thread
From: Pascal Obry @ 2014-11-15  9:40 UTC (permalink / raw)


Le samedi 15 novembre 2014 à 10:29 +0100, Dmitry A. Kazakov a écrit : 
> Select() is essential for heavy duty and light weight servers as it allows
> one task to handle multiple sockets without blocking. AdaSockets, the only
> alternative to GNAT.Sockets I know, does not support select.
> 
> (I don't know if AWS uses blocking sockets for its server or socket-select)

Select of course :)

-- 
  Pascal Obry /  Magny Les Hameaux (78)

  The best way to travel is by means of imagination

  http://v2p.fr.eu.org
  http://www.obry.net

  gpg --keyserver keys.gnupg.net --recv-key F949BD3B




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

* Re: What exactly is the licensing situation with GNAT?
  2014-11-15  1:24                                                       ` Hubert
@ 2014-11-15  9:45                                                         ` Dmitry A. Kazakov
  2014-11-15 10:27                                                           ` Hubert
  0 siblings, 1 reply; 241+ messages in thread
From: Dmitry A. Kazakov @ 2014-11-15  9:45 UTC (permalink / raw)


On Fri, 14 Nov 2014 17:24:10 -0800, Hubert wrote:

> I tried to show that the conclusion I drew was valid, but not based on 
> an argument like the one you gave but instead for other reasons. The 
> fact that Ada is safer than C has nothing to do with the fact that the 
> OO techniques that are present in Ada as well as C++, Java and a host of 
> other modern language lead people to write badly planned software.

No, this requires a demonstration, e.g. two similar projects designed by
two similar teams. 
 
> Writing procedural software will instead lead to better planned software 
> because it forces people to do more planning.

But procedural approach does not require more planning. No such thing at
all. You can start writing much easier with procedural than with OO!

It seems that you imply that since programmers know that procedural
approach is somewhat inferior, crude and unsafe, they would pay more
attention to the architecture and design. They *won't*.

And procedural is indeed crude, inferior and unsafe.

And this is exactly the argument why C would be better than Ada. Somebody
compared C with a hand grenade. Handling hand grenades makes you attentive
... but you get killed in the end, nonetheless.

And it is a strange kind of promotion by stated inferiority.

-- 
Regards,
Dmitry A. Kazakov
http://www.dmitry-kazakov.de

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

* Re: What exactly is the licensing situation with GNAT?
  2014-11-15  7:22                                                       ` Gour
@ 2014-11-15  9:57                                                         ` Dmitry A. Kazakov
  2014-11-15 10:51                                                           ` Gour
  0 siblings, 1 reply; 241+ messages in thread
From: Dmitry A. Kazakov @ 2014-11-15  9:57 UTC (permalink / raw)


On Sat, 15 Nov 2014 08:22:55 +0100, Gour wrote:

> On Fri, 14 Nov 2014 17:00:32 -0800
> Hubert <herrdoktor@fumanchu.com> wrote:
> 
>> There is a fair amount of criticism about OO design and programming.
>> I dont think we will be able to solve that discussion here and I
>> won't repeat all the arguments either since there are tons, but you
>> are welcome to check out the granddaddy of all OO critics which is
>> archived here:
> 
> Or this one:
> 
> "Object-oriented programming is an exceptionally bad idea which could
> only have originated in California.” – Edsger Dijkstra

"From a scientific point of view all further attention paid to Ada is a
waste of effort." – Edsger Dijkstra

-- 
Regards,
Dmitry A. Kazakov
http://www.dmitry-kazakov.de

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

* Re: What exactly is the licensing situation with GNAT?
  2014-11-15  9:45                                                         ` Dmitry A. Kazakov
@ 2014-11-15 10:27                                                           ` Hubert
  2014-11-15 19:44                                                             ` Robert A Duff
  0 siblings, 1 reply; 241+ messages in thread
From: Hubert @ 2014-11-15 10:27 UTC (permalink / raw)


> No, this requires a demonstration, e.g. two similar projects designed by
> two similar teams.

To my knowledge, no such studies have ever been conducted, yet the OO 
proponents always claim that their way is superior. Over the past 20 
years there hasn't been any improvement in the usability of software I 
can see. Microsoft for instance has already moved away from the big 
"foundation classes". Most of what I see in the STL and the Ada 
libraries are templates / generics.

OOP has it's merit, for instance in UI design where it actually fits the 
reality of widgets.

I stand by my opinion that OO is dangerous because it gives the false 
impression of being easy to handle when in fact it is not.

However, this discussion is fruitless here and elsewhere. Software 
Design principles are a bit like religions especially since Software 
Design is not science but rather art and craftsmanship, otherwise two 
different teams would come to the same solution given the same problem 
and the same set of tools, which we know they will not, so we can 
continue this ad infinitum and won't find a common denominator. Besides, 
the OOP side has already won since there is basically no alternative in 
today's curriculum at universities to my knowledge.









---
This email is free from viruses and malware because avast! Antivirus protection is active.
http://www.avast.com

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

* Re: What exactly is the licensing situation with GNAT?
  2014-11-15  9:57                                                         ` Dmitry A. Kazakov
@ 2014-11-15 10:51                                                           ` Gour
  2014-11-15 11:26                                                             ` Dmitry A. Kazakov
  0 siblings, 1 reply; 241+ messages in thread
From: Gour @ 2014-11-15 10:51 UTC (permalink / raw)


On Sat, 15 Nov 2014 10:57:14 +0100
"Dmitry A. Kazakov" <mailbox@dmitry-kazakov.de> wrote:

> "From a scientific point of view all further attention paid to Ada is
> a waste of effort." – Edsger Dijkstra

Well, considering that (for me) Ada is fine language for software
*engineerng* (and not CS), I have no problem accepting both
quotes as relevant.


Sincerely,
Gour

-- 
When your intelligence has passed out of the dense forest 
of delusion, you shall become indifferent to all that has 
been heard and all that is to be heard.

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

* Re: What exactly is the licensing situation with GNAT?
  2014-11-15  9:29                                                   ` Dmitry A. Kazakov
  2014-11-15  9:40                                                     ` Pascal Obry
@ 2014-11-15 11:18                                                     ` Tero Koskinen
  2014-11-15 11:36                                                       ` Dmitry A. Kazakov
  2014-11-18  0:28                                                     ` Randy Brukardt
  2 siblings, 1 reply; 241+ messages in thread
From: Tero Koskinen @ 2014-11-15 11:18 UTC (permalink / raw)


15.11.2014 11:29, Dmitry A. Kazakov wrote:
> On Fri, 14 Nov 2014 16:29:59 -0600, Randy Brukardt wrote:
> 
>> I've been using Claw.Sockets for so long that I don't know what the 
>> underlying implementation is. So I don't know what "select" is used for or 
>> whether it's implemented in NC_Sockets. Claw.Sockets has a server type 
>> that's used for implemented servers (like web and mail servers).

(Not_)Claw_Sockets does not provide select at API level. However, it
uses select() internally.

-- Taken from my Linux port
package NC.Sockets is
   ...
private
   ...
   function Select_function(Ignored           : Claw.Int;
                             Read_FD_Set       : access FD_SET_Type;
                             Write_FD_Set      : access FD_SET_Type;
                             Exceptions_FD_Set : access FD_SET_Type;
                             Timeout           : access Timeval_Type)
             return Claw.Int;
    pragma Import(C, Select_function, "select_wrapper");
end NC.Sockets;

> Select() is essential for heavy duty and light weight servers as it allows
> one task to handle multiple sockets without blocking. AdaSockets, the only
> alternative to GNAT.Sockets I know, does not support select.

C API for select() is not pretty and you need to be very careful when
using it to avoid FD_SET overflows, for example.

Many prefer to use poll() instead of select(), since API for poll() is
much cleaner.

It is also a nightmare to create Ada bindings to select(). I ended up
using a wrapper C function when creating Linux port of NC.Sockets:
https://bitbucket.org/tkoskine/not-claw-sockets-linux-x86/src/4bc1528f59f910d4ea596d6aa63936b313b293bf/select_wrapper.c?at=default

Operating system specific kqueue/epoll APIs are also popular, since
they offer some performance advantages over select/poll.

They are of course tied to specific systems, but people have
created "wrapper" libraries like libevent[1], which allow one
to choose their favorite polling mechanism and use same API
on all systems.

Yours,
 Tero

[1] http://libevent.org/


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

* Re: What exactly is the licensing situation with GNAT?
  2014-11-15 10:51                                                           ` Gour
@ 2014-11-15 11:26                                                             ` Dmitry A. Kazakov
  2014-11-15 12:41                                                               ` Gour
  0 siblings, 1 reply; 241+ messages in thread
From: Dmitry A. Kazakov @ 2014-11-15 11:26 UTC (permalink / raw)


On Sat, 15 Nov 2014 11:51:16 +0100, Gour wrote:

> On Sat, 15 Nov 2014 10:57:14 +0100
> "Dmitry A. Kazakov" <mailbox@dmitry-kazakov.de> wrote:
> 
>> "From a scientific point of view all further attention paid to Ada is
>> a waste of effort." – Edsger Dijkstra
> 
> Well, considering that (for me) Ada is fine language for software
> *engineerng* (and not CS), I have no problem accepting both
> quotes as relevant.

Ignoring absurdity of the idea that engineering could exist without an
underlying scientific discipline, if your interpretation of Dijkstra were
that Ada is bad science and [maybe, he never said so] good engineering,
then why you interpret his quote about OO differently?

Maybe this one would go better:

   "At one of his visits, Andrei asked my opinion about Ada. I told him
that Ada was such a mess that I shuddered at the thought that Western
security would depend on it and that I would feel much safer if the Red
Army were to adopt it as well. Andrei smiled and gave the now famous answer
"Don't worry...."." – Edsger Dijkstra

Is it about "Red Army science"? And note, this is 1989, Ada 83. If he meant
Ada bad, that was not because of OO!

Wouldn't it be simpler just to accept that Dijkstra as ingenious he
certainly was, regardless his enormous contribution to software engineering
principles, e.g. "correct by construction", didn't understand software
engineering well?

-- 
Regards,
Dmitry A. Kazakov
http://www.dmitry-kazakov.de


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

* Re: What exactly is the licensing situation with GNAT?
  2014-11-15 11:18                                                     ` Tero Koskinen
@ 2014-11-15 11:36                                                       ` Dmitry A. Kazakov
  0 siblings, 0 replies; 241+ messages in thread
From: Dmitry A. Kazakov @ 2014-11-15 11:36 UTC (permalink / raw)


On Sat, 15 Nov 2014 13:18:02 +0200, Tero Koskinen wrote:

> C API for select() is not pretty and you need to be very careful when
> using it to avoid FD_SET overflows, for example.

All socket API is awful stuff.
 
> Many prefer to use poll() instead of select(), since API for poll() is
> much cleaner.
> 
> It is also a nightmare to create Ada bindings to select().

The approach should be similar to GNAT.Sockets, e.g. a medium- or
higher-level socket API with all nasty and OS-dependent details hidden.
GNAT.Sockets is medium level. Ideally, it could be a bit higher, e.g. have
a protected object waitable for a socket event.

> They are of course tied to specific systems, but people have
> created "wrapper" libraries like libevent[1], which allow one
> to choose their favorite polling mechanism and use same API
> on all systems.

Yes, that's the right way to do it.

-- 
Regards,
Dmitry A. Kazakov
http://www.dmitry-kazakov.de


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

* Re: What exactly is the licensing situation with GNAT?
  2014-11-15 11:26                                                             ` Dmitry A. Kazakov
@ 2014-11-15 12:41                                                               ` Gour
  2014-11-15 13:18                                                                 ` Dmitry A. Kazakov
  0 siblings, 1 reply; 241+ messages in thread
From: Gour @ 2014-11-15 12:41 UTC (permalink / raw)


On Sat, 15 Nov 2014 12:26:02 +0100
"Dmitry A. Kazakov" <mailbox@dmitry-kazakov.de> wrote:

> Ignoring absurdity of the idea that engineering could exist without an
> underlying scientific discipline, 

Engineering is about being pragmatic and solving the (practical)
problems, while science is, supposed to, about finding the truth.

> if your interpretation of Dijkstra were that Ada is bad science and
> [maybe, he never said so] good engineering, then why you interpret his
> quote about OO differently?

Simply because OOP is not science, but just craft about one of many ways
how to solve problems.

> Wouldn't it be simpler just to accept that Dijkstra as ingenious he
> certainly was, regardless his enormous contribution to software
> engineering principles, e.g. "correct by construction", didn't
> understand software engineering well?

I hope you understand that I do not hold opinion that Dijkstra is
all-knowing God, but that does not mean that his quote about OOP as 'way
of solving problems' and Ada as 'science' are to be dismissed.


Sincerely,
Gour

-- 
Perform your prescribed duty, for doing so is better than not 
working. One cannot even maintain one's physical body without work.

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

* Re: community-based compiler (was Re: What exactly is the licensing situation with GNAT?)
  2014-11-14 20:53                                           ` Shark8
  2014-11-14 21:07                                             ` Luke A. Guest
@ 2014-11-15 12:44                                             ` Brian Drummond
  2014-11-15 22:47                                               ` Shark8
  2014-11-17 11:28                                               ` Natasha Kerensikova
  1 sibling, 2 replies; 241+ messages in thread
From: Brian Drummond @ 2014-11-15 12:44 UTC (permalink / raw)


On Fri, 14 Nov 2014 13:53:33 -0700, Shark8 wrote:

> On 14-Nov-14 11:55, David Botton wrote:
>>> I agree with you that there ought to be another open-source
>>> >freely-available Ada compiler
>> What resources are needed to make it happen?
> 
> Hm, I think there are several things that are needed, and which would
> have different emphasis at different points in development. -- For
> example, a good, clear plan for the overall architecture and underlying
> tech* would be essential. -- Another thing that might be useful is, from
> the ground up, employing formal methods (ie Ada/SPARK and proofs) for
> correctness.**
> 
> After the initial stages,*** the "clear path to submit patches and bug
> reports" becomes much more important after getting to an operable state.
> 
> * e.g. if it used DIANA for its interface between the front-end and
> back-end (and tools) that should be (a) shown and (b) well documented.
> OR if it uses a SCID [ http://mindprod.com/project/scid.html ] approach
> documentation of the underlying DB and interfacing to it.

Having just bought the book (DIANA : An intermediate language for Ada) it 
appears to me that DIANA was effectively obsoleted by ASIS (though 
perhaps a simple ASIS <-> DIANA translation might be feasible, assuming 
compatible Ada versions). I don't believe DIANA was ever updated for 
Ada-95 for one thing, so at this point ASIS looks like a better starting 
point.

And there is an ASIS implementation independent of Adacore, which builds 
quite easily. This would seem to be a good starting point for a future 
compiler (it was originally targeted at the TENDra project which seem so 
be ... drifting. There is still some work being done on it, but without 
reference to Ada, and the GELA-Tendra interface seems to eb unavailable 
in any reasonably complete form)

Updating Gela-ASIS for Ada-2012 could be useful in its own right, and 
done approximately independently of using Gela-ASIS to supply an 
intermediate representation to an existing back-end (gcc,llvm,etc)

I am (very tentatively) looking at ghdl's intermediate representation. 
which currently interfaces to three compiler backends - gcc, 
(experimentally) LLVM, and its own 32-bit x86 JIT compiler.

A translation between ASIS and this IR would (based on the equivalent 
translation layer in ghdl) be something like a 30,000 line project in 
itself. Big, but more manageable than an entire compiler.

> I haven't found a good path, but then I'm more interested in a whole new
> project rather than tying ourselves down to a single implementation.

At this stage, I'm happy to see several paths followed, some will 
inevitably turn out to be dead ends.

-- Brian

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

* Re: What exactly is the licensing situation with GNAT?
  2014-11-15 12:41                                                               ` Gour
@ 2014-11-15 13:18                                                                 ` Dmitry A. Kazakov
  0 siblings, 0 replies; 241+ messages in thread
From: Dmitry A. Kazakov @ 2014-11-15 13:18 UTC (permalink / raw)


On Sat, 15 Nov 2014 13:41:57 +0100, Gour wrote:

> On Sat, 15 Nov 2014 12:26:02 +0100
> "Dmitry A. Kazakov" <mailbox@dmitry-kazakov.de> wrote:
> 
>> Ignoring absurdity of the idea that engineering could exist without an
>> underlying scientific discipline, 
> 
> Engineering is about being pragmatic and solving the (practical)
> problems,

by *applying* a specific science. E.g. mechanical engineering. Solving
practical problems is not necessary engineering. Without mechanics solving
mechanical problems is merely artisanship.

> while science is, supposed to, about finding the truth.
>
>> if your interpretation of Dijkstra were that Ada is bad science and
>> [maybe, he never said so] good engineering, then why you interpret his
>> quote about OO differently?
>
> Simply because OOP is not science, but just craft about one of many ways
> how to solve problems.

Yes. OOP is would-be engineering, the corresponding would-be science is the
types theory.

>> Wouldn't it be simpler just to accept that Dijkstra as ingenious he
>> certainly was, regardless his enormous contribution to software
>> engineering principles, e.g. "correct by construction", didn't
>> understand software engineering well?
>
> I hope you understand that I do not hold opinion that Dijkstra is
> all-knowing God, but that does not mean that his quote about OOP as 'way
> of solving problems' and Ada as 'science' are to be dismissed.

IMO his interest and competence lied elsewhere.

-- 
Regards,
Dmitry A. Kazakov
http://www.dmitry-kazakov.de


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

* Re: What exactly is the licensing situation with GNAT?
  2014-11-14  4:51                                         ` Randy Brukardt
  2014-11-14  5:12                                           ` David Botton
@ 2014-11-15 17:32                                           ` Florian Weimer
  2014-11-15 19:58                                             ` 'Image (was: What exactly is the licensing situation with GNAT?) Georg Bauhaus
  1 sibling, 1 reply; 241+ messages in thread
From: Florian Weimer @ 2014-11-15 17:32 UTC (permalink / raw)


* Randy Brukardt:

> Semi-related to this is that we approved Obj'Image as a language-defined 
> attribute, to be included in the 2015 Ada Corrigendum. [AdaCore told us that 
> they had used 'Img only because the language would not allow them to change 
> Image that way. The ARG has no such limitations. ;-)]

Did they drop leading space characters while they were at it? :-)


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

* Re: What exactly is the licensing situation with GNAT?
  2014-11-15 10:27                                                           ` Hubert
@ 2014-11-15 19:44                                                             ` Robert A Duff
  0 siblings, 0 replies; 241+ messages in thread
From: Robert A Duff @ 2014-11-15 19:44 UTC (permalink / raw)


Hubert <herrdoktor@fumanchu.com> writes:

>...Besides,
> the OOP side has already won since there is basically no alternative in
> today's curriculum at universities to my knowledge.

There is little emphasis on OOP at Carnegie-Mellon University in the
Computer Science curriculum.  Put "carnegie-mellon cs curriculum object
oriented" in google for more information.

- Bob


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

* Re: Things that OO programming lacks
  2014-11-14 16:32                                                           ` Things that OO programming lacks Dmitry A. Kazakov
@ 2014-11-15 19:46                                                             ` Georg Bauhaus
  2014-11-16 10:18                                                               ` Dmitry A. Kazakov
  2014-11-16 17:54                                                             ` Simon Wright
  1 sibling, 1 reply; 241+ messages in thread
From: Georg Bauhaus @ 2014-11-15 19:46 UTC (permalink / raw)


On 14.11.14 17:32, Dmitry A. Kazakov wrote:
>  But, again, what would be better?

>> Better? A mode of expressing what we know beyond our objects,
>> in dedicated language:

I mean our objects, not OO objects. This is about expressing notions.

>> For example, "connections" may refer to order of calls in time,
>> and to "flow" caused by "data".
>
> For example Ada.Streams show us "connecting patterns".

Ada.Streams doesn't show much, since some connections are implicit.
Which is the point. "Open" would be a hint at the object to/from
which data will flow, but you'd still have questions if a different
task object somehow has access to the stream. You look at the task's
definition, and you still miss the part that caused the I/O disaster.
That's because "connecting" data to the stream can happen anywhere
this stream is visible, and if you do *not* apply C-style discipline,
then the *language* won't help. (Broken record: "bad design, bad
design, bad design, ..." Another broken record: "use int properly,
use int properly, use int properly, ...")

Any competent engineer can write perfectly good programs in
the assembly language he knows, for the machine he knows.
That's beside the point, though, and it hides all the difficulty
that an undefined (before the fact) word like "competent engineer"
must produce.

>> Another important example is events.
>
> I didn't list event-driven ...  nobody should seriously consider
> it as useful.

GUI...  Suppose it could be made less of a burden to program
any advanced multithreaded GUI, adding controls and interactions.

> In relational there are relations (and a
> fixed set of types).

(I learned that in "relational" there are arbitrarily many types
("domains"). Even in some of its restricted SQL incarnations.)

> If you want going data-driven

I don't want to be driven. ;-) Starting from my universe, I notice that
it determines orders which cannot be designed away:

"First the water, then the acid, otherwise it won't be placid!"
"Be sure to open the lid before you add further ingredients,
  then close the lid again."

I need necessary orders to be expressed, not denied for methodological
reasons of a foreign universe. In short, I want a higher level:

- procedural includes assembly power (minus a bit)
- OO includes procedural power (minus a bit)
- ??? includes OO power (minus a bit)  <-- this I want

I want a program text to tell its readers what is supposed to happen
in certain situations.  I want that information to be explicitly
stated directly in source text, without inference, with the help
of dedicated visible language features.

By analogy, monads are a way of integrating I/O with functionism.
I want something like this in the OO programming world, at the level
of language definition, so that I can answer questions I might
be asked about a program and its effects simply by pointing my finger
at some one line of text.

If Obj_1 and Obj_2 are objects, then I would like the language
to have syntax, say "(*)", for

    Obj_1 (*) Obj_2

which would *not* be a function call.  I would like the language
to have syntax, say "{<#}" or "{#>}", for

   Event_1 {#>}  Obj_1, Obj_2, Obj_3

The cheap language version would start to make these pieces of syntax
mark relationSHIPs first, and then the compiler would check that these
relationships actually exist. If the marks turn into relations, fine,
but that makes relations just a way to formalize specific relationships
behind the scene.



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

* 'Image (was: What exactly is the licensing situation with GNAT?)
  2014-11-15 17:32                                           ` Florian Weimer
@ 2014-11-15 19:58                                             ` Georg Bauhaus
  2014-11-18  0:39                                               ` Randy Brukardt
  2014-11-19 13:46                                               ` 'Image (was: What exactly is the licensing situation with GNAT?) Brian Drummond
  0 siblings, 2 replies; 241+ messages in thread
From: Georg Bauhaus @ 2014-11-15 19:58 UTC (permalink / raw)


On 15.11.14 18:32, Florian Weimer wrote:
> * Randy Brukardt:
>
>> Semi-related to this is that we approved Obj'Image as a language-defined
>> attribute, to be included in the 2015 Ada Corrigendum. [AdaCore told us that
>> they had used 'Img only because the language would not allow them to change
>> Image that way. The ARG has no such limitations. ;-)]
>
> Did they drop leading space characters while they were at it? :-)

Of course not, they know about the possibility of a '-', and how
are you going to write orderly column layout if in Ada there is no space!

Perfect ground for debate.

Will 'Image be user definable?  Like Python's __str__? Very good
for obfuscation, then. Will the encoding be part of the definition,
so that I can use it in our existing trace logs?

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

* Re: community-based compiler (was Re: What exactly is the licensing situation with GNAT?)
  2014-11-15 12:44                                             ` Brian Drummond
@ 2014-11-15 22:47                                               ` Shark8
  2014-11-16 11:12                                                 ` Brian Drummond
  2014-11-17 11:28                                               ` Natasha Kerensikova
  1 sibling, 1 reply; 241+ messages in thread
From: Shark8 @ 2014-11-15 22:47 UTC (permalink / raw)


On 15-Nov-14 05:44, Brian Drummond wrote:
>> I haven't found a good path, but then I'm more interested in a whole new
>> >project rather than tying ourselves down to a single implementation.
> At this stage, I'm happy to see several paths followed, some will
> inevitably turn out to be dead ends.

Agreed.
I do hope, however, that we don't get "watered-down" or "spread too 
thin" by having too many paths.

> I am (very tentatively) looking at ghdl's intermediate representation.
> which currently interfaces to three compiler backends - gcc,
> (experimentally) LLVM, and its own 32-bit x86 JIT compiler.
>
> A translation between ASIS and this IR would (based on the equivalent
> translation layer in ghdl) be something like a 30,000 line project in
> itself. Big, but more manageable than an entire compiler.

An interesting approach.

I do wonder about VHDL though: since it's a hardware-description 
language, could it be feasible to base a compiler backend on it so that 
targeting a new system is merely a matter of feeding it the description 
of that hardware? -- Or am I completely misinterpreting what its purpose is?

> Having just bought the book (DIANA : An intermediate language for Ada) it
> appears to me that DIANA was effectively obsoleted by ASIS (though
> perhaps a simple ASIS <-> DIANA translation might be feasible, assuming
> compatible Ada versions). I don't believe DIANA was ever updated for
> Ada-95 for one thing, so at this point ASIS looks like a better starting
> point.

I can see it both ways; the ASIS, having been updated through Ada-95, 
would have a lot of the Ada 2005 stuff in-place -- on the other hand, 
updating DIANA for Ada 2012 could allow for a bit of regularizing the IR 
to handle things in a more uniform manner, as well as [possibly] 
redefining the interface in terms of GENERICs and/or INTERFACEs.*

ASIS <-> DIANA translation you mention might be possible via a 
Translation-grammar; I came across them in a paper [I think on DIANA] 
and they sound pretty interesting even if I've not heard of them before.

* Another thing that might be interesting is an [portable] IR-executor, 
this would have much of the benefit of bytecode w/o [directly] depending 
on DOTNET or JVM... heck, if that translation-grammar module works very 
well we could, in theory, make it so that adding a new target is simply 
writing a new translation-grammar.


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

* Re: What exactly is the licensing situation with GNAT?
  2014-11-14 12:46                                       ` Peter Chapin
  2014-11-15  8:47                                         ` Mart van de Wege
@ 2014-11-16  9:32                                         ` Pete Ballmer
  2014-11-16 19:41                                         ` Florian Weimer
  2 siblings, 0 replies; 241+ messages in thread
From: Pete Ballmer @ 2014-11-16  9:32 UTC (permalink / raw)


On 2014-11-14, Peter Chapin <PChapin@vtc.vsc.edu> wrote:
> On Fri, 14 Nov 2014, Pete Ballmer wrote:
>
>> Other systems like LLVM would be ok except they're not supporting anything
>> but Intel.
>
> I'm not sure I understand what you mean. When I look at the LLVM web site 
> I see:
>
> "An easily retargettable code generator, which currently supports X86, 
> X86-64, PowerPC, PowerPC-64, ARM, Thumb, SPARC, Alpha, CellSPU, MIPS, 
> MSP430, SystemZ, and XCore."
>
> Are you saying that only the Intel support is used or gets active 
> development?

They make a lot of wild claims. Empirically it would seem "easily
retargettable" is somewhat of a stretch and "currently supports" is pure
wishful thinking or written by marketing wonks. If you actually make the
mistake of downloading the whole thing and read through the doc you find out
nothing is expected to work today except Intel. The plus side is the non-GPL
license. The downside is killing off all non-Intel platforms in major
projects. FreeBSD is going to have some real soul searching to do. And
frankly I think the architecture is overkill given what they actually
accomplish with it.

Honestly I gave up on LLVM ever running except on Intel. I bet money it
won't ever be complete on any other platform. I have a fair selection of
non-Intel hardware and after checking LLVM again and again over a few years
to see if any of it was supported and always finding it wasn't I gave up
looking. If anybody was serious about getting it to work on alternative
hardware I think it would have been available a long time ago.

Pete



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

* Re: Things that OO programming lacks
  2014-11-15 19:46                                                             ` Georg Bauhaus
@ 2014-11-16 10:18                                                               ` Dmitry A. Kazakov
  2014-11-16 18:51                                                                 ` Shark8
  2014-11-17 15:17                                                                 ` G.B.
  0 siblings, 2 replies; 241+ messages in thread
From: Dmitry A. Kazakov @ 2014-11-16 10:18 UTC (permalink / raw)


On Sat, 15 Nov 2014 20:46:54 +0100, Georg Bauhaus wrote:

> On 14.11.14 17:32, Dmitry A. Kazakov wrote:
>>  But, again, what would be better?
> 
>>> Better? A mode of expressing what we know beyond our objects,
>>> in dedicated language:
> 
> I mean our objects, not OO objects. This is about expressing notions.

There is no "our objects" in non-object-oriented paradigms.

>>> For example, "connections" may refer to order of calls in time,
>>> and to "flow" caused by "data".
>>
>> For example Ada.Streams show us "connecting patterns".
> 
> Ada.Streams doesn't show much, since some connections are implicit.
> Which is the point. "Open" would be a hint at the object to/from
> which data will flow, but you'd still have questions if a different
> task object somehow has access to the stream.

Again, what paradigm are you talking about? Task is an object in OO. In
other paradigms there no such thing. E.g. in the procedural paradigm there
will be a set of subprograms to start, stop implicit tasks, proxy data
types like task ID, but never an explicit task object.

> You look at the task's definition,

And this is where you must start. Since the task is not an object, how a
task is spelled in your paradigm?

>>> Another important example is events.
>>
>> I didn't list event-driven ...  nobody should seriously consider
>> it as useful.
> 
> GUI...  Suppose it could be made less of a burden to program
> any advanced multithreaded GUI, adding controls and interactions.

GUI frameworks you are talking about are not written or interfaced in a
data-driven language (DDL). They are in OOPLs. The event-driven
architecture of such applications /= the programming paradigm, which is
still OO and partially procedural. 

When GUI applications are written in a DDL they are disaster, example:
LabView.

 > I want a program text to tell its readers what is supposed to happen
> in certain situations.  I want that information to be explicitly
> stated directly in source text, without inference, with the help
> of dedicated visible language features.

This is what *any* programming language does. Its text (program) describes
behavior (in some computational environment). What you probably missed is
that the behavior is *always* described in the language terms. Thus
"happens" and "situation" are the language domain terms, not the reality
terms. If you accept that, your statement is a truism. If you mean the
reality, the statement is just meaningless. Only God speaks the language
which computational environment is the reality.

> If Obj_1 and Obj_2 are objects, then I would like the language
> to have syntax, say "(*)", for
> 
>     Obj_1 (*) Obj_2
> 
> which would *not* be a function call.

Then these are not objects. The only thing you can do with objects is to
use the operations of. This is called typing.

-- 
Regards,
Dmitry A. Kazakov
http://www.dmitry-kazakov.de


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

* Re: community-based compiler (was Re: What exactly is the licensing situation with GNAT?)
  2014-11-15 22:47                                               ` Shark8
@ 2014-11-16 11:12                                                 ` Brian Drummond
  2014-11-16 21:38                                                   ` Shark8
  0 siblings, 1 reply; 241+ messages in thread
From: Brian Drummond @ 2014-11-16 11:12 UTC (permalink / raw)


On Sat, 15 Nov 2014 15:47:41 -0700, Shark8 wrote:

> On 15-Nov-14 05:44, Brian Drummond wrote:
>>> I haven't found a good path, but then I'm more interested in a whole
>>> new
>>> >project rather than tying ourselves down to a single implementation.
>> At this stage, I'm happy to see several paths followed, some will
>> inevitably turn out to be dead ends.
> 
> Agreed.
> I do hope, however, that we don't get "watered-down" or "spread too
> thin" by having too many paths.
> 
>> I am (very tentatively) looking at ghdl's intermediate representation.
>> which currently interfaces to three compiler backends - gcc,
>> (experimentally) LLVM, and its own 32-bit x86 JIT compiler.
>>
>> A translation between ASIS and this IR would (based on the equivalent
>> translation layer in ghdl) be something like a 30,000 line project in
>> itself. Big, but more manageable than an entire compiler.
> 
> An interesting approach.
> 
> I do wonder about VHDL though: since it's a hardware-description
> language, could it be feasible to base a compiler backend on it so that
> targeting a new system is merely a matter of feeding it the description
> of that hardware? -- Or am I completely misinterpreting what its purpose
> is?

VHDL is indeed a hardware description language. However GHDL is a VHDL 
simulator : its gcc and llvm forms create executables which run as any 
other. If you use logic simulation types, they will be slow and 
inefficient executables, but if you use integer, boolean, array, record 
there need be no speed penalty (beyond that arising from the one man 
spare time effort, vs however large Adacore's team is). 

Its author now works for Adacore (or did, last I heard) so I don't want 
to use his pre-existing work for anything more than experiments without 
clearing up any possible conflict of interest concerns he might have.

> * Another thing that might be interesting is an [portable] IR-executor,
> this would have much of the benefit of bytecode w/o [directly] depending
> on DOTNET or JVM... heck, if that translation-grammar module works very
> well we could, in theory, make it so that adding a new target is simply
> writing a new translation-grammar.

Heh. Back in the Linn Rekursiv days where you could microcode arbitrarily 
complex instructions, I wanted to experiment with a genuinely recursive 
instruction set, that would execute directly off a parse tree...

- Brian



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

* Re: Things that OO programming lacks
  2014-11-14 16:32                                                           ` Things that OO programming lacks Dmitry A. Kazakov
  2014-11-15 19:46                                                             ` Georg Bauhaus
@ 2014-11-16 17:54                                                             ` Simon Wright
  2014-11-16 19:01                                                               ` Niklas Holsti
  2014-11-16 19:39                                                               ` Dmitry A. Kazakov
  1 sibling, 2 replies; 241+ messages in thread
From: Simon Wright @ 2014-11-16 17:54 UTC (permalink / raw)


"Dmitry A. Kazakov" <mailbox@dmitry-kazakov.de> writes:

> I didn't list event-driven AKA data-driven paradigm in my list of
> paradigms, since it is so horrific, that nobody should seriously
> consider it as useful.

The event-driven approach to (real-time) software is the only way to
build such systems: any other way is bound to lead to confusion and
disaster.

£0.02

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

* Re: Things that OO programming lacks
  2014-11-16 10:18                                                               ` Dmitry A. Kazakov
@ 2014-11-16 18:51                                                                 ` Shark8
  2014-11-16 19:33                                                                   ` Dmitry A. Kazakov
  2014-11-17 15:17                                                                 ` G.B.
  1 sibling, 1 reply; 241+ messages in thread
From: Shark8 @ 2014-11-16 18:51 UTC (permalink / raw)


On 16-Nov-14 03:18, Dmitry A. Kazakov wrote:
> There is no "our objects" in non-object-oriented paradigms.

Sure there is:
Ada 83 LRM 3.2, first sentence:
"An object is an entity that contains (has) a value of a given type."

It's widely acknowledged that Ada 83 is/was not object-oriented; 
therefore either the definition (LRM) is wrong, or your assertion is.

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

* Re: Things that OO programming lacks
  2014-11-16 17:54                                                             ` Simon Wright
@ 2014-11-16 19:01                                                               ` Niklas Holsti
  2014-11-16 19:14                                                                 ` Simon Wright
  2014-11-16 19:39                                                               ` Dmitry A. Kazakov
  1 sibling, 1 reply; 241+ messages in thread
From: Niklas Holsti @ 2014-11-16 19:01 UTC (permalink / raw)


On 14-11-16 19:54 , Simon Wright wrote:
> "Dmitry A. Kazakov" <mailbox@dmitry-kazakov.de> writes:
> 
>> I didn't list event-driven AKA data-driven paradigm in my list of
>> paradigms, since it is so horrific, that nobody should seriously
>> consider it as useful.
> 
> The event-driven approach to (real-time) software is the only way to
> build such systems: any other way is bound to lead to confusion and
> disaster.
> 
> £0.02

"No Sale" even at that price (meaning I disagree).

But of course this depends on what, precisely, is meant by "event-driven
approach".

It is true that any system that must react to asynchronous inputs, be
they called "events" or whatever, must in its design be "event-driven"
to some extent. But this does NOT mean that the internal architecture of
the SW should be based on message-passing, or FSAs communicating by
events, or anything like that. Such internal architectures
(unfortunately, often the result of the autocode generators of
single-minded model-based design tools) can be HUGELY complex,
inefficient, and beastly to analyse or understand. In my not-so-humble
opinion.

-- 
Niklas Holsti
Tidorum Ltd
niklas holsti tidorum fi
      .      @       .

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

* Re: Things that OO programming lacks
  2014-11-16 19:01                                                               ` Niklas Holsti
@ 2014-11-16 19:14                                                                 ` Simon Wright
  0 siblings, 0 replies; 241+ messages in thread
From: Simon Wright @ 2014-11-16 19:14 UTC (permalink / raw)


Niklas Holsti <niklas.holsti@tidorum.invalid> writes:

> On 14-11-16 19:54 , Simon Wright wrote:
>> "Dmitry A. Kazakov" <mailbox@dmitry-kazakov.de> writes:
>> 
>>> I didn't list event-driven AKA data-driven paradigm in my list of
>>> paradigms, since it is so horrific, that nobody should seriously
>>> consider it as useful.
>> 
>> The event-driven approach to (real-time) software is the only way to
>> build such systems: any other way is bound to lead to confusion and
>> disaster.
>> 
>> £0.02
>
> "No Sale" even at that price (meaning I disagree).
>
> But of course this depends on what, precisely, is meant by
> "event-driven approach".
>
> It is true that any system that must react to asynchronous inputs, be
> they called "events" or whatever, must in its design be "event-driven"
> to some extent. But this does NOT mean that the internal architecture
> of the SW should be based on message-passing, or FSAs communicating by
> events, or anything like that. Such internal architectures
> (unfortunately, often the result of the autocode generators of
> single-minded model-based design tools) can be HUGELY complex,
> inefficient, and beastly to analyse or understand. In my not-so-humble
> opinion.

I was only trying to make as evidence-free an assertion as Dmitry's.

I don't think that we are going to agree on this point, or even have an
actual argument, partly because I'm not in a position to produce any
evidence myself.

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

* Re: community-based compiler
  2014-11-14 14:53                                       ` community-based compiler (was Re: What exactly is the licensing situation with GNAT?) Luke A. Guest
                                                           ` (3 preceding siblings ...)
  2014-11-14 22:40                                         ` Randy Brukardt
@ 2014-11-16 19:29                                         ` Florian Weimer
  4 siblings, 0 replies; 241+ messages in thread
From: Florian Weimer @ 2014-11-16 19:29 UTC (permalink / raw)


* Luke A. Guest:

>> Yesterday I researched a bit R.R.Software's web site and found that
>> their Janus/Ada compiler is "...the only compiler on the market that is
>> written in Ada and self compiled in a personal computer environment."
>
> GNAT is written in Ada and can compile itself.

It's just the front end, though.

There are some non-GCC back ends, but I'm not sure if any of them
compiles down to machine code for a real CPU.

>> Based on what I've seen/heard, it seems that Ada community is not much
>> involved in shaping GNAT, even in its FSF incarnation...
>
> It's more that the community has never been allowed to.

Some time ago, I contributed a few patches.  Nothing significant, but
it is possible.  Contributions to the actual compiler (instead of
ports to more obscure GNU/Linux platforms) are still rare, though.
There are bound to be some process glitches initially if external
contributors showed up.  So far, coordination with an outside
community about compiler internals hasn't been necessary.

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

* Re: community-based compiler
  2014-11-14 16:34                                             ` David Botton
  2014-11-14 16:42                                               ` Luke A. Guest
@ 2014-11-16 19:30                                               ` Florian Weimer
  1 sibling, 0 replies; 241+ messages in thread
From: Florian Weimer @ 2014-11-16 19:30 UTC (permalink / raw)


* David Botton:

>> People have sent patches to AdaCore
>
> Why not deal directly with the FSF, there must be some maintainer on
> that side?

You'd have to send them not the FSF, but the GCC project, after doing
the copyright assignment paperwork.

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

* Re: community-based compiler
  2014-11-14 16:48                                               ` Luke A. Guest
@ 2014-11-16 19:31                                                 ` Florian Weimer
  0 siblings, 0 replies; 241+ messages in thread
From: Florian Weimer @ 2014-11-16 19:31 UTC (permalink / raw)


* Luke A. Guest:

> I read it was written in c++ specifically to get around the bootstrap
> issue.

The Go front end in GCC is written in C++.  The official Go
implementation has a different front end, and the toolchain is not
based on GNU, but the Plan 9 toolchain.


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

* Re: Things that OO programming lacks
  2014-11-16 18:51                                                                 ` Shark8
@ 2014-11-16 19:33                                                                   ` Dmitry A. Kazakov
  0 siblings, 0 replies; 241+ messages in thread
From: Dmitry A. Kazakov @ 2014-11-16 19:33 UTC (permalink / raw)


On Sun, 16 Nov 2014 11:51:03 -0700, Shark8 wrote:

> On 16-Nov-14 03:18, Dmitry A. Kazakov wrote:
>> There is no "our objects" in non-object-oriented paradigms.
> 
> Sure there is:
> Ada 83 LRM 3.2, first sentence:
> "An object is an entity that contains (has) a value of a given type."
> 
> It's widely acknowledged that Ada 83 is/was not object-oriented; 
> therefore either the definition (LRM) is wrong, or your assertion is.

Sure there are computational object. The question is whether the paradigm
promotes them or tries to abstract away.

-- 
Regards,
Dmitry A. Kazakov
http://www.dmitry-kazakov.de

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

* Re: Things that OO programming lacks
  2014-11-16 17:54                                                             ` Simon Wright
  2014-11-16 19:01                                                               ` Niklas Holsti
@ 2014-11-16 19:39                                                               ` Dmitry A. Kazakov
  2014-11-16 20:33                                                                 ` Simon Wright
  1 sibling, 1 reply; 241+ messages in thread
From: Dmitry A. Kazakov @ 2014-11-16 19:39 UTC (permalink / raw)


On Sun, 16 Nov 2014 17:54:06 +0000, Simon Wright wrote:

> "Dmitry A. Kazakov" <mailbox@dmitry-kazakov.de> writes:
> 
>> I didn't list event-driven AKA data-driven paradigm in my list of
>> paradigms, since it is so horrific, that nobody should seriously
>> consider it as useful.
> 
> The event-driven approach to (real-time) software is the only way to
> build such systems: any other way is bound to lead to confusion and
> disaster.

On the contrary, real-time software requires predictability, which leads to
rather to polling-based architectures oriented to the worst case scenario.

But architecture of given piece of software /= programming paradigm,
anyway.

Examples data/even-driven languages are MatLab/SIMULINK, LabView, Diadem.

-- 
Regards,
Dmitry A. Kazakov
http://www.dmitry-kazakov.de


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

* Re: What exactly is the licensing situation with GNAT?
  2014-11-14 12:46                                       ` Peter Chapin
  2014-11-15  8:47                                         ` Mart van de Wege
  2014-11-16  9:32                                         ` Pete Ballmer
@ 2014-11-16 19:41                                         ` Florian Weimer
  2 siblings, 0 replies; 241+ messages in thread
From: Florian Weimer @ 2014-11-16 19:41 UTC (permalink / raw)


* Peter Chapin:

> Are you saying that only the Intel support is used or gets active
> development?

I think these days, llvmpipe runs well enough on ppc64 to be useful.

Apple as a downstream also has a working ARM toolchain that uses LLVM.
I don't know how much of that they contribute back.

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

* Re: Things that OO programming lacks
  2014-11-16 19:39                                                               ` Dmitry A. Kazakov
@ 2014-11-16 20:33                                                                 ` Simon Wright
  2014-11-17  8:44                                                                   ` Dmitry A. Kazakov
  0 siblings, 1 reply; 241+ messages in thread
From: Simon Wright @ 2014-11-16 20:33 UTC (permalink / raw)


"Dmitry A. Kazakov" <mailbox@dmitry-kazakov.de> writes:

> On Sun, 16 Nov 2014 17:54:06 +0000, Simon Wright wrote:
>
>> "Dmitry A. Kazakov" <mailbox@dmitry-kazakov.de> writes:
>> 
>>> I didn't list event-driven AKA data-driven paradigm in my list of
>>> paradigms, since it is so horrific, that nobody should seriously
>>> consider it as useful.
>> 
>> The event-driven approach to (real-time) software is the only way to
>> build such systems: any other way is bound to lead to confusion and
>> disaster.
>
> On the contrary, real-time software requires predictability, which
> leads to rather to polling-based architectures oriented to the worst
> case scenario.

My experience is with relatively soft real-time (I mean, the
requirements from the system engineers were mostly quite a bit broader
than was easily achievable).

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

* Re: community-based compiler (was Re: What exactly is the licensing situation with GNAT?)
  2014-11-16 11:12                                                 ` Brian Drummond
@ 2014-11-16 21:38                                                   ` Shark8
  0 siblings, 0 replies; 241+ messages in thread
From: Shark8 @ 2014-11-16 21:38 UTC (permalink / raw)


On 16-Nov-14 04:12, Brian Drummond wrote:
> Heh. Back in the Linn Rekursiv days where you could microcode arbitrarily
> complex instructions, I wanted to experiment with a genuinely recursive
> instruction set, that would execute directly off a parse tree...

That sounds like it would be a really interesting project.

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

* Re: What exactly is the licensing situation with GNAT?
  2014-11-14 10:30                                                   ` Dmitry A. Kazakov
  2014-11-15  1:00                                                     ` Hubert
@ 2014-11-17  8:11                                                     ` Stan Mills
  2014-11-17  8:28                                                       ` Dmitry A. Kazakov
  1 sibling, 1 reply; 241+ messages in thread
From: Stan Mills @ 2014-11-17  8:11 UTC (permalink / raw)


On 2014-11-14, Dmitry A. Kazakov <mailbox@dmitry-kazakov.de> wrote:
> On Fri, 14 Nov 2014 01:19:04 -0800, Hubert wrote:
>
>>> Hmm, actually OOD and OOP require more upfront design than traditional
>>> procedural approach. Ad-hoch subprograms are much easier and quicker stuff
>>> than ad-hoc type + subprograms (=class) with thinking about possible
>>> inheritance etc.
>> 
>> That maybe the theory, but what I have experienced is that it is 
>> immensely easy to just start writing code and have great success with 
>> it. In fact it is much easier than writing subprograms and modules etc. 
>> That is the stuff that requires planning.

Yes, this is part of the problem. OO appears to make productivity better but
it comes with costs that are apparently too high like people being unable to
troubleshoot large applications because they used stuff without
understanding it.

> I don't see how this could be true. One problem with such statements is
> that people compare incomparable things or consider usage of ready
> components as if it were the program of their own. If you carefully analyse
> any of these activities under procedural vs. OO approach you will find
> that:
>
> 1. Reuse is in order of magnitude easier and safer when with OO.

That's when it's done properly and qualified people write the objects *and*
qualified people deploy the objects. The way OO is used now is as a crutch
to allow labor-quality "coders" work over their heads. This is dangerous.
Just because the top scientists discover cures for terrible diseases doesn't
mean the guy who takes out the trash in your office building is qualified to
be a doctor just by filling a syringe with the stuff the scientists developed.

> 2. Writing your own new code requires more upfront thinking and writing but
> is greatly safer in the long run.

True. Now what about the benefits of reusability? Can we conclude software
reusability is only good locally when the guy reuses his own good code, but
unqualified people using other people's code is harmful? I think so.

> Ergo, OO is good for software engineering, which should surprise nobody,
> because in essence OO, leaving OOA/D religion aside, is nothing but an
> improved type system.

Agreed! But it comes with a very negative side effect. See above.

> This is a logical fallacy. Compare: Ada gives the programmer a false sense
> of security, therefore we must stick to ANSI C.

Haha. I can only respond to this by saying yeah that's pretty much what
happens ;-)

Stan

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

* Re: What exactly is the licensing situation with GNAT?
  2014-11-14 12:57                                                       ` Peter Chapin
  2014-11-14 22:33                                                         ` Randy Brukardt
@ 2014-11-17  8:28                                                         ` Stan Mills
  1 sibling, 0 replies; 241+ messages in thread
From: Stan Mills @ 2014-11-17  8:28 UTC (permalink / raw)


On 2014-11-14, Peter Chapin <PChapin@vtc.vsc.edu> wrote:
> On Fri, 14 Nov 2014, Stan Mills wrote:
>
>> I have seen guys who never wrote a program from scratch in any language, 
>> and who can't understand or code any algorithm at all. But they are able 
>> to build huge ivory towers of applications based on nothing but other 
>> people's libaries. Everything is a black box to them and if you ask how 
>> it works all they can explain is how to invoke the methods they used.
>
> Isn't this exactly the idea of abstraction and data hiding, not to mention 
> software reuse? In the old days everyone wrote everything from scratch. 
> What you described sounds like progress to me.

It's not. It only sounds like it. We used abstraction and data hiding many
decades ago without any of the bad effects of the way the OO environment
seems to be going in the Java and C++ age.

We could call it progress would if the quality and professionalism of coders
using these systems either increased or at least didn't decrease and if the
coders using those abstractions were capable of designing and coding them
themselves but just that the work was already done so they can do other
stuff instead. That's value. The way things are now abstractions are things
99.9% of "coders" can't understand (too abstract) and the hiding is from the
programmer's understanding. It has created a bizarro world where knowing how
things work is considered worthless. That's disabling and wrong.

The point people seem to be missing here is all this stuff only helps if it
was done right and saves work but not at the expense of dumbing down the
profession and enabling unqualified people to be "productive". If it only
saves work up front (because things that are done wrong and break are very
costly to fix- and this is comp.lang.ada so we're all somewhat aware of the
benefit of discipline, planning, and using qualified people) then programming
is reduced to essentially unqualified people cutting and pasting that's
bad. The state of coding today shows this doesn't work. People can't get
even web stuff right and how much more so serious, major systems in Java and
C++.

It's bad because these systems grow out of control, beyond any person
or persons understanding and they get to the point where things break and
nobody can fix them. The breakage takes various forms from obvious bad
results to tougher things like unacceptable performance and the costs of
fixing those things are too high. The driving force in OO is to reduce
personnel costs not software costs and in my experience that is a false
economy. Hiring the best people always pays for itself, and it has ever
since Brook's book showed real numbers.

> After all we don't expect programmers, even software engineers, to write 
> their own compilers, assemblers, and operating systems. Those things are 
> just black boxes.

But when people were closer to compilers, assemblers, and operating systems
the quality of the code and the ability to fix it were much higher than they
are now. The other problem with class libraries and libraries generally is
there is a lot more thrashing and fingerpointing when something goes wrong.
If you control the product end to end you have nobody to blame but yourself
and you learn very quickly to suspect your own work and to find and fix it
then if you can waste a few weeks chasing your tail without anybody thinking
it's unusual.

> I suppose one could argue that a professional software engineer should be 
> capable of writing such things if they needed to, but that they only 
> choose not to because it's not cost effective. So perhaps what you are 
> really saying is that 99% of programmers are just not capable of writing 
> the kinds of libraries they routinely use.

Yes but more than that I am saying this state of affairs is a problem. It
causes succeeding generations of programmers to be less qualified to
program and it encourages and enables unqualified people to work over their
heads. And I think the major software failures we have seen in the last 15
years whether in C or OO languages are a result of this.

Stan


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

* Re: What exactly is the licensing situation with GNAT?
  2014-11-17  8:11                                                     ` Stan Mills
@ 2014-11-17  8:28                                                       ` Dmitry A. Kazakov
  2014-11-17  8:48                                                         ` Stan Mills
  0 siblings, 1 reply; 241+ messages in thread
From: Dmitry A. Kazakov @ 2014-11-17  8:28 UTC (permalink / raw)


On Mon, 17 Nov 2014 08:11:03 +0000 (UTC), Stan Mills wrote:

> On 2014-11-14, Dmitry A. Kazakov <mailbox@dmitry-kazakov.de> wrote:

>> 1. Reuse is in order of magnitude easier and safer when with OO.
> 
> That's when it's done properly and qualified people write the objects *and*
> qualified people deploy the objects. The way OO is used now is as a crutch
> to allow labor-quality "coders" work over their heads. This is dangerous.

Yes. But you cannot hire topnotch guys for every project. It is all about
engineering vs art. Engineers are average guys. The tools they handle must
fit an average guy. How otherwise could you predict the costs and quality
of a product?

[Yes,  SW engineering is not a proper engineering yet]

> Just because the top scientists discover cures for terrible diseases doesn't
> mean the guy who takes out the trash in your office building is qualified to
> be a doctor just by filling a syringe with the stuff the scientists developed.
> 
>> 2. Writing your own new code requires more upfront thinking and writing but
>> is greatly safer in the long run.
> 
> True. Now what about the benefits of reusability? Can we conclude software
> reusability is only good locally when the guy reuses his own good code, but
> unqualified people using other people's code is harmful? I think so.

No. Reusability is the only way to move forward. Complexity will continue
growing and there is no other means to fight it than per reuse.

-- 
Regards,
Dmitry A. Kazakov
http://www.dmitry-kazakov.de

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

* Re: What exactly is the licensing situation with GNAT?
  2014-11-14 13:35                                                       ` Dmitry A. Kazakov
  2014-11-14 15:29                                                         ` Things that OO programming lacks (was: What exactly is the licensing situation with GNAT?) G.B.
@ 2014-11-17  8:36                                                         ` Stan Mills
  2014-11-17 11:03                                                           ` Dmitry A. Kazakov
  1 sibling, 1 reply; 241+ messages in thread
From: Stan Mills @ 2014-11-17  8:36 UTC (permalink / raw)


On 2014-11-14, Dmitry A. Kazakov <mailbox@dmitry-kazakov.de> wrote:
> On Fri, 14 Nov 2014 10:38:17 +0000 (UTC), Stan Mills wrote:
>
>> On 2014-11-14, Dmitry A. Kazakov <mailbox@dmitry-kazakov.de> wrote:
>>> On Fri, 14 Nov 2014 09:02:49 +0000 (UTC), Stan Mills wrote:
>>>
>>>> On 2014-11-14, Dmitry A. Kazakov <mailbox@dmitry-kazakov.de> wrote:
>>>>> On Thu, 13 Nov 2014 17:36:06 -0800, Hubert wrote:
>>>>>
>> Oh, I beg to differ. Sun certainly dumbed down programming when they
>> designed Java. It's about making unqualified people "productive" and the
>> best way to do that is for qualified people to write as much code as
>> possible for unqualified people to use. The primary feature of OO in
>> practice is the huge set of class libraries to reduce the amount of future
>> coding as much as possible to simple cut and paste of existing bad code.
>
> Well, and the alternative would be? To re-implement everything each time?

No, the alternative is if the qualified people who were involved in
engineering the class libraries actually designed coded and maintained the
whole application using those class libraries. Barring that, using qualified
people would be a good start.

> Actually, the maturity of an engineering discipline is measured by the
> level of reuse of standardised solutions and components.

That works for engineering but large software systems are not successful
when built entirely or even in major part with foreign components. Large
software systems may be engineering, but they are not manufacturing.

And engineers still have standards and best practices and those are well
enough known. In the software world all we have is ....

>
>> The
>> only thing a regular programmer can't write in Java or C++ today is
>> something that doesn't already have a class library to do it for him.
>
> Maybe. In this context, can the regular programmer do anything better with
> any of competing paradigms:
>
> 1. Procedural

Bad programmers are exposed more quickly by procedural methodology more than
OO. They can't deliver stuff that works, on time, so you fire them.

> 2. Functional

Not sure it has any use in most commerce and industry.

> 3. Relational

What? ;-)

>  
> I bet, that anybody is far better off with OO than with any from the
>above.

I don't agree and the problem is not limited to OO. It's just magnitudes
worse with OO because all the "hard" stuff is done by the other guy. This
allows people to work over their heads and in my experience that is never
ever a good thing. The main thing OO hides is unqualified programmers.

Not that OO couldn't be used well. Just that it isn't. The costs turned out
to be much higher than the benefits. Then again when 99.9% of all code is
web and phone apps maybe we're wasting our time worrying about it.

>>> On the contrary, OO, specifically the concepts of inheritance and
>>> instances, addresses software-reuse, which is exactly the opposite to the
>>> cut and paste approach.
>> 
>> That's the theory. But in practice, having all the hard stuff written
>> already just promotes cutting and pasting of a different color. The code
>> that *uses* those classes is normally not reusable. That's what is cutting
>> and pasting. It's been shoved down a level or two.
>
> Maybe. But, again, what would be better?

Using qualified people end to end. Then the problem goes away.

> But this is not an OO problem. The problem is with CS as a whole and with
> missing software market.

Yes but I think OO masks the problem to a great extent and that is what I
have been trying to say.

> You need two things for having a decent
> engineering discipline, that is a sound science (CS is trash) and a working
> economical stimulus rewarding quality products and punishing swindlers (SW
> market is ruined).

Agreed!

Stan


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

* Re: Things that OO programming lacks
  2014-11-16 20:33                                                                 ` Simon Wright
@ 2014-11-17  8:44                                                                   ` Dmitry A. Kazakov
  2014-11-17 14:29                                                                     ` Simon Wright
  0 siblings, 1 reply; 241+ messages in thread
From: Dmitry A. Kazakov @ 2014-11-17  8:44 UTC (permalink / raw)


On Sun, 16 Nov 2014 20:33:21 +0000, Simon Wright wrote:

> "Dmitry A. Kazakov" <mailbox@dmitry-kazakov.de> writes:
> 
>> On Sun, 16 Nov 2014 17:54:06 +0000, Simon Wright wrote:
>>
>>> "Dmitry A. Kazakov" <mailbox@dmitry-kazakov.de> writes:
>>> 
>>>> I didn't list event-driven AKA data-driven paradigm in my list of
>>>> paradigms, since it is so horrific, that nobody should seriously
>>>> consider it as useful.
>>> 
>>> The event-driven approach to (real-time) software is the only way to
>>> build such systems: any other way is bound to lead to confusion and
>>> disaster.
>>
>> On the contrary, real-time software requires predictability, which
>> leads to rather to polling-based architectures oriented to the worst
>> case scenario.
> 
> My experience is with relatively soft real-time (I mean, the
> requirements from the system engineers were mostly quite a bit broader
> than was easily achievable).

Even so. I try to explain why I believe that event-driven is bad as a
paradigm. The fundamental problem with events is that they are not
composable. You can split an event into new events, but you cannot join
events. Where they came from, in physical processes, you can always combine
events because in the Newtonian physics time and values are continuous.
Thus you can group things into a process vector at will. This is not so in
digital computing. Let you have two signals X, Y and want to produce Z=X+Y.
This is a trivial task in procedural, functional OO decomposition (not in
relational one). With events, when X and Y are sampled (asynchronously),
digitized (stochastically) and propagated through the system layers
([bounded] random delays), this does not work. You immediately run into a
race condition. So even tasks considered trivial in other paradigms are
hard problems in the event-driven one.

P.S. Nonetheless, most of a hardware is event-driven and of software
middleware frameworks have an event-driven architecture.

-- 
Regards,
Dmitry A. Kazakov
http://www.dmitry-kazakov.de

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

* Re: What exactly is the licensing situation with GNAT?
  2014-11-17  8:28                                                       ` Dmitry A. Kazakov
@ 2014-11-17  8:48                                                         ` Stan Mills
  2014-11-17 10:40                                                           ` Dmitry A. Kazakov
  0 siblings, 1 reply; 241+ messages in thread
From: Stan Mills @ 2014-11-17  8:48 UTC (permalink / raw)


On 2014-11-17, Dmitry A. Kazakov <mailbox@dmitry-kazakov.de> wrote:
> On Mon, 17 Nov 2014 08:11:03 +0000 (UTC), Stan Mills wrote:
>
>> On 2014-11-14, Dmitry A. Kazakov <mailbox@dmitry-kazakov.de> wrote:
>
>>> 1. Reuse is in order of magnitude easier and safer when with OO.
>> 
>> That's when it's done properly and qualified people write the objects *and*
>> qualified people deploy the objects. The way OO is used now is as a crutch
>> to allow labor-quality "coders" work over their heads. This is dangerous.
>
> Yes. But you cannot hire topnotch guys for every project. It is all about
> engineering vs art. Engineers are average guys. The tools they handle must
> fit an average guy. How otherwise could you predict the costs and quality
> of a product?

Yes you can hire topnotch guys for every project and you should because
hiring the best guys is the best way to save money! See Mythical Man
Month. He shows real numbers about how much more productive in terms of
correct code the best guys are vs. not the best guys. This is what I have
seen. I have seen guys that were paid 20 or 30% more than average save or
make the company tens or hundreds of millions and the middle guys cost the
company money. Why this isn't tattooed on every manager's head is hard to
figure. Topnotch guys don't cost you anything, they pay for themselves and
then some. The whole idea people costing you is what allows OO to make
things worse.

>> True. Now what about the benefits of reusability? Can we conclude software
>> reusability is only good locally when the guy reuses his own good code, but
>> unqualified people using other people's code is harmful? I think so.
>
> No. Reusability is the only way to move forward. Complexity will continue
> growing and there is no other means to fight it than per reuse.

Again there are two forms of reuse. There is the dumb form where reuse
enables people to use unqualified people to work over their heads, above
their abilities. This is a mistake and costs people money.

The form of reuse where it's only reuse in that it was done properly and can
be used by qualified people who could have done all that work, only it was
already done and they fully understand it so now they can save time and do
other things.

Certainly the transition from a more traditional approach of services and
consumers to the current status of endless layers of middleware have made
things more complex. Complexity growth is the problem and it's a symptom of
bad design. Saying it can be fought is the wrong approach and it is the
approach of OO, which is clearly losing the battel. Complexity has to be
eliminated by changing the model from middleware uberalles to sensible
ground-up designs that may not reuse existing code or use other class
libraries, but can themselves offer reusable components to future projects.

Stan

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

* Re: What exactly is the licensing situation with GNAT?
  2014-11-17  8:48                                                         ` Stan Mills
@ 2014-11-17 10:40                                                           ` Dmitry A. Kazakov
  0 siblings, 0 replies; 241+ messages in thread
From: Dmitry A. Kazakov @ 2014-11-17 10:40 UTC (permalink / raw)


On Mon, 17 Nov 2014 08:48:55 +0000 (UTC), Stan Mills wrote:

> On 2014-11-17, Dmitry A. Kazakov <mailbox@dmitry-kazakov.de> wrote:
>> On Mon, 17 Nov 2014 08:11:03 +0000 (UTC), Stan Mills wrote:
>>
>>> On 2014-11-14, Dmitry A. Kazakov <mailbox@dmitry-kazakov.de> wrote:
>>
>>>> 1. Reuse is in order of magnitude easier and safer when with OO.
>>> 
>>> That's when it's done properly and qualified people write the objects *and*
>>> qualified people deploy the objects. The way OO is used now is as a crutch
>>> to allow labor-quality "coders" work over their heads. This is dangerous.
>>
>> Yes. But you cannot hire topnotch guys for every project. It is all about
>> engineering vs art. Engineers are average guys. The tools they handle must
>> fit an average guy. How otherwise could you predict the costs and quality
>> of a product?
> 
> Yes you can hire topnotch guys for every project and you should because
> hiring the best guys is the best way to save money!

There is not enough such people per definition. If only X % were suitable
for hiring what other 100 - X % would do? If they cannot earn money for
living you won't get enough programmers base to select topnotch X guys from
them. Economics does not work that way.

In engineering you cannot rely on excellence. Excellence is unreliable.
Engineering is, because it is based on average people and average tools.

> Topnotch guys don't cost you anything, they pay for themselves and
> then some.

It is not a question of money. They are not there for any price.

>>> True. Now what about the benefits of reusability? Can we conclude software
>>> reusability is only good locally when the guy reuses his own good code, but
>>> unqualified people using other people's code is harmful? I think so.
>>
>> No. Reusability is the only way to move forward. Complexity will continue
>> growing and there is no other means to fight it than per reuse.
> 
> Again there are two forms of reuse. There is the dumb form where reuse
> enables people to use unqualified people to work over their heads, above
> their abilities. This is a mistake and costs people money.

The only good reuse is dumb reuse.

> The form of reuse where it's only reuse in that it was done properly and can
> be used by qualified people who could have done all that work, only it was
> already done and they fully understand it so now they can save time and do
> other things.

You are contradicting to yourself. If you rely on extraordinary people,
they certainly could reuse unsafe, overcomplicated components. Compare this
to usual C advocacy: "no competent programmer would do that stupid bug."

> Complexity growth is the problem and it's a symptom of bad design.

No. It is a result of the natural process of maturity. Modern cars are
incomparably more complex than first cars. Nevertheless they are better
designed and safer. Modern software does more functionally with more
constrains set upon it (non-functionally), this necessarily makes it more
complex. Engineering is the only way to maintain complexity, not reducing
complexity, that is not possible.

-- 
Regards,
Dmitry A. Kazakov
http://www.dmitry-kazakov.de

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

* Re: What exactly is the licensing situation with GNAT?
  2014-11-17  8:36                                                         ` What exactly is the licensing situation with GNAT? Stan Mills
@ 2014-11-17 11:03                                                           ` Dmitry A. Kazakov
  2014-11-17 14:20                                                             ` G.B.
  0 siblings, 1 reply; 241+ messages in thread
From: Dmitry A. Kazakov @ 2014-11-17 11:03 UTC (permalink / raw)


On Mon, 17 Nov 2014 08:36:49 +0000 (UTC), Stan Mills wrote:

> On 2014-11-14, Dmitry A. Kazakov <mailbox@dmitry-kazakov.de> wrote:
>> On Fri, 14 Nov 2014 10:38:17 +0000 (UTC), Stan Mills wrote:
>>
>>> On 2014-11-14, Dmitry A. Kazakov <mailbox@dmitry-kazakov.de> wrote:
>>>> On Fri, 14 Nov 2014 09:02:49 +0000 (UTC), Stan Mills wrote:
>>>>
>>>>> On 2014-11-14, Dmitry A. Kazakov <mailbox@dmitry-kazakov.de> wrote:
>>>>>> On Thu, 13 Nov 2014 17:36:06 -0800, Hubert wrote:
>>>>>>
>>> Oh, I beg to differ. Sun certainly dumbed down programming when they
>>> designed Java. It's about making unqualified people "productive" and the
>>> best way to do that is for qualified people to write as much code as
>>> possible for unqualified people to use. The primary feature of OO in
>>> practice is the huge set of class libraries to reduce the amount of future
>>> coding as much as possible to simple cut and paste of existing bad code.
>>
>> Well, and the alternative would be? To re-implement everything each time?
> 
> No, the alternative is if the qualified people who were involved in
> engineering the class libraries actually designed coded and maintained the
> whole application using those class libraries. Barring that, using qualified
> people would be a good start.

Where is a difference? If your program is going to use TCP/IP sockets, you
either hire gray-haired pensioners who wrote the Berkeley API (horrific
stuff, BTW) or you redesign it from scratch. Since the former is not
possible, only the later remains.

>> Actually, the maturity of an engineering discipline is measured by the
>> level of reuse of standardised solutions and components.
> 
> That works for engineering but large software systems are not successful
> when built entirely or even in major part with foreign components.

It is a risk which must be evaluated and contained. If the risk quite
frequently is too high that indicates immaturity of software engineering.
Nobody denies that fact.

>>> The
>>> only thing a regular programmer can't write in Java or C++ today is
>>> something that doesn't already have a class library to do it for him.
>>
>> Maybe. In this context, can the regular programmer do anything better with
>> any of competing paradigms:
>>
>> 1. Procedural
> 
> Bad programmers are exposed more quickly by procedural methodology more than
> OO. They can't deliver stuff that works, on time, so you fire them.

Which is why OO is better than procedural. The goal of software engineering
is to develop programs. It is not exposure of fools.
 
>> 2. Functional
> 
> Not sure it has any use in most commerce and industry.

Yep.

>> 3. Relational
> 
> What? ;-)

Like with functional there are a lot of people crazy enough to believe in
this paradigm.

>> I bet, that anybody is far better off with OO than with any from the
>>above.
> 
> I don't agree and the problem is not limited to OO. It's just magnitudes
> worse with OO because all the "hard" stuff is done by the other guy. This
> allows people to work over their heads and in my experience that is never
> ever a good thing.

This is called division of labor. Why is it bad thing in programming when
being good everywhere else?

> The main thing OO hides is unqualified programmers.

Yes, just like bus traffic hides unqualified horse riders...

> Using qualified people end to end. Then the problem goes away.

There are no people qualified to redesign everything needed by an average
SW project.

-- 
Regards,
Dmitry A. Kazakov
http://www.dmitry-kazakov.de


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

* Re: community-based compiler (was Re: What exactly is the licensing situation with GNAT?)
  2014-11-15 12:44                                             ` Brian Drummond
  2014-11-15 22:47                                               ` Shark8
@ 2014-11-17 11:28                                               ` Natasha Kerensikova
  2014-11-19 13:48                                                 ` Brian Drummond
  2014-11-27 12:52                                                 ` Brian Drummond
  1 sibling, 2 replies; 241+ messages in thread
From: Natasha Kerensikova @ 2014-11-17 11:28 UTC (permalink / raw)


Hello,

On 2014-11-15, Brian Drummond <brian3@shapes.demon.co.uk> wrote:
> And there is an ASIS implementation independent of Adacore, which builds 
> quite easily. This would seem to be a good starting point for a future 
> compiler (it was originally targeted at the TENDra project which seem so 
> be ... drifting. There is still some work being done on it, but without 
> reference to Ada, and the GELA-Tendra interface seems to eb unavailable 
> in any reasonably complete form)
>
> Updating Gela-ASIS for Ada-2012 could be useful in its own right, and 
> done approximately independently of using Gela-ASIS to supply an 
> intermediate representation to an existing back-end (gcc,llvm,etc)

Just for the record, I have started doing exactly that.

You can follow my progress on the following github repository:
https://github.com/faelys/gela-asis

Currently there is only the official 0.3.2 release, because I'm still
trying several different things to make it work with AdaControl, and I
will publish whatever works when it does.

If anyone manages to complete it before I do, merge requests are
more-than-welcome. Similarly, if anyone wants to contribute to Gela
improvement, I will happily work as curator/reviewer/coordinator of
patches, though you might want to delay improvement patches to after
AdaControl-based validation is operational.

Short term I will probably go towards mimicking ASIS-for-GNAT behaviour
(since it's the only post-Ada95 reference anyway), e.g. lazy loading of
compilation unit, defaulting to loading everything in the current
directory, decoding ADA_SEARCH_PATH environment, etc. It will make
AdaControl intergration much easier, which will help tremendously
the validation of ASIS part of GELA.

> I am (very tentatively) looking at ghdl's intermediate representation. 
> which currently interfaces to three compiler backends - gcc, 
> (experimentally) LLVM, and its own 32-bit x86 JIT compiler.
>
> A translation between ASIS and this IR would (based on the equivalent 
> translation layer in ghdl) be something like a 30,000 line project in 
> itself. Big, but more manageable than an entire compiler.

I would have went through the direct Ada-to-LLVM route, which also feels
small enough to be handle by a single person or a few people, but I
agree without your (snipped) comment about following several paths.
Please let us know how it goes :-)


Natasha


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

* Re: What exactly is the licensing situation with GNAT?
  2014-11-17 11:03                                                           ` Dmitry A. Kazakov
@ 2014-11-17 14:20                                                             ` G.B.
  0 siblings, 0 replies; 241+ messages in thread
From: G.B. @ 2014-11-17 14:20 UTC (permalink / raw)


On 17.11.14 12:03, Dmitry A. Kazakov wrote:
>> Using qualified people end to end. Then the problem goes away.
> There are no people qualified to redesign everything needed by an average
> SW project.

The definition of qualified people is when the problem
has apparently gone away? Vicious circle, there.

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

* Re: Things that OO programming lacks
  2014-11-17  8:44                                                                   ` Dmitry A. Kazakov
@ 2014-11-17 14:29                                                                     ` Simon Wright
  2014-11-17 17:38                                                                       ` Dmitry A. Kazakov
  0 siblings, 1 reply; 241+ messages in thread
From: Simon Wright @ 2014-11-17 14:29 UTC (permalink / raw)


"Dmitry A. Kazakov" <mailbox@dmitry-kazakov.de> writes:

> Let you have two signals X, Y and want to produce Z=X+Y.  This is a
> trivial task in procedural, functional OO decomposition (not in
> relational one). With events, when X and Y are sampled
> (asynchronously), digitized (stochastically) and propagated through
> the system layers ([bounded] random delays), this does not work. You
> immediately run into a race condition.

I gree with you on this one. We never really ended up with a
satisfactory pattern. _Something_ has to remember the states so that
when one of them changes it can go and check the other one to decide
whether they're both set.

Very untidy-feeling to have two intermediate states, 'A set, waiting for
B' and 'B set, waiting for A', but possibly worth it to minimise the
amount of logic in code rather than having it visible in the state
machine.

> So even tasks considered trivial in other paradigms are hard problems
> in the event-driven one.

And the reverse? Nothing is the perfect approach for all problems.

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

* Re: Things that OO programming lacks
  2014-11-16 10:18                                                               ` Dmitry A. Kazakov
  2014-11-16 18:51                                                                 ` Shark8
@ 2014-11-17 15:17                                                                 ` G.B.
  2014-11-17 17:28                                                                   ` Dmitry A. Kazakov
  1 sibling, 1 reply; 241+ messages in thread
From: G.B. @ 2014-11-17 15:17 UTC (permalink / raw)


On 16.11.14 11:18, Dmitry A. Kazakov wrote:

>> I mean our objects, not OO objects. This is about expressing notions.
>
> There is no "our objects" in non-object-oriented paradigms.

[...](*)

To establish a paradigm of something that does not exist yet
seems premature.

What does exist, though, is a problem of expressive incompleteness.


Here is the situation:
there always are questions about what the heck happened
as a consequence of the execution of a program, e.g. failure.
The questions are formulated in a language used by companies,
by heads of departments, by customers, by lawyers etc. These
need to be answered, and the answer will, at some stage,
involve the programmer. A good PL will provide for answers
with the help of dedicated source text. That's the idea.
If you find that a truism, I wonder why nothing changes,
but in any case, it won't stop scrutinizing the facts.
(The idea is thus not to start with some paradigm at
the level of finished formalism.)

For example, an FSM situation (cf. Niklas' post) that could
be bridled by narrowing the error space with the help of
new language seems clearly better than trying to find the
cause by divide and conquer.


>> If Obj_1 and Obj_2 are objects, then I would like the language
>> to have syntax, say "(*)", for
>>
>>      Obj_1 (*) Obj_2
>>
>> which would *not* be a function call.
>
> Then these are not objects. The only thing you can do with objects is to
> use the operations of. This is called typing.

Let's say you can't think of any interpretation of

   Obj_1 (*) Obj_2

other than in terms of operations of the types of Obj_N.
Is this reason enough to say that other interpretations
are impossible? In particular, they could reflect the
intention of introducing (*).

(ow would any paradigm have been created if its creators would
have had to start from the paradigm?

__
(*) Objects are inevitably part of thinking when programming,
even before all OO-related notional strictures applied to
the word. Engineers would never arrive at anything new if they
just re-iterated learned procedures.


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

* Re: Things that OO programming lacks
  2014-11-17 15:17                                                                 ` G.B.
@ 2014-11-17 17:28                                                                   ` Dmitry A. Kazakov
  2014-11-17 18:23                                                                     ` G.B.
  2014-11-17 19:21                                                                     ` Shark8
  0 siblings, 2 replies; 241+ messages in thread
From: Dmitry A. Kazakov @ 2014-11-17 17:28 UTC (permalink / raw)


On Mon, 17 Nov 2014 16:17:59 +0100, G.B. wrote:

> Here is the situation:
> there always are questions about what the heck happened
> as a consequence of the execution of a program, e.g. failure.
> The questions are formulated in a language used by companies,
> by heads of departments, by customers, by lawyers etc. These
> need to be answered, and the answer will, at some stage,
> involve the programmer. A good PL will provide for answers
> with the help of dedicated source text. That's the idea.
> If you find that a truism, I wonder why nothing changes,
> but in any case, it won't stop scrutinizing the facts.

Because nothing can happen. No language can describe the program's meaning.
It is always up to the programmer to map program entities to the outer
world's meanings.

> For example, an FSM situation (cf. Niklas' post) that could
> be bridled by narrowing the error space with the help of
> new language seems clearly better than trying to find the
> cause by divide and conquer.

Why is it clear? I don't see it clear. FSM are proven to be extremely
complex to use, error-prone and unmaintainable. That is because states are
as uncomposable as events are. If you add new or remove old states you are
in deep trouble.

>>> If Obj_1 and Obj_2 are objects, then I would like the language
>>> to have syntax, say "(*)", for
>>>
>>>      Obj_1 (*) Obj_2
>>>
>>> which would *not* be a function call.
>>
>> Then these are not objects. The only thing you can do with objects is to
>> use the operations of. This is called typing.
> 
> Let's say you can't think of any interpretation of
> 
>    Obj_1 (*) Obj_2
> 
> other than in terms of operations of the types of Obj_N.

No, I cannot. For anybody the notation x*y means take x, take y, apply *,
get the result. This is the basic language structure of nouns bound by
verbs.

> Is this reason enough to say that other interpretations
> are impossible?

Like what?

> In particular, they could reflect the intention of introducing (*).

Why anybody liked to introduce (*)?

-- 
Regards,
Dmitry A. Kazakov
http://www.dmitry-kazakov.de

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

* Re: Things that OO programming lacks
  2014-11-17 14:29                                                                     ` Simon Wright
@ 2014-11-17 17:38                                                                       ` Dmitry A. Kazakov
  0 siblings, 0 replies; 241+ messages in thread
From: Dmitry A. Kazakov @ 2014-11-17 17:38 UTC (permalink / raw)


On Mon, 17 Nov 2014 14:29:29 +0000, Simon Wright wrote:

> "Dmitry A. Kazakov" <mailbox@dmitry-kazakov.de> writes:
> 
>> So even tasks considered trivial in other paradigms are hard problems
>> in the event-driven one.
> 
> And the reverse? Nothing is the perfect approach for all problems.

True. Some tasks are elegantly solved when represented as events. That does
not matter because the power of a paradigm lies in decomposition: can I
decompose my huge, ill-specified, ever changing problem into those tasks? 

IMO, only OO and procedural paradigms actually can.

Even when several paradigms are used in the same system (e.g. a relational
DB, or code generated from some model) the glue between components is
always procedural or OO.

-- 
Regards,
Dmitry A. Kazakov
http://www.dmitry-kazakov.de


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

* Re: Things that OO programming lacks
  2014-11-17 17:28                                                                   ` Dmitry A. Kazakov
@ 2014-11-17 18:23                                                                     ` G.B.
  2014-11-17 20:02                                                                       ` Georg Bauhaus
  2014-11-17 21:05                                                                       ` Dmitry A. Kazakov
  2014-11-17 19:21                                                                     ` Shark8
  1 sibling, 2 replies; 241+ messages in thread
From: G.B. @ 2014-11-17 18:23 UTC (permalink / raw)


On 17.11.14 18:28, Dmitry A. Kazakov wrote:

>  No language can describe the program's meaning.

Interestingly, we have a manual that does just that,
WRT some frame of reference, and WRT to a meaning
of "meaning", and even using occasional hints at the
world ("environment", "file", ...).

Also, English can help predicting or explaining what an Ada program
means. Programmers and authors doing this will refer to the source
text, I think? It seems fair, too, to say that "Volatile" conveys
a good idea of what will happen to a storage cell. This
means something.

> It is always up to the programmer to map program entities to the outer
> world's meanings.

<academic?>A change of program text, back and fro, is effective
in creating an outer world that is measurably different each
time, accordingly. So, yes, the programmer needs to be able
to match source entities to effects in the outer world,
and describe the relationship.</academic?>

>> For example, an FSM situation (cf. Niklas' post) that could
>> be bridled by narrowing the error space with the help of
>> new language seems clearly better than trying to find the
>> cause by divide and conquer.
>
> Why is it clear? I don't see it clear. FSM are proven to be extremely
> complex to use, error-prone and unmaintainable. That is because states are
> as uncomposable as events are. If you add new or remove old states you are
> in deep trouble.

Assuming there is a way to pick important states,
e.g. measured by the fraction of customers affected.
Assuming further that they are textually connected
alongside the FSM definition.
Then, if this additional information helps isolate effects
affecting more customers, e.g. via hooks, the rest can go into
the "others" clauses, or be otherwise listed as not important.
That is, importance of states is not part of the definition of
the FSM, but it results from the definition of the situation
that warrants payed programming in the first place and therefore
should have an influence on the program text.


>> Let's say you can't think of any interpretation of
>>
>>     Obj_1 (*) Obj_2
>>
>> other than in terms of operations of the types of Obj_N.
>
> No, I cannot. For anybody the notation x*y means take x, take y, apply *,
> get the result.

Say, "(*)" stands for →. I don't think that many Ada programmers
will then have an idea of how to "apply →" to those objects,
or indeed, how to interpret "x→y". The arrow needs introduction,
and we are free to make it stand for what we need it to stand for.

Example:

"Obj_1 exists while Obj_2 exists".

If Obj_1 and Obj_2 are not, and cannot be in the same dynamic scope
because of conflicting requirements, then this states their
relationship explicitly. Yes, one could program some emulation
of a co-existence check, such as a registry of objects. But this
only works around the problem (of not having expressive language).

(I'm expecting at least one occurrence of "Bad design!" now,
but I'm curious about how an existing paradigm, or indeed
a pattern, will resolve those conflicting requirements WRT scopes. ;-)

>> In particular, they could reflect the intention of introducing (*).
>
> Why anybody liked to introduce (*)?

The "(*)" can mean a way to formally describe relationships of entities
named in the program and considered important, if by comparison
the relationships are only implicit in the current programming
language.



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

* Re: Things that OO programming lacks
  2014-11-17 17:28                                                                   ` Dmitry A. Kazakov
  2014-11-17 18:23                                                                     ` G.B.
@ 2014-11-17 19:21                                                                     ` Shark8
  2014-11-17 20:44                                                                       ` Dmitry A. Kazakov
  1 sibling, 1 reply; 241+ messages in thread
From: Shark8 @ 2014-11-17 19:21 UTC (permalink / raw)


On 17-Nov-14 10:28, Dmitry A. Kazakov wrote:
> FSM are proven to be extremely
> complex to use, error-prone and unmaintainable. That is because states are
> as uncomposable as events are. If you add new or remove old states you are
> in deep trouble.

Not really; in Ada we'd just say:

Type Event is ( 'a', 'b', 'c', 'd' );
Type State is ( Start, middle_1, middle_2, Stop );

Type Transition_Table is array (Event, State) of State;

Type FSM(<>) is private;
Function  Create( Transitions : Transition_Table ) return FSM;
Procedure Do_Event( State_Machine : in out FSM; Action : Event );

private
   Type FSM(Transitions : not null access Transition_Table) is record
     Current : State:= Start;
   end record;

-- in the Body ...

Function Create( Transitions : Transition_Table ) return FSM is
( Transitions => New Transition_Table'(Transitions), others => <> );

Procedure Do_Event( State_Machine : in out FSM; Action : Event ) is
begin
   case Action is
    when others => null; -- Attach particular/special actions here.
                         -- Also allow Ada to do case-coverage where
                         -- possible.
   end case;

   State_Machine.Current:=
      State_Machine.Transitions(Action, State_Machine.Current);
end Do_Event;





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

* Re: Things that OO programming lacks
  2014-11-17 18:23                                                                     ` G.B.
@ 2014-11-17 20:02                                                                       ` Georg Bauhaus
  2014-11-17 21:05                                                                       ` Dmitry A. Kazakov
  1 sibling, 0 replies; 241+ messages in thread
From: Georg Bauhaus @ 2014-11-17 20:02 UTC (permalink / raw)


On 17.11.14 19:23, G.B. wrote:
> If Obj_1 and Obj_2 are not, and cannot be in the same dynamic scope

This should have been:

If Obj_1 and Obj_2 are not, and cannot be declared in the same place /
depend on the same master ...

Although existence in two different tasks might be interesting.
Sorry.

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

* Re: Things that OO programming lacks
  2014-11-17 19:21                                                                     ` Shark8
@ 2014-11-17 20:44                                                                       ` Dmitry A. Kazakov
  0 siblings, 0 replies; 241+ messages in thread
From: Dmitry A. Kazakov @ 2014-11-17 20:44 UTC (permalink / raw)


On Mon, 17 Nov 2014 12:21:42 -0700, Shark8 wrote:

> On 17-Nov-14 10:28, Dmitry A. Kazakov wrote:
>> FSM are proven to be extremely
>> complex to use, error-prone and unmaintainable. That is because states are
>> as uncomposable as events are. If you add new or remove old states you are
>> in deep trouble.
> 
> Not really; in Ada we'd just say:
> 
> Type Event is ( 'a', 'b', 'c', 'd' );
> Type State is ( Start, middle_1, middle_2, Stop );
> 
> Type Transition_Table is array (Event, State) of State;
> 
> Type FSM(<>) is private;
> Function  Create( Transitions : Transition_Table ) return FSM;
> Procedure Do_Event( State_Machine : in out FSM; Action : Event );
> 
> private
>    Type FSM(Transitions : not null access Transition_Table) is record
>      Current : State:= Start;
>    end record;
> 
> -- in the Body ...
> 
> Function Create( Transitions : Transition_Table ) return FSM is
> ( Transitions => New Transition_Table'(Transitions), others => <> );
> 
> Procedure Do_Event( State_Machine : in out FSM; Action : Event ) is
> begin
>    case Action is
>     when others => null; -- Attach particular/special actions here.
>                          -- Also allow Ada to do case-coverage where
>                          -- possible.
>    end case;
> 
>    State_Machine.Current:=
>       State_Machine.Transitions(Action, State_Machine.Current);
> end Do_Event;

In Ada you can implement Post-Turing machine in few lines. Should we run to
redesign everything in the tape language?

However my personal favorite would be Brainfuck, it should be 100-200 lines
in Ada. Have fun!

-- 
Regards,
Dmitry A. Kazakov
http://www.dmitry-kazakov.de

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

* Re: Things that OO programming lacks
  2014-11-17 18:23                                                                     ` G.B.
  2014-11-17 20:02                                                                       ` Georg Bauhaus
@ 2014-11-17 21:05                                                                       ` Dmitry A. Kazakov
  2014-11-18 10:14                                                                         ` Georg Bauhaus
  1 sibling, 1 reply; 241+ messages in thread
From: Dmitry A. Kazakov @ 2014-11-17 21:05 UTC (permalink / raw)


On Mon, 17 Nov 2014 19:23:10 +0100, G.B. wrote:

> On 17.11.14 18:28, Dmitry A. Kazakov wrote:
> 
>>  No language can describe the program's meaning.
> 
> Interestingly, we have a manual that does just that,
> WRT some frame of reference, and WRT to a meaning
> of "meaning", and even using occasional hints at the
> world ("environment", "file", ...).

Nope. RM describes language semantics in terms of computational
environment. This has nothing to do with the program meaning. Meaning /=
behavior.

> Also, English can help predicting or explaining what an Ada program
> means. Programmers and authors doing this will refer to the source
> text, I think? It seems fair, too, to say that "Volatile" conveys
> a good idea of what will happen to a storage cell. This
> means something.

It means exactly nothing in the problem space [without the program
designer].

>>> For example, an FSM situation (cf. Niklas' post) that could
>>> be bridled by narrowing the error space with the help of
>>> new language seems clearly better than trying to find the
>>> cause by divide and conquer.
>>
>> Why is it clear? I don't see it clear. FSM are proven to be extremely
>> complex to use, error-prone and unmaintainable. That is because states are
>> as uncomposable as events are. If you add new or remove old states you are
>> in deep trouble.
> 
> Assuming there is a way to pick important states,
> e.g. measured by the fraction of customers affected.
> Assuming further that they are textually connected
> alongside the FSM definition.
> Then, if this additional information helps isolate effects
> affecting more customers, e.g. via hooks, the rest can go into
> the "others" clauses, or be otherwise listed as not important.
> That is, importance of states is not part of the definition of
> the FSM, but it results from the definition of the situation
> that warrants payed programming in the first place and therefore
> should have an influence on the program text.

Assuming there is a way to pick important sequences of memory bits starting
at the address 0, measured by affected customers. [I love to see how memory
dumps would affect our customers!] They are certainly connected to the
machine hexadecimal code. Then continue the absurdity you wrote above
further...

>>> Let's say you can't think of any interpretation of
>>>
>>>     Obj_1 (*) Obj_2
>>>
>>> other than in terms of operations of the types of Obj_N.
>>
>> No, I cannot. For anybody the notation x*y means take x, take y, apply *,
>> get the result.
> 
> Say, "(*)" stands for →. I don't think that many Ada programmers
> will then have an idea of how to "apply →" to those objects,
> or indeed, how to interpret "x→y". The arrow needs introduction,
> and we are free to make it stand for what we need it to stand for.
> 
> Example:
> 
> "Obj_1 exists while Obj_2 exists".

In Ada *every* object exists when named! Try to write an Ada program where
you could name a non-existing object.

> (I'm expecting at least one occurrence of "Bad design!" now,
> but I'm curious about how an existing paradigm, or indeed
> a pattern, will resolve those conflicting requirements WRT scopes. ;-)

It is no design.

[In 60's relationships between names and objects was hotly debated. I
vaguely remember some lengthy and quite stupid passages on this subject in
ancient books I read thirty or so years ago. Already then in late 80's it
was nothing but eyebrows raising.]

>>> In particular, they could reflect the intention of introducing (*).
>>
>> Why anybody liked to introduce (*)?
> 
> The "(*)" can mean a way to formally describe relationships of entities
> named in the program and considered important, if by comparison
> the relationships are only implicit in the current programming
> language.

Relationship between *objects*, if computable, is a Boolean-valued
*operation*:

   xRy -> Boolean

If not computable or not objects, what are you talking about?

-- 
Regards,
Dmitry A. Kazakov
http://www.dmitry-kazakov.de


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

* Re: What exactly is the licensing situation with GNAT?
  2014-11-15  9:29                                                   ` Dmitry A. Kazakov
  2014-11-15  9:40                                                     ` Pascal Obry
  2014-11-15 11:18                                                     ` Tero Koskinen
@ 2014-11-18  0:28                                                     ` Randy Brukardt
  2014-11-18  9:20                                                       ` Dmitry A. Kazakov
  2 siblings, 1 reply; 241+ messages in thread
From: Randy Brukardt @ 2014-11-18  0:28 UTC (permalink / raw)


"Dmitry A. Kazakov" <mailbox@dmitry-kazakov.de> wrote in message 
news:1se4bvo6gaqft.16cfjaiketlz0$.dlg@40tude.net...
> On Fri, 14 Nov 2014 16:29:59 -0600, Randy Brukardt wrote:
>
>> I've been using Claw.Sockets for so long that I don't know what the
>> underlying implementation is. So I don't know what "select" is used for 
>> or
>> whether it's implemented in NC_Sockets. Claw.Sockets has a server type
>> that's used for implemented servers (like web and mail servers).
>
> Select() is essential for heavy duty and light weight servers as it allows
> one task to handle multiple sockets without blocking. AdaSockets, the only
> alternative to GNAT.Sockets I know, does not support select.
>
> (I don't know if AWS uses blocking sockets for its server or 
> socket-select)

Incoming or outgoing? Since Janus/Ada only uses one thread per Ada program, 
no server would work at all if everything was blocking. I know the server 
type works well distributing accesses to different Ada tasks (even on 
Janus/Ada, where everything is done by one thread).

OTOH, we implemented non-blocking sockets for outbound traffic in Claw 
sockets as well. I implemented a version of the web server using those 
sockets, and it turned out the performance (at least on Windows 2K/XP) was 
something like 10 times slower using non-blocking sockets compared to 
busy-waiting the blocking sockets. Apparently, Windows launches threads for 
the non-blocking socket operations, which is SLOW. I made the busy-waiting 
much smarter in the web server (using a increasing wait for each iteration) 
and got much better overall performance than either alternative.

                                                   Randy.






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

* Re: What exactly is the licensing situation with GNAT?
  2014-11-15  9:18                                                   ` Dmitry A. Kazakov
@ 2014-11-18  0:37                                                     ` Randy Brukardt
  2014-11-18  9:04                                                       ` Dmitry A. Kazakov
  0 siblings, 1 reply; 241+ messages in thread
From: Randy Brukardt @ 2014-11-18  0:37 UTC (permalink / raw)


"Dmitry A. Kazakov" <mailbox@dmitry-kazakov.de> wrote in message 
news:dilqwcbqc502$.l6p0xx7myoiu.dlg@40tude.net...
> On Fri, 14 Nov 2014 16:24:14 -0600, Randy Brukardt wrote:
>
>> OTOH, I don't see why this would be any different than access types
>> vis-a-vis interfacing with C and the like. The type would have a
>> representation (likely one similar to access-to-subprogram), and that's 
>> the
>> problem for 'Unrestricted_Access - it needs a different representation to
>> support 'Unrestricted_Access from 'Access. And the representation needed 
>> for
>> 'Unrestricted_Access is incompatible with C (other than on GCC, which is
>> unusual). If you simply allowed any subprogram to match a subprogram 
>> type,
>> you couldn't allow interface to C. Or you'd have to have an accessibility
>> check on the use only for interface to C. Or some other messy rule - 
>> would
>> not gain anything.
>
> Except that whatever checks needed they will not include pointer checks. 
> If
> a nested subprogram cannot be passed to C, then it cannot. But the reason
> shall not be accessibility pointer check. The only reason allowed is
> "cannot implement pragma Convention".

Huh? The problem is that (some) nested subprograms cannot be passed to C. 
And allowing them to be passed in Ada is unconsonably expensive (at the very 
least, you'll need a mechanism to say that you don't want to pay for that 
overhead). What does pragma convention have to do with it?

                                      Randy.


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

* Re: 'Image (was: What exactly is the licensing situation with GNAT?)
  2014-11-15 19:58                                             ` 'Image (was: What exactly is the licensing situation with GNAT?) Georg Bauhaus
@ 2014-11-18  0:39                                               ` Randy Brukardt
  2014-11-18  8:20                                                 ` 'Image Björn Lundin
  2014-11-19 13:46                                               ` 'Image (was: What exactly is the licensing situation with GNAT?) Brian Drummond
  1 sibling, 1 reply; 241+ messages in thread
From: Randy Brukardt @ 2014-11-18  0:39 UTC (permalink / raw)


"Georg Bauhaus" <bauhaus@futureapps.invalid> wrote in message 
news:m48b93$ke0$1@dont-email.me...
> On 15.11.14 18:32, Florian Weimer wrote:
...
> Will 'Image be user definable?

No, not in the Corrigendum (at least). We spent some time looking at ideas 
for that, but nothing practical has appeared. (We would want any 
user-definable 'Image to work like streams, so that there would be automatic 
composition for composite types.)

                                         Randy.




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

* Re: community-based compiler (was Re: What exactly is the licensing situation with GNAT?)
  2014-11-15  1:07                                                 ` Luke A. Guest
@ 2014-11-18  0:52                                                   ` Randy Brukardt
  2014-11-18  3:06                                                     ` Luke A. Guest
  0 siblings, 1 reply; 241+ messages in thread
From: Randy Brukardt @ 2014-11-18  0:52 UTC (permalink / raw)


"Luke A. Guest" <laguest@archeia.com> wrote in message 
news:464563264437706207.500344laguest-archeia.com@nntp.aioe.org...
> Shark8 <OneWingedShark@gmail.com> wrote:
>> On 14-Nov-14 14:07, Luke A. Guest wrote:
>>> Jesus! That would be hell. A compiler without dynamic memory? Really? No
>>> thanks.
>>
>> Ah, right; I'd forgotten about that restriction -- I was thinking more
>> along the lines of the prover-/verifier-tools -- though aren't there
>> large chunks where you don't need dynamic memory?
>
> Not really no. An entire compiler pretty much uses the heap exclusively,
> you'd be hard pressed to build a compiler using ore allocated memory or
> just static amounts in general.

That's not really true with Janus/Ada, as many things (types, compilation 
units, subprograms) are stored in static tables. That's a left-over from the 
early MS-DOS days, where those tables could be paged to disk or stored in 
"extended" memory rather than taking up limited main memory space. I've been 
slowly removing the paging code (it's just a complication that introduces 
bugs), but the static tables remain for the most part. (Some have become 
expandable by allocating them en-mass from the heap.)

There's still some major heap use for managing expression trees and the 
symbol table, but there's a lot that doesn't use it.

                                                 Randy.



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

* Re: community-based compiler (was Re: What exactly is the licensing situation with GNAT?)
  2014-11-18  0:52                                                   ` Randy Brukardt
@ 2014-11-18  3:06                                                     ` Luke A. Guest
  2014-11-18  9:25                                                       ` Georg Bauhaus
  2014-11-18 22:33                                                       ` Randy Brukardt
  0 siblings, 2 replies; 241+ messages in thread
From: Luke A. Guest @ 2014-11-18  3:06 UTC (permalink / raw)


"Randy Brukardt" <randy@rrsoftware.com> wrote:

> That's not really true with Janus/Ada, as many things (types, compilation 
> units, subprograms) are stored in static tables. That's a left-over from the 
> early MS-DOS days, where those tables could be paged to disk or stored in 
> "extended" memory rather than taking up limited main memory space. I've been 
> slowly removing the paging code (it's just a complication that introduces 
> bugs), but the static tables remain for the most part. (Some have become 
> expandable by allocating them en-mass from the heap.)
> 
> There's still some major heap use for managing expression trees and the 
> symbol table, but there's a lot that doesn't use it.

Given the various input sizes of source you cannot statically define the
runtime data.

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

* Re: 'Image
  2014-11-18  0:39                                               ` Randy Brukardt
@ 2014-11-18  8:20                                                 ` Björn Lundin
  2014-11-18 22:29                                                   ` 'Image Randy Brukardt
  0 siblings, 1 reply; 241+ messages in thread
From: Björn Lundin @ 2014-11-18  8:20 UTC (permalink / raw)


On 2014-11-18 01:39, Randy Brukardt wrote:
> "Georg Bauhaus" <bauhaus@futureapps.invalid> wrote in message 
> news:m48b93$ke0$1@dont-email.me...
>> On 15.11.14 18:32, Florian Weimer wrote:
> ...
>> Will 'Image be user definable?
> 
> No, not in the Corrigendum (at least).

Is it conceptually the same as T'Image(varible) where T is a scalar type
? That is, it will not apply to records ?

--
Björn


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

* Re: What exactly is the licensing situation with GNAT?
  2014-11-18  0:37                                                     ` Randy Brukardt
@ 2014-11-18  9:04                                                       ` Dmitry A. Kazakov
  0 siblings, 0 replies; 241+ messages in thread
From: Dmitry A. Kazakov @ 2014-11-18  9:04 UTC (permalink / raw)


On Mon, 17 Nov 2014 18:37:28 -0600, Randy Brukardt wrote:

> "Dmitry A. Kazakov" <mailbox@dmitry-kazakov.de> wrote in message 
> news:dilqwcbqc502$.l6p0xx7myoiu.dlg@40tude.net...
>> On Fri, 14 Nov 2014 16:24:14 -0600, Randy Brukardt wrote:
>>
>>> OTOH, I don't see why this would be any different than access types
>>> vis-a-vis interfacing with C and the like. The type would have a
>>> representation (likely one similar to access-to-subprogram), and that's 
>>> the
>>> problem for 'Unrestricted_Access - it needs a different representation to
>>> support 'Unrestricted_Access from 'Access. And the representation needed 
>>> for
>>> 'Unrestricted_Access is incompatible with C (other than on GCC, which is
>>> unusual). If you simply allowed any subprogram to match a subprogram 
>>> type,
>>> you couldn't allow interface to C. Or you'd have to have an accessibility
>>> check on the use only for interface to C. Or some other messy rule - 
>>> would
>>> not gain anything.
>>
>> Except that whatever checks needed they will not include pointer checks. If
>> a nested subprogram cannot be passed to C, then it cannot. But the reason
>> shall not be accessibility pointer check. The only reason allowed is
>> "cannot implement pragma Convention".
> 
> Huh? The problem is that (some) nested subprograms cannot be passed to C. 
> And allowing them to be passed in Ada is unconsonably expensive (at the very 
> least, you'll need a mechanism to say that you don't want to pay for that 
> overhead). What does pragma convention have to do with it?

If you want to reject a subprogram being passed to C then that should be
because of pragma Convention.

Passing a subprogram to Ada should be always possible. If you wanted, for
whatever reason, disable certain cases that would be still possible to do
using type or subtype errors.

My argument is that the cases where you might want to prohibit are not
exactly the cases where accessibility checks fail, they are much fewer or
non-existent.

-- 
Regards,
Dmitry A. Kazakov
http://www.dmitry-kazakov.de


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

* Re: What exactly is the licensing situation with GNAT?
  2014-11-18  0:28                                                     ` Randy Brukardt
@ 2014-11-18  9:20                                                       ` Dmitry A. Kazakov
  2014-11-18 22:25                                                         ` Randy Brukardt
  0 siblings, 1 reply; 241+ messages in thread
From: Dmitry A. Kazakov @ 2014-11-18  9:20 UTC (permalink / raw)


On Mon, 17 Nov 2014 18:28:42 -0600, Randy Brukardt wrote:

> "Dmitry A. Kazakov" <mailbox@dmitry-kazakov.de> wrote in message 
> news:1se4bvo6gaqft.16cfjaiketlz0$.dlg@40tude.net...
>> On Fri, 14 Nov 2014 16:29:59 -0600, Randy Brukardt wrote:
>>
>>> I've been using Claw.Sockets for so long that I don't know what the
>>> underlying implementation is. So I don't know what "select" is used for 
>>> or
>>> whether it's implemented in NC_Sockets. Claw.Sockets has a server type
>>> that's used for implemented servers (like web and mail servers).
>>
>> Select() is essential for heavy duty and light weight servers as it allows
>> one task to handle multiple sockets without blocking. AdaSockets, the only
>> alternative to GNAT.Sockets I know, does not support select.
>>
>> (I don't know if AWS uses blocking sockets for its server or 
>> socket-select)
> 
> Incoming or outgoing?

Both and connect, disconnect as well.

> Since Janus/Ada only uses one thread per Ada program, 
> no server would work at all if everything was blocking. I know the server 
> type works well distributing accesses to different Ada tasks (even on 
> Janus/Ada, where everything is done by one thread).
> 
> OTOH, we implemented non-blocking sockets for outbound traffic in Claw 
> sockets as well. I implemented a version of the web server using those 
> sockets, and it turned out the performance (at least on Windows 2K/XP) was 
> something like 10 times slower using non-blocking sockets compared to 
> busy-waiting the blocking sockets.

Depends on how you measured it. Latencies may increase for obvious reason
of context switching. The rest should have no influence.

> Apparently, Windows launches threads for 
> the non-blocking socket operations, which is SLOW.

No, that cannot be. We are using non-blocking sockets massively e.g. tens
of thousands, needed to fiddle system settings to allow so many. It
certainly does not start threads because Windows cannot have so many.

> I made the busy-waiting 
> much smarter in the web server (using a increasing wait for each iteration) 
> and got much better overall performance than either alternative.

Did you use this:

http://msdn.microsoft.com/en-us/library/windows/desktop/ms741576%28v=vs.85%29.aspx

This a simpler alternative with more control over the policies as compared
to the traditional select:

http://msdn.microsoft.com/en-us/library/windows/desktop/ms740141%28v=vs.85%29.aspx

-- 
Regards,
Dmitry A. Kazakov
http://www.dmitry-kazakov.de

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

* Re: community-based compiler (was Re: What exactly is the licensing situation with GNAT?)
  2014-11-18  3:06                                                     ` Luke A. Guest
@ 2014-11-18  9:25                                                       ` Georg Bauhaus
  2014-11-18 22:33                                                       ` Randy Brukardt
  1 sibling, 0 replies; 241+ messages in thread
From: Georg Bauhaus @ 2014-11-18  9:25 UTC (permalink / raw)


On 18.11.14 04:06, Luke A. Guest wrote:
> Given the various input sizes of source you cannot statically define the
> runtime data.

Computer memory is statically sized, so in a sense a compiler
can never adapt to all input sizes, if that's good enough for
an excuse.  SNOBOL-4 (its incarnation CSNOBOL4) uses a switch
for increasing "dynamic storage" for program code and data.

Generalizing the reverse, a statically sized storage can prevent the
compiler from using memory swapped to disk, and then terminate
after a very slow run.  Which is a feature of gcc when it creates
larger data objects that it finds declared in the source text.

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

* Re: Things that OO programming lacks
  2014-11-17 21:05                                                                       ` Dmitry A. Kazakov
@ 2014-11-18 10:14                                                                         ` Georg Bauhaus
  2014-11-18 13:42                                                                           ` Dmitry A. Kazakov
  0 siblings, 1 reply; 241+ messages in thread
From: Georg Bauhaus @ 2014-11-18 10:14 UTC (permalink / raw)


On 17.11.14 22:05, Dmitry A. Kazakov wrote:

> It means exactly nothing in the problem space [without the program
> designer].

It [the source text] means a lot with the program designer present,
also to a reader. Which is the text's important use in the programming
situations described, which is also the reason source text should be
expressive.

>> Example:
>>
>> "Obj_1 exists while Obj_2 exists".
>
> In Ada *every* object exists when named! Try to write an Ada program where
> you could name a non-existing object.

Sure. And even unnamed objects can be known to likely co-exist. The statement

   X := S'(...) + T'(...);

has two (Ada-wise) unnamed objects. But just names, somewhere in a program,
plus things like calls using the names are not expressive enough for some
quick answers that programmers need to give by referring to the source text.
Which was the point. Sometimes there are no dedicated designators for things
like these properties of the program. (As there are, approximately,
for learning about the order in time of some intended effects from textual
order of accept statements.)

> Relationship between *objects*, if computable, is a Boolean-valued
> *operation*:
>
>     xRy -> Boolean

Certainly every computation is Boolean valued operations if you reduce it
to logic. But since for the reasons you named (when mentioning Post-Turing)
we shy way from Boolean valued operations for everything, why not invent
something that expresses what programmers need to known in order to make
those answers?

In particular, I am free to work with the assumption that a relationship
is not just a binary relation, since the latter is determined, invisibly,
by just the objects. Somehow. Can every relationship be expressed *well*
by only producing enough dummy objects to help determine the relationship
of other objects? Is this expressive, or does it add unnecessary complexity
to program design, and to program analysis?

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

* Re: Things that OO programming lacks
  2014-11-18 10:14                                                                         ` Georg Bauhaus
@ 2014-11-18 13:42                                                                           ` Dmitry A. Kazakov
  2014-11-18 18:50                                                                             ` G.B.
  0 siblings, 1 reply; 241+ messages in thread
From: Dmitry A. Kazakov @ 2014-11-18 13:42 UTC (permalink / raw)


On Tue, 18 Nov 2014 11:14:20 +0100, Georg Bauhaus wrote:

> On 17.11.14 22:05, Dmitry A. Kazakov wrote:
> 
>> It means exactly nothing in the problem space [without the program
>> designer].
> 
> It [the source text] means a lot with the program designer present,
> also to a reader. Which is the text's important use in the programming
> situations described, which is also the reason source text should be
> expressive.

Still as a *program* it means nothing, but bit shuffling. Any other meaning
is in the programmer and customer heads.

>>> Example:
>>>
>>> "Obj_1 exists while Obj_2 exists".
>>
>> In Ada *every* object exists when named! Try to write an Ada program where
>> you could name a non-existing object.
> 
> Sure. And even unnamed objects can be known to likely co-exist. The statement
> 
>    X := S'(...) + T'(...);
> 
> has two (Ada-wise) unnamed objects. But just names, somewhere in a program,
> plus things like calls using the names are not expressive enough for some
> quick answers that programmers need to give by referring to the source text.

Name them better.

> Which was the point. Sometimes there are no dedicated designators for things
> like these properties of the program.

Which is mere bad design. Important things must have corresponding language
entities. E.g. objects, types, operations, modules etc. You must talk about
them, in the language.

Your point was that object, types, operations, modules might be not enough
to maintain this mapping. Which would constitute a new paradigm. Yet, you
failed to present anything beyond objects, types, operations, modules.

> (As there are, approximately,
> for learning about the order in time of some intended effects from textual
> order of accept statements.)

That is not a language term, so far. And unlikely it would.

In order to spell constraints there are correctness provers. Such
constraints (like preconditions, post-conditions, invariants) are expressed
in a meta-language of the prover, e.g. in SPARK. This is not a new
paradigm. You could use a prover in most of paradigms with different
chances of success. The best it works with OO, because OO adds a lot of
things at which you could hang your constraints on.

And, importantly, you cannot fuse prover with the compiler. It is
inherently inconsistent. Both language must be kept apart.
 
>> Relationship between *objects*, if computable, is a Boolean-valued
>> *operation*:
>>
>>     xRy -> Boolean
> 
> Certainly every computation is Boolean valued operations if you reduce it
> to logic.

Relation is a logical term.

> But since for the reasons you named (when mentioning Post-Turing)
> we shy way from Boolean valued operations for everything, why not invent
> something that expresses what programmers need to known in order to make
> those answers?

To which questions? A relation between object is a part of the program
behavior expressed in the form of an operation. All answers the programmer
wants is in the implementation of the operation. E.g.

   function ">" (Left, Right : List_Element) return Boolean;

Ada already has everything needed to have this.

> In particular, I am free to work with the assumption that a relationship
> is not just a binary relation, since the latter is determined, invisibly,
> by just the objects. Somehow. Can every relationship be expressed *well*
> by only producing enough dummy objects to help determine the relationship
> of other objects? Is this expressive, or does it add unnecessary complexity
> to program design, and to program analysis?

I suppose you are confusing relationships between objects with
relationships between types and correctness statements.

-- 
Regards,
Dmitry A. Kazakov
http://www.dmitry-kazakov.de


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

* Re: Things that OO programming lacks
  2014-11-18 13:42                                                                           ` Dmitry A. Kazakov
@ 2014-11-18 18:50                                                                             ` G.B.
  2014-11-18 19:18                                                                               ` Dmitry A. Kazakov
  0 siblings, 1 reply; 241+ messages in thread
From: G.B. @ 2014-11-18 18:50 UTC (permalink / raw)


On 18.11.14 14:42, Dmitry A. Kazakov wrote:
> ... meaning is in the programmer and customer heads.

Right, and meaning follows communication using languages like
English and also programming formalisms.

> Name them better.

It's not just names, but also anything important in the programming
situation. Co-existence of objects, in Ada and other languages,
is not expressible well insofar as they have no dedicated language
entities for co-existence in general.

> Important things must have corresponding language
> entities. E.g. objects, types, operations, modules etc. You must talk about
> them, in the language.

Precisely my point.

> Your point was that object, types, operations, modules might be not enough
> to maintain this mapping. Which would constitute a new paradigm. Yet, you
> failed to present anything beyond objects, types, operations, modules.

That was your judgment, while my perspective is above a
formalism that confines your meaning, I think. And here you say it:

> That is not a language term, so far. And unlikely it would.

But OO is still lacking such terms, right? One way to find
something is by extensional definition, starting at the level of
a suitable metalanguage, and experimenting. Starting from a new
paradigm would be quite a feat.

>> Certainly every computation is Boolean valued operations if you reduce it
>> to logic.
>
> Relation is a logical term.

Which is why I preferred relationship, which is more open
to new interpretation.

>> But since for the reasons you named (when mentioning Post-Turing)
>> we shy way from Boolean valued operations for everything, why not invent
>> something that expresses what programmers need to known in order to make
>> those answers?
>
> To which questions?

To those listed so far. Variations of things, tiny or not:

"Why did the effect of Obj_1's doings occur before those of Obj_2's?
  Are they not ordered here?
  Does Obj_4 respond to Event_B if user/input has arranged for Obj_2
  to become alive?"

(Some say, I think, that event aware object oriented systems
are (worth) a new paradigm waiting to be formalized for the
very reason that those FSMs and global variables are nasty,
be they dressed as OO or not.)

> I suppose you are confusing relationships between objects with
> relationships between types and correctness statements.

I don't think that time is involved in a relationship between
types in general, or can I express that relationship in Ada OO types?

There are cases where in Ada I can approximate order of types
in time, so to speak, thanks to nesting:

   procedure Stage_0 is
      type T is ...;
   begin ...
   end Stage_0;

   procedure Stage_1 is
      type T is ...;
   begin ...
   end Stage_1;
begin
   Stage_0;
   Stage_1;

Due to the order of calls, it is now fairly certain that objects
of type Stage_0.T all exist and "cease to exist" before any object
of type Stage_1.T starts to exist.
Is this conclusion(!) perfection of expressiveness already?
I don't think so.


I suppose I'm thinking merely in term of objects, not just OO-ish,
but just objects that have identity, and any property, shared or
emerging, that is derived from the formal properties of the objects,
the program, as well as from the interpretation of (non-OO-)objects
discussed by the people involved. So that the model developed
during discussion can adequately be turned into program text, where
adequacy requires modes of expression that aren't in the language yet.

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

* Re: Things that OO programming lacks
  2014-11-18 18:50                                                                             ` G.B.
@ 2014-11-18 19:18                                                                               ` Dmitry A. Kazakov
  0 siblings, 0 replies; 241+ messages in thread
From: Dmitry A. Kazakov @ 2014-11-18 19:18 UTC (permalink / raw)


On Tue, 18 Nov 2014 19:50:23 +0100, G.B. wrote:

> On 18.11.14 14:42, Dmitry A. Kazakov wrote:
>> That is not a language term, so far. And unlikely it would.
> 
> But OO is still lacking such terms, right?

No. You didn't presented any. If you did, you should also show why it would
be impossible or difficult to express the thing as an object, operation
etc.

>> Relation is a logical term.
> 
> Which is why I preferred relationship, which is more open
> to new interpretation.

I don't see which relationships between specifically objects were useful
while incomputable. Some relationships are non-terms on purpose, some are
computable but undesirable (e.g. Unchecked_Conversion stuff). So you should
also show usefulness and preservation of abstraction.

>>> But since for the reasons you named (when mentioning Post-Turing)
>>> we shy way from Boolean valued operations for everything, why not invent
>>> something that expresses what programmers need to known in order to make
>>> those answers?
>>
>> To which questions?
> 
> To those listed so far. Variations of things, tiny or not:
> 
> "Why did the effect of Obj_1's doings occur before those of Obj_2's?

What is effect of an object? It is breaking abstraction at least. All
effect of an object is in its state. That is the fundamental principle of
OO decomposition.

> (Some say, I think, that event aware object oriented systems
> are (worth) a new paradigm waiting to be formalized for the
> very reason that those FSMs and global variables are nasty,
> be they dressed as OO or not.)

Why event is not a primitive operation or not an object?

>> I suppose you are confusing relationships between objects with
>> relationships between types and correctness statements.
> 
> I don't think that time is involved in a relationship between
> types in general, or can I express that relationship in Ada OO types?

Why should you? Time aspects are almost never functional and thus do not
belong to types.

> There are cases where in Ada I can approximate order of types
> in time, so to speak, thanks to nesting:
> 
>    procedure Stage_0 is
>       type T is ...;
>    begin ...
>    end Stage_0;
> 
>    procedure Stage_1 is
>       type T is ...;
>    begin ...
>    end Stage_1;
> begin
>    Stage_0;
>    Stage_1;
> 
> Due to the order of calls, it is now fairly certain that objects
> of type Stage_0.T all exist and "cease to exist" before any object
> of type Stage_1.T starts to exist.
> Is this conclusion(!) perfection of expressiveness already?

I see. You are confusing correctness with the language. In procedural and
OO decomposition when anybody chooses to factor out two procedures like
Stage_0 and Stage_1 these are designed independent. This is again a
fundamental design principle of minimal coupling.

If the client of these entities, carefully observe, this is a third party,
needs to call them in a certain order, that must follow from the
pre-conditions and post-conditions of these procedures. This is what makes

   Stage_1
   Stage_0

incorrect and

   Stage_0
   Stage_1

correct. Under other circumstances the conditions might evaluate
differently making other orders correct. If you don't like this you should
use different decomposition, not procedural or OO. Which is the point. The
paradigm goes first.

> I suppose I'm thinking merely in term of objects, not just OO-ish,
> but just objects that have identity, and any property, shared or
> emerging, that is derived from the formal properties of the objects,
> the program, as well as from the interpretation of (non-OO-)objects
> discussed by the people involved.

No idea what this means.

-- 
Regards,
Dmitry A. Kazakov
http://www.dmitry-kazakov.de

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

* Re: What exactly is the licensing situation with GNAT?
  2014-11-18  9:20                                                       ` Dmitry A. Kazakov
@ 2014-11-18 22:25                                                         ` Randy Brukardt
  2014-11-19  9:10                                                           ` Dmitry A. Kazakov
  0 siblings, 1 reply; 241+ messages in thread
From: Randy Brukardt @ 2014-11-18 22:25 UTC (permalink / raw)


"Dmitry A. Kazakov" <mailbox@dmitry-kazakov.de> wrote in message 
news:13efsbp4ynti1.1qsb6buqa4a60.dlg@40tude.net...
> On Mon, 17 Nov 2014 18:28:42 -0600, Randy Brukardt wrote:
...
>> Since Janus/Ada only uses one thread per Ada program,
>> no server would work at all if everything was blocking. I know the server
>> type works well distributing accesses to different Ada tasks (even on
>> Janus/Ada, where everything is done by one thread).
>>
>> OTOH, we implemented non-blocking sockets for outbound traffic in Claw
>> sockets as well. I implemented a version of the web server using those
>> sockets, and it turned out the performance (at least on Windows 2K/XP) 
>> was
>> something like 10 times slower using non-blocking sockets compared to
>> busy-waiting the blocking sockets.
>
> Depends on how you measured it. Latencies may increase for obvious reason
> of context switching. The rest should have no influence.

I probably mispoke; I think I was mainly concerned about server load than 
raw performance (the public Internet, after all, is relatively slow compared 
to a computer). And it made the web server use 10 times the CPU (or 
something in that range) compared to "smart" busy-waiting using blocking 
sockets. The resulting server load made the server unusable (it would have 
taken 100-150% of the available CPU to provide decent performance).

> Apparently, Windows launches threads for
>> the non-blocking socket operations, which is SLOW.
>
> No, that cannot be. We are using non-blocking sockets massively e.g. tens
> of thousands, needed to fiddle system settings to allow so many. It
> certainly does not start threads because Windows cannot have so many.

Possibly. Or perhaps its changed in more recent Windows versions. Something 
was taking a whole lot of CPU in the OS (not in our code, based on 
profiling).

>> I made the busy-waiting
>> much smarter in the web server (using a increasing wait for each 
>> iteration)
>> and got much better overall performance than either alternative.

No, everything I did was in Ada; I didn't try to stress Winsock any more 
than I had to (it's quite fragile in W2K and crashes the computer 
regularly). "Smart" busy-waiting just means to wait amounts of time based on 
likely response times (they're not linear!). Either data becomes ready very 
soon (within an ms or so), or it probably needs to wait for additional 
packets, so a longer wait is needed. In the later case, we use delay so that 
other tasks can run (as noted, in Janus/Ada without that the program would 
effectively be blocked).

Of course, the sorts of things I did might not work as well on GNAT (which 
does use threads), there might be a lot of context switching overhead. I 
expect to be trying that sometime this winter once I get further along in 
the porting project.

                                              Randy.


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

* Re: 'Image
  2014-11-18  8:20                                                 ` 'Image Björn Lundin
@ 2014-11-18 22:29                                                   ` Randy Brukardt
  0 siblings, 0 replies; 241+ messages in thread
From: Randy Brukardt @ 2014-11-18 22:29 UTC (permalink / raw)


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

"Björn Lundin" <b.f.lundin@gmail.com> wrote in message 
news:m4evds$bru$1@dont-email.me...
> On 2014-11-18 01:39, Randy Brukardt wrote:
>> "Georg Bauhaus" <bauhaus@futureapps.invalid> wrote in message
>> news:m48b93$ke0$1@dont-email.me...
>>> On 15.11.14 18:32, Florian Weimer wrote:
>> ...
>>> Will 'Image be user definable?
>>
>> No, not in the Corrigendum (at least).
>
> Is it conceptually the same as T'Image(varible) where T is a scalar type
> ? That is, it will not apply to records ?

Yes, exactly. Specifically:

 For a prefix X that denotes an object of a scalar type[ (after any implicit 
dereference)], the following attributes are defined:

X'Image  X'Image denotes the result of calling function S'Image with Arg 
being X, where S is the nominal subtype of X.

and similarly for Wide_Image and Wide_Wide_Image.

We've looked at ideas for allowing Image on record types, but it gets messy 
in a hurry, especially if user-defined Image is involved. (User-defined 
'Image only makes sense if there is some additional functionally associated 
with that, as in the stream case; otherwise, just defining a normal function 
is good enough [and fewer characters to write, too].)

                                Randy.


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

* Re: community-based compiler (was Re: What exactly is the licensing situation with GNAT?)
  2014-11-18  3:06                                                     ` Luke A. Guest
  2014-11-18  9:25                                                       ` Georg Bauhaus
@ 2014-11-18 22:33                                                       ` Randy Brukardt
  1 sibling, 0 replies; 241+ messages in thread
From: Randy Brukardt @ 2014-11-18 22:33 UTC (permalink / raw)


"Luke A. Guest" <laguest@archeia.com> wrote in message 
news:790775817437972682.294390laguest-archeia.com@nntp.aioe.org...
> "Randy Brukardt" <randy@rrsoftware.com> wrote:
>
>> That's not really true with Janus/Ada, as many things (types, compilation
>> units, subprograms) are stored in static tables. That's a left-over from 
>> the
>> early MS-DOS days, where those tables could be paged to disk or stored in
>> "extended" memory rather than taking up limited main memory space. I've 
>> been
>> slowly removing the paging code (it's just a complication that introduces
>> bugs), but the static tables remain for the most part. (Some have become
>> expandable by allocating them en-mass from the heap.)
>>
>> There's still some major heap use for managing expression trees and the
>> symbol table, but there's a lot that doesn't use it.
>
> Given the various input sizes of source you cannot statically define the
> runtime data.

Of course you can. The proportions of data used is proportional to the size 
of the input source, and is fairly consistent between compilation units, so 
there isn't much waste for a maximum-sized unit. Perhaps you're objecting to 
the idea of a maximum-sized unit, but the amount of memory available to the 
compiler is limited, so there's always a practical limit. (Janus/Ada was 
designed to host of small, memory-limited machines; it was never really 
intended to be used on machines with vast amounts of memory. Which is fine, 
because I've never had a machine with vast amounts of memory. :-)

                                           Randy.


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

* Re: What exactly is the licensing situation with GNAT?
  2014-11-18 22:25                                                         ` Randy Brukardt
@ 2014-11-19  9:10                                                           ` Dmitry A. Kazakov
  2014-11-19 23:59                                                             ` Randy Brukardt
  0 siblings, 1 reply; 241+ messages in thread
From: Dmitry A. Kazakov @ 2014-11-19  9:10 UTC (permalink / raw)


On Tue, 18 Nov 2014 16:25:03 -0600, Randy Brukardt wrote:

>> Depends on how you measured it. Latencies may increase for obvious reason
>> of context switching. The rest should have no influence.
> 
> I probably mispoke; I think I was mainly concerned about server load than 
> raw performance (the public Internet, after all, is relatively slow compared 
> to a computer). And it made the web server use 10 times the CPU (or 
> something in that range) compared to "smart" busy-waiting using blocking 
> sockets. The resulting server load made the server unusable (it would have 
> taken 100-150% of the available CPU to provide decent performance).

I see. However measuring load under Windows is a tricky part. You might
have 10% visible load and 100% real load, because the performance counters
count only fully used time quants. So, I would guess, that polling, which
does not actually switches, threads would show system load close to the
reality, while in the case of blocking it could be much lesser than actual.

-- 
Regards,
Dmitry A. Kazakov
http://www.dmitry-kazakov.de

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

* Re: 'Image (was: What exactly is the licensing situation with GNAT?)
  2014-11-15 19:58                                             ` 'Image (was: What exactly is the licensing situation with GNAT?) Georg Bauhaus
  2014-11-18  0:39                                               ` Randy Brukardt
@ 2014-11-19 13:46                                               ` Brian Drummond
  2014-11-19 14:21                                                 ` 'Image G.B.
  1 sibling, 1 reply; 241+ messages in thread
From: Brian Drummond @ 2014-11-19 13:46 UTC (permalink / raw)


On Sat, 15 Nov 2014 20:58:39 +0100, Georg Bauhaus wrote:

> On 15.11.14 18:32, Florian Weimer wrote:
>> * Randy Brukardt:
>>
>>> Semi-related to this is that we approved Obj'Image as a
>>> language-defined attribute,

>> Did they drop leading space characters while they were at it? :-)
> 
> Of course not, they know about the possibility of a '-', and how are you
> going to write orderly column layout if in Ada there is no space!
> 
> Perfect ground for debate.
> 
> Will 'Image be user definable?  Like Python's __str__? Very good for
> obfuscation, then. Will the encoding be part of the definition,
> so that I can use it in our existing trace logs?

Something similar just came up in a VHDL context, where the question was 
asked, is '&' overloadable for non-string-or-character types. 

And it appears it is, so that you can simplify the creation of 
complicated strings (and eliminate leading spaces if you wish) by a 
package of functions overloading '&' to wrap 'Image for integer and 
similar types.

The testcase (minimally translated) seems to work in Ada too (Gnat 4.9.1 
at least), extension from single characters to 'image and strings should 
be obvious.

--------------------------------------------------------
with Ada.Text_IO;

procedure foo is
    function "&" (l: string; r: natural) return string is  
    begin
        return  l & character'VAL(r);
    end "&";
    
    a: constant string := "abcd";
    b: constant string := "efgh";
begin
    Ada.Text_IO.put_line( "concatenated string is " & a &  -- Line 18 
            character'VAL(16#42#) & b & 
            "  " &  a & 16#42# & b );
end foo;
--------------------------------------------------------

-- Brian

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

* Re: community-based compiler (was Re: What exactly is the licensing situation with GNAT?)
  2014-11-17 11:28                                               ` Natasha Kerensikova
@ 2014-11-19 13:48                                                 ` Brian Drummond
  2014-11-27 12:52                                                 ` Brian Drummond
  1 sibling, 0 replies; 241+ messages in thread
From: Brian Drummond @ 2014-11-19 13:48 UTC (permalink / raw)


On Mon, 17 Nov 2014 11:28:42 +0000, Natasha Kerensikova wrote:

> Hello,
> 
> On 2014-11-15, Brian Drummond <brian3@shapes.demon.co.uk> wrote:
>> And there is an ASIS implementation independent of Adacore, which
>> builds quite easily.
...
>> Updating Gela-ASIS for Ada-2012 could be useful in its own right, and
>> done approximately independently of using Gela-ASIS to supply an
>> intermediate representation to an existing back-end (gcc,llvm,etc)
> 
> Just for the record, I have started doing exactly that.
> 
> You can follow my progress on the following github repository:
> https://github.com/faelys/gela-asis
> 

Perfect. I've adopted this as my Gela-Asis repo of choice.

Thanks,
- Brian


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

* Re: 'Image
  2014-11-19 13:46                                               ` 'Image (was: What exactly is the licensing situation with GNAT?) Brian Drummond
@ 2014-11-19 14:21                                                 ` G.B.
  2014-11-20 13:32                                                   ` 'Image Brian Drummond
  0 siblings, 1 reply; 241+ messages in thread
From: G.B. @ 2014-11-19 14:21 UTC (permalink / raw)


On 19.11.14 14:46, Brian Drummond wrote:

> --------------------------------------------------------
> with Ada.Text_IO;
>
> procedure foo is
>      function "&" (l: string; r: natural) return string is
>      begin
>          return  l & character'VAL(r);
>      end "&";
>
>      a: constant string := "abcd";
>      b: constant string := "efgh";
> begin
>      Ada.Text_IO.put_line( "concatenated string is " & a &  -- Line 18
>              character'VAL(16#42#) & b &
>              "  " &  a & 16#42# & b );
> end foo;
> --------------------------------------------------------

This is from GNAT's Spitbol support package:

    function "&" (Num : Integer; Str : String)  return String;
    function "&" (Str : String;  Num : Integer) return String;
    function "&" (Num : Integer; Str : VString) return VString;
    function "&" (Str : VString; Num : Integer) return VString;
    --  In all these concatenation operations, the integer is converted to
    --  its corresponding decimal string form, with no leading blank.




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

* Re: What exactly is the licensing situation with GNAT?
  2014-11-19  9:10                                                           ` Dmitry A. Kazakov
@ 2014-11-19 23:59                                                             ` Randy Brukardt
  2014-11-20  9:53                                                               ` Dmitry A. Kazakov
  0 siblings, 1 reply; 241+ messages in thread
From: Randy Brukardt @ 2014-11-19 23:59 UTC (permalink / raw)


"Dmitry A. Kazakov" <mailbox@dmitry-kazakov.de> wrote in message 
news:1lxkqa97hflr0.1c0bm39tzl8ty$.dlg@40tude.net...
> On Tue, 18 Nov 2014 16:25:03 -0600, Randy Brukardt wrote:
>
>>> Depends on how you measured it. Latencies may increase for obvious 
>>> reason
>>> of context switching. The rest should have no influence.
>>
>> I probably mispoke; I think I was mainly concerned about server load than
>> raw performance (the public Internet, after all, is relatively slow 
>> compared
>> to a computer). And it made the web server use 10 times the CPU (or
>> something in that range) compared to "smart" busy-waiting using blocking
>> sockets. The resulting server load made the server unusable (it would 
>> have
>> taken 100-150% of the available CPU to provide decent performance).
>
> I see. However measuring load under Windows is a tricky part. You might
> have 10% visible load and 100% real load, because the performance counters
> count only fully used time quants. So, I would guess, that polling, which
> does not actually switches, threads would show system load close to the
> reality, while in the case of blocking it could be much lesser than 
> actual.

True, server load could be undercounted because of that Windows bug. But it 
can't be anywhere near 100%, since the mail filter and the various monitors 
and tools all use their share of CPU as well (the monitors and especially 
the spam reviewing tool were near unusable with the non-blocking 
implementation, they couldn't get enough CPU time).

Remember, there isn't much blocking going on with a Janus/Ada program. The 
runtime will only block if all tasks are blocked or waiting on delays (in 
the web server case, 20 worker tasks plus a couple management tasks) [and 
only if the delays are long enough that the OS will usually wake up the 
program with plenty of time to spare]. You might get some blocking from 
reading in files (web pages in this case) or from reading from a socket that 
is already ready, but the latter makes little sense and the former also 
should happen infrequently (if caching and pre-reads are working as they 
should). So I wouldn't expect a vast difference caused by truncated time 
slices in a Janus/Ada (GNAT might be very different).

                                   Randy.




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

* Re: What exactly is the licensing situation with GNAT?
  2014-11-19 23:59                                                             ` Randy Brukardt
@ 2014-11-20  9:53                                                               ` Dmitry A. Kazakov
  2014-11-20 21:23                                                                 ` Randy Brukardt
  0 siblings, 1 reply; 241+ messages in thread
From: Dmitry A. Kazakov @ 2014-11-20  9:53 UTC (permalink / raw)


On Wed, 19 Nov 2014 17:59:11 -0600, Randy Brukardt wrote:

> "Dmitry A. Kazakov" <mailbox@dmitry-kazakov.de> wrote in message 
> news:1lxkqa97hflr0.1c0bm39tzl8ty$.dlg@40tude.net...
>> On Tue, 18 Nov 2014 16:25:03 -0600, Randy Brukardt wrote:
>>
>>>> Depends on how you measured it. Latencies may increase for obvious 
>>>> reason
>>>> of context switching. The rest should have no influence.
>>>
>>> I probably mispoke; I think I was mainly concerned about server load than
>>> raw performance (the public Internet, after all, is relatively slow 
>>> compared
>>> to a computer). And it made the web server use 10 times the CPU (or
>>> something in that range) compared to "smart" busy-waiting using blocking
>>> sockets. The resulting server load made the server unusable (it would 
>>> have
>>> taken 100-150% of the available CPU to provide decent performance).
>>
>> I see. However measuring load under Windows is a tricky part. You might
>> have 10% visible load and 100% real load, because the performance counters
>> count only fully used time quants. So, I would guess, that polling, which
>> does not actually switches, threads would show system load close to the
>> reality, while in the case of blocking it could be much lesser than 
>> actual.
> 
> True, server load could be undercounted because of that Windows bug. But it 
> can't be anywhere near 100%, since the mail filter and the various monitors 
> and tools all use their share of CPU as well (the monitors and especially 
> the spam reviewing tool were near unusable with the non-blocking 
> implementation, they couldn't get enough CPU time).
> 
> Remember, there isn't much blocking going on with a Janus/Ada program. The 
> runtime will only block if all tasks are blocked or waiting on delays (in 
> the web server case, 20 worker tasks plus a couple management tasks) [and 
> only if the delays are long enough that the OS will usually wake up the 
> program with plenty of time to spare]. You might get some blocking from 
> reading in files (web pages in this case) or from reading from a socket that 
> is already ready, but the latter makes little sense and the former also 
> should happen infrequently (if caching and pre-reads are working as they 
> should). So I wouldn't expect a vast difference caused by truncated time 
> slices in a Janus/Ada (GNAT might be very different).

The difference appears when a worker task gets blocked before it spent its
quant. The shorter wake-up intervals are, and the more worker tasks exist,
the bigger is the error. If individual filtering action is not time
consuming (does not spread across hundreds of quants) the error might be
considerable.

-- 
Regards,
Dmitry A. Kazakov
http://www.dmitry-kazakov.de


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

* Re: 'Image
  2014-11-19 14:21                                                 ` 'Image G.B.
@ 2014-11-20 13:32                                                   ` Brian Drummond
  0 siblings, 0 replies; 241+ messages in thread
From: Brian Drummond @ 2014-11-20 13:32 UTC (permalink / raw)


On Wed, 19 Nov 2014 15:21:19 +0100, G.B. wrote:

> On 19.11.14 14:46, Brian Drummond wrote:
> 
>> --------------------------------------------------------
>> with Ada.Text_IO;
>>
>> procedure foo is
>>      function "&" (l: string; r: natural) return string is begin
>>          return  l & character'VAL(r);
>>      end "&";
...
> This is from GNAT's Spitbol support package:
> 
>     function "&" (Num : Integer; Str : String)  return String;
>     function "&" (Str : String;  Num : Integer) return String;
>     function "&" (Num : Integer; Str : VString) return VString;
>     function "&" (Str : VString; Num : Integer) return VString;
>     --  In all these concatenation operations, the integer is converted
>     to --  its corresponding decimal string form, with no leading blank.

heh, thanks!

- Brian

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

* Re: What exactly is the licensing situation with GNAT?
  2014-11-20  9:53                                                               ` Dmitry A. Kazakov
@ 2014-11-20 21:23                                                                 ` Randy Brukardt
  2014-11-21  9:38                                                                   ` Dmitry A. Kazakov
  0 siblings, 1 reply; 241+ messages in thread
From: Randy Brukardt @ 2014-11-20 21:23 UTC (permalink / raw)


"Dmitry A. Kazakov" <mailbox@dmitry-kazakov.de> wrote in message 
news:2k62zlcocx1l$.1cg687ltl85l9.dlg@40tude.net...
> On Wed, 19 Nov 2014 17:59:11 -0600, Randy Brukardt wrote:
>
>> "Dmitry A. Kazakov" <mailbox@dmitry-kazakov.de> wrote in message
>> news:1lxkqa97hflr0.1c0bm39tzl8ty$.dlg@40tude.net...
>>> On Tue, 18 Nov 2014 16:25:03 -0600, Randy Brukardt wrote:
>>>
>>>>> Depends on how you measured it. Latencies may increase for obvious
>>>>> reason
>>>>> of context switching. The rest should have no influence.
>>>>
>>>> I probably mispoke; I think I was mainly concerned about server load 
>>>> than
>>>> raw performance (the public Internet, after all, is relatively slow
>>>> compared
>>>> to a computer). And it made the web server use 10 times the CPU (or
>>>> something in that range) compared to "smart" busy-waiting using 
>>>> blocking
>>>> sockets. The resulting server load made the server unusable (it would
>>>> have
>>>> taken 100-150% of the available CPU to provide decent performance).
>>>
>>> I see. However measuring load under Windows is a tricky part. You might
>>> have 10% visible load and 100% real load, because the performance 
>>> counters
>>> count only fully used time quants. So, I would guess, that polling, 
>>> which
>>> does not actually switches, threads would show system load close to the
>>> reality, while in the case of blocking it could be much lesser than
>>> actual.
>>
>> True, server load could be undercounted because of that Windows bug. But 
>> it
>> can't be anywhere near 100%, since the mail filter and the various 
>> monitors
>> and tools all use their share of CPU as well (the monitors and especially
>> the spam reviewing tool were near unusable with the non-blocking
>> implementation, they couldn't get enough CPU time).
>>
>> Remember, there isn't much blocking going on with a Janus/Ada program. 
>> The
>> runtime will only block if all tasks are blocked or waiting on delays (in
>> the web server case, 20 worker tasks plus a couple management tasks) [and
>> only if the delays are long enough that the OS will usually wake up the
>> program with plenty of time to spare]. You might get some blocking from
>> reading in files (web pages in this case) or from reading from a socket 
>> that
>> is already ready, but the latter makes little sense and the former also
>> should happen infrequently (if caching and pre-reads are working as they
>> should). So I wouldn't expect a vast difference caused by truncated time
>> slices in a Janus/Ada (GNAT might be very different).
>
> The difference appears when a worker task gets blocked before it spent its
> quant. The shorter wake-up intervals are, and the more worker tasks exist,
> the bigger is the error. If individual filtering action is not time
> consuming (does not spread across hundreds of quants) the error might be
> considerable.

But you seem to have missed my point: in Janus/Ada, task blocking is 
irrelevant. If a task blocks in an Ada sense, that just causes the task 
supervisor to select a different task to run. The OS is not involved unless 
there is *no* task ready to run. So, in general, a Janus/Ada program will 
use full quants.

Specifically for the web server, there are three possible reasons for the a 
worker task to block:
(1) No data is ready on the socket. A delay will be executed in that case, 
and some other worker task will run. Only if NO worker is ready to run will 
Sleep be called (and the quant given up). (I'm assuming that checking for 
data on a socket doesn't block the application at all, because if it did, it 
would completely defeat the purpose of the operation.)
[Note that originally, Janus/Ada *never* gave up it's slice. That's a 
relatively recent change intended to make Claw programs better citizens when 
sitting in the background doing nothing. They used to use 10% of the CPU 
even then.]
(2) The socket reports it has data to read, and it blocks for some reason in 
returning that data. This is possible, I suppose, but it makes no sense to 
me.
(3) The socket is not ready for writing. This is the same as (1).
(4) A socket write blocks when it reports that it can accept data. This 
should be rare (it would mainly occur if some buffering issue came up, and 
we write relatively small amounts of data at a time to reduce the likelyhood 
of overfilling buffers).
(5) Input of a web page blocks. Since that's file I/O, whether or not it 
blocks will depend on caching and pre-reading; clearly it will block 
sometimes.

So, the primary reason that the Janus/Ada-compiled webserver would block and 
give up part of its timeslice is from file input (5). That is going to be 
the same whether blocking or non-blocking sockets are used.

The cost difference suggests that polling is cheaper (for Janus/Ada, which 
doesn't give up its slice easily) than waiting for Windows to send a 
notification that data is ready, even though the basic mechanism is pretty 
similar. (After all, Claw polls Windows for notifications, so the effect is 
essentially the same at the low level.) I had to assume that there was some 
massive expense associated with the non-blocking sockets notifications 
inside of Windows -- profiling showed that the CPU load wasn't in the Ada 
code (not even in the interface code). I gave up at that point and switched 
back to basic polling with blocking sockets.

As I said, the situation would be very different for GNAT, where each worker 
task is a different thread. That would most likely block each worker task 
early for a polling implementation, so hardly anything would be counted. In 
which case your concern would have been justified. But I didn't run this 
test with GNAT.

                                    Randy.


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

* Re: What exactly is the licensing situation with GNAT?
  2014-11-20 21:23                                                                 ` Randy Brukardt
@ 2014-11-21  9:38                                                                   ` Dmitry A. Kazakov
  2014-11-21 22:12                                                                     ` Randy Brukardt
  0 siblings, 1 reply; 241+ messages in thread
From: Dmitry A. Kazakov @ 2014-11-21  9:38 UTC (permalink / raw)


On Thu, 20 Nov 2014 15:23:14 -0600, Randy Brukardt wrote:

> But you seem to have missed my point: in Janus/Ada, task blocking is 
> irrelevant. If a task blocks in an Ada sense, that just causes the task 
> supervisor to select a different task to run.

I see. But how a Janus/Ada task could use blocking sockets then?

> (4) A socket write blocks when it reports that it can accept data. This 
> should be rare (it would mainly occur if some buffering issue came up, and 
> we write relatively small amounts of data at a time to reduce the likelyhood 
> of overfilling buffers).

A non-blocking socket should accept as much data it can and then
immediately return.

> The cost difference suggests that polling is cheaper (for Janus/Ada, which 
> doesn't give up its slice easily) than waiting for Windows to send a 
> notification that data is ready, even though the basic mechanism is pretty 
> similar.

That happens only if all sockets are not ready and thus should not impose
any overhead.

> (After all, Claw polls Windows for notifications, so the effect is 
> essentially the same at the low level.) I had to assume that there was some 
> massive expense associated with the non-blocking sockets notifications 
> inside of Windows -- profiling showed that the CPU load wasn't in the Ada 
> code (not even in the interface code). I gave up at that point and switched 
> back to basic polling with blocking sockets.

If notification was done per Windows messages mechanism then certainly yes,
this is a heavy burden. However usually all notification is just pulsing an
event associated with the socket. Single pulse event is shared by all
sockets to wake up a thread that then restarts polling sockets status. I
don't know how much overhead is in signaling an event. It should not be
much.
 
> As I said, the situation would be very different for GNAT, where each worker 
> task is a different thread. That would most likely block each worker task 
> early for a polling implementation, so hardly anything would be counted. In 
> which case your concern would have been justified. But I didn't run this 
> test with GNAT.

And it would be an awful kind of server design anyway...

-- 
Regards,
Dmitry A. Kazakov
http://www.dmitry-kazakov.de


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

* Re: What exactly is the licensing situation with GNAT?
  2014-11-21  9:38                                                                   ` Dmitry A. Kazakov
@ 2014-11-21 22:12                                                                     ` Randy Brukardt
  2014-11-22  9:21                                                                       ` Dmitry A. Kazakov
  0 siblings, 1 reply; 241+ messages in thread
From: Randy Brukardt @ 2014-11-21 22:12 UTC (permalink / raw)


"Dmitry A. Kazakov" <mailbox@dmitry-kazakov.de> wrote in message 
news:1u2gy6fhz9fpr$.vzj1o4ueae0g$.dlg@40tude.net...
> On Thu, 20 Nov 2014 15:23:14 -0600, Randy Brukardt wrote:
>
>> But you seem to have missed my point: in Janus/Ada, task blocking is
>> irrelevant. If a task blocks in an Ada sense, that just causes the task
>> supervisor to select a different task to run.
>
> I see. But how a Janus/Ada task could use blocking sockets then?

A combination of two things: smart polling (don't try to read anything if 
not ready) and setting an imediate timeout for reading (so you get whatever 
is read and nothing more). Essentially, we're using blocking sockets in a 
non-blocking manner. But setting the sockets to non-blocking initially 
caused a lot of additional overhead.

>> (4) A socket write blocks when it reports that it can accept data. This
>> should be rare (it would mainly occur if some buffering issue came up, 
>> and
>> we write relatively small amounts of data at a time to reduce the 
>> likelyhood
>> of overfilling buffers).
>
> A non-blocking socket should accept as much data it can and then
> immediately return.

Maybe, but that's not how it worked when I investigated. Of course, that was 
years ago (and on W2K), so it could have changed.

...
>> (After all, Claw polls Windows for notifications, so the effect is
>> essentially the same at the low level.) I had to assume that there was 
>> some
>> massive expense associated with the non-blocking sockets notifications
>> inside of Windows -- profiling showed that the CPU load wasn't in the Ada
>> code (not even in the interface code). I gave up at that point and 
>> switched
>> back to basic polling with blocking sockets.
>
> If notification was done per Windows messages mechanism then certainly 
> yes,
> this is a heavy burden. However usually all notification is just pulsing 
> an
> event associated with the socket. Single pulse event is shared by all
> sockets to wake up a thread that then restarts polling sockets status. I
> don't know how much overhead is in signaling an event. It should not be
> much.

Event? Windows doesn't have anything like that (the only events I know about 
are messages). Windows does have some sort of Mutex (forget what they're 
called), but I've never paid any attention to them because they are useless 
within the Janus/Ada universe. That's because the whole point of a mutex is 
to block a thread until something sets the mutex, but that would block the 
entire Janus/Ada program. I suppose you could poll one, but you can poll the 
socket (or whatever) directly so there's no benefit to having a mutex.

I suppose one could use some assembler to set up a thread specifically for 
these notifications (that's what we had to do for DNS, not something I'd 
recommend for the faint-of-heart :-), but I don't see any real advantage to 
it.

>> As I said, the situation would be very different for GNAT, where each 
>> worker
>> task is a different thread. That would most likely block each worker task
>> early for a polling implementation, so hardly anything would be counted. 
>> In
>> which case your concern would have been justified. But I didn't run this
>> test with GNAT.
>
> And it would be an awful kind of server design anyway...

Well, it's the way my servers are designed, and it works great (at least for 
typical Internet protocols ike HTTP, SMTP, FTP, etc.). It probably would be 
too slow if one needed much faster latencies (1 millisecond rather than 100 
milliseconds), but I don't need that, and I see no reason to overdesign 
things.

                                               Randy.




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

* Re: What exactly is the licensing situation with GNAT?
  2014-11-21 22:12                                                                     ` Randy Brukardt
@ 2014-11-22  9:21                                                                       ` Dmitry A. Kazakov
  0 siblings, 0 replies; 241+ messages in thread
From: Dmitry A. Kazakov @ 2014-11-22  9:21 UTC (permalink / raw)


On Fri, 21 Nov 2014 16:12:15 -0600, Randy Brukardt wrote:

> "Dmitry A. Kazakov" <mailbox@dmitry-kazakov.de> wrote in message 
> news:1u2gy6fhz9fpr$.vzj1o4ueae0g$.dlg@40tude.net...

>> If notification was done per Windows messages mechanism then certainly yes,
>> this is a heavy burden. However usually all notification is just pulsing an
>> event associated with the socket. Single pulse event is shared by all
>> sockets to wake up a thread that then restarts polling sockets status. I
>> don't know how much overhead is in signaling an event. It should not be
>> much.
> 
> Event? Windows doesn't have anything like that (the only events I know about 
> are messages).

Now (since NT 4.0? (:-)) but I am not sure) it does:

http://msdn.microsoft.com/en-us/library/windows/desktop/ms682396%28v=vs.85%29.aspx

> Windows does have some sort of Mutex (forget what they're 
> called), but I've never paid any attention to them because they are useless 
> within the Janus/Ada universe.

It has two of them. A full-blown mutex (can be system-wide) and a
light-weight critical section (local to the process). Full mutex is an
expensive thing. Critical section is very fast.

> That's because the whole point of a mutex is 
> to block a thread until something sets the mutex, but that would block the 
> entire Janus/Ada program. I suppose you could poll one, but you can poll the 
> socket (or whatever) directly so there's no benefit to having a mutex.

Yes

-- 
Regards,
Dmitry A. Kazakov
http://www.dmitry-kazakov.de

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

* Re: community-based compiler (was Re: What exactly is the licensing situation with GNAT?)
  2014-11-17 11:28                                               ` Natasha Kerensikova
  2014-11-19 13:48                                                 ` Brian Drummond
@ 2014-11-27 12:52                                                 ` Brian Drummond
  1 sibling, 0 replies; 241+ messages in thread
From: Brian Drummond @ 2014-11-27 12:52 UTC (permalink / raw)


On Mon, 17 Nov 2014 11:28:42 +0000, Natasha Kerensikova wrote:

> Hello,

>> Updating Gela-ASIS for Ada-2012 could be useful in its own right, and
>> done approximately independently of using Gela-ASIS to supply an
>> intermediate representation to an existing back-end (gcc,llvm,etc)
> 
> Just for the record, I have started doing exactly that.
> 
> You can follow my progress on the following github repository:
> https://github.com/faelys/gela-asis

Browsing the OpenHub link someone posted here today, I see
https://www.openhub.net/p/11234
which shows new commits to the original Gela project, allegedly including 
some work towards Ada-2012. 

Worth keeping an eye on.

- Brian

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

end of thread, other threads:[~2014-11-27 12:52 UTC | newest]

Thread overview: 241+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2014-11-10  9:30 What exactly is the licensing situation with Gnat? Hubert
2014-11-10 10:03 ` Markus Schöpflin
2014-11-10 10:38 ` What exactly is the licensing situation with GNAT? Jacob Sparre Andersen
2014-11-10 11:09   ` Hubert
2014-11-10 11:19     ` Markus Schöpflin
2014-11-10 15:45       ` David Botton
2014-11-11  0:09         ` Hubert
2014-11-11 10:54           ` Georg Bauhaus
2014-11-11 11:05             ` Hubert
2014-11-11 13:37           ` john
2014-11-11 22:52             ` Hubert
2014-11-11 23:10               ` David Botton
2014-11-11 23:25                 ` Alan Jump
2014-11-12  0:50                   ` David Botton
2014-11-12  1:02                     ` Simon Clubley
2014-11-12  7:09                       ` Gour
2014-11-12 11:06                         ` David Botton
2014-11-12  7:41                       ` Simon Wright
2014-11-13  1:30                         ` Simon Clubley
2014-11-12  1:15                     ` Hubert
2014-11-12  1:24                       ` David Botton
2014-11-12  1:33                         ` Hubert
2014-11-12  7:13                         ` Gour
2014-11-12 10:56                           ` David Botton
2014-11-12  8:12                         ` Simon Wright
2014-11-12  8:35                           ` Hubert
2014-11-12  9:25                             ` Mark Carroll
2014-11-12  9:37                               ` Hubert
2014-11-12 10:31                                 ` jm.tarrasa
2014-11-12 10:43                                   ` J-P. Rosen
2014-11-12 10:44                                   ` Hubert
2014-11-12 12:06                                     ` Gour
2014-11-12 12:38                                       ` David Botton
2014-11-12 15:23                                         ` Gour
2014-11-12 16:30                                           ` David Botton
2014-11-12 13:20                                     ` Dmitry A. Kazakov
2014-11-12 22:53                                     ` Randy Brukardt
2014-11-12 23:21                                       ` David Botton
2014-11-13  1:49                                         ` Randy Brukardt
2014-11-13  8:18                                           ` Georg Bauhaus
2014-11-13 21:51                                             ` Randy Brukardt
2014-11-14  8:36                                               ` Dmitry A. Kazakov
2014-11-14 22:24                                                 ` Randy Brukardt
2014-11-14 22:43                                                   ` Jeffrey Carter
2014-11-15  9:18                                                   ` Dmitry A. Kazakov
2014-11-18  0:37                                                     ` Randy Brukardt
2014-11-18  9:04                                                       ` Dmitry A. Kazakov
2014-11-14  4:51                                         ` Randy Brukardt
2014-11-14  5:12                                           ` David Botton
2014-11-14  6:13                                             ` Randy Brukardt
2014-11-14  8:40                                               ` Dmitry A. Kazakov
2014-11-14 22:29                                                 ` Randy Brukardt
2014-11-15  9:29                                                   ` Dmitry A. Kazakov
2014-11-15  9:40                                                     ` Pascal Obry
2014-11-15 11:18                                                     ` Tero Koskinen
2014-11-15 11:36                                                       ` Dmitry A. Kazakov
2014-11-18  0:28                                                     ` Randy Brukardt
2014-11-18  9:20                                                       ` Dmitry A. Kazakov
2014-11-18 22:25                                                         ` Randy Brukardt
2014-11-19  9:10                                                           ` Dmitry A. Kazakov
2014-11-19 23:59                                                             ` Randy Brukardt
2014-11-20  9:53                                                               ` Dmitry A. Kazakov
2014-11-20 21:23                                                                 ` Randy Brukardt
2014-11-21  9:38                                                                   ` Dmitry A. Kazakov
2014-11-21 22:12                                                                     ` Randy Brukardt
2014-11-22  9:21                                                                       ` Dmitry A. Kazakov
2014-11-15 17:32                                           ` Florian Weimer
2014-11-15 19:58                                             ` 'Image (was: What exactly is the licensing situation with GNAT?) Georg Bauhaus
2014-11-18  0:39                                               ` Randy Brukardt
2014-11-18  8:20                                                 ` 'Image Björn Lundin
2014-11-18 22:29                                                   ` 'Image Randy Brukardt
2014-11-19 13:46                                               ` 'Image (was: What exactly is the licensing situation with GNAT?) Brian Drummond
2014-11-19 14:21                                                 ` 'Image G.B.
2014-11-20 13:32                                                   ` 'Image Brian Drummond
2014-11-13  0:48                                       ` What exactly is the licensing situation with GNAT? sbelmont700
2014-11-13  1:31                                         ` Randy Brukardt
2014-11-13  1:29                                       ` Randy Brukardt
2014-11-13  8:03                                         ` Georg Bauhaus
2014-11-13 22:22                                           ` Randy Brukardt
2014-11-13 16:26                                         ` Tero Koskinen
2014-11-13 22:29                                           ` Randy Brukardt
2014-11-13  1:54                                       ` Hubert
2014-11-13  2:04                                         ` Hubert
2014-11-13  7:53                                         ` Luther Bogart
2014-11-13  7:58                                           ` Luther Bogart
2014-11-13 16:38                                         ` Tero Koskinen
2014-11-13 21:57                                         ` Randy Brukardt
2014-11-13 22:02                                           ` Mark Carroll
2014-11-13 22:43                                           ` Jeffrey Carter
2014-11-14  1:36                                             ` Hubert
2014-11-14  4:45                                               ` Randy Brukardt
2014-11-14  5:24                                                 ` Hubert
2014-11-14  8:51                                               ` Dmitry A. Kazakov
2014-11-14  9:02                                                 ` Stan Mills
2014-11-14 10:14                                                   ` Dmitry A. Kazakov
2014-11-14 10:38                                                     ` Stan Mills
2014-11-14 12:57                                                       ` Peter Chapin
2014-11-14 22:33                                                         ` Randy Brukardt
2014-11-17  8:28                                                         ` Stan Mills
2014-11-14 13:35                                                       ` Dmitry A. Kazakov
2014-11-14 15:29                                                         ` Things that OO programming lacks (was: What exactly is the licensing situation with GNAT?) G.B.
2014-11-14 16:32                                                           ` Things that OO programming lacks Dmitry A. Kazakov
2014-11-15 19:46                                                             ` Georg Bauhaus
2014-11-16 10:18                                                               ` Dmitry A. Kazakov
2014-11-16 18:51                                                                 ` Shark8
2014-11-16 19:33                                                                   ` Dmitry A. Kazakov
2014-11-17 15:17                                                                 ` G.B.
2014-11-17 17:28                                                                   ` Dmitry A. Kazakov
2014-11-17 18:23                                                                     ` G.B.
2014-11-17 20:02                                                                       ` Georg Bauhaus
2014-11-17 21:05                                                                       ` Dmitry A. Kazakov
2014-11-18 10:14                                                                         ` Georg Bauhaus
2014-11-18 13:42                                                                           ` Dmitry A. Kazakov
2014-11-18 18:50                                                                             ` G.B.
2014-11-18 19:18                                                                               ` Dmitry A. Kazakov
2014-11-17 19:21                                                                     ` Shark8
2014-11-17 20:44                                                                       ` Dmitry A. Kazakov
2014-11-16 17:54                                                             ` Simon Wright
2014-11-16 19:01                                                               ` Niklas Holsti
2014-11-16 19:14                                                                 ` Simon Wright
2014-11-16 19:39                                                               ` Dmitry A. Kazakov
2014-11-16 20:33                                                                 ` Simon Wright
2014-11-17  8:44                                                                   ` Dmitry A. Kazakov
2014-11-17 14:29                                                                     ` Simon Wright
2014-11-17 17:38                                                                       ` Dmitry A. Kazakov
2014-11-17  8:36                                                         ` What exactly is the licensing situation with GNAT? Stan Mills
2014-11-17 11:03                                                           ` Dmitry A. Kazakov
2014-11-17 14:20                                                             ` G.B.
2014-11-14  9:19                                                 ` Hubert
2014-11-14 10:30                                                   ` Dmitry A. Kazakov
2014-11-15  1:00                                                     ` Hubert
2014-11-15  1:24                                                       ` Hubert
2014-11-15  9:45                                                         ` Dmitry A. Kazakov
2014-11-15 10:27                                                           ` Hubert
2014-11-15 19:44                                                             ` Robert A Duff
2014-11-15  7:22                                                       ` Gour
2014-11-15  9:57                                                         ` Dmitry A. Kazakov
2014-11-15 10:51                                                           ` Gour
2014-11-15 11:26                                                             ` Dmitry A. Kazakov
2014-11-15 12:41                                                               ` Gour
2014-11-15 13:18                                                                 ` Dmitry A. Kazakov
2014-11-17  8:11                                                     ` Stan Mills
2014-11-17  8:28                                                       ` Dmitry A. Kazakov
2014-11-17  8:48                                                         ` Stan Mills
2014-11-17 10:40                                                           ` Dmitry A. Kazakov
2014-11-13  8:03                                       ` Pete Ballmer
2014-11-13  8:41                                         ` Georg Bauhaus
2014-11-13  8:59                                         ` Georg Bauhaus
2014-11-12 11:18                                   ` David Botton
2014-11-13  0:01                                   ` David Botton
2014-11-13  0:03                                     ` David Botton
2014-11-12 11:15                                 ` David Botton
2014-11-13 23:56                                   ` David Botton
2014-11-14  7:50                                     ` community-based compiler (was Re: What exactly is the licensing situation with GNAT?) Gour
2014-11-14  7:57                                       ` community-based compiler Gour
2014-11-14 14:53                                       ` community-based compiler (was Re: What exactly is the licensing situation with GNAT?) Luke A. Guest
2014-11-14 14:57                                         ` David Botton
2014-11-14 16:16                                           ` Luke A. Guest
2014-11-14 16:34                                             ` David Botton
2014-11-14 16:42                                               ` Luke A. Guest
2014-11-16 19:30                                               ` community-based compiler Florian Weimer
2014-11-14 15:27                                         ` Gour
2014-11-14 16:16                                           ` Luke A. Guest
2014-11-14 16:26                                             ` Gour
2014-11-14 16:48                                               ` Luke A. Guest
2014-11-16 19:31                                                 ` Florian Weimer
2014-11-14 16:03                                         ` community-based compiler (was Re: What exactly is the licensing situation with GNAT?) Tero Koskinen
2014-11-14 22:40                                         ` Randy Brukardt
2014-11-15  1:07                                           ` Luke A. Guest
2014-11-15  8:08                                           ` community-based compiler Gour
2014-11-16 19:29                                         ` Florian Weimer
2014-11-14 17:13                                       ` community-based compiler (was Re: What exactly is the licensing situation with GNAT?) Shark8
2014-11-14 18:55                                         ` David Botton
2014-11-14 20:53                                           ` Shark8
2014-11-14 21:07                                             ` Luke A. Guest
2014-11-14 22:35                                               ` Shark8
2014-11-15  1:07                                                 ` Luke A. Guest
2014-11-18  0:52                                                   ` Randy Brukardt
2014-11-18  3:06                                                     ` Luke A. Guest
2014-11-18  9:25                                                       ` Georg Bauhaus
2014-11-18 22:33                                                       ` Randy Brukardt
2014-11-15 12:44                                             ` Brian Drummond
2014-11-15 22:47                                               ` Shark8
2014-11-16 11:12                                                 ` Brian Drummond
2014-11-16 21:38                                                   ` Shark8
2014-11-17 11:28                                               ` Natasha Kerensikova
2014-11-19 13:48                                                 ` Brian Drummond
2014-11-27 12:52                                                 ` Brian Drummond
2014-11-14 21:05                                           ` Luke A. Guest
2014-11-14  8:25                                     ` What exactly is the licensing situation with GNAT? Pete Ballmer
2014-11-14 12:46                                       ` Peter Chapin
2014-11-15  8:47                                         ` Mart van de Wege
2014-11-16  9:32                                         ` Pete Ballmer
2014-11-16 19:41                                         ` Florian Weimer
2014-11-12 13:31                                 ` Jacob Sparre Andersen
2014-11-12 14:33                                   ` David Botton
2014-11-12 15:07                                     ` David Botton
2014-11-12 16:39                                       ` Simon Wright
2014-11-12 23:06                                     ` Randy Brukardt
2014-11-12 23:31                                       ` David Botton
2014-11-13  1:59                                         ` Randy Brukardt
2014-11-13  2:21                                           ` David Botton
2014-11-13 22:01                                             ` Randy Brukardt
2014-11-12 22:47                                 ` Randy Brukardt
2014-11-12 23:23                                   ` Britt
2014-11-13  2:10                                     ` Randy Brukardt
2014-11-13  5:13                                       ` Shark8
2014-11-13  9:43                                       ` Gour
2014-11-13 22:06                                         ` Randy Brukardt
2014-11-13 23:37                                           ` Gour
2014-11-13 16:51                                     ` Tero Koskinen
2014-11-13  7:46                                   ` George Curioso
2014-11-13 22:14                                     ` Randy Brukardt
2014-11-14  8:18                                       ` George Curioso
2014-11-12 10:53                             ` Simon Wright
2014-11-12 11:19                               ` David Botton
2014-11-12  8:16                         ` Simon Wright
2014-11-12  8:06                       ` Simon Wright
2014-11-12  8:26                         ` Hubert
2014-11-12  7:13                     ` Pascal Obry
2014-11-12  7:47                       ` Hubert
2014-11-12  9:08                       ` Thomas Jahrne
2014-11-12 10:19                         ` Georg Bauhaus
2014-11-12  9:30                       ` Mark Carroll
2014-11-12 11:05                       ` David Botton
2014-11-12 11:32                         ` Pascal Obry
2014-11-12 12:31                           ` David Botton
2014-11-12 13:17                             ` G.B.
2014-11-12 14:21                               ` David Botton
2014-11-12 18:31                                 ` john
2014-11-12 18:56                                   ` David Botton
2014-11-12 19:24                                     ` David Botton
2014-11-13  1:48                                   ` Simon Clubley
2014-11-13  7:40                                     ` Harry Bolger
2014-11-13  8:30                                       ` Georg Bauhaus
2014-11-13  8:41                                         ` Harry Bolger
2014-11-13  8:57                                           ` Georg Bauhaus
2014-11-13 14:30                                           ` Maciej Sobczak
2014-11-13 19:19                                             ` Peter Chapin
2014-11-13 19:43                                               ` David Botton
2014-11-12  7:38                 ` Simon Wright

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