[Tinyos-devel] nesC 1.3.0 beta 1
David Gay
dgay42 at gmail.com
Thu Jun 5 11:39:34 PDT 2008
The source is on sf.net/projects/nescc. Precompiled packages to be
available fairly soon.
Changes in nesC 1.3.0
=====================
- C preprocessor is integrated into nesC, which significantly speeds
up compilation (esp. on Windows, expect it to be many times faster)
- Support for the Deputy type-safety-for-C system (see
deputy.cs.berkeley.edu), which takes the form of a -safe/-unsafe
argument to nescc (not yet implemented in this alpha release), extra
information on types via nesC attributes (@count(<expr>), @nts,
etc), @safe() and @unsafe() nesC attributes to turn safety on/off on
a per-function or per-module basis (safety defaults to off).
Furthermore, deputy's attributes can be placed in nesdoc comments
to avoid cluttering/confusing existing type declarations:
/** ... @param 'int *@count(n) x' x is an array of n ints ... */
void f(int *x, int n);
- Internal support (in nesc1) for Deputy based on @deputy_scope() and
@macro("NAME") attributes, and a -fnesc-genprefix=<line> option.
- @macro() and -fnesc-genprerix= may be useful in other contexts too:
if a nesC attribute declaration has an @macro() attribute:
struct @myattr @macro("MYMACRO") { int x; char *y; };
then uses of @myattr in nesC source are output as calls to MYMACRO in
then uses of @myattr in nesC source are output as calls to MYMACRO in
nesC's intermediate C output. For instance
int x @myattr(23, "fun");
becomes
int x MYMACRO(23, "fun");
The -fnesc-genprefix=<line> adds <line> to the start of the generated C
output, e.g., it could be a #define definition for MYMACRO, or a
#include of a file with appropriate definitions.
- wide strings in XML output now show up as arrays of bytes (and follow
the target's byte-level representation of wide strings)
- miscellaneous bug fixes
David Gay
More information about the Tinyos-devel
mailing list