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

Reply via email to