ืฉื—ืจื•ืจ ืฉืœ Tinygo 0.7.0, ืžื”ื“ืจ Go ืžื‘ื•ืกืก LLVM

ื–ืžื™ืŸ ืฉื—ืจื•ืจ ื”ืคืจื•ื™ืงื˜ Tinygo 0.7.0, ืืฉืจ ืžืคืชื—ืช ืžื”ื“ืจ ืฉืคืช Go ืขื‘ื•ืจ ืื–ื•ืจื™ื ื”ื“ื•ืจืฉื™ื ื™ื™ืฆื•ื’ ืงื•ืžืคืงื˜ื™ ืฉืœ ื”ืงื•ื“ ื”ืžืชืงื‘ืœ ื•ืฆืจื™ื›ืช ืžืฉืื‘ื™ื ื ืžื•ื›ื”, ื›ื’ื•ืŸ ืžื™ืงืจื•-ื‘ืงืจื™ื ื•ืžืขืจื›ื•ืช ืงื•ืžืคืงื˜ื™ื•ืช ืฉืœ ืžืขื‘ื“ ื™ื—ื™ื“. ืงื•ื“ ืžื•ืคืฅ ืขืœ ื™ื“ื™ ืชื—ืช ืจื™ืฉื™ื•ืŸ BSD.

ื”ื™ื“ื•ืจ ืขื‘ื•ืจ ืคืœื˜ืคื•ืจืžื•ืช ื™ืขื“ ืฉื•ื ื•ืช ืžื™ื•ืฉื ื‘ืืžืฆืขื•ืช LLVM, ื•ืกืคืจื™ื•ืช ื”ืžืฉืžืฉื•ืช ื‘ืขืจื›ืช ื”ื›ืœื™ื ื”ืจืืฉื™ืช ืžืคืจื•ื™ืงื˜ Go ืžืฉืžืฉื•ืช ืœืชืžื™ื›ื” ื‘ืฉืคื”. ื ื™ืชืŸ ืœื”ืจื™ืฅ ืืช ื”ืชื•ื›ื ื™ืช ื”ืงื•ืžืคื™ืœื˜ื™ืช ื™ืฉื™ืจื•ืช ืขืœ ืžื™ืงืจื•-ื‘ืงืจื™ื, ืžื” ืฉืžืืคืฉืจ ืœื”ืฉืชืžืฉ ื‘-Go ื›ืฉืคื” ืœื›ืชื™ื‘ืช ืกืงืจื™ืคื˜ื™ื ืœืื•ื˜ื•ืžืฆื™ื”.

ื”ืžื ื™ืข ืœื™ืฆื™ืจืช ืคืจื•ื™ืงื˜ ื—ื“ืฉ ื”ื™ื” ื”ืจืฆื•ืŸ ืœื”ืฉืชืžืฉ ื‘ืฉืคืช Go ื”ืžื•ื›ืจืช ื‘ืžื›ืฉื™ืจื™ื ืงื•ืžืคืงื˜ื™ื™ื โ€“ ื”ืžืคืชื—ื™ื ื˜ืขื ื• ืฉืื ื™ืฉ ื’ืจืกืช Python ืขื‘ื•ืจ ืžื™ืงืจื•-ื‘ืงืจื™ื, ืื– ืœืžื” ืœื ืœื™ืฆื•ืจ ื“ื•ืžื” ืœืฉืคืช Go. ืœืœื›ืช ื ื‘ื—ืจ ื‘ืžืงื•ื Rust ืžื›ื™ื•ื•ืŸ ืฉืงืœ ื™ื•ืชืจ ืœืœืžื•ื“, ืžืกืคืง ืชืžื™ื›ื” ื‘ืœืชื™ ืชืœื•ื™ื” ื‘ื—ื•ื˜ ืขื‘ื•ืจ ื”ืงื‘ื™ืœื” ืžื‘ื•ืกืกืช ืงื•ืจื•ื˜ื™ืŸ, ื•ืžืฆื™ืข ืกืคืจื™ื™ื” ืกื˜ื ื“ืจื˜ื™ืช ื ืจื—ื‘ืช ("ืกื•ืœืœื•ืช ื›ืœื•ืœื•ืช").

ื‘ืžืชื›ื•ื ืชื• ื”ื ื•ื›ื—ื™ืช, 15 ื“ื’ืžื™ ืžื™ืงืจื•-ื‘ืงืจ ื ืชืžื›ื™ื, ื›ื•ืœืœ ืœื•ื—ื•ืช ืฉื•ื ื™ื ืžื‘ื™ืช Adafruit, Arduino, BBC micro:bit, ST Micro, Digispark, Nordic Semiconductor, Makerdiary ื•- Phytec. ื ื™ืชืŸ ื’ื ืœื”ืจื›ื™ื‘ ืชื•ื›ื ื™ื•ืช ืœื”ืคืขืœื” ื‘ื“ืคื“ืคืŸ ื‘ืคื•ืจืžื˜ WebAssembly ื•ื›ืงื•ื‘ืฆื™ ื”ืคืขืœื” ืขื‘ื•ืจ ืœื™ื ื•ืงืก. ืชื•ืžืš ื‘ื‘ืงืจื™ ESP8266/ESP32 ืขื“ื™ื™ืŸ ืœื, ืืš ืคื•ืชื— ืคืจื•ื™ืงื˜ ื ืคืจื“ ืœื”ื•ืกืคืช ืชืžื™ื›ื” ื‘ืฉื‘ื‘ Xtensa ื‘-LLVM, ืฉืขื“ื™ื™ืŸ ืžืกื•ืžืŸ ื›ืœื ื™ืฆื™ื‘ ื•ืื™ื ื• ืžื•ื›ืŸ ืœืฉื™ืœื•ื‘ ืขื TinyGo.

ื™ืขื“ื™ ื”ืคืจื•ื™ืงื˜ ื”ืขื™ืงืจื™ื™ื:

  • ื™ืฆื™ืจืช ืงื‘ืฆื™ ื”ืคืขืœื” ืงื•ืžืคืงื˜ื™ื™ื ืžืื•ื“;
  • ืชืžื™ื›ื” ื‘ื“ื’ืžื™ื ื”ื ืคื•ืฆื™ื ื‘ื™ื•ืชืจ ืฉืœ ืœื•ื—ื•ืช ืžื™ืงืจื•-ื‘ืงืจ;
  • ืืคืฉืจื•ืช ืœื™ื™ืฉื•ื ืขื‘ื•ืจ ื”ืื™ื ื˜ืจื ื˜;
  • ืชืžื™ื›ืช CGo ืขื ืชืงื•ืจื” ืžื™ื ื™ืžืœื™ืช ื‘ืขืช ืงืจื™ืื” ืœืคื•ื ืงืฆื™ื•ืช ื‘-C;
  • ืชืžื™ื›ื” ื‘ืจื•ื‘ ื”ื—ื‘ื™ืœื•ืช ื”ืกื˜ื ื“ืจื˜ื™ื•ืช ื•ื™ื›ื•ืœืช ืœื”ื“ืจ ืงื•ื“ ืงื™ื™ื ืกื˜ื ื“ืจื˜ื™ ืžื‘ืœื™ ืœืฉื ื•ืช ืื•ืชื•.

    ืชืžื™ื›ื” ื‘ืžืขืจื›ื•ืช ืžืจื•ื‘ื•ืช ืœื™ื‘ื•ืช ืื™ื ื” ื‘ื™ืŸ ื”ืžื˜ืจื•ืช ื”ืขื™ืงืจื™ื•ืช,
    ื”ืฉืงื” ื™ืขื™ืœื” ืฉืœ ืžืกืคืจ ืขืฆื•ื ืฉืœ ืงื•ืจื•ื˜ื™ื ื™ื (ื”ื”ืฉืงื” ืฉืœ ืงื•ืจื•ื˜ื™ื ื™ื ืขืฆืžื” ื ืชืžื›ืช ื‘ืžืœื•ืื”), ื”ืฉื’ืช ืจืžืช ื”ื‘ื™ืฆื•ืขื™ื ืฉืœ ืžื”ื“ืจ ื”ื™ื™ื—ื•ืก gc (ื”ืื•ืคื˜ื™ืžื™ื–ืฆื™ื” ื ืฉืืจืช ืœ-LLVM ื•ื‘ืืคืœื™ืงืฆื™ื•ืช ืžืกื•ื™ืžื•ืช Tinygo ืขืฉื•ื™ื” ืœื”ื™ื•ืช ืžื”ื™ืจื” ื™ื•ืชืจ ืž-gc) ื•ื”ืฉืœืžื” ืชืื™ืžื•ืช ืขื ื›ืœ ื™ื™ืฉื•ืžื™ Go.

    ื”ื”ื‘ื“ืœ ื”ืขื™ืงืจื™ ืžื”ื“ืจ ื“ื•ืžื” ืืžื’ื• ื”ื•ื ื ื™ืกื™ื•ืŸ ืœืฉืžืจ ืืช ืžื•ื“ืœ ื ื™ื”ื•ืœ ื”ื–ื™ื›ืจื•ืŸ ื”ืžืงื•ืจื™ ืฉืœ Go ื‘ืืžืฆืขื•ืช ืื™ืกื•ืฃ ื–ื‘ืœ ื•ืœื”ืฉืชืžืฉ ื‘-LLVM ื›ื“ื™ ืœื™ืฆื•ืจ ืงื•ื“ ื™ืขื™ืœ ื‘ืžืงื•ื ืœื”ื“ืจ ืื•ืชื• ืœื™ื™ืฆื•ื’ C. Tinygo ืžืฆื™ืขื” ื’ื ืกืคืจื™ื™ืช ื–ืžืŸ ืจื™ืฆื” ื—ื“ืฉื” ื”ืžื™ื™ืฉืžืช ืžืชื–ืžืŸ, ืžืขืจื›ืช ื”ืงืฆืืช ื–ื™ื›ืจื•ืŸ ื•ืžื˜ืคืœื™ ืžื—ืจื•ื–ื•ืช ื”ืžื•ืชืืžื•ืช ืœืžืขืจื›ื•ืช ืงื•ืžืคืงื˜ื™ื•ืช. ื—ืœืง ืžื”ื—ื‘ื™ืœื•ืช, ื›ื’ื•ืŸ ืกื™ื ื›ืจื•ืŸ ื•-reflection, ื ื•ืฆืจื• ืžื—ื“ืฉ ืขืœ ืกืžืš ื–ืžืŸ ื”ืจื™ืฆื” ื”ื—ื“ืฉ.

    ื‘ื™ืŸ ื”ืฉื™ื ื•ื™ื™ื ื‘ืžื”ื“ื•ืจื” 0.7 ื ื™ืชืŸ ืœืžื ื•ืช ืืช ื™ื™ืฉื•ื ื”ืคืงื•ื“ื” "ืžื‘ื—ืŸ tinygo", ืžืชืŸ ืชืžื™ื›ื” ืœืื™ืกื•ืฃ ืืฉืคื” ืขื‘ื•ืจ ืจื•ื‘ ืœื•ื—ื•ืช ื”ื™ืขื“ (ืžื‘ื•ืกืก ืขืœ ARM Cortex-M) ื•-WebAssembly, ืชืžื™ื›ื” ื‘ืœื•ื— HiFive1 rev B ื”ืžื‘ื•ืกืก ืขืœ RISC- ืืจื›ื™ื˜ืงื˜ื•ืจืช V ื•ืœื•ื— Arduino nano33,
    ืชืžื™ื›ื” ืžืฉื•ืคืจืช ื‘ืฉืคื” (ืชืžื™ื›ื” ื‘ืฉื“ื•ืช ืกื™ื‘ื™ื•ืช ืชื•ืš ืฉื™ืžื•ืฉ ื‘-getters ื•-seters, ืชืžื™ื›ื” ื‘ืžื‘ื ื™ื ืื ื•ื ื™ืžื™ื™ื).

    ืžืงื•ืจ: OpenNet.ru

  • ื”ื•ืกืคืช ืชื’ื•ื‘ื”