February 28


IBM i RPGLE FREE is finally fully free form

By NickLitten

February 28, 2017

#FREE, #freeformat, #ILE, #RPG, #RPG3, #RPG400, #RPGLE

Modern ILE RPG now (finally) supports “fully free form” RPG Source code

This means, we can write RPG code from column 1 to the end of the line — just like other languages. No more jumping to character 10 to get passed the old reserved (H,F,D,I,C,O) specification column.

You must code **FREE in column 1 of the first line of any source member that contains fully-free code. **FREE cannot be coded anywhere but the first line. After that line, the entire source member must be free-format.

If you need any fixed-form statements, I specs, you can put them in a /COPY file… or just write the code better 😉

In the following example, the code begins in column 1. The second DSPLY operation extends beyond column 90.
ctl-opt main(greeting);
dcl-proc greeting; 
 dsply 'Hello';
 dsply world!';

You can copy a fully-free copybook into “classic” source, and you can copy a classic copybook into fully-free source.

There is no limit on the length of your source code line. Obviously there is a limit on the record length for a source physical file, but there is no limit on the length of a line in an IFS file. IFS is the future and I predict we will be using IFS files for our source in code in the very near future. The /COPY directive will also allow any length for the copybook, and copybooks may be IFS files with a long path.

/FREE and /END-FREE directives are not allowed in RPG fully-free source code.

Fully-free RPG requires IBM i Release 7.3, Release 7.2 TR3, or Release 7.1 TR11. RDi Release 9.5 supports **FREE.

Neat RDi formatting with **FREE

Take your existing RPG code and add **FREE to line one

RPG Free form - add FREE in line 1

Then simply click FORMAT on the SOURCE menu (or press CTRRL|SHIFT|F)

RPG Free form - add FREE in line 1 FORMAT

and *BOOM* cleanly formatted source code:


#NICE work IBM !

{"email":"Email address invalid","url":"Website address invalid","required":"Required field missing"}

Join the IBM i Community for FREE Presentations, Lessons, Hints and Tips