[Tinyos-host-mote-wg] RE: [Tinyos-2.0wg] packages for nesC: why/etc
[shortish so you canglance through it this morning]
Buonadonna, Phil
phil.buonadonna at intel.com
Wed Jun 1 15:43:12 PDT 2005
Coming from EmNets, the biggest (and most concrete) complain from nesc
users is the surmounting difficulty of navigating the TOS
directory/namespace. Answering the question "which component is my
program using" is becoming increasingly complex.
I assume the package system would help address this problem? If yes,
then this is a much needed thing.
Going from #include back to 'includes' isn't to hard. However, it
sounds like integrating a C-preprocessor in nesC quite a bit of work.
would the package system impact source-line debugging?
pb
> -----Original Message-----
> From: tinyos-2.0wg-bounces at Mail.Millennium.Berkeley.EDU
> [mailto:tinyos-2.0wg-bounces at Mail.Millennium.Berkeley.EDU] On
> Behalf Of David Gay
> Sent: Wednesday, June 01, 2005 9:32 AM
> To: tinyos2
> Subject: [Tinyos-2.0wg] packages for nesC: why/etc [shortish
> so you canglance through it this morning]
>
> Name space for tinyos components and interfaces is getting complex:
>
> - similar names needed for functionality at many layers:
> hpl, hal, hil, oski
> - similar names needed across platforms / chips
> - some components are "private": not intended for independent use
> (lookup, e.g., at tos/lib/FS in 1.x)
>
> Prefixing is not a good solution: names become very awkward,
> prefixes are not
> used consistently, etc.
>
> ------------
>
> Proposal: add a package system to nesC
>
> packages contain component and interface files, and other packages
> issue: what about C names and include files? (see below)
>
> packages must be imported in a file before use
> packages can be imported with a "private" name
> (something like import "tinyos.lib.adc as foo", followed by uses
> like foo.SomeAdcInterface)
> some set of packages are automatically imported
>
> --------------
>
> Major issues:
> - how to deal with C names?
> - how to deal with C files, preprocessor macros?
> i.e., are they part of the package system, which means that:
> - C file inclusion should either include the package name, or
> be searched for in imported packages
> - C names/preprocessor names would be searched for in imported
> packages (and support the importedasname.name syntax)
>
> Reasons to include them:
> - same as for components and interfaces: the packages will
> need to organise
> their type names, etc
>
> Reasons not to include them:
> - how does #include work within a package system?
> (short answer: it doesn't, we would need to go back to
> "includes foo;")
> (long answer on request)
> - macroprocessing currently handled by external gcc invocation
> --> cannot handle macros in packages
> solution: integrate preprocessing into nesC compiler
> this allows "includes" and macros to work together...
> - more changes from C, possible syntax issues
>
> _______________________________________________
> Tinyos-2.0wg mailing list
> Tinyos-2.0wg at Mail.Millennium.Berkeley.EDU
> https://mail.millennium.berkeley.edu/cgi-bin/mailman/listinfo/
> tinyos-2.0wg
>
_______________________________________________
Tinyos-2.0wg mailing list
Tinyos-2.0wg at Mail.Millennium.Berkeley.EDU
https://mail.millennium.berkeley.edu/cgi-bin/mailman/listinfo/tinyos-2.0wg
More information about the Tinyos-host-mote-wg
mailing list