Landing: 1b722d3b41f1
Project / Subsystem
gcc / algol68
Date
2026-07-20
Author
chris hermansen
Commit
1b722d3b41f1699b3d60db6747e234412b314e02
Source
github
Perf win
Yes
Breaking
No
All attributes
- project
- gcc
- subsystem
- algol68
- patch_id
- —
- commit_hash
- 1b722d3b41f1699b3d60db6747e234412b314e02
- source_type
- github
- headline
- algol68: New 'whole' procedure implementation from Revised Report
- tldr
- Replaces the old 'whole' procedure with a more robust and efficient version based on the Algol68 Revised Report.
- author
- chris hermansen
- outcome
- committed
- performance_win
- true
- breaking_change
- false
- series_id
- —
- series_parts
- []
- tags
-
- • algol68
- • compiler bug
- • integer conversion
- discussion_id_link
- —
- bugzilla_pr
- —
- date
- 2026-07-20T00:00:00.000Z
GCC’s Algol68 compiler has a new implementation for the whole procedure, based on the Revised Report. This version addresses a critical bug in the previous implementation where it failed for negative values closest to the minimum integer, due to an incorrect application of the ABS operator on two’s complement systems. The new implementation avoids ABS and processes numbers left-to-right, using string concatenation or length determination for efficiency, and is immune to the overflow issue with ABS(minimum_integer).