Компания Free Electrons, специализирующая на разработке открытого ПО для встраиваемых систем, ввела в строй сервис, предоставляющий доступ к коллекции из более 100 вариантов инструментариев для кросс-компиляции. Разработчик может выбрать необходимую архитектуру и набор библиотек (glibc, uClibc-ng и musl), и получить готовый образ с инструментарием на базе gcc, gdb, binutils и ядра Linux. Каждый набор предлагается в двух вариантах - стабильная сборка и сборка с самыми свежими версиями компонентов. Образы пригодны для запуска в QEMU и других системах виртуализации.
Поддерживаемые архитектуры: AArch64 (little и big endian), ARC, ARM (little и big endian, ARMv5, ARMv6, ARMv7), Blackfin, m68k (Coldfire and 68k), Microblaze (little и big endian), MIPS32 and MIPS64 (little и big endian), NIOS2, OpenRISC, PowerPC и PowerPC64, SuperH, Sparc и Sparc64, x86 и x86-64, Xtensa.
Разработчику российской операционной системы Astra Linux из-за санкций не удалось получить права на популярные шрифты, в том числе на Times New Roman, пишет «Коммерсантъ».
Как сообщил директор центра «НПО РусБИТех» и руководитель коллектива разработчиков ОС Astra Linux Юрий Соснин, права на шрифты принадлежат американской Monotype Imaging, отказавшейся от договора с российской компанией из-за ее сотрудничества с Минобороны.
Компания Monotype Imaging владеет правами на такие шрифты, как Arial, Verdana, Tahoma, Times New Roman.
По словам источников издания, Monotype Imaging изначально была не слишком заинтересована в сделке, назначив «довольно высокую цену»
Программисты народ старомодный. Не удовлетворившись голливудским качеством, народ переделал Star Wars в формат ASCII. На Линуксе кино запускается следующими командами:
Тихо и незаметно, спустя 23 года неактивной разработки, Линус Торвальдс одобрил выход ядра Linux 3.17-rc2 приуроченый к 23-летней дате первого анонса Linux состоявшегося 25 августа 1991 года.
Леннарт Поттеринг (Lennart Poettering) представил свою речь (слайды в PDF), прозвучавшую на конференции FUDCON Beijing 2014 и посвящённую настоящему и будущему системы инициализации systemd. В выступлении поясняется изменение фокуса развития проекта от системы инициализации к набору базовых компонентов для построения операционных систем. По мнению Поттеринга, такой подход снизит уровень различия между дистрибутивами Linux и за счёт унификации компонентов в дистрибутивах повысит конкурентоспособность Linux как операционной системы общего назначения.
Из планов на будущее отмечается реализация локального кэша DNS, создание простого сервера mDNS (Multicast DNS) и LLMNR (Link Local Multicast Name Resolution), добавление во встроенный резолвер системы для верификации DNSSEC, продвижение Kdbus в состав ядра Linux, улучшение интеграции с системами контейнерной изоляции.
После года разработки представлена новая стабильная ветка языка программирования Perl - 5.20. При подготовке нового выпуска было изменено около 470 тыс. строк кода, изменения затронули 2900 файлов, в разработке приняли участие 124 разработчика.
Ветка 5.20 выпущена в соответствии с утверждённым четыре года назад фиксированным графиком разработки, подразумевающим выпуск новых стабильных веток раз в год и корректирующих релизов - раз в три месяца. Примерно через месяц планируется выпустить первый корректирующий релиз Perl 5.20.1, в котором будут исправлены наиболее значительные ошибки, выявленные в процессе внедрения Perl 5.20.0. Одновременно с выходом Perl 5.20 прекращена поддержка ветки 5.16, для которой в будущем могут быть выпущены обновления только в случае выявления критических проблем с безопасностью. Также начался процесс разработки экспериментальной ветки 5.21, на базе которой в мае 2015 года будет сформирован стабильный релиз Perl 5.22.
Экспериментальная поддержка сигнатур функций, позволяющих явно определить перечень переменных, используемых в функции и автоматизировать операции проверки и присвоения значений из массива входящих параметров. Для активации поддержки сигнатур функций необходимо указать директиву "use feature 'signatures'"; Например, ранее используемый код:
при использовании сигнатур может быть заменён на:
При вызове foo с числом аргументов, отличным от двух, интерпретатор выведет ошибку. Синтаксис сигнатур также позволяет указывать необязательные аргументы и задавать значения, используемые по умолчанию в случае отсутствия аргумента. Например, указав "sub foo ($left, $right = 0)" второй аргумент становится необязательным и при его отсутствии передаётся значение 0. В операции присваивания можно указать произвольное выражения, в том числе с использованием других переменных из списка или глобальных переменных. Указание вместо переменной хэша или массива (например, "sub foo ($left, @right)") приведёт к возможности передачи одного и более аргументов.
В списке также поддерживается специальная переменная "$", которая позволяет игнорировать часть аргументов, например, "sub foo ($left, $, $right)" позволит выполнить копирование в переменные только первого и третьего аргумента, при этом в функцию необходимо передать ровно три аргумента. Возможность обращения к параметрам через массив "@_" сохраняется, поэтому второй аргумент можно получить как значение "$_[1]";
Для определения прототипов функций, предоставляющих средства для проверки аргументов на этапе компиляции, а не в процессе выполнения, обеспечена поддержка атрибута ":prototype", например, теперь можно указать "sub foo :prototype($$);" вместо "sub foo ($$);". "$$" подразумевает вызов с двумя аргументами. Для определения типа аргумента могут использоваться такие символы, как "$" (переменная), "@" (массив), "+" (ссылка на массив или хэш), "*" (файловый десктиптор). Для отделения обязательных аргументов от опциональных используется знак ";". Для прототипов функций допускается указание сигнатур, например, "sub foo :prototype($$) ($left, $right)";
Функция rand() переведена на использование для всех платформ более качественного последовательного генератора псевдослучайных чисел drand48(). Ранее 48-битовый генератор псевдослучайных чисел использовался только для POSIX-систем, таких как Linux, а в Windows применялась менее безопасная 15-битная реализация;
Новый синтаксис для операции выделения части хэшей и массивов (slice) - %hash{...} и %array[...], при использовании которого (например, "%subset = %hash{'foo', 'bar'};" или "@list = %a[3,4,6];") возвращается список из пар ключ/значение или индекс/значение;
Добавлена экспериментальная операция постфиксного разыменования (postderef). Например, операция "$sref->$*" эквивалентна "${ $sref }", "$aref->@*" аналогична "@{ $aref }", а "$href->%{ ... }" можно использовать вместо "%$href{ ... }". Для активации поддержки необходимо указать директиву "use feature 'postderef_qq'";
Поддержка Unicode 6.3. Для регулярных выражений добавлена поддержка маски "\p{Unicode}", которая является синонимом "\p{Any}" и срабатывает для кодов символов в диапазоне 0 - 0x10FFFF.
Директива "use locale" теперь может применяться с локалями UTF-8 (ранее с "use locale" поддерживались только однобайтные локали), а также на системах без локали. Обеспечена возможность отката на локаль "C" в случае возникновения проблем с инициализацией выбранной локали. Добавлена опция "-DL" для отслеживания настроек локали в процессе запуска интерпретатора;
Специальные переменные $a и $b включены в список исключений при выводе предупреждений, что позволяет создавать функции, оперирующие переменными $a и $b, по аналогии с функцией sort;
Улучшена работа на 64-разрядных платформах. Внутренние функции работы с массивами переведены на использование 64-разрядных смещений, что позволяет создавать массивы, содержащие более 2^31 элементов. Движок регулярных выражений теперь может работать со строками длиннее 2^31 символов. Функции PerlIO_get_bufsiz, PerlIO_get_cnt, PerlIO_set_cnt и PerlIO_set_ptrcnt переведены с типа int на тип SSize_t;
Объявлены устаревшими и скоро будут исключены из базовой поставки модули CGI и Module::Build, а также связанные с ним модули иерархии CGI::* и Module::Build::*. Данные модули нужно будет устанавливать из архива CPAN. В будущем также ожидается удаление утилит find2perl, s2p и a2p;
Многопоточность средствами интерпретатора ("use threads") переведена в разряд не рекомендованных возможностей из-за усложнённой, недостаточно быстрой и легко приводящей к ошибкам реализации. Удаление текущей реализации пока не планируется, но при появлении более оптимальных альтернатив она будет переведена в разряд устаревших;
Активирован новый copy-on-write механизм копирования строк, при котором непосредственное копирование в новый буфер производится при попытке изменить строку, но не при назначении переменных, что заметно увеличивает эффективность работы со строками и избавляет от необходимости передачи строки в форме указателя. Добавлены дополнительные оптимизации в код сопоставления масок в движке регулярных выражений и реализацию массивов и хэшей;
В поставку добавлен новый модуль IO::Socket::IP, предоставляющий универсальную поддержку сокетов, работа с которыми не отличается для IPv4 и IPv6. >>> Подробнее
Шаттлворт: "With Bdale Garbee’s casting vote this week, the Debian technical committee finally settled the question of init for both Debian and Ubuntu in favour of systemd".