Programming: scikit-survival, Igalia, GCC, GDB, LLVM/Clang, Rust, Python and More

  • scikit-survival 0.7 released

    This is a long overdue maintenance release of scikit-survival 0.7 that adds compatibility with Python 3.7 and scikit-learn 0.20. For a complete list of changes see the release notes.

  • Review of Igalia’s Web Platform activities (H2 2018)

    As mentioned in the previous report, Igalia has proposed and developed the specification for BigInt, enabling math on arbitrary-sized integers in JavaScript. We’ve continued to land patches for BigInt support in SpiderMonkey and JSC. For the latter, you can watch this video demonstrating the current support. Currently, these two support are under a preference flag but we hope to make it enable by default after we are done polishing the implementations. We also added support for BigInt to several Node.js APIs (e.g. fs.Stat or process.hrtime.bigint).

    Regarding “object-oriented” features, we submitted patches private and public instance fields support to JSC and they are pending review. At the same time, we are working on private methods for V8

    We contributed other nice features to V8 such as a spec change for template strings and iterator protocol, support for Object.fromEntries, Symbol.prototype.description, miscellaneous optimizations.

  • Zack’s Kernel News

    For a long time, the Linux kernel would only compile with the GNU C Compiler (GCC). Now, several compilers can do it, but each compiler has its own way of doing things, offering various extensions to the C language and optimizing code in different ways. The question of which compiler features to depend on can have an effect on whether other compilers can keep supporting Linux.

    Recently, Matthew Wilcox suggested using the -fplan9-extensions GCC option to handle some implicit type conversions. This way, a particular cyclic memory allocation could be made to embed a needed reference instead of requiring it to be passed explicitly to the function. If the code used the Plan 9 extensions, the functions would not need to be tweaked to accept the additional input.

  • GNU Debugger GDB 8.3 Is On Approach With Many Improvements

    The code for the GNU Debugger “GDB” was branched overnight ahead of the upcoming v8.3 release. This release adds for compilation and injection of C++ code, RISC-V improvements, terminal styling capabilities, and a lot more. 

  • AMD Zen 2 “znver2” Support Lands In LLVM Clang 9.0

    While it didn’t make it in time for the soon to be released LLVM 8.0, the latest LLVM/Clang 9.0 development code has just added support for the Zen 2 “znver2” processors.

    Back in October is when AMD published the Znver2 compiler patch for GCC that builds atop the existing Zen “znver1” support while adding in the new instructions of Cache Line Write Back (CLWB), Read Processor ID (RDPID), and Write Back and Do Not Invalidate Cache (WBNOINVD). It was the first-cut support and still leveraged the same cost tables and scheduler data from the current-generation Zen processors. That support was quickly merged, making it for the upcoming GCC 9.1 stable compiler release, so that when these next-generation processors hit it will be possible to use -march=znver2 for generating optimized code for these 7nm AMD CPUs.

  • Rust build scripts vs. Meson

    One of the pain points in trying to make Meson work with Rust and Cargo is Cargo’s use of build scripts, i.e. the build.rs that many Rust programs use for doing things before the main build. This post is about my exploration of what build.rs does.

    Thanks to Nirbheek Chauhan for his comments and additions to a draft of this article!

    TL;DR: build.rs is pretty ad-hoc and somewhat primitive, when compared to Meson’s very nice, high-level patterns for build-time things.

    I have the intuition that giving names to the things that are usually done in build.rs scripts, and creating abstractions for them, can make it easier later to implement those abstractions in terms of Meson. Maybe we can eliminate build.rs in most cases? Maybe Cargo can acquire higher-level concepts that plug well to Meson?

  • Talk Python to Me: #201 Choosing JupyterHub and Python over MATLAB
  • Planar graph layout, Pandemic
  • 9 resources for data science projects

read more

You may also like...