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 >
Wrap
Text File
|
1994-07-08
|
7KB
|
146 lines
Version notes for CPP (these are more notes to myself than anything that
should be taken as gospel, btw -sb):
5/31/93 Version 1.0.0 released.
6/2/93 First bug (sigh...): wasn't recognizing '?' as a valid token.
6/3/93 Version 1.0.1 released.
6/13/93 Small bug in handling of -W and -f options (strange, I know
they were working before...)
6/14/93 Version 1.0.2 released.
9/7/93 - do_undef() was incorrectly calling token() rather than
_one_token(), and thus chewing into the next line of input.
Thanks to Thorsten Roskowetz for pointing this out.
- added some basic copyright information -- basically, you can
do anything you want with this program except sell it or
claim it as your own work, and if it blows up your house and
eats your dog, it's not my fault. ;)
9/8/93 Version 1.0.3 released.
9/14/93 - [c/o Andreas Schwab] In include.c: if find_include_file()
couldn't find the include file, it incorrectly returned the
path of the last place it checked instead of NULL.
- [c/o Andreas Schwab] In token.c: when xlate_token() read
either of the tokens '!=' or '==', it left the last '=' in
the input to be re-read.
- [c/o Thorsten Roskowetz] In if_expr.c: the handling of
'\xhh' sequences in char_const() was wildly wrong. Not only
were the hex digits A-F being returned as values 0-5, but
the next character after the sequence (which might have been
the closing '!) was being skipped.
- [c/o Andreas Schwab] Fixed up several function calls that
were passing the wrong number of parameters (if only HSC
did prototypes!), and deleted a few functions that were no
longer being used.
- Fixed a few comments that were out of sync with the code they
were commenting.
9/15/93 Version 1.0.4 released.
11/27/93 - In macro.c: Fixed the expansion of built-in macros like
__DATE__ and __TIME__; they were expanding to "__DATE__"
and "__TIME__".
- In define.c: Finally finished the macro_eq() function for
testing equality of macro bodies. For the moment, it is
only experimental.
[many speedup suggestions due to Thorsten Roskowetz:]
- In hash.c, token.c: Forgo explicitly free()'ing memory during
at-exit cleanup of the macro table; we trust the operating
system to do the right thing.
- In hash.c: In hash_id(), pull the modulus operation out of
the loop.
- In pound.c: Identify preprocessor directives by their hash
values, rather than by string comparison.
- In *.c: Liberal application of the "register" keyword;
apparently I was putting too much faith in the optimizer to
do this for me.
12/17/93 - Version 1.0.5 released.
1/4/94 Another year, another pack of bugs... :-(
- [c/o Thorsten Roskowetz] In macro.c: expand() would
sometimes push the token it was passed directly back onto the
token stream; the caller then free_token()'ed that token,
causing havoc. This happened primarily when expanding macro
arguments. Now we push a copy of the token when necessary.
- In token.c: After calling expand(), exp_token() should
free_token() the token it just expanded.
- [c/o Andreas Schwab] In define.c: I knew I couldn't get
macro_eq() right the first time. :-/ Do string comparison
on the |txt| member, not the |type| member.
- [c/o Thorsten Roskowetz] In *.c, global.h: Assorted micro-
optimizations and manual coalescing of string constants.
- In macro.c: Sigh. The leading whitespace that expand() adds
to its resulting token list was being aliased directly out of
the token being expanded, which was later destroyed. Now we
copy the whitespace properly.
1/5/94 - In define.c: get_parms() was losing all but the first and last
macro parameters.
- Version 1.0.6 released.
1/6/94 - In macro.c: Corner-case bug: given:
#define a(m) m(5)
#define b(x) #x
a(b) should expand to "5"; but expand_tlist() was painting the
'b' blue prematurely. Now, if a token representing a macro that
takes arguments is followed immediately by a STOP token, we mark
it to be unpainted upon return to expand_tlist().
2/19/94 - In main.c,process.c: Added support for a config file to set
preprocessor constants.
- In pound.c: Added pragmas CPP_cmdline_arg and CPP_delayed,
active only while processing config file.
2/27/94 - Version 1.1.0 released.
3/16/94 - In define.c: The token immediately after a ## operator
wasn't being checked to see if it was a macro arg.
- In macro.c: The leading whitespace on a macro arg was being
lost when it was expanded, so that, for instance, given:
#define X(x) run x
X(on) was expanding to `runon' instead of `run on'.
4/11/94 Bugs reported by Thorsten Roskowetz:
- In pound.c: The filename in a #line directive wasn't being
copied properly.
- In main.c: In do_config_file(), incorrect handling of
multiple filenames specified in $LIB.
5/4/94 - Version 1.1.1 released.
5/29/94 - Fluff mode implemented. Invoked by the `-Xfluff' switch,
it enables the preprocessor macro __FLUFF__ and a special
set of #pragma's.
- In pound.c: fluff-mode pragma `#pragma fluff varargs' added ---
simply outputs the token `__FLUFF_varargs', for digestion by
fluff.
6/4/94 - Added option -Wno-bad-concat-tokens to disable warnings when
the ## operator produces something weird.
6/12/94 - In comment.c: nest_check() was accidentally flagging the
start of a comment as a nested comment.
7/1/94 - In process.c: put off output line synchronization as long
as possible, to allow coalescing of multiple blank lines.
This shortens the output file dramatically.
7/7/94 - In *.c: Plug an embarrassingly large number of memory leaks
that were dropping tokens.
- In token.c: Keep short text strings in the token structure
itself, rather than malloc()'ing them. We can inline token
text up to seven characters long, and leading whitespace up
to three characters long.
- New files alloc.cg, alloc.hg: A generic memory management
system. We allocate small structs several at a time and
maintain our own free lists, thus saving on malloc() overhead.
- New file generic.c: A small utility program to provide
pseudo-template facilities. Used to process alloc.cg and
alloc.hg.