Releases: trflynn89/libfly
Releases · trflynn89/libfly
6.2.2
Changes:
- 711352b Version 6.2.2
- a47637e Use clang-format 13 during CI linting
- fd67f46 Update clang-format configuration for version 13
- 8ffd932 Allow short, inline lambdas to be on a single line
- 4af0c82 Upgrade CI to use Ubuntu 21.10 and Clang 13
- b524439 Fix compilation with GCC on Ubuntu 21.10
- 82f9bf1 Fix Catch2 compilation with Clang 13
- 1bab12a Conditionally include IO stream related headers in formatter definitions
- 5be2edf Add missing include to benchmark table generator
- d17a477 Combine coverage and release CI stages into a single post-build stage
See More
- 2d2e901 Move code coverage report upload outside of the Linux CI container
- 4e63238 Move linting outside of the Linux CI container
- cf223b4 Update flymake to 1.7.4
This list of changes was auto generated.
6.2.1
Changes:
- ef8a727 Version 6.2.1
- ef24bf0 Update license copyright year
- 50c4f84 Add OS name to CI cache key
- 4084c32 Remove errant keys from macOS CI cache
- 8f0ef54 Move release package uploading to its own stage
- 1ff9047 Organize CI pipelines into stages (per platform)
This list of changes was auto generated.
6.2.0
Changes:
- 363f4e6 Version 6.2.0
- f11b09b Use builtin byte-swap on Windows when evaulated in non-constant contexts
- b8deba7 Move byte swapping methods using by endian wrapper into detail namespace
- 528d8d0 Move libfly Catch2 reporter method definitions out-of-line
- d04c01c De-duplicate logging of repeated Catch2 section names
- 00fe583 Add missing character formatting coverage
- b4d46ca Convert static_assert in fly::literals::numeric_literals to use a concept
- 30de232 Convert static_assert in fly::net::SocketService to use a concept
- b49d823 Convert static_assert in fly::detail::JsonIterator to use a concept
- a02201d Convert static_assert in fly::detail::BasicUnicode to use a concept
See More
- 45862a8 Convert static_assert in fly::Formatter to use a concept
- a5514d1 Convert static_assert in fly::ConfigManager to use a concept
This list of changes was auto generated.
6.1.0
Changes:
- a71d0ec Version 6.1.0
- df633f1 Re-use compile-time parsed replacement fields for user-defined types
- 42c0845 Declare formatting options in derived formatters as public
- 58374fb Add a concept for testing if a type is derived from another type
- 637f27e Add concepts unit tests to Linux/macOS build system
- aae9b19 Validate replacement fields for user-defined types at compile-time
- 18a5822 Fully qualify string formatting concepts when not in the same namespace
- 64c5d6b Fix typo in string formatting compiler error message
- 1d5a1be Update doxygen-awesome-css to v1.6.0
- b30daf3 Update flymake to 1.7.2
This list of changes was auto generated.
6.0.0
Changes:
- 9e8c0d9 Version 6.0.0
- c2ff752 Install bzip2 onto Linux CI Docker image
- cc30c95 Rename task_types.hpp to exclude "task"
- 654783f Rename huffman_types.hpp and huffman_types.cpp to exclude "huffman"
- 575bb4a Rename socket_concepts.hpp and socket_types.hpp to exclude "socket"
- 9e2dc13 Rename bit_stream_[concepts,constants,types].hpp to exclude "bit_stream"
- 1e3bb18 Move JSON concept details to separate header
- 19fd73d Rename json_concepts.hpp and json_types.hpp to exclude "json"
- fc8728a Rename string_concepts.hpp and string_traits.hpp to exclude "string"
- b43114d Constrain all CharType template parameters in string library
See More
- 70185e7 Move string concepts out of detail namespace
- 72c333d Replace traits in README with concepts
- b8da1c5 Move fly/traits to fly/concepts
- e45f1e7 Remove fly/traits/traits.hpp header
- c85a2a3 Convert all uses of fly::any_same trait to fly::SameAsAny concept
- 153904f Convert remaining string traits to C++20 concepts
- 99a7144 Use a C++20 concepts in the fly::logger::Styler IO manipulator
- cdfa331 Use C++20 concepts in fly::net
- 8d408c6 Use fly::SameAs where able to automatically remove cv-qualifiers
- 1ccfc5a Add a concept to wrap around std::same_as, removing cv-qualifiers
- d929be1 Remove now-redundant checks for boolean types in various concepts
- e90974e Redefine integral concepts to exclude booleans
- fe7baab Remove now-unused fly::detail::BitStreamTraits
- 3e84385 Use C++20 concepts in bit stream operations
- a52416c Remove now-unused fly::detail::EndianTraits
- c8837cd Use C++20 concepts in endian operations
- 2a5ccf3 Remove redundant inline specifier from constexpr functions
- 867585c Remove now-unused fly::detail::BasicFormatTraits
- 2b27531 Use C++20 concepts more pervasively in string library
- ea00050 Parse replacement fields of user-defined types at runtime
- c94700e Resolve active parameter types for user-defined formatters
- 6899b33 Discard formatting options for user-defined types during compile time
- 6f5248b Track the start of the parsing position for each format specifier
- 980a59b Return a mutable reference to the format string's parse context
- 07cc1e2 Change standard formatters to inherit from BasicFormatSpecifier
- 492631a Return early if the format string had a parsing error
- d812b56 Add method to forcefully set a lexer's position
- e79e80e Enable usage of the three-way-comparison operator on Windows in fly::net
- 79ce71c Include tests for std::*setfly::Json
- c5c9235 Define relative comparison operators for fly::Json
- f95af44 Define a std::hash specialization for fly::Json
- d1707b8 Move fly::Json::json_type alias to fly::json_type
- a55054e Reduce memory usage of fly::SystemMonitor test
- a715291 Simplify JSON container constructors
- e7754db Use fly::SizeOfTypeIs in Unicode implementation
- b6539ae Use fly::SizeOfTypeIs in endian test
- b92a23a Add a concept to constrain the size of a type
- b6c5c21 Move JSON array utilities to fly::detail namespace
- 43f725d Remove obsolete and unused JSON type traits
- 47d9c18 Move underlying JSON type definitions to separate header
- 6983a14 Use C++20 concepts with fly::Json
- e4dac7a Introduce concepts header to libfly
- 294189f Add fly::Json operators to transfer ownership of stored value
- 489a07a Update JSON for Modern C++ version 3.10.2
- 89dd9b2 Update {fmt} to version 8.0.1
- f208814 Update Boost.JSON to version 1.77.0
- 8b9e581 Use macOS Big Sur and Xcode 13 for CI
- ee0f3b0 Ensure ccache is always updated
- 609a4fe Use ccache on Linux and macOS CI
- 18f0945 Install ccache on Linux and macOS CI builders
- 5acfc42 Update {fmt} to 8.0.0 for benchmarks
- 9585efd Enforce more strict JSON string conversion rules
- 1c34fb0 Implement JSON serialization without IO streams
- 85c90ec Add std::format to string formatting benchmarks
- 0757d32 Fix removing floating-point charconv support
- a9f556f Update floating-point formatting benchmarks
- 27d24da Standardize on "floating-point" rather than "floating point"
- 3c7f6db Use std::to_chars for formatting floating-point values where available
- 47be828 Use std::to_chars for converting floating-point values where available
- 63265b0 Remove inline specifier from compiler / OS support methods
- d07cf83 Add compile-time method for testing floating point charconv support
- c88b9ac Remove setters from fly::net::Endpoint
- 74bbdbc Change BaseSocket::hostname_to_endpoint to hostname_to_address
- c341d07 Add convenience aliases for socket underlying types
- cc7cc42 Rename string_formatters.hpp to formatters.hpp
- 196188a Convert formatting of all types to fly::Formatter specializations
- f633043 Refactor declaration type trait to accept variadic template parameters
- 559a8ba Add formatting method to format to an existing output iterator
- 30743a8 BasicFormatString::parse_specifier doesn't need to return an optional
- cd4a85c Move replacement fields into the standard formatters
- cc22d1b Move parameter type inference into the replacement field itself
- 80d258a Do not provide BasicFormatSpecifier its parameter type
- 3ea5bb5 Replace traits in BasicFormatParameter user-defined constructor
- 94a60a9 Clarify language in a formatting error message
- ff37b6c Prefer "user-defined" over "generic" in formatting language
- d86a638 Use the format parsing context to parse replacement fields
- e1c120d Introduce a format parsing context
- 2e52fa4 Change BasicString to be templated on character types
- 21d61d7 Change BasicStringTraits to be templated on character types
- e47589c Change BasicUnicode to be templated on character types
- c8be3ac Remove template string parameter from Converter
- ec21bd0 Remove template parameter from ScopedStreamModifiers
- bc09749 Change BasicFormatString to be templated on character types
- 3823c4d Change BasicClassifier to be templated on character types
- 2e72c81 Rename string_literal.hpp to literals.hpp
- ea61ada Change BasicLexer to be templated on character types
- 981fb66 Update .clang-format for Clang-Format 12.0
- a885914 Update CI to use Ubuntu 21.04, Clang 12, GCC 11
- cdafbee Run 'make style' with clang-format 12
- 8126769 Fix compilation with Clang 12
- fa388f8 Type-erase standard format parameters
- c3f24f9 Update flymake to latest release
- 0640c36 Docs: Set CASE_SENSE_NAMES=NO in Doxyfile
- 85f28fe Re-organize string formatting file layout
- 6173d26 Move parsing of standard replacement fields to BasicFormatSpecifier
- fac67c3 Perform width and pre...
5.0.0
Changes:
- eed03c9 Version 5.0.0
- 5609d65 Re-order parameters of post_task methods
- 0234e98 FormatString objects should be moved, not forwarded
- d6954bd Convert console/file logger creators to free functions
- b269104 Rename fly::logger::LogSink as fly::logger::Sink
- 72211c4 Move logging library to fly::logger namespace
- 106f101 Move coders library to fly::coders namespace
- b23b06e Move file parsing library to fly::parser namespace
- 0720064 Move configuration library to fly::config namespace
- fa1f6a5 Remove verbose namespace usage in fly::net
See More
- ed67f40 Move path library to fly::path namespace
- 493cf2e Move system library to fly::system namespace
- 94a342a Move task system to fly::task namespace
- 0a7316b Add static creation method for SystemMonitor
- 902fffc Add static creation method for PathMonitor
- 7c1b48f Add static creation method for ConfigManager
- 4696dd6 Capture task trace information with string views
- 05f1b97 Allow moving most parameters into logger instances
- 6bd886f Re-implement socket configurability
- e58db29 Rename BaseSocket::is_valid() to BaseSocket::is_open()
- 79ed1b0 Fix flakey TcpSocket tests
- a9c7802 Fix a flakey ListenSocket test
- c4c63a8 Align error handling of sync/async socket operations
- 6fc739d Only add coverage instrumentation to targets that need it
- 1a0ebdc Update flymake to latest release
- 5ce50fe Add explicit creation methods for task manager and runners
- bdf0d5e Use better perfect forwarding in task system
- 3ab872f Remove obsolete socket system
- 522dd5c Perform platform-specific initialization in socket service
- 951d318 Implement a new asynchronous socket service
- 03e0ed8 Add fly::net::ListenSocket, split from fly::net::TcpSocket
- 540ea44 Add fly::net::TcpSocket and fly::net::UdpSocket
- 3af0d62 Add an endpoint class to fly::net
- f440b70 Add an IPv6 address class to fly::net
- a749083 Introduce fly::net namespace with IPv4 address class
- 1126a17 Enable IPv6 in Docker container during CI
- 3e16921 BasicStringLexer support for parsing hexadecimal numbers
- f9c7552 Move BasicStringLexer out of fly::detail namespace
- ce154e0 Allow byte swapping methods to be used in constant expressions
- 639d951 Update flymake to latest release
- 1d41267 Update CI to install flymake as a submodule
- c960381 Add flymake as a git submodule
- d220719 Update CI to only fetch required submodules
- 7ebd771 Add git to CI Docker image
- cb82b5b Add CI step to ensure code is style compliant
- ece5ea9 Add clang-format to CI Docker image
- b61f9d9 Partially disable clang-format in Windows socket for include order
- e9747f4 Include Catch2 v3 with -isystem to disable warnings
- 97e8742 Fix benchmarks compilation on macOS
- 54865d7 Add Dockerfile back to libfly
- 009749c Use std::chrono::steady_clock to measure durations
- 3b70761 Update files.mk files with latest flymake support
- 0f1b7e5 Use flymake API to exclude //extern from style enforcement
- ca74aad Resolve $(SOURCE_ROOT) to remove relative directories
- 0f7896d Exclude //extern from generation of compilation database
- 45ebb74 Add README for third-party dependency descriptions
- 357cf1e Move {fmt} to //extern
- b469ba4 Move JSON for Modern C++ to //extern
- 4713197 Move Boost.JSON to //extern
- f26db59 Move Catch2 compile flags to separate file
- 6c20c9c Remove Catch2 v2 submodule
- dc47641 Migrate benchmarks to Catch2 v3
- 2db7dbe Migrate unit tests to Catch2 v3
- 3e0613c Add Catch2 v3 submodule
- 47a9982 Mark libfly library as a dependency of tests and benchmarks
- aafce25 Change default branch to 'main'
This list of changes was auto generated.
4.3.0
Changes:
- 54f14b9 Version 4.3.0
- 54d8e6b Remove now unneeded release tarball command
- 223d258 Integrate with flymake build system
- a2216af Fix compilation of benchmarks
- d288628 Fix semantic error parsing formating parameter positions
- a68f31d Add safe variant of std::isspace
- 78ff5fe Convert most BasicString methods to accept a string view
- 33b29bd Enable UndefinedBehaviorSanitizer for debug builds
- c7620f8 Fix undefined behavior in SocketImpl::hostname_to_address
- c26d3ba Fix undefined behavior in Color constructor
See More
- 58d8aa6 Fix undefined behavior in BitStreamReader::peek_bits
- 24040fe Fix undefined behavior in BasicStringFormatter::format_value
- ff30ad7 Extract string formatting traits to helper struct
- 7f579d3 Fix typos in BasicString documentation
- 214f156 Remove stream related type definitions
- adc560b Rename string_streamer.hpp to string_stream_util.hpp
- 72eb70f Remove BasicStringStreamer and BasicStringStreamerTraits
- 4513fb1 Remove BasicString::format overload that inserts to a stream
- acd566a Re-implement BasicString::join using BasicString::format
- d7d871f Protect generic type formatter against missing operator<<
- 98c4a6d Simplify validation of non-specified presentation types
- 9a3e71d Do not allow presentation types for generic format parameters
- b1b2093 Do not unnecessarily cast format parameters
- 77072a1 Format strong enumerations from format parameters
- 9b37487 Parse strong enumerations in format parameters
- d354947 Add an example C project
- 417b9cb Ensure C++ flags are not used during C compilation
This list of changes was auto generated.
4.2.0
Changes:
- 0b5c781 Version 4.2.0
- 5352420 Update string formatting benchmarks
- 368912c Add a BasicStringFormatter::format_value overload for pointers
- 11c4f66 Update docs on how BasicString::format differs from std::format
- ab927f9 Handle invalid Unicode transcoding during string formatting
- a27a137 Fix formatting of non-null-terminated character arrays
- 47fec5f BasicStringLexer may use BasicStringClassifier::size for string size
- bfc4c7e Add BasicStringClassifier::size overload for character arrays
- 42acd67 Remove unused iterator-based Unicode converters
- baec3cf Convert Unicode encodings in-place in BasicStringFormatter
See More
- 328f0af Add Unicode transcoder to insert into an existing string
- 167d5a3 Use new Unicode conversion helper where appropriate
- 724face Add a Unicode conversion helper that accepts a string-like object
This list of changes was auto generated.
4.1.0
Changes:
- 8d2e9df Version 4.1.0
- b2b0a02 Defer some floating point formatting to string formatter
- 2bff2e0 Update string formatting benchmarks
- aebd272 Remove centering facet from benchmark stream utilities
- 0ed6f1c Remove unused BasicStringStreamer functionality
- 716c7d4 Implement string and integral formatters without IO streams
- cc8c19f Pin BasicFormatSpecifier::Type enumeration values
- c8b94ec Move alias for streamed_char_type to BasicStringTraits
- 9f24a35 Ensure fly::Styler instances are applied to standard streams
- 4f1bf87 Move BasicString::size implementation to BasicStringClassifier
See More
- cc3801c Add safe variants of std::toupper and std::tolower
- 791ccb1 Reset stream state in BasicStreamModifiers only if it changed
- 8e03157 Exclude third-parties from benchmarks in profile builds
- c43e415 Define FLY_PROFILE for profiled builds
- a562f7b Split handling of format options based on parameter type
- 83a7984 BasicStringStreamer can take maxiumum string length as plain type
- c4bbd5a Convert BasicStringFormatter to an instanced class
- 557f2ff Fix declaration of default BasicFormatString move constructor
- 2482a66 Update string formatting benchmarks
- 8f818b3 Refactor handling of width and precision formatting options
- b90a138 Support streaming a maxium number of characters from a string
- ce64e1f Allow retrieving of integral format parameters by value
This list of changes was auto generated.
4.0.0
Changes:
- 1c4b6a4 Use clearer language in std::enable_if wrappers
- 9bb8a33 Fix benchmarks compilation on Windows
- 81d0798 Split up types unit tests
- 968dc79 Build: Fix inheritance of parent directory compiler flags
- c554c2d Version 4.0.0
- 5c49c37 Update string formatting benchmarks
- 2184d27 Mark numeric user-defined literals as consteval
- f2a34dd Mark styler user-defined literals as consteval
- b8266e3 Reduce maximum number of format string replacement fields
- 44499c1 Use string formatter in test and benchmark reporters
See More
- 7c1f2c3 Ensure BasicStreamModifiers resets fill and precision
- 8f5c415 Support formatting options with nested replacement fields
- ce6a4d3 Parse nested replacement fields in format strings
- e746ba8 Remmove unused BasicFormatSpecifier helpers
- a15640c Split BasicStringFormatter::format_value based on type
- 0efb9d8 Fix typo in documentation
- af03c36 Simplify string formatting loop
- 35db6cc Performance improvements of BasicString::format
- 75f5182 Benchmark string formatting
- c953c55 Fix typos in documentation
- c5b26ff Remove now-duplicated stream utility from benchmarks
- 3b1d9e1 Convert all format strings to new specification
- 7fe571a String formatting overhaul: Format according to std::format specs
- ef2cf31 String formatting overhaul: Parsing of std::format strings
- 0dd9659 Add string utility for lexical analysis of string literals
- 99733bf Add string chooser macro for character array references
- 6b5ac96 Add compile-time helper methods for testing compiler support
- 6ce95a6 Add safe variants of std::isupper, std::islower, std::isxdigit.
- 5bad156 Fix typos in documentation
- 331be89 Remove macOS + GCC from CI
- 55e77cb Use safe BasicString::is_digit in JsonParser
- 723d2d3 Add safe variants of std::isalpha and std::isdigit
- 2d84985 Use fly::enable_if and fly::size_of_type_is where useful
- 7deb24e Add fly::size_of_type_is trait
- 7d7fb84 Add fly::enable_if and fly::disable_if for SFINAE convenience
- 5789992 Update BasicStringConverter to use std::from_chars when able
- ed41cff Remove BasicString::starts_with and BasicString::ends_with
- 3378453 Update JSON parser benchmarks
This list of changes was auto generated.