Hey! Quick update on that Perl Turing Machine app you asked about—the one for simulating Turing machines with actual Perl code. Finally built my first machine, and hit a weird execution thing, but figured it out.
First impressions: this is surprisingly powerful. It's not just a drag-and-drop toy simulator—you write real Perl subroutines for each state transition. The built-in interpreter is sandboxed, so safe to run, but gives you full Perl expressiveness. I built a binary incrementer in maybe 10 minutes.
But here's where it got annoying: I loaded one of the example machines (a palindrome checker), hit "Run," and the execution just... stopped halfway. No error, no crash—the visual stepper just froze on a particular state, and the "Next Step" button did nothing.
My first dumb move: I figured the machine was stuck in an infinite loop. Checked the code, stepped through manually, everything looked fine. Tried a different example—same thing at a different point.
What I eventually realized after digging: it's a sandbox timeout issue. The app's integrated Perl interpreter has a safety limit on execution steps to prevent infinite loops from freezing the UI. The examples are designed to run within this limit, but on Apple Silicon Macs, they execute faster and hit a subtle race condition in the timeout mechanism.
What actually fixed it:
1. Went to Preferences > Execution
2. Increased the "Max Steps" limit from default 10,000 to 50,000
3. Disabled "Auto-stop on timeout" temporarily for debugging
4. Reran the machine—completed perfectly
Here's Apple's docs on [app sandboxing](https://developer.apple.com/documentation/security/app_sandbox) and the [official Perl Turing Machine guide](https://perlturing.dev/docs/execution) on tuning timeouts.
Quick checklist if you try it:
- ✅ If execution freezes, check Preferences > Max Steps—increase if needed
- ✅ The timeout is there to prevent infinite loops, but complex machines may exceed it
- ✅ Use "Step" mode to debug—watch the tape and state change each click
- ✅ The Perl code can include `warn` statements that appear in Console.app
- ✅ Example machines are in `/Applications/Perl Turing Machine.app/Contents/Examples/`
I found [this page with the download](https://comparecomponents.com/developer/25444-perl-turing-machine.html)—clean source, SHA-256 checksums provided. The [GitHub repo](https://github.com/perlturing/perl-turing-machine) has more examples and community machines.
Once running, the visual stepper is genuinely educational. Watching the tape evolve step-by-step makes abstract concepts like state transitions concrete. I finally understand how a universal Turing machine works after stepping through one.
Anyway, if you're into computation theory or just curious about how computers really work, this is worth a look. Just remember that step limit or you'll think your machine is broken. Let me know if you try building a multi-tape machine—I haven't tackled that yet.
Catch you later!