home *** CD-ROM | disk | FTP | other *** search
/ Computer Club Elmshorn Atari PD / CCE_PD.iso / mac / 1000 / CCE_1024.ZIP / CCE_1024 / SOZBIN07.LZH / SOZDISTR / DOC / CPP-VERS.DOC < prev    next >
Text File  |  1994-07-08  |  7KB  |  146 lines

  1. Version notes for CPP (these are more notes to myself than anything that
  2. should be taken as gospel, btw  -sb):
  3.  
  4. 5/31/93        Version 1.0.0 released.
  5.  
  6. 6/2/93        First bug (sigh...):  wasn't recognizing '?' as a valid token.
  7.  
  8. 6/3/93        Version 1.0.1 released.
  9.  
  10. 6/13/93        Small bug in handling of -W and -f options (strange, I know
  11.         they were working before...)
  12.  
  13. 6/14/93        Version 1.0.2 released.
  14.  
  15. 9/7/93    - do_undef() was incorrectly calling token() rather than
  16.         _one_token(), and thus chewing into the next line of input.
  17.         Thanks to Thorsten Roskowetz for pointing this out.
  18.       - added some basic copyright information -- basically, you can
  19.         do anything you want with this program except sell it or
  20.         claim it as your own work, and if it blows up your house and
  21.         eats your dog, it's not my fault. ;)
  22.  
  23. 9/8/93        Version 1.0.3 released.
  24.  
  25. 9/14/93   - [c/o Andreas Schwab] In include.c:  if find_include_file()
  26.         couldn't find the include file, it incorrectly returned the
  27.         path of the last place it checked instead of NULL.
  28.       - [c/o Andreas Schwab] In token.c:  when xlate_token() read
  29.         either of the tokens '!=' or '==', it left the last '=' in
  30.         the input to be re-read.
  31.       - [c/o Thorsten Roskowetz] In if_expr.c:  the handling of
  32.         '\xhh' sequences in char_const() was wildly wrong.  Not only
  33.         were the hex digits A-F being returned as values 0-5, but
  34.         the next character after the sequence (which might have been
  35.         the closing '!) was being skipped.
  36.       - [c/o Andreas Schwab]  Fixed up several function calls that
  37.         were passing the wrong number of parameters (if only HSC
  38.         did prototypes!), and deleted a few functions that were no
  39.         longer being used.
  40.       - Fixed a few comments that were out of sync with the code they
  41.         were commenting.
  42.  
  43. 9/15/93     Version 1.0.4 released.
  44.  
  45. 11/27/93  - In macro.c:  Fixed the expansion of built-in macros like
  46.         __DATE__ and __TIME__; they were expanding to "__DATE__"
  47.         and "__TIME__".
  48.       - In define.c:  Finally finished the macro_eq() function for
  49.         testing equality of macro bodies.  For the moment, it is
  50.         only experimental.
  51.       [many speedup suggestions due to Thorsten Roskowetz:]
  52.       - In hash.c, token.c:  Forgo explicitly free()'ing memory during
  53.         at-exit cleanup of the macro table; we trust the operating
  54.         system to do the right thing.
  55.       - In hash.c:  In hash_id(), pull the modulus operation out of
  56.         the loop.
  57.       - In pound.c:  Identify preprocessor directives by their hash
  58.         values, rather than by string comparison.
  59.       - In *.c:  Liberal application of the "register" keyword;
  60.         apparently I was putting too much faith in the optimizer to
  61.         do this for me.
  62.  
  63. 12/17/93  - Version 1.0.5 released.
  64.  
  65. 1/4/94      Another year, another pack of bugs... :-(
  66.       - [c/o Thorsten Roskowetz]  In macro.c:  expand() would
  67.         sometimes push the token it was passed directly back onto the
  68.         token stream; the caller then free_token()'ed that token,
  69.         causing havoc.  This happened primarily when expanding macro
  70.         arguments.  Now we push a copy of the token when necessary.
  71.       - In token.c:  After calling expand(), exp_token() should
  72.         free_token() the token it just expanded.
  73.       - [c/o Andreas Schwab]  In define.c:  I knew I couldn't get
  74.         macro_eq() right the first time. :-/  Do string comparison
  75.         on the |txt| member, not the |type| member.
  76.       - [c/o Thorsten Roskowetz]  In *.c, global.h:  Assorted micro-
  77.         optimizations and manual coalescing of string constants.
  78.       - In macro.c:  Sigh.  The leading whitespace that expand() adds
  79.         to its resulting token list was being aliased directly out of
  80.         the token being expanded, which was later destroyed.  Now we
  81.         copy the whitespace properly.
  82.  
  83. 1/5/94      - In define.c:  get_parms() was losing all but the first and last
  84.         macro parameters.
  85.       - Version 1.0.6 released.
  86.  
  87. 1/6/94      - In macro.c:  Corner-case bug:  given:
  88.         #define a(m) m(5)
  89.         #define b(x) #x
  90.         a(b) should expand to "5"; but expand_tlist() was painting the
  91.         'b' blue prematurely.  Now, if a token representing a macro that
  92.         takes arguments is followed immediately by a STOP token, we mark
  93.         it to be unpainted upon return to expand_tlist().
  94.  
  95. 2/19/94   - In main.c,process.c:  Added support for a config file to set
  96.         preprocessor constants.
  97.       - In pound.c:  Added pragmas CPP_cmdline_arg and CPP_delayed,
  98.         active only while processing config file.
  99.  
  100. 2/27/94      - Version 1.1.0 released.
  101.  
  102. 3/16/94   - In define.c:  The token immediately after a ## operator
  103.         wasn't being checked to see if it was a macro arg.
  104.       - In macro.c:  The leading whitespace on a macro arg was being
  105.         lost when it was expanded, so that, for instance, given:
  106.         #define X(x) run x
  107.         X(on) was expanding to `runon' instead of `run on'.
  108.  
  109. 4/11/94   Bugs reported by Thorsten Roskowetz:
  110.       - In pound.c:  The filename in a #line directive wasn't being
  111.         copied properly.
  112.       - In main.c:  In do_config_file(), incorrect handling of
  113.         multiple filenames specified in $LIB.
  114.  
  115. 5/4/94      - Version 1.1.1 released.
  116.  
  117. 5/29/94      - Fluff mode implemented.  Invoked by the `-Xfluff' switch,
  118.         it enables the preprocessor macro __FLUFF__ and a special
  119.         set of #pragma's.
  120.       - In pound.c: fluff-mode pragma `#pragma fluff varargs' added ---
  121.         simply outputs the token `__FLUFF_varargs', for digestion by
  122.         fluff.
  123.  
  124. 6/4/94      - Added option -Wno-bad-concat-tokens to disable warnings when
  125.         the ## operator produces something weird.
  126.  
  127. 6/12/94   - In comment.c:  nest_check() was accidentally flagging the
  128.         start of a comment as a nested comment.
  129.  
  130. 7/1/94    - In process.c:  put off output line synchronization as long
  131.         as possible, to allow coalescing of multiple blank lines.
  132.         This shortens the output file dramatically.
  133.  
  134. 7/7/94      - In *.c:  Plug an embarrassingly large number of memory leaks
  135.         that were dropping tokens.
  136.       - In token.c:  Keep short text strings in the token structure
  137.         itself, rather than malloc()'ing them.  We can inline token
  138.         text up to seven characters long, and leading whitespace up
  139.         to three characters long.
  140.       - New files alloc.cg, alloc.hg:  A generic memory management
  141.         system.  We allocate small structs several at a time and
  142.         maintain our own free lists, thus saving on malloc() overhead.
  143.       - New file generic.c:  A small utility program to provide
  144.         pseudo-template facilities.  Used to process alloc.cg and
  145.         alloc.hg.
  146.