Releases: trflynn89/libfly
Releases · trflynn89/libfly
3.3.0
Changes:
- 5c835c4 Version 3.3.0
- 8356d3d Fix x86 memory corruption in Windows path monitor
- e45183e Briefer fly::detail::literal() implementation
- d3f08bb Store random engine as thread-local storage in BasicString
- 2b7140b Promote BasicStringUnicode's encoded byte provider to static method
- 26f754e Fix typo in TaskRunner documentation
- 95a0024 Update Windows CI to run unit tests in debug mode
- 4e6827e Disallow JsonIterator difference operator on different JSON values
- 55d722d Protect JsonParser::validate_number against empty input
- 8031151 Remove iterative JSON destructor
See More
- a0efdc8 Update Windows CI to only build required targets
- 9685064 Move benchmark utilities to subfolder
- 63972aa Ensure all Windows projects treat warnings as errors
- 00f5b22 Add benchmarking library to Windows project
- 35dd502 Formatting: separate test/benchmarking headers from libfly headers
- 80601fc Improve Base64 decoder performance by error checking only when needed
- a91adde Significantly reduce IO operations during Base64 coding
- 7ea1474 Always optimize test utility methods
- a80e36a Add Codacy configuration file
- 19a3478 Benchmark Huffman and Base64 coders
- 128d4ff Allow benchmarking utilities to compile with strict warnings
- 5b40282 Use correct epsilon in JSON equality comparison
- b0b7ba8 Use Catch2 framework for benchmarking tests
- 3957bc0 Address minor Codacy linting issues
- fd77d87 Add basic benchmarking library
- e09ddda Unroll JsonParser::parse_quoted_string a bit
- 7ee4ad0 Cache JsonParser feature flags
- 5db98b3 Remove UTF8Stream with char8_t support
- ac7d5fe Slightly faster JsonParser comma consumption
- 3f21a52 Inline hot UTF8Stream methods
- 1b42e72 Prefer std::optional::operator* over std::optional::value
- e9d8337 Simpler Json::push_back implementation
- 6c1b78e Use std::get_if wrapper for accessing underlying JSON storage
- a5aef7b Use std::optional less in internal Unicode methods
This list of changes was auto generated.
3.2.0
Changes:
- 262a917 Version 3.2.0
- 48f776e Json::capacity does not need to throw exceptions
- a763e44 Add Json::resize for JSON strings and arrays
- 8b4cece Use briefer JSON type traits in constexpr expressions
- 004f1e9 Add JsonTraits::is_null and JsonTraits::is_container
- a08d09a Use Json::reserve where appropriate
- d015ee4 Add BasicString::size for generic string-like length
- 8875938 Add Json::reserve and Json::capacity for JSON strings and arrays
- 09f9a1f Update JSON container constructors to accept universal references
- f07839d Json: Use consistent naming when accessing underlying storage
See More
- c9971da JsonTraits::is_number does not need to explicitly decay
- 33751c7 Do not accumulate parsed JSON strings in a stream
- bd1874b Separate JSON string parsing into its own method
- d16dc96 Do not copy JSON strings that have the expected Unicode encoding
- 68db85a Allow JSON callers to decide whether to copy or move input values
- 4e9cb3f Add BasicString::validate to verify strict Unicode compliance
- 983c7ea Replace escaped JSON character(s) in-place
- 3e05ff8 Freeze JSON numeric types to be 64-bit
- 26a1bc8 Generalize BasicString's Unicode method iterator types
- 79d7111 Perform UTF8Stream I/O operations on underlying buffers
- 9475b0d Optimize Json destructor for flat values
- 45a2bd8 Use newly added Json container methods in JsonParser
- b54b1dc Do not create JSON copies when wrapping in std::optional
- 4d81b2d Ensure etc directory exists before creating profile
- d37f06e Add Json::insert_or_assign for JSON objects
- de6675d Tweak Json::insert and Json::emplace for JSON objects
- ed87643 Fix Windows builds with Visual Studio 16.8
This list of changes was auto generated.
3.1.1
3.1.0
Changes:
- a43db30 Version 3.1.0
- c6e5320 Label method sections in the JSON interface
- 2c16bef Improve class-level documentation of JSON class
- 58dd90b Support Json reverse iterator access
- b3216a1 Add accessor for the offending OutOfRangeJsonException offset
- 1e6bb19 Fix documentation of pre- and post- JSON iterator operations
- e074634 Add Json::merge for JSON objects
- ad38961 Allow callers of json_helpers to override "success" types
- 1b376f8 Add Json::pop_back for JSON arrays
- 1b18686 Add Json::front and Json::back for JSON objects and arrays
See More
- 1ae775c Allow Json::push_back to promote null values
- cee435d Allow Json::emplace to promote null values
- 3ac5e7c Rename json_macros.hpp to json_helpers.hpp
- fe028a2 JSON test cleanup: Templatize JSON conversion tests
- 54d29a5 JSON test cleanup: Templatize JSON traits tests
- e009173 JSON test cleanup: Templatize JSON accessor tests
- 69aa004 JSON test cleanup: Templatize JSON modifier tests
- 714a9ed Add Json::erase methods for JSON objects and arrays
- 85af17b Add Json::push_back for JSON arrays
- d7dcc80 Add Json::emplace_back for JSON arrays
- 494a676 Add Json::emplace for JSON objects
- b874e76 Consolidate implementation of object insertion methods
- c3f0f2d Add Json::insert methods for JSON arrays
- fe99fdd Remove qualifiers from JSON initializer list constructor
- 7b805fb Add Json::insert methods for JSON objects
- 125fee7 Add Json::contains(key) for JSON objects
- 5229294 Add Json::count(key) for JSON objects
- de7db54 Add Json::find(key) for JSON objects
- 8435a46 Fixup some JSON documentation
- d883a19 Mark Json as a friend of JsonIterator
- 6be6ec6 Avoid making a copy of string-like types when streaming
- 246fea3 Treat std::basic_string_view specializations as string-like
- 9a2c226 Generalize BasicStringUnicode's iterator type
- 785fbe6 Remove now-unneeded static character casts
- 7ba44d6 Fix support for streaming any character type
- 8b1d3ac Trait for deciding if a type is a supported character
- d0850ec JsonTraits aliases for BasicString and character types
- 2497f4f Clarify JSON string and string-like traits
- 883b983 Allow swapping JSON string with any string type
- 96940fe Allow JSON object lookups with any string-like type
- 0109a26 Move duplicated JSON test macros to helper file
- 5ee6667 Fix support for streaming any std::basic_string type
- 2653afa Use new string-like trait in JSON for terseness
- b1222ce Trait for deciding if a type is like a supported string
- 75e75e2 Allow parsing char8_t streams without converting to char
- 68bc19d Add compile-time helper methods for testing operating system
- 693264e Allow converting JSON instances to any std::basic_string type
- 65473c7 Templatize JSON construction tests for all string types
- f68703f Allow constructing JSON objects with any std::basic_string type key
- 5a2cb56 Consolidate JSON string-like constructors
- e37095b Separate JSON constructor tests to their own file
- 71055e3 Allow constructing JSON strings from any std::basic_string type
- e89797b Add BasicStringTraits aliases for supported types
- 2ee27c1 Only parse BOM from file streams
- 87d41e1 Extend fly::Parser to support std::u8string
This list of changes was auto generated.
3.0.0
Changes:
- 1e65223 Version bump: 3.0.0
- f0fbfd7 Replace fly::Endian with std::endian
- 33918e9 Extend fly::BasicString to support std::u8string
- 7055f58 Compile using C++20 standard
- 6fadb11 Upgrade to clang-format 11
- f3c0240 Upgrade Linux CI to use Ubuntu 20.10
- d2fab3a Prefix all Catch macros
- d53f2c3 Fixes for style warnings caught by clang-tidy
This list of changes was auto generated.
2.3.0
Changes:
- 9cb2f1a Version bump: 2.3.0
- 74bf4e1 Fix release package creation after bumping version
- 62d2a85 Allow void tasks to indicate completion to a reply task
- 6b342fd Remove logs at shutdown
- e10b11e Add files missing from Windows build
- fd5a4b8 Define NDEBUG in Windows release mode
- 17e748f Task runner API for receiving task results
- 5a8a994 Use weak task API where applicable
- 6ad06de Move weak pointers in the task module where appropriate
- 68d33ca First-class API for posting weak tasks
This list of changes was auto generated.
2.2.0
Changes:
- c9ebbc3 Version bump: 2.2.0
- cc5ce21 Use a single task manager for all unit tests
- 36db224 Define NDEBUG in release mode
- e562f4c Logger no longer needs to store log points in a queue
- c4f394a Allow tasks posted to a task runner to be mutable
- be8d632 Improved task runner interface
- a83a1cf Ensure the logger registry is safely cleared at shutdown
- 255b6fa Default logger comment on thread safety
- 753f633 Use a faster logger for tests
- 725e4fa Support clangd language server
This list of changes was auto generated.
2.1.0
2.0.0
Changes:
- 148b4b1 Update Azure Pipelines project
- 902dcd0 Overhaul of logging system
- 93b9f42 Add mocked ::write() system call
- dd142e5 Ensure JAR contains compiled anonymous inner classes
- 7dcfb42 Improve documentation of the build system
- a6bc29f Build system: Clean up use of the variable $(t)
- 0a2e641 Remove Maven from Dockerfile
- 74e139c Replace Maven support with plain Java support
- 0ac06f6 Add Maven example to macOS build example
- 9d4e56b Move macOS Mach kernel calls to wrapper methods
See More
- 7e0773c Move Linux installation location to /usr/local
- fe8b101 Implement SystemMonitor for macOS
- fc81e98 Address some const correctness in SystemMonitor
- 5d19161 Implement PathMonitor for macOS
- 7eb77b3 Fix PathMonitorImpl comments and log points
- b181997 Support Objective-C/C++ compilation
- 8701810 Add macOS compilation to CI
- 4d7d7d1 LDLIBS required by the STL should be links in flags.mk
- 1da5173 Initial support for macOS
- a7f1808 Add unit tests to example build project
- d20d839 Add support for running Maven tests
- 9cc5fd0 Add support for Java projects built with Maven
- 2015fd0 Linux build: do not ignore system header dependencies
- 2b3bb8f Change set of fatal signals to be constexpr
- 556c334 Support setting class-level signal handlers
- 7360638 Remove LOGC_NO_LOCK macro
- d15c414 Extend Linux CI to compile with GCC in release mode
- d90dea2 Extend Windows CI to compile in debug mode
- af12f68 Linux build: replace release and profile flags with mode flag
- 412edee Optimize profiler builds
- 2a21897 Fix GCC compile of libfly_unit_tests
- 1616f38 Very minor Huffman decoder speed improvement
- f9d5161 Decrease Hufmann encoder chunk size to 256 KB
- 31d5357 Replace Unicode EN DASH (U+2013) with ASCII hyphen
- e4ad5a2 Use C++11 alignment keywords in Linux PathMonitorImpl
- 6554265 Cleaner construction of Color and Cursor manipulators
- b1d59ce Allow manipulating cursor position by user-specified distance
- 3eb3af4 Move numeric literal suffixes to the fly namespace
- 9ed98ad Use more succinct names for Styler Position enum
- cc7461a Implement Styler manipulation of cursor position on Windows
- 6923b3c Instrument test time duration in FlyReporter
- 55e509a Implement Styler manipulation of cursor position on Linux
- 6b83b95 Inline BitStreamReader::discard_bits
- 33eecf3 Add Linux build flag for profiling GCC builds
- fd7c6b5 StylerProxy constructor should be explicit
- 0a0dfbe Use default member initialization in JSON
- 371c178 Use default member initialization in BitStream
- dbb8905 Use default member initialization in TaskRunner
- 1c180bc Use default member initialization in SystemMonitor
- 37de992 Use default member initialization in Socket
- 2fedd4e Use default member initialization in JsonParser
- 2edb967 Use default member initialization on the log structure
- be48c6b Move all test utilities to fly::test namespace
- 4fe88ff Add missing Clang-Format directives
- c967250 Use default member initialization on config objects
- c0ba7e7 Tweak setting standard colors and enable on non-TTY streams
- 81e1962 Stylize Linux build steps with colorful commands
- 279098e Implement stylizing standard output and error streams for Windows
- 161cab9 Tweak FlyReporter color
- 27a2afe Convert FlyReporter to use new styling manipulators
- f88acd1 Stylize Logger console logs
- e7adb81 Manipulator for stylizing standard output and error streams
- dad3421 Add MockCall for ::isatty()
- 8e7268b Fetch socket error before invoking more system calls
- fb536d0 CaptureStream should flush the stream before and after capture
- 597c2f7 Generate code coverage with LLVM during CI
- ecd8f59 Optionally generate an HTML report with LLVM coverage
- a3bb41e Reduce code generation in JSON operator==
- f52a998 Custom reporter for Catch2 unit tests
- 6bb135a Remove Google Test submodule
- 7c05a7e Port test utilities to Catch2
- 91855bc Port Base64 coder tests to Catch2
- a61bb26 Port Huffman coder tests to Catch2
- 6571ebf Port config tests to Catch2
- 6bb0060 Port logger tests to Catch2
- 839f4b7 Consume log point messages as rvalue references
- dd1eed1 Convert JsonParser tests to Catch2
- 3ef8381 Convert IniParser tests to Catch2
- 2779698 Convert Parser tests to Catch2
- 31bc550 Slightly improve parser error handling
- 06dc148 Port path tests to Catch2
- 47e4d81 Create a ScopedTempDirectory helper for unit tests
- 74b7ba5 Port socket tests to Catch2
- a3311b0 Port SystemMonitor tests to Catch2
- abc9e60 Port System tests to Catch2 and improve tests
- d7b5b2c Do not log mocked system calls
- 7604d79 Port task tests to Catch2
- 0e0c296 Port BitStream tests to Catch2
- 1472322 Port numerics tests to Catch2
- 694f14c Port ConcurrentContainer tests to Catch2
- d10f5c8 Port JSON tests to Catch2
- 6b5ec64 Print unescaped JSON characters as chars, not ints
- 3d71c88 Enable fast Catch2 compilation and std::optional logging
- 31a52fd Port BasicStringTest to Catch2
- 5c30e7f Port TraitsTest to Catch2
- b510871 Add Catch2 a git submodule, to replace Google Test
- 93639e5 Move HuffmanConfig to CoderConfig
- 374f81a Support all standard string types in Parser
- a3beddc Use more modern trait helpers in traits files
- 8443faa Compress log files during rotation
- 0590d8a Add support for parsing non-UTF-8 streams
- 2115b98 Add method to byte swap values regardless of system endianness
- ddc675b Limit number of jobs used by Linux CI
- 67f6cfe Use Ubuntu 20.04 for CI base image
- 97561c8 Generate code coverage only for GCC x64 builds (#148)
- 1323916 Parser: Use std::optional in place of exceptions (#147)
- b3b69aa Better Unicode handling in BasicStringStreamer (#145)
- a92b842 Change logpoint separator symbols (#146)
- c65b090 BasicString: Use std::optional in place of exceptions (#144)
- 2121e8a Support converting between Unicode encodings (#143)
- 4c108c4 Add BasicString iterator aliases for convenience (#142)
- e2b2365 Add BasicString::encode_unicode_character
- 5b4aed1 Add BasicString::create_hex_string (#141)
- 2858347 Remove noexcept qualifiers where not needed (#140)
- ac0885b Better Unicode validation in JSON (#139)
- d4dc50c JSON should ve...
1.0.0
Changes:
- 8482b75 Use a powershell script for release packaging (#24)
- 9646e62 Fix Linux release packages (#23)
- c888c95 Add pipeline steps for a GitHub release
- 14d6d9c Update to C++17 compliant compilers (#22)
- b8346e3 Remove fixed argument from logger (#21)
- 507ce33 Cleanup style and switch to Azure pipelines (#20)
- db2797d Linux build system improvements (#17)
- ad31d63 Put all unit tests in a single binary (#16)
- c6a4d14 Add support for non-compliant JSON parser features (#15)
- 221dddd Use VS and AppVeyor unit test systems (#14)
See more
- d5a30d7 Merge branch 'master' of https://github.com/trflynn89/libfly
- c44991d Fix flaky system test
- 680b270 Add more task unit tests (#13)
- 8816455 Unused var
- 0f2e4bb Subclass path config in config manager test to decrease poll interval
- 26ed8d9 Task test can run faster
- c0611ac Fix comment
- 57ab010 Make every config class easier to subclass for testing
- 4782fd2 Minor test cleanup
- 8eb0cf4 Update googletest to release-1.8.1
- 309d6ab Fix compile and SIGILL errors found with clang
- 9f07dec New task interface (#12)
- 60fe116 Concurrency test doesn't need to sleep so much
- 5ae0d9f Fixed blocking send() call and similarly mock blocking sendto() (#11)
- 2342d17 Make socket test faster by not using huge messages (#10)
- 49a6c6b Move string class to types folder (#9)
- 69b2af4 Use C++11 keywords as appropriate (#8)
- f499cf1 Add support for clang 6.0 (#7)
- f79570f Clean up socket interface (#6)
- b008783 Treat warnings as errors
- eac0bc2 Proper address/port types
- 23275fa Clean up interface for creating sockets
- 5ac4353 Remove NST test_parsing files
- f68e2b1 Remove NST test_transform files
- 197b413 Add new unit test file to Windows build
- d85fddd Parser to ignore unicode byte order marks
- 61ed38c Fail NST JSON Test Suite when unexpected file found
- a967654 Classified indeterminate NST JSON Test Suite files
- 381faa6 Some more minor cleanup
- f2b003a Revert config manager sleep time
- 9137ab4 No need to store the JSON string validation error
- 1d97168 Revert to throwing exceptions in Json(string) ctor
- 59d3d5d Minor cleanup
- 7c0979b Add test case for ConfigManager::DoWork detecting deleted configs
- 5e83371 Remove unneeded check in is_float
- 832315a Fix Windows build
- 5126805 Add BigListOfNaughtyStrings and JSONTestSuite
- 46ab571 Remove deleted file from Windows build
- 1aa6e69 Don't store parsed values in the Parser class
- e612807 Allow parsing strings instead of only files
- 5f278d4 Trim result of Window's FormatMessage()
- a3af02d Use "enum class" everywhere
- d1de8b8 Fix compiler warnings in system_test
- ed3270d Fix incrementing iterator past its end
- 0e65727 Change all Json constructors to be noexpect
- b0eb502 Add move constructor for Json class
- 91bfcab Some cleanup and doc
- 6e23350 Increase parser_test stack size on Windows
- 49ee20f Add test from https://code.google.com/archive/p/json-test-suite/
- 936c307 Print "full" path to each target being built
- 40604ba Break up large tests into multiple files
- 4fc7070 Create more specific parsing exception classes
- b3ac444 Minify all_unicode.json to save a few MB
- ac33fc8 Uncomment AllUnicode test...
- 2f0be9f More JSON tests and stricter parsing
- 5102c20 JSON type and parser (#5)
- a3a9eaa Fix mistake in last change
- e1594af Break up mocked socket tests
- d04f284 Add codecov blacklist and move appveyor to dotfile
- edf75d6 Test case for asynchronous connect immediately succeeding
- 7d56259 Test case for mixing asynchronous operations on synchronous sockets
- b397ace Clear errno in the mocked system calls
- c38ba58 Remove accidentally submitted binary
- 626bfda Fix timing issue in socket test
- 6b4b8f3 Socket test passes on travis now... ¯_(ツ)_/¯
- a07b12e Add logging to try and figure out failed unit test
- 2e54d86 Update to Ubuntu 16
- 52c69fe Fix unit test warnings and errors found with Travis
- 9a3797d Add recv() and recvfrom() mock system calls
- 5711e51 Add send() and sendto() mock system calls and fix inconvenience
- 64c32d6 Add gethostbyname() mock system call
- cab0035 Send larger messages for TCP socket test and fix found bugs
- b8ac2d3 Add accept() mock system call
- 6ed13f4 Fix Linux compile error (missing include)
- f047320 Minor cleanup of new/closed socket handling
- fa6c4fb Add connect() and getsockopt() mock system calls and fix found bugs
- 5367fde Add listen() mock system call
- b682bed Add bind() and setsockopt() mock system calls
- 417cada Add socket() and fcntl() mock system calls and found bugs
- 82a7b9e Minor socket improvements and fixes
- 230ecc7 Add some easy test cases that were missed
- 5297104 Get rid of non-ConfigManager constructors
- c4d5311 Add sysinfo() and times() mock system calls
- 78bf497 Fix Windows PathImpl bug found by last change
- e7036c6 Add fts_read() and remove() mock system calls
- b0e92a8 Add getenv() mock system call and improve MockSystem
- 3ea99ed Mocked Linux system calls for unit tests
- 0e59e6e Remove the DownCast() function from fly.h
- 33158f1 Missed a couple places that can use FLY_OS_IMPL_PATH
- 38922e7 Rename DEFINE_PTRS to FLY_PTRS
- 890873a Remove top-level impl header files
- 2bbbd51 When an error occurs reading CPU stats, don't cache the read values
- 6eb0f7d Update to gcc 7
- 7aaff3e Ignore vscode files
- 8a6d050 Update googletest to work with latest VS release
- 64a4d39 String - fix compiler warning on Windows
- 1a9ce51 Merge pull request #4 from trflynn89/system_monitor
- d4d8af7 The system have been idle before the test
- 431b693 Linux - Only fail system CPU polling if all values are 0
- e8b1753 Travis is failing to read system CPU
- 8fbe2e3 Linux - Abstract Monitor class
- 77de7f4 Windows - Abstract Monitor class
- 92d214a Windows - Expose CPU count
- d314e51 Linux - Gather system CPU usage and expose CPU count
- 4be8dcd Windows - Gather both system and process CPU usage
- 12f743f Atomic load/store is implemented for doubles
- 2e9572d Windows CPU and memory monitoring
- 8357bb2 Linux memory monitoring
- 4157a0f Lin...