Language Selection

English French German Italian Portuguese Spanish

Programming: GCC, RcppEigen and Python

Filed under
Development
  • Introduce a new GCC option, --record-gcc-command-line
    I would like to propose the following patches which introduce a compile option --record-gcc-command-line. When passed to gcc, it saves the command line option into the produced object file. The option makes it trivial to trace back how a file was compiled and by which version of the gcc. It helps with debugging, reproducing bugs and repeating the build process.
    
    This option is similar to -frecord-gcc-switches. However, they have three fundamental differences: Firstly, -frecord-gcc-switches saves the internal state after the argv is processed and passed by the driver. As opposed to that, --record-gcc-command-line saves the command-line as received by the driver. Secondly, -frecord-gcc-switches saves the switches as separate entries into a mergeable string section. Therefore, the entries belonging to different object files get mixed up after being linked. The new --record-gcc-command-line, on the other hand, creates one entry per invocation. By doing so, it makes it clear which options were used together in a single gcc invocation. Lastly, --record-gcc-command-line also adds the version of the gcc into this single entry to make it clear which version of gcc was called with any given command line. This is useful in cases where .comment section reports multiple versions.
    
    While there are also similarities between the implementations of these two options, they are completely independent. These commands can be used separately or together without issues. I used the same section that -frecord-gcc-switches uses on purpose. I could not use the name -frecord-gcc-command-line for this option; because of a {f*} in the specs, which forwards all options starting with -f to cc1/cc1plus as is. This is not we want for this option. We would like to append it a filename as well to pass the argv of the driver to child processes.
    
    This functionality operates as the following: It saves gcc's argv into a temporary file, and passes --record-gcc-command-line <tempfilename> to cc1 or cc1plus. The functionality of the backend is implemented via a hook. This patch includes an example implementation of the hook for elf targets: elf_record_gcc_command_line function. This function reads the given file and writes gcc's version and the command line into a mergeable string section, .GCC.command.line.
    
    
  • GCC Developers Discuss New Option For Recording Compiler Flags / Details In Binaries

    GCC developers recently have been discussing a new proposal over an option for preserving the command-line flags/options used when building a binary as well as the associated compiler version.

    The proposal sent out last week was over a --record-gcc-command-line option to save the compiler options into the produced object file. The proposal is in the name of helping debugging, reproducing bugs, and repeating build process. There is already a -frecord-gcc-switches option that is somewhat similar in behavior but with key differences as explained in the proposal.

  • RcppEigen 0.3.3.7.0

    A new minor release 0.3.3.7.0 of RcppEigen arrived on CRAN today (and just went to Debian too) bringing support for Eigen 3.3.7 to R.

    This release comes almost a year after the previous minor release 0.3.3.5.0. Besides the upgrade to the new upstream version, it brings a few accumulated polishes to the some helper and setup functions, and switches to the very nice tinytest package for unit tests; see below for the full list. As before, we carry a few required changes to Eigen in a diff.

  • “Higher Performance Python” at PyDataCambridge 2019

    I’ve had the pleasure of speaking at the first PyDataCambridge conference (2019), this is the second PyData conference in the UK after PyDataLondon (which colleagues and I co-founded 6 years back). I’m super proud to see PyData spread to 6 regional meetups and now 2 UK conferences.

More in Tux Machines

today's leftovers

  • SUSE Linux Enterprise 12 Service Pack 5 is Generally Available

    As you know, SUSE Linux Enterprise service packs are released on a yearly cadence. Service Pack 5 is the next service pack since the release of Service Pack 4 in Dec 2018. In addition, Service Pack 5 is also the last service pack for SUSE Linux Enterprise 12 release. With the release of SUSE Linux Enterprise 12 Service Pack 5 on December 9th, general support for SUSE Linux Enterprise 12 Service Pack 4 will end on June 30th, 2020. Customers wishing to maintain support of their SUSE Linux Enterprise 12 Service Pack 4 installations after June 30, 2020 can continue support through the purchase of Long Term Service Pack Support. [...] If you are currently running SUSE Linux Enterprise 12 SP4, you can migrate to Service Pack 5 as part of your active subscription until June 30, 2020.

  • Developing Leaderboard for GNOME Hackers

    After completing my Google Summer of Code assignment, I had an idea in my mind for a project where the hard-working people on GNOME, known as GNOME Hackers, could be appreciated based on the amount of work they do for the FLOSS community. In the quest for the same, I wrote a leaderboard web app, GNOME Hackers. It was an awesome experience and I utilized my weekends very well by learning many new things. I will give a brief of them below.

  • Counting down the days using bash

    Need to know how many days there are before some important event? Let Linux bash and the date command help with that!

  • How to Boost Your Programming Skills

    Anyone with an old computer that they don't use anymore should install Ubuntu on it in order to improve their programming skills. It's a free Linux-based operating system that can run on a wide range of hardware. Successfully using Ubuntu will require you to learn more about Python, which is considered one of the most simplified and beginner-friendly programming languages in use today. - Bryce Welker, The Big 4 Accounting Firms

  • Canonical sponsors WSLConf at Microsoft HQ [Ed: Mark Shuttleworth donates money to Microsoft's attacks on GNU/Linux]

    Canonical is announcing today it will be a featured sponsor of WSLConf, the first conference dedicated to the Windows Subsystem for Linux (WSL) platform. WSLConf is scheduled for March 10th-11th, 2020 and is being held on the campus of Microsoft’s headquarters in Redmond, Washington. The conference brings together developers, start-up founders, academics, enterprise, community members, and teams from Microsoft and Canonical around Windows Subsystem for Linux. The conference will include two densely-packed days of presentations and workshops on the latest developments on the rapidly evolving platform.

  • Mozilla Addons Blog: Secure your addons.mozilla.org account with two-factor authentication

    Accounts on addons.mozilla.org (AMO) are integrated with Firefox Accounts, which lets you manage multiple Mozilla services from one login. To prevent unauthorized people from accessing your account, even if they obtain your password, we strongly recommend that you enable two-factor authentication (2FA). 2FA adds an extra layer of security to your account by adding an additional step to the login process to prove you are who you say you are. When logging in with 2FA enabled, you will be asked to provide a verification code from an authentication application, in addition to your user name and password. This article on support.mozilla.org includes a list of supported authenticator applications. Starting in early 2020, extension developers will be required to have 2FA enabled on AMO. This is intended to help prevent malicious actors from taking control of legitimate add-ons and their users. 2FA will not be required for submissions that use AMO’s upload API. Before this requirement goes into effect, we’ll be working closely with the Firefox Accounts team to make sure the 2FA setup and login experience on AMO is as smooth as possible. Once this requirement goes into effect, developers will be prompted to enable 2FA when making changes to their add-ons.

  • Embracing digital transformation with containerisation and Kubernetes

    While digital transformation is creating new business opportunities, it is also bringing a host of challenges and technological barriers with its wave of progress. With changes ongoing and always around the corner, organisations are having to re-evaluate how they can modernise their often-out-dated digital infrastructure in order to keep up. Is there any way to make the transition simpler? Enter Kubernetes. The word is taken from ancient Greek, where it translates as ‘helmsman’ or ‘pilot’. So, it makes sense that your IT business strategy can be guided, not through the Aegean, but through the waters of digital transformation towards stability and efficiency. What began life as Google’s original open source container-orchestration system, has now paved the way for a reliable precedent to automating, controlling and extending modern IT applications.

  • Datacenters Are Hungry For Servers Again

    Server consumption is a pretty good proxy for how enterprises of all shapes and sizes feel about their particular business. And judging by the number of machines and the aggregate revenue they drove in the third quarter – despite all of the uncertainty in the world – they must be feeling pretty good.

Devices: Btlejack, I2C, Congatec

  • Sniff, jam and hijack Bluetooth Low Energy devices with Btlejack

    Bluetooth Low Energy Swiss-army knife or Btlejack is a small software client designed to be used with the BBC Micro:Bit mini PC and can be used with one or more devices running a dedicated firmware. Once installed you will be able to sniff, jam and hijack Bluetooth Low Energy devices. Current version of this tool (2.0) supports BLE 4.x and 5.x. “Btlejack relies on one or more BBC Micro:Bit. devices running a dedicated firmware. You may also want to use an Adafruit’s Bluefruit LE sniffer or a nRF51822 Eval Kit, as we added support for these devices. The BLE 5.x support is limited, as it does only support the 1Mbps Uncoded PHY and does not support channel map updates.” “You need a UNIX based system (for example a Raspberry Pi). If you use the BBC Micro:Bit, you will need one to three Micro:Bit devices (three devices recommended) and for each device one free USB port. The power consumption of a Micro:Bit is rather low, so you can use a single USB port and a passive hub for powering the three recommended units.”

  • I2CMini is tiny USB to I2C Bridge for your PC or SBC (Crowdfunding)

    Last year, we wrote about Excamera Labs SPIDriver tool to control and monitor SPI devices from your computer, but this year the company launched another similar product for I2C: I2CDriver.

  • Congatec Conga-SMX8-Nano SMARC 2.0 CoM Features NXP i.MX 8M Nano Processor

    Congatec Announces Ultra-Low-Power SMARC 2.0 CoM Congatec has come out with a new CoM, the Conga-SMX8-Nano that carries up to 4x ARM Cortex-A53 and 1x Cortex-M7 cores with a full spectrum of options...

China orders officials to remove foreign tech from computers

China began building its own operating system to replace Microsoft Windows or iOS in 2013, with the help of a British company Canonical. Canonical was founded by South African entrepreneur Mark Shuttleworth to market commercial support and related services for Ubuntu, a Linux-based operating system which is open-source and not owned by an individual or company. Canonical provided technical support to build Chinese users an Ubuntu open-source operating system named Kylin, at the request of the Chinese Ministry of Industry and Information Technology. Earlier this year the US banned American companies from doing business with Chinese telecommunications company Huawei. Google, Intel and Qualcomm stopped working with the technology company. Prime Minister Boris Johnson hinted that the future of Chinese technology companies in the UK could be on the line after vowing not to involve Huawei in upcoming 5G networks if it would create a rift with security allies like the US. Read more

Android Leftovers