LINUX.ORG.RU

Программирование


37

0

Всего сообщений: 687

Стартовал Open OS Challenge 2023 для профессионалов в области системного программирования для ОС на базе Linux

Группа Linux в России

СберТех и ИТ-Планета при инфоподдержке ГНУ/Линуксцентра проводят первый Open OS Challenge 2023 для профессионалов в области системного программирования для операционных систем на базе Linux.

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

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

 ,

pfrolov
()

Zig 0.11

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

Спустя 8 месяцев и 4457 коммитов от 269 различных участников вышла новая версия Zig.

Zig — это (кросс-)компилятор языков программирования Zig, С++, С, Objective-C, Objective-C++, а также сборочная система и менеджер пакетов для них. Проект разрабатывается под лицензией MIT. Недавно в Zig Core Team вошёл ещё один разработчик на зарплате: Jacob Young.

В новой версии:

  • Появился пакетный менеджер.
  • Улучшена поддержка powerpc, powerpc64le и Plan9.
  • Архитектура i386 переименована в x86.
  • Множественные улучшения и исправления для WebAssembly и появление специфичного для него аллокатора wasm_allocator.
  • Реализация компилятора Zig на Zig (self-hosted) полностью готова, а старый компилятор на C++ «выкинут на орбиту» (требования к ОЗУ для сборки снижены с 11 до 4 ГБ).
  • Обновлены сторонние компоненты:
    • LLVM 16.0.6;
    • musl 1.2.4;
    • wasi-libc 3189cd1ceec8771e8f27faab58ad05d4d6c369ef;
  • Множество изменений в стандартной библиотеке (подробнее).

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

 , ,

anonymous
()

PVS-Studio: Обновляемый список конференций для программистов и не только

PVS-Studio: Обновляемый список конференций для программистов и не только
Группа Конференции и встречи

На сайте PVS-Studio повился новый раздел — Мероприятия для программистов.

Здесь мы каждую неделю обновляем список конференций и других мероприятий по тематикам: C#, C++, DevOps, JS, GameDev, IT-стартапы, тестирование и так далее.

Возможно, вы сталкивались с тем, что затруднительно узнать, а какие, собственно, конференции можно посетить в этом году. Мы точно сталкивались. Есть разные списки, агрегаторы, но они весьма разрозненные или заброшенные. Поэтому мы решили сами собирать мероприятия для разработчиков. Думаем, этот список окажется многим интересным и полезным.

Конференции можно фильтровать по странам (или наоборот выбрать онлайн-варианты), типу, теме. Приятного ознакомления. Если мы пропустили что-то важное, дайте знать, будем добавлять. Заранее спасибо.

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

 , ,

Andrey_Karpov_2020
()

Дональду Кнуту - 85 лет!

Дональду Кнуту - 85 лет!
Группа Разработка

Дональд Кнут — разработчик ряда программных технологий, в том числе создатель настольных издательских систем ΤΕΧ и METAFONT, предназначенных для набора и вёрстки книг научно-технической тематики, автор 19 книг и 160 статей.

Но более всего он, наверное, известен как автор фундаментального труда «Искусство программирования», первые три тома, которого вышли еще в конце 1968 — 1973-х годах. Всего же запланировано 7 томов. Труд этот уникален тем, что хотя и не без белых пятен, но его автор постарался на высочайшем академическом уровне преподнести практически все известные алгоритмы решения задач. Мало кто может похвастаться тем, что прочитал все тома, тем не менее, вряд ли возможно считать настоящим программистом того, чьей квалификации не хватит, чтобы использовать хотя бы как справочник.

В 2011-м году вышла 4-я книга (том 4A), под конец 2022-го — 5-я книга (том 4B). 4B пока отсутствует в русском переводе. Изданное «Пятикнижие Кнутово» выглядит так:

  1. Искусство программирования для ЭВМ. Том 1. Основные алгоритмы
  2. Искусство программирования для ЭВМ. Том 2. Получисленные алгоритмы
  3. Искусство программирования для ЭВМ. Том 3. Сортировка и поиск
  4. Искусство программирования, том 4, A. Комбинаторные алгоритмы, часть 1 (комбинаторный поиск)
  5. Искусство программирования, том 4, B. Комбинаторные алгоритмы, часть 2 (продолжение комбинаторного поиска)

В планах

  • Части 4C и 4D Комбинаторных алгоримов — продолжение темы поиска, а также рекурсивные комбинаторные алгоритмы
  • Синтаксические алгоритмы: лексикографический и синтаксический поиск, включая поиск строк и сжатие данных
  • Контекстно-свободные языки
  • Теория компиляторов

Пожелаем же Дональду Кнуту ясного ума, работоспособности и прожить не менее, чем столько, чтобы завершить эти планы!

>>> Персональная страница Кнута

 , ,

anonymous_incognito
()

RustCon 2022 — конференция по языку программирования Rust

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

Привет всем! Второго декабря, в Москве, пройдет второй RustCon — конференция для тех, кто пишет на языке Rust, и для тех, кто только приглядывается к нему. И сразу хорошая новость — в этом году RustCon пройдет одновременно в офлайн и онлайн-форматах! Что мы готовим:

Продвинутые доклады Крутейшие спикеры будут весь день делиться опытом и рассказывать о своих кейсах в Rust-разработке. Поговорим о новых технологиях и методах, поищем оптимальные решения типичных задач, обсудим перспективы языка (до сих пор не утихают споры!).

Воркшопы Потрогаем код руками и вживую освоим несколько классных приемов программирования на Rust.

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

По промокоду linux.org действует скидка 10 % на билет.

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

 , , ,

it-people
()

Язык программирования 1 теперь работает на Эльбрусе

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

Также реализовано формирование имён функций доступа к полям структуры по правилам русского языка.

$ uname -a
Linux alatyr 5.4.0-3.19-e1cp #1 Wed Mar 9 16:53:28 MSK 2022 e2k E1C+ MBE1C-PC GNU/Linux
$ cat тест.1
#!1

структура человек
  ; имя
    отчество #:изменяемое
  #:суффикс -человека

иван = человек "Иван" "Иванович"
отчество-человека иван := "Петрович"
отчество-человека иван
$ racket/bin/racket тест.1
"Петрович"

Пока сборка есть только для Эльбрус Линукс на Эльбрус-1С+ (система команд e2k-8c). Для остальных можно воспользоваться скриптом для сборки.

Язык 1 - функциональный язык программирования на основе русского языка. Синтаксис унаследован от Haskell, семантика от Racket.

Предыдущее обсуждение на ЛОРе

>>> Описание языка

 , , , ,

monk
()

Astro Pi Mission Zero 2022/23 открыт для молодежи

Группа Open Source

Mission Zero - это проект, который предлагает молодым людям возможность запустить свой код в космосе! Напишите простую программу для получения показаний датчика цвета и яркости на компьютере Astro Pi на борту Международной космической станции и используйте ее для установки цвета фона в персонализированном изображении, чтобы астронавты могли видеть, выполняя свои повседневные задачи.

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

Участие бесплатное и открыто для молодых людей в возрасте до 19 лет в государствах-членах ЕКА. (критерии приёма). Все можно сделать в веб-браузере на любом компьютере с доступом в Интернет. Не требуется специального оборудования или предварительных навыков кодирования.

Участники получат часть истории космической науки, которую они смогут сохранить: персональный сертификат, который они могут загрузить, в котором указано точное время начала и окончания их программы Mission Zero.

Конкурс начался 22 сентября и продлится до 17 марта 2023 года.

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

 astro pi, ,

Pinux001
()

Доступен язык программирования Hare

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

Впервые представлен широкой публике язык программирования Hare, который разрабатывает Дрю ДеВолт (автор Sway и SourceHut) со своей командой последние пару лет.
Hare — язык для системного программирования с минималистичным рантаймом, статической типизацией и ручным управлением памятью.

Исходный код компилятора предоставляется под лицензией GPLv3, а для стандартной библиотеки под лицензией MPL (Mozilla Public License). Компилятор Hare не основан на LLVM или GCC, а использует легковесный qbe. Программы на Hare не линкуются с libc по умолчанию.

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

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

 hare, ,

dadd
()

Новая книга «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 можно БЕСПЛАТНО загрузить для ознакомления. Принудительного ограничения по времени оценки на текущий момент нет.

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

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

 , sublime text 4, ,

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

CIDER 1.0
Группа Open Source

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

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

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

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

 , ,

Princesska
()

Ruby 3.0.0

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
()