LINUX.ORG.RU

Новости «Разработка»

Релиз языка программирования 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 ()
Мини-новость: Выпуск языка программирования Rust 1.47 (239 комментариев)

DuploQ - графический фронтенд для Duplo (детектор дублированного кода)

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

DuploQ представляет собой графический интерфейс к консольной утилите Duplo (https://github.com/dlidstrom/Duplo), предназначенной для поиска дублированного кода в исходных файлах (т.н. «копипаста»).

Утилита Duplo поддерживает несколько языков программирования: C, C++, Java, JavaScript, C#, но также может быть использована для поиска копий в любых текстовых файлах. Для указанных языков Duplo старается игнорировать макросы, комментарии, пустые строки и пробелы, выдавая пользователю максимально «чистые» результаты.

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

DuploQ является мультиплатформенным приложением, написанным с помощью фреймвока Qt версии 5. В настоящее время как минимум поддерживаются следующие платформы (при условии установленной Qt версии не ниже 5.10):

  • Microsoft Windows 10
  • Ubuntu Linux
  • Fedora Linux

Также высока вероятность работы DuploQ на иных платформах, которые официально поддерживаются Qt Company.

На странице релиза DuploQ (https://github.com/duploq/duploq/releases) можно скачать как исходные коды, так и бинарные пакеты для указанных выше систем (64 bit only).

DuploQ + Duplo лицензированы под GPL-лицензией.

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

 , , , ,

ii-system ()

Python 3.9.0

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

Вышел новый стабильный релиз популярного языка программирования Python.

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

Python – стабильный и распространённый язык. Он используется во многих проектах и в различных качествах: как основной язык программирования или для создания расширений и интеграции приложений. Основные области применения: веб-разработка, машинное обучение и анализ данных, автоматизация и системное администрирование. В настоящий момент Python занимает третье место в рейтинге TIOBE.

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

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

 , ,

cocucka ()
Мини-новость: Perl 5.32.2 (31 комментарий)

ZenMake 0.10.0

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

ZenMake — ещё одна система сборки для C/C++ и ряда других языков программирования с декларативными конфигурационными файлами.

ZenMake написан на python с использованием Waf в качестве фреймворка. Основная цель проекта — быть простым в использовании насколько это возможно, но оставаться достаточно гибким.

Зачем еще одна система сборки? Подробности (на английском): https://zenmake.readthedocs.io/en/latest/why.html

Основной репозиторий: https://gitlab.com/pustotnik/zenmake

Документация: https://zenmake.readthedocs.io/

Примеры использования: https://gitlab.com/pustotnik/zenmake/tree/master/demos

Способы использования:

  1. Установить в систему через pip install zenmake и использовать на манер CMake, Meson и др., вызывая zenmake в корне проекта.
  2. Скачать zipapp-форму zenmake.pyz отсюда или сгенерировать самостоятельно через команду zipapp и использовать как встроенную систему сборки.

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

 , ,

Vark ()

Опрос о состоянии Rust 2020

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

Сообщество Rust запустило опрос о состоянии языка и экосистемы 2020 State of Rust Survey.

Цель опроса – выявить слабые и сильные стороны языка и определить приоритеты разработки.

Опрос опубликован на нескольких языках, участие анонимно и потребует около 10-15 минут. Ответы принимаются до 24 сентября.

Результаты прошлого года

Ссылка на форму 2020 State of Rust на русском языке

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

 

perl5_guy ()
Мини-новость: QtProtobuf 0.5.0 (11 комментариев)
Мини-новость: Вышел Kotlin 1.4 (288 комментариев)
Мини-новость: re2c 2.0 (11 комментариев)

Lua 5.4

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

После двух лет разработки, 29 июня тихо и незаметно вышла новая версия языка программирования Lua — 5.4.

Lua – это простой интерпретируемый язык программирования, который легко встраивается в приложения. Благодаря этим качествам, Lua широко используется как язык расширения или описания конфигурации программ (в частности, компьютерных игр). Распространяется Lua по лицензии MIT.

Предыдущая версия (5.3.5) выходила 10 июля 2018 года.

Основные изменения в новой версии

  • новый сборщик мусора на основе поколений (generational). В функции collectgarbage параметры setpause и setstepmul объявлены устаревшими, вместо них рекомендуется использовать параметр incremental;

  • новая функция для выдачи предупреждений warn с возможностью отключения их отображения;

  • новая реализация math.random использует алгоритм xoshiro256** вместо предоставляемого libc и инициализирует генератор случайным числом;

  • константы (constant variables);

  • «закрываемые» (to-be-closed) переменные — локальные константы, для которых выполняется метод __close при выходе из области видимости;

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

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

 

cdslow ()
Мини-новость: QtProtobuf 0.4.0 (22 комментария)

Анонсирован выход Perl 7

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

Вчера вечером на «Perl and Raku Conference in the Cloud», Sawyer X анонсировал смену основной версии Perl с 5 на 7. Работы уже ведутся, новая версия выйдет в течение года. Большого количества изменений ждать не стоит, если коротко: Perl 7 это всё тот же Perl 5.32 с современными настройками по умолчанию. Вам больше не надо явно подключать возможности которые вы и так используете, их включат для вас!

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

Perl 5.32 переходит в режим долгой поддержки на срок от 5 лет.

Развёрнутый анонс от Брайана Д Фоя: https://www.perl.com/article/announcing-perl-7/
TL;DR версия от него же: http://blogs.perl.org/users/brian_d_foy/2020/06/the-perl-7-tldr.html

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

 ,

perl5_guy ()

Free Pascal 3.2.0

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

Состоялся выпуск FPC 3.2.0!

Эта версия является новым крупным релизом и содержит багфиксы и обновления пакетов, новые возможности и новые таргеты.

Со времени выхода FPC 3.0 прошло 5 лет, так что рекомендуется обновиться как можно скорее.

Новые возможности: https://wiki.freepascal.org/FPC_New_Features_3.2.0

Список изменений в которых может нарушиться обратная совместимость: https://wiki.freepascal.org/User_Changes_3.2.0

Список новых поддерживаемых платформ: https://wiki.freepascal.org/FPC_New_Features_3.2.0#New_compiler_targets

Скачать: https://www.freepascal.org/download.html

>>> Официальный сайт

 , ,

fsb4000 ()

Очередной релиз QVGE 0.5.5 (визуальный редактор графов)

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

Вышел очередной релиз QVGE, мультиплатформенного приложения для просмотра и редактирования двумерных графов.

В настоящей версии поддерживаются следующие форматы:

  • GML
  • GraphML
  • GEXF
  • DOT/GraphViz (основные тэги)

Версия 0.5.5, кроме устранения значительного количества проблем предыдущих версий, позволяет создавать и редактировать порты узлов графа, а также экспортировать графы в виде изображений с выбранным разрешением для дальнейшей печати.

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

 ,

ii-system ()
Мини-новость: Perl 5.32.0 (56 комментариев)
Мини-новость: Доступна предварительная сборка Qt 6.0 (112 комментариев)

Облачная конференция по Perl и Raku

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

COVID-19 разогнал всех по домам, но как бы то ни было, у сообщества накопилось много интересных мыслей по Perl и Raku, которыми хочется поделиться.

Присоединяйся к трёхдневному мероприятию насыщенному интересными выступлениями!

Конференция будет проходить с 24 по 26 июня. Купившие билет в 10$, смогут смотреть живые выступления и задавать вопросы докладчикам. Для всех остальных, видеоотчёт будет доступен на ютуб совершенно бесплатно.

Доклады традиционно читают волонтёры и желающие могут поддержать альтруистов рублём.

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

 , ,

perl5_guy ()

U++ Framework 2020.1

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

В мае этого года (точная дата не сообщается) вышла новая, 2020.1, версия U++ Framework (Он же Ultimate++ Framework). U++ — кроссплатформенный фреймворк для создания GUI приложений.

Нововведения в текущей версии:

  • Linux бэкенд по умолчанию теперь использует gtk3 вместо gtk2.
  • «look&feel» в Linux and MacOS переработан и лучше поддерживает тёмные темы.
  • У ConditionVariable и Semaphore появились варианты метода Wait с параметром timeout.
  • Добавлена функция IsDoubleWidth для определения глифов UNICODE двойной ширины.
  • U++ теперь использует директории ~/.config and ~/.cache для хранения разного.
  • Добавлена функция GaussianBlur.
  • Модернизирован внешний вид виджетов в дизайнере слоёв.
  • Поддержка нескольких мониторов в MacOS и другие исправления.
  • В дизайнер добавлено несколько часто используемых виджетов, таких как ColorPusher, TreeCtrl, ColumnList.
  • Нативный диалог выбора файлов, FileSelector, переименован в FileSelNative и добавлен в MacOS (в дополнение к Win32 и gtk3).
  • Рефракторинг GLCtrl в OpenGL/X11.
  • Добавлена функция GetSVGPathBoundingBox.
  • PGSQL теперь может экранировать ? через ?? или использовать метод NoQuestionParams в целях избежания использования ? как символа подстановки параметров.

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

 , , ,

next_time ()

Вышла новая версия языка программирования D (2.091.0)

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

Изменения в компиляторе:

  • Окончательно убран деаллокатор классов.
  • Возможность сообщать о номерах строк в стиле GNU.
  • Добавлена экспериментальная генерация заголовочников C++ из внешних (extern) объявлений C|C++: DMD теперь умеет писать заголовочные файлы C++, содержащие биндинги на объявления в существующих файлах D, помеченных как extern(C) или extern(C++).

Изменения в рантайме:

  • Добавлен пропущенный в некоторых местах pthread_attr_destroy.
  • Расширенные биндинги в core.sys.windows.security.
  • Добавлен core.stdcpp.memory.unique_ptr.
  • Добавлен TFD_TIMER_CANCEL_ON_SET.

Изменения в библиотеке:

  • std.bigint теперь @safe.
  • Замена approxEqual на isClose в std.math.
  • Удалён устаревший std.format.Mangle.
  • Удалены устаревшие структуры ByLine, ByChunk, ByRecord из std.stdio.
  • std.algorithm.sorting.schwartzSort теперь поддерживает и бинарные функции трансформации.
  • Добавлена curry в std.functional.

Изменения в инсталляторе:

  • Скрипт инсталляции теперь может исполняться на Windows.

Изменения в Dub:

  • Добавлена переменная окружения SOURCE_FILES.
  • У DUB теперь стиль дополнения zsh.

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

 ,

next_time ()