[lazarus] Holy Grail

Peter Dyson peter at skel.demon.co.uk
Thu Mar 2 10:45:54 EST 2000


Ok, sorry to sound such a pain, but I am only trying
to put forward niggles that would annoy the point and
click world.

In trying to modify the nwEdit sources as little as possible
I have been trying to keep the file names in the original 
mixed case format. Make seems to cope fine if you ensure
the filename is correctly capitalised and for most of the 
source files this works fine.

However where there is a circular dependancy in the 
source unit files, UnitA uses UnitB and UnitB uses UnitA
then only one of the files needs to be passed through make 
and fpc takes over the circular dependency resolution.

I know, circular dependencies are 'A Bad Thing'. 

It is my hope, that we could, in the future, sumbit the 
changes required to the sources back into the mwEdit team.
This would give some good free press to fpc and 
lazarus if windows users saw this code was being compiled 
under Linux and  also show how much work is involved in
porting.
It would also make future maintenance much, much easier.

As Pascal is case insensitive it would be impossible to have,
Uses UNITA, unita; even if the underlying filesystem allowed
this, so could fpc be made to resolve UnitA.pp, unita.pp or 
any variant of the filename under case sensitive filesystems?

I realise that to do ths fully would require grepping all the 
search dirs which is not a good thing, but if the users wants to 
used mixed case capitisation and he has a filename UnitA.p[p|as]
could we accept 'uses UnitA;' but not uses 'unita', ie case sensitive
file system = case exact match case sensive unit name or lowercase
unit name. This, I think, would be acceptable, after all this is *nix.
The case of the .ppu file is irrelevant to all but fpcmake as the 
compiled unit filenames would probably be lowercase for ease of
linking etc. Only mod there though would be in how it handles the 
make clean cycles. 

I know searching for the include files takes up a large time slice 
of the compilation process so maybe a compiler
switch/directive would also be required for the single platform
speed freaks who would view this as a waste of time

As to the tile of this, the Holy Grail is typing 
make
make install
in a dos box
then
make 
make install
in the telnet window and ensuring cross platfom code has just 
been written all from the same source files.

Peter







More information about the Lazarus mailing list