<p>Am 26.02.2013 07:33 schrieb "Hans-Peter Diettrich" <<a href="mailto:DrDiettrich1@aol.com">DrDiettrich1@aol.com</a>>:<br>
><br>
> Tomas Hajny schrieb:<br>
><br>
>>> If you'd disable the check you would not be able to use e.g. a 2.4 unit<br>
>>> with 2.6, because the PPU format is different and thus you'd definitely<br>
>>> (not just perhaps!) get errors when the compiler reads the PPU file.<br>
>><br>
>><br>
>> In other words: _If_ someone is motivated enough for such a task, it would<br>
>> be possible to create a convertor from one PPU version to another (and I<br>
>> don't mean a "convertor" only changing the version number but something<br>
>> that really loads the original format of the particular original version<br>
>> and stores the data in the new format with new version). I don't think any<br>
>> of the core developers would be interested in such a task (at least not<br>
>> just for fun because it would not be much fun most likely), but I don't<br>
>> want to talk for others.<br>
>><br>
>> Moreover, note that in addition to PPU version number you also have<br>
>> dependencies related changes in RTL and packages. In other words, you<br>
>> would need to convert the originally used compiled RTL+packages units this<br>
>> way together with your own (compiled) units in order to be able to use<br>
>> those units with the new compiler.<br>
><br>
><br>
> This is where a decompiler could help. It reconstructs the source code from the old PPU, which then can be adoptede and compiled with a newer version.<br>
><br>
> A PPU decompiler is somewhat easy to create, as is for object files of other OO languages, in contrast to an decompiler for executables of an unknown (or multiple) compilers. I wrote decompilers for many compilers, but never for Pascal because I wanted to protect the work of the users of this language.</p>

<p>You need to differentiate here. The compiled code is located in the .o files while the .ppu files contain the information for the compiler to use a compiled unit again (symbol information, definitions, generic token stream, inline node information).</p>

<p>Regards,<br>
Sven</p>