Skip to content

Releases: buck-yeh/bux

Updates for newer compiler versions

29 Jan 08:02
Compare
Choose a tag to compare
  1. [VS2022] Include <utility> to get std::cmp_less_equal() compiled.
  2. [Standard] Re-implement bux::C_ScreenerNo in a more compliant way.

Accumulated updates

15 Jun 16:20
Compare
Choose a tag to compare
  1. [New] C_UnicodeIn::encoding()
  2. [Change] Pass std::basic_string_view<T> arguments by value, not by reference, to one of overloaded ctors of bux::C_MBCStr
  3. [Change] Rehaul bux::fittestType() in C++20 - concept lite & if constexpr
  4. [Change] Add code page 951 (Big5 with HKSCS-2001) as one of encoding candidates to test in C_UnicodeIn
  5. [Change] Forbid r-value string instance as ctor parameter of bux::C_IMemStreamT<>

Misc improvements with minor breakage of includes

01 Jun 14:12
Compare
Choose a tag to compare
  1. [Change] Move HRTN() & OXCPT() from LogStream.h to StrUtil.h.
  2. [Change] Rewrite I/O manipulator bux::timestamp utilizing fmt::format() to shorten the boilerplate code.
  3. [Change] Quit assuming std::string::begin() is defined as const char * upon implementing ctor of bux::C_IMemBuf.
  4. [Change] Harden the criteria to make flag values prefixed with '-' (negative numbers) hardly missed (i.e. misunderstood as short-named flags).
  5. [Change] Claim that "Behavior of adding duplicate subcommands or flags of the same name is undefined." i.e it is caller's responsibility.
  6. [Change] No more prepend ./ to the command name of USAGE part of help text.
  7. [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.
  8. [Bug] C_ScannerImpl<>::add() may throw due to losing its track of the last non-null action function pointer.
  9. [Change] Were C_ScannerImpl<>::add() thrown, the incorporated message will have value of m_CurState.

Bug/quirk fixes & enhancements

21 May 04:43
Compare
Choose a tag to compare
  1. [Bug] C_EZArgs::parse() misunderstands negative numbers as flag short names.
  2. [Dependency] Update according to issue #4 related to vcpkg build.
  3. [Quirk] C_EZArgs::help_full(): Keep "USAGE:" a empty line away from "DESCRIPTION:"
  4. [Obsolete] Remove ParaUtil.h(bux::C_NumIter<>) due to deprecation of std::iterator<>
  5. [Change] Parameters trigger & parse of all C_EZArgs::add_flag() overloads now passed by rvalue references for better performance.
  6. [Change] Loose the container parameter type requirements of C_PathFmtLogSnap::configPath(uintmax_t fsize_in_bytes, const auto &fallbackPaths)
  7. [Change] Replace DEF_CONFIGURABLE_LOGGER_FILES with DEF_FALLBACKABLE_LOGGER_FILES(first,...) to initialize the global logger in place.
  8. [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

19 Nov 12:16
Compare
Choose a tag to compare
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

15 Nov 15:33
Compare
Choose a tag to compare

Conceptualize bux::C_EZArgs

14 Nov 16:23
Compare
Choose a tag to compare
  1. [Change] We now have 9 C_EZArgs::add_flag() overloads.
  2. [Change] Must provide onParsed parameter when calling C_EZArgs::add_subcommand()
  3. [Change] FUNLOG() now logs function name only (FUNCTION) instead of full function signature (FUNCSIG) to avoid logging
    convoluted long names.

EZArgs.h conceptualized

17 Oct 17:26
Compare
Choose a tag to compare
  1. [Change] bux::C_EZArgs methods conceptualized.
  2. [Change][Incompatible] bux::C_ErrorOrIndex knows the difference between error and help text.
  3. [Change] Argument dirs of bux::search_dirs() is now typed as std::ranges::forward_range instead of in-house bux::ConstPathList
  4. [Change] const std::string & is somtimes more efficient than std::string_view
  5. [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.
  6. [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

02 Oct 06:45
Compare
Choose a tag to compare
  1. [New] bux::C_ParaLog is ready for a variety of parallel logging configurations, filtered or unfiltered.
  2. [New] Necessary helper classes for implementation s.t logger users no longer need to declare child source instances explicitly.
  3. [New] Add methods to ParaLog.h & SyncLog.h to support testability.
  4. [New] Add unit test cases to ParaLog.h & SyncLog.h (test_paralog & test_logger)
  5. [New] Update what are found in test/ to test/archlinux/aur_poc/
  6. [Bug] std::uniform_int_distribution<unsigned char> no longer allowed.
  7. [Change] CUR_FUNC_ for Windows (MSVC)
  8. [Change] tbb is no longer implicitly needed by C++ standard library.
  9. [Change] smoke_filtlog.cpp verifies 2-level log filters ok.

SCOPELOG() indentation & new macro LOG_RAW()

21 Aug 17:19
Compare
Choose a tag to compare
  1. [Bug] Boudary lines of SCOPELOG() & SCOPELOGX(), and so FUNLOG & FUNLOGX(), are indented deeper in the same depth with scoped log lines.
  2. [New] LOG_RAW() simply logs what is formatted by arguments between ( ) without the ordinary timestamp-tid-loglevel prefix.