TODO

Editor

I always imagined Rawr with an editor, it is one of the reason I am reticent to release it publicly right now. I want people to try Rawr as a interactive graphical application and not as a command in a terminal. The compiler should be a library linked to an dedicated editor that deeply understand the language, and not just another Vim plugin. I am inspired by projects like the programming language GOAL by Naughty Dogs, the debugger Moustache by Casey Muratori and the incredible tools at Tomorrow Corporation.

Multiple return values

I am not planning to add tuples into the language so this would be a feature only for function calls. The caller would have to destructure the values at the call site.

get_numbers fn() -> i32, i32 {
	return 1, 2
}

a:, b: = get_numbers() // a et b get declared

a: i32
a, b: = get_numbers() // a is assigned

_, b: = get_numbers() // We ignore the first value

I am not a fan of how destructuring works in language like Go where you can silently shadow a variable by redeclaring it. I was planning to require an explicit ‘:‘ for declaration but it looks kinda ugly and busy. It would look better if variable declaration used a keyword like let.

a, let b = get_numbers()

MacOS version

I would love to have Rawr on macOS (even more so since my current laptop is a MacBook). Right now the compiler runs fine on mac but it can only output a Windows .exe. I didn’t manage for now to output a working Arm executable file from scratch. There are not a lot of documentations yet for Apple Silicon Mach-O. I miss something like Corkami’s minimal executables which was a huge help for Windows. I am also unsure how to handle app signing which is almost mandatory now with Sequoia. Since the start I wanted Rawr to be able to cross compile and it would be really sad if I couldn’t generate a working mac executable from Linux or Windows.