Закон Сегала

Человек, имеющий одни часы, твердо знает который час.

Человек, имеющий несколько часов, ни в чем не уверен.

- Любимая, давай займемся сексом! ...

Браузер Waterfox перешёл в руки компании System1
Mon, 17 Feb 2020 07:34:52 +0300

В Firefox появится режим отложенной загрузки изображений
Thu, 13 Feb 2020 19:57:02 +0300

Подготовлена реализация Git на Shell
Wed, 12 Feb 2020 10:50:59 +0300

Релиз рабочего стола KDE Plasma 5.18
Tue, 11 Feb 2020 15:36:10 +0300

Chrome начнёт блокировать загрузку файлов по HTTP
Fri, 07 Feb 2020 12:40:35 +0300

Апелляционный суд подтвердил правоту Брюса Перенса в разбирательстве с Grsecurity
Fri, 07 Feb 2020 11:25:11 +0300

Инициатива по добавлению рабочего стола Unity 8 и дисплейного сервера Mir в Debian
Fri, 07 Feb 2020 11:02:49 +0300

GCC 9 портирован для OS/2
Fri, 07 Feb 2020 10:19:54 +0300

Xiaomi, Oppo и Vivo развивают платформу для публикации Android-приложений
Fri, 07 Feb 2020 09:57:46 +0300

Техника скрытой передачи данных через изменение яркости LCD-экрана
Thu, 06 Feb 2020 20:39:35 +0300

Заголовок X-Client-Data как метод идентификации пользователей Chrome
Thu, 06 Feb 2020 14:24:14 +0300

В Chrome намечено включение блокировки навязчивой видеорекламы
Thu, 06 Feb 2020 11:33:55 +0300

Опубликован план окончания поддержки CoreOS Container Linux
Thu, 06 Feb 2020 09:22:56 +0300

В мобильный браузер Firefox Preview добавлена поддержка дополнений
Wed, 05 Feb 2020 22:09:50 +0300

Проект OpenWifi с реализацией открытого Wi-Fi чипа на базе FPGA и SDR
Tue, 04 Feb 2020 14:12:16 +0300

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

В компании Red Hat ведётся разработка нового легковесного JIT-компилятора MIR, обеспечивающего выполнение кода, предварительно преобразованного в промежуточное представление MIR (Medium Internal Representation, не путать с другим промежуточным представлением MIR (mid-level IR), применяемым в компиляторе Rust). Проект нацелен на предоставление основы для реализации быстрых и компактных интерпретаторов и JIT. Код проекта написан на языке Си и распространяется под лицензией MIT.

На текущей стадии разработки трансляторы в промежуточное представление MIR подготовлены для языка Си и биткода LLVM (Bitcode), но в будущем планируется реализовать возможность генерации MIR для WebAssembly, байткода Java, CIL (Common Intermediate Language), Rust и C++. Проект развивается одним из разработчиков JIT-движка MJIT, используемого в Ruby. В первую очередь JIT на базе MIR планируется реализовать для CRuby и MRuby. В будущем также не исключается возможность портирования GCC на использование MIR.

Промежуточный код MIR может быть представлен в бинарном и текстовом (читаемом) виде. Данный код можно будет исполнить в интерпретаторе, сгенерировать на его основе машинный код (x86_64, в планах ARM64, PPC64 и MIPS64). Возможно и выполнение обратного преобразования - из MIR в CIL, байткод Java, WebAssembly и код на языке Си.

Из особенностей MIR выделятся строгая типизация, поддержка модулей и функций, предоставление набора инструкций для преобразования типов, сравнения, арифметических и логических операций, ветвления и т.п. Модули, включающие набор функций, преобразованных в формат MIR, могут загружаться в форме библиотек, а также загружать внешний код на языке Си.

Ключевым достоинством выполнения промежуточного кода в JIT вместо компиляции в нативные исполняемые файлы, является возможность формирования компактных файлов, которые могут выполняться без пересборки на разных аппаратных архитектурах (x86, ARM, PPC, MIPS). Для неподдерживаемых архитектур доступен режим интерпретации, который в случае MIR работает в 6-10 раз медленнее JIT.

Из недостатков существующих JIT-компиляторов

GCC и LLVM называется их излишняя раздутость, низкая скорость компиляции и трудность реализации комбинированных оптимизаций для разных языков программирования. Разработчики MIR попытались решить эти проблемы и поставили перед собой цели:
  • Компиляция в MIR должна осуществляться как минимум в 100 раз быстрее, чем в GCC;
  • JIT для исполнения MIR должен быть очень компактным и включать примерно 15 тысяч строк кода;
  • Исполнение MIR с использованием JIT должно быть не более чем на 30% медленнее, чем производительность исполняемого файла, собранного на основе того же Си-кода в GCC (с оптимизациями "-O2");
  • Стадии инициализации до начала фактического исполнения должны занимать в 100 раз меньше времени;
  • MIR-представление для JIT должны быть в 100 раз меньше собранного в GCC исполняемого файла.

В текущем виде реализация MIR во многим опережает изначально поставленные цели: проведённые тесты показали, что производительность компиляции в MIR быстрее "GCC -O2" в 178 раз, производительность исполнения отстаёт от нативного кода на 6%, размер кода меньше в 144 раза, реализация MIR JIT составляет 16 тысяч строк кода.

9.0909 68.7710 0.578 63.4536

НОВОСТИ: Выпуск Ubuntu 18.04.4 LTS c обновлением графического стека и ядр ... Thu, 13 Feb 2020 10:12:20 +0300

Представлено обновление дистрибутива Ubuntu 18.04.4 LTS, в которое включены изменения, связанные с улучшением поддержки оборудования, обновлением ядра Linux и графического стека, исправлением ошибок в инсталляторе и загрузчике. В состав также включены актуальные обновления для нескольких сотен пакетов, связанные с устранением уязвимостей и проблем, влияющих на стабильность. Одновременно представлены аналогичные обновления Kubuntu 18.04.4 LTS, Ubuntu Budgie 18.04.4 LTS, Ubuntu MATE 18.04.4 LTS, Lubuntu 18.04.4 LTS, Ubuntu Kylin 18.04.4 LTS и Xubuntu 18.04.4 LTS.

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