From 69d4a17187326a3f0ae6eb34f1c395c93b20736c Mon Sep 17 00:00:00 2001 From: Landon Curt Noll Date: Sat, 30 Oct 1999 21:36:24 -0700 Subject: [PATCH] Release calc version 2.11.0t8.10 --- BUGS | 148 +---------------------------------------------- CHANGES | 36 +++++++----- lib/regress.cal | 8 ++- lib/test8400.cal | 14 +++++ version.c | 2 +- zmath.h | 2 +- 6 files changed, 44 insertions(+), 166 deletions(-) diff --git a/BUGS b/BUGS index d21febe..1898476 100644 --- a/BUGS +++ b/BUGS @@ -68,153 +68,7 @@ importantly, fixes (in the form of a context diff patch) to: Known bugs: - * 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 \/++\/ + None. :-) 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 diff --git a/CHANGES b/CHANGES index 15f1733..0839e7b 100644 --- a/CHANGES +++ b/CHANGES @@ -1,4 +1,24 @@ -Following is the change from calc version 2.11.0t8 to date: +Following is the change from calc version 2.11.0t8.9.1 to date: + + The config("verbose_quit") will control the printing of the message: + + Quit or abort executed + + when a non-interactive ABORT, QUIT or EXIT is encounted. By default, + config("verbose_quit") is TRUE and the message is printed. If one does: + + config("verbose_quit", 0) + + the message is disabled. + + Added 8400 regression test set and test8400.cal to test the new + quit and config("verbose_quit") functionality. + + Fixed the BigEndian BASEB==16 regression bugs by correctly swapping + 16 bit HALFs in a 64 bit value (such as a 64 bit file pointer). + + +Following is the change from calc version 2.11.0t8 to 2.11.0t8.9: Moved 'wishlist' enhancements from the help/todo file to a new help/wishlist file. Ordered, by priority, help/todo items into @@ -151,20 +171,6 @@ Following is the change from calc version 2.11.0t8 to date: Fixed a bug, reported by Michael Somos , which prevented calc -m from being used. - The config("verbose_quit") will control the printing of the message: - - Quit or abort executed - - when a non-interactive ABORT, QUIT or EXIT is encounted. By default, - config("verbose_quit") is TRUE and the message is printed. If one does: - - config("verbose_quit", 0) - - the message is disabled. - - Added 8400 regression test set and test8400.cal to test the new - quit and config("verbose_quit") functionality. - Fixed misc compiler warnings. diff --git a/lib/regress.cal b/lib/regress.cal index 16428b1..1e9f6e8 100644 --- a/lib/regress.cal +++ b/lib/regress.cal @@ -7165,6 +7165,9 @@ print '189: parsed test_somenew()'; */ define test_quit() { + local x8400 = 23209; /* watch for lost memory */ + static s8400 = 21701; /* watch for lost memory */ + print '8400: Starting test_quit'; quit; @@ -7464,8 +7467,9 @@ print '8310: Ending define tests'; print; return test_quit(); read -once test8400; -print '8402: read -once test8400'; -print '8403: Ending test_quit'; +print '8404: read -once test8400'; +vrfy(test8400() == 64434, '8405: test8400() == 64434'); +print '8406: Ending test_quit'; /* diff --git a/lib/test8400.cal b/lib/test8400.cal index 2c41de6..fd7da90 100644 --- a/lib/test8400.cal +++ b/lib/test8400.cal @@ -12,5 +12,19 @@ */ print "8401: in test8400.cal"; + +/* + * test8400 - dummy function to allow a check of quit-based memory leaks + */ +define test8400() +{ + local x8401 = 19937; /* watch for lost memory */ + static s8401 = 44497; /* watch for lost memory */ + + return x8401+s8401; +} +print "8402: parsed test8400()"; +vrfy(test8400() == 64434, '8403: test8400() == 64434'); + quit; prob('quit did not end test8400.cal'); diff --git a/version.c b/version.c index 8155709..5f8907d 100644 --- a/version.c +++ b/version.c @@ -12,7 +12,7 @@ #define MAJOR_VER 2 /* major version */ #define MINOR_VER 11 /* minor version */ #define MAJOR_PATCH 0 /* patch level or 0 if no patch */ -#define MINOR_PATCH "8.9.1" /* test number or empty string if no patch */ +#define MINOR_PATCH "8.10" /* test number or empty string if no patch */ /* * calc version constants diff --git a/zmath.h b/zmath.h index 80d2a21..e280e36 100644 --- a/zmath.h +++ b/zmath.h @@ -72,7 +72,7 @@ typedef SB16 SHALF; /* signed HALF */ typedef USB32 FULL; /* double unit of number storage */ typedef SB32 SFULL; /* signed FULL */ -#define SWAP_HALF_IN_B64(dest, src) SWAP_B32_IN_B64(dest, src) +#define SWAP_HALF_IN_B64(dest, src) SWAP_B16_IN_B64(dest, src) #define SWAP_HALF_IN_B32(dest, src) SWAP_B16_IN_B32(dest, src) #define SWAP_HALF_IN_FULL(dest, src) SWAP_B16_IN_B32(dest, src) #define SWAP_HALF_IN_HASH(dest, src) SWAP_B16_IN_HASH(dest, src)