I find that with the following batch file
--------- begin bug.mac ---------
linel:79;
linenum:87;
fpprec:131;
a:1/7.0B+0;
b:1234B-22;
ldisplay(a-b);
---------- end bug.mac ----------
then batch ("bug.mac"); => "Expression is too wide to
be displayed" repeatably.
If this stuff is typed at the command prompt it doesn't
happen
(output layout is slightly different so it doesn't
tickle the bug).
The error message originates in CHECKBREAK in
src/displa.lisp.
Maxima version: 5.9.2
Maxima build date: 0:2 10/11/2005
host type: i686-pc-linux-gnu
lisp-implementation-type: GNU Common Lisp (GCL)
lisp-implementation-version: GCL 2.6.7
(but also reported on the mailing list to exist in 5.9.1)
The reported bug seems to be no longer present in Maxima 5.24post. When loading the batch file from above the result is
(%i1) load("bug.mac");
(%t87) 1.428571428571428571428571428571428571428571428571428571428571428571428\
5714285714285714285714285714285714285714285714285714285714286b-1
+ (- 1.234b-19) = 1.428571428571428570194571428571428571428571428571428571428\
5714285714285714285714285714285714285714285714285714285714285714285714286b-1
(%o87) bug.mac
Setting the resolution to "Works for me" and the status to "Pending".
Dieter Kaiser
I've reopened this item. It's possible to find other values which trigger the bug. See the session pasted below.
$ maxima
Maxima 5.22.1 http://maxima.sourceforge.net
using Lisp GNU Common Lisp (GCL) GCL 2.6.7 (a.k.a. GCL)
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) linel:79;
(%o1) 79
(%i2) linenum:87;
(%o87) 87
(%i88) fpprec:131;
(%o88) 131
(%i89) a:1/7.0B+0;
(%o89) 1.428571428571428571428571428571428571428571428571428571428571428571428\
5714285714285714285714285714285714285714285714285714285714286b-1
(%i90) b:1234B-22;
(%o90) 1.234b-19
(%i91) ldisplay(a-b);
(%t91) 1.428571428571428571428571428571428571428571428571428571428571428571428\
5714285714285714285714285714285714285714285714285714285714286b-1
+ (- 1.234b-19) = 1.428571428571428570194571428571428571428571428571428571428\
5714285714285714285714285714285714285714285714285714285714285714285714286b-1
(%o91) [%t91]
(%i92) linenum:100;
(%o100) 100
(%i101) linel:99;
(%o101) 99
(%i102) fpprec:137;
(%o102) 137
(%i103) ldisplay(a-b);
(%t103) 1.4285714285714285714285714285714285714285714285714285714285714285714285714285714285714285\
714285714285714285714285714285714285714286b-1 + (- 1.233999999999999999999999999999999999999999999\
9999999999999999999999999999999999999999999999999999999999999999999999999999999999999992133b-19) =
display: failed to break up a long expression.
display: change 'linel' slightly and try again.
The problem of this bug report is easy to see in the following example. First, a display of an expressions which fits exactly into the available space:
(%i1) linel:10;
(%o1) 10
(%i2) aaaaaaa+bbbb;
(%o2) bbbb
+ aaaaaaa
Now, we add one char to the first long symbol:
(%i3) aaaaaaaa+bbbb;
(%o3) bbbb
display: failed to break up a long expression.
display: change 'linel' slightly and try again.
-- an error. To debug this try: debugmode(true);
The problem is present for all infix-operators. The display routines have to output the expression " + aaaaaaaa". The expression has 11 chars and is too long to be displayed on a line, but the display routines can not break up an expression, which is preceded by a infix-operator.
This is a general problem of the implementation, therefore the message "display: change 'linel' slightly and try again.".
Dieter Kaiser