[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