(I accidentally forgot to give my previous message a subject and I think it was blocked by a spam filter. I'm resending, apologies if this turns up twice!) A line apparently got broken by mistake in the patch; a corrected version of the patch is attached. This version should be used instead of the one in the original bug report. Thanks! -- Alex Smith, C-INTERCAL upstream maintainer
--- ick-0.27/src/dekludge.c 2007-12-22 09:22:14.000000000 +0000 +++ latest/src/dekludge.c 2008-01-03 14:10:58.000000000 +0000 @@ -139,6 +139,8 @@ /* ignorable holds whether a variable's ignorance status can change */ for (tp = tuples; tp < tuples + lineno; tp++) { + /* allow for warnings to be generated during flow optimisations */ + optuple = tp; /* Patch by Joris Huizer */ if(tp->maybe) tp->abstainable = 1; if(tp->exechance < 0) tp->initabstain = 1; if(tp->exechance != 100 && tp->exechance != -100) tp->abstainable = 1; --- ick-0.27/src/idiotism.oil 2007-12-22 09:22:14.000000000 +0000 +++ latest/src/idiotism.oil 2008-01-03 14:07:15.000000000 +0000 @@ -207,15 +207,15 @@ <#0-#14 ((_{c<=65535&&!(c&((1LU<<r)-1LU))}1$ #{!(x&(4294967294LU<<r))}2)~#{!(x&(1431655765LU<<(r*2+2)))}3) -->((((_1>>#{r}0)&#{iselect(x3>>(r*2+1),1431655765LU)}0) +->((((_1>>#{r}0)~#{iselect(x3>>(r*2+1),1431655765LU)}0) <<#{setbitcount(x3&((2LU<<(r*2))-1))}0)|#{iselect(mingle(0,x2),x3)}0) (((_{c<=65535&&!(c&((1LU<<r)-1LU))}1|#{x<=65535&&!(c&~((1LU<<r)-1LU))}4)$ #{!(x&(4294967294LU<<r))}2)~#{!(x&(1431655765LU<<(r*2+2)))}3) -->((((_1>>#{r}0)&#{iselect(x3>>(r*2+1),1431655765LU)}0) +->((((_1>>#{r}0)~#{iselect(x3>>(r*2+1),1431655765LU)}0) <<#{setbitcount(x3&((2LU<<(r*2))-1))}0)|#{iselect(mingle(x4,x2),x3)}0) (((#{x<=65535&&!(c&~((1LU<<r)-1LU))}4|_{c<=65535&&!(c&((1LU<<r)-1LU))}1)$ #{!(x&(4294967294LU<<r))}2)~#{!(x&(1431655765LU<<(r*2+2)))}3) -->((((_1>>#{r}0)&#{iselect(x3>>(r*2+1),1431655765LU)}0) +->((((_1>>#{r}0)~#{iselect(x3>>(r*2+1),1431655765LU)}0) <<#{setbitcount(x3&((2LU<<(r*2))-1))}0)|#{iselect(mingle(x4,x2),x3)}0) > ; 32-bit leftshift by 1; there are 8 ways to write this. @@ -480,8 +480,8 @@ (_1|#0)->(_1) (#0|_1)->(_1) [noopxor] -(_1|#0)->(_1) -(#0|_1)->(_1) +(_1^#0)->(_1) +(#0^_1)->(_1) [anditself] (_1&_1)->(_1) [oritself] --- ick-0.27/src/parser.y 2007-12-22 09:22:14.000000000 +0000 +++ latest/src/parser.y 2007-12-30 01:08:38.000000000 +0000 @@ -485,12 +485,15 @@ $$->rval = newnode(); $$->rval->opcode = $1; if($1 == MESH) { - /* enforce the 16-bit constant constraint */ - if ((unsigned int)$3 > Max_small) - lose(E017, iyylineno, (char *)NULL); - $$->rval->constant = intern(MESH, $3); + /* enforce the 16-bit constant constraint */ + if ((unsigned int)$3 > Max_small) + lose(E017, iyylineno, (char *)NULL); + if(variableconstants) /* AIS */ + $$->rval->constant = intern(MESH, $2); + else + $$->rval->constant = $2; } else { - $$->rval->constant = intern($1, $3); + $$->rval->constant = intern($1, $3); } }