I'm at the point of revising the User's Guide on the topic of
list arguments to functions, and this task gives a different
perspective on what we've been discussing.
Brief recap: We've discovered a nasty problem with the way we've
handled list arguments to user-defined functions, up till now.
We have a fix for this but it involves a backward-incompatible
change. In CVS we have a boolean switch, "protect_lists", which
flips between the old behavior and the fixed behavior. The
question is: what should be the default value for this switch?
Right now, the old behavior is the default.
Now, consider presenting this in the documentation.
1) "We have discovered a serious problem with the handling of list
arguments to functions. This is now fixed as of gretl 1.7.6.
Unfortunately the fix involves a backward-incompatible change.
For a limited period, however, you can revert to the old behavior
by doing..."
2) "We have discovered a serious problem with the handling of list
arguments to functions. We have a fix for this -- sort of, but
it's not activated by default since it involves a
backward-incompatible change. You can 'preview' the fix by
doing..."
Which of these sounds better?
In addition, how do we present the rules governing the use of list
arguments within functions? If "protect_lists" is off by default,
it seems to me the primary exposition has to be of the old, broken
rules, with a note added to describe the new ones.
But if "protect_lists" is on, we can give pride of place to the
new, correct rules, and add a note on how old functions should be
modified to conform to them.
I feel that these considerations argue quite strongly for making
the change now (i.e. making "protect_lists" on by default in
gretl 1.7.6).
Your comments, please!
Allin.