defrule regression compare to version 5.29.1



On 05/08/2013 12:14 PM, Robert Dodier wrote:
> On 2013-05-07, Valery Pipin <pip at iszf.irk.ru> wrote:
>
>> (%i49) defrule(KLOW0,k0([],[i]),(z1:idummy(),dlt([],[z1,i])*k0([z1],[])));
>>
>> ** error while printing error message **
>> FORMAT: Pattern must contain exactly 1 template ~M
> This error may be relatively easy to fix, if it only involves fixing the
> error message. Can you post a complete example which triggers the error?
>
> best
>
> Robert Dodier
>
The error is induced by interference with format package which I called 
in my program:

Maxima 5.30.0 http://maxima.sourceforge.net
using Lisp CLISP 2.48 (2009-07-28)
Distributed under the GNU Public License. See the file COPYING.
Dedicated to the memory of William Schelter.
The function bug_report() provides bug reporting information.
(%i1) load("itensor");
WARNING: DEFUN/DEFMACRO: redefining function $NAME in 
/usr/share/maxima/5.30.0/share/tensor/itensor.lisp, was defined in 
top-level
WARNING: DEFUN/DEFMACRO: redefining function DERIV in 
/usr/share/maxima/5.30.0/share/tensor/itensor.lisp, was defined in
/usr/src/RPM/BUILD/maxima-5.30.0/src/binary-clisp/comm.fas
WARNING: DEFUN/DEFMACRO: redefining function SDIFF in 
/usr/share/maxima/5.30.0/share/tensor/itensor.lisp, was defined in
/usr/src/RPM/BUILD/maxima-5.30.0/src/binary-clisp/comm.fas
WARNING: DEFUN/DEFMACRO: redefining function I-$DEPENDENCIES in 
/usr/share/maxima/5.30.0/share/tensor/itensor.lisp, was defined in
/usr/src/RPM/BUILD/maxima-5.30.0/src/binary-clisp/comm.fas
WARNING: DEFUN/DEFMACRO: redefining function $DECSYM in 
/usr/share/maxima/5.30.0/share/tensor/symtry.lisp, was defined in top-level
WARNING: DEFUN/DEFMACRO: redefining function $CANFORM in 
/usr/share/maxima/5.30.0/share/tensor/symtry.lisp, was defined in top-level

(%o1)         /usr/share/maxima/5.30.0/share/tensor/itensor.lisp
defrule(LC_DO,'levi_civita([],lcl),(z1:idummy(),z2:idummy(),z3:idummy(),
'levi_civita([z1,z2,z3],[])*dlt([],[z1,lcl[1]])*dlt([],[z2,lcl[2]])*dlt([],[z3,lcl[3]]))); 

(%o2) LC_DO : levi_civita([], lcl) -> (z1 : idummy(), z2 : idummy(),
z3 : idummy(), dlt([], [z1, lcl ]) dlt([], [z2, lcl ]) dlt([], [z3, lcl ])
                                1 2                   3
  levi_civita([z1, z2, z3], []))
(%i3) load("contrib/format/coeflist");
(%o3) /usr/share/maxima/5.30.0/share/contrib/format/coeflist.lisp
(%i4) load("contrib/format/format");
WARNING: DEFUN/DEFMACRO: redefining macro MLIST* in 
/usr/share/maxima/5.30.0/share/contrib/format/format.lisp, was defined in
/usr/share/maxima/5.30.0/share/contrib/format/coeflist.lisp
WARNING: DEFUN/DEFMACRO: redefining function MRELATIONP in 
/usr/share/maxima/5.30.0/share/contrib/format/format.lisp, was defined in
/usr/src/RPM/BUILD/maxima-5.30.0/src/binary-clisp/compar.fas
WARNING: DEFUN/DEFMACRO: redefining macro MLIST* in 
/usr/share/maxima/5.30.0/share/contrib/format/coeflist.lisp, was defined in
          /usr/share/maxima/5.30.0/share/contrib/format/format.lisp
(%o4) /usr/share/maxima/5.30.0/share/contrib/format/format.mac
defrule(LC_DO,'levi_civita([],lcl),(z1:idummy(),z2:idummy(),z3:idummy(),
'levi_civita([z1,z2,z3],[])*dlt([],[z1,lcl[1]])*dlt([],[z2,lcl[2]])*dlt([],[z3,lcl[3]]))); 

(%o5) LC_DO : levi_civita([], lcl) -> (z1 : idummy(), z2 : idummy(),
FORMAT: Pattern must contain exactly 1 template *()
  -- an error. To debug this try: debugmode(true);
(%i6)

The reason why I use format package is that I want to isolate 
expressions behind the first order expansions on some of my variables. 
The whole expression represents the multi-variable polynomial with 
tensor coefficients which I have to analyze. Using "format" seems  
cheaper to me than to use the taylor expansion. I'm not sure how the 
flag taylordepth:1 will work in my situation. I have to study

Valery