Ron Savage wrote:
On Sun, 8 Oct 2006 16:58:50 -0700, Eric Wilhelm wrote:
Hi Eric
How about doing this with an external tool (i.e. a utility or
Sure, that's OK.
What info will it put in the meta data?
I can't say exactly, but I'm thinking that some general principles could be
enunciated /and/ followed:
o State each condition separately, rather than trying to encode combinations,
since we can't say to what future use each will be put.
For example, is it reasonable to assume that all external libraries require XS
as glue? Even if this is the case, I'd go for all of (fabricating examples
here):
(1) module_uses_xs: Yes
(2) module_uses external_library: Yes
or perhaps
(2) external_library_language: X
(3) language_requiring_compilation: Y
o Spell out values, rather than be cryptic or even secretive. So, say Yes/No and
not 0/1.
For example, XS is cryptic in its own right, in that beginners won't even know
WTF XS is, so (1) above, by itself, would be unacceptable to me, In fact it (XS)
has implications re compilation that a beginner won't know or even guess.
(Thus I always use Yes/No in database fields (disk space is cheap), rather than
packing them into a bit, since that way I can dump data without anyone needing
to interpret it.)
And yes, I'm assuming English here. And the meta data file is small, so a few
bytes are nothing.
o Don't aim to solve all imagined problems with the first version. Plan for
extension of the feature set
If this is all going to be held in some external system outside the
META.yml , which is what read the above as going with now, then by all
means. This is all perfectly workable and fine, changing it down the
track is just fine.
But if we were to put it into META.yml then not getting it right first
time causes issues.
There's a reason that the only time you mention dynamic_config: in a
META.yml file is to turn it OFF with dynamic_config: 0 instead of
turning on something like static_config: 1.
It's because META.yml and the core of the toolchain is not an normal
place to play in, and decisions can have long consequences you can't
always fix properly later.
Adam K