Hello Jiri,
this looks interesting :)
I would add some compiler features:
- ability to tell the compiler to generate several compiled versions of
the same code with different compiler hints and switch between them at
runtime (using arbitrary expression to decide which variant to use),
i.e. speed vs. power-saving optimized code [inspired by one of the
LLVM talks @ FOSDEM]
I guess it could something like:
switch_hints {
if (is_powersave_on()) powersave
else default
}
{
// some code
}
It could be defined such that a compiler that totally ignores the
hints, generates a single variant and just executes the expression(s)
is conformant
- statically typed defines (i.e. global constants defined as compiler
parameters) and top-level "if" construct to optionally build some
features (no more #ifdefs we use currently to build only parts of the
code, but a regular if, that would just take compile-time resolvable
expression as condition)
The compiler could record those parameters that are actually used to
the object file(s)/module files/whatever you call your compilation
unit and:
- refuse to link together modules with different constants recorded
- use this information to skip re-compiling the module
if you didn't change a parameter that does not affect the
compilation of the module (something like ccache but without
ccache :) )
Regards,
Martin
_______________________________________________
HelenOS-devel mailing list
[email protected]
http://lists.modry.cz/listinfo/helenos-devel