Compiling multiple files with NetRexx

classic Classic list List threaded Threaded
9 messages Options
Reply | Threaded
Open this post in threaded view
|

Compiling multiple files with NetRexx

Thomas.Schneider.Wien
Hello there, again,
   I do have an RFD (Request for Development) for the NetRexx Compiler.

When compiling multiple Files, for instance, all Files in a directory,
by saying:

nrc *.nrx

Then the current implementation does  report everything OK, BUT:

When there is ANY error in the BUNCH of files,  the classes for the
sources which are OK are *NOT* created, although the NetRexx Compiler
does report 'compilation successful' for the successful attempts.

I did have some discussion with Mike about this, and do *NOT* like to
repeat this discussion.

But I *do think*, very strongly, that the successful parts *should be*
compiled
in the first step, so that an iterative execution has less and less
files actually to compile.

What do you think there (on the group) on this issue ?

Tom
.

_______________________________________________
Ibm-netrexx mailing list
[hidden email]

Tom. (ths@db-123.com)
Reply | Threaded
Open this post in threaded view
|

RE: Compiling multiple files with NetRexx

Mike Cowlishaw
 

> When there is ANY error in the BUNCH of files,  the classes
> for the sources which are OK are *NOT* created, although the
> NetRexx Compiler does report 'compilation successful' for the
> successful attempts.
>
> I did have some discussion with Mike about this, and do *NOT*
> like to repeat this discussion.
>
> But I *do think*, very strongly, that the successful parts
> *should be* compiled in the first step, so that an iterative
> execution has less and less files actually to compile.
>
> What do you think there (on the group) on this issue ?

The errors that would prevent the class files being produced would be of
the kind that failed at the first step -- typically a missing class,
superclass, or interface ... long before any class file has been (or could
be) produced.  If a bunch of source files are being compiled together, it
is assumed they are inter-dependent (otherwise why not compile them
separately?), and in which case they must all compile or probably you have
a non-working project and certainly javac could not compile all the .java
files to make the new .class files without error.

I may be remembering wrong, but I do not think that in any case NetRexxC
erases class files that already exist.  There's no 'roll-back'; either
everything looks good and all new class files are produced or something is
wrong and no new class files are produced.

Mike
 

_______________________________________________
Ibm-netrexx mailing list
[hidden email]

Reply | Threaded
Open this post in threaded view
|

Re: Compiling multiple files with NetRexx

Thomas.Schneider.Wien
Hello Mike,
   1.) Thanks for your prompt reply, as usual :-)
   2.) I did already resolve my problem in question by distributing the
classes to proper sub-directories.

I only wondered what that 'internal class hierarchy error' does mean ....

Issue closed from my side. ;-)

Tom.

PS: But I *do still think* that NetRexx should report a USER error, *not
an internal* NetRexx error,
with an abort.... ;-)
Thomas.
=======================================================================


Mike Cowlishaw schrieb:

>  
>  
>> When there is ANY error in the BUNCH of files,  the classes
>> for the sources which are OK are *NOT* created, although the
>> NetRexx Compiler does report 'compilation successful' for the
>> successful attempts.
>>
>> I did have some discussion with Mike about this, and do *NOT*
>> like to repeat this discussion.
>>
>> But I *do think*, very strongly, that the successful parts
>> *should be* compiled in the first step, so that an iterative
>> execution has less and less files actually to compile.
>>
>> What do you think there (on the group) on this issue ?
>>    
>
> The errors that would prevent the class files being produced would be of
> the kind that failed at the first step -- typically a missing class,
> superclass, or interface ... long before any class file has been (or could
> be) produced.  If a bunch of source files are being compiled together, it
> is assumed they are inter-dependent (otherwise why not compile them
> separately?), and in which case they must all compile or probably you have
> a non-working project and certainly javac could not compile all the .java
> files to make the new .class files without error.
>
> I may be remembering wrong, but I do not think that in any case NetRexxC
> erases class files that already exist.  There's no 'roll-back'; either
> everything looks good and all new class files are produced or something is
> wrong and no new class files are produced.
>
> Mike
>  
>
> _______________________________________________
> Ibm-netrexx mailing list
> [hidden email]
>
>
>  

_______________________________________________
Ibm-netrexx mailing list
[hidden email]

Tom. (ths@db-123.com)
Reply | Threaded
Open this post in threaded view
|

Re: Compiling multiple files with NetRexx

Fernando Cassia-2
In reply to this post by Thomas.Schneider.Wien


On Sun, Mar 7, 2010 at 10:40 AM, Thomas Schneider <[hidden email]> wrote:
Hello there, again,
 I do have an RFD (Request for Development) for the NetRexx Compiler.

When compiling multiple Files, for instance, all Files in a directory, by saying:

nrc *.nrx

Then the current implementation does  report everything OK, BUT:

When there is ANY error in the BUNCH of files,  the classes for the
sources which are OK are *NOT* created, although the NetRexx Compiler
does report 'compilation successful' for the successful attempts.

If there´s a situation where a given program works when acting on individual files, but fails when specifying wildcards (i guess this is what happens by reading your description), you can work around the problem by using my favourite freeware utility, Kai Uwe Rommel´s "Forall.exe" which is dated around 1997 and went from dos, to 32-bit OS/2 and then to Windows (win32).

It´s a tiny, very useful command line utility. It lets you invoke any command line tool as many times as needed, based on wildcards...

Here, the link to the win32 version:
http://www.ars.de/file/forall.zip

Basically you´d do

forall *.nrx : nrc @f

And forall.exe would invoke "nrc filename" a dozen or a thousand times, based on files matching the wildcard.

Of course, this is no use for you if you´re using Linux, and there´s probably a simple way to achieve the same on bash without running any binary utility other than just system utils or bash...

FC


_______________________________________________
Ibm-netrexx mailing list
[hidden email]

Reply | Threaded
Open this post in threaded view
|

Re: Compiling multiple files with NetRexx

Stephen Y Odo
I think it's something like this ...

   for i in *.nrx; do; nrc $i; done

--Stephen



Fernando Cassia wrote:

> If there´s a situation where a given program works when acting on
> individual files, but fails when specifying wildcards (i guess this is
> what happens by reading your description), you can work around the
> problem by using my favourite freeware utility, Kai Uwe Rommel´s
> "Forall.exe" which is dated around 1997 and went from dos, to 32-bit
> OS/2 and then to Windows (win32).
>
> It´s a tiny, very useful command line utility. It lets you invoke any
> command line tool as many times as needed, based on wildcards...
>
> Here, the link to the win32 version:
> http://www.ars.de/file/forall.zip
>
> Basically you´d do
>
> forall *.nrx : nrc @f
>
> And forall.exe would invoke "nrc filename" a dozen or a thousand
> times, based on files matching the wildcard.
>
> Of course, this is no use for you if you´re using Linux, and there´s
> probably a simple way to achieve the same on bash without running any
> binary utility other than just system utils or bash...

_______________________________________________
Ibm-netrexx mailing list
[hidden email]

Reply | Threaded
Open this post in threaded view
|

Re: Compiling multiple files with NetRexx

Fernando Cassia-2
On Mon, Mar 8, 2010 at 4:36 PM, Stephen Y Odo <[hidden email]> wrote:
> I think it's something like this ...
>
>   for i in *.nrx; do; nrc $i; done

Thanks Stephen, yes that looks like bash for loops...

FC

_______________________________________________
Ibm-netrexx mailing list
[hidden email]

Reply | Threaded
Open this post in threaded view
|

Re: Compiling multiple files with NetRexx

Thomas.Schneider.Wien
In reply to this post by Stephen Y Odo
Hello Stephen.

   Mike F.Cowlishaw did make a very good decision how to be able to
COMPILE inter-dependent
NetRexx source programs (like my ReyMsg and ReyFile) where ReyFile calls
ReyMsg, and vice versa...

Praise, Mike :-)
Tom.
======================================================================


Stephen Y Odo schrieb:

> I think it's something like this ...
>
>    for i in *.nrx; do; nrc $i; done
>
> --Stephen
>
>
>
> Fernando Cassia wrote:
>  
>> If there´s a situation where a given program works when acting on
>> individual files, but fails when specifying wildcards (i guess this is
>> what happens by reading your description), you can work around the
>> problem by using my favourite freeware utility, Kai Uwe Rommel´s
>> "Forall.exe" which is dated around 1997 and went from dos, to 32-bit
>> OS/2 and then to Windows (win32).
>>
>> It´s a tiny, very useful command line utility. It lets you invoke any
>> command line tool as many times as needed, based on wildcards...
>>
>> Here, the link to the win32 version:
>> http://www.ars.de/file/forall.zip
>>
>> Basically you´d do
>>
>> forall *.nrx : nrc @f
>>
>> And forall.exe would invoke "nrc filename" a dozen or a thousand
>> times, based on files matching the wildcard.
>>
>> Of course, this is no use for you if you´re using Linux, and there´s
>> probably a simple way to achieve the same on bash without running any
>> binary utility other than just system utils or bash...
>>    
>
> _______________________________________________
> Ibm-netrexx mailing list
> [hidden email]
>
>
>  

_______________________________________________
Ibm-netrexx mailing list
[hidden email]

Tom. (ths@db-123.com)
Reply | Threaded
Open this post in threaded view
|

RE: Compiling multiple files with NetRexx

Mike Cowlishaw
In reply to this post by Stephen Y Odo
> I think it's something like this ...
>
>    for i in *.nrx; do; nrc $i; done
>

[chuckle] ... yes many ways of doing that.  The point that Tom seems to
have missed is that when NetRexx compiles a bunch of files at the same time
it will ensure all those files -- and their interdependencies -- are
resolved at the same time.  Compiling the files individually will not (and
in some cases cannot) give the same results, as when (for example) two
classes refer to each other.

Mike

_______________________________________________
Ibm-netrexx mailing list
[hidden email]

Reply | Threaded
Open this post in threaded view
|

Re: Compiling multiple files with NetRexx

Thomas.Schneider.Wien
Hello Mike,
   *as already DISCUSSED* years ago, I (personally) *do think* that when
your NetRexx Compiler does issue a message:

Compliation succssful

*It should* actually *please* make this compilation......

But I'm *NOT* interested to re-start this discussion again....

I did learn to live what we currently do have with your *reference
Implementation* :-)

Tom.
==============================================================
Mike Cowlishaw schrieb:

>> I think it's something like this ...
>>
>>    for i in *.nrx; do; nrc $i; done
>>
>>    
>
> [chuckle] ... yes many ways of doing that.  The point that Tom seems to
> have missed is that when NetRexx compiles a bunch of files at the same time
> it will ensure all those files -- and their interdependencies -- are
> resolved at the same time.  Compiling the files individually will not (and
> in some cases cannot) give the same results, as when (for example) two
> classes refer to each other.
>
> Mike
>
> _______________________________________________
> Ibm-netrexx mailing list
> [hidden email]
>
>
>  

_______________________________________________
Ibm-netrexx mailing list
[hidden email]

Tom. (ths@db-123.com)