さまざまなターゲット プラットフォームのコンパイルは LLVM を使用して実装され、Go プロジェクトのメイン ツールキットで使用されるライブラリが言語のサポートに使用されます。 コンパイルされたプログラムはマイクロコントローラー上で直接実行できるため、自動化スクリプトを作成するための言語として Go を使用できます。
新しいプロジェクトを作成する動機は、使い慣れた Go 言語をコンパクトなデバイスで使用したいという願望でした。開発者は、マイクロコントローラー用の Python バージョンが存在するのであれば、Go 言語用に同様のバージョンを作成すればよいのではないかと考えました。 行く
現在の形式では、Adafruit、Arduino、BBC micro:bit、ST Micro、Digispark、Nordic Semiconductor、Makerdiary、Phytec のさまざまなボードを含む 15 のマイクロコントローラー モデルがサポートされています。 プログラムは、WebAssembly 形式でブラウザーで実行したり、Linux 用の実行可能ファイルとしてコンパイルしたりすることもできます。 ESP8266/ESP32コントローラーをサポート
プロジェクトの主な目標:
マルチコア システムのサポートは主な目標ではありませんが、
膨大な数のコルーチンの効率的な起動 (コルーチン自体の起動は完全にサポートされています)、リファレンス コンパイラー gc のパフォーマンス レベルの達成 (最適化は LLVM に委ねられており、一部のアプリケーションでは Tinygo の方が gc よりも高速である場合があります)、および完了
類似のコンパイラとの主な違い
リリース 0.7 の変更点には、「tinygo test」コマンドの実装、ほとんどのターゲット ボード (ARM Cortex-M ベース) および WebAssembly のガベージ コレクション サポートの提供、RISC ベースの HiFive1 rev B ボードのサポートなどがあります。 V アーキテクチャと Arduino nano33 ボード、
言語サポートの改善 (ゲッターとセッターを使用したビット フィールドのサポート、匿名構造体のサポート)。
出所: オープンネット.ru