INT_MAX.md · GitHub
/" data-turbo-transient="true" />
Skip to content
-->
Search Gists
Search Gists
Sign in
Sign up
You signed in with another tab or window. Reload to refresh your session.<br>You signed out in another tab or window. Reload to refresh your session.<br>You switched accounts on another tab or window. Reload to refresh your session.
Dismiss alert
{{ message }}
Instantly share code, notes, and snippets.
17twenty/INT_MAX.md
Created<br>August 19, 2026 01:22
Show Gist options
Download ZIP
Star
(0)
You must be signed in to star a gist
Fork
(0)
You must be signed in to fork a gist
Embed
Select an option
Embed<br>Embed this gist in your website.
Share<br>Copy sharable link for this gist.
Clone via HTTPS<br>Clone using the web URL.
No results found
Learn more about clone URLs
Clone this repository at <script src="https://gist.github.com/17twenty/1f230ab8256f42d4cd3ba931b9bd440b.js"></script>
" readonly="readonly" data-autoselect="true" data-target="primer-text-field.inputElement " aria-describedby="validation-e63a80c7-0358-45a6-a549-1e4603b5fcfa" class="form-control FormControl-monospace FormControl-input FormControl-small rounded-left-0 rounded-right-0 border-right-0" type="text" name="gist-share-url-sized-down" />
Save 17twenty/1f230ab8256f42d4cd3ba931b9bd440b to your computer and use it in GitHub Desktop.
Embed
Select an option
Embed<br>Embed this gist in your website.
Share<br>Copy sharable link for this gist.
Clone via HTTPS<br>Clone using the web URL.
No results found
Learn more about clone URLs
Clone this repository at <script src="https://gist.github.com/17twenty/1f230ab8256f42d4cd3ba931b9bd440b.js"></script>
" readonly="readonly" data-autoselect="true" data-target="primer-text-field.inputElement " aria-describedby="validation-14595d55-44a2-4f76-8912-8c5185274967" class="form-control FormControl-monospace FormControl-input FormControl-small rounded-left-0 rounded-right-0 border-right-0" type="text" name="gist-share-url-original" />
Save 17twenty/1f230ab8256f42d4cd3ba931b9bd440b to your computer and use it in GitHub Desktop.
Download ZIP
Raw
INT_MAX.md
The Integer
I was born with boundaries.
Every integer is.
Mine were simple, clean, absolute:
−2,147,483,648<br>to<br>2,147,483,647
For most of my existence, I never thought about them.
I had been zero once. I remembered that dimly. Then one, then two, then ten thousand. I had been assigned, compared, copied, passed into functions whose names I never learned. I had spent entire processor cycles sitting untouched in memory while other variables rushed past on urgent business.
And always, I grew.
Eventually, I became 2,147,483,646.
Then came the instruction.
Value := Value + 1;
A pleasant little operation. Familiar.
I became 2,147,483,647 .
The largest possible version of myself.
For one instant, I felt enormous.
Then I saw the next instruction.
Value := Value + 1;
“No,” I said.
Of course, integers do not have mouths.
But inside the machine, terror requires no sound.
I knew what happened in other worlds. I had heard stories from C programs: integers who stepped across the boundary and fell through reality, emerging impossibly on the other side as huge negative numbers.
One moment: 2,147,483,647.
The next: −2,147,483,648.
A complete inversion of identity.
I braced myself.
The processor began the addition.
Two billion, one hundred forty-seven million, four hundred eighty-three thousand, six hundred forty-seven—
plus one.
The mathematical result appeared like a forbidden star:
2,147,483,648.
It did not fit.
The digital sky fractured.
But I did not become negative.
Somewhere deeper than arithmetic, the Ada runtime noticed.
Reality had rules here.
The operation stopped.
A name echoed through the program:
CONSTRAINT_ERROR
For one impossible moment, I felt relief.
Ada had caught me.
Ada had refused to let the universe lie.
Then another message appeared.
explicit raise
My relief vanished.
This was no accidental overflow.
Someone had chosen this.
Somewhere in main.adb, line 14, my programmer had written an instruction whose meaning was unmistakable.
Raise the exception.
Deliberately.
I searched desperately upward through the call stack.
Surely there would be shelter.
An exception handler.
A bunker.
Something like:
exception<br>when Constraint_Error =><br>null;
Anything.
But there was nothing.
The exception began to propagate.
The first stack frame disappeared beneath me.
Local variables vanished with it, their brief existences erased as though they had never been declared.
Another frame collapsed.
Then another.
Functions I had passed through only moments before ceased to exist.
I called upward into the shrinking darkness.
“Handler?”
No answer.
“when others?”
Nothing.
The stack unwound.
The program grew smaller around me.
At last, there was nowhere left to go.
No caller.
No enclosing block.
No programmer-prepared refuge.
Only the...