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 😉
....+....1....+....2....+....3....+....4....+....5....+....6....+....7....+....8....+....9....+....0....+.... In the following example, the code begins in column 1. The second DSPLY operation extends beyond column 90. **FREE ctl-opt main(greeting); dcl-proc greeting; dsply 'Hello'; dsply world!'; end-proc;
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.
Take your existing RPG code and add **FREE to line one
Then simply click FORMAT on the SOURCE menu (or press CTRRL|SHIFT|F)
and *BOOM* cleanly formatted source code:
#NICE work IBM !
IBM i Software Developer, Digital Dad, AS400 Anarchist, RPG Modernizer, Alpha Nerd and Passionate Eater of Cheese and Biscuits. Nick Litten Dot Com is a mixture of blog posts that can be sometimes serious, frequently playful and probably down-right pointless all in the space of a day. Enjoy your stay, feel free to comment and in the words of the most interesting man in the world: Stay thirsty my friend.
RPG Divide and Move Remainder – DIV MVR in ILE RPGLE /FREE
Free RPG Editor – ILEDITOR could be called RDi Lite ;)
Scan Replace in RPGLE and SQLRPGLE
What’s the best Free RPG Editor?
Dirty RPG programmers need to write Clean RPG Code
Write to joblog messages from RPGLE /FREE – a QMHSNDPM code example
Write to joblog messages from RPGLE /FREE – easy code example using Qp0zLprintf
RPG Example reading JSON using YAJL from IFS
RPG **FREE is finally fully free form