Language Selection

English French German Italian Portuguese Spanish

Programming: Compiling Firefox, Mozilla's Rust, and Go/Python Adventures

Filed under
Development
Moz/FF
  • Firefox is now built with clang LTO on all* platforms

    You might have read that Mozilla recently switched Windows builds to clang-cl. More recently, those Windows builds have seen both PGO and LTO enabled.

    As of next nightly (as of writing, obviously), all tier-1 platforms are now built with clang with LTO enabled. Yes, this means Linux, Mac and Android arm, aarch64 and x86. Linux builds also have PGO enabled.

    Mac and Android builds were already using clang, so the only difference is LTO being enabled, which brought some performance improvements.

  • Rust office hours

    ...I’m going to start an experiment that I call Rust office hours. The idea is simple: I’ve set aside a few slots per week to help people work through problems they are having learning or using Rust. My goal here is both to be of service but also to gain more insight into the kinds of things people have trouble with. No problem is too big or too small!

  • This Week in Rust 251

    Hello and welcome to another issue of This Week in Rust! Rust is a systems language pursuing the trifecta: safety, concurrency, and speed. This is a weekly summary of its progress and community.

  • Return to Limbo

    When the time came to pack up and return to Norway I considered whether I wanted to continue writing small examples in Go and porting some of my Python modules. It didn't feel all that comfortable or intuitive to write in Go, though I realise that it simply takes practice to gain familiarity. Despite this, it was worth taking some time to get an overview of the basics of Go for reasons that I'll get to later.

    [...]

    As mentioned earlier, I was interested in setting up Inferno on an old netbook – an Efika MX Smartbook – and had already experimented with running the system in its hosted form on top of Debian GNU/Linux. Running hosted Inferno is a nice way to get some experience using the system and seems to be the main way it is used these days. Running the system natively requires porting it to the specific hardware in use, and I knew that I could use the existing code for U-Boot, FreeBSD and Linux as a reference at the very least. So, the task would be to take hardware-specific code for the i.MX51 platform and adapt it to use the conventions of the Inferno porting layer. Building from the ground up, there are a few ports of Inferno to other ARM devices that could be used as foundations for a new port.

Firefox Is Now Built With Clang+LTO Everywhere

  • Firefox Is Now Built With Clang+LTO Everywhere, Sizable Performance Wins For Linux

    Firefox nightly builds are now built with the LLVM Clang compiler on all major platforms and the Linux build in particular is also now utilizing PGO optimizations too. Faster Firefox is coming thanks to this compiler work.

    All of Mozilla's tier-one platforms are now building the newest Firefox browser code under the Clang compiler and having LTO (Link Time Optimizations) enabled. That includes Linux, Mac, Android, Windows across ARM / AArch64 / x86 relying upon this open-source compiler. For now only the Linux builds also have PGO (Profile Guided Optimizations) enabled.

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.

More in Tux Machines

Events: Plasma Sprint, PyCon, SciPy and All Systems Go!

  • Plasma sprint, 2019 edition; personal updates

    In June, I had a great time at a series of KDE events held in the offices of Slimbook, makers of fantastic Neon-powered laptops, at the outskirts of Valencia, Spain. Following on from a two-day KDE e.V. board of directors meeting, the main event was the 2019 edition of the Plasma development sprint. The location proved to be quite ideal for everything. Slimbook graciously provided us with two lovely adjacent meeting rooms for Plasma and the co-located KDE Usability & Productivity sprint, allowing the groups to mix and seperate as our topics demanded - a well-conceived spatial analog for the tight relationship and overlap between the two. [...] In KDE e.V. news, briefly we stole one of the sprint rooms for a convenient gathering of most of our Financial Working Group, reviewing the implementation of the annual budget plan of the organization. We also had a chance to work with the Usability goal crew (have you heard about KDE goals yet?) on a plan for the use of their remaining budget -- it's going to be exciting. As a closing note, it was fantastic to see many new faces at this year's sprint. It's hard to believe for how many attendees it was their first KDE sprint ever, as it couldn't have been more comfortable to have them on board. It's great to see our team grow.

  • Real Python at PyCon US 2019
  • Quansight presence at SciPy'19

    Yesterday the SciPy'19 conference ended. It was a lot of fun, and very productive. You can really feel that there's a lot of energy in the community, and that it's growing and maturing. This post is just a quick update to summarize Quansight's presence and contributions, as well as some of the more interesting things I noticed.

  • ASG! 2019 CfP Re-Opened!

    Due to popular request we have re-opened the Call for Participation (CFP) for All Systems Go! 2019 for one day. It will close again TODAY, on 15 of July 2019, midnight Central European Summit Time! If you missed the deadline so far, we’d like to invite you to submit your proposals for consideration to the CFP submission site quickly! (And yes, this is the last extension, there's not going to be any more extensions.)

GNOME: GSOC, GNOME Foundation, GLib

  • Gaurav Agrawal: GSOC Progress by Mid July

    July Marked the beginning of II GSOC coding month. This month our goal is to make the diff bar model as accurate and intuitive as possible. One of the biggest thing which I learnt so far is how to contribute on upstream repositories on which our project depends. In our case this was with Libgit2, we discovered a bug in Libgit2 while doing our project, and Albfan made this a perfect example to show me how to contribute on upstream, how to raise bugs and how to do discussions for getting it solved.

  • Jean-François Fortin Tam: Available for hire, 2019 edition

    Sometime after the end of my second term on the GNOME Foundation, I was contacted by a mysterious computer vendor that ships a vanilla GNOME on their laptops, Purism.

  • Array copying and extending in GLib 2.61.2

    A slightly more in-depth post in the mini-series this time, about various new functions which Emmanuel Fleury has landed in GLib 2.61.2 (which is due to be released soon), based on some old but not-quite-finished patches from others.

Programming: Python, Vim, Go and More

  • How to integrate jenkins with webhook
  • Serving Gifs With Discord Bot - Reading Time: 12 Mins
  • Python Snippet 1: More Uses For Else
  • Python Celery Guide
  • Python String Find()
  • PyCharm 2019.2 Beta #2

    It hasn’t been long since we published PyCharm 2019.2 Beta, and now we’re ready to share with you the second Beta build! The final release date is getting closer and closer, and while you wait, give PyCharm 2019.2 Beta #2 a go! Get the PyCharm 2019.2 Beta build from our website and try all the latest functionality.

  • Vimrc Tutorial

    In this article, we’re going to dive deep into the vimrc file of Vim. Once you’re inside the vimscript, it’s easy to mess things up. That’s why this rule of thumb will always be helpful in your journey with Vim. Don’t put any line in vimrc that you don’t understand.

  • CPU atomics and orderings explained

    Sometimes the question comes up about how CPU memory orderings work, and what they do. I hope this post explains it in a really accessible way.

  • You can't say Go without Google – specifically, our little logo, Chocolate Factory insists

    Back in 2009, Google chose to name its latest programming language Go, a decision that is still giving it a migraine It could have called it "Google Go" to avoid confusion with Frank McCabe's Go! programming language. Despite criticism, it didn't do so. After almost a year of online grumbling, Google software engineer Russ Cox, in 2010, closed GitHub Issue #9, dismissing the complaints as "unfortunate." And the headaches over the thing's name still won't go away (no pun intended.) Last week, Google rebuffed a request to remove its logo from the Go website, golang.org, a change supported by some developers who feel Google takes Go developers for granted.

Games: Kubernetes Within the Context of Video Games, Please, RetroArch

  • Kubernetes: The Video Game

    Grant Shipley was recently in China for KubeCon, where he gave a keynote talk explaining the Kubernetes ecosystem within the context of Video Games. It’s a fun way to examine the entire world of Kubernetes, from end to end, while also enabling Grant to make Mavis Beacon and Commodore 64 references. Take a gander!

  • Please, a tense ten-minute experience has a Linux build available

    Got a few minutes to burn? Why not try out the short experimental experience that Please offers. Developed by somewhat, it delivers something quite surreal and freaky.

  • Achievement Unlocked: RetroArch is Coming to Steam

    Fans of retro (and not so retro) gaming will be pleased to hear that RetroArch is coming to Steam. Not familiar with RetroArch? It’s a user-friendly GUI that makes use of the libretro API. That API allows developers to create, among other things, modular ‘libretro’ cores that act as game emulators for systems like the SNES, Mega Drive and Game Boy. The famed front-end for the popular Libretro API will be available to install on Steam for Windows from July 30. Linux and macOS versions will follow. The libretro cores that power RetroArch can be used with other compatible frontends (like GNOME Games app) but RetroArch is arguably the best one.