Compile .p file on linux

Chris Johnson

New Member
Hi all.

Have been supporting a Windows based Progress system that grew out of a character based system. Although not used much, the character based system is still there and I need to make a fairly simplpe change to one of the routines.

I have made the change and copied the file to the correct folder but do not know the command line structure to compile it to a .r file. I have tried using the GUI but get an error that a .i file cannot be found although it resides in the same folder.

If someone could point me in the right direction I would appreciate it.

Chris
 

GregTomkins

Active Member
1) Check your PROPATH setting (it's accessible from inside any Procedure Editor, usually set from an environment variable, but can be manipulated directly). Defines where Progress looks for .i files, similar to CLASSPATH in Java.

2) Make sure you have read permission on everything.

There is no command line structure (that I am aware of) to compile directly - you need a miniature program to invoke the Progress compiler. These are trivial to write but you will have the same PROPATH type problems. We use command line for batch recompiles of everything, but for one-off recompiling, we'd always just go into the UI (usually Unix-based character UI, but, you get the idea).
 

rajendran

Member
compile xx.p save into /directory/.this will create the .r and it will pick the .r file from the directory which you specify.
 

RealHeavyDude

Well-Known Member
You don't tell anything about the Progress/OpenEdge version you are using.

The Progress .r files are plattform independent byte code that gets interpreted by the AVM ( ABL Virtual Machine ) much like Java. In theory, if you don't have any operating system or GUI specific code in your .p you can compile it on Windows and run it on Unix/Linux just like that.

As always, there are some limitations:
  • Code that reference OS specific code for example with OS-COMMAND may/will produce runtime errors on a different OS.
  • Code that contains GUI or .NET widgets compiled with the prowin32/prowin AVM won't run with ChUI AVM ( _progress.exe ) at all.
  • Pre-OpenEdge 11 code compiled with the 32Bit AVM won't execute on a 64Bit AMV.
Since OpenEdge 11 most .r files that have no UI will be happily executed on the Unix/Linux 64 AVM when they are compiled with the Windows 32 AVM.

Heavy Regards, RealHeavyDude.
 
Top