Hi Sameer,
Ok that makes sense. If VLOG is coming, it makes sense to wait for the conversion. In the meantime, one thing that would help codebases that are already transitioned is to make the ceres versions to use different names in the public headers (and transitive includes); something like CERES_CHECK, CS_CHECK or similar.
It looks like LOG is not used in any public header, which is helpful:
% find include/ceres -type f | xargs grep LOG
include/ceres/iteration_callback.h:// VLOG(1) << output;
include/ceres/jet.h:// LOG(INFO) << "df/dx = " << z.v[0]
include/ceres/gradient_problem_solver.h: // By default the Minimizer progress is logged to VLOG(1), which
include/ceres/solver.h: // By default the Minimizer progress is logged to VLOG(1), which
There are uses of various forms of CHECK though:
% find include/ceres -type f | xargs grep "^ .*CHECK" | sed "s|.*[^A-Z_]\([A-Z]*CHECK[A-Z_]*\)[^A-Z_].*|\1|" | sort | uniq -c | sort -rn
12 CHECK_EQ
7 DCHECK_NE
6 DCHECK
6 CHECK
5 CHECK_GT
4 CHECK_GE
3 CHECK_LT
2 DCHECK_LT
1 DCHECK_GT
1 DCHECK_EQ
1 CHECK_NE
If the public headers used a "public log api" with a unique name, the internal counterpart could define CHECK -> CERES_CHECK, and none of the non-header code would need to change. This is pretty similar to how Abseil is defining ABSL_CHECK with the optional short CHECK name with a second include.
Just a suggestion, and I'd be willing to help if this seems worth trying. Also I totally get it if this sounds like too much trouble prior to the later full transition.
- Jim Bruce