The Julia programming language is a awful healthy for a no-frills microcontroller like the ATMega328p that lies inside of the vintage Arduino, but that didn’t halt [Sukera] from striving, and succeeding.
All of the attributes that make Julia a cool programming language for your massive computer make it an awful decision for the Arduino. It is built for interactivity, is dynamically typed, and leans closely on its garbage selection just about every of these functions on your own would tax the Mega to the breaking point. But in its favor, it is a compiled language that is centered on LLVM, and LLVM has an AVR backend for C. Must just be a uncomplicated make a difference of stubbing out some of the overhead, recompiling LLVM to insert an AVR goal for Julia, and then fixing up all the other loose ends, suitable?
Well, it turns out it pretty much was. Leaning heavily on the flexibility of LLVM, [Sukera] manages to change off all the language options that aren’t desired, and after some modest hurdles like the regular troubles with risky and atomic variables, manages to blink an LED bit by bit. Huzzah. We appreciate [Sukera’s] wry “Now THAT is what I contact two days well spent!” after it is all accomplished, but very seriously, this is the initial time we have just about every found even super-rudimentary Julia code operating on an 8-little bit microcontroller, so there are unquestionably some kudos thanks listed here.
By the time that Julia is wedged into the AVR, a good deal of what can make it attractive on the huge pcs is missing on the micro, so we never actually see folks selecting it more than straight C, which has a substantially extra produced ecosystem. But continue to, it is good to see what it requires to get a language intended around a runtime and rubbish collection up and working on our favorite mini micro.
Many thanks [Joel] for the tip!