tech-userlevel archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: Improvement for bmake: boolean values

 >> To solve these problems I propose to implement new function for
 >> bmake, say "yesno", treating 1 and [Yy][Ee][Ss] as logical true, and
 >> 0 and [Nn][Oo] as logical false.

> In case anyone feels like paying attention to my reactions: I don't
> like this design; it feels too special-cased.  I'd much prefer adding
> some kind of function definition syntax so that bsd.$ can
> define yesno() itself.  As a strawman,

> .function yesno(s) ((s ==i "yes") || (s == "1") || \
>       ((s !=i "no") && (s != "0") && error("invalid yesno() argument"))

> (I don't know whether ==i / !=i exist at present, though I think those
> spellings of them don't; I mean case-insensitive == / !=.)

It whould be very nice see something similar to .function from your
example in bmake but I don't beleive it will appear in nearest future.

1) .function is much harder to implement than yesno/istrue/whatever in C
2) if/when .function is implemented, yesno written in C can easily be
   replaced with code from your example, implemneted in, for example, which is always read on bmake startup.
3) Stable API, widely used yesno/istrue function, is more important than
   implementation details.

Best regards, Aleksey Cheusov.

Home | Main Index | Thread Index | Old Index