On Wed, 20 Mar 2013 14:09:38 GMT
"Robert" jfanatiker@gmx.at wrote:

Packages can blacklist or force certain (compiler abstracted) flags
if needed:

E.g.:

"buildFlags" : [ "noinline", "boundscheck" ]

Meaning:

  • Even if the user specified -inline, don't use it for this package,

because of some bug.

  • Use boundscheck even if user disabled it, because our code really

sucks, so this should really not be disabled.

If needed, a package could also specify default flags for the case
that the user did not specify anything, but get overridden with user
data, instead of only providing the option to override user choices.

I think that should be flipped around. Anything the user specifies on
the command line should automatically override whatever is in the
package file, period. Anything else is confusing, inflexible and
problematic.

That said, I'm not entirely against the idea of having a way for the
package.json to override the user's command line choices (similar to
CSS's "!important" feature), but it needs to very explicit in
package.json (ex: "forceBuildFlags" instead of the usual "buildFlags"),
and then the user needs to be informed when their command-line argument
is being overridden by the package.json. And then they'd still need a
way to override that (again, much like CSS's !important).