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,240
Threads: 533
Joined: Nov 2017
Location: Eastern Virginia
Website Find Reply
10-19-2021, 04:26 AM
#2
RE: A Strategy for better browsers on IRIX
There's a lot to unpack here.

I do appreciate the simplicity and elegance of the older web. You basically needed two or three orders of magnitude less data and processing power to get the same amount of information across (content that you read and consume).

Now we have crap like WebAssembly and others that turned the web into the mainframe-with-a-new-face. Web browsers are now terminals and ad delivery machines. Most of the data that comes through and most of the processing power used is to track and deliver ads, and not to deliver the information you are actually looking for.

I'd happily pay for my web browser and my e-mail client and make sure that it is clean, well coded, performant, and free of ads. I try to contribute to the projects and products I use to the best of my financial capacity.

(and I do wish I could code well enough to be useful)

Plus - It's just HORRIFIC to open three browser tabs: e-mail, news and something else, and see that it's somehow eating 800MB of memory. WTF. Really.

HOWEVER

How's a modern browser going to be useful? Even if the browser is to discard all the useless data, it has to ingest and analyse at least some of it. There's also TLS eating quite a good amount of CPU time in our machines. All the ads, and trackers open new connections that also need TLS and will also eat CPU time. Once you remove all the fat and other components that our machines would not be able to handle, how much of the modern web would still be left to relevant and useful?

For example, I run a fully up-to-date Debian installation on my late 2005 dual core G5, with Arctic Fox. YouTube works fine once the page loads, it's incredibly responsive. But it takes more than 2 minutes of 100% one-thread CPU time until it does all the initial processing. Then I just copy the URLs and play on VLC, and it can handle 1080p fine, but still...

In my opinion, the holy-grail of portable web browsers was Firefox 3.6. I've ran it on AIX, different flavours of Linux, Solaris, Macs. How much commonality with 3.6 does modern firefox has?

A very good team could indeed come with a hardware solution to the problem, as you described, but I can't even fathom how much effort, money and development time it would take from conception to manufacturing. If I had endless money, I'd somehow make sure that every legacy platform has a way to browse the modern web and be saved from the landfill, and also to make sure the diversity and technical skills to maintain a heterogeneous environment keeps existing. Unfortunately, I don't have this money.

I've been following with much interest the efforts around good proxies that would allow me to browse the web while I'm using my legacy systems for the things they are good at.

Regardless, we've been trying to get the open PowerPC laptop to take off for the last 5+ years. It is incredibly complex to manage a hardware project. I've been helping with my limited skills, time and money. If such dream project takes off, you can be sure I will contribute with what I can, time and cash, more for the principle and for what we could learn from the process than practicality and outcome.
Shiunbird
Administrator

Trade Count: (1)
Posts: 553
Threads: 45
Joined: Mar 2021
Location: Czech Republic
Find Reply
10-19-2021, 12:23 PM
#3
RE: A Strategy for better browsers on IRIX
The open powerpc laptop is a joke. Powerpc is a consumer chip and it's mostly dead. They aren't even going for a chip that's bi endian, and that's going to sink their ship. Anything that's big endian basically obsolete in 2021 and that does include our machines but since our hardware is a fixed Target it's not as much of a problem.

TLS really is not a problem for our systems unless you're using like an ancient r3000 which is not the target of this anyways. There are optimized assembly routines for everything up to including the r4000.

I feel worse for the Amiga guys because they have much slower processors at play that have no redeeming aspects in the rest of their hardware and on top of that a completely atypical toolkit and user interface.

No the big issue is javascript and webassembly and I don't have a problem with the latter as much as I do with the former. Webassembly is at least relatively optimized whereas JavaScript is single threaded BS

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,240
Threads: 533
Joined: Nov 2017
Location: Eastern Virginia
Website Find Reply
10-19-2021, 04:56 PM
#4
RE: A Strategy for better browsers on IRIX
So this is the thing...
The folks at the ppc project are lovely and the project is going somewhere, slowly but surely. It's the part I mentioned above, about the principle. I do admire people who stand wholeheartedly at whichever dead cause it is, as long as it doesn't cause harm to others and help the heterogeneity of the tech space. It's being a nice and well-intentioned journey, regardless of how it ends.
There are talks of some conversion to RISC-V in the future, and THAT would be interesting to see.

It will be nice to see the machine aline and know that I took a small part in it. I'm typing this now from a G5 and hey, it works, it's out of the landfill.

Yes, the dead of big endian is a bit sad, but hey, so is life, and yes, JavaScript is pain.

I also donated some to the hpcfactor folks, for the same reason. I use my Jornada very often and it's the best PIM suite out there, in my opinion.

Same reasons why I'd support a project for our machines. Out of my cold dead hands. It's only obsolete when it can't be useful for us, and I don't really care about 8K blu-ray HDR surround sound facebook youtube.
Shiunbird
Administrator

Trade Count: (1)
Posts: 553
Threads: 45
Joined: Mar 2021
Location: Czech Republic
Find Reply
10-19-2021, 05:28 PM
#5
RE: A Strategy for better browsers on IRIX
I think RISC V is just as much of a joke. It's a pet project for academics of stuffy dispositions. 128-bit integers is not more important than SIMD. Everybody who advocates for it in a cult-like manner is being foolish in that regard.

The problem is practicality. If the laptop project that you discussed is actually serious about getting something out they would want to partner with raptor computer systems and probably go for something that's going to be a big heavy desktop replacement because that's just the TDP you're working with when it comes to actual power chips.

Big Endian is dead for graphics. If you want opengl4 you can't have big Endian. Most graphics drivers are not going to function properly. It's not bad programming it's that fundamentally there is no compatibility specification. There is nothing that we can really do.

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,240
Threads: 533
Joined: Nov 2017
Location: Eastern Virginia
Website Find Reply
10-19-2021, 06:03 PM
#6
RE: A Strategy for better browsers on IRIX
I have thought about this for the last year or so as well. I have come to the conclusion that I don't want a modern browser. The WWW is just trash now anyway. It is all bloated and tracked. The fact that you need such power to pull up a webpage because of JavaScript/etc just sucks. I am tired of being tracked and surveilled. OSX is just malware to me now. Maybe I am just a grumpy old man but the magic is lost for me. I am looking at finally getting rid of my iPhone and going with a degoogled type of phone and hope I can have a device that is at least not listening to everything I say. I am just tired of having to accept cookies for every page I go to, subscribe to our newsletter popups, and other nonsense.

I think we should focus more on something like an old style HotLine application that has file sharing, chat, news, and some kind of forum built in. It would be cool if you could federate these HotLine type servers. Build it for IRIX and other old platforms. I think there is some old opensource code out there that ran on Windows/Linux/OSX. I think a more BBS like approach would be cooler on these older machines. What happened with the NekoChan DB still makes me angry.

To use modern software, I think we would need some kind of add-in card to integrate and run a browser. Something like a raspberri pi on a pci card or gio card. Kinda like the old Windows/Dos cards for Macs. I know there is talent out there that could build something like that. I am in the Amiga community as well and am floored with how those folks keep that stuff alive.

Just the incoherent rant of an old and broken systems engineer.

Visual Workstation 320 Prism Desktop O2 x5 Octane Octane2 Octane2 Tezro Onyx2 Indigo x5 Onyx Indigo2 R10000/IMPACT Indigo2 Indy x7 1600SW x2 
Stolen!  :4D310: Crimson
(This post was last modified: 12-31-2021, 04:02 PM by opcode.)
opcode
WebForce Officer

Trade Count: (0)
Posts: 77
Threads: 17
Joined: Jan 2018
Location: Atlanta
Website Find Reply
12-31-2021, 04:01 PM
#7
RE: A Strategy for better browsers on IRIX
I'm not really interested in making a hotline type system at this time.

Any external apis to access the forum including nntp are not off the table but they don't really inspire confidence in usability for me.

We already have a basic HTML mode that works really well and you can access it rather easy. It does require a basic semblance of JavaScript that is provided by Mozilla 1.0 but otherwise it's not that bad.

I do appreciate your perspective however and since I wrote this post I have become a lot more pessimistic about the web in general. I hope that webassembly replaces JavaScript but people are stubborn and stupid. Webassembly could actually be pretty decent if we got a half decent backend.

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,240
Threads: 533
Joined: Nov 2017
Location: Eastern Virginia
Website Find Reply
12-31-2021, 05:15 PM
#8
RE: A Strategy for better browsers on IRIX
I would also say that it is finally time to let go and accept that the modern web won't work on IRIX. Sure, you can have a browser that displays "something" on IRIX, but what good would it be if the result is so much different from say Chrome. Another thing would be if you really want a browser to do a specific thing well-enough, like navigating a web configuration interface of your server or router. But then it keeps getting a horse race where you keep implementing und imitating stuff that Chrome does, the very moment the vendor changes the web interface of your favorite thing.
lunatic
insane in the mainframe

Trade Count: (0)
Posts: 150
Threads: 1
Joined: Apr 2019
Find Reply
01-01-2022, 01:58 PM
#9
RE: A Strategy for better browsers on IRIX
For what it's worth I've never been under any delusions as to what our systems are capable of on the modern web.

Turning HTML5 into a living document was a mistake. It should have had a frozen standard. That has basically shafted anybody who's not a large Google type entity.

Keep in mind I am not the one who has ever advocated for porting a modern version of Firefox to the OS. I wanted a more effective browser that could handle a subset of HTML5/CSS3 and could function even on slow machines.

Unfortunately even before community divides started happening you already had people who felt they were entitled to specific attributes of a browser and nobody could agree on what they wanted so any efforts were basically dead in the water.

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,240
Threads: 533
Joined: Nov 2017
Location: Eastern Virginia
Website Find Reply
01-01-2022, 05:16 PM
#10
RE: A Strategy for better browsers on IRIX
Just beyond the capability of a system, I think web browsers are a special type of software, because they depend on the web creators' adherence to certain standards.
Suppose I want to write a letter to my grandma. I need a word processor where I can write that letter and then I need to print this and mail it to her. I can do that on IRIX or fire up my old DECstation and use DECwrite to do it. That's an R3000 and it will work fine. My grandma will never know what machine I used.
If writing a letter were like the modern web, my grandma would suddenly not be able to read my letter. She might open the letter and all she might see would be an empty white paper. Or the post office would suddenly refuse to send the letter, because now my letter needs to have PaperScript enabled, in order to be transmitted correctly.

This sounds crazy when you think about writing letters, but it's normal for the web. They keep updating their websites and we keep updating our web browsers. It's a moving target. Features are added and dropped constantly.

A more efficient web browser isn't something I want on IRIX. It's something I would like to have in general. As I am sitting here, my machine uses 24GB of RAM out of 32GB. MOST of this is just Safari. Sure you can say that I should limit myself to just one window or one tab, but even one tab needs more memory than my indigo has in total. It's all a bunch of wasteful crap, but I am bound to this crap, because other people keep building websites that require this bloat and if I refuse to update, I won't be able to look at these sites.
lunatic
insane in the mainframe

Trade Count: (0)
Posts: 150
Threads: 1
Joined: Apr 2019
Find Reply
01-01-2022, 06:10 PM


Forum Jump:


Users browsing this thread: 1 Guest(s)