Hello all,
News: on Monday I will merge into git master my up-till-now
"experimental" branch that allows arbitrary nesting of the
"member-of" relation in the context of function calls and
assignment. (Thanks to Sven for pointing out the previous lack of
this feature.) There follows a small sample of the sort of thing
that now works:
<hansl>
# matrix in array of matrices in array of bundles
bundles B = array(2)
matrices B[1].M = defarray(I(3), mnormal(2,2))
B[1].M[1][2:3,2:3] += 17
eval B[1].M[1]
eval B[1].M[1][2,2]
# assign to bundle members directly
bundle b
scalar b.num = 3
matrix b.mat = I(2)
# assign to array member with type spec
matrices M = array(2)
matrix M[1] = I(3) # OK
M[2] = I(4) # implicit type, OK
string M[2] = "foo" # error, wrong type for array
</hansl>
After the merge I will consider it a bug if a well-formed instance
of this sort of nesting doesn't work. (Up till now I've claimed it's
just an "unimplemented feature").
Warning: I have tested this quite thoroughly but there's no
guarantee that I haven't missed some problem, so anyone in the habit
of using gretl-git for "real" econometric work should be cautious at
first.
I've checked that the following work OK: all the "practice" scripts
packaged with gretl, all of my large and miscellaneous collection of
scripts gathered from various sources over the years, all current
function packages, and all current addons. I've also put the new
code through its paces under valgrind and have fixed all bad
accesses and memory leaks that I found in earlier drafts. There may
nonetheless be some problems that have not manifested themselves so
far.
Invitation: I'll be glad if some people are willing to test the new
code -- that's the only way we'll be able beat out remaining bugs.
For those on Windows or Mac who regularly use snapshots but don't
build from git: I'm thinking about creating snapshots from the new
code but (for a while) putting them in a new "testing" directory on
sourceforge rather than the regular "snapshots" directory. Please
let me know if this is something you might use.
Allin