Language Selection

English French German Italian Portuguese Spanish

Phoronix

Syndicate content
Linux Hardware Reviews & News
Updated: 1 hour 54 min ago

Cling C++ Interpreter Looking To Upstream More Code Into LLVM

Saturday 11th of July 2020 04:01:48 AM
Not to be confused with Clang as the well known C/C++ compiler front-end for the LLVM compiler, Cling is a separate project as an interactive, JIT-based C++ interpreter. Cling has been in development for years and at least partially is looking to upstream where possible back into LLVM...

Linux Might Pursue x86_64 Micro-Architecture Feature Levels

Friday 10th of July 2020 08:16:58 PM
Stemming from the recent GNU glibc work on better handling modern CPU optimizations with newer instruction set extensions across Intel and AMD product families, the concept of x86-64 micro-architecture feature levels is being talked about by open-source/Linux developers...

NVMe ZNS Support Coming To Linux 5.9

Friday 10th of July 2020 04:16:02 PM
Landing in the block subsystem's "-next" tree today is ZNS support for NVMe drives...

AMD Ryzen 9 3900XT vs. Intel Core i9 10900K Linux Gaming Performance

Friday 10th of July 2020 01:30:00 PM
Following the 130+ benchmarks of the AMD Ryzen 3000XT series earlier in the week looking at the CPU/system performance on Ubuntu Linux, here is our first look at the Linux gaming performance with putting the Ryzen 9 3900XT up head-to-head against the Intel Core i9 10900K.

GCC 11 Compiler Lands Intel Sapphire Rapids + Alder Lake Support

Friday 10th of July 2020 11:34:20 AM
Landing in the GNU Compiler Collection 11 (GCC 11) codebase this morning is the Sapphire Rapids and Alder Lake enablement...

Intel Media Driver Q2-2020 Ships With Better Tiger Lake Support

Friday 10th of July 2020 11:17:21 AM
Intel has shipped its second quarter open-source Media Driver release that provides accelerated video encoding/decoding capabilities on Linux systems...

More Accurate Load Tracking Being Worked On For the ACPI CPPC CPUFreq Driver

Friday 10th of July 2020 11:04:16 AM
The ACPI CPPC (Collaborative Processor Performance Control) Linux CPUFreq driver continues to be improved upon...

Wayland-Info Spun From Weston Code For Offering Wayland Helper Tool

Friday 10th of July 2020 07:12:22 AM
Wayland's Weston compositor has provided a weston-info utility to display information on supported Wayland extensions and versioning along with other details of the Wayland compositor environment. That utility is now being spun out as wayland-info as a Wayland compositor-agnostic utility for displaying this information...

Corsair Commander Pro Driver On-Deck For Linux 5.9 Kernel

Friday 10th of July 2020 04:06:25 AM
For those looking for an RGB lighting and fan speed controller system that works under Linux, the Corsair Commander PRO is slated to see support with the upcoming Linux 5.9 kernel cycle...

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

Thursday 9th of July 2020 10:28:09 PM
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!..

Linux Developers May Discuss Allowing Rust Code Within The Kernel

Thursday 9th of July 2020 08:45:49 PM
A Google engineer is looking to discuss at this year's Linux Plumbers Conference the possibility of allowing in-tree Rust language support...

Progress Being Made On OpenCL+OpenGL Over Direct3D 12

Thursday 9th of July 2020 07:31:54 PM
There is an update on the porting effort led by Collabora and Microsoft for layering OpenCL and OpenGL on top of Direct3D 12...

Phoronix Test Suite 9.8 Released For Open-Source Benchmarking, New Docker Benchmarking Image

Thursday 9th of July 2020 05:37:05 PM
Phoronix Test Suite 9.8 is available today as the latest quarterly stable feature release to our open-source, cross-platform benchmarking software.

NVIDIA 450.57 Linux Driver Released With Image Sharpening Option, NGX Library

Thursday 9th of July 2020 01:45:36 PM
Following a NVIDIA 450 Linux beta with the CUDA 11.0-rc in early June and the more formal NVIDIA 450.51 Linux beta later in June, NVIDIA has now promoted the 450 Linux driver series to stable with today's release of the 450.57 driver build...

systemd 246-RC1 Released

Thursday 9th of July 2020 01:29:08 PM
The first release candidate of the forthcoming systemd 246 is now available for testing...

KDE Seeing Fresh Improvements For HiDPI Support

Thursday 9th of July 2020 01:18:34 PM
It took the GNOME/Ubuntu side until Canonical developer Daniel van Vugt picked up a 4K display with Intel graphics for various 4K/Intel graphics optimizations to be discovered and continue to be addressed for the GNOME desktop. Now on the KDE side, well known contributor Nate Graham recently picked up a new laptop with HiDPI display and there he has been working to resolve a number of lingering high DPI issues on the KDE front...

LibreOffice Might Delay Its "Personal Edition" Branding Or Change To "Community Edition"

Thursday 9th of July 2020 11:06:00 AM
In response to the largely critical feedback of LibreOffice 7.0-RC1's branding as "Personal Edition" for the standard version of this open-source office suite, the branding is being reconsidered to either delay it until LibreOffice 7.1 or potentially relabel it as the "Community Edition" version...

GCC Compiler Lands Mitigation For Arm's Straight Line Speculation Vulnerability

Thursday 9th of July 2020 10:38:04 AM
It took a month after Arm disclosed the CPU "SLS" vulnerability and when the LLVM compiler landed their initial mitigation, but the GNU Compiler Collection (GCC) now has mitigations as well for this Straight Line Speculation vulnerability...

OpenSUSE Leap 15.2 Hops Onto The Microsoft Store For WSL/WSL2

Thursday 9th of July 2020 10:12:02 AM
Following last week's release of openSUSE Leap 15.2, this latest community, SUSE-backed Linux distribution release is now available via the Microsoft Store...

A Microsoft Addition For systemd 246 Exposes Host OS Information To Containers

Thursday 9th of July 2020 07:02:14 AM
There is a last minute change from a Microsoft engineer to the upcoming systemd 246 that is now undergoing release preparations...

More in Tux Machines

Moving (parts of) the Cling REPL in Clang

Motivation
===

Over the last decade we have developed an interactive, interpretative 
C++ (aka REPL) as part of the high-energy physics (HEP) data analysis 
project -- ROOT [1-2]. We invested a significant  effort to replace the 
CINT C++ interpreter with a newly implemented REPL based on llvm -- 
cling [3]. The cling infrastructure is a core component of the data 
analysis framework of ROOT and runs in production for approximately 5 
years.

Cling is also  a standalone tool, which has a growing community outside 
of our field. Cling’s user community includes users in finance, biology 
and in a few companies with proprietary software. For example, there is 
a xeus-cling jupyter kernel [4]. One of the major challenges we face to 
foster that community is  our cling-related patches in llvm and clang 
forks. The benefits of using the LLVM community standards for code 
reviews, release cycles and integration has been mentioned a number of 
times by our "external" users.

Last year we were awarded an NSF grant to improve cling's sustainability 
and make it a standalone tool. We thank the LLVM Foundation Board for 
supporting us with a non-binding letter of collaboration which was 
essential for getting this grant.


Background
===

Cling is a C++ interpreter built on top of clang and llvm. In a 
nutshell, it uses clang's incremental compilation facilities to process 
code chunk-by-chunk by assuming an ever-growing translation unit [5]. 
Then code is lowered into llvm IR and run by the llvm jit. Cling has 
implemented some language "extensions" such as execution statements on 
the global scope and error recovery. Cling is in the core of HEP -- it 
is heavily used during data analysis of exabytes of particle physics 
data coming from the Large Hadron Collider (LHC) and other particle 
physics experiments.


Plans
===

The project foresees three main directions -- move parts of cling 
upstream along with the clang and llvm features that enable them; extend 
and generalize the language interoperability layer around cling; and 
extend and generalize the OpenCL/CUDA support in cling. We are at the 
early stages of the project and this email intends to be an RFC for the 
first part -- upstreaming parts of cling. Please do share your thoughts 
on the rest, too.


Moving Parts of Cling Upstream
---

Over the years we have slowly moved some patches upstream. However we 
still have around 100 patches in the clang fork. Most of them are in the 
context of extending the incremental compilation support for clang. The 
incremental compilation poses some challenges in the clang 
infrastructure. For example, we need to tune CodeGen to work with 
multiple llvm::Module instances, and finalize per each 
end-of-translation unit (we have multiple of them). Other changes 
include small adjustments in the FileManager's caching mechanism, and 
bug fixes in the SourceManager (code which can be reached mostly from 
within our setup). One conclusion we can draw from our research is that 
the clang infrastructure fits amazingly well to something which was not 
its main use case. The grand total of our diffs against clang-9 is: `62 
files changed, 1294 insertions(+), 231 deletions(-)`. Cling is currently 
being upgraded from llvm-5 to llvm-9.

A major weakness of cling's infrastructure is that it does not work with 
the clang Action infrastructure due to the lack of an 
IncrementalAction.  A possible way forward would be to implement a 
clang::IncrementalAction as a starting point. This way we should be able 
to reduce the amount of setup necessary to use the incremental 
infrastructure in clang. However, this will be a bit of a testing 
challenge -- cling lives downstream and some of the new code may be 
impossible to pick straight away and use. Building a mainline example 
tool such as clang-repl which gives us a way to test that incremental 
case or repurpose the already existing clang-interpreter may  be able to 
address the issue. The major risk of the task is avoiding code in the 
clang mainline which is untested by its HEP production environment.
There are several other types of patches to the ROOT fork of Clang, 
including ones  in the context of performance,towards  C++ modules 
support (D41416), and storage (does not have a patch yet but has an open 
projects entry and somebody working on it). These patches can be 
considered in parallel independently on the rest.

Extend and Generalize the Language Interoperability Layer Around Cling
---

HEP has extensive experience with on-demand python interoperability 
using cppyy[6], which is built around the type information provided by 
cling. Unlike tools with custom parsers such as swig and sip and tools 
built on top of C-APIs such as boost.python and pybind11, cling can 
provide information about memory management patterns (eg refcounting) 
and instantiate templates on the fly.We feel that functionality may not 
be of general interest to the llvm community but we will prepare another 
RFC and send it here later on to gather feedback.


Extend and Generalize the OpenCL/CUDA Support in Cling
---

Cling can incrementally compile CUDA code [7-8] allowing easier set up 
and enabling some interesting use cases. There are a number of planned 
improvements including talking to HIP [9] and SYCL to support more 
hardware architectures.



The primary focus of our work is to upstreaming functionality required 
to build an incremental compiler and rework cling build against vanilla 
clang and llvm. The last two points are to give the scope of the work 
which we will be doing the next 2-3 years. We will send here RFCs for 
both of them to trigger technical discussion if there is interest in 
pursuing this direction.


Collaboration
===

Open source development nowadays relies on reviewers. LLVM is no 
different and we will probably disturb a good number of people in the 
community ;)We would like to invite anybody interested in joining our 
incremental C++ activities to our open every second week calls. 
Announcements will be done via google group: compiler-research-announce 
(https://groups.google.com/g/compiler-research-announce).



Many thanks!


David & Vassil

Read more Also: Cling C++ Interpreter Looking To Upstream More Code Into LLVM

This week in KDE: New features galore!

Tons and tons of awesome new features and UI polish landed this week, alongside an equally weighty ton of important bugfixes. Read more

Elive 3.8.14 beta released

The Elive Team is proud to announce the release of the beta version 3.8.14 This new version includes: Kernel updated to 5.6.14 retrowave special theme themes, designs, icons improvements and more customizations included bootup with a much more friendly graphical menu, it now remembers your last selected OS, all the options are in the same menu instead of submenus, disabled useless recovery options, improved resolution, fixed wallpaper issue on encrypted installations SWAP space is much more performant now, feedbacks welcome Read more

Microsoft to pull support for PHP

  • Microsoft to pull support for PHP: Version 8? Exterminate, more like...

    Born-again open-source fan Microsoft is celebrating 25 years of PHP by, er, pulling its support for the scripting language that is beloved (or dreaded) by server operators the world over. Microsoft engineer Dale Hirt confirmed the change on the PHP mailing list, warning that the Windows behemoth was not "going to be supporting PHP for Windows in any capacity for version 8.0 and beyond." Current versions, 7.2, 7.3 and 7.4, will continue to receive support as per the community's cadence, which sees around two years of bug squashing followed by a year of security fixes. PHP 7.4 emerged last November, so Microsoft's benevolence should last until 2022 at which point the plug will be pulled. Register reader Alain Williams, who tipped us off to Hirt's posting, remarked: "I suspect that it means that Microsoft will not provide any resources to make PHP 8 work but expect others to do so instead." After thanking the Microsoft gang for its work over the years, PHP 8.0 Release Manager Sara Golemon said: "I won't say I'm not bummed," before expressing the hope that some sort of alternative might be worked out by the end of the year, when version 8 is due to drop.

  • [PHP-DEV] Microsoft Support of PHP on Windows

    Hello PHP Internals, My name is Dale Hirt and I am the project manager for PHP inside Microsoft. We currently support PHP with development and build efforts for PHP 7.3, and PHP 7.4. In addition, we help with building PHP 7.2 on Windows when security fixes are required.. However, as PHP 8.0 is now ramping up, we wanted to let the community know what our current plans are going forward. We know that the current cadence is 2 years from release for bug fixes, and 1 year after that for security fixes. This means that PHP 7.2 will be going out of support in November. PHP 7.3 will be going into security fix mode only in November. PHP 7.4 will continue to have another year of bug fix and then one year of security fixes. We are committed to maintaining development and building of PHP on Windows for 7.2, 7.3 and 7.4 as long as they are officially supported. We are not, however, going to be supporting PHP for Windows in any capacity for version 8.0 and beyond.