In Maxima 5.5 Windows GCL
Pickapart usually misnumbers the C-line following its
result. Instead of (e.g.) E5 E6 D6 C7 D7, you get E5 E6
D6 C6 D6, which means that the pickapart return value
D6 is overwritten by the more recent return value.
The test case below consistently elicits this behavior in
a fresh Maxima, or after a Kill(Labels). So does example
(pickapart). Sometimes when Pickapart reuses a
preexisting label -- or perhaps under other
circumstances -- it does not present this problem.
(D1) (x + 1) (x + 2)
(E2) x + 1
(E3) x + 2
(D3) E2 E3
This can be fixed in Continue (macsys.lisp) as follows:
(when (or (not (checklabel $inchar))
(not (checklabel $outchar))) ;new
(setq $linenum (f1+ $linenum)))
I am tempted to change the when to a while just to be
sure, but I don't know of any reason that would be
Log in to post a comment.