3 ms·
I was curious why they did that. Just looked at the source and came across this : This file is an amalgamation of many separate C source files from PH7 versi
by eksith 13y ago
I was curious why they did that. Just looked at the source and came across this :
This file is an amalgamation of many separate C source files from PH7 version 2.1.
By combining all the individual C code files into this single large file, the entire code
can be compiled as a single translation unit.This allows many compilers to do optimization's
that would not be possible if the files were compiled separately.Performance improvements
are commonly seen when PH7 is compiled as a single translation unit.
The target does say for embedded so I guess that's from experience running this on very small resources.
- unwind 13y agoBut the glueing together destroys any modularization they had going on, making the code way harder for anyone else to understand and read. The "typical" solution to that very valid problem is to use the preprocessor, i.e. create a "ph7-master.c" file that simply includes all the real C files. The comparative overhead of should be negligble, but then the modularization survives.
- Touche 13y agoOr use cat to combine the files prior to compiling.