fix: ensure TO_STRING conversion functions do not panic (1.0.x) - #1905
Open
ghaith wants to merge 3 commits into
Open
fix: ensure TO_STRING conversion functions do not panic (1.0.x)#1905ghaith wants to merge 3 commits into
ghaith wants to merge 3 commits into
Conversation
ghaith
force-pushed
the
rusty-backport-4659
branch
from
September 8, 2026 13:53
bb803fb to
0cac305
Compare
Problem: The *_TO_STRING conversions cover only a few widths, format the short date and time types without their literal prefixes, and can panic on unexpected input or overflow their result buffers. Solution: Move the TO_STRING and STRING_TO declarations into dedicated standard library files, add the missing BOOL, integer and bit-string conversions with well defined result lengths, and format date and time values with their literal prefixes through one panic-free writer. Lengths are sized for the 64-bit nanosecond types used on this release line. Backport of #1903. Refs: PRG-4692 Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
…(1.0.x) Problem: The TO_STRING writers formatted through a 2047-byte slice built over the destination pointer, so a caller that hands LREAL_TO_STRING_EXT a shorter STRING lends out memory it does not own, and the REAL, LREAL and 64-bit-only date and time conversions still assumed a STRING[2048] result. The declared lengths were also hidden behind global constants that editor hovers do not resolve. Solution: Format through a writer that copies at most the declared result length behind the pointer, give the REAL, LREAL, LDT, LDATE and LTOD conversions exact result lengths, and spell every result length as a literal in the declaration.
Problem: LDT_TO_STRING and LDATE_TO_STRING returned bare ISO text while every other date and time conversion carries the literal prefix of its type. Solution: Emit the LDT# and LDATE# prefixes and size the declared results for them.
ghaith
force-pushed
the
rusty-backport-4692
branch
from
September 10, 2026 09:21
3ec06b1 to
d89de38
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Problem: The *_TO_STRING conversions cover only a few widths, format the short date and time types without their literal prefixes, and can panic on unexpected input or overflow their result buffers.
Solution: Move the TO_STRING and STRING_TO declarations into dedicated standard library files, add the missing BOOL, integer and bit-string conversions with well defined result lengths, and format date and time values with their literal prefixes through one panic-free writer. Lengths are sized for the 64-bit nanosecond types used on this release line.
Backport of #1903. Depends on #1904.
Refs: PRG-4692
🤖 Generated with Claude Code