home *** CD-ROM | disk | FTP | other *** search
/ Fresh Fish 2 / FFMCD02.bin / new / dev / misc / p2c / history < prev    next >
Text File  |  1993-12-21  |  26KB  |  661 lines

  1.  
  2.  
  3. Summary of changes to "p2c"
  4. ------- -- ------- --  ---
  5.  
  6.  
  7. Version 1.20:
  8.  
  9.  * Changed VAX "type t = [byte] 0..255" not to say it can't interpret size.
  10.  
  11.  * Changed to use a temp var when passing a constant to a VAR parameter.
  12.  
  13.  * Changed to avoid initializing char arrays with string literals in pre-ANSI.
  14.  
  15.  * Changed to make arithmetic involving character literals more readable.
  16.  
  17.  * Changed to accept empty parentheses in function declarations (for Modula 2).
  18.  
  19.  * Made more changes for VAX and MSDOS compatibility (thanks to William Bader).
  20.  
  21.  * Added support for PACK and UNPACK procedures (finally!).
  22.  
  23.  * EMBED lines beginning with `#' are no longer indented.
  24.  
  25.  * EatComments no longer eats EMBED comments.
  26.  
  27.  * Reworded "File paramter needs associated buffers" to suggest StructFiles.
  28.  
  29.  * Added ability to eliminate "if false" and "if true" if ElimDeadCode = 2.
  30.  
  31.  * Bug fix in funcs.c:handleread/write_text: Treated case where fex is a PAC.
  32.    Symptom: VAX Pascal readv/writev failed when "string" was an array of chars.
  33.  
  34.  * Bug fix in expr.c:makeexpr_charcast: Watch for mp->val.type == NULL case.
  35.    Symptom: Reference to NULL error when referring to some CONST names.
  36.    (Also fixed this bug in various other places.)
  37.  
  38.  * Bug fix in expr.c:eval_expr_either: Check for TK_INTEGER, not tp_integer.
  39.    Symptom: Constant exprs involving +, *, etc. could not always be evaluated.
  40.  
  41.  * Bug fix in pexpr.c:p_factor:MK_SPECIAL case: Added "target &&" check.
  42.    Symptom: Reference to NULL in VAX Pascal "open(..., ..., new)".
  43.  
  44.  * Bug fix in p2clib.c:my_memcpy etc.: Use n-- > 0 instead of --n >= 0.
  45.    Symptom: Didn't work when size_t is an unsigned integer type.
  46.  
  47.  * Bug fix in p2clib.c:ipow: Changed 1<< to 1L<< (also in set functions).
  48.    Symptom: Didn't work on 16-bit target machines.
  49.  
  50.  * Bug fix in funcs.c:handleread_text: Write %g for float, %lg for double.
  51.    Symptom: Bad code for reading a "single" or "shortreal" variable.
  52.  
  53.  * Added to sys.p2crc/trans.h the following configuration parameter:
  54.  
  55.     InitPACStrings      String literal in initializer can be size of array.
  56.  
  57. Version 1.19:
  58.  
  59.  * P2c's copyright has been assigned to the Free Software Foundation.
  60.  
  61.  * Improved p2c to preserve Pascal type names in most cases.
  62.  
  63.  * Introduced "PreserveTypes" (PreserveTypes=0 makes p2c work like v1.18).
  64.  
  65.  * Also added "PreservePointers" (default off) and "PreserveStrings" (on).
  66.  
  67.  * Changed p2c.h to recognize funny ANSI-like header files in HP-UX 7.0.
  68.  
  69.  * Changed to handle taking the address of an argument of a promotable type.
  70.  
  71.  * Changed parser to accept "a * -b" without syntax errors.
  72.  
  73.  * Fixed a few unreachable statement warnings in the p2c sources.
  74.  
  75.  * Changed exit(0) to exit(EXIT_SUCCESS) in main program.
  76.  
  77.  * Added support for VAX C and MSDOS to p2c.h.
  78.  
  79.  * Bug fix in parse.c:fixblock: Call filebasetype in similartypes arg.
  80.    Symptom: Pascal GET procedure sometimes crashed p2c when StructFiles=1.
  81.  
  82.  * Bug fix in pexpr.c:p_funcarglist: Handle stdin/stdout when StructFiles=1.
  83.    Symptom: myproc(output) generated "type mismatch" warning and bad code.
  84.  
  85.  * Bug fix in expr.c:makeexpr_rel: Use ISCONST to guard checkconst call.
  86.    Symptom: "J <= A-I-1+C" where "const C=1" put p2c into an infinite loop.
  87.  
  88.  * Bug fix in decl.c:setupmeaning: Consider enum consts to be global names.
  89.    Symptom: Local enum consts can conflict with similar global names.
  90.  
  91.  * Bug fix in lex.c:push_input/pop_input: Save/restore curtokbuf/curtokcase.
  92.    Symptom: Value lost when main calls defmacro after setup_lex, before parser.
  93.  
  94.  * Bug fix in parse.c:out_function: Don't recursively output "exported" funcs.
  95.    Symptom: This occurs when an "external" decl occurs local to a function.
  96.  
  97.  * Bug fix in p2c.h:AGETFBUF: Removed extra "&".
  98.    Symptom: Taking address of an array generated a warning on some compilers.
  99.  
  100.  * Bug fix in p2c.h:LONG_MAX, etc.: Fixed to cast back to signed types.
  101.    Symptom: LONG_MAX had type unsigned long; "(double)(-LONG_MAX)" failed.
  102.  
  103.  * Bug fix in p2clib.c:P_trimname: Added trailing null to output string.
  104.    Symptom: Function wouldn't always work after first call.
  105.  
  106.  * Added to sys.p2crc/trans.h the following configuration parameter:
  107.  
  108.     FixPromotedArgs    Fix "&" of arguments which may be promoted.
  109.     PreserveTypes      Use typedef to preserve most Pascal type names.
  110.     PreservePointers   Use typedef specifically for pointer types.
  111.     PreserveStrings    Use typedef specifically for string types.
  112.     SpaceCommas           Use spaces after commas (default on).
  113.     SpaceFuncs           Use spaces after function names (default off).
  114.     NoBanner           Suppress "From input file..." comment at top of file.
  115.  
  116. Version 1.18:
  117.  
  118.  * Improved indentation strategy for EMBED comments.
  119.  
  120.  * Allowed one-line EMBED comments: {EMBED foo();}
  121.  
  122.  * Made {SKIP} ... {NOSKIP} comments nestable.  ({NOSKIP ... } isn't nestable.)
  123.  
  124.  * Changed to emit comments in export sections of modules in correct order.
  125.  
  126.  * Rewrote decl.c:p_arraydecl slightly to avoid a gcc bug.
  127.  
  128.  * Bug fix in expr.c:makeexpr_sizeof: Compute size by hand if SkipIndices used.
  129.    Symptom: Size was "sizeof(arr)" even if it should have omitted skipped part.
  130.  
  131.  * Bug fix in trans.h: Added #undef _toupper/_tolower at end.
  132.    Symptom: Failed to compile on Apollos.
  133.  
  134.  * Bug fix in parse.c:fixblock: Added "sp->stm1 &&" check for WHILE statements.
  135.    Symptom: "while cond do ;" caused a reference-to-NULL error.
  136.  
  137.  * Bug fix in decl.c:makefakestruct: Suppressed fakestruct when importing.
  138.    Symptom: Importing a module generates two declarations for _REC_A.
  139.  
  140.  * Bug fix in Makefile: Added rules to make home dirs if not found.
  141.  
  142. Version 1.17:
  143.  
  144.  * Introduced "StructFile" stuff to help with more intensive file operations.
  145.  
  146.  * Simplified "N + 0.0" to "(double)N" instead of "N" when appropriate.
  147.  
  148.  * Fixed typo in sys.p2crc: "LogBreakPenalty" => "RelBreakPenalty".
  149.  
  150.  * Changed to avoid generating bit fields as members of a union.
  151.  
  152.  * Now "stringarray[i] := expr" will sprintf expr into lhs with no temp var.
  153.  
  154.  * Handled assignment of small packed arrays of chars into big ones.
  155.  
  156.  * Added to sys.p2crc/trans.h the following configuration parameters:
  157.  
  158.     CharConsts      Assume "const c='x'" is a char, not string constant.
  159.     SelfIncludeName Format to use when a module includes its own .h file.
  160.     StructFiles     Translate files as special structs rather than FILE *'s.
  161.     StructFile      A file variable to be treated as if StructFiles=1.
  162.  
  163. Version 1.16:
  164.  
  165.  * Reduced wasteful proliferation of identical-looking temporary variables.
  166.  
  167.  * Improved heuristic for determining allocation size for set constructors.
  168.  
  169.  * Corrected handling for EOF applied to buffered binary files.
  170.  
  171.  * Bug fix in decl.c: Handled a rare case involving forward-declared pointers.
  172.  
  173.  * Bug fix in p2clib.c:P_remset: Forgot to fix s[0] if highest bit was cleared.
  174.  
  175.  * Bug fix in p2clib.c:P_setxor: Forgot to fix s[0] if highest bits cancelled.
  176.  
  177.  * Added to sys.p2crc/trans.h the following configuration parameters:
  178.  
  179.     EofBufName      Macro to use for EOF of a bufffered file.
  180.     FilePosBufName  Macro to use for FILEPOS or POSITION of a buffered file.
  181.  
  182. Version 1.15:
  183.  
  184.  * Taught the line breaker to handle logical/relational operators specially.
  185.  
  186.  * Improved code generation for large set constructors.
  187.  
  188.  * Changed makeexpr_assign to handle EK_LITCAST's on the lefthand side.
  189.  
  190.  * Changed makeexpr_addr to handle casts.
  191.  
  192.  * Changed FieldMacros so that the substituted base expr retains its type.
  193.  
  194.  * Bug fix in p2c.h: Rewrote P_getbits_US and other small-packed-array macros.
  195.    Symptom: On many architectures, these macros didn't work at all!
  196.    NOTE: These now pack small arrays in the opposite direction (LSB first).
  197.  
  198.  * Bug fix in funcs.c:handleread_text: changed strread of string to use %255s.
  199.    Symptom: Previous translation of %255c did not append a null character.
  200.  
  201.  * Bug fix in p2clib.c:strrtrim: Added test for empty string input.
  202.    Symptom: Incorrect behavior on strrtrim("").
  203.  
  204.  * Bug fix in p2clib.c:P_addsetr: Changed to signed comparison of v1 and v2.
  205.    Symptom: Adding [0..-1] to a set failed.
  206.  
  207.  * Bug fix in p2clib.c:P_expset: Don't write to d[1] if set is empty.
  208.    Symptom: Sets allocated to store 0 elements didn't work