Skip to content

feat(strings): add CutLast - #525

Merged
paralin merged 1 commit into
s4wave:masterfrom
cogentcore:feat/strings-cutlast
Oct 24, 2026
Merged

paralin merged 1 commit into
s4wave:masterfrom
cogentcore:feat/strings-cutlast

Conversation

@rcoreilly

Copy link
Copy Markdown
Contributor

Go 1.27 adds strings.CutLast, which the strings override did not provide. Its parity ledger classified it as blocked, so any program that references it fails to compile with parity-blocked-use. That includes programs that only take its value, such as interpreter symbol tables generated for Go 1.27: the Cogent Core docs site, which embeds yaegi symbols for the standard library, stopped building after its symbols were regenerated for Go 1.27.

This implements CutLast like Cut, cutting at the last instance of sep, and classifies it as real since go1.27 so the ledger stays valid on older toolchains. It adds unit tests and a compliance test (strings_cutlast) whose output matches native Go.

Go 1.27 adds strings.CutLast, which the strings override did not
provide: its parity ledger classified it as blocked, so any program
that referenced it failed to compile with parity-blocked-use. This
includes programs that only take its value, such as interpreter
symbol tables generated for Go 1.27.

Implement CutLast like Cut, cutting at the last instance of sep, and
classify it as real since go1.27 so the ledger stays valid on older
toolchains. Add unit tests and a compliance test whose output matches
native Go.

Signed-off-by: Randall C. O'Reilly <oreilly@ucdavis.edu>
@paralin
paralin merged commit a1079a7 into s4wave:master Oct 24, 2026
7 checks passed
@rcoreilly
rcoreilly deleted the feat/strings-cutlast branch October 24, 2026 22:43
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants