Language Selection

English French German Italian Portuguese Spanish

GNU World Order and GCC's JIT Library Sees Experimental Port To Windows

Filed under
GNU
  • GNU World Order 355

    **enscript** and **flac** from the **ap** software series in Slackware.

  • GCC's JIT Library Sees Experimental Port To Windows

    For several years now GCC has offered a embeddable JIT compiler that for GPL applications can serve as a bytecode interpreter, an experimental Python compiler, and other possible use-cases with this libgccjit library. There now are patches pending for bringing libgccjit to Windows.

    Developer Nicolas Bértolo has worked on a port of libgccjit to Microsoft Windows. So far it's been tested to work with the native-compilation branch of Emacs.

More in Tux Machines

Programming: GNOME, CI/CD, Go and Qt

  • Bilal Elmoussaoui: libhandy-rs v0.6.0 is out!

    Recently I kind of took over the maintainership of libhandy-rs, the Rust bindings of libhandy. I have since then been preparing for a new release so that Rust & GTK app developers can update to the latest gtk-rs release as soon as possible. I also heavily depend on it on my various little apps.

  • Easily speed up CI by reducing download size

    Every time a CI pipeline runs on GitLab, it downloads the git repository for your project. Often, pipeline jobs are set up to make further downloads (of dependencies or subprojects), which are also run on each job.

  • What you need to know about automation testing in CI/CD

    Test automation means focusing continuously on detecting defects, errors, and bugs as early and quickly as possible in the software development process. This is done using tools that pursue quality as the highest value and are put in place to ensure quality—not just pursue it. One of the most compelling features of a continuous integration/continuous delivery (CI/CD) solution (also called a DevOps pipeline) is the opportunity to test more frequently without burdening developers or operators with more manual work. Let's talk about why that's important.

  • Generics for Go

    The Go programming language was first released in 2009, with its 1.0 release made in March 2012. Even before the 1.0 release, some developers criticized the language as being too simplistic, partly due to its lack of user-defined generic types and functions parameterized by type. Despite this omission, Go is widely used, with an estimated 1-2 million developers worldwide. Over the years there have been several proposals to add some form of generics to the language, but the recent proposal written by core developers Ian Lance Taylor and Robert Griesemer looks likely to be included in a future version of Go. [...] Generics, also known as "parameterized types" or "parametric polymorphism", are a way to write code or build data structures that will work for any data type; the code or data structure can be instantiated to process each different data type, without having to duplicate code. They're useful when writing generalized algorithms like sorting and searching, as well as type-independent data structures like trees, thread-safe maps, and so on. For example, a developer might write a generic min() function that works on all integer and floating-point types, or create a binary tree that can associate a key type to a value type (and work with strings, integers, or user-defined types). With generics, you can write this kind of code without any duplication, and the compiler will still statically check the types.

  • Fixing a common antipattern when loading translations in Qt

    I’m a Polish guy working with computers, mostly on Windows. However, the lingua franca of the IT industry is English, so every time I see a tutorial for some dev tool, it’s in that language. To lessen the burden of decoding which menu entry in the tutorial corresponds to which menu entry on my PC I decided to run the system with an English display language. I still want the rest of the i18n-related stuff (date format, keyboard, currency etc.) to be in Polish however. [...] As you can see, Thunderbird and Windows Settings show up in English but Qt Linguist is encrypted with some overengineered Slavic cipher (aka Polish language). What I further noticed, is that this incorrect language selection is particularly prevalent in Qt-based applications. Subsequent digging revealed that this antipattern is widespread in Qt world, see the relevant GitHub search (requires login).

today's leftovers and howtos

  • Digest of YaST Development Sprint 103

    Before introducing the recent changes in the YaST land, the team would like to congratulate the openSUSE community for the release of Leap 15.2. It looks like a pretty solid release, and we are proud of being part of this project. Having said that, let’s focus on what the team has achieved during the past sprint.

  • [syslog-ng] Insider 2020-07: TLS; capabilities; 3.27;

    This is the 83rd issue of syslog-ng Insider, a monthly newsletter that brings you syslog-ng-related news.

  •         
  • Top 6 Open Source Bitcoin Wallets, Rated and Reviewed for 2020

    The biggest appeal of open source wallets is that their code can be reviewed and publicly audited for potential security issues. As a result, open source software is often more robust than closed-source. The same goes for bitcoin wallets. [...] Whether you’re a beginner who needs a fantastic UI to help you navigate the intricacies of an open source wallet or you’re a developer who needs a platform that allows you to build on a secure base, these wallets will give you everything you’re looking for.

  •        
  • Android 10 has the fastest update rate ever, hits 16% of users in 10 months

    Google today dropped a blog post detailing its progress on improving the Android ecosystem's update speed. The company has been hard at work for the past few years modularizing Android, with the hope that making Android easier to update would result in device manufacturers pushing out updates faster. Google's efforts have been paying off, with the company announcing Android 10 has had the fastest rollout ever. The last few versions of Android have each brought a major improvement to Android's update system. Android 8 introduced Project Treble, which separated the OS from the hardware support, enabling easier porting of Android across devices. In Android 9 Pie, Google completed its work on Treble and started publishing Generic System Images (GSIs): drop-in versions of Android that work on any Project Treble-compatible device. Android 10 introduced Project Mainline and the new APEX file type designed for updatable lower-level system components, delivered through the Play Store. Google's stats show that all this work is actually improving the ecosystem. "Thanks to these efforts," Google writes, "the adoption of Android 10 has been faster than any previous versions of Android. Android 10 was running on 100 million devices 5 months post launch—28% faster than Android Pie."

  • LibreOffice QA/Dev Report: June 2020
  • Phoronix Test Suite 9.8 Released For Open-Source Benchmarking, New Docker Benchmarking Image

    Phoronix Test Suite 9.8 is available today as the latest quarterly stable feature release to our open-source, cross-platform benchmarking software. Phoronix Test Suite 9.8 brings numerous improvements as our Q3'2020 update including: - Improved handling of test installation failures around failed download URLs and other cases where newer minor revisions of said test profiles have corrected them. The new behavior is to seamlessly use the new minor revisions of test profile updates to correct said failures rather than requiring manual intervention over the version specified.

  • How to convert an ISO to a Docker image
  • How To Set Up Nginx Server Blocks on Ubuntu 20.04
  • How to Install MariaDB on Ubuntu 16.04 Linux Operating System

Servers: Kubernetes, MicroK8s and Ubuntu

  • What’s up with the Kubernetes ecosystem

    This week’s acquisition of Rancher Labs by the veteran enterprise Linux firm SUSE neatly illustrates the growing momentum of container-based application deployment. It also underlines the importance of Kubernetes as the orchestration tool of choice for managing all those containers. So, what does this latest move mean for the broader Kubernetes ecosystem? When containers first garnered corporate attention six or seven years ago, Docker and its tools were the centre of attention. But the focus soon shifted to management frameworks capable of automating the deployment and scaling of containers, and Kubernetes, developed by Google from technology used in its cloud platform, quickly won out. Like many open source tools, Kubernetes has its share of rough edges and does not necessarily provide all the capabilities that users need to build a functioning container-based infrastructure. Companies such as Rancher sprang forth to provide a complete software stack built around Kubernetes for those who didn’t want to build it all themselves.

  • MicroK8s HA tech preview is now available
  • Ubuntu Support of AWS Graviton2 Instances
  • Ubuntu Support of AWS Graviton2 Instances

    Ubuntu is the industry-leading operating system for use in the cloud. Every day millions of Ubuntu instances are launched in private and public clouds around the world. Canonical takes pride in offering support for the latest cloud features and functionality. As of today, all Ubuntu Amazon Web Services (AWS) Marketplace listings are now updated to include support for the new Graviton2 instance types. Graviton2 is Amazon’s next-generation ARM processor delivering increased performance at a lower cost. This

Linux and Linux Foundation: Rust, Windows, SystemD and More

  • Linux Developers May Discuss Allowing Rust Code Within The Kernel

    A Google engineer is looking to discuss at this year's Linux Plumbers Conference the possibility of allowing in-tree Rust language support. Nick Desaulniers of Google, who is known for his work on LLVM Clang'ing the Linux kernel and related efforts, is wanting to bring up the matter of in-tree Rust support for the kernel. The extent though of allowing Rust within the kernel isn't clear yet but would likely be very limited.

  • Emulating Windows system calls in Linux

    The idea of handling system calls differently depending on the origin of each call in the process's address space is not entirely new. OpenBSD, for example, disallows system calls entirely if they are not made from the system's C library as a security-enhancing mechanism. At the end of May, Gabriel Krisman Bertazi proposed a similar mechanism for Linux, but the objective was not security at all; instead, he is working to make Windows games run better under Wine. That involves detecting and emulating Windows system calls; this can be done through origin-based filtering, but that may not be the solution that is merged in the end. To run with any speed at all, Wine must run Windows code directly on the CPU to the greatest extent possible. That must end, though, once the Windows program makes a system call; trapping into the Linux kernel with the intent of making a Windows system call is highly unlikely to lead to good results. Traditionally, Wine has handled this by supplying its own version of the user-space Windows API that implemented the required functionality using Linux system calls. As explained in the patch posting, though, Windows applications are increasingly executing system calls directly rather than going through the API; that makes Wine unable to intercept them. The good news is that Linux provides the ability to intercept system calls in the form of seccomp(). The bad news is that this mechanism, as found in current kernels, is not suited to the task of intercepting only system calls made from Windows code running within a larger process. Intercepting every system call would slow things down considerably, an effect that tends to make gamers particularly cranky. Tracking which parts of a process's address space make Linux system calls and which make Windows calls within the (classic) BPF programs used by seccomp() would be awkward at best and, once again, would be slow. So it seems that a new mechanism is called for. The patch set adds a new memory-protection bit for mmap() called PROT_NOSYSCALL which, by default, does not change the kernel's behavior. If, however, a given process has turned on the new SECCOMP_MODE_MMAP mode in seccomp(), any system calls made from memory regions marked with PROT_NOSYSCALL will be trapped; the handler code can then emulate the attempted system call.

  • systemd 246-RC1 Released

    With this being the first systemd release since March, there is a lot in store for the v246 milestone. There are many systemd 246 features including new unit settings, the service manager has support for the cgroup v2 freezer, the CPU affinity setting now supports a NUMA value, systemd.hostname= can be used for setting the hostname from the kernel command line during early boot, hardware database updates, systemd-journald now supports Zstd compression, numerous networkd additions, systemd-cryptsetup now supports activating Microsoft BitLocker volumes during boot, systemd-homed improvements, the new systemd-xdg-autostart-generator, and much more. Just yesterday was one of the latest additions of exposing host OS information to containers.

  • Intel Gen12/Xe Graphics Have AV1 Accelerated Decode - Linux Support Lands

    On top of Intel Gen12/Xe Graphics bringing other media engine improvements and much better 3D graphics support, another exciting element of the next-generation Intel graphics is now confirmed: GPU-accelerated AV1 video decoding! There has been talk of Gen12/Xe supporting AV1 at least on the decode side but a lack of hard information to date. But landing this week in Intel's Media Driver for Linux is indeed AV1 decode wired up for Gen12. This is nice to see happen and a bit of a surprise as so far the Intel Media Driver support matrix has lacked any references to AV1.

  • Four years of Zephyr

    The Zephyr project is an effort to provide an open-source realtime operating system (RTOS) that is designed to bridge the gap between full-featured operating systems like Linux and bare-metal development environments. It's been over four years since Zephyr was publicly announced and discussed here (apparently to a bit of puzzlement). In this article, we give an update on the project and its community as of its v2.3.0 release in June 2020; we also make some guesses about its near future. The authors are both Zephyr developers working for Nordic Semiconductor; Cufí was the release manager for the v2.3.0 release. [...] The Zephyr kernel supports multiple architectures and scheduling algorithms. There are cooperative and preemptive threads, along with facilities for reducing interrupt latencies and guaranteeing the execution of key threads. An optional user mode can use the Memory Protection Units (MPUs) typically present in microcontrollers to isolate and sandbox threads or groups of threads from one another and the kernel. Zephyr supports six major architectures (x86, Arm, ARC, NIOS II, Xtensa, and RISC-V) and also runs in emulation. Both 32- and 64-bit processor support exists for some architectures. Within the Arm architecture, the emphasis has been on the usual 32-bit Cortex-M cores, but experimental support for Cortex-R and Cortex-A (including 64-bit Cortex-A) exists and continues to improve. Beyond "real hardware," Zephyr runs on QEMU, and as an ELF executable. It supports a simulated radio, which can save time and expense when testing and debugging radio frequency (RF) issues. In all, there are upstream support files for over 200 "boards". Zephyr has logging and shell subsystems. These have configurable transports, including traditional serial ports (for both) and over the network (for logging). Logging is optionally asynchronous; in this case, a separate thread actually sends log messages. The logging calls themselves post compact messages to a queue, which can be done quickly, so logging can be done even from within interrupt context. Hardware-specific APIs are built around a lightweight device driver model that is tightly integrated with the kernel. It supports a wide range of peripherals and sensors under this common model. Multiple storage options are available. These range from basic key-value storage optimized for NOR flash to filesystems.