Subscribe Sign in

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

1 min read Rewritten in plain language

Devops

Show what we removed
  • An experiment is afoot to sidestep C as the language of interoperability with Rust.
  • Ovadia describes his work in an explanatory blog post as the “ Golden Spike ” that intertwines two different languages, referring to the final spike affected into the United States’ first transcontinental railroad line.
  • 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).
  • 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.

4 sentences from our version of the report, chosen to cover it. Nothing here is written; every line is in the article below. How

Headline check

All three things this headline claims are in the report.

Figures, names and quoted words in the headline, looked for in the report itself — not in the summary above. How this is checked

An experiment is afoot to sidestep C as the language of interoperability 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.

“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++.”

Ovadia describes his work in an explanatory blog post as the “ Golden Spike ” that intertwines two different languages, referring to the final spike affected into the United States’ first transcontinental railroad line.

The work came about in Ovadia’s effort to create his own language, Valen 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.

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).

After much rumination, Ovadia arrived at a two-part solution to cross-language generics: first, run the Rust compiler as a library. 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 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.

Shortened to 1 minute of reading, this version reads 8 on the Niral Score.

You are reading our version, not theirs. This is The Register's report shortened to its most important sentences, in plainer words, with verdicts and loaded words taken out. Plain description stays, and so do adjectives that carry a fact, such as "former" or "federal". The reporting, the facts and the quotations are theirs — quotations are never edited — and the indicators beside it measure this version. Hover or tap Adjectives to see every one left in the text.

How this outlet filed it, and how we rewrote it

No other newsroom we read has filed on this event, so there is nothing to compare it with yet.

Outlet Niral ScoreAdjectivesSourcingSentimentHappiness
The Registeras they published this story 11.7 18 43 0.2 51.2
Mundane Readneutralized from The Register 10.2 17 43 0.2 51.2

Sign in to react.

Comments

Nothing here yet.

Sign in to comment.

Questions

Readers can ask a question about this story here. Questions and answers are for subscribers. Sign in to read them.

Comments are read before they appear where anything in them needs a person to look. Nothing posted here is ever deleted; a comment taken down keeps its text and the reason, so the decision can be looked at again. How this works