[fpc-devel] Statistics on compiling the Free Pascal compiler for Win32
Paul Robinson
paul at paul-robinson.us
Tue Jan 17 05:19:08 CET 2012
I wanted to actually test that the Free Pascal compiler - as originally written - would compile on my machine. (Note for comp.compilers readers, the Free Pascal compiler is self-hosting, it is written in its own language, unlike, say, the GNU Pascal Compiler which is a front-end for the GNU Compiler Collection (the C++ compiler) and the GNU Pascal Compiler is written in C..
Compiling using the DOS IDE, I brought up the file PP.PAS, declared it as the primary file, for compiler switches, I entered into the IDE the following:
Win32 I386 cpu32bitaddr
Each time it did not find a Pascal Unit I cheated, looked for the file and copied it into the 'compiler' directory rather than try to set the directories in the IDE because I was having trouble or doing something wrong and it didn't find the files. So then, once it stopped complaining, I had it do a 'build' to do a complete scratch build of the compiler. This is on a Windows XP Professional 32-Bit OS on a 64-bit machine - Dell Optiplex 760 - 2.2 GHZ processor, 3 GB of ram and more than 1.4 terabytes of free disk space. This machine was bought as refurbished about 18 months ago for about $200 and had the extra disk and memory added later, adding about another $200 to its price (I got a good deal on a 2tb drive for $89; prices went up nearly 100% about 6 months later.).
This was the result, I've copied off the results box shown by the FPIDE:
One warning:
aasmtai.pas(396,11) Warning: Constructor should be public
Main file: C:\..\compiler\pp.pas
Done.
Target: Win32 for i386
Line number: 225 Total lines: 261804
Used memory: 417612K Allocated memory: 25792K
Total errors: 0 Compile time: 13.9s
Compile successful: Press any key
From the directories it creates 203 PPUs (the internal object library file used by Free Pascal to store Units). The compiler itself is 11,727,679 bytes.
I deleted all ppu files and the exe file and re-ran build, and this time it took exactly 14 seconds. Typing its name at the DOS prompt causes it to list all of the options and quit, indicating it is operational.
In short, it compiled a program containing a total of about 262,000 lines of Pascal code in 14 seconds, which comes out to a compilation rate of around 1.12 million lines of code per minute. So basically I, just like anyone else, for about the same amount as an ordinary person's salary for a week, can own a machine that runs basically at what was mainframe speed levels a few years ago.
The Lessons of history teach us - if they teach us anything - that no one learns the lessons that history teaches us.
-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: GnuPG v2.0.17 (MingW32)
mQENBE2PI1ABCACnhOuOx+PjaiDMquIKQ+0lIw2WSDYKa+4F90WkpZtFYC+S2pF2
MYfD7OxZzcQL85VS3SuJjzZFpwbBqMPgEe3PaHlihy4Jw0zUqb/t5LbPwXpDNkYr
XL5pzI6VH66zd2RDetojW3/eYqTFWy7Wf/gV+yO4egvifS1MdxrwYMb3k7Qvf73E
v+BFiKkhBXLxHpClED3aeQevxjZkT+dMBFEcTANnb3WYm89j7yGb+vWFflP8bM88
Ys/eZKzbmwf8sL7XHHwzgq/y0Nqa7p5hPHgekgGE0f2bYL3VNFz5+4etaA6iImAQ
ha2Dm4SWWpPJSAsdQhwJuWcEV+cDjTvtKRa5ABEBAAG0JVBhdWwgUm9iaW5zb24g
PHBhdWxAcGF1bC1yb2JpbnNvbi51cz6JATgEEwECACIFAk2PI1ACGwMGCwkIBwMC
BhUIAgkKCwQWAgMBAh4BAheAAAoJEIiQHns+nAjaQn8H/2kfwoPYjWUUiJu+doTp
to4ebxUDyZdYhXn8vxu4E6k20EK3rJWKYNAYYBIBt3ylvMAUwkoZcMTm+/Nzzyhy
SRqehG6+IS1l1Lv3Df+eJ1j0YU6nnLcc33u3Dn5rQkDyY1KHsBm5VEaQBv8S6kAZ
0wmrq2oOK/OBTa3pcR6DT+lpsNhIIwFlmYpHsbCCelfbWzg2EufLAQBiqwkRTjWm
tJ1kJyrvTJIVeIFakfpeqdrKojxomQUMWEqsGZGJiNBNCslcQjNIwyqzbqmfMHaq
3s+83hPl8c2pFWDphj3bnsrBXcB4GqDsPSFXvDDc0neRybX6K2Mq7/qYIwQdIYnq
wC65AQ0ETY8jUAEIANHrZpUNN6McKYV7tcyRjwY4N81TgGd3iY96smiEkJYye32E
qYzJtVS1LLdcHIF1C4c72NpGPfBG+LUNHC5zuZLwJ/3ovVMD6KjHaypy+wwQgmHA
2JLkxTcsnX7tA9Kb0J7oXIdDMZLx40chs+W0cvvVYYqB/mLfCwsy4KGKl3n6FWND
47kSBLK5b/82hm44QA/p7K8z2xTLQx9G/Rt0AXD9Sdz2UfiZTnp/LHwOig07xc0O
q6t936Br/98u0qAmK5ZK8HR3AVpSz8BCYlxRbAUdsk7stCwyM+YDxGlts2c0UJIk
iZ3wCXUk/mRIluegkKslYGNwf4eciBEAPDugaoUAEQEAAYkBHwQYAQIACQUCTY8j
UAIbDAAKCRCIkB57PpwI2nTuB/4qwOZF8y4ma8xdvT8SW2PsQ3j4nSHpJ2frV8li
hpU1JwoN56i0ghAVg50VJJ/Ge0VUDdvzBTlt+eQZfJsvEuIFG2UFvjTGjvXpQ5Ie
bRL3mXBGBnUrOoiw6Z2k5L1mUrIP+p50iLxzFsN8wR982M6z3a0ED7ogaoiVC0va
4wSeuxAnq4fk407hNFj7e2IkvTzoWcGT/3ORQh7e6EmUw5EMDu4n0O3IduPFkTw0
pgsaaZOsshOCOdF85+/foiagBpwsKahgisW4N0Jb+eAeIRgs1WWsM2Ojwfyupe/J
v0pnpOpGjXYyMAen2Z+WCVY9H5GNaK0D9aB7nguQP31uVJp9
=vT1t
-----END PGP PUBLIC KEY BLOCK-----
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freepascal.org/pipermail/fpc-devel/attachments/20120116/75012ec8/attachment.html>
More information about the fpc-devel
mailing list