Language Selection

English French German Italian Portuguese Spanish

Development

LLVM/AOCC, GCC at AMD

Filed under
Development
GNU
Hardware
  • Radeon GCC Back-End Updated For Running Single-Threaded C & Fortran On AMD GPUs

    Back in September Code Sourcery / Mentor Graphics posted the Radeon GCC back-end they have been developing with the cooperation of AMD. This is for allowing the GCC compiler to eventually offload nicely to Radeon GPUs with its different programming languages and supported parallel programming models, particularly with OpenMP and OpenACC in mind. But for now this patch series just works with single-threaded C and Fortran programs. The second version of this port was posted for review.

    Hitting the GCC mailing list on Friday was the updated version of this AMD GCN port targeting Tonga/Fiji through Vega graphics hardware. Code Sourcery will post the OpenACC/OpenMP support bits at a later date while for now the code works with single-threaded C/Fortran programs with C++ not yet supported, among other initial shortcomings. For now the AMDGPU LLVM back-end is far more mature in comparison, which is what's currently used by the open-source AMD Linux driver compute and graphics stacks.

  • AMD Optimizing C/C++ Compiler 1.3 Brings More Zen Tuning

    Earlier this month AMD quietly released a new version of their Optimizing C/C++ compiler in the form of AOCC 1.3. This new compiler release has more Zen tuning to try to squeeze even more performance out of Ryzen/EPYC systems when using their LLVM-based compiler.

    The AMD Optimizing C/C++ Compiler remains AMD's high performance compiler for Zen compared to the earlier AMD Open64 Compiler up through the Bulldozer days. AOCC is based on LLVM Clang with various patches added in. Fortunately, with time at least a lot of the AOCC patches do appear to work their way into upstream LLVM Clang. AOCC also has experimental Fortran language support using the "Flang" front-end that isn't as nearly mature as Clang.

GitHub alternative strives to be all open source, only open source

Filed under
Development

A new software service for hosting and managing open source projects, Sr.ht, aims to be an entirely open source alternative to existing services like GitHub, GitLab, and Bitbucket, recreating many of their features.

Created by Drew DeVault and written in a mixture of Python and Go, Sr.ht is now available for public alpha testing by developers. Users can create an account with the hosted version provided by DeVault, or set up the exact same code on cloud or on-prem hardware.

Read more

Programming: Java EE, Rust, JavaScript, RcppGetconf and More

Filed under
Development
  • Free Online Java EE Development Course From Red Hat Available Now

    The Red Hat Training team is pleased to announce the release of Fundamentals of Java EE Development. This free training is hosted by our partner edX. edX is an open online course provider that now hosts three Red Hat courses, including Fundamentals of Red Hat Enterprise Linux and Fundamentals of Containers, Kubernetes, and Red Hat OpenShift.

    Enterprise Java (Java EE is now known as Jakarta EE) is one of the most in-demand and marketable programming platforms. With Fundamentals of Java EE Development, students learn the foundational skills needed to develop modern applications. Serving as an introduction to enterprise Java development using Red Hat Developer Studio and Red Hat JBoss Enterprise Application Platform, this course builds on students’ Java SE skills to teach the basic concepts behind more advanced topics such as microservices and cloud-native applications.

  • New Rust Course - Building Reuseable Code with Rust

    This course is about the Rust programming language, but it’s not those general introductory course on basic Rust syntax. This course focus on the code reuse aspect of the Rust language. So we won’t be touch every language feature, but we’ll help you understand how a selected set of features will help you achieve code reuse.

    [...]

    snippet is not enough. What comes next naturally is to define a clear interface, or internal API between the modules (in a general sense, not the Rust mod). This is when traits comes in handy. Traits help you define and enforce interfaces. We’ll also discuss the performance impact on static dispatch vs. dynamic dispatch by using generics and trait object.

    Finally we talk about more advanced (i.e. you shouldn’t use it unless necessary) tool like macros, which will help do crazier things by tapping directly into the compiler. You can write function-like macros that can help you reuse code that needs lower level access. You can also create custom derive with macros.

  • What is the MEAN stack? JavaScript web applications

    Most anyone who has developed web applications knows the acronym LAMP, which is used to describe web stacks made with Linux, Apache (web server), MySQL (database server), and PHP, Perl, or Python (programming language).

    Another web-stack acronym has come to prominence in the last few years: MEAN—signifying a stack that uses MongoDB (database server), Express (server-side JavaScript framework), Angular (client-side JavaScript framework), and Node.js (JavaScript runtime).

  • RcppGetconf 0.0.3

    Changes are minor. We avoid an error on a long-dead operating system cherished in one particular corner of the CRAN world. In doing so some files were updated so that dynamically loaded routines are now registered too.

  • The performance impact of zeroing raw memory

    When you create a new variable (in C, C++ and other languages) or allocate a block of memory the value is undefined. That is, whatever bit pattern happened to be in the raw memory location at the time. This is faster than initialising all memory (which languages such as Java do) but it is also unsafe and can lead to bugs, such as use-after-free issues.

    There have been several attempts to change this behaviour and require that compilers would initialize all memory to a known value, usually zero. This is always rejected with a statement like "that would cause a performance degradation fo unknown size" and the issue is dropped. This is not very scientific so let's see if we could get at least some sort of a measurement for this.

Programming Leftovers

Filed under
Development
  • Introducing rpm-macros-virtualenv 0.0.1

    This is a small set of RPM macros, which can be used by the spec files to build and package any Python application along with a virtualenv. Thus, removing the need of installing all dependencies via dnf/rpm repository. One of the biggest usecase will be to help to install latest application code and all the latest dependencies into a virtualenv and also package the whole virtualenv into the RPM package.

    This will be useful for any third part vendor/ISV, who would want to package their Python application for Fedora/RHEL/CentOS along with the dependencies. But, remember not to use this for any package inside of Fedora land as this does not follow the Fedora packaging guidelines.

  • Program Synthesis is Possible in Rust

    Program synthesis is the act of automatically constructing a program that fulfills a given specification. Perhaps you are interested in sketching a program, leaving parts of it incomplete, and then having a tool fill in those missing bits for you? Or perhaps you are a compiler, and you have some instruction sequence, but you want to find an equivalent-but-better instruction sequence? Program synthesizers promise to help you out in these situations!

    I recently stumbled across Adrian Sampson’s Program Synthesis is Possible blog post. Adrian describes and implements minisynth, a toy program synthesizer that generates constants for holes in a template program when given a specification. What fun! As a way to learn more about program synthesis myself, I ported minisynth to Rust.

  • The devil makes work for idle processes

    TLDR: in Endless OS, we switched the IO scheduler from CFQ to BFQ, and set the IO priority of the threads doing Flatpak downloads, installs and upgrades to “idle”; this makes the interactive performance of the system while doing Flatpak operations indistinguishable from when the system is idle.

    At Endless, we’ve been vaguely aware for a while that trying to use your computer while installing or updating apps is a bit painful, particularly on spinning-disk systems, because of the sheer volume of IO performed by the installation/update process. This was never particularly high priority, since app installations are user-initiated, and until recently, so were app updates.

  • Rcpp now used by 1500 CRAN packages

    Right now Rcpp stands at 1500 reverse-dependencies on CRAN. The graph is on the left depicts the growth of Rcpp usage (as measured by Depends, Imports and LinkingTo, but excluding Suggests) over time. What an amazing few days this has been as we also just marked the tenth anniversary and the big one dot oh release.

  • Python in RHEL 8

    Ten years ago, the developers of the Python programming language decided to clean things up and release a backwards-incompatible version, Python 3. They initially underestimated the impact of the changes, and the popularity of the language. Still, in the last decade, the vast majority of community projects has migrated to the new version, and major projects are now dropping support for Python 2.

    In Red Hat Enterprise Linux 8, Python 3.6 is the default. But Python 2 remains available in RHEL 8.

  • How to stand out, and get hired, at Grace Hopper Celebration

    During the 2018 Grace Hopper Celebration of Women in Computing (GHC), attendees flooded the George Brown Convention Center in Houston Texas to network, learn and share information in celebration of women technologists. For students at GHC, the expo hall also doubled as a career fair. Here’s how to stand out when you’re trying to leave GHC with opportunities to chart your own path in technology.

    Recruiters, engineers, scientists and technologists were stationed at company booths to talk about their workplaces. They screened resumes, interviewed candidates and shared their experiences.

    This year I was able to attend GHC for the first time, not as a student seeking a position but as an employee of Red Hat. At Red Hat we do many things differently, interviewing at GHC is one of those things. Red Hat is seeking associates who possess both a strong technical aptitude as well as a passion for our products and services.

  • Vim in the Future

     

    I have learned Vim as a programming-centric tool, but I use it for other tasks, too. This post assumes a reader isn’t necessarily a programmer but is curious about how tech things get done.

Programming: WebRender, Healthcare Design Studio GoInvo, PHP Boost and Google Cloud Platform (GCP)

Filed under
Development
  • Mozilla GFX: WebRender newsletter #30

    Hi! This is the 30th issue of WebRender’s most famous newsletter. At the top of each newsletter I try to dedicate a few paragraphs to some historical/technical details of the project. Today I’ll write about blob images.

    WebRender currently doesn’t support the full set of graphics primitives required to render all web pages. The focus so far has been on doing a good job of rendering the most common elements and providing a fall-back for the rest. We call this fall-back mechanism “blob images”.

    The general idea is that when we encounter unsupported primitives during displaylist building we create an image object and instead of backing it with pixel data or a texture handle, we assign it a serialized list of drawing commands (the blob). For WebRender, blobs are just opaque buffers of bytes and a handler object is provided by the embedder (Gecko in our case) to turn this opaque buffer into actual pixels that can be used as regular images by the rest of the rendering pipeline.

  • Healthcare Design Studio GoInvo Releases Open Source Research on Loneliness [Ed: Very odd if not 'creative' use of the term Open Source]
  • PHP Lands Preload Feature, Boosting Performance In Some Cases 30~50%

    PHP developers unanimously approved and already merged support for the new "preloading" concept for this web server language. PHP preloading basically allows loading PHP code that persists as long as the web server is running and that code will always be ready for each subsequent web request, which in some cases will dramatically speed-up the PHP performance on web servers.

    While PHP has long supported caching to avoid PHP code recompilation on each new web request, with each request PHP has still had to check to see if any of the source file(s) were modified, re-link class dependencies, and similar work. PHP preloading allows for given functions/classes to be "preloaded" that will survive as long as the web server is active. It effectively allows loading of functions or entire/partial frameworks that will then be present for each new web request just as if it were a built-in function.

  • Google Announces a Managed Cron Service: Google Cloud Scheduler

    Google announced a new Service on the Google Cloud Platform (GCP) - Cloud Scheduler, a fully managed cron job service that allows any application to invoke batch, big data and cloud infrastructure operations. The service is currently available in beta.

    With Google Cloud Scheduler customers can use the cron service with no need to manage the underlying infrastructure. There is also no need to manually intervene in the event of transient failure, as the services retries failed jobs. Furthermore, customers will only pay for the operations they run -- GCP takes care of all resource provisioning, replication and scaling required to operate Cloud Scheduler. Also, customers can, according to Vinod Ramachandran, product manager at Google, benefit from:

A "joke" in the glibc manual

Filed under
Development
GNU

A "joke" in the glibc manual—targeting a topic that is, at best, sensitive—has come up for discussion on the glibc-alpha mailing list again. When we looked at the controversy in May, Richard Stallman had put his foot down and a patch removing the joke—though opinions of its amusement value vary—was reverted. Shortly after that article was published, a "cool down period" was requested (and honored), but that time has expired. Other developments in the GNU project have given some reason to believe that the time is ripe to finally purge the joke, but that may not work out any better than the last attempt.

The joke in question refers to a US government "censorship rule" from over two decades ago regarding sharing of information about abortion. It is attached to documentation of the abort() call in glibc and the text of it can be seen in the patch to remove it. One might think that an age-old US-centric joke would be a good candidate for removal regardless of its subject matter. That it touches on a topic that is emotionally fraught for many might also make it unwelcoming—thus unwelcome in documentation. But, according to Stallman, that's not so clear cut.

[...]

When pressed for more information about what these larger issues are, as O'Donell did, Stallman counseled patience. He did not offer any more information than that; perhaps the discussion has moved to a private mailing list or the like.

For many, including me, it is a little hard to understand why there is any opposition to removing the joke at all. It is clearly out of place, not particularly funny, and doesn't really push the GNU anti-censorship philosophy forward in any real way even if you grant that anti-censorship is a goal of the project (which some do not). There are, of course, those who oppose removing it because they are opposed to "political correctness" and do not see how it could be "unwelcoming", but even they might concede that it is an oddity that is poked into a back corner of a entirely unrelated document. And it is not hard for many to see that tying the topic of abortion to a C function might be upsetting to some; why waste a bunch of project time defending it when it has effectively no impact in the direction that Stallman wants, while putting off some (possibly small) percentage of glibc manual readers?

Read more

GNOME Development Updates From Carlos Garnacho and Robert Ancell

Filed under
Development
GNOME
  • Carlos Garnacho: On the track for 3.32

    It happens sneakily, but there’s more things going on in the Tracker front than the occasional fallout. Yesterday 2.2.0-alpha1 was released, containing some notable changes.

    On and off during the last year, I’ve been working on a massive rework of the SPARQL parser. The current parser was fairly solid, but hard to extend for some of the syntax in the SPARQL 1.1 spec. After multiple attempts and failures at implementing property paths, I convinced myself this was the way forward.

  • Robert Ancell: Counting Code in GNOME Settings

    I've been spending a bit of time recently working on GNOME Settings. One part of this has been bringing some of the older panel code up to modern standards, one of which is making use of GtkBuilder templates.

    I wondered if any of these changes would show in the stats, so I wrote a program to analyse each branch in the git repository and break down the code between C and GtkBuilder.

OpenJDK (Java Development Kit) and Java Community Process (JCP)

Filed under
Development
  • Amazon Web Services promises to support OpenJDK through 2023 with release of internal tool as new open source project

    Developers using the popular OpenJDK (Java Development Kit) software tool can breathe a little easier Wednesday after Amazon Web Services announced it would support the tool with bug fixes and enhancements for the next several years with the release of an internally developed implementation of OpenJDK known as Amazon Coretto.

    Announced at Devoxx in Europe Wednesday, Coretto is an open-source distribution of OpenJDK developed for internal use at Amazon to manage Java applications. While Java is widely used to build enterprise applications, the future of OpenJDK has been in doubt thanks to Oracle’s decision to end support for the free version of OpenJDK as of this coming January.

  • One More Reaction to IBM's Acquisition of Red Hat

    Now that the dust has settled around the explosive announcement that IBM will be acquiring open source software provider and longtime Java Community Process (JCP) leader Red Hat, I wanted to share the reaction to the deal of one of the keenest (and most fearless) observers of the Java universe.

Programming: Compilers and Perl

Filed under
Development
  • ARMv8.5 Support Lands In GCC Compiler With Latest Spectre Protection

    Landing just in time with the GCC 9 branching being imminent is ARMv8.5-A support in the GNU Compiler Collection's ARM64/AArch64 back-end.

    This ARMv8.5-A support is an incremental upgrade over the existing ARMv8 support. The ARMv8.5 additions are similar to what we already saw land for LLVM / Clang.

  • Comparing The Quality Of Debug Information Produced By Clang And Gcc

    I've had an intuition that clang produces generally worse debuginfo than gcc for optimized C++ code. It seems that clang builds have more variables "optimized out" — i.e. when stopped inside a function where a variable is in scope, the compiler's generated debuginfo does not describe the value of the variable. This makes debuggers less effective, so I've attempted some qualitative analysis of the issue.

    I chose to measure, for each parameter and local variable, the range of instruction bytes within its function over which the debuginfo can produce a value for this variable, and also the range of instruction bytes over which the debuginfo says the variable is in scope (i.e. the number of instruction bytes in the enclosing lexical block or function). I add those up over all variables, and compute the ratio of variable-defined-bytes to variable-in-scope-bytes. The higher this "definition coverage" ratio, the better.

  • Quo vadis, Perl?

    By losing the sight of the strategies in play, I feel the discussion degenerated very early in personal accusations that certainly leave scars while not resulting in even a hint of progress. We are not unique in this situation, see the recent example of the toll it took on Guido van Rossum. I can only sympathize with Larry is feeling these days.

4 tips for learning Golang

Filed under
Development
Google

My university's freshman programming class was taught using VAX assembler. In data structures class, we used Pascal—loaded via diskette on tired, old PCs in the library's computer center. In one upper-level course, I had a professor that loved to show all examples in ADA. I learned a bit of C via playing with various Unix utilities' source code on our Sun workstations. At IBM we used C—and some x86 assembler—for the OS/2 source code, and we heavily used C++'s object-oriented features for a joint project with Apple. I learned shell scripting soon after, starting with csh, but moving to Bash after finding Linux in the mid-'90s. I was thrust into learning m4 (arguably more of a macro-processor than a programming language) while working on the just-in-time (JIT) compiler in IBM's custom JVM code when porting it to Linux in the late '90s.

Read more

Syndicate content

More in Tux Machines

A Linux/Android kit tablet and "the tiny single-board computers called Raspberry Pi"

  • A Linux/Android kit tablet
    I would like to introduce Diskio Pi, a kit tablet compatible Raspberry Pi and Odroid small boards computer.
  • Raspberry Pi OS Raspbian Now Features VLC Media Player, Minimal Install Image
    The Raspberry Pi Foundation released a new version of its Debian-based Raspbian Linux operating system for Raspberry Pi devices, a release that adds new features, updates, and many other interesting things. Raspbian 2018-11-13 is now the latest version of the Linux and Debian-based operating system for the tiny single-board computers called Raspberry Pi, introducing a new default media player, namely VLC Media Player, with fully hardware-accelerated support through VideoCore’s video engine for H.264, VC-1, and MPEG-2 formats.

OSS Leftovers

  • 5 Best Chrome Extensions For Reading News In 2019
    The internet is the major source of news for many of us, and we spend a lot of time reading articles to stay updated. There are many news sources available that offer various categories of news. However, it is a time-consuming task to open each of those websites.
  • 6 Essential Tips for Safe Online Shopping
    The turkey sandwiches are in the fridge, and you didn’t argue with your uncle. It’s time to knock out that gift list, and if you’re like millions of Americans, you’re probably shopping online.
  • Elementary Bugs
    Mozilla is a well-known open-source organization, and thus draws a lot of interested contributors. But Mozilla is huge, and even the more limited scope of Firefox development is a wilderness to a newcomer. We have developed various tools to address this, one of which was an Outreachy project by Fienny Angelina called Codetribute. The site aggregates bugs that experienced developers have identified as good for new contributors (“good first bugs”, although often they are features or tasks) across Bugzilla and Github. It’s useful both for self-motivated contributors and for those looking for starting point for a deeper engagement with Mozilla (an internship or even a full-time job). However, it’s been tricky to help developers identify good-first-bugs.
  • Open Source Cloudify 4.5 Extends its Cloud Native Orchestration to the Network - from Core to Edge [Ed: Another example of proprietary and "Community" edition for openwashing purposes]
  • Why some open-source companies are considering a more closed approach
    “I would put it in a very blunt way: for many years we were suckers, and let them take what we developed and make tons of money on this.” Redis Labs CEO Ofer Bengal doesn’t mince words. His company, known for its open-source in-memory database, has been around for eight years, an eternity in the fast-changing world of modern enterprise software. Cloud computing was very much underway in 2011, but it was still a tool for early adopters or startups that couldn’t afford to bet millions on servers to incubate a promising but unproven idea. Most established companies were still building their own tech infrastructure the old-fashioned way, but they were increasingly realizing that open-source software would allow them to build that infrastructure with open-source components in ways that were much more flexible and cheaper than proprietary packages from traditional enterprise software companies.
  • Rob Port: Audit: North Dakota’s use of open source textbooks has saved North Dakota students a lot of money
    For generations now the cost of higher education has been out of control. This isn’t exactly news to you, I’m sure, but it may surprise you to know that the cost of textbooks has grown even faster than the rapid increase in tuition costs.
  • Envoy and gRPC-Web: a fresh new alternative to REST
    Personally, I’d been intrigued by gRPC-Web since I first read about it in a blog post on the Improbable engineering blog. I’ve always loved gRPC’s performance, scalability, and IDL-driven approach to service interaction and have longed for a way to eliminate REST from the service path if possible. I’m excited that gRPC-Web is ready for prime time because I think it opens up some extremely promising horizons in web development.
  • 2018 LLVM Developers' Meeting Videos Now Online
    For those wishing to learn more about the LLVM compiler stack and open-source compiler toolchains in general, the videos from October's LLVM Developers' Meeting 2018 in San Jose are now online.
  • OpenBSD in Stereo with Linux VFIO

    Now, after some extensive reverse engineering and debugging with the help of VFIO on Linux, I finally have audio playing out of both speakers on OpenBSD.

  • RcppMsgPack 0.2.3
    Another maintenance release of RcppMsgPack got onto CRAN today. Two new helper functions were added and not unlike the previous 0.2.2 release in, some additional changes are internal and should allow compilation on all CRAN systems. MessagePack itself is an efficient binary serialization format. It lets you exchange data among multiple languages like JSON. But it is faster and smaller. Small integers are encoded into a single byte, and typical short strings require only one extra byte in addition to the strings themselves. RcppMsgPack brings both the C++ headers of MessagePack as well as clever code (in both R and C++) Travers wrote to access MsgPack-encoded objects directly from R.

Server: FOSS at the Back End of 'Cloud'

  • Google, Amazon and Facebook Embrace Open Source Software As Future
    Open source coding lets users collaborate on software code, giving them the ability to store and edit code independently. It is designed to make projects built with its software publicly accessible, and has been the key to success for companies like Airbnb and Uber, which have made their fortunes by offering services, rather than the software itself. “The previous generation of developers grew up in a world where there was a battle between closed and open source,” said GitHub's Ben Balter, a researcher with the web-based hosting service for source code and open source software projects. “Today, that is no longer true.”
  • AWS Developing New Services Amid Open-Source Tensions
    Companies that manage open-source software have a message for cloud computing providers like Amazon: pay up, share your code or stop using our technology for free.
  • AWS develops new services amid open-source pushback
    Last month, MongoDB changed its licensing to put the Community Server software under a SSPL license, which lets cloud providers offer MongoDB as a service but only if they open source all of the related code or create a commercial agreement.
  • Urvika Gola: Attending ReactConf’18 in Henderson, Nevada
    Day 2 of React Conf, started with talking about how performance is integral to UX. Code Splitting, a concept were instead of sending the whole code in the initial payload, we send what’s needed to render the first screen and later, lazily loading the rest based on subsequent navigation. A most common problem while implementing code splitting can be ‘what do you display to the user if the view hasn’t finished loading?’ Maybe a spinner, loader, placeholder…?? But lot of these degrades the UX. Then came Concurrent React into the picture, Concurrent React can work on multiple tasks at a time and switch between them according to priority. Concurrent React can partially render a tree without committing the result and does not block the main thread.
  • OpenStack Rebranding Infrastructure Team as OpenDev
    OpenStack is one of the largest open source efforts in the world, with a large infrastructure that is used to build, develop and test the cloud platform. The infrastructure effort is now being rebranded as OpenDev as OpenStack continues to evolve. In a session, at the OpenStack Summit in Berlin, Germany last week, Clark Boylan team lead for the OpenStack Infrastructure team outlined how things are set to change as OpenStack moves beyond its core project to embrace a broader group of Open Infrastructure efforts. "We basically act as beta testers for the infrastructure and make sure things work," Boylan. "If it works for us, it'll probably work for you too."

Unhappy With Apple

  • New iPad Pro Reportedly Suffering From Bending Issues
    It has not been one month since Apple launched its latest iPad Pro models. It has been found that the nearly bezel-less iPad Pro models are prone to bending issues. In a durability test video by the famous YouTuber JerryRigEverything, iPad Pro models bent when a slight force was applied to it. Many new iPad owners also took to MacRumor’s forum to complain about the bending of the latest iPad.
  • How Apple tricked me into buying a new MacBook Air
     

    I have been using MacBook Air laptops for several years now and I like them much better than anything in the Windows space. However, my experience has been far from problem-free and I am angry at what I believe is a deceptive business practice designed to screw money out of loyal users.  

     

    [...]

     

    So for $175 I got my computer completely fixed after being told by both Apple and an Authorised Apple repairer that it could not be salvaged. Furthermore, I subsequently discovered through online inquiry that this particular keyboard had a design fault and that I was not to blame at all for the damage. I had been tricked into buying a new computer needlessly.