On Thu, 24 Jul 2008, Riccardo (Jack) Lucchetti wrote:
Allin, thanks for the clear analysis of the problem.
Allow me to summarise the whole matter, and please correct any
inaccuracies...
It would be redundant for me to quote your exposition at length.
It's very clear and accurate. Just a couple of comments.
A solution that has slowly emerged is based on imposing
restrictions on the treatment of list members; in the long run:
a) "$i" will contain the orginal ("outside") name of the series;
to access its contents you will have to use the syntax
"listname.$i"; b) the "const" specifier will be always applied
(implicitly): you won't be able to use $i or X.$i on the
left-hand side of a genr statement.
This solution will take care of [the main problems we have
identified]; its disadvantages are:
i) it won't be possible to modify the series referenced by a
list via a function...
Quite correct, as per current CVS with PROTECT_LISTS defined.
For Sven (and anyone else who my be following this): What do you
think of this?
A special "$" accessor containing the version number will
be
provided for the convenience of script writers.
Any thoughts on how we want to represent this? As a number or a
string, and if a number, how should it be constructed?
I tend to favour the simple variant: "1.7.6" -> 1.76, i.e.
collapse the three numbers in the gretl version string to a single
floating-point value. That would mean that we're restricted to a
single digit in the second place of the version identifier (the
"minor version"), since e.g. "1.10.0" would give 1.100 < 1.9.9.
I don't think that bothers me. The more rigorous alternative
would be to define 3 values, traditionally referred to as
major_version, minor_version and patchlevel. But I find that a
pain to work with.
Allin.