Language Selection

English French German Italian Portuguese Spanish

LinuxLinks

Syndicate content
The Linux Portal Site
Updated: 1 hour 45 min ago

Linux at Home: Cooking with Linux

Friday 17th of April 2020 05:39:47 AM

Home cooking is an activity that's great for individuals as well as families, where we can teach our children the joy of creating freshly cooked home food.

The post Linux at Home: Cooking with Linux appeared first on LinuxLinks.

7 Best Free Linux Photo Management Software

Thursday 16th of April 2020 06:05:49 AM

Anyone with a large photo collection will know that cataloging and finding a specific picture can be very time consuming. The purpose of this article is to identify Linux software that helps manage your collection by using a number of different techniques including tagging and albums. Good software makes the task of deciding which photos to keep and which to delete less time consuming.

The post 7 Best Free Linux Photo Management Software appeared first on LinuxLinks.

Raspberry Pi 4: Chronicling the Desktop Experience – Taking Notes – Week 25

Wednesday 15th of April 2020 05:52:35 AM

Turn the Raspberry Pi 4 into a low power writing machine. Capture thoughts, ideas, to-do lists, and lots more with these notes applications.

The post Raspberry Pi 4: Chronicling the Desktop Experience – Taking Notes – Week 25 appeared first on LinuxLinks.

Introduction to R and RStudio for Data Science

Tuesday 14th of April 2020 06:07:41 AM

This is a short introductory training session on the use of R in data science.

The post Introduction to R and RStudio for Data Science appeared first on LinuxLinks.

5 Excellent Free Books to Learn Tcl

Monday 13th of April 2020 07:13:39 AM

Tcl (Tool Command Language) is a dynamic programming/scripting language based on concepts of Lisp, C, and Unix shells. Here's our recommended free Tcl books

The post 5 Excellent Free Books to Learn Tcl appeared first on LinuxLinks.

7 Best Sticky Note Applications

Friday 10th of April 2020 08:20:39 AM

A sticky note (often known as a Post-it Note) is a small piece of paper with a strip of glue on its back. Here's our recommended sticky notes tools.

The post 7 Best Sticky Note Applications appeared first on LinuxLinks.

Excellent Free Tutorials to Learn LaTeX

Thursday 9th of April 2020 01:25:56 PM

LaTeX is a professional document preparation system and document markup language written by Leslie Lamport. It’s a very mature system with development starting more than 30 years ago. Here's our recommended tutorials to learn LaTeX.

The post Excellent Free Tutorials to Learn LaTeX appeared first on LinuxLinks.

Raspberry Pi 4: Chronicling the Desktop Experience – Educational Games for Kids – Week 24

Wednesday 8th of April 2020 08:02:46 AM

With so many young children currently unable to follow their usual routine of going to school, playing with friends, and undertaking many hobbies, it's vital to keep them happy and learning.

The post Raspberry Pi 4: Chronicling the Desktop Experience – Educational Games for Kids – Week 24 appeared first on LinuxLinks.

Excellent Free Tutorials to Learn CoffeeScript

Tuesday 7th of April 2020 07:10:34 PM

CoffeeScript is a very succinct programming language that transcompiles into JavaScript, so there is no interpretation at runtime.

The post Excellent Free Tutorials to Learn CoffeeScript appeared first on LinuxLinks.

Beets – music tagger and library organizer using the MusicBrainz database

Monday 6th of April 2020 05:41:03 AM

Beets is a media library management system. Beets is free and open source software. It's a tool for getting your music into shape. Here's my verdict.

The post Beets – music tagger and library organizer using the MusicBrainz database appeared first on LinuxLinks.

Excellent Console-Based YouTube Tools

Friday 3rd of April 2020 10:06:53 AM

A common complaint about YouTube is that to watch the material you need to use a web browser. Fortunately, some funky developers have created applications that allow you to bypass the web-only barrier of YouTube. Here's our recommended CLI YouTube tools.

The post Excellent Console-Based YouTube Tools appeared first on LinuxLinks.

Excellent Free Tutorials to Learn BASIC

Thursday 2nd of April 2020 08:43:17 AM

BASIC (Beginner’s All-purpose Symbolic Instruction Code) is a family of general-purpose, high-level programming languages whose design philosophy emphasizes ease of use. Here's our recommended free tutorials to learn BASIC.

The post Excellent Free Tutorials to Learn BASIC appeared first on LinuxLinks.

Raspberry Pi 4: Chronicling the Desktop Experience – Viewing Photos – Week 23

Wednesday 1st of April 2020 05:46:05 AM

This week, I'm examining photo viewer software on the RPI4. There's lots of open source photo viewers, so I focus on gThumb, feh, GPicView, and QuickViewer.

The post Raspberry Pi 4: Chronicling the Desktop Experience – Viewing Photos – Week 23 appeared first on LinuxLinks.

Excellent Free Tutorials to Learn Racket

Tuesday 31st of March 2020 06:15:25 AM

Racket is a general-purpose, object-oriented, multi-paradigm, functional, imperative, logic based programming language based on the Scheme dialect of Lisp.

The post Excellent Free Tutorials to Learn Racket appeared first on LinuxLinks.

Linux Candy: Steam Locomotive – fun command for your terminal

Monday 30th of March 2020 06:48:18 AM

Steam Locomotive is a fun command that's designed to teach you one thing. Stop mistyping ls!

The post Linux Candy: Steam Locomotive – fun command for your terminal appeared first on LinuxLinks.

13 Nifty Free Image Viewers

Friday 27th of March 2020 07:37:24 AM

One of my favorite adages is "A picture is worth a thousand words". It refers to the notion that a still image can convey a complex idea. Images can portray a lot of information quickly and more efficiently than text. They capture memories, and never let you forget something you want to remember, and refresh it in your memory.

The post 13 Nifty Free Image Viewers appeared first on LinuxLinks.

Excellent Free Tutorials to Learn Awk

Thursday 26th of March 2020 06:43:38 AM

Awk is small, fast, simple, and has a clean comprehensible C-like input language. It has robust programming constructs. Here's our recommended tutorials.

The post Excellent Free Tutorials to Learn Awk appeared first on LinuxLinks.

Raspberry Pi 4: Chronicling the Desktop Experience – Podcasts – Week 22

Wednesday 25th of March 2020 06:27:21 AM

Podcasts are big business. We see celebrities, influencers, journalists, academics, one man and his dog owning a microphone and mixing desk produce regular podcast shows. How does the RPI4 fare as a podcast player?

The post Raspberry Pi 4: Chronicling the Desktop Experience – Podcasts – Week 22 appeared first on LinuxLinks.

Excellent Free Tutorials to Learn OCaml

Tuesday 24th of March 2020 08:23:33 AM

The OCaml system is the main implementation of the Caml language. It has a very strong type-checking system, offers a powerful module system, and more. Here's good OCaml tutorials.

The post Excellent Free Tutorials to Learn OCaml appeared first on LinuxLinks.

22 Best Open Source Linux Note Takers

Monday 23rd of March 2020 07:43:46 AM

We have compiled this roundup of our pick of 22 high quality note applications for organizing, sharing, and taking notes. Besides the basic note-taking functionality, the software featured here provides a good array of advanced features. We strongly believe in open source software; all of the applications listed here are released under a freely distributable license.

The post 22 Best Open Source Linux Note Takers appeared first on LinuxLinks.

More in Tux Machines

NanoPi NEO3 Headless SBC Launched for $20 and up

Last month, we found out FriendlyELEC was working on NanoPi NEO3, a tiny SBC powered by Rockchip RK3328 processor and made for headless applications and networked storage thanks to Gigabit Ethernet and USB 3.0 ports, as well as a 26-pin GPIO header. At the time, the board was still been finalized, but the company has now started to take orders for $20 and up depending on options which include a cute white enclosure... [...] The Wiki has been updated as well, and the company provides both Ubuntu Core 18.04 based FriendlyCore, and OpenWrt based FriendlyWrt operating systems for the board with both relying on Linux 5.4.12 kernel. I’d also expect Armbian to eventually provide Ubuntu 20.04 and Debian 10 images. Read more

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