Author here. I could not find a constructive‑reals calculator on iPhone, so I ported the engine Android uses: Hans Boehm's com.hp.creals plus AOSP's UnifiedReal/BoundedRational. Used Opus 4.8 to do the port and Fable 5 for the review.
Fable 5 caught a couple of real concurrency bugs the port introduced while adapting Java's synchronized/AsyncTask to Swift concurrency, including one that was a memory‑safety bug on shared singletons like π, not just a wrong digit. None would have shown up in the unit tests. Writeup has the details.
It's an early iPhone TestFlight beta (link in the post); happy to go deep on either the constructive‑reals side or the AI‑assisted‑dev side.
The old HP calculators, and their emulators, have a computer algebra system, for symbolic maths, that supported this. The user interfaces leave much to be desired, but some also have reverse Polish notation!
Very interesting, thank you for posting! I'm curious - roughly how many tokens do you think you used during the initial port and subsequent bug hunting and fixes?
btw if you turn the iphone calc into landscape mode and switch you scientific calc it does Ramanujan's constant without rounding, but stops after the twelve 9s.
> I built one, by porting Boehm’s engine.
> It’s 2026, so I didn’t hand-write the port. I directed Opus 4.8 to translate the source line by line into Swift
I wish I could filter out stuff like this. Cool work by Hans Boehm, but what's the value add in this blog post.
11 comments
[ 2.3 ms ] story [ 28.8 ms ] threadFable 5 caught a couple of real concurrency bugs the port introduced while adapting Java's synchronized/AsyncTask to Swift concurrency, including one that was a memory‑safety bug on shared singletons like π, not just a wrong digit. None would have shown up in the unit tests. Writeup has the details.
It's an early iPhone TestFlight beta (link in the post); happy to go deep on either the constructive‑reals side or the AI‑assisted‑dev side.
Hans is such a prolific programmer that he wrote a Java library before Java was even invented?
I wish I could filter out stuff like this. Cool work by Hans Boehm, but what's the value add in this blog post.