[fpc-devel] OO rewrite - first round finished

Hans-Peter Diettrich DrDiettrich1 at aol.com
Sat Jul 31 04:23:41 CEST 2010

Jonas Maebe schrieb:

>> Now the differences between branch and updated trunk already result
>> in problems[1], that make testing the OO compiler near impossible.
>> This raises the question, how to proceed with the integration of
>> both version?
> That would be easier to answer if you would at least mention a) which
> difference causes b) which problem

Sorry, I cannot find out why I had to change part of the statement
procedure. SVN[1] doesn't show trunk changes since the creation of the
branch, for the units I had in mind. Possibly I've only been fooled by
Lazarus code tool problems, not sure right now :-(

The problem is a Nil reference, most probably resulting from changed
management of the global variables. I just found out that
parser.compile() is used in different context, once for the command line
file argument, and multiple times for the compilation of used units. In
the latter case a ppumodule object already exists, so that both cases
must be handled slightly differently. Most probably I missed that
difference in my initial changes to the parser setup for a new module :-(

[1] How can I find out the differences between trunk and branch
versions, using [Tortoise]SVN? Or the differences between two revisions
in general? Kdesvn seems to offer an option "compare revisions"...

>>>> Now I need assistance in testing
>>> Try building fpc: make all
>> There remains one bug, of unknown reason. How can this be debugged?
> In whichever way you are used to debug: with a debugger, with
> writeln's, ... The compiler is no different than any other program in
> that respect.

While I can use Lazarus to debug the compilation of a single source
file, no such feature exists for Makefiles. I even don't know how to
translate an error address to a source code position. In Delphi I had a
"jump to address..." menu item...

>> [1] Lazarus (code tools) also have problems with the recent update.
>> Will the parsers be updated soon? Who is doing that?
>> From this remark I guess that you are talking about the change to
>> rtl/objpas/fgl.pp? Please don't make people guess when asking for
>> information.

I don't know what has changed where and when. At least does Lazarus 
(trunk version) fail to determine the selected branch in {$IF }, and 
also disabled "Result" in code completion inside a function, in at least 
one case. That's why I think that something's broken now.

> To avoid problems with your branch simply use an older revision of
> the RTL to test (r15646 or earlier). In the future you may want to
> branch the entire FPC repository rather than only the compiler if you
> want to avoid such problems.

One of my problems seems to be the fpc.cfg, that should refer to the
trunk compiler and source files first, in the compilation of the new 
compiler, and to the new compiler (and an
older source revision) later. Where should I place such different config
files, or how do I select one for Make?


More information about the fpc-devel mailing list