MacSurf — a real NetSurf-based browser for Mac OS 9 (CSS3, ES5 JS, native HTTPS)

For the Altivec acceleration, I remember TenFourFox once made a point of advertising that it had used it in a _lot_ of places, including some you just described as not amenable to vectorization, which makes me wonder how that was done. I don't know how relevant or useful this observation may be, but I believe its source code is still public if you want to see the details. For that matter, I think the author (Cameron Kaiser of Floodgap Systems, if memory serves) still posts here sometimes, though I don't remember his username if so (the one I thought he uses doesn't come up in autocomplete).
Fair, I oversimplified that one. The thing is you don't really vectorize the JS engine or the cascade themselves, those are too branchy, but they lean on a ton of little string and memory routines underneath and those vectorize fine. Copying memory around, scanning a buffer for a character, UTF-8 to UTF-16 conversion, lowercasing, that sort of thing. A browser hits those constantly while parsing a page, so speeding them up ends up touching basically everything, which is probably why AltiVec looked like it was everywhere in TenFourFox even though the engine itself never was.
 
I was here before "Surf better. Now with integrated AI!!!". /s

This is awesome, can't wait to see how this evolves.
Unfortunately after you start the app and enter the URL you want to visit it just says "That's a great idea!" And "amazing insight, that's a fun website!" And never loads :(
 
Unfortunately after you start the app and enter the URL you want to visit it just says "That's a great idea!" And "amazing insight, that's a fun website!" And never loads :(
You forgot "Sure! Here you go!" followed by the URL text you entered and "would you like me to display the results to your screen?" where any response results in a response of "Oh, my mistake. You are insightful and correct to want the resulting rendered output. Here you go!" followed by a variation on the same.
 
Bong. Yeah, all that.

I do wish it was as easy as vibecoding a simple website and I'm not saying I'm doing something impressive it just took a little more work than that.
 
You have the last release? I see macintoshgarden and I did a little bit of targeting fixes on these so it should load properly for the most part.
 
CW8 miscompiles the pure integer version on PPC
How can a compiler miscompile pure integer code? Floating point should only happen when there's a floating point variable, or a floating point literal (a number with a decimal point) or a function call that takes or returns floating point variables.
 
That's great, because a few of my favorite machines I have run 8.6. Anything sub 500Mhz seems to run 9 poorly, so I avoid it.

FWIW I’ve developed a TLS proxy and web browser combo known as CherryBrowse and TLS Bomber. These focus on readability rather than trying to support modern HTML5, JavaScript and CSS.

This project is exciting as it aims to go beyond that. Also it's being developed rapidly so hopefully there's things I can learn from the code/methods used. TLS 1.3 is particularly exciting.

Three quick reflections, noting that I’m overseas right now and haven’t yet had a chance to try this browser:
  • In my experience, a 266 MHz G3 (Wallstreet/PDQ) is plenty fast for my browser and OS 9. I have 256 MB RAM and am using a CF card as the hard drive, but that’s all. IMO all G3s are capable of running OS 9 quite well.
  • Most of the speed gains I found came from optimising the “pumps” rather than raw CPU performance. Open Transport and cooperative multitasking are where the real challenges lie. A few inefficient waits or poorly handled edge cases can make a browser feel painfully slow, or even freeze the machine, long before CPU speed becomes the bottleneck.
  • Agree with OP on the usage of AI. I mostly use it to drill through old libraries and learn about how quirky OS 9 is to build for. IMO if you’re not using it for this sort of project then you’re crippling yourself (unless you’re a coding guru from the 90s with a lot of time on your hands… but that person hasn’t magically appeared yet).
 
Back
Top