Hi, consider this fairly minimal code example:
<hansl>
open denmark
loop i = $tmax..$tmax + 9
catch value = LRM[i]
eval $error # This line necessary to provoke the problem!
endloop
</hansl>
What I'm getting on gretl 2022c is that in the first loop iteration it
works as expected, namely that catch isn't necessary (since LRM[$tmax]
gives the last available obs) and the error value is zero. Directly
afterwards for i==$tmax+1 gretl says "index value 56 out of bounds".
This is correct, but that's exactly what 'catch' should, well, catch.
Notice that when the $error value isn't accessed, then gretl does _not_
complain!
But that's not all - what follows is a more complex example without a
direct $error access, where the simple loop construct works, but an
equivalent while-loop does not work:
<hansl>
open denmark
loop i = $tmax..$tmax + 9
catch value = LRM[i] # works
endloop
print "got here?"
index = $tmax
loop while index < $tmax + 10
catch value = LRM[index] # fails
index++
endloop
</hansl>
Could this have to do with the recent "more-compilation" internal gretl
business, or did that not make it into gretl 2022c?
thanks
sven