[fpc-pascal] reading PPU files
Michael Van Canneyt
michael at freepascal.org
Wed Jun 25 13:30:44 CEST 2008
On Wed, 25 Jun 2008, Peter Vreman wrote:
> Peter Vreman wrote:
> > Florian Klaempfl wrote:
> > > Mattias Gaertner schrieb:
> > > > On Tue, 24 Jun 2008 23:14:34 +0200
> > > > Florian Klaempfl <florian at freepascal.org> wrote:
> > > >
> > > > > Mattias Gaertner schrieb:
> > > > > > I want to read ppu files like the ppudump tool.
> > > > > > ppudump uses the unit compiler/ppu.pp, but ppu.ppu is not
> > > > > > installed by default. At least not on debian.
> > > > > >
> > > > > > Should I make a copy of this unit?
> > > > > No ;)
> > > > >
> > > > > > Will this work for the various compilers (e.g. compiling the tool
> > > > > > with 2.2.3 and reading 2.2.x and 2.3.x ppu files)?
> > > > > Sometimes it works, sometimes not. ppudump is also often out of date.
> > > > > What exactly do you want to achive?
> > > >
> > > > Reading ppu files with the codetools. First getting information about
> > > > unit dependencies and initialization/finalization sections. Later some
> > > > type information.
> > >
> > > Well, if you really dare to do so, the best is probably copying from time
> > > to time the necessary fpc sources.
> >
> > The ppu unit from the compiler and ppudump has become too much dependent on
> > other units of the compiler that i don't think it is recommended to be used
> > by other projects. The current dependencies are below:
> >
> > Compiling ppudump.pp
> > Compiling /home/peter/fpc/compiler/constexp.pas
> > Compiling /home/peter/fpc/compiler/ppu.pas
> > Compiling /home/peter/fpc/compiler/globtype.pas
> > Compiling /home/peter/fpc/compiler/systems.pas
> > Compiling /home/peter/fpc/compiler/cutils.pas
> > Compiling /home/peter/fpc/compiler/fpccrc.pas
> > Compiling /home/peter/fpc/compiler/cclasses.pas
> > Compiling /home/peter/fpc/compiler/cstreams.pas
> > Compiling /home/peter/fpc/compiler/i386/cpuinfo.pas
> > Compiling /home/peter/fpc/compiler/version.pas
> >
> > It might be better to write a clean PPU reader using streams. The PPU format
> > is stable and TLV based so multiple ppu-versions can be supported. For the
> > compiler and ppudump this is not a requirement, but for lazarus it is needed
> > especially if it wants to use type information.
>
> An idea might be to create a new fcl-ppu package that contains such a new
> unit. The ppudump and ppumove tools can then be moved to this new package to.
> The package provides a clean and independent code base for ppu
> reading/writing. The ppu package can depedent on regular units and packages
> like classes and hash intsead of compiler local copies.
>
> Maybe some parts of ppudump can be put in a separate unit to have a common
> class available that can be used for type name and location resolving.
I'm all for this idea :)
Michael.
More information about the fpc-pascal
mailing list