Skip to content

Releases: trflynn89/libfly

6.2.2

14 Oct 17:37
Compare
Choose a tag to compare

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

08 Oct 16:24
Compare
Choose a tag to compare

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

08 Oct 14:15
Compare
Choose a tag to compare

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

07 Oct 13:27
Compare
Choose a tag to compare

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

06 Oct 17:55
Compare
Choose a tag to compare

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...
Read more

5.0.0

14 Mar 19:26
Compare
Choose a tag to compare

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

06 Feb 19:08
Compare
Choose a tag to compare

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

01 Feb 22:04
Compare
Choose a tag to compare

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

31 Jan 14:52
Compare
Choose a tag to compare

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

18 Jan 21:28
Compare
Choose a tag to compare

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.