Discussion:
Run_testsuite() two times fails.
(too old to reply)
Thomas D. Dean
2017-07-12 03:59:42 UTC
Permalink
Raw Message
I get an error { is not an infix operator the 2nd time I run_testsuite();

I am using git head. This problem goes back some time. It is in
branch_5_40_base_121_g335843b.
maxima-local
Maxima branch_5_40_base_126_g099d6e2_dirty http://maxima.sourceforge.net
using Lisp GNU Common Lisp (GCL) GCL 2.6.12
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) {a,b};
(%o1) {a, b}
(%i2) {a,b};
(%o2) {a, b}
(%i3) run_testsuite();
Running tests in rtest_rules: 103/103 tests passed
Running tests in rtestnset: 601/601 tests passed
...
Running tests in rtest_plotoptions: 5/5 tests passed
Running tests in rtest_algsys: 55/55 tests passed


No unexpected errors found out of 11,229 tests.
real time : 98.779 secs
run-gbc time : 75.830 secs
child run time : 9.859 secs
gbc time : 12.689 secs
(%o0) done
(%i1) run_testsuite();
Running tests in rtest_rules: 103/103 tests passed
Running tests in rtestnset:
/home/tomdean/Math/Maxima/maxima-code/tests/rtestnset.mac:7:1:incorrect
syntax: } is not an infix operator
{}
(%o0) done

(%i1) {};

incorrect syntax: } is not an infix operator
{}
^

(%i1) kill(all); reset();
(%o0) done
(%o1) [piece, labels, _, assume_pos_pred, lispdisp, use_fast_arrays,
error, %,
assume_pos, testsuite_files, odds, %rnum_list, multiplicities,
genpairs, __]
(%i2) {};

incorrect syntax: } is not an infix operator
{}
^


Tom Dean
Thomas D. Dean
2017-07-12 16:19:55 UTC
Permalink
Raw Message
Post by Thomas D. Dean
I get an error { is not an infix operator the 2nd time I run_testsuite();
I am using git head. This problem goes back some time. It is in
branch_5_40_base_121_g335843b.
maxima-local
Maxima branch_5_40_base_126_g099d6e2_dirty http://maxima.sourceforge.net
using Lisp GNU Common Lisp (GCL) GCL 2.6.12
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) {a,b};
(%o1) {a, b}
(%i2) {a,b};
(%o2) {a, b}
(%i3) run_testsuite();
Running tests in rtest_rules: 103/103 tests passed
Running tests in rtestnset: 601/601 tests passed
...
Running tests in rtest_plotoptions: 5/5 tests passed
Running tests in rtest_algsys: 55/55 tests passed
No unexpected errors found out of 11,229 tests.
real time : 98.779 secs
run-gbc time : 75.830 secs
child run time : 9.859 secs
gbc time : 12.689 secs
(%o0) done
(%i1) run_testsuite();
Running tests in rtest_rules: 103/103 tests passed
/home/tomdean/Math/Maxima/maxima-code/tests/rtestnset.mac:7:1:incorrect
syntax: } is not an infix operator
{}
(%o0) done
(%i1) {};
incorrect syntax: } is not an infix operator
{}
^
(%i1) kill(all); reset();
(%o0) done
(%o1) [piece, labels, _, assume_pos_pred, lispdisp, use_fast_arrays,
error, %,
assume_pos, testsuite_files, odds, %rnum_list, multiplicities,
genpairs, __]
(%i2) {};
incorrect syntax: } is not an infix operator
{}
^
This problem appears in 5.39.0 but not in 5.38.1
I started a bisect to find out where the problem was introduced.

Tom Dean
Thomas D. Dean
2017-07-12 19:07:54 UTC
Permalink
Raw Message
Post by Thomas D. Dean
Post by Thomas D. Dean
I get an error { is not an infix operator the 2nd time I run_testsuite();
I am using git head. This problem goes back some time. It is in
branch_5_40_base_121_g335843b.
maxima-local
Maxima branch_5_40_base_126_g099d6e2_dirty http://maxima.sourceforge.net
using Lisp GNU Common Lisp (GCL) GCL 2.6.12
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) {a,b};
(%o1) {a, b}
(%i2) {a,b};
(%o2) {a, b}
(%i3) run_testsuite();
Running tests in rtest_rules: 103/103 tests passed
Running tests in rtestnset: 601/601 tests passed
...
Running tests in rtest_plotoptions: 5/5 tests passed
Running tests in rtest_algsys: 55/55 tests passed
No unexpected errors found out of 11,229 tests.
real time : 98.779 secs
run-gbc time : 75.830 secs
child run time : 9.859 secs
gbc time : 12.689 secs
(%o0) done
(%i1) run_testsuite();
Running tests in rtest_rules: 103/103 tests passed
} is not an infix operator
{}
(%o0) done
(%i1) {};
incorrect syntax: } is not an infix operator
{}
^
(%i1) kill(all); reset();
(%o0) done
(%o1) [piece, labels, _, assume_pos_pred, lispdisp, use_fast_arrays,
error, %,
assume_pos, testsuite_files, odds, %rnum_list, multiplicities,
genpairs, __]
(%i2) {};
incorrect syntax: } is not an infix operator
{}
^
This problem appears in 5.39.0 but not in 5.38.1
I started a bisect to find out where the problem was introduced.
The bisect indicates the problem was inserted with commit

2e49fd25ab3698257f45e4d636f9047cc1145a18 is the first bad commit
Post by Thomas D. Dean
git diff 301dc05c99a5b51963ac40429177386edb718727 \
2e49fd25ab3698257f45e4d636f9047cc1145a18

shows the change in code that generated this problem.

I am looking at it, but, my lisp skills are poor, at best.

Tom Dean
Thomas D. Dean
2017-07-12 21:25:27 UTC
Permalink
Raw Message
example(syntax) triggers the problem. Don't know if I can call it a
bug?????

(%i1) example(syntax);
...
(%i18) remove(["{","}",".i.",".u."],operator)
...

"{" and "}" should not be included, they are used to define sets.
Post by Thomas D. Dean
git diff
diff --git a/demo/manual.demo b/demo/manual.demo
index 9da1832..a15f800 100644
--- a/demo/manual.demo
+++ b/demo/manual.demo
@@ -1130,23 +1130,23 @@

&& syntax

- matchfix("{","}");
+ matchfix("@{","@}");
infix("|");
- {x|x>0};
- {x|x<2};
+ @{x|x>0@};
+ @{x|x<2@};
infix(".u.")$
infix(".i.")$
%th(4).u.%th(3);
%th(5).u.%th(4);
- {1,2,3}$
- {3,4,5}$
+ @{1,2,3@}$
+ @{3,4,5@}$
%th(2).u.%th(2).u.%;
infix(".u.",100,100)$
infix(".i.",120,120)$
%th(5).u.%th(5).u.%;
remove(".u.",operator)$
errcatch(%th(7).u.%th(3));
- remove(["{","}",".i.",".u."],operator)$
+ remove(["@{","@}",".i.",".u."],operator)$

Tom Dean
Robert Dodier
2017-07-13 05:09:54 UTC
Permalink
Raw Message
Post by Thomas D. Dean
example(syntax) triggers the problem. Don't know if I can call it a
bug?????
(%i1) example(syntax);
...
(%i18) remove(["{","}",".i.",".u."],operator)
...
"{" and "}" should not be included, they are used to define sets.
Looks like this feature/bug was caused by commit ef1fa9e, which
ironically was an attempt to make built-in stuff unkillable. Not sure
what is the correct behavior here. Should it be possible to remove the
operator property from { } ? I can see arguments in both directions.

best,

Robert Dodier
Thomas D. Dean
2017-07-13 17:39:18 UTC
Permalink
Raw Message
Post by Robert Dodier
Post by Thomas D. Dean
example(syntax) triggers the problem. Don't know if I can call it a
bug?????
(%i1) example(syntax);
...
(%i18) remove(["{","}",".i.",".u."],operator)
...
"{" and "}" should not be included, they are used to define sets.
Looks like this feature/bug was caused by commit ef1fa9e, which
ironically was an attempt to make built-in stuff unkillable. Not sure
what is the correct behavior here. Should it be possible to remove the
operator property from { } ? I can see arguments in both directions.
I looked at this the other way. My problem simplifies down to
'example(syntax);' Changing '{' to '@{', etc., in the syntax example
gets away from the set operator. I believe this was an unintended side
effect.

Does 'matchfix("@{","@}");' work in all cases? If so, changing the
example avoids the problem.

Maxima allows altering or removing all operators. But, this should not
happen in this case.

Tom Dean

Loading...