LINUX.ORG.RU

38
Всего сообщений: 1859

Новая книга «Linux Kernel Programming»

Группа Ядро Linux

Много воды утекло с момента выхода LDD3 (LDD4 мы, видимо, уже не дождёмся), безнадёжно устарел фундаментальный труд Бовета и Чезати, Роберт Лав давно не радовал нас своими прекрасными творениями. Казалось бы, в мире литературы о программировании ядра Linux наметилась устойчивая стагнация…

Но нет! Ситуацию спасает замечательный индийский программист со звучным именем Кайван Биллимория. Он написал книгу о программировании ядра, аж в двух томах.

Об авторе

Кайван программирует с 1983 года. В то время он самостоятельно научился программировать на бейсике, затем освоил Си и ассемблер под MS-DOS, а потом открыл для себя мир UNIX и Linux. Занимался программированием ядра и драйверов, участвовал в коммерческих и свободных проектах, занимался преподавательской деятельностью.

Повествование в книге ведётся на основе Ubuntu 18.04 LTS и ядра версии 5.4.

( читать дальше... )

>>> Том 1 на Amazon

>>> Том 2 на Amazon

 , , ,

x-signal ()

Julia Computing собрала $24 млн в первом раунде финансирования

Группа Open Source

Julia Computing Inc., стартап, стоящий за специализированным языком программирования, используемым для таких задач, как разработка алгоритмов машинного обучения и моделирование космических полетов, сегодня объявил о привлечении финансирования в размере 24 миллионов долларов.

Первый раунд финансирования возглавила компания Dorilton Ventures. К венчурной компании присоединились Menlo Ventures, General Catalyst и HighSage Ventures. Боб Муглиа, бывший исполнительный директор гиганта по хранению данных Snowflake Inc., присоединяется к совету директоров Julia Computing в рамках раунда финансирования.

( читать дальше... )

«Ученые, изучающие данные, и инженеры используют продукты, которые были разработаны много десятилетий назад. JuliaHub позволяет проектировать новые лекарства и методы лечения, разрабатывать новые батареи, моделировать космический полет и составлять карты Вселенной, используя при этом меньше вычислительных ресурсов и сокращая выбросы центров обработки данных», – сказал Вирал Шах, генеральный директор Julia Computing и один из создателей языка Julia. «Благодаря последнему финансированию мы с нетерпением ждем увеличения численности нашей команды и внедрения суперспособностей языка Julia в новые отрасли и приложения.»

На сегодняшний день Julia Computing привлекла около 28,6 миллионов долларов.

>>> Подробности

 , ,

wall_jvm ()

PCRE2 10.37

Группа Open Source

Вышел релиз библиотеки PCRE2 10.37. PCRE2 это вторая версия оригинальной библиотеки PCRE с несовместимым API.

Библиотека PCRE2 это набор функций, которые реализуют регулярные выражения и сопоставление с образцом (pattern matching), используя синтаксис и семантику схожие с Perl 5.

Основные изменения:

  • Из библиотеки libpcre2-posix удалены символы POSIX-функций, такие как regcomp и т.д., так как они вызывали проблемы у некоторых приложений. Патч pcre2-symbol-clash.patch принят в апстрим. Также обновлена версия ABI этой библиотеки.
  • Исправлено гипотетическое разыменование нулевого указателя.
  • Исправлено два бага, связанные с очень большими числами, и теперь поведение идентично Perl.
  • Исправлено неправильное поведение при использовании \K.
  • Восстановлена оптимизация повторения символа в JIT.

>>> Подробности

 , , , ,

ZenitharChampion ()

Первый стабильный релиз Sublime Text 4

Группа Проприетарное ПО

Обновление популярного редактора кода, не прошло и двух лет.

Основное в изменении лицензии – лицензионные ключи получают срок действия - будут доступны для новых обновлений редактора в течение 3-х лет с момента покупки лицензии.

Но, как и раньше Sublime Text можно БЕСПЛАТНО загрузить для ознакомления. Принудительного ограничения по времени оценки на текущий момент нет.

( читать дальше... )

>>> Анонс и подробности релиза...

 , , ,

vvn_black ()

10-й юбилейный DUMP — главная IT-конференция на Урале

Группа Конференции и встречи

14 мая в Екатеринбурге пройдет 10-й юбилейный DUMP – главная IT-конференция на Урале. Это общение, идеи, тренды!

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

Приглашаем разработчиков, тестировщиков и QA, devops-специалистов, веб-дизайнеров и проектировщиков интерфейсов, аналитиков, продактов, тимлидов и менеджеров разработки.

На конференции выступят более 100 спикеров, в том числе:

  • Евгений Сатуров, Flutter Teamlead из Surf и основатель Flutter Dev Podcast;
  • Сергей Абдульманов, PR-агентство Loft, Туту.ру;
  • Григорий Петров, DevRel в Evrone;
  • Владимир Лила, СКБ Контур;
  • Андрей Цветцих, Lead.NET developer в ЕПАМ и другие интересные ребята.

Нас ждут 9 тематических секций и мастер-классы, нетворкинг, дискуссии. Неофициальная программа экскурсий и вечеринок рассчитана на целые DUMP-выходные с 13 по 16 мая!

Кстати, впервые можно выбрать формат участия: офлайн или онлайн.

Программа и ранняя цена на билеты здесь:

>>> Подробности

 , , , ,

anonymous ()

CIDER 1.0

Группа Open Source

Вышла первая мажорная версия CIDER – cреды интерактивной разработки на языке Clojure в Emacs, аналогичной SLIME для Common Lisp.

Список изменений невелик, однако это очень важная веха в развитии проекта, который также начиная с этой версии переходит на SemVer.

( читать дальше... )

>>> Подробности

 , ,

Princesska ()

Ruby 3.0.0

Группа Разработка

Вышел новый релиз динамического рефлективного интерпретируемого высокоуровневого объектно-ориентированного языка программирования
Ruby версии 3.0.0. По заявлению авторов, зафиксировано утроение производительности (по тесту Optcarrot), таким образом достигнута поставленная в 2016 году цель, описанная в концепции Ruby 3x3.

( читать дальше... )

>>> Подробности

 ,

linuks ()

Релиз языка программирования Nim 1.4.0

Группа Разработка

Вышла новая версия системного языка программирования Nim, которому в этом сентябре исполнился год с момента выхода первой стабильной версии. По синтаксису язык похож на Python, а по производительности почти как C++. Согласно FAQ язык во многом заимствует из (в порядке весомости вклада): Modula 3, Delphi, Ada, C++, Python, Lisp, Oberon.

Работает везде благодаря возможности компиляции в С/C++/Objective-C/JS. В нём поддерживаются макросы, ООП, дженерики, исключения, горячая замена кода и многое другое. Лицензия - MIT.

Наиболее значительные изменения:

  • Появился новый сборщик мусора ORC, использующий алгоритм из ARC, но при этом специальным образом обрабатывающий циклические ссылки. Включается опцией --gc:orc. О различиях ARC/ORC есть отличная статья.

  • Добавлен режим строгих определений функций, при котором включается дополнительная проверка на мутабельность объектов. Активируется через прагму {.experimental: "strictFuncs".} или через ключ --experimental:strictFuncs.

  • Ключевое слово from теперь может быть использовано как оператор.

  • Добавлена прагма .noalias. Она сопоставляется с ключевым словом C restrict, чтобы повысить эффективность, которую может обеспечить это слово.

  • Конкретные предупреждения теперь можно превратить в ошибки через --warningAsError[X]:on|off.

  • Новая команда: nim r main.nim [args...], которая компилирует и запускает main.nim, и включает --usenimcache так, что результат сохраняется в $nimcache/main$exeExt, используя ту же логику что и nim c -r для избавления от перекомпиляции, когда исходники не изменились. Пример:

nim r compiler/nim.nim --help # скомпилирован в первый раз
echo 'import os; echo getCurrentCompilerExe()' | nim r - # это тоже работает
nim r compiler/nim.nim --fullhelp # без перекомпиляции
nim r --nimcache:/tmp main # бинарник сохранён в /tmp/main
  • Добавлена новая подсказка --hint:msgOrigin, которая покажет где компилятор сгенерировал сообщения об ошибках/предупреждения. Это помогает, когда неочевидно откуда пришло сообщение.

  • Добавлен флаг --backend:js|c|cpp|objc (или -b:js и т.д.) для смены бэкенда.

  • Добавлен флаг --usenimcache для вывода бинарников в nimcache.

  • Удалены ключи: --oldNewlines, --laxStrings, --oldast, --oldgensym

  • Утилита nimsuggest теперь показывает не только предварительное объявление, но и расположение реализации по запросу def.

Помимо этого добавлено множество изменений в стандартную библиотеку и множество исправлений багов.

>>> Подробности

 , ,

anonymous ()

Доступна предварительная сборка Qt 6.0

Группа Разработка

Qt Company сообщила в своём блоге о доступности первой предварительной сборки Qt 6.0.

Компания сообщает, что первая предварительная сборка содержит бинарные файлы только для настольных платформ, а для тестирования на мобильных и встроенных платформах необходимо воспользоваться сборкой из исходных текстов, при этом Qt 6.0 требует поддержки C++17 от компилятора, поэтому разработка фокусируется на сравнительно недавно выпущенных компиляторах.

Первая предварительная сборка содержит следующие модули:

  • Qt Core
  • Qt GUI
  • Qt Widgets
  • Qt Network
  • Qt QML
  • Qt Quick
  • Qt Quick Controls
  • Qt SVG
  • Qt Network Authorization
  • Qt SQL
  • Qt Test
  • …и несколько других модулей

Qt Company и далее собирается предоставлять регулярные предварительные сборки Qt 6.0, получить же их можно воспользовавшись установщиком Qt в категории Preview.

Выпуск Qt 6 намечен на 1 декабря, а 31 августа предполагается заморозка добавления функциональности.

>>> Блог Qt

 , , ,

c0deum ()

Релиз Nim 1.2.0

Группа Разработка

Вышла новая версия системного языка программирования Nim. В ней имеется частичная несовместимость с версией 1.0, например, из-за более строгого преобразования типов. Но на этот случай есть флаг --useVersion:1.0.

Главное нововведение — новый сборщик мусора, включаемый опцией --gc:arc. Автор языка Andreas Rumpf собрается написать подробную статью о преимуществах ARC, а пока предлагает ознакомиться с его выступлением на FOSDEM, где показаны результаты бенчмарков.

  • Компилятор теперь поддерживает опцию --asm для более удобного изучения производимого ассемблерного кода.
  • align pragma может быть использована для переменных и полей объекта, это похоже на alignas в C/C++.
  • =sink оператор теперь опционален. Компилятор теперь может использовать комбинацию =destroy и copyMem для эффективного перемещения объектов.
  • Преобразования в unsigned integers не проверяются в рантайме. Подробности в https://github.com/nim-lang/RFCs/issues/175
  • Новый синтаксис для lvalue: var b {.byaddr.} = expr, подключаемый через import std/decls
  • Компилятор поддерживает новый ключ --panics:on, который превращает рантаймовые ошибки такие как IndexError или OverflowError в фатальные ошибки, которые не могут быть пойманы через try. Это может улучшить эффективность рантайма и размер программы.
  • Генерируемый JS-код использует только пробелы вместо мешанины из пробелов и табов.
  • В компилятор добавлена поддержка .localPassc pragma, с помощью которой можно обработать специальные опции C(++) бэкенда для C(++) файла, который генерируется из текущего модуля Nim.
  • Nimpretty теперь не принимает отрицательный аргумент для настройки отступов, так как это ломало файлы.
  • Добавлены новые макросы (collect, dup, capture), подключаемые через import sugar.

Помимо этого добавлено множество изменений в стандартную библиотеку и множество исправлений багов.

>>> Подробности

 , ,

anonymous ()

GNU Guile 3.0

Группа GNU's Not Unix

16 января состоялся мажорный релиз GNU Guile — встраиваемой реализации языка программирования Scheme с поддержкой многопоточности, асинхронности, работы с сетью и системными вызовами POSIX, бинарного интерфейса Си, разбора PEG, REPL по сети, XML; имеет собственную систему объекто-ориентированного программирования.

Главной особенностью новой версии является полноценная поддержка JIT-компиляции, что позволило ускорить работу программ в среднем в два раза, максимум — в тридцать два для бенчмарка mbrot. По сравнению с виртуальной машиной Guile предыдущей стабильной версии, набор инструкций стал более низкоуровневым.

Также улучшена совместимость со стандартами языка программирования Scheme R5RS и R7RS, появилась поддержка структурированных исключений и чередующихся между собой объявлений и выражений внутри лексического контекста. Написанный на Scheme eval по производительности сравнялся с аналогом на языке Си; Для разных реализаций типа Record предоставлен унифицированный набор инструментов для работы с ними; Классы в GOOPS перестали быть переопределяемыми; Подробности и прочие изменения можно прочитать в анонсе релиза.

Новой стабильной веткой языка отныне является 3.x. Она устанавливается параллельно предыдущей стабильной ветке 2.x.

>>> Анонс релиза

 , , ,

Princesska ()

Серия статей «По языку в день» от Андрея Шитова

Группа Разработка

Андрей Шитов, известый Perl-разработчик, решил в этом году попробовать как можно больше языков программирования и поделиться опытом с читателями.

Языки программирования восхитительны! Ты влюбляешься в какой-либо язык как только напишешь несколько тестовых программ. Чем больше изучаешь, тем лучше чувствуешь сам язык и идеи положенные в его фундамент.

В рождественском календаре этого года (с 1 по 24 декабря), я буду ежедневно публиковать статьи повествующие об основах различных языков программирования: один день - один язык. Чтобы сделать обзоры более полезными, я постараюсь придерживаться единого формата и разобрать аспекты языка, необходимые для написания следующих мини-проектов:

  • Hello, World!
  • Функция, вычисляющая факториал рекурсивно или в функциональном стиле
  • Программу, создающую массив объектов и выполняющую полиморфный вызов методов на них
  • Реализацию сонной сортировки (sleep sort). Данный алгоритм не применяется в боевых условиях, но замечательно демонстрирует возможности языка в разрезе конкурентности

Список языков:

  • День 1. TypeScript
  • День 2. Rust
  • День 3. Julia
  • День 4. Kotlin
  • День 5. Современный C++
  • День 6. Crystal
  • День 7. Scala
  • День 8. Dart
  • День 9. Hack
  • День 10. Lua
  • День 11. Raku
  • День 12. Elixir
  • День 13. OCaml
  • День 14. Clojure
  • День 15. Nim
  • День 16. V
  • День 17. Go
  • День 18. Hy
  • День 19. Red
  • День 20. Mercury
  • День 21. Elm

>>> Подробности

 ,

perl5_guy ()

Релиз языка программирования Julia 1.3

Группа Разработка

Julia — высокоуровневый высокопроизводительный свободный язык программирования с динамической типизацией, созданный для математических вычислений. Эффективен также и для написания программ общего назначения. Синтаксис Julia сходен с MATLAB с заимствованием элементов из Ruby и Lisp.

Что нового в версии 1.3:

  • возможность добавления методов в абстрактные типы;
  • поддержка Unicode 12.1.0 и возможность использования специфичных начертаний цифровых символов Unicode в идентификаторах;
  • добавлен макрос Threads.@spawn и ключевое слово Channel(f::Function, spawn=true) для организации запуска задач в любом доступном потоке. Системные операции ввода/вывода с файлами и сокетами и генератор псевдослучайных чисел адаптированы для многопоточных приложений;
  • добавлены новые библиотечные функции.

Код проекта доступен под лицензией MIT.

>>> Подробности

 ,

Satori ()

Релиз языка программирования Rust 1.39

Группа Разработка

Rust — мультипарадигмальный компилируемый язык программирования общего назначения, спонсируемый Mozilla, сочетающий парадигмы функционального и процедурного программирования с объектной системой, основанной на типажах, и с управлением памятью через понятие «владения».

Что нового в версии 1.39:

  • стабилизирован новый синтаксис асинхронного программирования, основанный на функции «async», блоке async move { … } и операторе «.await»;
  • разрешено указание атрибутов при определении параметров функций, замыканий и указателей на функции. Поддерживаются атрибуты условной компиляции (cfg, cfg_attr), управляющие диагностикой через lint и вспомогательные атрибуты вызова макросов;
  • стабилизирован «#feature(bind_by_move_pattern_guards)», который позволяет использовать переменные с типом привязки «by-move» в шаблонах;
  • предупреждения о проблемах при проверке заимствования переменных c использованием NLL переведены в разряд фатальных ошибок;
  • в пакетный менеджер cargo добавлена возможность использования расширения «.toml» для файлов конфигурации.

С полным списком изменений можно ознакомиться на сайте разработчика.

>>> Источник

 ,

Satori ()

«OPEN SOURCE – новая философия бизнеса» бесплатный семинар про ПО с открытым кодом, 25 октября 2019

Группа Open Source

На семинаре вы узнаете:

  • как создавать корпоративные версии программных систем с открытым кодом
  • как запускать надежные и совместимые решения для создания программно-реализуемой инфраструктуры
  • как изолировать программу от сетевых настроек системы
  • другие вопросы

Помимо докладов пройдет конкурс и розыгрыш призов.

По завершении планируется легкий фуршет.

Когда: 25 октября в 15:00

Продолжительность семинара: 2 часа

Место проведения: Москва, Доброслободская ул., 5

Для кого: IT-руководители и IT-специалисты

Участие бесплатное при условии предварительной регистрации

>>> Подробнее о семинаре

 , , , ,

Venera7 ()

dhall-lang v11.0.0

Группа Разработка

Dhall – это программируемый язык конфигурации, который можно описать как JSON + функции + типы + импорт.

Изменения:

  • Упрощена запись выражений, где используется .
  • Упрощена запись выражений с вложениями,
  • Добавлена поддержка ведущих разделителей.
  • Стандартизирована поддержка обозначения завершенности записи.
  • Улучшена поддержка кеширования в Windows.
  • Добавлены типы в файлы package.dhall.
  • Добавлены утилиты: List.{default,empty}, Map.empty, Optional.default.
  • JSON.key {Text, Value} перемещен на Map.

>>> Подробности

 , ,

anonymous ()

Состоялся релиз языка Nim 1.0

Группа Разработка

Nim — статически типизированный язык, который ориентируется на эффективность, читаемость и гибкость.

Версия 1.0 отмечается стабильной базой, которая может быть уверенно использована в ближайшие годы. Начиная с текущего релиза, любой код, написанный на Nim, не будет сломан.

Этот релиз включает в себя множество изменений, включая исправления ошибок и некоторые языковые дополнения. В комплекте также идет обновлённый пакетный менеджер Nimble.

Версия 1.0 теперь имеет статус LTS. Поддержка и исправление ошибок будут продолжаться до тех пор, пока будут востребованы. Новые возможности, которые не будут нарушать обратную совместимость, будут развиваться в ветке 1.х.

Текущая цель состоит в том, чтобы любой код, который компилируется этим релизом, продолжал компилироваться любой стабильной версией 1.х в будущем.

Компилятор всё ещё реализует функции, которые описаны в «экспериментальном руководстве». В эти возможности всё ещё могут быть внесены обратно несовместимые изменения. Есть также модули в стандартной библиотеке, которые до сих пор считаются нестабильными, и они помечены как нестабильное API.

Обновиться можно уже сейчас:

choosenim update stable

>>> Подробности

 , ,

opqx ()

Релиз Sublime Text 3.2

Группа Проприетарное ПО

Сегодня вышла версия 3.2 Sublime Text — изощрённого текстового редактора кода, разметки и всего прочего. Версия основана на множестве изменений, привнесённых из второго продукта Sublime HQ — Sublime Merge — добавлена первоклассная интеграция с Git, встроенная функция сравнения редактируемых файлов и поддержка каркасных блоков.

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

Git Integration

Incremental Diff

Для использования Sublime Text необходимо приобрести лицензию, но скачать и оценить можно бесплатно, без ограничений. Лицензия привязывается к пользователю, поэтому можно устанавливать Sublime Text на любое количество компьютеров и операционных систем.

Скачать

>>> Changelog

 , , , ,

vvn_black ()

Ruby 2.6.0

Группа Open Source

Ruby — динамический, опенсорсный язык с прицелом на простоту и продуктивность. Он имеет элегантный синтаксис: интуитивно понятный и простой для написания.

В этом выпуске представлен ряд новых возможностей и улучшений производительности. Самые важные:

  • Новый JIT-компилятор, который вместо работы в памяти сохраняет на диск код на языке C и обрабатывает его внешним компилятором (поддерживаются GCC, Clang и Microsoft VC++). Включается ключом --jit. На активно нагружающих процессор задачах достигнуто ускорение в 1.7 раз по сравнению с Ruby 2.5.
  • Модуль RubyVM::AbstractSyntaxTree (экспериментальный, поддержание будущей совместимости пока не гарантируется). Он предоставляет методы parse и parse_file для превращения соответственно строки или файла с кодом на Ruby в узлы абстрактного синтаксического дерева, представленного объектами класса Node из того же модуля.

Другие важные нововведения:

( читать дальше... )

Улучшения производительности:

( читать дальше... )

Другие важные изменения по сравнению с 2.5:

( читать дальше... )

>>> Скачать (SHA1=c95f4e86e21390270dad3ebb94491fd42ee2ce69)

>>> Подробности

>>> Источник

 , ,

Moondancer ()

Fortran 2018: новый стандарт языка

Группа Разработка

2-го декабря 2018-го года Международная Организация по Стандартизации (ISO) опубликовала ISO/IEC 1539:2018, ранее известный под названием Fortran 2015.

Новый стандарт расширяет возможности взаимодействия с программами на C и параллельного программирования:

  • Введён новый тип CFI_cdesc_t, содержащий информацию о типе элементов, ранге, размере передаваемого массива и способе выделения его памяти. Ранее на сторону программы, написанной на языке C, вместо массивов чисел можно было передать только «голые» указатели, и о соблюдении границ массивов приходилось заботиться вручную.
  • Введено понятие команды (team), позволяющее разделить выполняющуюся на кластере программу на несколько сравнительно независимых подмножеств процессов.
  • Появилась возможность обработки ошибок отдельных процессов кластера (fail image и аргумент stat= вызовов change team, end team, event post, form team, sync all, sync images, sync team).
  • Добавлены атомарные операции над переменными (atomic_add, atomic_and, atomic_or, atomic_xor, atomic_fetch_add, atomic_fetch_and, atomic_fetch_or, atomic_fetch_xor, atomic_cas).
  • Улучшена совместимость со стандартом ISO/IEC/IEEE 60559:2011 для чисел с плавающей запятой.

Следующая версия стандарта временно называется Fortran 202x.

Новые возможности Fortran 2018

Бесплатно доступный черновик стандарта

>>> Подробности

 , ,

AITap ()