comp.lang.ada
 help / color / mirror / Atom feed
* Building Matreshka on Windows
@ 2016-11-02 21:29 Shark8
  2016-11-03  8:18 ` Dmitry A. Kazakov
  2016-11-29 15:22 ` Maxim Reznik
  0 siblings, 2 replies; 25+ messages in thread
From: Shark8 @ 2016-11-02 21:29 UTC (permalink / raw)


I recently came across Matreshka on this wikipedia page -- https://en.wikibooks.org/wiki/Ada_Programming/Libraries/Database -- when searching for FireBird bindings to Ada... Ada bindings to FireBirs? Whatever.

Anyway, the user-guide is pretty unhelpful when on a Windows machine -- http://forge.ada-ru.org/matreshka/wiki/Guide -- essentially requiring the whole unix-like environment... so my questions are thus: has anyone gotten it to build on Windows? has anyone gotten it to build WITHOUT Cygwin, MSYS, etc?

PS -- I'd much rather not use Cygwin et al; it adds another layer of tools and idiosyncrasies to the environment.

PPS -- Why do people think "make" is a good way to build/install anyway? (I tried running it through Borland's make, but no joy -- what else do you expect from a tool developed on/with/for C?)

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

* Re: Building Matreshka on Windows
  2016-11-02 21:29 Building Matreshka on Windows Shark8
@ 2016-11-03  8:18 ` Dmitry A. Kazakov
  2016-11-03 15:32   ` Olivier Henley
  2016-11-29 15:22 ` Maxim Reznik
  1 sibling, 1 reply; 25+ messages in thread
From: Dmitry A. Kazakov @ 2016-11-03  8:18 UTC (permalink / raw)


On 02/11/2016 22:29, Shark8 wrote:

> PPS -- Why do people think "make" is a good way to build/install
> anyway? (I tried running it through Borland's make,

I used to write make files generator for Borland's make, nmake, GNU 
make, have a shirt and cap.

> but no joy -- what
> else do you expect from a tool developed on/with/for C?)

Ada, Watson!

BTW, gprbuild can C. Granted, gprbuild is a big step back from gnatmake, 
but still miles ahead of make.

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

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

* Re: Building Matreshka on Windows
  2016-11-03  8:18 ` Dmitry A. Kazakov
@ 2016-11-03 15:32   ` Olivier Henley
  2016-11-03 16:10     ` Dmitry A. Kazakov
  0 siblings, 1 reply; 25+ messages in thread
From: Olivier Henley @ 2016-11-03 15:32 UTC (permalink / raw)


On Thursday, November 3, 2016 at 4:18:07 AM UTC-4, Dmitry A. Kazakov wrote:
> BTW, gprbuild can C. Granted, gprbuild is a big step back from gnatmake, 
> but still miles ahead of make.

Why do say gprbuild is a big step back from gnatmake? I don't have enough knowledge of both to evaluate your saying.

Thx.


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

* Re: Building Matreshka on Windows
  2016-11-03 15:32   ` Olivier Henley
@ 2016-11-03 16:10     ` Dmitry A. Kazakov
  2016-11-03 17:50       ` Simon Wright
  2016-11-03 18:02       ` Olivier Henley
  0 siblings, 2 replies; 25+ messages in thread
From: Dmitry A. Kazakov @ 2016-11-03 16:10 UTC (permalink / raw)


On 03/11/2016 16:32, Olivier Henley wrote:
> On Thursday, November 3, 2016 at 4:18:07 AM UTC-4, Dmitry A. Kazakov wrote:
>> BTW, gprbuild can C. Granted, gprbuild is a big step back from gnatmake,
>> but still miles ahead of make.
>
> Why do say gprbuild is a big step back from gnatmake? I don't have
> enough knowledge of both to evaluate your saying.

Because in my opinion it is built upon an inferior technology. It uses 
XML, it is not self-contained (has a mess of semi-hidden supplementary 
files spread all around the system). It is very easy and common to have 
gprbuild not working where gnatmake never had any problem. The biggest 
danger is turning it into yet another "configure" / CMake.

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


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

* Re: Building Matreshka on Windows
  2016-11-03 16:10     ` Dmitry A. Kazakov
@ 2016-11-03 17:50       ` Simon Wright
  2016-11-03 18:42         ` G.B.
  2016-11-03 18:02       ` Olivier Henley
  1 sibling, 1 reply; 25+ messages in thread
From: Simon Wright @ 2016-11-03 17:50 UTC (permalink / raw)


"Dmitry A. Kazakov" <mailbox@dmitry-kazakov.de> writes:

> On 03/11/2016 16:32, Olivier Henley wrote:
>> On Thursday, November 3, 2016 at 4:18:07 AM UTC-4, Dmitry A. Kazakov wrote:
>>> BTW, gprbuild can C. Granted, gprbuild is a big step back from gnatmake,
>>> but still miles ahead of make.
>>
>> Why do say gprbuild is a big step back from gnatmake? I don't have
>> enough knowledge of both to evaluate your saying.
>
> Because in my opinion it is built upon an inferior technology. It uses
> XML, it is not self-contained (has a mess of semi-hidden supplementary
> files spread all around the system). It is very easy and common to
> have gprbuild not working where gnatmake never had any problem. The
> biggest danger is turning it into yet another "configure" / CMake.

Unless you go out of your way, the configuration files are all under
$prefix/share/gprconfig/

When things work, all is fine. When they don't, it can be tricky; the
way the configuration files specify commands to run and grepping the
output for particular patterns is challenging:

On the Mac, GCC 5 and 6 generate shared libraries with names like
libgnat-6.dylib; GCC 4, names like libgnat-4.8.dylib. gnatls reports
itself as e.g. GNATLS 6.1.0. The original share/gprconfig/compilers.xml
file looked for the first 2 fields of the version; libgnat-6.1.dylib
wasn't found. The fix was (cut back not to bore you)

     <version>
       <external>${PREFIX}gnatls -v --version</external>
-      <grep regexp="^GNATLS.+?(\d+(\.\d+)?)" group="1"></grep>
+      <grep regexp="^GNATLS.+?(\d+)" group="1"></grep>
     </version>

I'm very pleased that, since GPRBUILD 2016, I can use e.g.

   for Target use "arm-eabi";
   for Runtime ("ada") use "ravenscar-sfp-stm32f4";

in the GPR instead of having to specify on the command line.

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

* Re: Building Matreshka on Windows
  2016-11-03 16:10     ` Dmitry A. Kazakov
  2016-11-03 17:50       ` Simon Wright
@ 2016-11-03 18:02       ` Olivier Henley
  2016-11-03 20:18         ` Dmitry A. Kazakov
  1 sibling, 1 reply; 25+ messages in thread
From: Olivier Henley @ 2016-11-03 18:02 UTC (permalink / raw)


On Thursday, November 3, 2016 at 12:10:49 PM UTC-4, Dmitry A. Kazakov wrote:

> Because in my opinion it is built upon an inferior technology. It uses 
> XML, it is not self-contained (has a mess of semi-hidden supplementary 
> files spread all around the system). It is very easy and common to have 
> gprbuild not working where gnatmake never had any problem. The biggest 
> danger is turning it into yet another "configure" / CMake.

Why did they move from gnatmake then?

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

* Re: Building Matreshka on Windows
  2016-11-03 17:50       ` Simon Wright
@ 2016-11-03 18:42         ` G.B.
  2016-11-04  8:55           ` Simon Wright
  0 siblings, 1 reply; 25+ messages in thread
From: G.B. @ 2016-11-03 18:42 UTC (permalink / raw)


On 03.11.16 18:50, Simon Wright wrote:


> The fix was (cut back not to bore you)
>
>      <version>
>        <external>${PREFIX}gnatls -v --version</external>
> -      <grep regexp="^GNATLS.+?(\d+(\.\d+)?)" group="1"></grep>
> +      <grep regexp="^GNATLS.+?(\d+)" group="1"></grep>
>      </version>

Two things I find puzzling when I see this setup:

1 - why would compiler writers parse version strings using
     REs that can fail in ways that I'd be tempted to call
      classic when their core business actually depends on
     well working parsers?

2 - what makes compiler writers not use their languages'
     powers for communicating the information between processes
     in a structured way, with ease?

Business angst?


After a few years of seeing version identifiers change in
seemingly arbitrary ways, I am convinced that the technically
relevant information should be communicated using some
protocol to be endorsed by all parties involved.
Making version identifiers reflect hacks rarely works
for all parties.

One of the few micro formats that seem to work without AI is,
I guess, ISO date strings. The "ISO" part should ring a bell
or two.


> I'm very pleased that, since GPRBUILD 2016, I can use e.g.
>
>    for Target use "arm-eabi";
>    for Runtime ("ada") use "ravenscar-sfp-stm32f4";
>
> in the GPR instead of having to specify on the command line.
>



-- 
"HOTDOGS ARE NOT BOOKMARKS"
Springfield Elementary teaching staff


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

* Re: Building Matreshka on Windows
  2016-11-03 18:02       ` Olivier Henley
@ 2016-11-03 20:18         ` Dmitry A. Kazakov
  2016-11-03 22:39           ` gautier_niouzes
  2016-11-04  8:57           ` G.B.
  0 siblings, 2 replies; 25+ messages in thread
From: Dmitry A. Kazakov @ 2016-11-03 20:18 UTC (permalink / raw)


On 2016-11-03 19:02, Olivier Henley wrote:
> On Thursday, November 3, 2016 at 12:10:49 PM UTC-4, Dmitry A. Kazakov wrote:
>
>> Because in my opinion it is built upon an inferior technology. It uses
>> XML, it is not self-contained (has a mess of semi-hidden supplementary
>> files spread all around the system). It is very easy and common to have
>> gprbuild not working where gnatmake never had any problem. The biggest
>> danger is turning it into yet another "configure" / CMake.
>
> Why did they move from gnatmake then?

Who knows? Why GPS uses Python scripts instead of Ada?

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

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

* Re: Building Matreshka on Windows
  2016-11-03 20:18         ` Dmitry A. Kazakov
@ 2016-11-03 22:39           ` gautier_niouzes
  2016-11-04  8:28             ` Dmitry A. Kazakov
  2016-11-04  8:57           ` G.B.
  1 sibling, 1 reply; 25+ messages in thread
From: gautier_niouzes @ 2016-11-03 22:39 UTC (permalink / raw)


> Why GPS uses Python scripts instead of Ada?

That's for producing some 50 lines of error messages with a loud "SyntaxError" at the end, each time you start GPS. Perfect for impressing newcomers ;-)
_________________________ 
Gautier's Ada programming 
http://gautiersblog.blogspot.com/search/label/Ada 
NB: follow the above link for a valid e-mail address 


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

* Re: Building Matreshka on Windows
  2016-11-03 22:39           ` gautier_niouzes
@ 2016-11-04  8:28             ` Dmitry A. Kazakov
  0 siblings, 0 replies; 25+ messages in thread
From: Dmitry A. Kazakov @ 2016-11-04  8:28 UTC (permalink / raw)


On 03/11/2016 23:39, gautier_niouzes@hotmail.com wrote:
>> Why GPS uses Python scripts instead of Ada?
>
> That's for producing some 50 lines of error messages with a loud
> "SyntaxError" at the end, each time you start GPS. Perfect for
> impressing newcomers ;-)

BTW errors, I wished GNAT would stop right at the first error and kept 
any warnings silent until no errors came.

Amazing how compilation continuation survived long since the death of 
OS/360 batch jobs on the stack of punched cards...

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

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

* Re: Building Matreshka on Windows
  2016-11-03 18:42         ` G.B.
@ 2016-11-04  8:55           ` Simon Wright
  2016-11-04  9:19             ` G.B.
  0 siblings, 1 reply; 25+ messages in thread
From: Simon Wright @ 2016-11-04  8:55 UTC (permalink / raw)


"G.B." <bauhaus@futureapps.invalid> writes:

> 1 - why would compiler writers parse version strings using
>     REs that can fail in ways that I'd be tempted to call
>      classic when their core business actually depends on
>     well working parsers?

The input formats to be processed by this RE are very limited, and under
AdaCore's control:

   (whatever GNAT Pro reports)
   GNATLS GPL 2016 (20160515-49)
   GNATLS 4.8.1

and it's not as though the RE processing is done by shelling out to run
grep (you can tell this because gprconfig runs on Windows).


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

* Re: Building Matreshka on Windows
  2016-11-03 20:18         ` Dmitry A. Kazakov
  2016-11-03 22:39           ` gautier_niouzes
@ 2016-11-04  8:57           ` G.B.
  2016-11-04  9:29             ` Dmitry A. Kazakov
  1 sibling, 1 reply; 25+ messages in thread
From: G.B. @ 2016-11-04  8:57 UTC (permalink / raw)


On 03.11.16 21:18, Dmitry A. Kazakov wrote:
> On 2016-11-03 19:02, Olivier Henley wrote:
>> On Thursday, November 3, 2016 at 12:10:49 PM UTC-4, Dmitry A. Kazakov wrote:
>>
>>> Because in my opinion it is built upon an inferior technology. It uses
>>> XML, it is not self-contained (has a mess of semi-hidden supplementary
>>> files spread all around the system). It is very easy and common to have
>>> gprbuild not working where gnatmake never had any problem. The biggest
>>> danger is turning it into yet another "configure" / CMake.
>>
>> Why did they move from gnatmake then?
>
> Who knows?

A guess: gnatmake was designed for running the programs that translate
Ada source, compiling, binding, linking (gcc, gnatbind, gnatlink).
gprbuild is designed for running tools in multi-language projects.
How will integrating the multi-language tools proceed?

Multiple languages might imply the absence of organizational power
that strongly suggests how things be done. One that could force a
design for all languages matching the quality and usability of
gnatmake for Ada alone (or adamake for the AdaMagic line of tools).
The next best thing then is a project tool working like Make and
shell, relying on diverse forms of text, output by the tools for any
of those languages: gprbuild. The diverse tools can keep their
idiosyncrasies, thus reducing commercial effort and creating
opportunities for project management specialists. (Extending Gautier's
observation, this meets expectations of anyone coming from any other
language.)

Better suited to the task of configuring software translation will be
a typed, declarative language for handling rules and constants, I'd
think. A language that "knows" about multiple languages like
gnatmake knows about Ada. So, it wouldn't be either Ada or Python.

-- 
"HOTDOGS ARE NOT BOOKMARKS"
Springfield Elementary teaching staff


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

* Re: Building Matreshka on Windows
  2016-11-04  8:55           ` Simon Wright
@ 2016-11-04  9:19             ` G.B.
  0 siblings, 0 replies; 25+ messages in thread
From: G.B. @ 2016-11-04  9:19 UTC (permalink / raw)


On 04.11.16 09:55, Simon Wright wrote:
> The input formats to be processed by this RE are very limited, and under
> AdaCore's control

I was hoping that the formats are controlled, and few, but given the
generic nature of GPRBuild, won't similar declarations of REs be used
for "guessing" versions of tools not under AdaCore's control?  Like,
what if those version numbers will be reflecting Git tags applied by
third parties, like "v6.1-exp_BH-20160428A"?

On the plus side, it might feel like an easy job when one needs
to integrate a patched tool by adjusting REs. TTBOMK, correct REs
aren't that easy, though.

-- 
"HOTDOGS ARE NOT BOOKMARKS"
Springfield Elementary teaching staff

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

* Re: Building Matreshka on Windows
  2016-11-04  8:57           ` G.B.
@ 2016-11-04  9:29             ` Dmitry A. Kazakov
  2016-11-04 13:28               ` Simon Wright
  0 siblings, 1 reply; 25+ messages in thread
From: Dmitry A. Kazakov @ 2016-11-04  9:29 UTC (permalink / raw)


On 04/11/2016 09:57, G.B. wrote:
[...]
> Better suited to the task of configuring software translation will be
> a typed, declarative language for handling rules and constants, I'd
> think. A language that "knows" about multiple languages like
> gnatmake knows about Ada. So, it wouldn't be either Ada or Python.

And this is the key point. Should it be a language? Really? If AdaCore 
knows these object languages (Ada, C, C++, Brainf*ck etc), why do they 
need a language to express that knowledge? Why do they need to 
communicate that knowledge to the poor end user? As a programmer I have 
no interest whatsoever in this knowledge. Why don't they let me alone?

Note this same question arises with handling Ada projects. You could try 
to use a language like GNU make to maintain an Ada project. Or you could 
have a non-language tool like gnatmake or AdaGIDE to handle that. What 
works better?

You might say they wanted it be open-ended so that I could add the 
Whitespace language to the list. The answer is no. I am not interested 
in doing this and the percentage of people who potentially may differ 
and would willingly become programmers of the configuration language 
does not pay off the miseries the huge majority of "normal" people have.

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

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

* Re: Building Matreshka on Windows
  2016-11-04  9:29             ` Dmitry A. Kazakov
@ 2016-11-04 13:28               ` Simon Wright
  2016-11-04 16:08                 ` Dmitry A. Kazakov
  2016-11-04 16:37                 ` Jeffrey R. Carter
  0 siblings, 2 replies; 25+ messages in thread
From: Simon Wright @ 2016-11-04 13:28 UTC (permalink / raw)


"Dmitry A. Kazakov" <mailbox@dmitry-kazakov.de> writes:

> On 04/11/2016 09:57, G.B. wrote:
> [...]
>> Better suited to the task of configuring software translation will be
>> a typed, declarative language for handling rules and constants, I'd
>> think. A language that "knows" about multiple languages like gnatmake
>> knows about Ada. So, it wouldn't be either Ada or Python.
>
> And this is the key point. Should it be a language? Really? If AdaCore
> knows these object languages (Ada, C, C++, Brainf*ck etc), why do they
> need a language to express that knowledge? Why do they need to
> communicate that knowledge to the poor end user? As a programmer I
> have no interest whatsoever in this knowledge. Why don't they let me
> alone?

I just don't understand what makes you say this. If you are happy with
gnatmake without GPRs, carry on and use it, with all the mess of -A*
swithces that you will certainly need a makefile or other script to
remember for you. gprbuild will work just as well, except of course that
you do have to have a project file. Why on earth would you need to look
at $prefix/share/gprconfig?

> Note this same question arises with handling Ada projects. You could
> try to use a language like GNU make to maintain an Ada project. Or you
> could have a non-language tool like gnatmake or AdaGIDE to handle
> that. What works better?

gprbuild, of course.

> You might say they wanted it be open-ended so that I could add the
> Whitespace language to the list. The answer is no. I am not interested
> in doing this and the percentage of people who potentially may differ
> and would willingly become programmers of the configuration language
> does not pay off the miseries the huge majority of "normal" people
> have.

I think the people who have problems such as you hint at with gprbuild
are not "normal".

Of course, one might think that people who want to program in Ada aren't
normal, either ...

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

* Re: Building Matreshka on Windows
  2016-11-04 13:28               ` Simon Wright
@ 2016-11-04 16:08                 ` Dmitry A. Kazakov
  2016-11-04 18:14                   ` Simon Wright
  2016-11-04 16:37                 ` Jeffrey R. Carter
  1 sibling, 1 reply; 25+ messages in thread
From: Dmitry A. Kazakov @ 2016-11-04 16:08 UTC (permalink / raw)


On 2016-11-04 14:28, Simon Wright wrote:
> "Dmitry A. Kazakov" <mailbox@dmitry-kazakov.de> writes:
>
>> On 04/11/2016 09:57, G.B. wrote:
>> [...]
>>> Better suited to the task of configuring software translation will be
>>> a typed, declarative language for handling rules and constants, I'd
>>> think. A language that "knows" about multiple languages like gnatmake
>>> knows about Ada. So, it wouldn't be either Ada or Python.
>>
>> And this is the key point. Should it be a language? Really? If AdaCore
>> knows these object languages (Ada, C, C++, Brainf*ck etc), why do they
>> need a language to express that knowledge? Why do they need to
>> communicate that knowledge to the poor end user? As a programmer I
>> have no interest whatsoever in this knowledge. Why don't they let me
>> alone?
>
> I just don't understand what makes you say this. If you are happy with
> gnatmake without GPRs, carry on and use it, with all the mess of -A*
> swithces that you will certainly need a makefile or other script to
> remember for you. gprbuild will work just as well, except of course that
> you do have to have a project file. Why on earth would you need to look
> at $prefix/share/gprconfig?

You misunderstood the discussion. It was not GPR I complained about.

GPR is a language that describes an object language(s) project. I have 
little against it. At least it is has Ada-like syntax.

The discussion was about another language that would describe rules how 
to interpret a GPR file when it refers to some object language X (e.g. 
Ada or C). Roughly it is the language gprconfig uses.

My point was that this knowledge better be an integral part of gprbuild 
as it was of gnatmake. Georg suggested that somebody outside AdaCore 
could interested in keeping it elsewhere as grpbuild attempts to do.

>> Note this same question arises with handling Ada projects. You could
>> try to use a language like GNU make to maintain an Ada project. Or you
>> could have a non-language tool like gnatmake or AdaGIDE to handle
>> that. What works better?
>
> gprbuild, of course.

That is too.

> I think the people who have problems such as you hint at with gprbuild
> are not "normal".

People enjoying playing with gprconfig are definitely not exactly "normal".

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

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

* Re: Building Matreshka on Windows
  2016-11-04 13:28               ` Simon Wright
  2016-11-04 16:08                 ` Dmitry A. Kazakov
@ 2016-11-04 16:37                 ` Jeffrey R. Carter
  2016-11-04 18:19                   ` Simon Wright
  2016-11-07  8:39                   ` Jacob Sparre Andersen
  1 sibling, 2 replies; 25+ messages in thread
From: Jeffrey R. Carter @ 2016-11-04 16:37 UTC (permalink / raw)


On 11/04/2016 06:28 AM, Simon Wright wrote:
>
> I just don't understand what makes you say this. If you are happy with
> gnatmake without GPRs, carry on and use it, with all the mess of -A*
> swithces that you will certainly need a makefile or other script to
> remember for you. gprbuild will work just as well, except of course that
> you do have to have a project file. Why on earth would you need to look
> at $prefix/share/gprconfig?

Every Ada compiler includes a tool for building a system based on the dependency 
information in the code. This information is one of Ada's major strengths. One 
has to learn the parameters to this tool, of course, but then building becomes 
one line, easily stored somewhere, such as a script.

So what does a program such as gprbuild buy you? You have to tell gnatmake where 
to find other things used in the system (-A*), but you do the same with 
gprbuild, in the form of paths in the withed projects. You have to supply the 
compiler switches, but you do the same with gprbuild, in the Switches 
declarations. You don't have to write the one-line script, but instead write a 
many-line project file.

Personally, I don't see that gprbuild adds any value; in fact, it seems to 
subtract value: You supply the same information and have to have the same 
knowledge, but you have to know the syntax of a project file as well, so the 
effort is increased. For this reason, I never voluntarily use gprbuild for my 
projects (which are always all Ada), and don't understand why anyone would think 
it an advantage to do so.

(Similar arguments apply against make.)

-- 
Jeff Carter
"If I could find a sheriff who so offends the citizens of Rock
Ridge that his very appearance would drive them out of town ...
but where would I find such a man? Why am I asking you?"
Blazing Saddles
37


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

* Re: Building Matreshka on Windows
  2016-11-04 16:08                 ` Dmitry A. Kazakov
@ 2016-11-04 18:14                   ` Simon Wright
  0 siblings, 0 replies; 25+ messages in thread
From: Simon Wright @ 2016-11-04 18:14 UTC (permalink / raw)


"Dmitry A. Kazakov" <mailbox@dmitry-kazakov.de> writes:

> On 2016-11-04 14:28, Simon Wright wrote:
>> "Dmitry A. Kazakov" <mailbox@dmitry-kazakov.de> writes:

>> I just don't understand what makes you say this.

> You misunderstood the discussion. It was not GPR I complained about.

I did. Sorry.

> People enjoying playing with gprconfig are definitely not exactly
> "normal".

I never said I enjoyed it!

I was once congratulated by an AdaCore person for having managed to find
a gprconfig problem :)

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

* Re: Building Matreshka on Windows
  2016-11-04 16:37                 ` Jeffrey R. Carter
@ 2016-11-04 18:19                   ` Simon Wright
  2016-11-07  8:39                   ` Jacob Sparre Andersen
  1 sibling, 0 replies; 25+ messages in thread
From: Simon Wright @ 2016-11-04 18:19 UTC (permalink / raw)


"Jeffrey R. Carter" <spam.jrcarter.not@spam.not.acm.org> writes:

> So what does a program such as gprbuild buy you? You have to tell
> gnatmake where to find other things used in the system (-A*), but you
> do the same with gprbuild, in the form of paths in the withed
> projects.

But at least that's a problem solved locally in the withed projects
(which can use relative paths).

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

* Re: Building Matreshka on Windows
  2016-11-04 16:37                 ` Jeffrey R. Carter
  2016-11-04 18:19                   ` Simon Wright
@ 2016-11-07  8:39                   ` Jacob Sparre Andersen
  2016-11-07  8:50                     ` Simon Wright
  1 sibling, 1 reply; 25+ messages in thread
From: Jacob Sparre Andersen @ 2016-11-07  8:39 UTC (permalink / raw)


Jeffrey R. Carter wrote:

[about all Ada projects]

> Every Ada compiler includes a tool for building a system based on the
> dependency information in the code. This information is one of Ada's
> major strengths. One has to learn the parameters to this tool, of
> course, but then building becomes one line, easily stored somewhere,
> such as a script.

Yes.  But don't you need to have two versions of that script, one for
Microsoft hosted compilers, and one for Unix hosted compilers?  Using
GNAT project files, you can typically get away with having only one.

> So what does a program such as gprbuild buy you?

If your projects only contain Ada sources - nothing that "gnatmake"
didn't have as well.

Since I typically work on multi-language projects (Ada,
Mercurial/Subversion, Macks, C), "gprbuild" makes a big difference for
me.

But I'm not at all fond of "gprconfig".  I'm in the middle of figuring
out how I can avoid "gprconfig", and provide ready to use ".cgpr" files
instead of providing XML files for "gprconfig", which have to be
installed before the project can be built.

Greetings,

Jacob
-- 
"Then, after a second or so, nothing continued to happen."

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

* Re: Building Matreshka on Windows
  2016-11-07  8:39                   ` Jacob Sparre Andersen
@ 2016-11-07  8:50                     ` Simon Wright
  2016-11-07  9:03                       ` Jacob Sparre Andersen
  0 siblings, 1 reply; 25+ messages in thread
From: Simon Wright @ 2016-11-07  8:50 UTC (permalink / raw)


Jacob Sparre Andersen <jacob@jacob-sparre.dk> writes:

> But I'm not at all fond of "gprconfig".  I'm in the middle of figuring
> out how I can avoid "gprconfig", and provide ready to use ".cgpr"
> files instead of providing XML files for "gprconfig", which have to be
> installed before the project can be built.

They don't have to be "installed", at any rate not in the default
location. gprbuild has a --db switch:

  --db dir Parse dir as an additional knowledge base
  --db-    Do not load the standard knowledge base


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

* Re: Building Matreshka on Windows
  2016-11-07  8:50                     ` Simon Wright
@ 2016-11-07  9:03                       ` Jacob Sparre Andersen
  0 siblings, 0 replies; 25+ messages in thread
From: Jacob Sparre Andersen @ 2016-11-07  9:03 UTC (permalink / raw)


Simon Wright <simon@pushface.org> writes:

> They don't have to be "installed", at any rate not in the default
> location. gprbuild has a --db switch:

Thanks!  Hadn't noticed that.

Greetings,

Jacob
-- 
»You know the world has gone crazy when the best rapper is a
 white guy, the best golfer is a black guy, the swiss hold
 the America's cup, France is accusing the U.S. of
 arrogance, and Germany doesn't want to go to war«

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

* Re: Building Matreshka on Windows
  2016-11-02 21:29 Building Matreshka on Windows Shark8
  2016-11-03  8:18 ` Dmitry A. Kazakov
@ 2016-11-29 15:22 ` Maxim Reznik
  2016-11-29 23:49   ` Shark8
  1 sibling, 1 reply; 25+ messages in thread
From: Maxim Reznik @ 2016-11-29 15:22 UTC (permalink / raw)


среда, 2 ноября 2016 г., 23:29:17 UTC+2 пользователь Shark8 написал:
> I recently came across Matreshka on this wikipedia page -- https://en.wikibooks.org/wiki/Ada_Programming/Libraries/Database -- when searching for FireBird bindings to Ada... Ada bindings to FireBirs? Whatever.
> 
> Anyway, the user-guide is pretty unhelpful when on a Windows machine -- http://forge.ada-ru.org/matreshka/wiki/Guide -- essentially requiring the whole unix-like environment... so my questions are thus: has anyone gotten it to build on Windows? has anyone gotten it to build WITHOUT Cygwin, MSYS, etc?
> 

You don't need Cygwin nor MSYS to compile matreshka. Just two packages make and coreutils (together less then 10 Mb in size, url in the guide). Just install these two pieces of software. That's all you need to start compilation.

So, yes - it works on windows without any problem. yes - it works WITHOUT Cygwin and MSYS.

What build driver do you prefer? maven, NuGet, chocolately, Web PI or PowerShell? ;)

> PS -- I'd much rather not use Cygwin et al; it adds another layer of tools and idiosyncrasies to the environment.
> 
> PPS -- Why do people think "make" is a good way to build/install anyway? (I tried running it through Borland's make, but no joy -- what else do you expect from a tool developed on/with/for C?)


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

* Re: Building Matreshka on Windows
  2016-11-29 15:22 ` Maxim Reznik
@ 2016-11-29 23:49   ` Shark8
  2016-11-30 11:45     ` Maxim Reznik
  0 siblings, 1 reply; 25+ messages in thread
From: Shark8 @ 2016-11-29 23:49 UTC (permalink / raw)


On Tuesday, November 29, 2016 at 8:22:48 AM UTC-7, Maxim Reznik wrote:
> среда, 2 ноября 2016 г., 23:29:17 UTC+2 пользователь Shark8 написал:
> > I recently came across Matreshka on this wikipedia page -- https://en.wikibooks.org/wiki/Ada_Programming/Libraries/Database -- when searching for FireBird bindings to Ada... Ada bindings to FireBirs? Whatever.
> > 
> > Anyway, the user-guide is pretty unhelpful when on a Windows machine -- http://forge.ada-ru.org/matreshka/wiki/Guide -- essentially requiring the whole unix-like environment... so my questions are thus: has anyone gotten it to build on Windows? has anyone gotten it to build WITHOUT Cygwin, MSYS, etc?
> > 
> 
> You don't need Cygwin nor MSYS to compile matreshka. Just two packages make and coreutils (together less then 10 Mb in size, url in the guide). Just install these two pieces of software. That's all you need to start compilation.

Thank you for the info.

> So, yes - it works on windows without any problem. yes - it works WITHOUT Cygwin and MSYS.

Here's the output of attempting to run make (after installing GNU make and coreutils):

C:\Programming\Libraries\Matreshka>make
make reconfig
make[1]: Entering directory `C:/Programming/Libraries/Matreshka'
gnatmake -p -j0  -Pgnat/tools_configure.gpr
object directory "C:\Programming\Libraries\Matreshka\gnat\..\.objs\configure\" created
gcc -c -g -gnat12 -gnato -fstack-check configure-driver.adb
gcc -c -g -gnat12 -gnato -fstack-check configure.adb
gcc -c -g -gnat12 -gnato -fstack-check configure-architecture.adb
gcc -c -g -gnat12 -gnato -fstack-check configure-instantiate.adb
gcc -c -g -gnat12 -gnato -fstack-check configure-internals.adb
gcc -c -g -gnat12 -gnato -fstack-check configure-rtl_version.adb
gcc -c -g -gnat12 -gnato -fstack-check configure-tests.ads
gcc -c -g -gnat12 -gnato -fstack-check configure-tests-asis.adb
gcc -c -g -gnat12 -gnato -fstack-check configure-tests-firebird.adb
gcc -c -g -gnat12 -gnato -fstack-check configure-tests-gprbuild.adb
gcc -c -g -gnat12 -gnato -fstack-check configure-tests-install.adb
gcc -c -g -gnat12 -gnato -fstack-check configure-tests-installation_directories.adb
gcc -c -g -gnat12 -gnato -fstack-check configure-tests-modules.ads
gcc -c -g -gnat12 -gnato -fstack-check configure-tests-modules-amf.adb
gcc -c -g -gnat12 -gnato -fstack-check configure-tests-mysql.adb
gcc -c -g -gnat12 -gnato -fstack-check configure-tests-oci.adb
gcc -c -g -gnat12 -gnato -fstack-check configure-tests-operating_system.adb
gcc -c -g -gnat12 -gnato -fstack-check configure-tests-postgresql.adb
gcc -c -g -gnat12 -gnato -fstack-check configure-tests-sqlite3.adb
gcc -c -g -gnat12 -gnato -fstack-check configure-tests-valgrind.adb
gcc -c -g -gnat12 -gnato -fstack-check configure-version.adb
gcc -c -g -gnat12 -gnato -fstack-check configure-builder.adb
gcc -c -g -gnat12 -gnato -fstack-check configure-abstract_tests.adb
gcc -c -g -gnat12 -gnato -fstack-check configure-pkg_config.adb
gcc -c -g -gnat12 -gnato -fstack-check configure-component_switches.adb
gprbind configure-driver.bexch
gnatbind configure-driver.ali
gcc -c b__configure-driver.adb
gcc configure-driver.o -o configure.exe
./configure
[os        ] detecting target operating system: Windows
[gprbuild  ] looking for GPRbuild: C:\Programming\GNAT\2016\bin\gprbuild.exe
[gprbuild  ] checking GPRbuild version: ok
[asis      ] checking whether ASIS library is available: no
[modules   ] checking whether to build AMF module: no
[mysql     ] checking whether to build MySQL module: no (mysql_config not found)

configure.exe: (info) MySQL driver module is disabled
[oci       ] checking whether to build Oracle module: no (not found)
configure.exe: (info) Oracle driver module is disabled
[postgresql] checking whether to build PostgreSQL module: no (pg_config not foun
d)
configure.exe: (info) PostgreSQL driver module is disabled
[sqlite3   ] checking whether to build SQLite3 module: no (pkg-config not found)

configure.exe: (info) SQLite3 driver module is disabled
[firebird  ] checking whether to build Firebird module: yes (try default)
[firebird  ] checking whether Firebird library is usable: no
configure.exe: (info) Firebird driver module is disabled
configure.exe: VALGRIND =>
configure.exe: HAS_FIREBIRD =>
configure.exe: MYSQL_LIBRARY_OPTIONS =>
configure.exe: INSTALL => C:/Program Files (x86)/Coreutils/bin/install.exe
configure.exe: GPRDIR => /usr/local/lib/gnat
configure.exe: GPRBUILD => C:/Programming/GNAT/2016/bin/gprbuild.exe
configure.exe: HAS_SQLITE3 =>
configure.exe: OPERATING_SYSTEM => Windows
configure.exe: FIREBIRD_LIBRARY_OPTIONS =>
configure.exe: HAS_MYSQL =>
configure.exe: VERSION => 0.7.0
configure.exe: ARCHITECTURE => x86
configure.exe: BINDIR => /usr/local/bin
configure.exe: LIBDIR => /usr/local/lib
configure.exe: HAS_ASIS =>
configure.exe: HAS_GPRBUILD2014 =>
configure.exe: HAS_POSTGRESQL =>
configure.exe: OCI_LIBRARY_OPTIONS =>
configure.exe: HAS_OCI =>
configure.exe: PREFIX => /usr/local
configure.exe: POSTGRESQL_LIBRARY_OPTIONS =>
configure.exe: HAS_VALGRIND =>
configure.exe: SQLITE3_LIBRARY_OPTIONS =>
configure.exe: HAS_WORKING_MYSQL_SERVER =>
configure.exe: RTL_VERSION_SUFFIX => -2016
configure.exe: ENABLE_AMF =>
configure.exe: creating Makefile.config
configure.exe: creating gnat/install/matreshka_config.gpr
configure.exe: creating gnat/matreshka_config.gpr
configure.exe: creating source/league/matreshka-config.ads
make[1]: Leaving directory `C:/Programming/Libraries/Matreshka'
make: Interrupt/Exception caught (code = 0xc00000fd, addr = 0x4217b3)

C:\Programming\Libraries\Matreshka>make install
make -f Makefile.install
make: Interrupt/Exception caught (code = 0xc00000fd, addr = 0x4217b3)
make: *** [install] Error 255


> What build driver do you prefer? maven, NuGet, chocolately, Web PI or PowerShell? ;)

It doesn't exist. (Yet.) ;)
Of those you listed PowerShell is, IMO, the best... but that's not really saying a lot. (GPRBuild is usable, in the way that C is, but we *really* ought to have a better project language.)


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

* Re: Building Matreshka on Windows
  2016-11-29 23:49   ` Shark8
@ 2016-11-30 11:45     ` Maxim Reznik
  0 siblings, 0 replies; 25+ messages in thread
From: Maxim Reznik @ 2016-11-30 11:45 UTC (permalink / raw)


среда, 30 ноября 2016 г., 1:49:13 UTC+2 пользователь Shark8 написал:
> C:\Programming\Libraries\Matreshka>make install
> make -f Makefile.install
> make: Interrupt/Exception caught (code = 0xc00000fd, addr = 0x4217b3)
> make: *** [install] Error 255
> 
> 

It seems your make is unable to start make. Could you add path to make.exe into PATH environment on the system level (/My Computer/Properties/Advanced/Environment Variables/PATH=). Restart shell to apply new PATH setting and try again.

I see also that configure.exe doesn't find firebird automatically. Try to specify firebird directory explicitly:

make config
configure.exe --with-firebird-libdir="C:\Program Files\Firebird\Firebird_3_0"
make

> > What build driver do you prefer? maven, NuGet, chocolately, Web PI or PowerShell? ;)
> 
> It doesn't exist. (Yet.) ;)
> Of those you listed PowerShell is, IMO, the best... but that's not really saying a lot. (GPRBuild is usable, in the way that C is, but we *really* ought to have a better project language.)


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

end of thread, other threads:[~2016-11-30 11:45 UTC | newest]

Thread overview: 25+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-11-02 21:29 Building Matreshka on Windows Shark8
2016-11-03  8:18 ` Dmitry A. Kazakov
2016-11-03 15:32   ` Olivier Henley
2016-11-03 16:10     ` Dmitry A. Kazakov
2016-11-03 17:50       ` Simon Wright
2016-11-03 18:42         ` G.B.
2016-11-04  8:55           ` Simon Wright
2016-11-04  9:19             ` G.B.
2016-11-03 18:02       ` Olivier Henley
2016-11-03 20:18         ` Dmitry A. Kazakov
2016-11-03 22:39           ` gautier_niouzes
2016-11-04  8:28             ` Dmitry A. Kazakov
2016-11-04  8:57           ` G.B.
2016-11-04  9:29             ` Dmitry A. Kazakov
2016-11-04 13:28               ` Simon Wright
2016-11-04 16:08                 ` Dmitry A. Kazakov
2016-11-04 18:14                   ` Simon Wright
2016-11-04 16:37                 ` Jeffrey R. Carter
2016-11-04 18:19                   ` Simon Wright
2016-11-07  8:39                   ` Jacob Sparre Andersen
2016-11-07  8:50                     ` Simon Wright
2016-11-07  9:03                       ` Jacob Sparre Andersen
2016-11-29 15:22 ` Maxim Reznik
2016-11-29 23:49   ` Shark8
2016-11-30 11:45     ` Maxim Reznik

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