The Register

Biting the hand that feeds IT — Enterprise Technology News and Analysis

Valen creator drives 'Golden Spike' to connect new languages with Rust

Programming language generics can now ride in style from one language’s compiler to another and back again, thanks to experimental work from Mojo core contributor Evan Ovadia. This former Google engineer has endeavored to turn Rust into a library that other languages can build from, demonstrating a way to pass generic data types and functions between Rust and another language, an action the C ABI doesn’t support. “Technically, this is the most fascinating thing I’ve read in months,” enthused the host of the Let’s Get Rusty YouTube channel, explaining the work, which he characterized as “Rust++.” That's a geeky but hard-won victory to be sure. Ovadia describes his work in an explanatory blog post as the “Golden Spike” that intertwines two different languages, referring to the final spike hammered into the United States’ first transcontinental railroad line. Instead of being stripped down into raw primitives just to be crammed into the coarse wagons of C ABI, libraries of rich capability can be sped to foreign ecosystems on sturdy, high-speed rails. Ditching the C ABI at last The work came about in Ovadia’s effort to create his own language, Valen (an offshoot of an earlier effort called Vale), which he envisions as a speedier, more dev-friendly version of Rust. The problem with creating a new language from scratch, he reasoned, was that he couldn’t use his favorite Rust libraries (notably Rust’s bitchin’ wgpu graphics library). Today, a common way to use a library from one language in a program written in another is through the C ABI (application binary interface), a de facto interoperability layer that defines conventions for passing data and function calls between compiled code. (Rust has its own ABI, though it does not offer stability guarantees.) With the C ABI, if a Rust library exposes its functions as extern "C" and exposes its types as repr(C), then they can be accessed from another language using a Foreign Function Interface (FFI). All well and good, but the problem Ovadia had was that the C ABI did not understand the concept of generics (or placeholders for data types to be provided later), because C itself doesn’t understand the concept of generics. But Rust uses generics quite a bit, and so does Valen, though not in the same way. “So the central question, the central mystery to solve, is how do we do cross-language generics?” Ovadia wrote. Cross-language generics at last Getting two compilers to collaborate is super tricky, as compilers tend to be isolated entities, solitary kings of their own individual worlds. So Ovadia needed to come up with a way for Valen to call a Rust generic function, but also have a Rust generic function that calls back into Valen for needed values. After much rumination, Ovadia arrived at a two-part solution to cross-language generics: first, run the Rust compiler as a library. Surprisingly, Rust already possesses this capability (rustc_driver), which would allow Valen to embed rustc directly into its own memory space. The second step would be to patch Rust so that when it encounters non-Rust Valen types, it hands control over to the Valen compiler to handle its portion, and waits for the compiled result. Ovadia admits that patching the Rust compiler was the “nuclear option.” “Honestly, this was the riskiest part of the whole endeavor,” he wrote. The patch itself is only about 100 lines of code, but it is hacky and assumes Rust is using LLVM for machine code generation, which isn’t always the case. “It works, but it's definitely not upstreamable,” Ovadia wrote. Nonetheless, Ovadia’s cross-language bidirectional generics are a genuine step forward in programming language interoperability. Ovadia has his hands full with Valen at this point, though his cross-language generics work opens the possibility of using Rust to bootstrap other new languages that can be built from Rust libraries. Given a few modifications to Rust itself, the reliance on the creaky C ABI may one day be a thing of the past. On the Reddit and Lobste.rs programmer forums, observers praised Ovadia for tackling such a difficult problem, even as they fretted about the details. “I appreciate the move to replace C as the ‘universal FFI language,’” one commenter wrote. "It is a very bold choice and would require effort.” Another reader commented that Rust may not be the ideal language for interoperability, given the limitations of its own type system. “However, imagine you could build bindings on top of Ada! Now that would be amazing,” they wrote. ®

Microsoft cells out, crams multiple values into Excel boxes

Microsoft has ended 40 years of single-occupancy for Excel cells and is now allowing multiple values to inhabit the same home. "One of the oldest rules of spreadsheets: one cell, one value," said Jake Armstrong, senior product manager for Excel, in a LinkedIn post. "No longer!" "I’m excited to announce a set of new features: Lists, Arrays in Cells and Nested Arrays in Excel." For the time being, this capability is only available in Microsoft Excel for Windows and Mac Beta Channels. And it is opt-in. To make the case for lists in cells, Armstrong in a blog post explained that each Excel project can have multiple owners. "Traditionally, you'd need separate columns, helper tables, or text like 'Carlos, Henrietta, Jacob' packed into a single cell," he explained. "With lists, you can keep those values together in one cell while still working with each item individually. Project owners stay connected to the project they belong to, while remaining available for filtering, calculations, and analysis." And he goes on to cite the potential utility of arrays in cells and nested arrays for expanding the kinds of information that Excel spreadsheets can represent. Armstrong's enthusiasm for multi-value cells comes with a caveat that this is a preview feature and shouldn't be used in important workbooks until general availability. Among those commenting on Armstrong's LinkedIn post, several people suggested the change has the potential to break things and hinder auditability by making business logic less visible. External software libraries that expect cell.value to return only a string, number, boolean, or date may need to be updated to handle a new data type – though Microsoft hasn't yet published how lists, arrays in cells, and nested arrays will be represented in .xlsx XML. This includes libraries like openpyxl, pandas, and calamine. The same goes for applications that import Excel data and don't yet have any concept of multi-value cells, like CSV export, Google Sheets, LibreOffice, and older Excel builds. And users of Excel may need to flatten lists and arrays to make multi-value cells work with existing features like PivotTables, at least until those features have been adjusted to accommodate the new cell structure. ®

this isn't happiness.

ART, PHOTOGRAPHY, DESIGN & DISAPPOINTMENT INSTAGRAM ★ ELSEWHERES

The somnambulist, Nancy Rexroth

The somnambulist, Nancy Rexroth

Requiem for a dream, Sarah Theresa Lee

Requiem for a dream, Sarah Theresa Lee

Succulent, Tom Leighton

Succulent, Tom Leighton

Wel.nl

Minder lezen, Meer weten.

PRO en Volt trekken samen op in onderhandelingen met kabinet

DEN HAAG (ANP) - Progressief Nederland (PRO) en Volt trekken de komende tijd samen op in de onderhandelingen met het kabinet over de begroting voor 2027. Dat laten beide partijen vrijdagavond weten. Als het minderheidskabinet kan rekenen op de steun van deze twee partijen, is er een meerderheid in zowel de Tweede als Eerste Kamer.

Dit weekend gaat het kabinet opnieuw onderhandelen met oppositiepartijen. Vrijdag zei premier Rob Jetten dat er een nieuw kabinetsplan ligt op drie thema's: koopkracht, sociale zekerheid en vermogensbelasting.

Partijleiders Jesse Klaver en Laurens Dassen zullen gezamenlijk die gesprekken gaan voeren met de premier en Eelco Heinen, de minister van Financiën. De bewindslieden praten ook met JA21, SGP, ChristenUnie, 50PLUS en BBB. Het kabinet wil steun van zowel linkse als rechtse partijen voor de begrotingsplannen.

Prinsjesdagplannen

In de gesprekken voorafgaand aan Prinsjesdag trokken JA21 en SGP samen op in de gesprekken. Die twee partijen hebben samen wel genoeg zetels voor een meerderheid in de Tweede Kamer, maar niet in de senaat. De prinsjesdagplannen waren voor geen van de oppositiepartijen goed genoeg om steun toe te zeggen.

Volgende week debatteert de Tweede Kamer twee dagen lang over de financiën tijdens de Algemene Financiële Beschouwingen met VVD-minister Heinen.


Found Photograph

Thomas Hawk posted a photo:

Found Photograph

Good Morning Motel

Thomas Hawk posted a photo:

Good Morning Motel

Holy Ghost Revival

Thomas Hawk posted a photo:

Holy Ghost Revival

Found Photograph

Thomas Hawk posted a photo:

Found Photograph

The Truth is Plain to See

Thomas Hawk posted a photo:

The Truth is Plain to See

NIET naast powerbank-bommenlegger Camiel Eurlings gaan zitten in het Stamcafé

Mocht er nog ergens een goede imagodeskundige (niet deze) op zoek zijn naar een klusje dan kan die binnenkort even bellen met Camiel Eurlings. De CDA'er die zijn ministerspost verliet om meer tijd aan een gezin te besteden dat hij niet had, daarna opdook bij KLM, weer wegging wegens wanpresteren, een vrouwenmepper bleek, opstapte bij het IOC, daarna heel lang niet in het nieuws kwam en nu wel omdat hij een hele vlucht (met daarin onder meer het nichtje van Peter Bosz) heeft vertraagd door zijn powerbank te laten ontploffen, blijkt ook nog eens gewoon een hele vervelende man. Dat vertelt een ooggetuige aan onze favoriete Curaçaose website curacao.nu ("Ik wilde net mijn gin-tonic bestellen toen dat ding in de hens vloog", dat zijn quotes, red.), die de heer Eurlings netjes om wederhoor heeft gevraagd maar geen reactie ontving, waarschijnlijk omdat Camiel zijn hoofd te diep in zijn eigen bilnaad verstopt zit.

"Eurlings valt hem al vóór de brand op. Volgens de passagier wordt de oud-KLM-topman via een VIP-service aan boord gebracht en komen zowel de purser als de gezagvoerder hem begroeten. Omdat het toestel vertraging heeft, maakt Eurlings zich volgens de getuige zorgen over zijn aansluitende vlucht vanaf Bonaire. Hij laat naar diens waarneming meer dan eens de gezagvoerder bij zich komen om te vragen of hij die verbinding nog haalt. De passagier benadrukt dat Eurlings zich daarbij niet misdraagt. Wel krijgt hij de indruk dat de oud-KLM-topman zich bewust is van zijn vroegere positie binnen de maatschappij. „Hij misdroeg zich niet, maar hij beroept zich op een status die hij niet meer heeft”, zegt hij." 

Nee. Die status is ie wel een beetje kwijt ja.

Grounds of the Nagasaki Peace Museum

stan.jernigan has added a photo to the pool:

Grounds of the Nagasaki Peace Museum

I took this photo at the “Peace Museum” with my iPhone 17 Pro Max during a visit to the Peace Memorial Park in Nagasaki, Japan. If you have only one chance to visit Nagasaki, make it this one. It is truly a stunning place, surrounded by beautiful grounds. You won’t be disappointed…

Hope Monument

stan.jernigan has added a photo to the pool:

Hope Monument

I took this photo of the “Hope Monument” with my iPhone 17 Pro Max while visiting the Peace Park in Nagasaki, Japan. It is located near the Atomic Bomb Museum and the hypocenter. Built in August 2022 to mark the 25th anniversary of the High School Peace Messengers, it is made of red and black granite and features a central circular stone inscribed with the phrase "Though we are minor in power, we are not powerless…”

Urakamigawa River Promenade,

stan.jernigan has added a photo to the pool:

Urakamigawa River Promenade,

I took this photo of the pedestrian walkway along the waterfront at Nagasaki Seaside Park, known as the “Urakamigawa River Promenade,” with my iPhone 17 Pro Max during my visit to Nagasaki, Japan. The canal walk was calm, beautiful, and a delight to explore. It was one of the highlights of my visit…

Bij de Verenigde Naties in New York liet premier Jetten niets merken van de politieke crisis in Den Haag

Premier Jetten en enkele ministers probeerden de internationale positie van Nederland te versterken bij de VN in New York. Een kwestie van de lange adem, want „diplomatie is voortmodderen en ploeteren”. Na afloop moest Jetten terug naar Nederland om de binnenlandse politieke crisis te bezweren.


Red alert! Europe’s populist left is on the march, slowly

Populism isn’t just for right-wingers.


Een uitgekleed en geplaagd Nederlands Film Festival opent zwaar met ‘Downtown’, een film over de aidscrisis

Het financieel uitgeknepen Nederlands Film Festival in Utrecht kreeg deze zomer veel kritiek. Met de relevante, maar zware openingsfilm ‘Downtown’ van Michiel van Erp kan het festival beginnen.

VK: Voorpagina

Volkskrant.nl biedt het laatste nieuws, opinie en achtergronden

Man op klaarlichte dag doodgeschoten op vol terras in Amsterdam

kottke.org

Jason Kottke's weblog, home of fine hypertext products

What if America Went Completely Dark? “We came up with...

What if America Went Completely Dark? “We came up with some very astounding numbers. If you knock out nine total substations among those three grids, you can black out the entire United States.” And it could last months?