Лучшая похвала-это та, что исходит от человека, которому ты ничего хорошего не сделал.

Вчера МВД опубликовало список самых страшных чеченских террористов. Вот они: ...

Mozilla развивает собственную систему машинного перевода
Mon, 21 Oct 2019 07:14:55 +0300

Samsung свернул проект "Linux on DeX"
Sun, 20 Oct 2019 22:54:09 +0300

Ubuntu исполнилось 15 лет
Sun, 20 Oct 2019 19:38:18 +0300

Первый выпуск Pwnagotchi, игрушки для взлома WiFi-сетей
Sun, 20 Oct 2019 08:40:38 +0300

Усиление изоляции между сайтами в Chrome
Fri, 18 Oct 2019 10:25:59 +0300

Компания Cloudflare реализовала модуль для поддержки HTTP/3 в NGINX
Thu, 17 Oct 2019 18:51:04 +0300

В Firefox появятся новые индикаторы безопасности и интерфейс about:config
Thu, 17 Oct 2019 10:40:04 +0300

Дистрибутив Trident переходит с BSD-системы TrueOS на Void Linux
Thu, 17 Oct 2019 07:51:57 +0300

WireGuard и andOTP удалены из Google Play из-за ссылок на приём пожертвований
Wed, 16 Oct 2019 21:21:15 +0300

Arch Linux готовится к применению алгоритма сжатия zstd в pacman
Wed, 16 Oct 2019 20:20:58 +0300

Khronos предоставил возможность бесплатной сертификации открытых драйверов
Wed, 16 Oct 2019 09:23:42 +0300

Mozilla прекращает поддержку поисковых дополнений на базе технологии OpenSearch
Wed, 16 Oct 2019 07:42:45 +0300

Язык Perl 6 переименован в Raku
Tue, 15 Oct 2019 20:47:16 +0300

В Debian 11 предлагается по умолчанию задействовать nftables и firewalld
Mon, 14 Oct 2019 21:53:29 +0300

Недоработка в Python-скрипте могла привести к неверным результатам в более 100 публикациях по химии
Sun, 13 Oct 2019 11:02:13 +0300

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

Один из разработчиков из компании Google поднял в списке рассылки LLVM тему разработки многоплатформенной стандартной Си-библиотеки (Libc) в рамках проекта LLVM. По ряду причин Google не устраивают текущие libc (glibc, musl) и компания на пути к разработке новой реализации, которую предлагается развивать как часть LLVM.

Наработки LLVM последнее время используются в качестве основы для построения сборочного инструментария Google. Основной идеей является то, что если Google уже начал развивать свою libc, то почему бы ему сразу не развивать свою систему в составе LLVM, который уже предлагает свою стандартную библиотеку для С++ (Libc++), но не имеет аналогичной стандартной библиотеки для Си (Libc).

Разработку планируется вести поэтапно, постепенно наращивая функциональность. Первые варианты предлагается оформить в виде прослойки между приложением и системной Libc, из которой будут заимствоваться ещё не реализованные возможности. После достижения определённого уровня в функциональности новая Libc сможет применяться в качестве полной замены системной Libc. Начать планируется с поддержки архитектуры x86-64, Linux и статического связывания (динамическая загрузка, компоновка и дополнительные архитектуры будут реализованы во вторую очередь).

Проект пока на начальной стадии развития, но уже определены базовые цели:

  • Модульность и развитие в соответствии с философией поставки гранулированной библиотеки, а не монолитного набора;
  • Поддержка статического связывания в режимах с PIE (Position-independent executables) и без PIE. Предоставление CRT (C runtime) и загрузчика PIE для статически связываемых исполняемых файлов;
  • Поддержка большей части функций стандартной Си-библиотеки с дополнениями POSIX и некоторыми специфичными для систем расширениями, востребованными в существующих приложениях;
  • Осторожное отношение к специфичным для производителей расширениям и их добавление только при необходимости. В отношении поддержки сторонних расширений предлагается применять подход проектов Clang и libc++;
  • Использование образцовых практик в разработке с использованием инструментария LLVM, таких как применение sanitizer и fuzzing-тестирования с самого начала.

Один из активных разработчиков LLVM указал, что поставка libc в составе инструментария LLVM не лишена смысла, но обычно при подобной необходимости используют библиотеку musl, которая качественно написана, поддерживает различные архитектуры и предоставляет необходимую функциональность, в том числе поддерживает динамическое связывание. Оправданным может быть встраивание musl в LLVM и развитие его как синхронизированного с основным проектом форка.

Своё мнение также выразил автор проекта Musl, который попытался аргументировать почему предложение Google и включение Libc в поставку LLVM являются очень плохими идеями:

  • Разработка и сопровождение корректной, совместимой и высококачественной Libc является очень трудной задачей. Проблема не в объёме кода, а в обеспечении корректного поведения и трудностях с реализацией интерфейсов с учётом огромного пласта когда-либо написанных приложений на С/C++, а также приложений на других языках, runtime которых использует Libc. Подход в лоб без учёта нюансов лишь приведёт к тому, что многие существующие программы не смогут работать с Libc, но тогда такой проект не будет интересен потребителям.
  • Корпоративная разработка может испортить Libc, но протолкнуть для широкого использования, итогом чего станет необходимость добавления хаков для обеспечения совместимости в приложениях. Разработка под эгидой корпоративного открытого проекта будет тянуть одеяло в сторону потребностей и решений компании, в ущерб интересов сообщества. Например, в случае выявления проблемы, которая вызвана ошибкой в другой своей программе, в подконтрольной разработке проще обеспечить совместимость Libc с этой ошибкой, чем исправить саму ошибку. Apple использует для этих целей форк BSD libc, а Google применяет в Fuchsia форк musl. Опыт разработчика musl говорит о том, что с ним связывались в основном юристы для уточнения вопросов лицензирования, но никогда не обращались для уточнения технических деталей перед внесением в свои ответвления бесполезных и нарушающих работу изменений.
  • Отсутствие монокультуры при разработке libc и ориентация на развиваемые на основе достижения консенсуса стандарты, вместо единоличного управления, что мотивирует разработчиков прикладных приложений использовать стандарты, а не привязываться к конкретным реализациям. Именно поэтому автор musl против включения его библиотеки в состав LLVM, как и против разработки libc в рамках LLVM, так как в этом случае утрачивается независимый характер libc и определённая реализация становится решением первого класса для LLVM, а все остальные - второго.

9.0294 71.1299 0.5886 63.9542

НОВОСТИ: Выпуск Python 2.7.17 Sun, 20 Oct 2019 08:11:31 +0300

Доступен корректирующий выпуск Python 2.7.17, в котором отражены внесённые с марта этого года исправления ошибок. В новой версии также устранены три уязвимости в expat, httplib.InvalidURL и urllib.urlopen. Python 2.7.17 является предпоследним выпуском в ветке Python 2.7, поддержка которой будет прекращена в начале 2020 года.

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