diff --git a/buglist b/buglist index 9cf686d..57aa523 100644 --- a/buglist +++ b/buglist @@ -1,6 +1,6 @@ ========================================================================= -bug 7268: +bug 7269: todo 336: wish 1012: meh 5: @@ -12,6 +12,42 @@ dup 50006: nonextend 60077: ========================================================================= +bug 7268: Typechecker gets confused by flow control + +Spad typechecker is supposed to track type tests, and +allow operation which are safe due to dynamic tests. +However, tis works for 'if' but fails for loops, as in: + +a:R +b:R +c:=a exquo b +while c case R repeat + a:=c + c:=a exquo b + +Spad compiler report type error on assignment to a. + +But both of these work: + +a:R +b:R +c:=a exquo b +if c case R then + while c case R repeat + a:=c + c:=a exquo b + +and + +a:R +b:R +c:=a exquo b +while c case R repeat + if c case R then + a:=c + c:=a exquo b + +========================================================================= bug 7267: src/input/liu ^ is not always ** This makes it clear that the exponential operation semantics is different diff --git a/changelog b/changelog index 8771ecb..e22f323 100644 --- a/changelog +++ b/changelog @@ -1,3 +1,5 @@ +20141209 tpd src/axiom-website/patches.html 20141209.02.tpd.patch +20141209 tpd buglist: bug 7268: Typechecker gets confused by flow control 20141209 tpd src/axiom-website/patches.html 20141209.01.tpd.patch 20141209 tpd src/axiom-website/CATS/index.html add Graphics section to CATS 20141209 tpd books/bookvol8.1 reformat CRC section by page breaks diff --git a/patch b/patch index e417558..5644e03 100644 --- a/patch +++ b/patch @@ -1,6 +1,34 @@ -src/axiom-website/CATS/index.html add Graphics section to CATS +buglist: bug 7268: Typechecker gets confused by flow control -Add Graphics as one of the Computer Algebra Test Suite sections -using Volume 8.1, the Axiom Gallery which contains CRC Standard -Curves and Surfaces graphs and Pasta by Design graphics. +Spad typechecker is supposed to track type tests, and +allow operation which are safe due to dynamic tests. +However, tis works for 'if' but fails for loops, as in: +a:R +b:R +c:=a exquo b +while c case R repeat + a:=c + c:=a exquo b + +Spad compiler report type error on assignment to a. + +But both of these work: + +a:R +b:R +c:=a exquo b +if c case R then + while c case R repeat + a:=c + c:=a exquo b + +and + +a:R +b:R +c:=a exquo b +while c case R repeat + if c case R then + a:=c + c:=a exquo b diff --git a/src/axiom-website/patches.html b/src/axiom-website/patches.html index eb25c72..c1b3a7b 100644 --- a/src/axiom-website/patches.html +++ b/src/axiom-website/patches.html @@ -4788,6 +4788,8 @@ src/input/fixed.input fix latex conversion from ** to ^
src/input/Makefile remove unused .as files
20141209.01.tpd.patch src/axiom-website/CATS/index.html add Graphics section to CATS
+20141209.02.tpd.patch +buglist: bug 7268: Typechecker gets confused by flow control