[Rock-dev] FW: [rock-core/base-types] Splitted base/types to seperate cpp and hpp files (#94)

Martin Fritsche Martin.Fritsche at dfki.de
Wed Aug 10 11:34:17 CEST 2016


Hi,
just my 2 cents:
From a performance point of view these changes go too far in my opinion.
At least the really simple one-liners should stay in the header to allow
the compiler to inline them.

Best,
Martin


Jakob Schwendner schrieb am 09.08.2016 um 10:50:
> Hey,
> 
>  
> 
> since this is a rather big PR, touching a lot of files, it would be
> great if a few people could test this.
> 
>  
> 
> Cheers,
> 
>  
> 
> Jakob
> 
>  
> 
> ---------- Forwarded message ----------
> From: *Dennis Hemker* <notifications at github.com
> <mailto:notifications at github.com>>
> Date: Tue, Aug 9, 2016 at 10:39 AM
> Subject: [rock-core/base-types] Splitted base/types to seperate cpp and
> hpp files (#94)
> To: rock-core/base-types <base-types at noreply.github.com
> <mailto:base-types at noreply.github.com>>
> 
> We splitted the base-types header-only lib into a separate .cpp/.hpp
> implementation due to very long orogen parsing times. The old
> implementation needed about 8 minutes (on a SSD) to finish the orogen
> phase in base/orogen/types. With the new concept, an enhancement of
> nearly 6 minutes (parsing times around 2 minutes) can be achieved.
> Furthermore, we removed some deprecated stuff.
> 
> Split Pose.hpp into implementation and header
> 
> Float.hpp: Use std function, not boost ones
> 
> Eigen: remove isnotnan and isfinite
> 
> This is a duplicate of the buildin
> allFinite()
> 
> move guaranteeSPD into TwistWithCovariance.
> 
> This one includes SVD, which is a big include in the base eigen.
> 
> moved Wrench.hpp to new src
> 
> moved TwistWithCovariance.hpp to new lib/src
> 
> moved Waypoint to new src folder
> 
> re-patched new isnan interface
> 
> splitted TransformWithCovariance
> 
> splitted Timueout
> 
> moved headers to cpp files
> 
> splitted TimeMark
> 
> removed inlining
> 
> splitted Time
> 
> splitted Temperature
> 
> moved Point
> 
> splitted Pressure
> 
> fixed compile errors
> 
> Added correct PC file for base-types, made base-lib a dummy
> 
> moved CircularBuffer
> 
> moved Deprecated
> 
> moved JointLimitRange
> 
> moved JointLimits
> 
> moved JointState
> 
> moved JointTransform
> 
> moved JointsTrajectory
> 
> moved NamedVector
> 
> moved Odometry
> 
> added odometry
> 
> ported rest of types
> 
> re-removed vector included
> 
> changed dep to right lib name
> 
> compile fixes
> 
> ------------------------------------------------------------------------
> 
> 
>         You can view, comment on, or merge this pull request online at:
> 
>   https://github.com/rock-core/base-types/pull/94
> 
> 
>         Commit Summary
> 
>   * Splitted base/types to seperate cpp and hpp files
> 
> 
>         File Changes
> 
>   * *M* CMakeLists.txt
>     <https://github.com/rock-core/base-types/pull/94/files#diff-0> (6)
>   * *D* base/JointLimitRange.hpp
>     <https://github.com/rock-core/base-types/pull/94/files#diff-1> (166)
>   * *D* base/JointLimits.hpp
>     <https://github.com/rock-core/base-types/pull/94/files#diff-2> (51)
>   * *D* base/JointTransform.hpp
>     <https://github.com/rock-core/base-types/pull/94/files#diff-3> (64)
>   * *D* base/Odometry.hpp
>     <https://github.com/rock-core/base-types/pull/94/files#diff-4> (16)
>   * *D* base/Temperature.hpp
>     <https://github.com/rock-core/base-types/pull/94/files#diff-5> (175)
>   * *D* base/Time.hpp
>     <https://github.com/rock-core/base-types/pull/94/files#diff-6> (252)
>   * *D* base/TimeMark.hpp
>     <https://github.com/rock-core/base-types/pull/94/files#diff-7> (39)
>   * *D* base/TransformWithCovariance.hpp
>     <https://github.com/rock-core/base-types/pull/94/files#diff-8> (413)
>   * *D* base/TwistWithCovariance.hpp
>     <https://github.com/rock-core/base-types/pull/94/files#diff-9> (286)
>   * *D* base/commands/AUVMotion.hpp
>     <https://github.com/rock-core/base-types/pull/94/files#diff-10> (26)
>   * *D* base/commands/AUVPosition.hpp
>     <https://github.com/rock-core/base-types/pull/94/files#diff-11> (24)
>   * *D* base/samples/BodyState.hpp
>     <https://github.com/rock-core/base-types/pull/94/files#diff-12> (337)
>   * *D* base/samples/Frame.hpp
>     <https://github.com/rock-core/base-types/pull/94/files#diff-13> (562)
>   * *D* base/samples/Joints.hpp
>     <https://github.com/rock-core/base-types/pull/94/files#diff-14> (116)
>   * *D* base/samples/RigidBodyState.hpp
>     <https://github.com/rock-core/base-types/pull/94/files#diff-15> (293)
>   * *D* base/samples/SonarBeam.hpp
>     <https://github.com/rock-core/base-types/pull/94/files#diff-16> (103)
>   * *D* base/samples/SonarScan.hpp
>     <https://github.com/rock-core/base-types/pull/94/files#diff-17> (398)
>   * *M* bindings/ruby/CMakeLists.txt
>     <https://github.com/rock-core/base-types/pull/94/files#diff-18> (2)
>   * *A* src/Angle.cpp
>     <https://github.com/rock-core/base-types/pull/94/files#diff-19> (171)
>   * *R* src/Angle.hpp
>     <https://github.com/rock-core/base-types/pull/94/files#diff-20> (192)
>   * *M* src/CMakeLists.txt
>     <https://github.com/rock-core/base-types/pull/94/files#diff-21> (113)
>   * *R* src/CircularBuffer.hpp
>     <https://github.com/rock-core/base-types/pull/94/files#diff-22> (0)
>   * *R* src/Deprecated.hpp
>     <https://github.com/rock-core/base-types/pull/94/files#diff-23> (0)
>   * *R* src/Eigen.hpp
>     <https://github.com/rock-core/base-types/pull/94/files#diff-24> (3)
>   * *R* src/Float.hpp
>     <https://github.com/rock-core/base-types/pull/94/files#diff-25> (11)
>   * *A* src/JointLimitRange.cpp
>     <https://github.com/rock-core/base-types/pull/94/files#diff-26> (118)
>   * *A* src/JointLimitRange.hpp
>     <https://github.com/rock-core/base-types/pull/94/files#diff-27> (79)
>   * *A* src/JointLimits.cpp
>     <https://github.com/rock-core/base-types/pull/94/files#diff-28> (33)
>   * *A* src/JointLimits.hpp
>     <https://github.com/rock-core/base-types/pull/94/files#diff-29> (23)
>   * *A* src/JointState.cpp
>     <https://github.com/rock-core/base-types/pull/94/files#diff-30> (149)
>   * *R* src/JointState.hpp
>     <https://github.com/rock-core/base-types/pull/94/files#diff-31> (104)
>   * *A* src/JointTransform.cpp
>     <https://github.com/rock-core/base-types/pull/94/files#diff-32> (28)
>   * *A* src/JointTransform.hpp
>     <https://github.com/rock-core/base-types/pull/94/files#diff-33> (39)
>   * *A* src/JointsTrajectory.cpp
>     <https://github.com/rock-core/base-types/pull/94/files#diff-34> (78)
>   * *R* src/JointsTrajectory.hpp
>     <https://github.com/rock-core/base-types/pull/94/files#diff-35> (67)
>   * *R* src/NamedVector.hpp
>     <https://github.com/rock-core/base-types/pull/94/files#diff-36> (0)
>   * *R* src/Point.hpp
>     <https://github.com/rock-core/base-types/pull/94/files#diff-37> (0)
>   * *A* src/Pose.cpp
>     <https://github.com/rock-core/base-types/pull/94/files#diff-38> (165)
>   * *R* src/Pose.hpp
>     <https://github.com/rock-core/base-types/pull/94/files#diff-39> (155)
>   * *A* src/Pressure.cpp
>     <https://github.com/rock-core/base-types/pull/94/files#diff-40> (46)
>   * *R* src/Pressure.hpp
>     <https://github.com/rock-core/base-types/pull/94/files#diff-41> (36)
>   * *A* src/Temperature.cpp
>     <https://github.com/rock-core/base-types/pull/94/files#diff-42> (120)
>   * *A* src/Temperature.hpp
>     <https://github.com/rock-core/base-types/pull/94/files#diff-43> (113)
>   * *A* src/Time.cpp
>     <https://github.com/rock-core/base-types/pull/94/files#diff-44> (270)
>   * *A* src/Time.hpp
>     <https://github.com/rock-core/base-types/pull/94/files#diff-45> (108)
>   * *A* src/TimeMark.cpp
>     <https://github.com/rock-core/base-types/pull/94/files#diff-46> (25)
>   * *A* src/TimeMark.hpp
>     <https://github.com/rock-core/base-types/pull/94/files#diff-47> (29)
>   * *A* src/Timeout.cpp
>     <https://github.com/rock-core/base-types/pull/94/files#diff-48> (50)
>   * *R* src/Timeout.hpp
>     <https://github.com/rock-core/base-types/pull/94/files#diff-49> (34)
>   * *A* src/Trajectory.cpp
>     <https://github.com/rock-core/base-types/pull/94/files#diff-50> (12)
>   * *R* src/Trajectory.hpp
>     <https://github.com/rock-core/base-types/pull/94/files#diff-51> (8)
>   * *A* src/TransformWithCovariance.cpp
>     <https://github.com/rock-core/base-types/pull/94/files#diff-52> (408)
>   * *A* src/TransformWithCovariance.hpp
>     <https://github.com/rock-core/base-types/pull/94/files#diff-53> (142)
>   * *A* src/TwistWithCovariance.cpp
>     <https://github.com/rock-core/base-types/pull/94/files#diff-54> (368)
>   * *A* src/TwistWithCovariance.hpp
>     <https://github.com/rock-core/base-types/pull/94/files#diff-55> (114)
>   * *A* src/Waypoint.cpp
>     <https://github.com/rock-core/base-types/pull/94/files#diff-56> (18)
>   * *R* src/Waypoint.hpp
>     <https://github.com/rock-core/base-types/pull/94/files#diff-57> (13)
>   * *R* src/Wrench.hpp
>     <https://github.com/rock-core/base-types/pull/94/files#diff-58> (0)
>   * *R* src/base-lib.pc.in
>     <https://github.com/rock-core/base-types/pull/94/files#diff-59> (4)
>   * *A* src/base-types.pc.in
>     <https://github.com/rock-core/base-types/pull/94/files#diff-60> (13)
>   * *R* src/commands/Joints.hpp
>     <https://github.com/rock-core/base-types/pull/94/files#diff-61> (0)
>   * *A* src/commands/Motion2D.cpp
>     <https://github.com/rock-core/base-types/pull/94/files#diff-62> (12)
>   * *R* src/commands/Motion2D.hpp
>     <https://github.com/rock-core/base-types/pull/94/files#diff-63> (4)
>   * *R* src/commands/Speed6D.hpp
>     <https://github.com/rock-core/base-types/pull/94/files#diff-64> (0)
>   * *A* src/samples/BodyState.cpp
>     <https://github.com/rock-core/base-types/pull/94/files#diff-65> (325)
>   * *A* src/samples/BodyState.hpp
>     <https://github.com/rock-core/base-types/pull/94/files#diff-66> (167)
>   * *R* src/samples/CommandSamples.hpp
>     <https://github.com/rock-core/base-types/pull/94/files#diff-67> (0)
>   * *A* src/samples/CompressedFrame.cpp
>     <https://github.com/rock-core/base-types/pull/94/files#diff-68> (9)
>   * *R* src/samples/CompressedFrame.hpp
>     <https://github.com/rock-core/base-types/pull/94/files#diff-69> (12)
>   * *A* src/samples/DepthMap.cpp
>     <https://github.com/rock-core/base-types/pull/94/files#diff-70> (91)
>   * *R* src/samples/DepthMap.hpp
>     <https://github.com/rock-core/base-types/pull/94/files#diff-71> (89)
>   * *A* src/samples/DistanceImage.cpp
>     <https://github.com/rock-core/base-types/pull/94/files#diff-72> (38)
>   * *R* src/samples/DistanceImage.hpp
>     <https://github.com/rock-core/base-types/pull/94/files#diff-73> (36)
>   * *A* src/samples/Frame.cpp
>     <https://github.com/rock-core/base-types/pull/94/files#diff-74> (419)
>   * *A* src/samples/Frame.hpp
>     <https://github.com/rock-core/base-types/pull/94/files#diff-75> (283)
>   * *R* src/samples/IMUSensors.hpp
>     <https://github.com/rock-core/base-types/pull/94/files#diff-76> (0)
>   * *A* src/samples/Joints.cpp
>     <https://github.com/rock-core/base-types/pull/94/files#diff-77> (94)
>   * *A* src/samples/Joints.hpp
>     <https://github.com/rock-core/base-types/pull/94/files#diff-78> (47)
>   * *A* src/samples/LaserScan.cpp
>     <https://github.com/rock-core/base-types/pull/94/files#diff-79> (69)
>   * *R* src/samples/LaserScan.hpp
>     <https://github.com/rock-core/base-types/pull/94/files#diff-80> (71)
>   * *R* src/samples/Pointcloud.hpp
>     <https://github.com/rock-core/base-types/pull/94/files#diff-81> (0)
>   * *A* src/samples/Pressure.cpp
>     <https://github.com/rock-core/base-types/pull/94/files#diff-82> (16)
>   * *R* src/samples/Pressure.hpp
>     <https://github.com/rock-core/base-types/pull/94/files#diff-83> (19)
>   * *A* src/samples/RigidBodyAcceleration.cpp
>     <https://github.com/rock-core/base-types/pull/94/files#diff-84> (7)
>   * *R* src/samples/RigidBodyAcceleration.hpp
>     <https://github.com/rock-core/base-types/pull/94/files#diff-85> (5)
>   * *A* src/samples/RigidBodyState.cpp
>     <https://github.com/rock-core/base-types/pull/94/files#diff-86> (306)
>   * *A* src/samples/RigidBodyState.hpp
>     <https://github.com/rock-core/base-types/pull/94/files#diff-87> (180)
>   * *A* src/samples/Sonar.cpp
>     <https://github.com/rock-core/base-types/pull/94/files#diff-88> (268)
>   * *R* src/samples/Sonar.hpp
>     <https://github.com/rock-core/base-types/pull/94/files#diff-89> (252)
>   * *A* src/samples/SonarBeam.cpp
>     <https://github.com/rock-core/base-types/pull/94/files#diff-90> (63)
>   * *A* src/samples/SonarBeam.hpp
>     <https://github.com/rock-core/base-types/pull/94/files#diff-91> (56)
>   * *A* src/samples/SonarScan.cpp
>     <https://github.com/rock-core/base-types/pull/94/files#diff-92> (310)
>   * *A* src/samples/SonarScan.hpp
>     <https://github.com/rock-core/base-types/pull/94/files#diff-93> (164)
>   * *R* src/samples/Wrench.hpp
>     <https://github.com/rock-core/base-types/pull/94/files#diff-94> (0)
>   * *R* src/samples/Wrenches.hpp
>     <https://github.com/rock-core/base-types/pull/94/files#diff-95> (0)
>   * *R* src/templates/TimeStamped.hpp
>     <https://github.com/rock-core/base-types/pull/94/files#diff-96> (0)
>   * *M* viz/CMakeLists.txt
>     <https://github.com/rock-core/base-types/pull/94/files#diff-97> (2) 
> 
> 
>         Patch Links:
> 
>   * https://github.com/rock-core/base-types/pull/94.patch
>   * https://github.com/rock-core/base-types/pull/94.diff
> 
> —
> You are receiving this because you are subscribed to this thread.
> Reply to this email directly, view it on GitHub
> <https://github.com/rock-core/base-types/pull/94>, or mute the thread
> <https://github.com/notifications/unsubscribe-auth/AAJ0QsRbtQCv0MHYRWumDnFsyKd8gXQ7ks5qeDzHgaJpZM4Jf14N>.Image
> removed by sender.
> 
>  
> 
> 
> 
> _______________________________________________
> Rock-dev mailing list
> Rock-dev at dfki.de
> http://www.dfki.de/mailman/cgi-bin/listinfo/rock-dev
> 

-- 
Dipl.-Inf. Martin Fritsche
Unterwasserrobotik

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

Tel.:     +49 (0)421 17845-4134
Zentrale: +49 421 17845-0
Fax:      +49 (0)421 17845-4150 (Faxe bitte namentlich kennzeichnen)
E-Mail:   martin.fritsche 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
-----------------------------------------------------------------------

-------------- nächster Teil --------------
Ein Dateianhang mit Bin�rdaten wurde abgetrennt...
Dateiname   : signature.asc
Dateityp    : application/pgp-signature
Dateigr��e  : 181 bytes
Beschreibung: OpenPGP digital signature
URL         : http://www.dfki.de/pipermail/rock-dev/attachments/20160810/10536bd7/attachment-0001.pgp 


More information about the Rock-dev mailing list