Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
18 changes: 18 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,21 @@
# t4a-faer 0.27.0 (tensor4all fork; with t4a-faer-traits 0.24.2)

Changes since `t4a-faer` 0.26.0 (tag `faer-v0.26.0`). Numbers are tensor4all/faer issues or PRs; each change has its row in `PATCHSET.md`.

## Breaking: threadteam 0.2 (#158)

The public API carries threadteam's types (`Par::Team(threadteam::TeamExec)`,
`ParShape::Team(_, threadteam::DispatchCosts)`), and the requirement is now `threadteam` 0.2. A crate
that builds its `Pool`/`Team` with threadteam 0.1 and lends it to faer must move to threadteam 0.2
together with this release; no faer signature changes otherwise. With threadteam 0.2, `with_team`
called repeatedly at one width reuses the threads of a cached pool instead of spawning and joining a
fresh set (#107).

## Correctness

- The values-only SVD no longer allocates on the heap: dqds takes its work arrays from the caller's
`MemStack` (included in `svd_scratch`) and sorts without a heap buffer (#156, #157).

# t4a-faer 0.26.0 (tensor4all fork; with t4a-faer-traits 0.24.2)

Changes since `t4a-faer` 0.25.2 (tag `faer-v0.25.2`). Numbers are tensor4all/faer issues or PRs; each change has its row in `PATCHSET.md`.
Expand Down
2 changes: 1 addition & 1 deletion Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

13 changes: 12 additions & 1 deletion PATCHSET.md
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,7 @@ gate has changed and two kinds of adoption are now in the ledger.
| Workspace | `faer-ffi` is excluded (the C API and its cbindgen build are unused by tensor4all). |
| Upstream base | Synced with Codeberg `0ecd846` (2026-10-17) by a merge commit, so `upstream/main` is an ancestor of this branch. Those nine upstream commits since the previous base `ddbd2ae` (the sparse CSC example doc, `MatMut::from_row_major_slice_with_stride_mut`'s strides, the CG/BiCGSTAB uninitialized read) were written upstream by Paul and Connor Smith and had already been cherry-picked here on 2026-10-22 in `9f3dc58`, `ae9b979` and `064016e` (their messages name Codeberg #305, #326 and `1b2d9a9`; the tests `codeberg_305`/`codeberg_326` came with them). The direction is upstream to fork, not the reverse: nothing was fed back upstream. The cherry-picked content is byte-identical to upstream's, so the sync changes no file -- the merged tree hash equals the pre-merge tree hash. Later syncs record the new base here. |
| Publication | crates.io, in the order `t4a-faer-traits` then `t4a-faer`. Releases are tagged `faer-v<faer version>` and published by hand from a clean checkout of the tag; a `v<faer version>` tag would also start `publish.yml`. A version that is already on crates.io is skipped, so a release that bumps only one crate still succeeds. |
| Released | Latest: `t4a-faer 0.26.0` with `t4a-faer-traits 0.24.2`, published from the commit tagged `faer-v0.26.0` (see the release section at the end). The published `src/**` is byte-identical to the tagged commit, so that commit is the revision a consumer pins. A later commit needs a new version. Earlier releases carry their own `faer-v<version>` tags. |
| Released | Latest: `t4a-faer 0.27.0` with `t4a-faer-traits 0.24.2`, published from the commit tagged `faer-v0.27.0` (see the release section at the end). The published `src/**` is byte-identical to the tagged commit, so that commit is the revision a consumer pins. A later commit needs a new version. Earlier releases carry their own `faer-v<version>` tags. |
| LICENSE | A `LICENSE` copy lives in each crate directory so the published archive ships the MIT text (`license-file` next to `license` makes Cargo warn). |

## Experiments
Expand Down Expand Up @@ -271,3 +271,14 @@ also marks the `t4a-faer-traits` 0.24.2 source. The minor version moves because
`Par::Rayon`, `Par::rayon`, `ParShape::Rayon` and `ParShape::rayon` (`README.md`: published versions
follow semver). `CHANGELOG.md` lists the changes since `faer-v0.25.2` and the migration; the evidence
lives in each PR and its ledger row above. This release adds no code.

## Released: `t4a-faer` 0.27.0 (2026-10-30)

`t4a-faer` 0.27.0; `t4a-faer-traits` stays 0.24.2 (no change in `faer-traits/`). Published from the
merge commit of the version-bump PR, tagged `faer-v0.27.0`. The minor version moves because the public
API carries threadteam's types (`Par::Team(threadteam::TeamExec)`, `ParShape::Team(_,
threadteam::DispatchCosts)`) and the requirement moved from threadteam 0.1 to 0.2 (#158): a crate that
builds its team with threadteam 0.1 and hands it to faer no longer compiles against this release, so
it cannot be a patch of 0.26. The release carries #157 (dqds work arrays from the caller's `MemStack`,
#156) and #158. `CHANGELOG.md` lists both; the evidence lives in their ledger rows above. This release
adds no code.
2 changes: 1 addition & 1 deletion faer/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "t4a-faer"
version = "0.26.0"
version = "0.27.0"
edition = "2021"
authors = ["sarah quiñones <sarah@veganb.tw>"]
description = "Temporary tensor4all fork of faer: an AI-driven experiment build for tenferro-rs."
Expand Down
Loading