Use the `ABSL_`-prefixed Abseil logging macros.
This is done primarily for the sake of Chromium,
which bans the unprefixed Abseil logging macros.
I mostly baked the following slices of Perl pie:
```
's,//absl/log:check",//absl/log:absl_check",'
's,//absl/log",//absl/log:absl_log",'
's,"absl/log/check.h","absl/log/absl_check.h",'
's,"absl/log/log.h","absl/log/absl_log.h",'
's,D?CHECK(_(EQ|NE|LE|LT|GE|GT))?\(,ABSL_$&,'
's,V?LOG\(,ABSL_$&,'
```
Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. |
ABSL_LOG(DFATAL) << "GrowStack() failed: "
<< "njob_ = " << njob_ << ", "
<< "job_.size() = " << job_.size();
indentation
ABSL_LOG(ERROR) << "Couldn't compile regular expression, skipping: "
<< pattern << " due to error " << re->error();
indentation
ABSL_LOG(DFATAL) << "Unexpected opcode in short circuit: " << ip->opcode();
over 80 chars
ABSL_LOG(DFATAL) << "unhandled " << ip->opcode() << " in Prog::Fanout()";
over 80 chars
ABSL_LOG(DFATAL) << "RE2: unexpected op: " << re->op() << " "
<< re->ToString();
}
indentation
ABSL_LOG(ERROR) << "BuildInfo " << re->ToString()
<< ": " << (info ? info->ToString() : "");
indentation
<< " N: " << parents.size() << " R: " << regexps.size();
indentation
int out1() { ABSL_DCHECK(opcode() == kInstAlt || opcode() == kInstAltMatch); return out1_; }
int cap() { ABSL_DCHECK_EQ(opcode(), kInstCapture); return cap_; }
int lo() { ABSL_DCHECK_EQ(opcode(), kInstByteRange); return lo_; }
int hi() { ABSL_DCHECK_EQ(opcode(), kInstByteRange); return hi_; }
int foldcase() { ABSL_DCHECK_EQ(opcode(), kInstByteRange); return hint_foldcase_&1; }
int hint() { ABSL_DCHECK_EQ(opcode(), kInstByteRange); return hint_foldcase_>>1; }
int match_id() { ABSL_DCHECK_EQ(opcode(), kInstMatch); return match_id_; }
EmptyOp empty() { ABSL_DCHECK_EQ(opcode(), kInstEmptyWidth); return empty_; }
A bunch of these are over 80 chars. Admittedly some on the left-hand side already were.
// ABSL_CHECK(RE2::FullMatch(latin1_string, RE2(latin1_pattern, RE2::Latin1)));
Over 80 chars
ABSL_LOG(ERROR) << "Error parsing '" << trunc(*pattern_) << "': "
<< status.Text();
}
indentation
ABSL_LOG(ERROR) << "RE2: invalid startpos, endpos pair. ["
<< "startpos: " << startpos << ", "
<< "endpos: " << endpos << ", "
<< "text size: " << text.size() << "]";
indentation
ABSL_LOG(ERROR) << "DFA out of memory: "
<< "pattern length " << pattern_->size() << ", "
<< "program size " << prog->size() << ", "
<< "list count " << prog->list_count() << ", "
<< "bytemap range " << prog->bytemap_range();
indentation
ABSL_LOG(ERROR) << "DFA out of memory: "
<< "pattern length " << pattern_->size() << ", "
<< "program size " << prog_->size() << ", "
<< "list count " << prog_->list_count() << ", "
<< "bytemap range " << prog_->bytemap_range();
indentation
ABSL_LOG(ERROR) << "DFA out of memory: "
<< "pattern length " << pattern_->size() << ", "
<< "program size " << prog->size() << ", "
<< "list count " << prog->list_count() << ", "
<< "bytemap range " << prog->bytemap_range();
indentation
ABSL_LOG(ERROR) << "DFA out of memory: "
<< "pattern length " << pattern_->size() << ", "
<< "program size " << prog_->size() << ", "
<< "list count " << prog_->list_count() << ", "
<< "bytemap range " << prog_->bytemap_range();
indentation
<< " from " << veclen << " groups";
indentation
const std::string* name() { ABSL_DCHECK_EQ(op_, kRegexpCapture); return name_; }
over 80 chars
ABSL_LOG(ERROR) << "DFA out of memory: "
<< "program size " << prog_->size() << ", "
<< "list count " << prog_->list_count() << ", "
<< "bytemap range " << prog_->bytemap_range();
if (error_info != NULL)
indentation
ABSL_LOG(DFATAL) << "RE2::Set::Match() matched, but no matches returned?!";
over 80 chars
ABSL_LOG(DFATAL) << "Malformed repeat " << re->ToString() << " " << min << " " << max;
over 80 chars
ABSL_LOG(FATAL) << "Unexpected opcode: " << (int)ip->opcode();
optional nit: upgrade to C++-style cast?
//ABSL_LOG(INFO) << "limit " << limit << ", "
// << "prog usage " << progusage << ", "
// << "DFA budget " << dfamem << ", "
// << "total " << usage;
indentation? and or delete?
//ABSL_LOG(INFO) << "usage " << usage << ", "
// << "peak usage " << peak_usage;
same here
ABSL_LOG(ERROR) << t.regexp << " dump:\ngot " << dump << "\nwant " << t.dump;
over 80 chars
ABSL_CHECK(fmt != nullptr);
regexp = absl::StrFormat(*fmt, regexp);
optional: `regexp = absl:StrFormat(*ABSL_DIE_IF_NULL(fmt), regexp);`
ABSL_LOG(QFATAL) << "PossibleMatchRange failed on: " << absl::CEscape(regexp);
over 80 chars
ABSL_LOG(INFO) << t.regexps() << " regexps, "
<< t.tests() << " tests";
indentation
ABSL_LOG(INFO) << "Memory at " << (void*)v;
optional: c++-style cast?
const char b[] = {
(char)0x28, (char)0x05, (char)0x05, (char)0x41, (char)0x41, (char)0x28,
(char)0x24, (char)0x5b, (char)0x5e, (char)0xf5, (char)0x87, (char)0x87,
(char)0x90, (char)0x29, (char)0x5d, (char)0x29, (char)0x29, (char)0x00,
};
pre-existing, but is there any particular reason this wasn't written as
```
const char b[] = "\x28\x05\x05...";
```
ABSL_CHECK(prog->SearchOnePass(text, text, Prog::kAnchored, Prog::kFullMatch, sp, 4));
over 90 chars
// Can't pass mc.HeapGrowth() and mc.PeakHeapGrowth() to ABSL_LOG(INFO) directly,
over 80 chars
ABSL_CHECK(prog->SearchOnePass(text, text, Prog::kAnchored, Prog::kFullMatch, sp, 4));
over 80 chars
ABSL_CHECK_EQ(prog->SearchDFA(text, absl::string_view(), anchor,
Prog::kFirstMatch, NULL, &failed, NULL),
expect_match);
indentation?
ABSL_CHECK_EQ(prog->SearchNFA(text, absl::string_view(), anchor,
Prog::kFirstMatch, NULL, 0),
expect_match);
indentation?
ABSL_CHECK_EQ(prog->SearchOnePass(text, text, anchor, Prog::kFirstMatch, NULL, 0),
over 80 chars
ABSL_CHECK_EQ(prog->SearchBitState(text, text, anchor, Prog::kFirstMatch, NULL, 0),
over 80 chars
delete prog;
optional: absl::WrapUnique on the output of CompileToProg (throughout)
if (anchor == Prog::kAnchored)
ABSL_CHECK_EQ(RE2::FullMatch(text, re), expect_match);
else
ABSL_CHECK_EQ(RE2::PartialMatch(text, re), expect_match);
}
optional: add the curly braces
ABSL_CHECK_EQ(prog->SearchOnePass(text, text, anchor, Prog::kFirstMatch, NULL, 0),
expect_match);
}
over 80 chars
ABSL_CHECK_EQ(prog->SearchBitState(text, text, anchor, Prog::kFirstMatch, NULL, 0),
expect_match);
}
over 80 chars
ABSL_CHECK(prog->SearchOnePass(text, text, Prog::kAnchored, Prog::kFullMatch, sp, 4));
over 80 chars
ABSL_CHECK(prog->SearchBitState(text, text, Prog::kAnchored, Prog::kFullMatch, sp, 4));
over 80 chars
ABSL_CHECK(prog->UnsafeSearchBacktrack(text, text, Prog::kAnchored, Prog::kFullMatch, sp, 4));
over 80 chars
ABSL_CHECK(prog->SearchOnePass(text, text, Prog::kAnchored, Prog::kFullMatch, sp, 4));
over 80 chars
ABSL_CHECK(prog->SearchBitState(text, text, Prog::kAnchored, Prog::kFullMatch, sp, 4));
over 80 chars
ABSL_CHECK(prog->UnsafeSearchBacktrack(text, text, Prog::kAnchored, Prog::kFullMatch, sp, 4));
over 80 chars
ABSL_CHECK(prog->SearchNFA(text, absl::string_view(), Prog::kAnchored,
Prog::kFullMatch, sp, 2));
delete prog;
indentation?
ABSL_CHECK(prog->SearchOnePass(text, text, Prog::kAnchored, Prog::kFullMatch, sp, 2));
over 80 chars
ABSL_CHECK(prog->SearchBitState(text, text, Prog::kAnchored, Prog::kFullMatch, sp, 2));
over 80 chars
ABSL_CHECK(prog->SearchOnePass(text, text, Prog::kAnchored, Prog::kFullMatch, sp, 2));
over 80 chars
ABSL_CHECK(prog->SearchBitState(text, text, Prog::kAnchored, Prog::kFullMatch, sp, 2));
over 80 chars
ABSL_CHECK(prog->UnsafeSearchBacktrack(text, text, Prog::kAnchored, Prog::kFullMatch, sp, 2));
over 80 chars
void FullMatch_DotStarDollar_CachedPCRE(benchmark::State& state) { FullMatchPCRE(state, "(?s).*$"); }
void FullMatch_DotStarDollar_CachedRE2(benchmark::State& state) { FullMatchRE2(state, "(?s).*$"); }
pre-existing over 80 chars
<< " mode: " << FormatMode(flags);
indentation
ABSL_LOG(INFO) << "Prog for "
<< " regexp "
<< absl::CEscape(regexp_str_)
<< " (" << FormatKind(kind_)
<< ", " << FormatMode(flags_)
<< ")\n"
<< prog_->Dump();
}
indentation
ABSL_LOG(INFO) << "Cannot reverse compile: " << absl::CEscape(regexp_str_);
over 80 chars
ABSL_LOG(ERROR) << "Reverse DFA inconsistency: "
<< absl::CEscape(regexp_str_)
<< " on " << absl::CEscape(text);
indnetation
ABSL_LOG(ERROR) << "Skipped backtracking! " << absl::CEscape(regexp_str_)
<< " " << FormatMode(flags_);
return false;
indentation
ABSL_VLOG(1) << "Try: regexp " << absl::CEscape(regexp_str_)
<< " text " << absl::CEscape(text)
<< " (" << FormatKind(kind_)
<< ", " << FormatAnchor(anchor)
<< ", " << FormatMode(flags_)
<< ")";
indentation
Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. |
Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. |
This is just the first round, which were trivial. I need to think about the second round very slightly more.
ABSL_LOG(DFATAL) << "GrowStack() failed: "
<< "njob_ = " << njob_ << ", "
<< "job_.size() = " << job_.size();
Paul Wankadiaindentation
Done
ABSL_LOG(ERROR) << "Couldn't compile regular expression, skipping: "
<< pattern << " due to error " << re->error();
Paul Wankadiaindentation
Done
ABSL_LOG(DFATAL) << "Unexpected opcode in short circuit: " << ip->opcode();
Paul Wankadiaover 80 chars
Done
ABSL_LOG(DFATAL) << "unhandled " << ip->opcode() << " in Prog::Fanout()";
Paul Wankadiaover 80 chars
Done
ABSL_LOG(DFATAL) << "RE2: unexpected op: " << re->op() << " "
<< re->ToString();
}
Paul Wankadiaindentation
Done
ABSL_LOG(ERROR) << "BuildInfo " << re->ToString()
<< ": " << (info ? info->ToString() : "");
Paul Wankadiaindentation
Done
<< " N: " << parents.size() << " R: " << regexps.size();
Paul Wankadiaindentation
Done
// ABSL_CHECK(RE2::FullMatch(latin1_string, RE2(latin1_pattern, RE2::Latin1)));
Paul WankadiaOver 80 chars
Done
ABSL_LOG(ERROR) << "Error parsing '" << trunc(*pattern_) << "': "
<< status.Text();
}
Paul Wankadiaindentation
Done
ABSL_LOG(ERROR) << "RE2: invalid startpos, endpos pair. ["
<< "startpos: " << startpos << ", "
<< "endpos: " << endpos << ", "
<< "text size: " << text.size() << "]";
Paul Wankadiaindentation
Done
ABSL_LOG(ERROR) << "DFA out of memory: "
<< "pattern length " << pattern_->size() << ", "
<< "program size " << prog->size() << ", "
<< "list count " << prog->list_count() << ", "
<< "bytemap range " << prog->bytemap_range();
Paul Wankadiaindentation
Done
ABSL_LOG(ERROR) << "DFA out of memory: "
<< "pattern length " << pattern_->size() << ", "
<< "program size " << prog_->size() << ", "
<< "list count " << prog_->list_count() << ", "
<< "bytemap range " << prog_->bytemap_range();
Paul Wankadiaindentation
Done
ABSL_LOG(ERROR) << "DFA out of memory: "
<< "pattern length " << pattern_->size() << ", "
<< "program size " << prog->size() << ", "
<< "list count " << prog->list_count() << ", "
<< "bytemap range " << prog->bytemap_range();
Paul Wankadiaindentation
Done
ABSL_LOG(ERROR) << "DFA out of memory: "
<< "pattern length " << pattern_->size() << ", "
<< "program size " << prog_->size() << ", "
<< "list count " << prog_->list_count() << ", "
<< "bytemap range " << prog_->bytemap_range();
Paul Wankadiaindentation
Done
<< " from " << veclen << " groups";
Paul Wankadiaindentation
Done
ABSL_LOG(ERROR) << "DFA out of memory: "
<< "program size " << prog_->size() << ", "
<< "list count " << prog_->list_count() << ", "
<< "bytemap range " << prog_->bytemap_range();
if (error_info != NULL)
Paul Wankadiaindentation
Done
ABSL_LOG(DFATAL) << "RE2::Set::Match() matched, but no matches returned?!";
Paul Wankadiaover 80 chars
Done
ABSL_LOG(DFATAL) << "Malformed repeat " << re->ToString() << " " << min << " " << max;
Paul Wankadiaover 80 chars
Done
ABSL_LOG(FATAL) << "Unexpected opcode: " << (int)ip->opcode();
optional nit: upgrade to C++-style cast?
Done. (No cast was necessary.)
ABSL_CHECK(fmt != nullptr);
regexp = absl::StrFormat(*fmt, regexp);
optional: `regexp = absl:StrFormat(*ABSL_DIE_IF_NULL(fmt), regexp);`
Good point. There are a couple of similar cases in `regexp_generator.cc`, but I'm leaning towards "meh" on adding a dependency for so few cases in testing helpers.
ABSL_LOG(QFATAL) << "PossibleMatchRange failed on: " << absl::CEscape(regexp);
Paul Wankadiaover 80 chars
Done
ABSL_LOG(INFO) << t.regexps() << " regexps, "
<< t.tests() << " tests";
Paul Wankadiaindentation
Done
ABSL_LOG(INFO) << "Memory at " << (void*)v;
Paul Wankadiaoptional: c++-style cast?
Done
const char b[] = {
(char)0x28, (char)0x05, (char)0x05, (char)0x41, (char)0x41, (char)0x28,
(char)0x24, (char)0x5b, (char)0x5e, (char)0xf5, (char)0x87, (char)0x87,
(char)0x90, (char)0x29, (char)0x5d, (char)0x29, (char)0x29, (char)0x00,
};
pre-existing, but is there any particular reason this wasn't written as
```
const char b[] = "\x28\x05\x05...";
```
This predated my tenure, but I ***believe*** it (or something very similar) was what we received for reproducing a fuzzer crash. Why that was written like this will probably never be known...
<< " mode: " << FormatMode(flags);
Paul Wankadiaindentation
Done
ABSL_LOG(INFO) << "Prog for "
<< " regexp "
<< absl::CEscape(regexp_str_)
<< " (" << FormatKind(kind_)
<< ", " << FormatMode(flags_)
<< ")\n"
<< prog_->Dump();
}
Paul Wankadiaindentation
Done
ABSL_LOG(INFO) << "Cannot reverse compile: " << absl::CEscape(regexp_str_);
Paul Wankadiaover 80 chars
Done
ABSL_LOG(ERROR) << "Reverse DFA inconsistency: "
<< absl::CEscape(regexp_str_)
<< " on " << absl::CEscape(text);
Paul Wankadiaindnetation
Done
ABSL_LOG(ERROR) << "Skipped backtracking! " << absl::CEscape(regexp_str_)
<< " " << FormatMode(flags_);
return false;
Paul Wankadiaindentation
Done
ABSL_VLOG(1) << "Try: regexp " << absl::CEscape(regexp_str_)
<< " text " << absl::CEscape(text)
<< " (" << FormatKind(kind_)
<< ", " << FormatAnchor(anchor)
<< ", " << FormatMode(flags_)
<< ")";
Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. |
Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. |
int out1() { ABSL_DCHECK(opcode() == kInstAlt || opcode() == kInstAltMatch); return out1_; }
int cap() { ABSL_DCHECK_EQ(opcode(), kInstCapture); return cap_; }
int lo() { ABSL_DCHECK_EQ(opcode(), kInstByteRange); return lo_; }
int hi() { ABSL_DCHECK_EQ(opcode(), kInstByteRange); return hi_; }
int foldcase() { ABSL_DCHECK_EQ(opcode(), kInstByteRange); return hint_foldcase_&1; }
int hint() { ABSL_DCHECK_EQ(opcode(), kInstByteRange); return hint_foldcase_>>1; }
int match_id() { ABSL_DCHECK_EQ(opcode(), kInstMatch); return match_id_; }
EmptyOp empty() { ABSL_DCHECK_EQ(opcode(), kInstEmptyWidth); return empty_; }
A bunch of these are over 80 chars. Admittedly some on the left-hand side already were.
Done
const std::string* name() { ABSL_DCHECK_EQ(op_, kRegexpCapture); return name_; }
Paul Wankadiaover 80 chars
Done
//ABSL_LOG(INFO) << "limit " << limit << ", "
// << "prog usage " << progusage << ", "
// << "DFA budget " << dfamem << ", "
// << "total " << usage;
Paul Wankadiaindentation? and or delete?
Done
//ABSL_LOG(INFO) << "usage " << usage << ", "
// << "peak usage " << peak_usage;
Paul Wankadiasame here
Done
ABSL_LOG(ERROR) << t.regexp << " dump:\ngot " << dump << "\nwant " << t.dump;
Paul Wankadiaover 80 chars
Done
ABSL_CHECK(prog->SearchOnePass(text, text, Prog::kAnchored, Prog::kFullMatch, sp, 4));
Paul Wankadiaover 90 chars
Done
// Can't pass mc.HeapGrowth() and mc.PeakHeapGrowth() to ABSL_LOG(INFO) directly,
Paul Wankadiaover 80 chars
Done
ABSL_CHECK(prog->SearchOnePass(text, text, Prog::kAnchored, Prog::kFullMatch, sp, 4));
Paul Wankadiaover 80 chars
Done
ABSL_CHECK_EQ(prog->SearchDFA(text, absl::string_view(), anchor,
Prog::kFirstMatch, NULL, &failed, NULL),
expect_match);
Paul Wankadiaindentation?
Done
ABSL_CHECK_EQ(prog->SearchNFA(text, absl::string_view(), anchor,
Prog::kFirstMatch, NULL, 0),
expect_match);
Paul Wankadiaindentation?
Done
ABSL_CHECK_EQ(prog->SearchOnePass(text, text, anchor, Prog::kFirstMatch, NULL, 0),
Paul Wankadiaover 80 chars
Done
ABSL_CHECK_EQ(prog->SearchBitState(text, text, anchor, Prog::kFirstMatch, NULL, 0),
Paul Wankadiaover 80 chars
Done
delete prog;
Paul Wankadiaoptional: absl::WrapUnique on the output of CompileToProg (throughout)
Fair call. I do indeed have strong feelpinions about cutting over to smart pointers for that, but given the proximity to `Decref()` calls, not strong enough... yet.
if (anchor == Prog::kAnchored)
ABSL_CHECK_EQ(RE2::FullMatch(text, re), expect_match);
else
ABSL_CHECK_EQ(RE2::PartialMatch(text, re), expect_match);
}
Paul Wankadiaoptional: add the curly braces
Done
ABSL_CHECK_EQ(prog->SearchOnePass(text, text, anchor, Prog::kFirstMatch, NULL, 0),
expect_match);
}
Paul Wankadiaover 80 chars
Done
ABSL_CHECK_EQ(prog->SearchBitState(text, text, anchor, Prog::kFirstMatch, NULL, 0),
expect_match);
}
Paul Wankadiaover 80 chars
Done
ABSL_CHECK(prog->SearchOnePass(text, text, Prog::kAnchored, Prog::kFullMatch, sp, 4));
Paul Wankadiaover 80 chars
Done
ABSL_CHECK(prog->SearchBitState(text, text, Prog::kAnchored, Prog::kFullMatch, sp, 4));
Paul Wankadiaover 80 chars
Done
ABSL_CHECK(prog->UnsafeSearchBacktrack(text, text, Prog::kAnchored, Prog::kFullMatch, sp, 4));
Paul Wankadiaover 80 chars
Done
ABSL_CHECK(prog->SearchOnePass(text, text, Prog::kAnchored, Prog::kFullMatch, sp, 4));
Paul Wankadiaover 80 chars
Done
ABSL_CHECK(prog->SearchBitState(text, text, Prog::kAnchored, Prog::kFullMatch, sp, 4));
Paul Wankadiaover 80 chars
Done
ABSL_CHECK(prog->UnsafeSearchBacktrack(text, text, Prog::kAnchored, Prog::kFullMatch, sp, 4));
Paul Wankadiaover 80 chars
Done
ABSL_CHECK(prog->SearchNFA(text, absl::string_view(), Prog::kAnchored,
Prog::kFullMatch, sp, 2));
delete prog;
Paul Wankadiaindentation?
Done
ABSL_CHECK(prog->SearchOnePass(text, text, Prog::kAnchored, Prog::kFullMatch, sp, 2));
Paul Wankadiaover 80 chars
Done
ABSL_CHECK(prog->SearchBitState(text, text, Prog::kAnchored, Prog::kFullMatch, sp, 2));
Paul Wankadiaover 80 chars
Done
ABSL_CHECK(prog->SearchOnePass(text, text, Prog::kAnchored, Prog::kFullMatch, sp, 2));
Paul Wankadiaover 80 chars
Done
ABSL_CHECK(prog->SearchBitState(text, text, Prog::kAnchored, Prog::kFullMatch, sp, 2));
Paul Wankadiaover 80 chars
Done
ABSL_CHECK(prog->UnsafeSearchBacktrack(text, text, Prog::kAnchored, Prog::kFullMatch, sp, 2));
Paul Wankadiaover 80 chars
Done
void FullMatch_DotStarDollar_CachedPCRE(benchmark::State& state) { FullMatchPCRE(state, "(?s).*$"); }
void FullMatch_DotStarDollar_CachedRE2(benchmark::State& state) { FullMatchRE2(state, "(?s).*$"); }
Paul Wankadiapre-existing over 80 chars
Done
Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. |
Code-Review | +1 |
ABSL_DCHECK(inst_[root].opcode() == kInstAlt ||
inst_[root].opcode() == kInstByteRange);
Found another indentation issue
Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. |
Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. |
ABSL_DCHECK(inst_[root].opcode() == kInstAlt ||
inst_[root].opcode() == kInstByteRange);
Paul WankadiaFound another indentation issue
Done
Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. |
Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. |
Code-Review | +2 |
Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. |
Use the `ABSL_`-prefixed Abseil logging macros.
This is done primarily for the sake of Chromium,
which bans the unprefixed Abseil logging macros.
I mostly baked the following slices of Perl pie:
```
's,//absl/log:check",//absl/log:absl_check",'
's,//absl/log",//absl/log:absl_log",'
's,"absl/log/check.h","absl/log/absl_check.h",'
's,"absl/log/log.h","absl/log/absl_log.h",'
's,D?CHECK(_(EQ|NE|LE|LT|GE|GT))?\(,ABSL_$&,'
's,V?LOG\(,ABSL_$&,'
```
Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. |