Skip to content

v0.1.0

Latest

Choose a tag to compare

@Bronek Bronek released this 23 Aug 19:22
· 1 commit to main since this release
v0.1.0
f9f9284

What's Changed

  • Add CMake files, dummy sources, clang-format & github format check by @Bronek in #2
  • Add basic monadic operations by @Bronek in #3
  • Add coverage reporting, small updates in README by @Bronek in #7
  • Add clang to github workflow by @Bronek in #9
  • Move clang options to CMake file by @Bronek in #10
  • Upgrade clang format by @Bronek in #12
  • Major refactor by @Bronek in #11
  • Rewrite not_tuple, add FWD macro by @Bronek in #13
  • Split inspect_error from inspect by @Bronek in #15
  • Define concepts by @Bronek in #17
  • Remove unused concept similar_expected by @Bronek in #19
  • Yet another take at retry coverage report upload by @Bronek in #20
  • Filter operation by @godexsoft in #14
  • Reformat for 120 columns by @Bronek in #24
  • Add simple examples for filter by @godexsoft in #26
  • Add overload utility by @Bronek in #27
  • Rename closure to pack and refactor by @Bronek in #28
  • Use static_check util by @godexsoft in #25
  • Implement polyfills for expected and optional by @Bronek in #29
  • Use static_check util in a few more places by @godexsoft in #30
  • Add [[nodiscard]] by @Bronek in #31
  • Implement pack support by @Bronek in #32
  • Switch type discriminator to std::in_place_type by @Bronek in #33
  • Upgrade gcovr by @Bronek in #37
  • Implement choice monad by @Bronek in #36
  • Update codecov badge by @Bronek in #42
  • Switch coverage to unit tests only by @Bronek in #43
  • Extend invoke to support sum and pack by @Bronek in #44
  • Add license scan report and status by @fossabot in #46
  • Add workflow for license compliance, update codecov workflow by @Bronek in #47
  • Fix gcc-13 compilation error on MacOS/Nix by @Bronek in #48
  • Switch coverage to lcov by @Bronek in #49
  • Send native gcov files to codecov by @Bronek in #50
  • Add support for sum to other monads by @Bronek in #38
  • Upgrade to clang 18 by @Bronek in #57
  • Use CMake FetchContent for Catch2 by @godexsoft in #56
  • Remove unused includes by @Bronek in #58
  • Remove support for [](std::in_place_type, T) functions by @Bronek in #59
  • Update ISC wording by @Bronek in #64
  • Update readme with devcontainer reference by @Bronek in #65
  • Define sum<> unit by @Bronek in #60
  • Improve gcov command line by @Bronek in #68
  • Improve sum support in optional by @Bronek in #67
  • Update README.md by @Bronek in #70
  • Add Ripple to Acknowledgments section by @Bronek in #71
  • Implement multi-dispatch by @Bronek in #69
  • Add lift functions by @Bronek in #73
  • Add support for multidispatch in fn::invoke and fn::invoke_r by @Bronek in #72
  • Swap functor arguments by @Bronek in #74
  • Add value_or functor by @Bronek in #75
  • Add identity lift function by @Bronek in #76
  • Experimental Nix support by @godexsoft in #77
  • Update clang-format to version 18 by @Bronek in #79
  • Make tooling available thru nix by @godexsoft in #78
  • Add build workflow for nix by @Bronek in #81
  • Enable clang build in nix workflow by @Bronek in #82
  • Doxygen/znai integration by @godexsoft in #35
  • Bump Catch2 version, minor build fix by @Bronek in #87
  • Upgrade workflows by @Bronek in #90
  • Switch to default runners by @Bronek in #91
  • Add CI containers by @Bronek in #92
  • Fix CI workflow by @Bronek in #93
  • Switch Dockerfiles from -slim to full Debian image by @Bronek in #94
  • Try different runner by @Bronek in #96
  • Compatibility with Windows x64 data model. by @InCom-0 in #97
  • Fix Catch2.cmake by @Bronek in #99
  • Tests cleanup by @Bronek in #89
  • Add pre-commit support, and fix end of line and file issues by @Twon in #120
  • Replace clang-format with pre-commit by @Bronek in #123
  • Replace edge wish sha by @Bronek in #124
  • Change tag for ci-build by @Bronek in #125
  • Update suffix tag by @Bronek in #126
  • Update docs image, move it to hub.docker.com/u/libfn by @Bronek in #129
  • Install Catch2 in docs image by @Bronek in #130
  • Switch pre-commit base image to bookworm-slim by @Bronek in #131
  • Refactor CI workflows by @Bronek in #132
  • Add sparse checkout by @Bronek in #133
  • Set shell in actions by @Bronek in #134
  • Fix platform by @Bronek in #135
  • Add labels and libfn.org/ci by @Bronek in #136
  • Fix labels by @Bronek in #137
  • Documentation updates by @Bronek in #138
  • Fix main index page by @Bronek in #139
  • Add missing ci/index by @Bronek in #140
  • Fix footer by @Bronek in #141
  • Exclude ci/ from license scan by @Bronek in #142
  • Update README.md by @Bronek in #143
  • Add more compilers by @Bronek in #145
  • Upgrade to Doxygen 1.12.0 by @Bronek in #146
  • Build doxygen from sources for arm64 by @Bronek in #147
  • Move doxygen build by @Bronek in #148
  • Dockerfile improvements for Catch2 by @Bronek in #149
  • Allow manual coverage run by @Bronek in #151
  • Run coverage on every push to main by @Bronek in #152
  • Refactor, move include/functional to include/fn by @Bronek in #150
  • Add curl & jq to CI images by @Bronek in #154
  • Update runners on ci- workflows by @Bronek in #157
  • Update workflow runners, add clang-20 by @Bronek in #158
  • Disable image generation workflows outside of main branch by @Bronek in #159
  • Add discard functor by @godexsoft in #162
  • Add gcc-15 to ci-build by @Bronek in #163
  • Add gcc-15 to build by @Bronek in #164
  • Coverage options by @Bronek in #165
  • Move containers to libfn.azurecr.io by @Bronek in #166
  • Complete switch to libfn.azurecr.io by @Bronek in #167
  • Add comment in ci-build.yml by @Bronek in #168
  • Upgrade to stable nix pkgs by @godexsoft in #170
  • C++20 compatible polyfill for <expected> by @Bronek in #155
  • Add has_error() to expected by @Bronek in #171
  • CI platform upgrades (clang-21) by @Bronek in #172
  • Add clang-21 to build by @Bronek in #173
  • Fix monadic functions for move-only types by @Bronek in #174
  • Improve support for move only types by @Bronek in #175
  • Add polygon puzzle to examples by @Bronek in #177
  • Add .clangd by @Bronek in #178
  • Add clang-22 and fix CI actions by @Bronek in #179
  • Run new clang versions on Trixie by @Bronek in #180
  • Fix clang-22 CI build by @Bronek in #181
  • Upgrade clang builds to version 22, upgrade macOS builds by @Bronek in #182
  • Improve and refactor examples/polygon by @Bronek in #184
  • Add gcc-16 to build images by @Bronek in #185
  • Fix ci/gcc/Dockerfile by @Bronek in #186
  • Fix ci-build workflow by @Bronek in #187
  • Add gcc-16 to builds workflow by @Bronek in #188
  • Fixes and code cleanup for include/pfn/expected.hpp by @Bronek in #189
  • Upgrade clang-format to 22 by @Bronek in #190
  • Fix pfn::expected<void, E> constructor from expected<void, G> by @Bronek in #191
  • Refactor pfn::expected to move storage to a separate class by @Bronek in #192
  • Add all dependencies of gnupg to CI by @Bronek in #195
  • Add all dependencies of gnupg by @Bronek in #196
  • Complete Catch2 upgrade to 3.14.0 by @Bronek in #197
  • Add unzip to CI images by @Bronek in #198
  • Switch SonarCloud to workflow by @Bronek in #194
  • Add gcovr to build images by @Bronek in #200
  • Fix pip install in gcc images by @Bronek in #201
  • Add coverage to sonarcloud workflow, overall build improvements by @Bronek in #199
  • More refactoring of pfn::expected by @Bronek in #193
  • More refactoring of pfn::expected by @Bronek in #203
  • Remove noexcept from ~_storage() by @Bronek in #204
  • Add sanitizers to clang by @Bronek in #206
  • Cleanup in cmake/CompilationOptions.cmake by @Bronek in #205
  • Add valgrind and pre-commit to gcc / clang images by @Bronek in #207
  • Add sonarcloud-pr-scan for PRs from forks by @Bronek in #208
  • Switch clangd to compile_commands.json in project root by @Bronek in #209
  • Improve comment by @Bronek in #211
  • Add conan to CI images by @Bronek in #213
  • Add CI images for clang with libstdc++ by @Bronek in #214
  • Add CI images with Bazel by @Bronek in #215
  • CI images improvements by @Bronek in #216
  • Fix ci-docs by @Bronek in #217
  • Add C++20 compilation mode, add packaging for conan and vcpkg with tests. by @Bronek in #212
  • Packaging and workflows improvements by @Bronek in #218
  • Bump actions/checkout from 4.3.1 to 6.0.3 by @dependabot[bot] in #219
  • Bump actions/download-artifact from 4.3.0 to 8.0.1 in /.github/actions/merge-ci-images by @dependabot[bot] in #224
  • Bump actions/deploy-pages from 4.0.5 to 5.0.0 by @dependabot[bot] in #223
  • Bump actions/configure-pages from 4.0.0 to 6.0.0 by @dependabot[bot] in #220
  • Bump actions/download-artifact from 4.3.0 to 8.0.1 by @dependabot[bot] in #221
  • Bump cachix/install-nix-action from 30 to 31 by @dependabot[bot] in #222
  • Add more compilers on MacOS, refactor CompilationOptions.cmake by @Bronek in #225
  • Fix _invoke_type_result_result fallback name in variadic_union.hpp by @Bronek in #226
  • Migrate build jobs to WarpBuild by @Bronek in #227
  • Always construct _storage_union_t via explicit ctor; remove uninitialized default by @Bronek in #228
  • Fixed default template parameters for value_or/operator= in pfn::expected by @Bronek in #236
  • Bump SonarSource/sonarqube-scan-action from 8.1.0 to 8.2.0 by @dependabot[bot] in #229
  • Bump actions/upload-pages-artifact from 3.0.1 to 5.0.0 by @dependabot[bot] in #230
  • Bump codecov/codecov-action from 4.6.0 to 7.0.0 by @dependabot[bot] in #232
  • Bump docker/metadata-action from 5.10.0 to 6.1.0 in /.github/actions/merge-ci-images by @dependabot[bot] in #235
  • Bump actions/upload-artifact from 4.6.2 to 7.0.1 in /.github/actions/build-ci-image by @dependabot[bot] in #234
  • Bump docker/metadata-action from 5.10.0 to 6.1.0 in /.github/actions/build-ci-image by @dependabot[bot] in #233
  • Install Node.js 24 from nodesource by @Bronek in #237
  • Pin libfn.azurecr.io CI images to commit SHA by @Bronek in #238
  • Bump actions/upload-artifact from 4.6.2 to 7.0.1 by @dependabot[bot] in #231
  • ci: make non-ci workflows fork-friendly by @Bronek in #239
  • Make codecov and sonarcloud workflows fork-friendly by @Bronek in #240
  • docs: de-duplicate toolchain setup and clarify versioning pointer in README by @Bronek in #248
  • Bump actions/checkout from 6.0.3 to 7.0.0 by @dependabot[bot] in #241
  • Bump docker/login-action from 3.7.0 to 4.2.0 in /.github/actions/build-ci-image by @dependabot[bot] in #242
  • Bump docker/setup-qemu-action from 3.7.0 to 4.1.0 in /.github/actions/build-ci-image by @dependabot[bot] in #243
  • Bump docker/build-push-action from 6.19.2 to 7.2.0 in /.github/actions/build-ci-image by @dependabot[bot] in #244
  • Bump docker/setup-buildx-action from 3.12.0 to 4.1.0 in /.github/actions/build-ci-image by @dependabot[bot] in #245
  • Bump docker/login-action from 3.7.0 to 4.2.0 in /.github/actions/merge-ci-images by @dependabot[bot] in #246
  • Bump docker/setup-buildx-action from 3.12.0 to 4.1.0 in /.github/actions/merge-ci-images by @dependabot[bot] in #247
  • Fix the pr-scan post-step crash and SonarCloud blame failure by @Bronek in #249
  • Full support for C++20 compilers by @Bronek in #202
  • Suppress SonarCloud cpp:S5145 and cpp:S3659 false positives by @Bronek in #251
  • Update CLAUDE.md C++20 status, feature+tests convention, streamlining by @Bronek in #252
  • Implement optional C++26 polyfill by @Bronek in #176
  • Rebase fn::optional onto pfn's base and enforce fn superset of pfn by @Bronek in #253
  • Make the docs Pages deploy safe to re-run by @Bronek in #255
  • Make the in-place constructors of sum and choice explicit; clear the SonarQube issue backlog by @Bronek in #256
  • Implement P3168 optional range support by @Bronek in #257
  • Packaging fixes: Bazel 9 support, document options required by consumers, set options in conan by @Bronek in #259
  • Add x64-windows/MSVC lane to the vcpkg package test by @Bronek in #258
  • Switch GNU sanitizers to dynamic linking, enable GCC ubsan by @Bronek in #269
  • Add CHANGELOG.md, add examples/readme and display it in README.md, CLAUDE.md update by @Bronek in #267
  • Bump fossas/fossa-action from 1.9.0 to 2.0.0 by @dependabot[bot] in #260
  • Bump docker/login-action from 4.2.0 to 4.4.0 in /.github/actions/build-ci-image by @dependabot[bot] in #261
  • Bump docker/metadata-action from 6.1.0 to 6.2.0 in /.github/actions/build-ci-image by @dependabot[bot] in #262
  • Bump docker/build-push-action from 7.2.0 to 7.3.0 in /.github/actions/build-ci-image by @dependabot[bot] in #263
  • Bump docker/setup-qemu-action from 4.1.0 to 4.2.0 in /.github/actions/build-ci-image by @dependabot[bot] in #264
  • Bump docker/metadata-action from 6.1.0 to 6.2.0 in /.github/actions/merge-ci-images by @dependabot[bot] in #265
  • Bump docker/login-action from 4.2.0 to 4.4.0 in /.github/actions/merge-ci-images by @dependabot[bot] in #266
  • Fix operator& for non-void expected carrying the sum<> unit error by @Bronek in #271
  • Add the RPN calculator example by @Bronek in #270
  • Implement the tuple protocol for fn::pack by @Bronek in #274
  • Add the associated expected types into namespace fn by @Bronek in #275
  • Broaden the feature-and-tests commit rule to cover fixes by @Bronek in #288
  • Switch codecov ingestion to the gcovr aggregate report by @Bronek in #292
  • Fix ambiguous partial specialization when appending a sum to a pack by @Bronek in #295
  • Constrain in_place_type construction of sum and choice on the argument list by @Bronek in #296
  • Constrain the callback of the sum-case transform and transform_error by @Bronek in #297
  • Give sum_value and sum_error a noexcept specification by @Bronek in #298
  • Let C++20 rewriting synthesize sum's operator!= by @Bronek in #299
  • Compute a real noexcept for the sum, pack and choice surface by @Bronek in #300
  • Propagate noexcept through the verbs and operator| by @Bronek in #301
  • Make operator& promise only what joining actually promises by @Bronek in #302
  • Constrain the relocating verbs on what they actually relocate by @Bronek in #303
  • Add assignment to sum, with the strong exception guarantee by @Bronek in #304
  • Ask of a sum alternative the same question its initialization answers by @Bronek in #305
  • Answer convertible_to_unexpected for void instead of hard-erroring by @Bronek in #306
  • Drop the caller when a callback's result has no place in a sum by @Bronek in #307
  • Clean up unit tests: uniform coverage, then uniform structure by @Bronek in #286
  • Run linux package tests on arm64 runners by @Bronek in #313
  • Assign the held alternative with its own operator= by @Bronek in #312
  • Add widening assignment to sum and choice by @Bronek in #317
  • Bump docker/setup-buildx-action from 4.1.0 to 4.2.0 in /.github/actions/merge-ci-images by @dependabot[bot] in #316
  • Bump docker/setup-buildx-action from 4.1.0 to 4.2.0 in /.github/actions/build-ci-image by @dependabot[bot] in #315
  • Bump cachix/install-nix-action from 31.10.6 to 31.10.7 by @dependabot[bot] in #314
  • Make optional and expected assignment conditionally trivial by @Bronek in #320
  • Add a value operator= to sum and choice by @Bronek in #322
  • Add emplace to sum and choice by @Bronek in #324
  • Add the C++26 apply trait family to pfn by @Bronek in #327
  • Rename invoke to apply by @Bronek in #329
  • Pin unpacking of tuple-like sum alternatives in apply by @Bronek in #330
  • Reject a nested pack element in pack by @Bronek in #333
  • Fix the pack docs reference and validate docs on pull requests by @Bronek in #331
  • Build pull request coverage at the head, and pin it by @Bronek in #334
  • Diagnose sort-key collisions in type normalization by @Bronek in #336
  • Refer to test dimensions where they are defined by @Bronek in #335
  • Add apply_type and apply_type_r to sum and choice by @Bronek in #337
  • Run the codecov jobs on whatever the platform provides by @Bronek in #338
  • Run the sonarcloud jobs on arm64 by @Bronek in #340
  • Add the apply family to optional and expected, with trailing arguments throughout by @Bronek in #343
  • Answer, short-circuit and dispatch over an empty sum side by @Bronek in #345
  • Rename sum to copack by @Bronek in #348
  • Collapse differing choice results of and_then into the superset by @Bronek in #353
  • Remove macOS 14 support by @Bronek in #355
  • Add just and curate the verbs across the identity cluster by @Bronek in #354
  • Join heterogeneous expected and optional branches in and_then and or_else by @Bronek in #356
  • Answer instead of asserting in the and_then functor's cluster probe by @Bronek in #358
  • Wrap the library in the ABI-versioning inline namespace by @Bronek in #360
  • Pin pfn to the mode-less ABI namespace by @Bronek in #361
  • Add the LIBFN_CXX26 std::type_order mode by @Bronek in #362
  • Bump actions/checkout from 7.0.0 to 7.0.1 by @dependabot[bot] in #363
  • Bump SonarSource/sonarqube-scan-action from 8.2.0 to 8.2.1 by @dependabot[bot] in #365
  • Bump cachix/install-nix-action from 31.10.7 to 31.11.0 by @dependabot[bot] in #364
  • Make just construction implicit and rename fn::identity to fn::conjoin by @Bronek in #366
  • Short-circuit the join over an uninhabited value side by @Bronek in #369
  • Add the disjunction and admit the identity cluster in both operators by @Bronek in #370
  • Add CHANGELOG entries for #366, #369 and #370 by @Bronek in #371
  • Review and tighten the unit tests since the #85 cleanup by @Bronek in #373
  • Add explicit element types to as_pack by @Bronek in #375
  • Add carrier conversions through or_else and and_then by @Bronek in #378
  • Add CHANGELOG entries for #375, #377 and #376 by @Bronek in #379
  • Deduce the expected operand of the comparison against a value by @Bronek in #382
  • Reach the uninhabited value side, split the folds, and compare packs by @Bronek in #383
  • Conjoin two ungraded error types into their sum by @Bronek in #385
  • Bump docker/login-action from 4.4.0 to 4.5.2 in /.github/actions/merge-ci-images by @dependabot[bot] in #387
  • Bump docker/login-action from 4.4.0 to 4.5.2 in /.github/actions/build-ci-image by @dependabot[bot] in #386
  • Fill in the Doxygen stanzas across include/fn and include/pfn by @Bronek in #388
  • Put python and znai 1.91 in the docs image by @Bronek in #389
  • Repin the CI images onto the refreshed build by @Bronek in #390
  • Add TYPE_ALGEBRA by @Bronek in #359
  • Restore the operator listings and drop the unneeded exemptions by @Bronek in #391
  • Carry the C++26 requirement to conan consumers of fn_cxx26 by @Bronek in #397
  • Document how to build, name the C++26 entry point, and fix the docs-site alerts by @Bronek in #395
  • Bump docker/login-action from 4.5.2 to 4.6.0 in /.github/actions/build-ci-image by @dependabot[bot] in #399
  • Bump docker/login-action from 4.5.2 to 4.6.0 in /.github/actions/merge-ci-images by @dependabot[bot] in #400
  • Open the 0.1 release cycle at 0.1.0-rc1 by @Bronek in #398
  • Bump cachix/install-nix-action from 31.11.0 to 31.11.1 by @dependabot[bot] in #401
  • Open the 0.1.0 release cycle by @Bronek in #403

New Contributors

Full Changelog: https://github.com/libfn/functional/commits/v0.1.0