-
Notifications
You must be signed in to change notification settings - Fork 768
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Windows Tests #1109
Windows Tests #1109
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Awesome (if windows CI actually passes :-))
} // namespace gtsam |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Why ?
gtsam/geometry/Line3.h
Outdated
@@ -146,7 +146,30 @@ class Line3 { | |||
*/ | |||
Line3 transformTo(const Pose3 &wTc, const Line3 &wL, | |||
OptionalJacobian<4, 6> Dpose = boost::none, | |||
OptionalJacobian<4, 4> Dline = boost::none); | |||
OptionalJacobian<4, 4> Dline = boost::none) { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I had trouble with definitions in headers. Should be inline? But I don't understand why we can't just export here and leave definition in .cpp?
@@ -39,6 +39,9 @@ BOOST_CLASS_EXPORT_GUID(noiseModel::Unit, "gtsam_noiseModel_Unit") | |||
BOOST_CLASS_EXPORT_GUID(noiseModel::Isotropic, "gtsam_noiseModel_Isotropic") | |||
BOOST_CLASS_EXPORT_GUID(SharedNoiseModel, "gtsam_SharedNoiseModel") | |||
BOOST_CLASS_EXPORT_GUID(SharedDiagonal, "gtsam_SharedDiagonal") | |||
BOOST_CLASS_EXPORT_GUID(PreintegratedImuMeasurements, "gtsam_PreintegratedImuMeasurements") |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
should be gtsam::PreintegratedImuMeasurements I think, not _.
We should really standardize (different issue, different PR, different contributor)
I forgot to comment out the gtsam_unstable test build. Windows CI will fail for that reason. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Changing to "request changes" as I think that function should not be moved out of cpp, unless you can tell me the reason :-)
The linker seems to confuse the transformTo method for Line3 with the expressions version, this throwing a linker error. Another solution would be to rename the expression version to |
That is very weird. Error message? CI seems to pass, so is it check.geometry that does not pass? |
Just as a datapoint, I currently have (for Pass
Fail
I thought Possibly relevant warning:EXPECT(adds = 54); results in
at
|
Definitely should be == About ADT: could be template instantiation. |
I think so? As the code says, it (ADT) mostly exists to specialize one template argument to I tried sprinkling Basically, as soon as you have two |
@dellaert I am going to park responding to this issue until at least the 24th (RAL+IROS deadline). Don't want you to think I'm being unresponsive. :) |
Actually, @mikesheffler , I think the == should be replaced with LONGS_EQUAL(54, adds), and 54 should be changed to the right value ;-) I think the solution to the ADT linking problem might be to re-add the export, and add a .cpp file with an explicit instantiation on Key. That should create one set of symbols exported to the DLL. |
…d of EQUAL -- Please review * Added GTSAM_EXPORT back to to AlgebraicDecisionTree.h and added a .cpp file to accompany the .h. The only contents of the file are the specialization AlgebraicDecisionTree<Key>. This seems to make the linker happy enough to include the symbols that allow the above test to run.
tl;dr:
I made the change to
I added back namespace gtsam {
template class AlgebraicDecisionTree<Key>;
} // namespace gtsam which seems to convince the linker to export the symbols, and just once to boot. I don't have a tight handle on the linker's decision making process here, so it's worth taking a look. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Nice!
@mikesheffler, @varunagrawal, I propose to approve this PR and we can address different modules in a different PR? After waiting for @mikesheffler confirmation that he does not have outstanding changes on this PR, I propose @varunagrawal merges.
I do not have outstanding changes. I think the idea to chop up the effort makes sense, or this will be unmerged for a while. |
Cool. @varunagrawal merge when you're ready |
Thanks to the awesome work by @mikesheffler, I was finally able to figure out what was the issue behind all the "undefined" errors.
This PR adds/removes all the necessary
GTSAM_EXPORT
declarations and updates the CI to run allGTSAM
test targets. Unfortunately some targets have test failures due to bugs creeping in over time and the CI not being enabled for them, but those can be tackled later.I am leaving
GTSAM_UNSTABLE
test targets for another day.