Gecko esr91 work (former "Flypig's gecko dev diary")

Thanks for suggesting this @throwaway69, it’s a nice idea. I try to break lines at 80 characters in all the preformatted blocks, but that’s still way too wide on smaller displays.

After making this change I’m a bit concerned that things may look a bit messy, but let’s see how it goes.

3 Likes

Thank you so much for this work flypig :slight_smile:

1 Like

Yeah, I might’ve not thought that through, in portrait this could extend all code blocks by quite a bit if it ends up applying to each row (or most)… I’ll try to find a way to test some options on-device
Edit: maybe keeping the previous option as was and just adding: overflow-x: auto, overflow-y: hidden; will do the trick, this generates scrollbar for boxes that have long lines without extending them unnecessarily

3 Likes

@flypig Congratulations! I’ll celebrate with you today!
please think about if there is anything we can help you with on the next stages :slight_smile:

8 Likes

To illustrate the process:

(created with bing&dall-e with “A pig with wings dressed as a doctor fixing the limb of a gecko with a bandage on a surgery table. Comic style”)
… Did i specify pig without legs…?

31 Likes

One heart is not enugh!

:heart: :orange_heart: :yellow_heart: :green_heart: :blue_heart: :purple_heart:

I hope the mascot inspires @flypig to even higher and loftier achievements!

4 Likes

Oh wow, I agree with @ohnonot, this deserves waaay more than just the one heart I’m allowed to give! I think I’m going to have to print this out to put on my wall :grin: Thank you @thigg, this is so great!

As for the offer to help, Stage 2 has some parallel pieces so I’m going to put some issues up on the sailfish-browser git repo this week. It would be wonderful if others are able to get involved with them.

22 Likes

I jumped out of my chair from excitement when I saw you got the browser to run and load pages! Keep up the good work, I love reading through your daily posts (but make sure you don’t overdo it please!)

6 Likes

While the shorthand to enable C++17 doesn’t seem to work, you can still use QMAKE_CXXFLAGS += -std=c++17.

3 Likes

And I love the feedback; thank you! I appreciate the advice too, which I really buy into. It’s just been small steps every day, no pressure, keeping it manageable.

Is this in relation to the moc being unhappy about non-nested namespaces from C++17? Does using QMAKE_CXXFLAGS += -std=c++17 work around (fix) this particular issue? Either way you make a good point (if I’m understanding correctly) that most C++17 code seems to be just fine.

1 Like

Yes. Sorry for mobile-initiated brevity.
Well, i just trusted and agreed with your judgement in it looking like C++17-related. No further digging was done. (And this works for me to ebable it).

1 Like

You could also try to hide this header from moc by something like

#ifndef Q_MOC_RUN
#include <mozilla/modern stuff>
#endif

https://doc.qt.io/qt-5/moc.html

This could save you one patch against gecko

3 Likes

I just read the day five-oh of the gecko blog. Congratulations for reaching one more milestone for the project - and a big one! (As as developer, I recently managed to finally push some parts of my project to production, so I know the amount of excitement first hand!)

But now it’s late Friday, so let’s just enjoy the weekend! :grin:

2 Likes

I find myself hoping for some build instructions (or at least an outline thereof) so i can try to take a stab at some of the issues. Blind chickens, enough eyeballs and all that.

So i’m guessing it goes something like this:

  • Set a sfdk task and build some dependency packages
  • VooDoo
  • Just build it™
1 Like

Wow time really does fly. I haven’t posted in this topic before, but I have been following the updates. Thank you @flypig for taking on this massive task. It’s great to see you finally getting past all of the compiler errors and getting something running! Let’s hope there will be a beta to try soon :smiley:

I think the goal has been (as of diary entry 52) to get all the tickets in github cleaned up, set up a milestone and get the obs builds running. That way the systematic approach is also one that documents in the tag / task queue: Issues · sailfishos/sailfish-browser · GitHub milestones: esr91 Milestone · GitHub

I think once obs is there, it becomes a lot less guessing. Or one just carefully reads all 52 blog entries :slight_smile:

1 Like

True… OBS for the dependencies should be helpful - and eventually we’ll want it for everything.
But i don’t see it as a substitute for building Gecko itself locally while developing.

True, if I wasn’t such a coward I’d distill the last 52 diary entries to a neat how-to including the rust tool chain. Or, I’ll go drink bleach to see if it cures disease :slight_smile:

@flypig do you know if you’re using some kind of build cache to speed up things?

1 Like

That’s a really good question @thigg. I’m pretty sure there is no build cache (there was a sailor looking into it at one point, but I don’t think any changes were made to the public build).

The build is incremental, so will use previous outputs, but presumably there are situations in which a cache would improve things.

If anyone knows how to configure a cache for gecko, or fancies figuring it out, that would be superb! I’ve created ticket #1036 on GitHub for this.

2 Likes