Language Selection

English French German Italian Portuguese Spanish

Programming: LLVM, Glibc, Python, Fortran and More

Filed under
  • The New Features Of LLVM 9.0 & Clang 9.0 - Includes Building The Linux x86_64 Kernel

    The LLVM 9.0 release is running a few weeks behind schedule but should be out in the days ahead along with other LLVM sub-project releases like Clang 9.0. Here's a look at what's on tap for this half-year update to the LLVM compiler infrastructure.

  • A bug found in Glibc limits modern SIMD instructions to only Intel, inhibiting performance of AMD and other CPUs

    Yesterday, Mingye Wang reported a bug in the Glibc, GNU C Library. According to him, the dl_platform detection performs “cripple AMD” in the sysdeps in Glibc. The dl_platform check is used for dispatching SIMD (Single instruction, multiple data) libraries.

    Explaining the bug in detail, Wang writes, that in 2017, Glibc got the capability to transparently load libraries for specific CPU families with some SIMD extensions combinations to benefit the x86 users. However, this implementation limits two “good” sets of modern SIMD instructions to only Intel processors that prevent competitor CPUs with equivalent capabilities to fully perform, something that should not work in any free software package.

  • Find the maximum gap between the successive numbers in its sorted form from a Python list

    Given a Python list consists of plus or minus numbers, we need to sort that list then find the maximum gap between the successive numbers in that list regarding of its sign.

  • LEGB? Meet ICPO, Python’s search strategy for attributes

    When it comes to variables, Python has a well-known search strategy, known by the acronym “LEGB.” Whenever you mention a variable — and by “variable,” I mean a name that could be referencing data, a function, or a class — Python tries to find it in four different places: The local (function) scope, the enclosing function’s scope, the global scope, and finally in the “builtins” namespace.

    Variable scoping seems both boring and annoying, but it actually explains a lot about Python’s design. It’s really worth learning about, and won’t take much of your time. Indeed, I have a free e-mail course on the subject; you’re welcome to subscribe.

    But what about attributes? How does Python search for those?

  • Layering security throughout DevOps

    The DevOps movement has changed how we integrate and publish our work. It has taken us from slow, sometimes yearly, release cycles to daily (or even hourly, in some cases) releases. We are capable of writing code and seeing our changes in production almost instantly. While that can give our customers and us a warm and fuzzy feeling, it can also provide an opening for malicious attackers.

    DevOps was an amazing first step to break down walls and support fast responses to market changes and customer demands, but there is still an important wall we need to break, one important group we need to bring into the fold: security operations (SecOps).

  • Excellent Free Books to Learn Fortran

    Fortran (Formula translation) is a multi-paradigm programming language invented by John Backus of IBM in the 1950s. It is particularly notable for innovation; it was the first high-level language, using the first compiler.

    The language is designed to be simple to understand, yet retains the efficiency in execution as assembly language – about 80% as efficient as assembly/machine code. Fortran is machine independent, and a problem oriented language. It is often used in the scientific community, particularly among physicists, and is designed for scientific numerical computing. Fortran allows for high parallelization, it’s easy to optimize, and lends itself particularly well to computationally intensive fields such as finite element analysis, numerical weather prediction, computational physics, computational chemistry, and computational fluid dynamics.

    Fortran has evolved over time, with various standards including Fortran IV, Fortran 77, Fortran 90 and Fortran 95. More recent revisions are Fortran 2003, and Fortran 2008. Since Fortran 9x, it has many structured programming features, dynamic memory, operator overloading, and primitive objects. It is both the language of the past, the current, and the future (high-performance computing is unlikely to cast aside Fortran). Despite its age, Fortran is still very much alive and kicking. Fortran has a vast number of libraries of code.

More in Tux Machines

Programming Leftovers

  • Ned Batchelder: Scriv

    I’ve written a tool for managing changelog files, called scriv. It focuses on a simple workflow, but with lots of flexibility. I’ve long felt that it’s enormously beneficial for engineers to write about what they do, not only so that other people can understand it, but to help the engineers themselves understand it. Writing about a thing gives you another perspective on it, your own code included.

  • Dirk Eddelbuettel: RcppSpdlog 0.0.2: New upstream, awesome new stopwatch

    Following up on the initial RcppSpdlog 0.0.1 release earlier this week, we are pumped to announce release 0.0.2. It contains upstream version 1.8.0 for spdlog which utilizes (among other things) a new feature in the embedded fmt library, namely completely automated formatting of high resolution time stamps which allows for gems like this (taken from this file in the package and edited down for brevity)...

  • [Perl] Week #078: Leader Element & Left Rotation

    First thing first, I managed to do video session for both tasks this week. It is so satisfying when everything goes as per the plan. For the last couple of weeks, I could only do one video session. One day, I would like to video with PIP. At the moment, I am little uncomfortable showing my face in the video. There is another reason why I can’t do it now. I don’t have my personal office in the house. I have been working from home since mid-March, nearly 6 months, sitting on sofa, 9-5. I must confess it is not easy. I miss my office chair and noise-free environment. I have 3 years twin girls. Luckily the school started last week, I get no-noise moment for few hours during the day. Also this week, I found time to do coding in Swift.

  • Searching Greek and Hebrew with regular expressions

    According to the Python Cookbook, “Mixing Unicode and regular expressions is often a good way to make your head explode.” It is thus with fear and trembling that I dip my toe into using Unicode with Greek and Hebrew. I heard recently that there are anomalies in the Hebrew Bible where the final form of a letter is deliberately used in the middle of a word. That made me think about searching for such anomalies with regular expressions. I’ll come back to that shortly, but I’ll start by looking at Greek where things are a little simpler.

  • Java 15 Gains Garbage Collection, Text Block Features

    Java 15 became generally available on Sept. 15, marking the second release in 2020 of the widely deployed programming language. The Java 15 release follows Java 14, which debuted in March, and is noteworthy for a number of improvements, as well as the fact that the release was not delayed due to the COVID-19 pandemic.

Best Free and Open Source Terminal Session Recording

The vast majority of computer users depend on a graphical user interface, and fear the command line. However, the command line holds significant power and versatility. Commands issued from a shell offer system administrators a quick and easy way to update, configure and repair a system. The benefits of the command line are not only confined to system administration. The ability to transverse the file system quickly, give more information about files and directories, automate tasks, bring together the power of multiple console tools in a single command line, and run shell scripts are just a few examples of how the command line can offer a potent, multifarious toolbox. Read more

Geniatech XPI 3128 RK3128 SBC is Equipped with an NXP WIFi 5 Module

Geniatech XPI family of single board computers was first introduced in 2018 with the launch of the XPI-S905X development board following many of Raspberry Pi 3 Model B features and form factor. The company has now added another board to the family with XPI 3128 single board computer powered by a Rockchip RK3128 quad-core Cortex-A7 processor coupled with up to 2 GB RAM and 64 GB flash, as well as an NXP WiFi 5 and Bluetooth 4.2 module. Read more

Keep Tabs on Your To-Do Lists With This GNOME Extension

Task Widget is an open source GNOME extension that shows your to-do list embedded in the GNOME message tray (also known as the calendar or notification shade). This widget area displays your pending to-do items, and lets you check off tasks as you complete them. Task Widget is is able to integrate “…with GNOME Online Accounts and a number of GNOME applications, such as Evolution and To Do” but it is is not, by design, intended to replace any of those apps or services. Or to put it another way: it’s not a standalone task manager or to-do app. You can’t, for example, add a task from the widget area, or edit one either. You can only mark a task as done (or unmark it as done). Read more