The Julia programming language is a horrible in shape for a no-frills microcontroller like the ATMega328p that lies within the classic Arduino, but that did not prevent [Sukera] from hoping, and succeeding.
All of the options that make Julia a cool programming language for your big personal computer make it an terrible alternative for the Arduino. It is developed for interactivity, is dynamically typed, and leans intensely on its garbage assortment every single of these functions by itself would tax the Mega to the breaking position. But in its favor, it is a compiled language that is based on LLVM, and LLVM has an AVR backend for C. Should just be a easy subject of stubbing out some of the overhead, recompiling LLVM to insert an AVR focus on for Julia, and then repairing up all the other free finishes, right?
Nicely, it turns out it just about was. Leaning greatly on the flexibility of LLVM, [Sukera] manages to flip off all the language options that are not wanted, and immediately after some smaller hurdles like the usual challenges with unstable and atomic variables, manages to blink an LED slowly and gradually. Huzzah. We enjoy [Sukera’s] wry “Now THAT is what I phone two times very well invested!” following it is all done, but significantly, this is the first time we’ve each seen even tremendous-rudimentary Julia code operating on an 8-bit microcontroller, so there are undoubtedly some kudos because of here.
By the time that Julia is wedged into the AVR, a great deal of what would make it appealing on the big pcs is lacking on the micro, so we really do not really see individuals finding it around straight C, which has a significantly extra produced ecosystem. But continue to, it is terrific to see what it will take to get a language created close to a runtime and rubbish collection up and operating on our favored mini micro.
Many thanks [Joel] for the idea!