[[cpphs @ 2004-07-30 15:01:20 by malcolm]
malcolm**20040730150120
For better compatibility with cpp, and because otherwise there are
certain constructs that cannot be expressed, we no longer permit
whitespace in a #define between the symbolname and an opening
parenthesis, e.g.
#define f (f' id)
Previously, this was interpreted as a parametrised macro, with
arguments in the parens, and no expansion. Now, the space indicates
that this is a textual replacement, and the parenthesised expression
is in fact the replacement.
] {
hunk ./CHANGELOG 10
+ * For better compatibility with cpp, and because otherwise
+ there are certain constructs that cannot be expressed, we no
+ longer permit whitespace in a #define between the
+ symbolname and an opening parenthesis, e.g.
+ #define f (f' id)
+ Previously, this was interpreted as a parametrised macro,
+ with arguments in the parens, and no expansion. Now, the space
+ indicates that this is a textual replacement, and the parenthesised
+ expression is in fact the replacement.
+
hunk ./HashDefine.hs 75
- define (sym:xs) = case skip xs of
+ define (sym:xs) = case {-skip-} xs of
hunk ./HashDefine.hs 78
- { name=sym, replacement=chop ys }
+ { name=sym
+ , replacement=chop (skip ys) }
hunk ./docs/index.html 150
+cpphs-0.6, release date 2004.0x.xx
+By HTTP:
+.tar.gz,
+.zip,
+FreeBSD port.
+
#if ( foo ) && ( bar )+
#if foo && bar || baz && frob+
#define f (f' id). Previously, this was interpreted + as a parametrised macro, with arguments in the parens, and + no expansion. Now, the space indicates that this is a textual + replacement, and the parenthesised expression is in fact the + replacement. +
+Older versions: +
hunk ./docs/index.html 200 -Older versions: -
hunk ./docs/index.html 295 -