diff options
Diffstat (limited to 'Build/source/utils/m-tx/mtx-0.60d/libp2c/ChangeLog')
-rw-r--r-- | Build/source/utils/m-tx/mtx-0.60d/libp2c/ChangeLog | 390 |
1 files changed, 0 insertions, 390 deletions
diff --git a/Build/source/utils/m-tx/mtx-0.60d/libp2c/ChangeLog b/Build/source/utils/m-tx/mtx-0.60d/libp2c/ChangeLog deleted file mode 100644 index 17e4bc2dbc5..00000000000 --- a/Build/source/utils/m-tx/mtx-0.60d/libp2c/ChangeLog +++ /dev/null @@ -1,390 +0,0 @@ -Wed Mar 10 15:03:20 1999 Alexander L. Belikoff <abel@blinky> - - * src/p2c.h: DOUBLE defined as double - -Tue Mar 31 14:57:26 1998 Alexander L. Belikoff <abel@blinky> - - * src/trans.h: - Magic limits (MININT, MAXINT), causing random p2c bugs on the Alpha replaced - with LONG-MIN/MAX from limits.h (integers in Pascal include longs in C, - according to p2c) - -Tue Sep 23 09:14:22 1997 Harvey J. Stein <hjstein@bfr.co.il> - - * src/p2c.proto, src/funcs.c, src/p2c.hdrs: - Adjustments to get pad to work correctly. - -Thu Jul 3 20:41:55 1997 Harvey J. Stein <hjstein@bfr.co.il> - - * src/p2c.proto, src/sys.p2crc, src/trans.h, src/expr.c, src/funcs.c, src/p2c.hdrs: - Bug: Consider: - - procedure foo(x: array[i..j : integer] of varying[k] of char); - ... - var z : array[3..12] of varying[20] of char; - ... - foo(z); - - This should become something like: - - foo(int i, int j, int k, char x[j-i+1][k]) - ... - char z[10][20]; - ... - foo(3, 12, 20, z); - - Instead, it was generating: - - foo(3, 12, 255, z); - - which totally screws up accessing z. - - Analysis: To do this correctly, p2c has to keep dereferencing z as it - processes the hidden arguments i, j, & k so that it's working on an - expression of the appropriate type each time it tries to find either - the size of the string or the start & end points of arrays. Instead, - it just wasn't. - - Fix done: I couldn't figure out exactly how to do the above. But, p2c - calls strmax_func to get the length of the character string. I just - built some additional dereferencing into it so that it gets the - correct length in the above sort of situation. So, changed - strmax_func in expr.c. - - - Bug: Index(x,y) is a common pascal extension for finding a substring - in a string. p2c handles it but it wasn't working right on Dec code. - - Analysis: Some dialects of pascal consider x to be the string and y - to be the substring. Others switch x & y. p2c supports (substring, - string), and Dec pascal supports the opposite. - - Fix: There was some support for switching index argument order, but it - was tightly coupled to HP compiler directive support. I added a - comment switch ("IndexOrder") for additional control of this feature. - Changed func_strpos in funcs.c, and added the switch in trans.h. - -Fri Jun 13 07:22:26 1997 Harvey J. Stein <hjstein@blinky.bfr.co.il> - - * src/p2c.hdrs, src/p2c.proto, src/pexpr.c, src/decl.c, src/funcs.c: - Fixed bug in [truncate] handling - I didn't clear the new Meaning - fields (fakenumargs & truncated) at meaning creation time, so they - were sometimes showing up on non-truncated variables. Changed - initmeaning (decl.c). - - Moved hidden number_of_args from beginning to end of arg list. At the - beginning it was interfering with the return hidden variable, - causing return to not be generated. Changes were in p_funcdecl - (decl.c), func_present (funcs.c), and p_funcarglist (pexpr.c). Added - has_truncate function to pexpr.c to check whether an arg list has the - truncated attribute. - - Argument variables were sometimes getting shadowed just because - they're initialized. Problem was in var_reference, which clones - Meanings that have constdefns. But arg variables don't need to be - cloned since the constants are handled by p_funcarglist. So skipped - cloning if Meaning's kind is MK_PARAM or MK_VARPARAM. Previous fix of - always cloning, but only copying meanings if not MK_PARAM seems to - have been incorrect. - -Sun Jun 1 13:15:06 1997 Harvey J. Stein <hjstein@blinky.bfr.co.il> - - * src/sys.p2crc, src/trans.h, src/pexpr.c, src/parse.c, src/lex.c, src/p2c.hdrs, src/p2c.proto, src/funcs.c, src/decl.c: - Enhancements: - - Added support for [truncate]. This involved: - 1. Added a truncated flag & a fakenumargs flag to the Meaning - structure. - 2. In p_funcdecl (decl.c), recognizing the [truncate] attribute in - argument lists. If it's seen, the argument's truncated flag is - set, and it and all arguments following are given default values - (assuming that they don't already have default values). The - default values gets p2c to automatically generate the correct - number of arguments for calling the subroutine when some are - left out. - 3. In p_funcdecl (decl.c), if any of the args are tagged with - [truncate], then add a hidden argument to the front of the - argument list - number_of_args. Flag it with fakenumargs. - 4. In p_funcarglist (pexpr.c), when the fcn has a fakenumargs - parameter as the first parameter, (and truncateisdefalt is zero) - compute the index of the last argument supplied, and pass it as - the first argument in the call. - 5. In funcs.c, added func_present to handle the PRESENT(x) calls. - It parses the call, figures out the index of the argument in the - fcns calling sequence (say n), and generates an expression - (number_of_args >= n) to be the output for the PRESENT(x) call. - 6. Added new config parameter - TruncateIsDefault to turn off - PRESENT support (in case one doesn't want the extra arg to be - generated). - - Added support for CONTINUE & BREAK. Just had to basically declare - them as keywords in lex.c, and recognize them in parse.c, and declare - their tokens in trans.h (since p2c already supported them internally). - - Added descriptions for SkipReIncludes, NoOutput, and TruncateIsDefault - to sys.p2crc. - - Bug fixes: - - Bug: args with default values which are also used in local functions - lose their default values. - - Attempted fix: in var_reference (pexpr.c), don't zero out the - constdefn when the arg is cloned if the arg is a parameter. - - Problems: This works, but it sometimes causes bogus declarations of - the old variable to be output. - -Wed May 14 14:27:32 1997 Harvey J. Stein <hjstein@blinky.bfr.co.il> - - * src/stuff.c, src/p2c.hdrs, src/p2c.proto, src/out.c, src/expr.c, p2c.patch: - (Updated p2c.patch for last set of changes) - - Bug: p2c was seg faulting when given expressions such as: - there := - '1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890' + - '1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890' + - '1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890' + - '1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890' + - '1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890'; - - and: - - there := - '1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890' + - '1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890' + - '1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890' + - '1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890' + where; - - when there is VARYING [XXX] OF CHAR; - - Analysis: There seem to be all sorts of fixed length character arrays - around the code. It seems that especially long expressions and/or - character strings can cause them to overflow. - - Fix: I upped some of the limits, which at least avoided core dumps on - the code I'm currently processing, but really one needs to go through - and properly keep track of the amount copied into strings so as to - avoid buffer overruns. But, this is a real pain in the ass because of - the shitty semantics of the standard C library. - - Basically, the stack allocated ones that I noticed in expr.c and out.c - I upped to length 2000, and in stuff.c, I upped the size of the - strings in formatbuf[] to 4000. - -Tue May 13 19:27:00 1997 Harvey J. Stein <hjstein@blinky.bfr.co.il> - - * src/lex.c, src/p2c.hdrs, src/p2c.proto, src/trans.c, src/Makefile, src/decl.c, src/expr.c, src/funcs.c: - Minor fixes/changes: - -Was calling close in handle_include (lex.c) when it should have - been fclose. - -Modified src/Makefile to allow for using insure on the source code - (to catch memory bugs). - - - Major fixes: - - Bug: p2c occasionally was freeing memory that was already freed. - - Analysis: This seems to occur sometimes on constant string - definitions because mp->val.s might point to the same string as - mp->constdefn->val.s, and forget_ctx tries to free them both. - - Fix: In decl.c, in forget_ctx: After calling free_value(&mp->val) when - mp->kind == MK_CONST, instead of always calling - freexpr(mp->constdefn), only call it when mp->kind != MK_CONST, - or when mp->constdefn->val.s != mp->val.s. - - I also tried to fix this by copying mp->val.s in p_constdecl when - creating mp->constdefn->val.s, but never got this to work - correctly, so I commented it out. - - - Bug: p2c core dumped on: - - readv(data, short_string); - - when data is a packed array[1..7] of char, and - short_string is a packed array[1..3] of char. - - Analysis: What was happening was that in handleread_text (funcs.c), - when the readv argument is an array, it was checking - ord_range(ex->val.type->indextype, ...), and ex was NULL. - - Fix: It seems like this was a typo, so I change it to check - var->... instead of ex->... - - - Bug: p2c core dumped on: - - WRITELN('%SQLMOD ', msg); - - when msg was of type varying[x] of char. - - Analysis: Some part of the code was converting the above string to - "%%SQLMOD %s". It seems that cleansprintf (from expr.c) didn't - realize that % is escaped by %%, so it thought that there should - be 2 arguments (maybe 3?) for the above printf string instead of - one, and thus was going off of the end of the args list (i.e. - - ex->args[j] out of range). - - Fix: Inside the for loop, if the next character is also a %, then - skip arg processing, and skip the next character (just copy it - into fmtbuf). - - - Bug: p2c core dumps on: - - readv(c, i); - - when c is a char and i is an integer. - - Analysis: In funcs.c, in handleread_text, var is never getting - initialized - it's getting passed in as NULL, and it only gets - set if isstrread is true. Since c is a char, fex->val.type->kind - is TK_CHAR, not TK_STRING, so isstrread is false, so var fails to - get initialized. - - Fix: After the case that var is set when isstrread is true, if it's - still NULL, we set it to p_expr(NULL). This prevents the core - dump, but produces incorrect code! It outputs: - - fscanf(c, "%ld", &i); - - when it should more likely be something along the lines of - sscanf(&c, ...) (but safer). - -Mon May 5 15:23:04 1997 Harvey J. Stein <hjstein@blinky.bfr.co.il> - - * src/out.c, src/p2c.hdrs, src/p2c.proto, src/trans.h, src/decl.c, src/lex.c, p2c.patch: - New features (out.c, trans.h): - New parameter NoOutput - setting it to 1 stops p2c from generating - output. Useful when trying to simulate Dec style modules via - include files - just convert INHERIT to %include, and put - {*NoOutput=1} at the top of each include file, and p2c does the - right thing. This was done by not pushing characters into the - output stream when nooutput is 1. The real code changes occur in - out.c, in putc_outf, and puts_outf. Accumulating the output, but - turning off writes (i.e. - wiring it into flush_outfilebuf) failed - because of timing differences btw when comment directives are - processed and when output occurs. - - Bug fixes: - - Bug: Some variable declarations weren't getting output. Most - noticable were the automatically generated Return variables. - - Analysis: When using the {INTF-ONLY} directive in include files - then the fwd declaration of fcns was being interpreted as the fcn - definition, and so the variables generated when the declaration was - seen were marked as "wasdeclared". Then, when the code for the - function was being generated, these variables weren't getting - output because "wasdeclared" was 1. This was most visible from the - automatically generated Return variable, but occasionally happened - to other variables. - - Fix: in decl.c:activatemeaning - added resetting of "wasdeclared" - if we can identify that the variable is the autogenerated return - variable. Detected them by snarfing code from isretvar. But this - was a lousy fix because as mentioned above, there are other - variables which are occasionally affected. And, it's no longer - needed because of the new NoOutput feature, so I commented out the - change, but left the code there as a reminder of the problem. - - - Bug: Comments weren't getting output in the correct places. This - is a serious problem when using {EMBED comments to insert C code - into the output stream. Sometimes code from the {EMBED comment - given in an include file showed up in the includer. Sometimes the - code didn't get emitted at all because of mistiming against - {nooutput} directives. - - Analysis: p2c builds up a comment string structure as it parses - the code, and hangs it off of the code's internal representation. - Presumably this is so that when doing code transformations, the - comments are output in the correct places. However, this seems to - sometimes fail when using %include files. It seems that the - comments weren't getting processed & output until the current block - was finished. Included files don't start a new block because one - could conceivably include random snippets of code anywhere you want - (inside of RECORD declarations, for example). Thus, sometimes - comments from inside the include file don't get processed & output - until well after the include file itself is finished being - processed. - - Fix: Added the call flushcomments(NULL, -1, -1) to both push_input - and pop_input (in lex.c). This seems to have fixed it with no - noticable side effects. - -Tue Apr 29 18:36:51 1997 Harvey J. Stein <hjstein@blinky.bfr.co.il> - - * src/p2c.hdrs, src/p2c.proto, src/lex.c: - Added recognition of AND_THEN and OR_ELSE. - - * src/trans.h, src/lex.c, src/p2c.hdrs, src/p2c.proto: - Added tracking of files that have been included so that they can - optionally be ignored the second time they're seen. This is needed - because a module (say X) can inherit from two other modules (say Y and - Z), both of whom inherit from a fourth module (say Z). Converting the - inherits to includes thus gets Z included twice. If it's not ignored, - it causes p2c to start renaming procedures so as to avoid name - clashes. - - Added an rc file parameter (skipreincludes) for controling the above - action. - - * src/decl.c, src/p2c.hdrs, src/p2c.proto, src/parse.c: - Various adjustments & bug fixes suggested by Dave Gillespie: - - decl.c: Call format_s so that we work with a copy of the string - when removing dollar signs - a little more robust. - - Missing ! on strcicmp caused bogus externs to be emitted on - some variable declarations. - - parse.c: Sprinkle afew p_attributes around p_block so that p2c - properly parses attributes in front of declaration blocks. - In particular, this fixes the problem where p2c was choking - on [hidden] followed by TYPE, which appears in analytic.pas. - -Wed Apr 23 12:17:08 1997 Harvey J. Stein <hjstein@blinky.bfr.co.il> - - * src/p2c.proto, src/decl.c, src/p2c.hdrs: - Modified addfield so that it removes dollar signs from record field - identifiers. This is more consistent with the handling of other - identifiers, and also needed by much of the Pascal code. - -Mon Apr 21 10:41:53 1997 Harvey J. Stein <hjstein@blinky.bfr.co.il> - - * p2c.patch: Submitted new patch to Dave G. - - * src/p2c.proto, src/lex.c, src/p2c.cat, src/p2c.hdrs, src/Makefile: - Changed VALUE from a keyword to a possible keyword when working with - Dec Pascal code. Original code set it to be a keyword for Dec, and a - possible keyword otherwise. However, if it's a keyword, then p2c - doesn't accept it the name of a slot in a record. Since Dec accepts - this usage, I figured that VALUE should always be a possible keyword - instead of a keyword. - -Thu Apr 17 11:33:22 1997 Harvey J. Stein <hjstein@blinky.bfr.co.il> - - * p2c.patch: patches generated & mailed to Dave Gillespie - -Wed Apr 16 16:26:07 1997 Harvey J. Stein <hjstein@blinky.bfr.co.il> - - * src/p2c.hdrs, src/p2c.proto, .cvsignore, examples/.cvsignore, src/.cvsignore, src/decl.c, src/p2c.cat: - Parser didn't expect a ( after the OTHERWISE keyword. Modified - decl.c to expect it. - - * src/INSTALL, src/citmods.c, src/comment.c, src/decl.c, src/dir.c, src/expr.c, src/funcs.c, src/hpmods.c, src/lex.c, src/loc.p2clib.c, src/loc.p2crc, src/makeproto.c, src/out.c, src/p2c.cat, src/p2c.h, src/p2c.hdrs, src/p2c.proto, src/p2cc.cat, src/p2cc.man, src/p2cc.perl, src/p2clib.c, src/parse.c, src/pexpr.c, src/string.pas, src/system.imp, src/system.m2, src/trans.h, src/turbo.imp: - Import of p2c 1.21alpha2 - - * src/INSTALL, src/citmods.c, src/comment.c, src/decl.c, src/dir.c, src/expr.c, src/funcs.c, src/hpmods.c, src/lex.c, src/loc.p2clib.c, src/loc.p2crc, src/makeproto.c, src/out.c, src/p2c.cat, src/p2c.h, src/p2c.hdrs, src/p2c.proto, src/p2cc.cat, src/p2cc.man, src/p2cc.perl, src/p2clib.c, src/parse.c, src/pexpr.c, src/string.pas, src/system.imp, src/system.m2, src/trans.h, src/turbo.imp: - Initial revision - - * HP/import/asm.imp, HP/import/fs.imp, HP/import/general_0.imp, HP/import/general_1.imp, HP/import/general_2.imp, HP/import/general_3.imp, HP/import/general_4.imp, HP/import/hpib_0.imp, HP/import/hpib_1.imp, HP/import/hpib_2.imp, HP/import/hpib_3.imp, HP/import/iodecl.imp, HP/import/misc.imp, HP/import/rnd.imp, HP/import/sysdevs.imp, HP/import/sysglobals.imp, HP/include/asm.h, HP/include/fs.h, HP/include/general_0.h, HP/include/general_1.h, HP/include/general_2.h, HP/include/general_3.h, HP/include/general_4.h, HP/include/hpib_0.h, HP/include/hpib_1.h, HP/include/hpib_2.h, HP/include/hpib_3.h, HP/include/iodecl.h, HP/include/misc.h, HP/include/rnd.h, HP/include/sysdevs.h, HP/include/sysglobals.h, Makefile, README, examples/Makefile, examples/README, examples/basic.doc, examples/basic.p, examples/c/basic.c, examples/c/cref.c, examples/c/e.c, examples/c/fact.c, examples/c/self.c, examples/cref.p, examples/e.p, examples/fact.p, examples/p2crc, examples/self.p, ftp.README, src/COPYING, src/HISTORY, src/Makefile, src/NOTES, src/README, src/p2c.man, src/stuff.c, src/sys.p2crc, src/trans.c: - Import of p2c 1.21alpha2 - - * HP/import/asm.imp, HP/import/fs.imp, HP/import/general_0.imp, HP/import/general_1.imp, HP/import/general_2.imp, HP/import/general_3.imp, HP/import/general_4.imp, HP/import/hpib_0.imp, HP/import/hpib_1.imp, HP/import/hpib_2.imp, HP/import/hpib_3.imp, HP/import/iodecl.imp, HP/import/misc.imp, HP/import/rnd.imp, HP/import/sysdevs.imp, HP/import/sysglobals.imp, HP/include/asm.h, HP/include/fs.h, HP/include/general_0.h, HP/include/general_1.h, HP/include/general_2.h, HP/include/general_3.h, HP/include/general_4.h, HP/include/hpib_0.h, HP/include/hpib_1.h, HP/include/hpib_2.h, HP/include/hpib_3.h, HP/include/iodecl.h, HP/include/misc.h, HP/include/rnd.h, HP/include/sysdevs.h, HP/include/sysglobals.h, Makefile, README, examples/Makefile, examples/README, examples/basic.doc, examples/basic.p, examples/c/basic.c, examples/c/cref.c, examples/c/e.c, examples/c/fact.c, examples/c/self.c, examples/cref.p, examples/e.p, examples/fact.p, examples/p2crc, examples/self.p, ftp.README, src/COPYING, src/HISTORY, src/Makefile, src/NOTES, src/README, src/p2c.man, src/stuff.c, src/sys.p2crc, src/trans.c: - Initial revision - |