Taylor bugs / more precise question



Excuse me being annoying... I think I am now able to pose my question more 
precisely: The following involves only the rat package - no taylor, no 
simpsum ...

My question is: Is the following expected behaviour:

(look for **** to find the important bits)


GCL (GNU Common Lisp)  Version(2.5.0) Sun Nov 17 15:58:09 CET 2002
Licensed under GNU Library General Public License
Contains Enhancements by W. Schelter
Maxima 5.9.0rc3 http://maxima.sourceforge.net
Distributed under the GNU Public License. See the file COPYING.
Dedicated to the memory of William Schelter.
This is a development version of Maxima. The function bug_report()
provides bug reporting information.
(C1) 
trace(?cdisrep,?pdisrep,?pdisrep2,?newsym,?ratdisrepd,ratdisrep,?ratrep\*,rat,?ratsetup1,?ratsetup2);

(D1) [CDISREP, PDISREP, PDISREP2, NEWSYM, RATDISREPD, RATDISREP, RATREP*, 
RAT,

                                                          RATSETUP1, 
RATSETUP2]
(C2) (trace_options(?newsym,lisp_print),
(C2) trace_options(?cdisrep,lisp_print),
(C2) trace_options(?pdisrep,lisp_print),
(C2) trace_options(?pdisrep2,lisp_print),
(C2) trace_options(?ratdisrepd,lisp_print),
(C2) trace_options(ratdisrep,lisp_print),
(C2) trace_options(rat,lisp_print),
(C2) trace_options(?ratrep\*,lisp_print),
(C2) trace_options(?ratsetup1,lisp_print),
(C2) trace_options(?ratsetup2,lisp_print));

(D2)                             [LISP_PRINT]
(C3)
Error: Console interrupt.
Fast links are on: do (si::use-fast-links nil) for debugging
Error signalled by MACSYMA-TOP-LEVEL.
Broken at SYSTEM:TERMINAL-INTERRUPT.  Type :H for Help.

****
this prints varlist and the genvars together with their DISREP property
****
MAXIMA>>(defun bl () (list varlist (mapcar #'(lambda (v) (list v (get v 
'DISREP))) genvar)))

BL
MAXIMA>>:q

****
put something onto varlist and genvar to play with
****
(C3) rat(X);


(1 ENTER $RAT ($X))
 (1 ENTER RATREP* ($X))
  (1 ENTER RATSETUP1 (($X) (#:X21783)))
  (1 EXIT RATSETUP1 NIL)
  (1 ENTER RATSETUP2 (($X) (#:X21783)))
  (1 EXIT RATSETUP2 NIL)
 (1 EXIT RATREP* ((MRAT SIMP ($X) (#:X21783)) (#:X21783 1 1) . 1))
(1 EXIT $RAT ((MRAT SIMP ($X) (#:X21783)) (#:X21783 1 1) . 1))

(1 ENTER RATDISREPD (((MRAT SIMP ($X) (#:X21783)) (#:X21783 1 1) . 1)))
 (1 ENTER CDISREP (((#:X21783 1 1) . 1)))
  (1 ENTER PDISREP ((#:X21783 1 1)))
   (1 ENTER PDISREP2 ((1 1) $X))
    (2 ENTER PDISREP (1))
    (2 EXIT PDISREP 1)
   (1 EXIT PDISREP2 ($X))
  (1 EXIT PDISREP $X)
 (1 EXIT CDISREP $X)
(1 EXIT RATDISREPD $X)
(D3)/R/                                X
(C4)
Error: Console interrupt.
Fast links are on: do (si::use-fast-links nil) for debugging
Error signalled by MACSYMA-TOP-LEVEL.
Broken at SYSTEM:TERMINAL-INTERRUPT.  Type :H for Help.
MAXIMA>>(bl)

(($X) ((#:X21783 $X)))

****
this might be the offending statement. $l is just anything which is not on 
the varlist
****

MAXIMA>>($ratdisrep ($rat '$l '$l))

(1 ENTER $RAT ($L $L))
 (1 ENTER RATREP* ($L))
  (1 ENTER RATSETUP1 (($L) (#:L21783)))
  (1 EXIT RATSETUP1 NIL)
  (1 ENTER RATSETUP2 (($L) (#:L21783)))
  (1 EXIT RATSETUP2 NIL)
 (1 EXIT RATREP* ((MRAT SIMP ($L) (#:L21783)) (#:L21783 1 1) . 1))
 (1 ENTER $RATDISREP
  (((MRAT SIMP ($L) (#:L21783)) (#:L21783 1 1) . 1)))
  (1 ENTER RATDISREPD
   (((MRAT SIMP ($L) (#:L21783)) (#:L21783 1 1) . 1)))
   (1 ENTER CDISREP (((#:L21783 1 1) . 1)))
    (1 ENTER PDISREP ((#:L21783 1 1)))
     (1 ENTER PDISREP2 ((1 1) $L))
      (2 ENTER PDISREP (1))
      (2 EXIT PDISREP 1)
     (1 EXIT PDISREP2 ($L))
    (1 EXIT PDISREP $L)
   (1 EXIT CDISREP $L)
  (1 EXIT RATDISREPD $L)
 (1 EXIT $RATDISREP $L)
 (1 ENTER RATREP* ($L))
  (1 ENTER RATSETUP1 (($L) (#:X21783)))
  (1 EXIT RATSETUP1 NIL)
  (1 ENTER RATSETUP2 (($L) (#:X21783)))
  (1 EXIT RATSETUP2 NIL)
 (1 EXIT RATREP* ((MRAT SIMP ($L) (#:X21783)) (#:X21783 1 1) . 1))
(1 EXIT $RAT ((MRAT SIMP ($L) (#:X21783)) (#:X21783 1 1) . 1))
(1 ENTER $RATDISREP (((MRAT SIMP ($L) (#:X21783)) (#:X21783 1 1) . 1)))
 (1 ENTER RATDISREPD
  (((MRAT SIMP ($L) (#:X21783)) (#:X21783 1 1) . 1)))
  (1 ENTER CDISREP (((#:X21783 1 1) . 1)))
   (1 ENTER PDISREP ((#:X21783 1 1)))
    (1 ENTER PDISREP2 ((1 1) $L))
     (2 ENTER PDISREP (1))
     (2 EXIT PDISREP 1)
    (1 EXIT PDISREP2 ($L))
   (1 EXIT PDISREP $L)
  (1 EXIT CDISREP $L)
 (1 EXIT RATDISREPD $L)
(1 EXIT $RATDISREP $L)
$L
MAXIMA>>(bl)

(($X) ((#:X21783 $L))) 

**** 
now the DISREP property doesn't correspond to the varlist variable
anymore. Anything that uses the genvars internally and doesn't know about
some subprocedure doing ($ratdisrep ($rat exp var)) will fail now. 
****

MAXIMA>>(cdisrep (cons (list (car genvar) 1 1) 1))

(1 ENTER CDISREP (((#:X21783 1 1) . 1)))
 (1 ENTER PDISREP ((#:X21783 1 1)))
  (1 ENTER PDISREP2 ((1 1) $L))
   (2 ENTER PDISREP (1))
   (2 EXIT PDISREP 1)
  (1 EXIT PDISREP2 ($L))
 (1 EXIT PDISREP $L)
(1 EXIT CDISREP $L)
$L

Hope I'm not being too annoying...

Martin