Releases: buck-yeh/bux
Releases · buck-yeh/bux
Updates for newer compiler versions
- [VS2022] Include
<utility>
to getstd::cmp_less_equal()
compiled. - [Standard] Re-implement
bux::C_ScreenerNo
in a more compliant way.
Accumulated updates
- [New]
C_UnicodeIn::encoding()
- [Change] Pass
std::basic_string_view<T>
arguments by value, not by reference, to one of overloaded ctors ofbux::C_MBCStr
- [Change] Rehaul
bux::fittestType()
in C++20 - concept lite &if constexpr
- [Change] Add code page 951 (Big5 with HKSCS-2001) as one of encoding candidates to test in
C_UnicodeIn
- [Change] Forbid r-value string instance as ctor parameter of
bux::C_IMemStreamT<>
Misc improvements with minor breakage of includes
- [Change] Move
HRTN()
&OXCPT()
fromLogStream.h
toStrUtil.h
. - [Change] Rewrite I/O manipulator
bux::timestamp
utilizingfmt::format()
to shorten the boilerplate code. - [Change] Quit assuming
std::string::begin()
is defined asconst char *
upon implementing ctor ofbux::C_IMemBuf
. - [Change] Harden the criteria to make flag values prefixed with '-' (negative numbers) hardly missed (i.e. misunderstood as short-named flags).
- [Change] Claim that "Behavior of adding duplicate subcommands or flags of the same name is undefined." i.e it is caller's responsibility.
- [Change] No more prepend ./ to the command name of USAGE part of help text.
- [Change] Allow
bux::scanFile()
to provide encoding code of the input stream. The change of function prototype has a virtue of preventing short strings from guessing the wrong encoding. - [Bug]
C_ScannerImpl<>::add()
may throw due to losing its track of the last non-null action function pointer. - [Change] Were
C_ScannerImpl<>::add()
thrown, the incorporated message will have value ofm_CurState
.
Bug/quirk fixes & enhancements
- [Bug]
C_EZArgs::parse()
misunderstands negative numbers as flag short names. - [Dependency] Update according to issue #4 related to vcpkg build.
- [Quirk]
C_EZArgs::help_full()
: Keep "USAGE:" a empty line away from "DESCRIPTION:" - [Obsolete] Remove
ParaUtil.h
(bux::C_NumIter<>
) due to deprecation ofstd::iterator<>
- [Change] Parameters
trigger
&parse
of allC_EZArgs::add_flag()
overloads now passed by rvalue references for better performance. - [Change] Loose the container parameter type requirements of
C_PathFmtLogSnap::configPath(uintmax_t fsize_in_bytes, const auto &fallbackPaths)
- [Change] Replace
DEF_CONFIGURABLE_LOGGER_FILES
withDEF_FALLBACKABLE_LOGGER_FILES(first,...)
to initialize the global logger in place. - [New]
test/archlinux/README.md
to remind myself.
Downgrade -std=c++20 flag to -std=c++2a to allow vcpkg triplet x64-linux to pass
1.6.3 Downgrade -std flag to let vcpkg triplet x64-linux to pass
[bugfix] No such operator from standard: std::string += std::filesystem::path
Conceptualize bux::C_EZArgs
- [Change] We now have 9
C_EZArgs::add_flag()
overloads. - [Change] Must provide
onParsed
parameter when callingC_EZArgs::add_subcommand()
- [Change]
FUNLOG()
now logs function name only (FUNCTION) instead of full function signature (FUNCSIG) to avoid logging
convoluted long names.
EZArgs.h conceptualized
- [Change]
bux::C_EZArgs
methods conceptualized. - [Change][Incompatible]
bux::C_ErrorOrIndex
knows the difference between error and help text. - [Change] Argument
dirs
ofbux::search_dirs()
is now typed asstd::ranges::forward_range
instead of in-housebux::ConstPathList
- [Change]
const std::string &
is somtimes more efficient thanstd::string_view
- [Change] Methods of
bux::C_EZArgs
tuned for uint tests to pass. But the changes are also healthier and more tolerable in the long run. - [New]
RAW_LOGIC_ERROR()
,RAW_RUNTIME_ERROR()
with no source trace, just the formatted message.
p.s. This release id not for clang, which is lack of C++20 P0634R3 feature.
bux::C_ParaLog is ready for use
- [New]
bux::C_ParaLog
is ready for a variety of parallel logging configurations, filtered or unfiltered. - [New] Necessary helper classes for implementation s.t logger users no longer need to declare child source instances explicitly.
- [New] Add methods to
ParaLog.h
&SyncLog.h
to support testability. - [New] Add unit test cases to
ParaLog.h
&SyncLog.h
(test_paralog & test_logger) - [New] Update what are found in
test/
totest/archlinux/aur_poc/
- [Bug]
std::uniform_int_distribution<unsigned char>
no longer allowed. - [Change]
CUR_FUNC_
for Windows (MSVC) - [Change]
tbb
is no longer implicitly needed by C++ standard library. - [Change]
smoke_filtlog.cpp
verifies 2-level log filters ok.
SCOPELOG() indentation & new macro LOG_RAW()
- [Bug] Boudary lines of SCOPELOG() & SCOPELOGX(), and so FUNLOG & FUNLOGX(), are indented deeper in the same depth with scoped log lines.
- [New] LOG_RAW() simply logs what is formatted by arguments between ( ) without the ordinary timestamp-tid-loglevel prefix.