Rune has no roadmap #19
waywardgeek
started this conversation in
General
Replies: 2 comments 5 replies
-
I personally like it is written in C and not Rune. |
Beta Was this translation helpful? Give feedback.
0 replies
-
IMHO, for Rune to have any chance to be adopted means it should support at least c level integration |
Beta Was this translation helpful? Give feedback.
5 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
Sorry, folks, but it's the truth. There is no internal project at Google supporting Rune. Rune is simply a 20% project for a few Googlers. Rune, like most new programming languages, would require a whole new ecosystem of libraries to be developed before it could be of much use, and the likelihood of that happening is low. Rune was open-sourced so that some of its good ideas could find their way into more mainstream languages, in particular SoA memory layout and detection of timing side channel leakage at compile time.
The mission of proving out Rune's core ideas remains a goal of our 20%-ers. While not exactly a road map, here is the overall plan:
My hope is that eventually, SoA memory layout will help reduce energy consumption in data centers globally by around 10%, while reducing memory similarly. SoA is hard to integrate into C/C++, but could find its way into Go, Rust, Java, and possibly even Carbon.
Unfortunately, the current compiler lacks many of the optimizations built into the Clang's front-end (the part that runs before LLVM IR generation), such as loop unrolling, making it impossible to do well overall on benchmarks. Also, two major pieces of Rune are a mess: the type infrencing code in src/bind.c, and the LLVM code generator in llvm/genllvm.c. Both problems are much harder than we anticipated, and I'll take the blame for choosing the wrong approach in both cases.
The path forward appears to be:
Rewriting Rune in Rune is needed for several reasons. First, I'm the only contributor with lots of experience writing C code backed by DataDraw generated classes. To make it easier for everyone to contribute, we need to switch to writing in Rune rather than C. Also, there are major improvements needed, and we'd rather do this in Rune. Coding in C is grungy. Coding in Rune is simply more fun. To make rewriting Rune in Rune simpler, without the need for type hints, we need an improved type infrencing algorithm. The current recursive algorithm fails in several ways. For more info, see the header comments in src/bind2.c.
Unfortunately, there is no timeline for these tasks...
Bill
Beta Was this translation helpful? Give feedback.
All reactions