You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
In the terminal output appended below, errors are reported in pass 1. Nonethess, binder proceeds with passes 2 and 3, then processes the next input file. In consequence, the last lines of the terminal output look as if everything went fine. The reported errors are easily overlooked. This can be very misleading.
Proposed solutions:
(A) Terminate after an unsuccessful pass.
(B) Continue execution. At the end, print a summary of all processed input files with their exit status, like "passed" or "3 errors in pass 1". Finally, print a one-line summary like "Errors in 3 of 5 input files."
I could try to provide a patch after maintainers have expressed their preference for either solution.
binder --root-module BornAgainBind --bind "" --prefix /G/sw/ba/auto/Bind --config /G/sw/ba/Wrap/Bind/config.cfg -v /G/sw/ba/Wrap/Bind/Base.hpp /G/sw/ba/Wrap/Bind/Fit.hpp -- -std=c++17 -I/G/sw/ba -I/usr/include/eigen3 -DSWIG -DNDEBUG
Process input file /G/sw/ba/Wrap/Bind/Base.hpp
Read config from file /G/sw/ba/Wrap/Bind/config.cfg
In file included from /G/sw/ba/Wrap/Bind/Base.hpp:4:
In file included from /G/sw/ba/Base/Vector/Direction.h:18:
/usr/local/include/heinz/Vectors3D.h:364:18: error: no member named 'dot' in 'Vec3<double>'
cosa = a.dot(b) / ptot;
~ ^
In file included from /G/sw/ba/Wrap/Bind/Base.hpp:5:
In file included from /G/sw/ba/Base/Vector/RotMatrix.h:18:
/G/sw/ba/Base/Vector/EigenCore.h:16:2: error: no need to expose this header to Swig
#error no need to expose this header to Swig
^
In file included from /G/sw/ba/Wrap/Bind/Base.hpp:5:
/G/sw/ba/Base/Vector/RotMatrix.h:93:11: error: use of undeclared identifier 'Eigen'
const Eigen::Matrix3d& matrix() { return m_matrix; }
^
/G/sw/ba/Base/Vector/RotMatrix.h:93:46: error: use of undeclared identifier 'm_matrix'
const Eigen::Matrix3d& matrix() { return m_matrix; }
^
Generate bindings, pass 1...
Binding: ICloneable
Binding: class Vec3<double> vecOfLambdaAlphaPhi(double, double, double)
Binding: Direction
Binding: RotMatrix
Binding: Bin1D
Binding: bool BinContains(const struct Bin1D &, double)
Binding: Bin1DKVector
Binding: Bin1DCVector
Binding: IAxis
Binding: VariableBinAxis
Binding: ConstKBinAxis
Binding: CustomBinAxis
Binding: FixedBinAxis
Generate bindings, pass 2...
Binding: Vec3<double>
Binding: Vec3<std::complex<double>>
Binding: std::vector<double>
Generate bindings, pass 3...
Sorting Binders...
Sorting Binders... Done.
Writing code...
File /G/sw/ba/auto/Bind/Base/Types/ICloneable.cpp is up-to-date, skipping...
File /G/sw/ba/auto/Bind/heinz/Vectors3D.cpp is up-to-date, skipping...
File /G/sw/ba/auto/Bind/Base/Vector/Direction.cpp is up-to-date, skipping...
File /G/sw/ba/auto/Bind/std/stl_vector.cpp is up-to-date, skipping...
File /G/sw/ba/auto/Bind/Base/Vector/RotMatrix.cpp is up-to-date, skipping...
File /G/sw/ba/auto/Bind/Base/Axis/IAxis.cpp is up-to-date, skipping...
Writing code... Done.
4 errors generated.
Error while processing /G/sw/ba/Wrap/Bind/Base.hpp.
Process input file /G/sw/ba/Wrap/Bind/Fit.hpp
Read config from file /G/sw/ba/Wrap/Bind/config.cfg
Generate bindings, pass 1...
Binding: RealLimits
Generate bindings, pass 2...
Sorting Binders...
Sorting Binders... Done.
Writing code...
File /G/sw/ba/auto/Bind/Fit/Param/RealLimits.cpp is up-to-date, skipping...
Writing code... Done.
The text was updated successfully, but these errors were encountered:
@jwuttke have you checked the process exit code in cases when error was discovered? It be non-zero if such errors have happened. Technically we do not need to terminate on such error cases since we can still generate code if error is not critical (we even have suppress-errors to avoid printing them).
I will however be happy to implement (or merge PR that implements) solution (A). Currently i do not see a direct way to do it though. We only get error code after all post processing happens. So if you have ideas how to access these errors earlier please let me know. Thanks,
Observed behavior:
In the terminal output appended below, errors are reported in pass 1. Nonethess, binder proceeds with passes 2 and 3, then processes the next input file. In consequence, the last lines of the terminal output look as if everything went fine. The reported errors are easily overlooked. This can be very misleading.
Proposed solutions:
(A) Terminate after an unsuccessful pass.
(B) Continue execution. At the end, print a summary of all processed input files with their exit status, like "passed" or "3 errors in pass 1". Finally, print a one-line summary like "Errors in 3 of 5 input files."
I could try to provide a patch after maintainers have expressed their preference for either solution.
The text was updated successfully, but these errors were encountered: