Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

std: Convert deprecated aliases to compile errors and fix usages #19847

Open
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

squeek502
Copy link
Collaborator

@squeek502 squeek502 commented May 3, 2024

Deprecated aliases that are now compile errors:

  • std.fs.MAX_PATH_BYTES (renamed to std.fs.max_path_bytes)
  • std.mem.tokenize (split into tokenizeAny, tokenizeSequence, tokenizeScalar)
  • std.mem.split (split into splitSequence, splitAny, splitScalar)
  • std.mem.splitBackwards (split into splitBackwardsSequence, splitBackwardsAny, splitBackwardsScalar)
  • std.unicode
    • utf16leToUtf8Alloc, utf16leToUtf8AllocZ, utf16leToUtf8, fmtUtf16le (all renamed to have capitalized Le)
    • utf8ToUtf16LeWithNull (renamed to utf8ToUtf16LeAllocZ)
  • std.zig.CrossTarget (moved to std.Target.Query)

Deprecated lib/std/std.zig decls were deleted instead of made a @compileError because the refAllDecls in the test block would trigger the @compileError. The deleted top-level std namespaces are:

  • std.rand (renamed to std.Random)
  • std.TailQueue (renamed to std.DoublyLinkedList)
  • std.ChildProcess (renamed/moved to std.process.Child)

This is not exhaustive. Deprecated aliases that I didn't touch:

@squeek502 squeek502 force-pushed the deprecations-post-0.12 branch 4 times, most recently from c4d2276 to d592ce2 Compare May 3, 2024 20:34
@andrewrk
Copy link
Member

andrewrk commented May 7, 2024

Better to wait and merge this later in the release cycle as it makes it more difficult to cherry pick bug fixes into the 0.12.x branch.

@squeek502
Copy link
Collaborator Author

squeek502 commented May 7, 2024

Sounds good, in the meantime would a separate PR with just the callsite updates (but not the @compileErrors) be a good idea?

EDIT: Went ahead and made one just in case: #19892

@andrewrk
Copy link
Member

The 0.12.x branch is done, so all clear to proceed with your original intent here.

Deprecated aliases that are now compile errors:

- `std.fs.MAX_PATH_BYTES` (renamed to `std.fs.max_path_bytes`)
- `std.mem.tokenize` (split into `tokenizeAny`, `tokenizeSequence`, `tokenizeScalar`)
- `std.mem.split` (split into `splitSequence`, `splitAny`, `splitScalar`)
- `std.mem.splitBackwards` (split into `splitBackwardsSequence`, `splitBackwardsAny`, `splitBackwardsScalar`)
- `std.unicode`
  + `utf16leToUtf8Alloc`, `utf16leToUtf8AllocZ`, `utf16leToUtf8`, `fmtUtf16le` (all renamed to have capitalized `Le`)
  + `utf8ToUtf16LeWithNull` (renamed to `utf8ToUtf16LeAllocZ`)
- `std.zig.CrossTarget` (moved to `std.Target.Query`)

Deprecated `lib/std/std.zig` decls were deleted instead of made a `@compileError` because the `refAllDecls` in the test block would trigger the `@compileError`. The deleted top-level `std` namespaces are:

- `std.rand` (renamed to `std.Random`)
- `std.TailQueue` (renamed to `std.DoublyLinkedList`)
- `std.ChildProcess` (renamed/moved to `std.process.Child`)

This is not exhaustive. Deprecated aliases that I didn't touch:
  + `std.io.*`
  + `std.Build.*`
  + `std.builtin.Mode`
  + `std.zig.c_translation.CIntLiteralRadix`
  + anything in `src/`
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.

None yet

2 participants