Легче изменить постановку задачи так, чтобы она совпадала с программой, чем наоборот.

История из жизни:Забегает в аптеку пацанчик, лет 16-ти, пальцы веером, и без очереди заявляет ...

XMPP-клиенту yaxim исполнилось 10 лет
Sat, 24 Aug 2019 14:59:36 +0300

Операционной системе Unix исполнилось 50 лет
Sat, 24 Aug 2019 09:14:53 +0300

Google отказался от применения названий десертов для выпусков Android
Sat, 24 Aug 2019 08:42:29 +0300

IBM, Google, Microsoft и Intel образовали альянс для развития открытых технологий защиты данных
Fri, 23 Aug 2019 13:20:08 +0300

Компания Google представила инициативу Privacy Sandbox
Thu, 22 Aug 2019 23:26:03 +0300

Представлены варианты Qt5 для микроконтроллеров и OS/2
Thu, 22 Aug 2019 12:43:06 +0300

27 августа в Московском Политехе выступит Ричард Столлман
Thu, 22 Aug 2019 01:18:55 +0300

В Firefox, Chrome и Safari заблокирован внедряемый в Казахстане "национальный сертификат"
Wed, 21 Aug 2019 19:13:51 +0300

IBM объявил об открытии архитектуры процессоров Power
Wed, 21 Aug 2019 13:33:19 +0300

Xfce 4.16 ожидается в следующем году
Wed, 21 Aug 2019 09:08:46 +0300

Bitbucket прекращает поддержку Mercurial
Tue, 20 Aug 2019 22:59:58 +0300

Утверждено прекращение формирования репозиториев для архитектуры i686 в Fedora 31
Mon, 19 Aug 2019 23:31:48 +0300

OpenDrop - открытая реализации технологии Apple AirDrop
Mon, 19 Aug 2019 20:54:26 +0300

Представлено ответвление Proton-i, переведённое на более свежие версии Wine
Mon, 19 Aug 2019 09:38:24 +0300

В Chrome планируют полностью убрать поддержку FTP
Fri, 16 Aug 2019 08:38:58 +0300

Новости OPENNET
Новости

Доступен выпуск проекта Tinygo 0.7.0, в рамках которого развивается компилятор языка Go для областей, в которых необходимо компактное представление результирующего кода и низкое потребление ресурсов, таких как микроконтроллеры и компактные однопроцессорные системы. Код распространяется под лицензией BSD.

Компиляция для различных целевых платформ реализована при помощи LLVM, а для поддержки языка применяются библиотеки, применяемые в основном инструментарии от проекта Go. Скомпилированная программа напрямую может запускаться на микроконтроллерах, позволяя применять Go в качестве языка для написания сценариев автоматизации.

Мотивом создания нового проекта послужило желание использовать привычный для себя язык Go на компактных устройствах - разработчики рассудили, что если существует вариант Python для микроконтроллеров, то почему бы не создать подобное для языка Go. Go выбран вместо Rust так как он более прост в изучении, предоставляет независимую от реализаций потоков поддержку распараллеливания на основе сопрограмм и предлагает обширную стандартную библиотеку ("батарейки входят в комплект").

В текущем виде поддерживается 15 моделей микроконтроллеров, включая различные платы Adafruit, Arduino, BBC micro:bit, ST Micro, Digispark, Nordic Semiconductor, Makerdiary и Phytec. Программы также могут быть собраны для запуска в браузере в формате WebAssembly и в виде исполняемых файлов для Linux. Поддержки контроллеров ESP8266/ESP32 пока нет, но отдельно развивается проект по добавлении поддержки чипа Xtensa в LLVM, который пока отмечен как нестабильный и не готовых для интеграции с TinyGo.

Ключевые цели проекта:

  • Генерация очень компактных исполняемых файлов;
  • Поддержка наиболее распространённых моделей плат микроконтроллеров;
  • Возможность применения для Web;
  • Поддержка CGo с минимальными накладными расходами при вызове функций на языке Си;
  • Поддержка большей части стандартных пакетов и возможность компиляции типового существующего кода без его изменения.
  • Не входит в число основных целей поддержка многоядерных систем,

    эффективный запуск огромного числа сопрограмм (сам по себе запуск сопрограмм поддерживается в полной мере), достижение уровня производительности эталонного компилятора gc (оптимизация отдаётся на откуп LLVM и в некоторых применениях Tinygo может оказаться быстрее gc) и полная совместимость со всеми приложениями на Go.

    Основным отличием от похожего компилятора emgo является попытка сохранения оригинальной модели управления памятью Go с использованием сборщика мусора и задействование LLVM для генерации эффективного кода вместо компиляции в представление на языке Си. Tinygo также предлагает новую runtime-библиотеку, в которой реализованы оптимизированные для компактных систем планировщик, система распределения памяти и обработчики строк. На базе нового runtime пересозданы некоторые пакеты, такие как sync и reflect.

    Из изменений в выпуске 0.7 отмечается реализация команды "tinygo test", обеспечение поддержки сборки мусора для большинства целевых плат (на базе ARM Cortex-M) и WebAssembly, поддержка платы HiFive1 rev B на основе архитектуры RISC-V и платы Arduino nano33,

    улучшение поддержки языка (поддержка битовых полей с использованием геттеров и сеттеров, поддержка анонимных структур).

    9.2632 72.6243 0.6153 65.6046

    НОВОСТИ: Google отказался от применения названий десертов для выпусков An ... Sat, 24 Aug 2019 08:42:29 +0300

    Компания Google сообщила о прекращении практики присвоения выпускам платформы Android названий сладостей и десертов в алфавитном порядке и переходу к обычной цифровой нумерации. Ранее применявшаяся схема была заимствована из практики присвоения имён внутренним веткам, используемым инженерами Google, но вызывала много путаницы среди пользователей и сторонних разработчиков. Таким образом развиваемый ныне выпуск Android Q теперь официально назван Android 10, а следующий выпуск изначально будет продвигаться как Android 10.1 или Android 11.

    ???????@Mail.ru Opera Firefox INFOBOX - хостинг Google Chrome