A Strategy for better browsers on IRIX
#1
A Strategy for better browsers on IRIX
Been a while since we talked about this. I have a plan, of sorts, for this. I'm not gonna show my full hand of cards, but I am gonna cover the finer points and discuss this in a semi-competent manner.

So there's multiple challenges we face for IRIX here:
  • System speed varies from a 100MHz R4k Indy to a 1GHz Tezro -- clearly one size cannot fit all.
  • No SIMD. Brings serious media decoding challenges. 
  • Most browsers lack JITs for MIPS, and even more have Big-Endian issues.
  • GTK2/3 and QT both are ill-suited for IRIX due to a lack of hardware antialiasing.
  • Compiler fragmentation
  • No audio backend
  • Small install-base

So I'm gonna try to cover all of these, but it's late, I've been drinking, and a lot of stuff is running through my head.

Let's cover the first major issue. We need multiple options. Historically Dillo would be that. Dillo is abandoned however.

SGUG did port Netsurf with GTK3. There's also someone whose looking into a Motif frontend for Netsurf, which is far more palpable. GTK in general is a pig on IRIX. This would slot in as a more low-end option nicely. However, NS leaves a LOT to be desired. It's not 100% HTML compliant, and IIRC has no Javascript engine or a very limited one.

For a higher end option, we have three options from the big three: Webkit, Blink, and Gecko/Goanna

I have ruled out Blink. It's trash. Fuck Google. You can see why V8 and stuff is not portable if you want, I'm not smart enough to articulate.

Webkit does have better portability. There's Webkit for embedded systems too -- which could be helpful. The big issue with webkit is C++ revisions that are much higher than anything MIPSPro, the native IRIX compiler supports. C++14 or 17 looks to be a significant portion of webkit's codebase. This means a recent GCC, which has bugs that prevent good MIPS4 codegen, and while it has acceptable-to-great MIPS3 codegen, that does limit its potential performance especially on lower end R5000/R10000 models. LLVM's codegen isn't grand as of yet. Historically, LLVM's codegen hasn't been as good as GCC, and dare I say this lest I summon another troll like Bloody Mary... GCC is a one size fits all architecture. The platform codegen is usually inferior to many compilers. I've seen MIPSPro do much better. If you wanna sit on laurels and claim otherwise, I'm not going to bother convincing you. Let's not get into it.

Anyways, setting aside that, Webkit has GTK and QT versions. QT5 may be a better option, but it does appear to use similar text antialiasing routines that GTK relies on. That leaves me suspecting it too will not be performant as we need for systems. There is an FLTK Webkit version here: https://github.com/clbr/webkitfltk C++11 required, but it could use my GCC 4.8.5 port. that's good. FLTK could be a base, as it doesn't have the same issues GTK does. FOX, Motif, and a few others I'm forgetting are other options here too.

There's another full browser option in Webkit: Odyssey Web Browser, for MorphOS. It includes an EFL backend, so theoretically a motif or fltk version could be made for it.

For Gecko based stuff, I prefer to actually look at Goanna despite some very severe drawbacks I'll get into shortly. Gecko/Servo from Mozilla uses Rust. Rust, from my understanding, really wants unicode to work on an OS. That leaves out rustc, meaning there's other compilers for Rust that'd need to be explored. I don't think relying on Rust is sustainable, and I have an especially high disdain for it.

Goanna is thus a better option, this means Palemoon, Arctic Fox and others. The benefit is that we've got a track record of them supporting older OSes. While we would be likely required to maintain a downstream fork, Arctic Fox did reinstate MIPS JIT support. This is VERY good, if we can get it working for IRIX. That means faster JS performance.

Goanna's big drawbacks are an uncooperative, rude, childish upstream, port fragmentation, potentially more vulnerabilities/struggles due to an aging browser that may not be as close in standards compliance with Mozilla, etc.

However, Goanna is quite modular. It historically had Xlib support as Firefox/Mozilla for Solaris and others. This is good. As is the fact that some ports downstream of it take tenfourfox stuff and such. There's a lot of good here.

So let's set some expectations for such a browser: I don't think video is ever gonna be possible. SIMD is a major reason, as is JS, encodings etc. This is not surrmountable for IRIX easily. Audio though, should be.

So for audio, Goanna supports multiple userspace compatibility libraries. Including *gags* Pulse. I don't like it. I won't port it. I don't wanna use GNU/Linux trash on IRIX, but that's an option nonetheless. ALSA compat libs for FreeBSD exist, as do OSS and others.

The big issue here is time. Hobbyists don't port browsers easily. We are even unable to agree on whether tardists done the way we've done them for 20+ years is good, or to use hacks like EPM, or to use RPMs or whatever. We are not able to unify ourselves enough to get anything "big" done, and that's not just me bitching -- that's a reality. I have people behind me, but a few are college students with limited time, one is constantly dealing with a debilitating illness, and I have been struggling privately for the last few months. Couple that with a small install base, and my next point is a problem.

I'd estimate total, there's probably somewhere between 20,000 and 30,000 SGIs out there, most of them sitting in recyclers or medical institutions, and probably at best, 4,000 hobbyists, about 50% of whom are boomers who don't use anything but big tech social media. Fuck Facebook. at best, if 2,000 of us put together $10 for a browser, that's 20k. But start dwindling that number down, and consider the division of that among a team... that's a tiny amount.

So what we need is an alliance, of sorts. We need a browser with wide appeal that can be portable to other systems. We have to, sorry for this, rule out macOS and Windows users entirely. They have entirely different UI and programming conventions. macOS may bear a sticker screaming it's UNIX, but it's a schizophrenic mix of Mach, and it can't run motif or X out of the box. It's not a possible alliance, even with TenFourFox dead. They would be the brahmins, we would be the dalits. Solaris/Sun guys, potentially. Minimalist GNU/Linux users, perhaps? HP-UX, if they exist in any great number. Not VMS -- it's C compatibility is nightmare fuel. Anyone else got ideas? has to use X11, has to run motif or fltk, and have a following to bolster us.

If we could crowdfund and get even just 5,000 of us together to commit say, $25, we would have enough to get a port started. I'd pay gladly $100/year for a good browser developed by a private team myself, but that's just me. It may be possible to have a small team do a browser if we had that kind of money and userbase. 

Another idea I had, for instance, if we either got USB on IRIX in a good way, or even if we developed a Parallel port device for it instead: A small ASIC that can run JS and web assembly very efficiently. With a browser like this, you could offload the JS/web assembly compute to it.

Anyways, my point is that such a solution is nuanced, multifaceted, and we need to have a low, midrange and high end option for it. We need to have it actually making sense, be realistic to our usage, and likely one that's not 100% tailored specifically for IRIX, but for a range of hobbyists.

That's my thoughts and brain dump on this at least.

I'm the system admin of this site. Private security technician, licensed locksmith, hack of a c developer and vintage computer enthusiast. 

https://contrib.irixnet.org/raion/ -- contributions and pieces that I'm working on currently. 

https://codeberg.org/SolusRaion -- Code repos I control

Technical problems should be sent my way.
Raion
Chief IRIX Officer

Trade Count: (9)
Posts: 4,239
Threads: 533
Joined: Nov 2017
Location: Eastern Virginia
Website Find Reply
10-19-2021, 04:26 AM


Messages In This Thread
A Strategy for better browsers on IRIX - by Raion - 10-19-2021, 04:26 AM
RE: A Strategy for better browsers on IRIX - by Shiunbird - 10-19-2021, 12:23 PM
RE: A Strategy for better browsers on IRIX - by Raion - 10-19-2021, 04:56 PM
RE: A Strategy for better browsers on IRIX - by Shiunbird - 10-19-2021, 05:28 PM
RE: A Strategy for better browsers on IRIX - by Raion - 10-19-2021, 06:03 PM
RE: A Strategy for better browsers on IRIX - by opcode - 12-31-2021, 04:01 PM
RE: A Strategy for better browsers on IRIX - by Raion - 12-31-2021, 05:15 PM
RE: A Strategy for better browsers on IRIX - by lunatic - 01-01-2022, 01:58 PM
RE: A Strategy for better browsers on IRIX - by Raion - 01-01-2022, 05:16 PM
RE: A Strategy for better browsers on IRIX - by lunatic - 01-01-2022, 06:10 PM
RE: A Strategy for better browsers on IRIX - by weblacky - 01-02-2022, 01:31 AM
RE: A Strategy for better browsers on IRIX - by lalle - 01-21-2022, 08:13 PM
RE: A Strategy for better browsers on IRIX - by Raion - 01-21-2022, 09:53 PM
RE: A Strategy for better browsers on IRIX - by stormy - 01-22-2022, 04:33 PM
RE: A Strategy for better browsers on IRIX - by o2o2o2 - 04-06-2025, 01:21 PM
RE: A Strategy for better browsers on IRIX - by Raion - 01-22-2022, 05:06 PM
RE: A Strategy for better browsers on IRIX - by jgunnoe - 11-02-2023, 04:01 AM
RE: A Strategy for better browsers on IRIX - by vishnu - 11-02-2023, 01:39 PM
RE: A Strategy for better browsers on IRIX - by jpstewart - 04-07-2025, 12:39 AM
RE: A Strategy for better browsers on IRIX - by Raion - 04-07-2025, 01:59 AM
RE: A Strategy for better browsers on IRIX - by Shiunbird - 04-08-2025, 06:18 AM

Forum Jump:


Users browsing this thread: 1 Guest(s)