Mattias Gaertner schrieb:
IMO most time can be saved by using the directory cache, instead of
building another one in the compiler.
I only tested reading/writing files.
In a second step the functions for file existence, age
and size can be made overloadable. I doubt it will make fpc faster
under Linux, but I guess under Windows it could be noticeable in some
cases.
The compiler spends some time parsing the ppu files.
Ah, I thought you mean source files.
This would allow to compile without saving to disk, so the
compiler could be used for quick syntax checks and similar tasks.
That's an old idea, still viable but never implemented.
Note: Under Linux the speed up is hardly measurable. But
maybe Windows can gain a bit.
My tests on Windows show no noticeable impact of file handling. Even
closing and reopening files frequently doesn't add significantly to the
execution time - most probably due to the OS file cache.
There's another issue with the .ppu files, that are used by the compiler
to prevent excessive re-compilation of the same units. But recompilation
can be forced, with some minor patching.
I'm not sure what issue you mean.
When you want to use the compiler for syntax checks, a recompilation of
the source code must be enforced. Otherwise the .ppu file is loaded, if
exists, and no parsing occurs at all. The checks for up-to-date .ppu
files is not bullet proof, as can be seen with errors that go away or
don't go away in a recompilation.
I changed a few calls to Assign/Reset/Close to use the TCFileStream
(e.g. for the ppu reader) and added the possibility to define a custom
TCFileStream class. An IDE can then redirect the file access.
The scanner already has a configurable file interface, but AFAIR only by
global hooks, not on a per-file or per-application base (finput.pas:
tdosinputfile...). No real problems, so far :-)
I didn't realize that you are talking about .ppu files, which IMO are of
little use in the IDE.
What global hooks do you mean?
Dunno about the handling of .ppu files.
DoDi
_______________________________________________
fpc-devel maillist - fpc-devel@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-devel