Language Selection

English French German Italian Portuguese Spanish

Programming/Development: LLVM, Haskell, Perl and Python

Filed under
  • LLVM's Go Front-End Was Finally Dropped From The Official Source Tree

    Most probably didn't even realize LLVM had a Go language front-end, but this past week it was dropped from the official source mono repository.

    This LLVM Go front-end "LLGO" hasn't been maintained in several years and never really took off... Most probably aren't even aware of this Go compiler support for LLVM. So the code has been suffering, it was stuck at Go version 1.5 well behind the latest upstream, it likely has build errors, and there are other nuisances with the code like having an entire copy of Mark Twain's "The Adventures of Tom Sawyer" novel. For those wondering why an entire novel was part of the source tree, it amounted to serving as a compression test case.

  • [llvm-dev] [10.0.0 Release] Release Candidate 2 is here
    Hello everyone,
    Release Candidate 2 was tagged earlier today as llvmorg-10.0.0-rc2. It
    includes 98 commits since the previous release candidate.
    Source code and docs are available at and
    Pre-built binaries will be added as they become available.
    Please file bug reports for any issues you find as blockers of
    Release testers: please run the test script, share your results, and
    upload binaries.
    I'm hoping we can now start tying up the loose ends, fixing the
    blocking bugs, and getting the branch ready for shipping as a stable
    release soon.
  • LLVM 10.0's Release Is Very Close With RC2 Available

    The release of LLVM 10.0 is now upon us with the second and last planned release candidate issued at the end of last week.

    Ongoing LLVM release manager Hans Wennborg tagged LLVM 10.0 RC2 on Thursday with just under one hundred commits since the original release candidate. Since LLVM 10.0 RC1 in January has been a lot of bug fixing and things appear to be settling down for seeing LLVM 10.0 on time or thereabouts with its scheduled release date of 26 February.

  • Excellent Free Tutorials to Learn Haskell

    Haskell is a standardized, general-purpose, polymorphically statically typed, lazy, purely functional language, very different from many programming languages. It enables developers to produce software that’s clear, concise, and correct.

    This is a mature programming language with the first version defined in 1990. It has a strong, static type system based on Hindley–Milner type inference. The main implementation of Haskell is the Glasgow Haskell Compiler (GHC), an open source native code compiler. Recent innovations include static polymorphic typing, higher-order functions, user-definable algebraic data types, a module system, and more. It has built-in concurrency and parallelism, debuggers, profilers, rich libraries and an active community, with thousands of open source libraries and tools.

    Haskell offers many advantages to programmers. It helps rapid application development with shorter, clearer code, and higher reliability. It’s suitable for a variety of applications, and often used in academia and industry.


  • 2020.07 Irky Reblessing



    Arne Sommer has blogged about a recent breaking change with regards to reblessing objects: Raku and the (Re)blessed Child and Exploring Rebless with Raku. In it, they express frustration with working code suddenly not working anymore. As always, there are two sides to the story, and Arne shows them both.


  • Python Tools for Record Linking and Fuzzy Matching

    Record linking and fuzzy matching are terms used to describe the process of joining two data sets together that do not have a common unique identifier. Examples include trying to join files based on people’s names or merging data that only have organization’s name and address.

    This problem is a common business challenge and difficult to solve in a systematic way - especially when the data sets are large. A naive approach using Excel and vlookup statements can work but requires a lot of human intervention. Fortunately, python provides two libraries that are useful for these types of problems and can support complex matching algorithms with a relatively simple API.

    The first one is called fuzzymatcher and provides a simple interface to link two pandas DataFrames together using probabilistic record linkage. The second option is the appropriately named Python Record Linkage Toolkit which provides a robust set of tools to automate record linkage and perform data deduplication.

    This article will discuss how to use these two tools to match two different data sets based on name and address information. In addition, the techniques used to do matching can be applied to data deduplication and will be briefly discussed.

  • Slightly Better Iterative Spline Decomposition

    My colleague Bart Massey (who is a CS professor at Portland State University) reviewed my iterative spline algorithm article and had an insightful comment — we don't just want any spline decomposition which is flat enough, what we really want is a decomposition for which every line segment is barely within the specified flatness value.

    My initial approach was to keep halving the length of the spline segment until it was flat enough. This definitely generates a decomposition which is flat enough everywhere, but some of the segments will be shorter than they need to be, by as much as a factor of two.

More in Tux Machines

This 5G smartphone comes with Android, Linux - and a keyboard. Back to the future with the Astro Slide

London-based Planet Computers is on a mission to reinvent the iconic Psion Series 5 PDA for the smartphone age. Although mobile professionals -- especially those old enough to remember the 1997 Series 5 with affection -- are often open to the idea, the company's previous efforts, the Gemini PDA and Cosmo Communicator, have had their drawbacks. The Gemini PDA, for example, is a landscape-mode clamshell device that, despite a great keyboard, is difficult to make and take calls on and only has one camera -- a front-facing unit for video calling. The Cosmo Communicator adds a small external touch screen for notifications and some basic functions plus a rear-facing camera, but you still have to open the clamshell to do anything productive. Read more

Four OS vendors support Huawei's openEuler-powered Linux distribution platform

The openEuler Community Charts New Territory, Boosting Innovation in the Multi-Core Heterogeneous Computing Industry As the founding enterprise and main initiator of openEuler, Huawei is continuously investing in open source communities. As an open community, openEuler is a shared stronghold co-built by more and more global developers. Read more

Why I switched from Mac to Linux

In 1994, my family bought a Macintosh Performa 475 as a home computer. I had used Macintosh SE computers in school and learned to type with Mavis Beacon Teaches Typing, so I've been a Mac user for well over 25 years. Back in the mid-1990s, I was attracted to its ease of use. It didn't start with a DOS command prompt; it opened to a friendly desktop. It was playful. And even though there was a lot less software for Macintosh than PCs, I thought the Mac ecosystem was better, just on the strength of KidPix and Hypercard, which I still think of as the unsurpassed, most intuitive creative stack. Even so, I still had the feeling that Mac was an underdog compared to Windows. I remember thinking the company could disappear one day. Flash-forward decades later, and Apple is a behemoth, a trillion-dollar company. But as it evolved, it changed significantly. Some changes have been for the better, such as better stabilization, simpler hardware choices, increased security, and more accessibility options. Other changes annoyed me—not all at once, but slowly. Most significantly, I am annoyed by Apple's closed ecosystem—the difficulty of accessing photos without iPhoto; the necessity of using iTunes; and the enforced bundling of the Apple store ecosystem even when I don't want to use it. Read more

Linux Candy: Steam Locomotive – fun command for your terminal

Who loves eye candy? Don’t be shy — you can raise both hands!! Linux Candy is a series of articles covering interesting eye candy software. We only feature open-source software in this series. Steam Locomotive is a tiny C program, written in 295 lines of code. It’s just a harmless bit of fun. Read more