Skip to content

Releases: trflynn89/libfly

3.3.0

30 Dec 17:45
Compare
Choose a tag to compare

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

04 Dec 20:13
Compare
Choose a tag to compare

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

08 Nov 16:54
Compare
Choose a tag to compare

Changes:

  • 65a95dc Version 3.1.1
  • baa04cd Fix flakiness of SequencedTaskRunner::maybe_post_task

This list of changes was auto generated.

3.1.0

06 Nov 18:08
Compare
Choose a tag to compare

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

26 Oct 21:27
Compare
Choose a tag to compare

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

18 Oct 00:17
Compare
Choose a tag to compare

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

15 Oct 20:46
Compare
Choose a tag to compare

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

13 Oct 19:13
Compare
Choose a tag to compare

Changes:

  • 77c522a Logger registry to store weak references to all loggers
  • 518eedf Version bump

This list of changes was auto generated.

2.0.0

12 Oct 14:29
Compare
Choose a tag to compare

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

1.0.0

15 Mar 17:30
8482b75
Compare
Choose a tag to compare

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