Нашри 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 и в виде исполняемых файлов для Linux. Поддержки контроллеров ESP8266/ESP32 Ҳоло не, аммо лоиҳаи алоҳида барои илова кардани дастгирии чипи Xtensa дар LLVM таҳия карда мешавад, ки он то ҳол ҳамчун ноустувор қайд карда мешавад ва барои ҳамгироӣ бо TinyGo омода нест.

Ҳадафҳои асосии лоиҳа:

  • Эҷоди файлҳои иҷрошавандаи хеле паймон;
  • Дастгирии моделҳои маъмултарини тахтаҳои микроконтроллерӣ;
  • Имконияти дархост барои веб;
  • Дастгирии CGo бо хароҷоти ҳадди ақал ҳангоми занг задан ба функсияҳо дар C;
  • Дастгирии аксари бастаҳои стандартӣ ва қобилияти тартиб додани коди стандартии мавҷуда бидуни тағир додани он.

    Дастгирии системаҳои бисёрсоҳавӣ аз ҷумлаи ҳадафҳои асосӣ нест,
    оғози самараноки шумораи зиёди корутинҳо (ифтитоҳи худи корутинҳо пурра дастгирӣ карда мешавад), ноил шудан ба сатҳи кори компилятори истинод gc (оптимизатсия ба LLVM гузошта шудааст ва дар баъзе барномаҳо Tinygo метавонад аз gc тезтар бошад) ва пурра мутобиқат бо ҳама барномаҳои Go.

    Фарқи асосӣ аз як компилятори шабеҳ эмго кӯшиши нигоҳ доштани модели идоракунии хотираи аслии Go бо истифода аз ҷамъоварии ахлот ва истифодаи LLVM барои тавлиди коди муассир ба ҷои тартиб додани он ба намояндагии C мебошад. Tinygo инчунин як китобхонаи нави вақти корӣ пешниҳод мекунад, ки нақшакаш, системаи тақсимоти хотира ва коркардкунандагони сатрро барои системаҳои паймон оптимизатсияшуда амалӣ мекунад. Баъзе бастаҳо, аз қабили синхронизатсия ва инъикос, дар асоси вақти нав аз нав сохта шудаанд.

    Дар байни тағиротҳо дар версияи 0.7 иҷрои фармони "tinygo test", таъмини дастгирии ҷамъоварии ахлот барои аксари тахтаҳои мақсаднок (дар асоси ARM Cortex-M) ва WebAssembly, дастгирии тахтаи HiFive1 rev B дар асоси RISC- V меъморӣ ва тахтаи Arduino nano33,
    дастгирии мукаммали забон (дастгирии майдонҳои бит бо истифода аз гетерҳо ва танзимкунандагон, дастгирии сохторҳои номаълум).

    Манбаъ: opennet.ru

  • Хостинги боэътимодро барои сайтҳо бо муҳофизати DDoS, серверҳои VPS VDS харед 🔥 Харидани хостинги боэътимоди вебсайт бо муҳофизати DDoS, серверҳои VPS VDS | ProHoster