[Gretl-devel] bug which is new in 1.7.4
Riccardo (Jack) Lucchetti
r.lucchetti at univpm.it
Thu Apr 3 10:51:59 EDT 2008
On Thu, 3 Apr 2008, Riccardo (Jack) Lucchetti wrote:
> Somehow, the problem lies with the fact that the return type is a list. If
> you modify the big file as per:
>
> --- permaconfbackend.inp 2008-04-03 16:21:27.000000000 +0200
> +++ permaconfbackend_2.inp 2008-04-03 16:23:35.000000000 +0200
> @@ -725,5 +725,7 @@
> list results = results GGlownaive GGupnaive SWPlownaive SWPupnaive
> list results = results GGlowHall GGupHall SWPlowHall SWPupHall
> end if
> - return list results
> +
> + matrix ret = { results }
> + return matrix ret
> end function
>
> and modify kpsw_testfrontend.inp accordingly, it runs fine.
More details: gretl gets stuck while trying to delete all the temporary
variables created inside the function. It looks like we run into an
infinite loop in this section of lib/src/gretl_func.c (line numbers added
for clarity):
3536: for (i=orig_v; i<pdinfo->v; i++) {
3537: fprintf(stderr, "i = %d\n", i);
3538: if (STACK_LEVEL(pdinfo, i) == d) {
3539: anyerr = dataset_drop_variable(i--, pZ, pdinfo);
3540: if (anyerr && !err) {
3541: err = anyerr;
3542: }
3543: }
3544: }
The "i--" operation smells bad, but I'm not familiar enough with this
region of the source to pin down what's wrong with it.
Riccardo (Jack) Lucchetti
Dipartimento di Economia
Università Politecnica delle Marche
r.lucchetti at univpm.it
http://www.econ.univpm.it/lucchetti
More information about the Gretl-devel
mailing list