As I talked to people last week at the COMMON Conference in Orlando, especially as I described the great new features of IBM i 7.1, they wanted to know two things:
1. Can I upgrade straight from 5.4 (aka V5R4) to 7.1? The answer is Yes!
2. How does program conversion fit into this? The answer to that second question depends on whether you’re coming to 7.1 from 6.1, or from 5.4. And, since the whole program conversion topic seems to generate a bit of mystery, I asked Paul Godtland, one of our uber-experts here in IBM i development, to write a blog that removes that mystery. I think this should help. Paul, take it away.
Let's start right off with the most critical point of this blog entry. The best source of information about program conversion is Redpaper REDP-4293, “IBM i Program Conversion: Getting Ready for 6.1 and Beyond.". This Redpaper was recently updated. Various versions have been published since the 6.1 announce on 7/24/2007.
If you appreciate analogy as well as direct technical information, take a look at the February 2008 magazine article "Driving Into the Future."
Program conversion can seem mysterious since other systems can't do it. However, for IBM i, it's a very natural process. Program conversion relies on the high-level Machine Interface (MI). The MI abstraction is the foundation of the system. It provides the object basis for great system integrity. MI also ensures that Original Program Model (OPM) and Integrated Language Environment (ILE) program operations are described in a manner independent of the hardware technology that will be used to run them. Program conversion takes the MI description of a program object and re-creates the program to run in new ways, on new hardware and operating system features. Program conversion automatically improves software, with no programming changes needed. A converted program still does what its programmer told it to do, just in a better way.
For a program, better can mean faster, safer, more efficient, more adaptable or more friendly with other programs. All of these improvements are possible during MI program conversion. Of course, not every converted program is guaranteed to be noticeably changed in all those ways. Programs are converted to run on IBM i 6.1 or a later release, if the programs were created on V5R4 or an earlier release.
You may be wondering which programs can be converted. A program's creation data provides its MI description. (Creation data is a subset of observability, for those of you familiar with that term.) Creation data must be available to allow the program to be converted. MI programs retain creation data by default so most programs can be converted, going all the way back to programs that were originally created for System/38. Even if an action was taken to remove creation data from external access, Licensed Internal Code (LIC) can still access the creation data, if the target releases the program and its constituent modules are V5R1 or later. Thus a program lacks sufficient creation data for conversion only if the program or at least one of its modules were created for IBM OS/400 V4R5 or an earlier release, and creation data was explicitly removed. Programs without creation data must be recompiled from source.
As you'll see in the Redpaper, the ANZOBJCVN command (analyze object conversion) is provided by PTFs, for releases V5R3 and V5R4. ANZOBJCVN determines whether programs can be converted and estimates conversion times.
Remember, program conversion is needed between a release before 6.1 and release 6.1 or later. Starting with 6.1, programs have a new internal format. Here is conversion information in chart form. Click the following to download the chart: Download You and i 5.12.10 chart
Going forward, some program conversions can also occur due to processor differences. Beginning with 6.1, IBM i supports Adaptive Code Generation (ACG), which allows the latest hardware features to be utilized without recompilation and without loss of efficiency on older processors. Programs created or converted on a system with a POWER6 or POWER7 processor will automatically use certain new hardware features. If those programs are moved to a system running a POWER5 processor, they’re automatically converted before they’re run so they use only hardware features available on all supported processors.
For you history buffs, the 6.1 program conversion is the third one for the MI architecture. The first was in 1988, as programs were converted from System/38 to run on AS/400. The second was in 1995, as programs were converted to run on the PowerPC AS instruction set. As you can see, program conversions aren’t a frequent occurrence. Nor is the decision to require all programs to be converted taken lightly. For these three conversions, there was always a chance customers would have some programs without creation data, and no source to recompile. Yet the vast majority of programs will convert without issue. So, we chose to move forward, to provide a faster, more capable, more robust and secure system, which better leverages customers' hardware investments. Program conversion better positions the system for the future, while also demonstrating IBM's continuing commitment to IBM i.
Comments