* origin/topic/jsiwek/misc-attr-improvements:
Improve &default validation for global vars: exclude sets
Remove unnecessary &optional from a Config::set_value() parameter
Remove check for redundant attributes
Letting there be redundant attributes serves no purpose. It could
also potentially cause long attribute lists containing many useless
&redef or &optional attributes (e.g. think that may happen if you
use redef enough times and the new attributes keep getting merged
into the old ones).
* origin/topic/seth/624:
Support whitespace at end of line for config reader.
This merge fixes a failing test; it also sprinkles a few more spaces
into another test file.
The main change is that this now also works with configuration lines
that don't have a value.
* origin/topic/dev/bugrpone-narrowing-conversions-base64:
Proof of Concept on Bugprone Narrowing Conversions: Base64
I fixed a few bugs in this while merging; Decode now signals success or
error (which did not work before). I removed the new variables in
mime.cc and just switched more to size_t - the new variables introduced
a bug because they shadowed the changes of the Decode call.
GH-616
OS X complains about std::pair not having a constexpr constructor. Which
seems to be the case for C++11. Hence, let's make it static const for
the moment.
This commit should be reverted when we move to C++17.
This is a convenience function to make it easier to print literal byte
sequences to stdout without additional escaping like what may be added
by the default `print` statement behavior.
For example, related to GH-596, `print` currently escapes even valid
UTF-8 byte sequences and makes it difficult to output valid JSON strings
containing such.
* origin/topic/timw/595-json-perf:
Update COPYING.3rdparty
Use json::emplace to avoid some extra calls to operator[]
Use tessil/unordered-map instead of nlohmann/fifo-map to mitigate performance issues when logging JSON
No need to create a record introspection table each time when all
the required information can be obtained directly in the RecordVal
and RecordType objects. Besides the additional overhead, using such
a table will re-order the fields arbitrarily instead of using the
order in which they're defined.
Adjustments:
- Changed a push_back(...) into emplace_back(std:move(...))
- Removed superfluous table Lookup() since we already have the value
while iterating
* origin/topic/timw/598-multikey-set-json:
GH-598: handle multi-key sets correctly when outputting json
The full process hierarchy isn't set up yet, but these changes
help prepare by doing two things:
- Add a -j option to enable supervisor-mode. Currently, just a single
"stem" process gets forked early on to be used as the basis for
further forking into real cluster nodes.
- Separates the parsing of command-line options from their consumption.
i.e. need to parse whether we're in -j supervisor-mode before
modifying any global state since that would taint the "stem" process.
The new intermediate structure containing the parsed options may
also serve as a way to pass configuration info from "stem" to its
descendent cluster node processes.