Files
calc/BUGS
2017-05-21 15:38:30 -07:00

267 lines
7.1 KiB
Plaintext

If you notice something wrong, strange or broken, try rereading:
README.FIRST
HOWTO.INSTALL
BUGS (this file)
If that does not help, cd to the calc source directory and try:
make check
Look at the end of the output, it should say something like:
9998: passed all tests /\../\
9999: Ending regression tests
If it does not, then something is really broken!
If you made and modifications to calc beyond the simple Makefile
configuration, try backing them out and see if things get better.
To be sure that your version of calc is up to date, check out:
http://reality.sgi.com/chongo/tech/comp/calc/calc-download.html
The calc web site is located at:
http://reality.sgi.com/chongo/tech/comp/calc
=-=
If you have tried all of the above and things still are not right,
then it may be time to send in a bug report. You can send bug reports to:
calc-tester@postofc.corp.sgi.com
When you send your report, please include the following information:
* a description of the problem
* the version of calc you are using (if you cannot get calc
it to run, then send us the 4 #define lines from version.c)
* if you modified calc from an official patch, send me the mods you made
* the type of system you were using
* the type of compiler you were using
* any compiler warnings or errors that you saw
* cd to the calc source directory, and type:
make debug > debug.out 2>&1 (sh, ksh, bash users)
make debug >& debug.out (csh, tcsh users)
and send the contents of the 'debug.out' file.
Stack traces from core dumps are useful to send as well.
=-=
Send any comments, compiler warning messages, suggestions and most
importantly, fixes (in the form of a context diff patch) to:
calc-tester@postofc.corp.sgi.com
=-=
Known bugs:
* calc -i ignores quit binding or EOF input in some cases. For example:
echo 'define f(x) { ' > myfile
calc -i read myfile
"./myfile", line 2: End-of-file in function body
Error in commands
>
At this point, calc will re-prompt if you give it an EOF, or
type ^D while using lib/altbind or while ^D is bound to quit.
* When compiled on some Big Endian machines with BASEB forced to
be 16 (by setting LONGLONG_BITS= 0 in the Makefile), calc fails
a number of regression tests:
4230: n = ftell(f)
4231: isnull(fputs(f,L,"\n",C,"\n",N,"\n"))
4232: fseek(f, n)
**** Non-true result (0): 4233: fgetstr(f) == LCN
4234: isnull(fclose(f))
4235: a = exp(27, 1e-1000)
4236: b = sqrt(7 + 5i, 1e-2000)
4252: fscanf(f, "%*[^|]%*c%n%*[^[]%*c%n", m, n) == 2
4253: fseek(f, m)
4254: fscanf(f, "%3c", x) == 1
**** Non-true result (0): 4255: x == " Cu"
4256: fseek(f, n)
4257: fscanf(f, "%s", y) == 1
**** Non-true result (0): 4258: y == "Noll"
4259: isnull(fclose(f))
4260: x = rm("junk4200")
4261: Ending test_fileops
4600: Beginning test_fileop
4601: ttest(0,0): passed
4602: stest(): failed
**** search(f, "and") != 10 failed
4603: ttest(1,1): failed
**** Failure 2 for i = 0
4604: stest(): failed
**** search(f, "and") != 10 failed
4605: ttest(2,2): failed
**** Failure 2 for i = 0
4606: stest(): failed
**** search(f, "and") != 10 failed
4607: ttest(3,3): failed
**** Failure 2 for i = 0
4608: stest(): failed
**** search(f, "and") != 10 failed
4609: ttest(4,4): failed
**** Failure 2 for i = 0
4610: stest(): failed
**** search(f, "and") != 10 failed
4611: ttest(5,5): failed
**** Failure 2 for i = 0
4612: stest(): failed
**** search(f, "and") != 10 failed
4613: ttest(6,6): failed
**** Failure 2 for i = 0
4614: stest(): failed
**** search(f, "and") != 10 failed
4615: ttest(7,7): failed
**** Failure 2 for i = 0
4616: stest(): failed
**** search(f, "and") != 10 failed
4617: ttest(8,8): failed
**** Failure 2 for i = 0
4618: stest(): failed
**** search(f, "and") != 10 failed
4619: ttest(9,9): failed
**** Failure 1 for file size
4620: stest(): failed
**** fopen("junk4600", "w") failed
4621: Ending test_fileop
4700: Beginning test_charset
**** errcount:172 > ecnt:150
4701: "\a" == char(7)
4702: "\v" == char(11)
4703: "\e" == char(27)
5000: Beginning test_filesearch
5001: x = rm("-f", "junk5000")
5002: f = fopen("junk5000", "w")
**** Unable to open "junk5000" for writing
5100: Beginning test_newdecl
5101: test5100(1)
**** errcount:173 > ecnt:172
5102: a5100 == 0
5103: b5100 == 2
5104: test5100(1)
5927: test unused
5928: test unused
5929: test unused
**** errcount:180 > ecnt:177
5930: isassoc(loc) == 0
5931: isassoc(a) == 1
5932: isassoc(ofd) == 0
6079: test unused
6080: iserror(loc) == 0
6081: iserror(a) == 0
**** Non-true result (0): 6082: iserror(ofd) == 0
**** Non-true result (0): 6083: iserror(cfd) == 0
6084: iserror(blk) == 0
6085: iserror(nblk) == 0
6086: iserror(cfg) == 0
6139: test unused
6140: isfile(loc) == 0
6141: isfile(a) == 0
**** Non-true result (0): 6142: isfile(ofd) == 1
**** Non-true result (0): 6143: isfile(cfd) == 1
6144: isfile(blk) == 0
6145: isfile(nblk) == 0
6146: isfile(cfg) == 0
6700: Beginning test_blk
6701: A = blk(20);
**** errcount:181 > ecnt:180
6702: size(A) == 20
6703: sizeof(A) == 256
6704: B = A;
6822: C == A
6823: fs = fopen("junk6800", "w+");
6824: blkcpy(fs, A);
**** errcount:183 > ecnt:181
**** Non-true result (0): 6825: size(f) == 5
6826: blkcpy(B = blk(), fs);
**** errcount:184 > ecnt:183
**** Non-true result (0): 6827: B == A
6828: blkcpy(fs, A, ,100);
**** errcount:185 > ecnt:184
**** Non-true result (0): 6829: size(f) == 105
6830: blkcpy(C = blk(), fs, 2, ,100)
**** errcount:186 > ecnt:185
**** Non-true result (0): 6831: C == (blk() = {1,2}
6832: A = blk();
6833: blkcpy(A, "blk6800");
6834: size(A) == 9
6900: Beginning test_name
6901: x = rm("-f", "junk6900")
6902: f = fopen("junk6900", "w")
**** errcount:189 > ecnt:186
**** Non-true result (0): 6903: name(f) == "junk6900"
6904: fclose(f)
**** errcount:190 > ecnt:189
6905: name(f) == null()
6906: A = blk("blk6900")
6907: name(A) == "blk6900"
7002: B = blk();
7003: copy("abc yz", A);
7004: copy("defg", B);
**** errcount:191 > ecnt:190
7005: strprintf("%s", A) == "abc yz"
7006: strprintf("%s", A[2]) == "c yz"
7007: strprintf("%s", A[7]) == ""
9995: freeredc()
9996: freestatics()
**** 24 error(s) found \/++\/
We are sure some more bugs exist. When you find them, please let
us know! See the above for details on how to report and were to
EMail your bug reports and hopefully patches to fix them.
=-=
Calc Mis-features:
* The following shell command (written in sh,ksh,bash-like form) works:
calc '/*
* comment
*/
print 2+3;'
However this (also written in sh,ksh,bash-like form) does not work:
echo '/*
* comment
*/
print 2+3;' | calc
The 2nd example will result in an 'Unterminated comment' error.
* Calc does not support the #! exec method. For example of the
following is placed in an executable file (assume the path to
calc is correct) called /tmp/xyzzy:
#!/usr/local/bin/calc
/*
* comment
*/
print 2+3;
Will result in '"tmp" is undefined' and '"xyzzy" is undefined'
error messages because calc considers $0 as an expression to
evaluate.