Google Sponsors TinyGo
Written by Kay Ewbank   
Friday, 14 February 2020

The TinyGo development team has announced that TinyGo is now officially a Google sponsored project. The announcement was made at FOSDEM 2020, the European Meeting of the Free and Open source Software Developers

TinyGo is a Go compiler developed for use in small places. The project aims to bring the Go programming language to microcontrollers and modern web browsers by creating a new compiler based on LLVM. TinyGo programs can be compiled and run on 27 different microcontroller boards including the BBC micro:bit and the Arduino Uno. TinyGo can also be used to produce WebAssembly (WASM) code which is very compact in size. The compiler includes support for a number of devices such as accelerometers and magnetometers.

tinygo

The compiler mostly uses the standard library to parse Go programs, alongside LLVM to optimize the code and generate machine code for the target architecture. TinyGo also includes a new runtime library that implements some compiler intrinsics, including a memory allocator, a scheduler, and operations on strings.

In addition, some packages that are strongly connected to the runtime such as the sync package and the reflect package have been or will be re-implemented for use with TinyGo.

While TinyGo supports much of the Go language, not everything is supported yet. Currently supported features consist of the subset of Go that directly translates to C, including all basic types and all regular control flow (including switch). Slices are well supported, and interfaces are quite stable and should work well in almost all cases. Type switches and type asserts are also supported, as well as calling methods on interfaces. Closures and bound methods are supported, for example inline anonymous (lambda-like) functions.

Writing about the new sponsorship on Twitter, one of the IOTA Foundation’s official team members said that the Google funding means

"we might soon be able to run IOTA nodes on several different micro controllers or as an "on-demand-node" in form of a browser plugin (using WASM)."

IOTA is a distributed ledger designed to record and execute transactions between machines and devices in the Internet of Things (IoT). IOTA has a Go client library that can be used to access the Tangle library.  Tangle is a system of nodes used for confirming transactions.

 tinygo

 

 

More Information

TinyGo Website

Related Articles

Golang Wants Your Opinion

Go.Dev Portal Now Online

Go 1.13 Modernizes Number Literals

A Decade of Go - Google's Systems Language

Go Developer Network Launched

Help Go Develop

 

To be informed about new articles on I Programmer, sign up for our weekly newsletter, subscribe to the RSS feed and follow us on Twitter, Facebook or Linkedin.

Banner


Unitree G1 - See How It Runs
26/01/2025

Chinese robotics company Unitree has made a significant breakthrough with its G1 humanoid robot which walks and runs in a convincingly natural way. This is thanks to its advanced hip joint design. See [ ... ]



Algol 68 Revitalised and Now In GCC
29/01/2025

The latest addition to the GNU Compiler Collection is Algol 68 and you can be forgiven for thinking it sounds like a blast from the past. However, you need to remember that ALGOL, standing for ALGOrih [ ... ]


More News

Last Updated ( Friday, 14 February 2020 )