Live data from Hacker News

The Rune Programming Language

github.com

51–60 of 203 posts

Re: The Rune Programming Language

#51
It's got some novel ideas: better than many new languages!

Don't quite grok why it eliminates the need for ref counting though. Tree structures are fine when you have them, but frequently you don't. The docs claim Rune programmers never write destructors even though there's no GC, so is there no equivalent of RAII? How do you model graphs?

The constant time stuff doesn't matter. Virtually nothing needs to be constant time like that and when it does you're probably writing in assembly anyway.

Re: The Rune Programming Language

#53
> The only close competitor is C++, where the author uses the little-known MemoryPool class from the library.

I was like I know C++ and I’ve never heard of MemoryPool.

Turns out that MemoryPool doesn’t exist in . In the source code they’re talking about it’s an alias to std::pmr::monotonic_buffer_resource.

https://benchmarksgame-team.pages.debian.net/benchmarksgame/...

Re: The Rune Programming Language

#54

It's got some novel ideas: better than many new languages! Don't quite grok why it eliminates the need for ref counting though. Tree structures are fine when you have them, but frequently you don't. The docs claim Rune programmers never write destructors even though there's no GC, so is there no equivalent of RAII? How do you model graphs? The constant time stuff doesn't matter. Virtually nothing needs to be constant…

I think the point behind "constant time" here is that the comparison always takes the same amount of time, and not based on how many characters in the two strings are equal, to prevent a timing attack. "Constant time" isn't very accurate here because given a choice of hashing algorithm, the hash is a fixed-length string and therefore even a trivial string comparison technically "runs in constant time", at least if we allow the typical abuses of language in CS.

Re: The Rune Programming Language

#55

It's got some novel ideas: better than many new languages! Don't quite grok why it eliminates the need for ref counting though. Tree structures are fine when you have them, but frequently you don't. The docs claim Rune programmers never write destructors even though there's no GC, so is there no equivalent of RAII? How do you model graphs? The constant time stuff doesn't matter. Virtually nothing needs to be constant…

I suspect for the kinds of projects this might in theory be targeting, they aren’t doing any dynamic allocation at all.

Re: The Rune Programming Language

#56
This is an interesting idea for language design:

> Users of Rune are protected, because the compiler sees that macSecret is secret, and thus the result of hmacSha256 is secret. The string comparison operator, when either operand is secret, will run in constant time, revealing no timing information to the attacker. Care must still be taken in Rune, but many common mistakes like this are detected by the compiler, and either fixed or flagged as an error.

Re: The Rune Programming Language

#57
post #47
post #41

What's up with having two different new experimental languages from Google on the front page https://news.ycombinator.com/item?id=33756800 - did Google just happen to release them at the same time? I think when Carbon came out people's reaction was stronger than deserved (like saying that Google don't believe in Rust, or that Go has been a failure because it hasn't replaced C++ etc.) while in reality all of this is v…

This isn't an official Google project, the contributions seem mostly from one person, so probably someone doing this as a 20% project. Carbon OTOH has a team working on it AFAIK.

And it’s not new, either. First commits to the repo are well over a year old.

Re: The Rune Programming Language

#58
post #6

Wouldn’t it make way more sense to write this in C and expose a typed API via language-specific packages. The functionality is cool, but nothing stops you from forgetting to use secret(string) instead of string.

Seems kind of odd that you’re arguing “just do it in C” and “nothing stops you from forgetting” in the same post.

Re: The Rune Programming Language

#60
So there's also reveal() primitive for revealing secrets, as shown by the code for msqrt(). OK, Rune gives you a library for computing stuff in CT, but how do I implement something independent of these things and show that they are CT? Do I still need to rely on FM techniques such as relational symbolic execution? Can I jump into a "constant" mode with a special typing system or something that lets me do this without having to run a more costly verification?
Post reply on HN