Новости «Разработка»
Mold 1.0
Mold (a modern linker) — новый высокоскоростной компоновщик для Unix-подобных платформ (i386 и x86-64) от автора LLVM lld.
В качестве мотивации появления проекта указывается нежелание тратить длительное время на перекомпоновку больших файлов в процессе разработки. Mold опережает конкурентов за счёт использования более быстрых алгоритмов, эффективных структур данных и интенсивной параллелизации.
Согласно проведённым замерам производительности, новый компоновщик в разы быстрее LLVM lld и на порядок быстрее GNU gold, будучи при этом совместим с ними.
Проект написан на C++20 и распространяется под лицензией GNU AGPL v3. Автор заявляет о возможности приобретения коммерческой лицензии для организаций, которых не устраивают условия AGPL, а также о поиске спонсора, который может купить у него права на проект и сменить лицензию на более пермиссивную.
>>> Подробности (github.com)
()
Rakudo 2021.10
Rakudo — компилятор языка программирования Raku (до октября 2019 года называвшегося Perl6). Компиляция осуществляется для MoarVM, JVM и других виртуальных машин.
Выпуск включает изменения в трёх смежных проектах: Rakudo, NQP (github.com) и MoarVM. Суммарно сделано 922 коммита.
( читать дальше... )
>>> Подробности (rakudoweekly.blog)
Fortran: 65 лет с момента выхода первого справочного руководства
В этот день 65 лет назад, 15 октября 1956 года, появилось первое справочное руководство для программирования на языке FORTRAN: «The Fortran Automatic Coding System for the IBM 704».
( читать дальше... )
>>> Подробности (fortran-lang.org)
cppcheck 2.6
Вышла новая версия cppcheck — статического анализатора исходного кода для языков C и C++.
В этом выпуске представлены новые проверки:
- пропущенный
returnв функции; - запись перекрывающихся (overlapping) данных, обнаружение UB;
- сравнение с значением вне допустимого диапазона типов;
- отключение copy elision из-за использования
return std::move(local); - открытие файла на чтение и запись в разных потоках (streams).
( читать дальше... )
Помимо этого, была завершена проверка соответствия исходного кода стандарту MISRA C 2012: реализованы все правила MISRA C 2012, кроме 1.1, 1.2 (должны обеспечиваться компилятором) и 17.3 (может обеспечиваться компилятором), включая правила в поправках 1 и 2.
Исходный код анализатора распространяется по лицензии GPLv3.
>>> Подробности (sourceforge.net)
Веб-фреймворк Phoenix 1.6.0
Phoenix — веб-фреймворк на языке программирования Elixir, призванный обеспечить высокую производительность веб-приложений.
Основой фреймворка является движок LiveView, который обеспечивает возможность обновления DOM на стороне сервера с помощью долгоиграющего WebSocket-соединения, что позволяет писать интерактивные веб-приложения без использования JavaScript.
( читать дальше... )
>>> Подробности (phoenixframework.org)
Вышел Golang 1.17
Как всегда, релиз следует обещанию совместимости с Go 1.x. А значит что все существующие программы так же будут собираться Golang 1.17.
( читать дальше... )
>>> Подробности (golang.org)
Cppcheck 2.5
Вышла новая версия статического анализатора для С и С++.
В новой версии:
В парсере:
- различные исправления;
- теперь поддерживаются все возможности c++11, c++14, c++17;
- частичная поддержка с++20.
Также анализатор теперь:
- знает больше об API;
- показывает меньше ненужных предупреждений;
- находит больше багов;
- исправлены вылеты и ложные срабатывания в Misra.
Добавлены новые проверки:
- подозрительное присваивание контейнера/итератора в условии;
- повторное пробрасывание текущего исключения с помощью
throw;.
Примеры кода, которые демонстрируют новые проверки:
void f(std::string s) {
if (s = "123") {
}
}
Assignment in condition should probably be comparison
void func1(const bool flag) { try{ if(!flag) throw; } catch (int&) { ; } }
Rethrowing current exception with 'throw;', it seems there is no current exception to rethrow.
If there is no current exception this calls std::terminate(). More: https://isocpp.org/wiki/faq/exceptions#throw-without-an-object
>>> Подробности (github.com)
Zig 0.8
После 7 месяцев работы и 2711 коммитов вышла новая версия Zig: 0.8
Zig это:
-
Современный компилятор С
-
Современный компилятор С++
-
Компилятор языка Zig
-
Сборочная система для C, C++, языка Zig
-
(Планируется) Пакетный менеджер для С, C++, языка Zig
Zig разрабатывается под лицензией MIT: https://github.com/ziglang/zig/blob/master/LICENSE
Язык Zig – это язык общего назначения, который старается быть простым. Нет макросов, скрытых аллокаций, скрытого потока управления.
( читать дальше... )
Полный список изменений: https://ziglang.org/download/0.8.0/release-notes.html
>>> Официальный сайт (ziglang.org)
Мини-версия рантайма для программирования микроконтроллеров на D
Dylan Graham представил LWDR. Это легковесный D-рантайм для программирования на D микроконтроллеров на базе ОС реального времени. Текущая версия нацелена на ARM Cortex-M.
Разработка не ставит целью полное покрытие всех возможностей D, но предоставляет базовые средства. Распределение памяти производится вручную (new / delete), мусорщик не реализован, но имеется ряд хуков для использования средств RTOS.
( читать дальше... )
>>> LWDR (Light Weight D Runtime) for Microcontrollers v0.2.3 (dlang.org)
Perl 5.34.0
С момента выхода Perl 5.32.0 прошло около десяти месяцев. Если исключить документацию, генерируемые автоматически файлы и инструментарий для формирования самого релиза, было изменено 150,000 строк в 1,300 .pm, .t, .c и .h-файлах.
( читать дальше... )
>>> Подробности (perl.org)
Solvespace 3.0
Solvespace – это параметрическая 2D/3D САПР для проектирования твёрдых тел и сборок из них. 17 апреля вышла новая версия 3.0. По сравнению с предыдущим стабильным релизом 2.3:
Новые фичи для скетчей и групп
- Новая булева операция intersection для твёрдых тел (в 2.3 были лишь union и difference)
- Новые группы: revolution и helical extrusion (в 2.3 были лишь extrude и lathe)
- Группы extrude, lathe, translate и rotate могут использовать булеву операцию «assembly» для ускорения вычислений (в 2.3 операции assembly не было)
- Подавление (suppress, как в Solidworks) extrude и lathe groups (в 2.3 не было)
- Группы Translate и rotate можно повторять (= step and repeat rotation / translation = circular and linear pattern) с операциями «difference» и «assembly»
- На поверхности тел можно накладывать картинки (примерно как раньше можно было писать true type шрифтом)
…и другие.
( читать дальше... )
>>> Подробности (github.com)
Релиз Erlang/OTP 24.0
Вышел важный релиз платформы для разработки высоконагруженных и отказоустойчивых систем - Erlang/OTP за номером 24.
Выпуск включает в себя более 1400 коммитов, изменивших около полумиллиона строк. Ключевым нововведением является добавление JIT-компилятора «BeamAsm» в виртуальную машину Erlang'а (BEAM). Попытки реализации данного функционала предпринимались на протяжении ~10 лет и наконец увенчались успехом.
( читать дальше... )
>>> Подробности (erlang.org)
| ← предыдущие | следующие → |
