× The internal search function is temporarily non-functional. The current search engine is no longer viable and we are researching alternatives.
As a stop gap measure, we are using Google's custom search engine service.
If you know of an easy to use, open source, search engine ... please contact support@midrange.com.


  • Subject: RE: Additional RPGLE Enhancement Requests
  • From: Bob Cozzi <BobCozzi@xxxxxxx>
  • Date: Sat, 12 Jul 1997 22:40:18 -0500

I'd like to rebut some of Charlie's suggestions...


On Friday, July 11, 1997 10:01 PM, Charlie Massoglia 
[SMTP:cmassoglia@voyager.net] wrote:
> >Mark Lazarus wrote:
> >> In that case, can we request he put in XOR?  :-)
> >
> >Suggestion noted and logged!
> >
> >Cheers!  Hans
> >
> If you are logging suggestions, how about taking care of the following, 
most
> admittedly minor, irritants:
>
> 1.  CVTRPG should drop the CONST keyword when converting a named
>     constant.  It's worthless.  (This should be trivial - please
>     fix it.)


No way! That would not be something I would favor. (I would have said that 
this suggestion sucks, but I'm much more mellow now. <g>)
The CONST keyword easily identifies the item as a constant. That stupid "C" 
in column what-ever-it-is should be optional, and NOT inserted into 
converted code. I my opinion.


>
> 2.  PERRCD should ALWAYS default to 1, not just when CTDATA is
>     specified.  (This should be trivial - please fix it.)

Agreed. And the CTDATA keyword should be optional for compile-time data. 
The PerRcd keyword without any FROMFILE etc. tells the compiler enough. 
CTDATA only causes us to have to recompile when the compiler tells us we 
forgot to put it in for a compile-time array.


> 4.  Permit arithmetic in the %SUBST function in D-specs, e.g.
>
>     D  Combined     30A
>     D   Field1         %SUBST(Combined:1:%SIZE:Field1)
>     D   Field2         %SUBST(Combined:%SIZE(Field1+1):%SIZE(Field2)
>     D   Field3 
        %SUBST(Combined:%SIZE(Field1+Field2+1):%SIZE(Field3)
>
>     Where Field1, Field2, and Field3 are fields from an externally
>     defined file defined the F-specs.
>
>     Or better yet, permit concatenated definitions
>
>     D   Combined       %CONCAT(Field1 + Field2 + Field3)
>
>     This is more than a minor irritant.  It is not possible currently.
>     It is, however, one of the few database dependencies which still
>     exists in RPG IV.

The use of expressions in ALL of the D-spec keywords is mandatory to me. If 
that doesn't get implemented soon, I can't really continue to recommend the 
use of RPG IV.  As for %SUBST and the others, I agree, but full-expression 
support is much more important to me.


> 5.  Permit INDIVIDUAL fields to be externally defined without having
>     to define an externally defined data structure.
>
>     D   Temp2   S      like(field2:filename1:optrecfmt1)
>     D           DS
>     D   Temp4          like(field4:filename2:optrecfmt4)
>     D   Temp3          like(field3:filename1:optrecfmt1)
>
>     where filename1 and filename2 are not used at all in the program.

Agreed!


> 6.  Permit the name of an externally defined file to optionally show
>     up in DSPPFMREF output.

You mean it doesn't do this already?  How silly.

> 12.  You added the ALLOC and DEALLOC operation codes to replace the
>      calls to the dynamic storage allocation APIs.  These APIs and
>      the new op codes are used by VERY FEW people.  EVERYONE who
>      begins coding RPG IV in a true ILE environment has to call
>      the end API to delete an activation group.  How about finally
>      giving us the STOP operation code?  (This should be trivial -
>      please fix it.)

Well, the ability to END a named activation group automatically (like a 
*NEW one does) is a really show-stopper. I could never tell people to take 
advantage of activation groups until this option is added to ILE. It's just 
crazy not having it.


> 13.  We have ITER and LEAVE to exit a do loop.  How do we exit a
>      subroutine without doing a GOTO.  What above an operation code
>      to GOTO *ENDSR just like ITER does a GOTO ENDO and LEAVE does
>      a GOTO ENDO+1.  I have no idea what to call the op code.  I
>      just know we desperately need it.  (This should be trivial -
>      please fix it.)

In subprocedures, it's called RETURN. In subroutines, perhaps EXIT would 
work. If that doesn't offend the EXIT/RLABL crowd.


> 14.  Since ALLOC and DEALLOC can be used to extend an array at
>      execution time, what about simply defining an array as
>      extendable, e.g.
>
>      D  Array      S       10P 2    DIM(50) EXTEND(50)
>
>      with EXTEND defaulting to EXTEND(%ELEM(Array))

I agree. Without a doubt, this is the kind of thing we really wanted 
anyway. The use of DEALLOC is not more useful that calling the C-runtime 
library to do a malloc. We are RPG programmers, we dont' give a rat's butt 
about pointers and dynamic memory. Give use the D-spec keywords to do this 
easily, and clearly. Please.



And for one of my own....

Please, when we're using a V3R7 machine (for example) and we want to 
compile stuff for V3R1 or similar, allow us to use the non-operating system 
release dependant features of the language. I mean the new preprocessor 
directives are great! But they are totally useless unless everybody on 
Earth moves to V3R7. So what good are they? The don't do anything to the 
compiled code? Why can't my V3R7 RPG IV compiler target V3R1 and use the 
preprocessor directives?  Well, I technically know why, so my requirement 
is, change it.

Thanks!

Bob Cozzi

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* This is the Midrange System Mailing List!  To submit a new message,   *
* send your mail to "MIDRANGE-L@midrange.com".  To unsubscribe from     *
* this list send email to MAJORDOMO@midrange.com and specify            *
* 'unsubscribe MIDRANGE-L' in the body of your message.  Questions      *
* should be directed to the list owner / operator: david@midrange.com   *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *


As an Amazon Associate we earn from qualifying purchases.

This thread ...


Follow On AppleNews
Return to Archive home page | Return to MIDRANGE.COM home page

This mailing list archive is Copyright 1997-2024 by midrange.com and David Gibbs as a compilation work. Use of the archive is restricted to research of a business or technical nature. Any other uses are prohibited. Full details are available on our policy page. If you have questions about this, please contact [javascript protected email address].

Operating expenses for this site are earned using the Amazon Associate program and Google Adsense.