[Rock-dev] clang vs. typelib

Martin Zenzes martin.zenzes at dfki.de
Fri Jul 18 15:15:42 CEST 2014


On 07/18/2014 02:35 PM, Sylvain Joyeux wrote:
> The database contains all the types that are defined in the explicitly 
> given headers (import_types_from) as well as all the types that are 
> necessary to define them. If you have a type in your header that uses 
> timespec, it will end in the database, otherwise it gets thrown out. 
Types or Records? I assume Types, so that creating a output-port of 
"double" is possible?
> Not *exactly*.
>
> Typelib and orogen allows to define "opaque types", which is basically
> a way to name a type and tell the system that it is not able to handle
> it BUT that it is of interest. In orogen, opaques get converted to a
> typelib-compatible type
> (http://rock-robotics.org/master/documentation/orogen/opaque_types.html)
>
> During parsing, one MUST define the types that use Records that are
> opaques, even if these opaques have pointers, references, virtual
> functions, ...
>
> To make it usable for the user, it is allowed to specify an opaque
> from a typedef name (i.e. the user says "make base/Vector3d opaque"
> instead of Eigen::MatrixBase<double,3,0,0,...>). That also has to be
> handled during import.
So the importer gets a list of types (typedefs) which are then 
whitelisted and the "typedef->CanonicalName" pair is added to the 
database. The field-layout of the intermediary type is added by calling 
the importer with the wrapper-header.
>> And warn about Records with:
>> - FieldTypes with architecture-dependent size, like int
> I would prefer leaving that to as post-processing pass instead of
> embedding it in the importer.
why not warn as early as possible? Sure, in the moment many messages use 
"int", so lotta warnings... But the information is here, so... Yeah 
well, this is easy to add/leave out... Not that important.





-- 
M.Sc. Martin Zenzes
Space Robotics

Hauptgeschäftsstelle Standort Bremen:
DFKI GmbH
Robotics Innovation Center
Robert-Hooke-Straße 5
28359 Bremen, Germany

Phone: +49 (0) 421 178 45 - 6658
Fax: +49 (0) 421 178 45 - 4150
E-Mail: martin.zenzes at dfki.de

Weitere Informationen: http://www.dfki.de/robotik
-----------------------------------------------------------------------
Deutsches Forschungszentrum fuer Kuenstliche Intelligenz GmbH
Firmensitz: Trippstadter Straße 122, D-67663 Kaiserslautern
Geschaeftsfuehrung: Prof. Dr. Dr. h.c. mult. Wolfgang Wahlster
(Vorsitzender) Dr. Walter Olthoff
Vorsitzender des Aufsichtsrats: Prof. Dr. h.c. Hans A. Aukes
Amtsgericht Kaiserslautern, HRB 2313
Sitz der Gesellschaft: Kaiserslautern (HRB 2313)
USt-Id.Nr.: DE 148646973
Steuernummer: 19/673/0060/3
-----------------------------------------------------------------------



More information about the Rock-dev mailing list