LINUX.ORG.RU

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

Активные теги:

 , , , ,

: 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
()
: Cor - алтернативная ООП система для Perl (38 комментариев)

Релиз кроссплатформенного UI фреймворка MauiKit 1.1.0

Релиз кроссплатформенного UI фреймворка MauiKit 1.1.0
Группа Разработка

Проект Maui – это свободное программное обеспечение с открытым исходным кодом, поддерживаемое сообществом KDE и разработанное Nitrux Latinoamericana.

MauiKit – набор элементов управления и инструментов, основанных на QQC2 и Kirigami, совместно используемых в наборе приложений Maui. MauiKit помогает быстро создавать пользовательские интерфейсы, которые соответствуют Maui HIG. Основан на Qt, QML, и C++. Содержит компоненты, готовые к использованию и работающие на Android, Linux, Windows, Mac OS и iOS.

Версия 1.1.0 содержит обновления, новые функции, исправления ошибок. Для этого первого полного релиза пакеты распространяются непосредственно с официальной веб-страницы MauiKit. Это первый официальный стабильный релиз.

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

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

 , , ,

cocucka
()

Deno 1.0

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

Состоялся мажорный релиз Deno – открытой, безопасной среды выполнения программ на языке TypeScript, обладающей следующими особенностями:

  • Исключительно явный доступ к файловой системе, сети и окружению через установку соответствующих разрешений пользователем;
  • Исполнение TypeScript без Node.JS и tsc;
  • Обратная совместимость с Javascript: любое подмножество программ для Deno, не ссылающееся на глобальное пространство имён Deno и являющееся валидным Javascript кодом можно исполнять в браузере;
  • Поставка в виде единственного исполняемого файла, также содержащего в себе дополнительные инструменты, такие как
    • deno run --inspect-brk: дебаг-сервер, взаимодействующий с Visual Studio Code и инструментами удалённой отладки в Google Chrome;
    • deno install: установщик программ для Deno из удалённых ресурсов. Производит загрузку вместе с зависимостями и добавляет в $HOME/.deno/bin cкрипт для запуска программы;
    • deno fmt: производит форматирование кода;
    • deno bundle: бандлер программ на Deno. Производит js-файл, содержащий в себе программу для Deno и её зависимости;
    • WIP: генератор документации и инструмент аудита зависимостей;
  • Отсутствие зависимости от npm и package.json: внешние модули подгружаются и используются (загрузка по сети происходит только во время первого выполнения, в дальнейшем модуль кэшируется вплоть до вызова с флагом --reload) после указания их URL прямо в программе:
    import * as log from "https://deno.land/std/log/mod.ts";
    
  • Абсолютно все асинхронные операции возвращают Promise, в отличие от Node.JS;
  • Выполнение программы всегда останавливается при возникновении необработанных ошибок.

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

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

Deno подходит для использования в качестве выполнения скриптов – поддерживается вызов через shebang.
Есть REPL.
Написано на языке программирования Rust.

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

 ,

Princesska
()

Embeddable Common Lisp 20.4.24

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

После трех лет разработки, 24-го апреля, была выпущена новая версия ECL – интерпретатора Common Lisp. ECL, опубликованный под лицензией LGPL-2.1+, может быть использован как в качестве встраиваемого интерпретатора, так и для постройки автономных библиотек и исполняемых файлов (есть возможность трансляции в C).

Изменения:

  • поддержка локальных никнеймов в пакетах;
  • поддержка атомарных операций;
  • специализированное представление сложных типов с плавающей запятой;
  • порт на iOS;
  • исправления для слабых хэш-таблиц и слабых указателей;
  • исправления состояний гонок во внутренностях ECL;
  • синхронизация и кастомные тесты для хэш-таблиц;
  • улучшенная метастабильность и улучшенная поддержка метаобъектного протокола (MOP).

Также у проекта появился второй мейнтейнер.

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

 ,

BOSS-NIGGER
()
: QtProtobuf 0.3.0 (12 комментариев)

Tcl/Tk. Альтернативный диалог выбора файлов для платформ Linux и Android

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

Сегодня скриптовый язык Tcl/Tk используется не только на компьютерах, но и с успехом портирован на платформу Android. Но именно на этой платформе стали особенно видны все недостатки диалога выбора файлов tcl/tk (tk_getSaveFile, tk_getOpenFile или tk_chooseDirectory).

Что не устраивает в этом диалоге? Отсутствие в нем элементарных операций с папками/файлами: создать, уничтожить, переименовать. Нет, не подумайте, в самом tcl все эти механизмы, естественно, реализованы, их просто нет в GUI диалога. В Linux это не так заметно, а вот на платформе Android этот диалог вызывает массу неудобств.

В итоге была создана балалайка (так еще называют пакеты/package для tcl) tkfe (tk file explorer).

При разработке пакета tkfe учитывались не только необходимость хотя бы элементарных операций с файлами/каталогами, но и желание иметь проводник как в отдельном окне, так и в отдельном фрейме, который пользователь может разместить как ему удобно в своем GUI.

В проекте имеется комплексный пример по использованию пакета. Естественно, этот диалог можно также использовать и на других платформах. Не составляет также труда перенести его на Python/TkInter.

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

 , , tcltk, ,

TclTk
()

Вышел PyTorch 1.5.0

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

PyTorch — популярный фреймворк для машинного обучения — обновился до версии 1.5.0. Этот релиз включает в себя несколько крупных дополнений и улучшений API, среди которых можно отметить:

  • C++ API, ранее считавшийся экспериментальным, окончательно стабилизирован. Теперь пользователи могут легко переводить свои модели с Python API на C++ API.

  • Стабилизирован пакет torch.distributed.rpc, предоставляющий широкие возможности в распределенном обучении, включая автоматическое вычисление градиентов и обновление параметров модели.

  • Обновлен torch_xla — пакет, который использует компилятор XLA для ускорения обучения моделей на облачных TPU.

  • Также обновлены пакеты torchaudio, torchvision и torchtext, предоставляющие инструменты для разработки моделей, обрабатывающих звуковые, графические и текстовые данные.

  • Python 2 больше не поддерживается. Вся дальнейшая разработка будет вестись только для Python 3.

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

 , ,

ymn
()
: Вышел Python 2.7.18 — последний выпуск ветки Python 2 (103 комментария)
: Lazarus 2.0.8 (157 комментариев)

Вышла бесплатная версия 3D-движка UNIGINE: Community edition

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

Вместе с релизом UNIGINE SDK 2.11 стала доступна UNIGINE 2 Community, бесплатная версия этого кросс-платформенного 3D-движка.

Поддерживаемые платформы - Windows и Linux (начиная с Debian 8; включая отечественный дистрибутив Astra Linux, используемый в оборонной промышленности). Также поддерживается работа с разнообразным VR оборудованием. Под Linux на 100% работает как сам движок, так и идущий в комплекте визуальный редактор 3D сцен (UnigineEditor). В качестве графического API используется OpenGL 4.5+.

На базе UNIGINE Engine выпущена серия GPU бенчмарков (включая популярные Heaven и Superposition), а также разрабатываются профессиональные тренажеры и различные промышленные цифровые двойники. Вышло несколько игр, включая Oil Rush (2012), Cradle (2015), RF-X (2016), Sumoman (2017). В настоящее время готовится к выпуску амбициозная космическая MMORPG Dual Universe. Отличительными особенностями движка является поддержка очень больших виртуальных сцен, наличие большого количества функционала «из коробки», высокая производительность, одновременная поддержка и C++, и C# API. Ряд продвинутых возможностей есть только в коммерческих версиях Sim и Engineering.

Community-версия движка бесплатно доступна независимым разработчикам и проектам с выручкой/финансированием до $100k в год, а также некоммерческим и образовательным организациям.

Разработкой UNIGINE последние 15 лет занимается одноименная компания в Томске.

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

 , , , ,

binstream_
()

Вышел Crystal 0.34.0

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

Вышла новая версия Crystal, компилируемого языка программирования с синтаксисом Ruby, главные особенности которого — рантайм с «вмонтированным» event loop’ом, в котором все операции ввода-вывода асинхронны, поддержка многопоточности (пока включается флагом при компиляции) и исключительно простая и удобная работа с библиотеками на Си.

Начиная с версии 0.34.0, язык официально начинает твёрдой поступью двигаться в сторону первого настоящего релиза (т.е. версии 1.0).

В новой версии Crystal можно отметить следующие изменения и улучшения в порядке их важности:

  • В API добавлена новая библиотека журналирования Log, которая, в отличие от старой, умеет направлять сообщения в разные бекенды и по-разному эти сообщения фильтровать в зависимости от «источника».

  • Рудименты из мира разработки на Си, Errno и WinError, использовавшиеся для примитивов ввода-вывода, уходят в прошлое благодаря иерархии исключений IO::Error (впрочем, использовать Errno никто пока не запрещает).

  • Убрана автоматическая подстановка else nil из оператора case/when/else. Это сделано для того, чтобы исключить случайный пропуск разработчиком одной из веток when при матчинге по детерминированным случаям наподобие enum’ов и прохода по типам из Union’а. Т.е., проще говоря, вот такой код больше работать не будет без указания ещё одного when (when Char) или задания else-ветки:

a = 1 || 'x' || "foo"
case a
when Int32
  # ...
when String
  # ...
end
  • Опция компилятора disable_overflow больше недоступна. Для операций с переполнением используйте методы &+, &-, &*.

  • Array#fill теперь летает быстрее пули, благодаря замене туповатого цикла на один простой memset;

  • Менеджер шардов (пакетов), называющихся, как это ни парадоксально, shards, теперь использует более быстрый и эффективный алгоритм удовлетворения зависимостей Molinillo, подсмотренный в CocoaPods (Swift) и Builder (Ruby).

  • Добавлена поддержка LLVM 10, что по идее даст нам некий рост производительности, стабильности, etc.

… и множество других, на мой субъективный взгляд, менее существенных улучшений.

Хотелось бы отметить, что Crystal — это построенный на LLVM язык, позволяющий писать приложения порой быстрее, проще и лаконичнее, чем на его интерпретируемых «собратьях», и при этом получать на выходе довольно шустрый бинарник. На фоне Golang выделяется абсолютно полноценным ООП, поддержкой дженериков и очень простым и понятным синтаксисом. По своему назначению во многом аналогичен Nim, но при этом явным образом ориентирован на практическое применение «здесь и сейчас», благодаря чему имеет в своём API-арсенале множество нормально документированных удобных и качественных инструментов, поддерживаемых разработчиками языка и потому весьма стабильных.

>>> Анонс в блоге Crystal

 , ,

DRVTiny
()

Релиз 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
()

LLVM 10.0

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

LLVM – платформа для разработки компиляторов и тулчейнов под лицензией Apache 2.0 с исключениями.

Некоторые изменения в clang:

  • Теперь по умолчанию компиляция не запускается в новом процессе как раньше.

  • Поддерживаются концепты C++20.

  • Арифметика указателей в C и C++ разрешается только в пределах массивов, в соответствии со стандартами. Добавлены соответствующие проверки в Undefined Behavior Sanitizer.

  • Улучшена поддержка OpenCL и OpemMP 5.0.

  • Поведение в ряде случаев приближено к поведению GCC.

Некоторые общие изменения в LLVM:

  • Новые intrinsics для генерации оптимизированных векторных инструкций.

  • Значительно расширены возможности межпроцедурной оптимизации в экспериментальном фреймворке Attractor.

  • Множество улучшений в поддержке различных архитектур (AArch64, ARM, MIPS, PowerPC, SystemZ, X86, WebAssembly, RISC-V).

А также различные улучшения в libclang, clangd, clang-format, clang-tidy, Static Analyzer, LLDB.

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

 , , ,

anonymous
()

GitHub выпустил стабильную версию мобильного приложения

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

GitHub сообщил о завершении стадии бета-тестирования своих мобильных приложений.


GitHub — крупнейший веб-сервис для хостинга IT-проектов и их совместной разработки.

Веб-сервис основан на системе контроля версий Git и разработан на Ruby on Rails и Erlang компанией GitHub, Inc (ранее Logical Awesome). Сервис бесплатен для проектов с открытым исходным кодом и (с 2019 года) небольших частных проектов, предоставляя им все возможности (включая SSL), а для крупных корпоративных проектов предлагаются различные платные тарифные планы.

C 4 июня 2018 года принадлежит корпорации Microsoft


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

  • Отслеживать состояние проекта
  • Просматривать код
  • Разбирать сообщения о проблемах (issue) и отвечать на них
  • Рецензировать pull-запросы
  • Производить слияние изменений

Приложения доступны для Android и для iOS.

>>> Google Play

>>> AppStore

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

 , ,

Zhbert
()

Релиз Java SE 14

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

17 марта была выпущена Java SE 14.

Представлены следующие изменения:

  • На постоянной основе добавлены выражения для switch в виде case VALUE -> {}, которые выходят из условия по умолчанию и не требуют оператора break.
  • Текстовые блоки, ограничиваемые тройкой кавычек """ вышли на второй предварительный этап. Добавлены управляющие последовательности \, которая перед переводом строки не добавляет перевод строки в многострочном блоке, и \s, которая обозначает один пробел.
  • На предварительной основе представлено новое поведение instanceof, позволяющее в дальнейшем развить сравнение по шаблону.
  • На предварительной основе представлены записи с ключевым словом record. Записи автоматически получают методы equals, hashCode, toString, геттеры к членам записи и конструктор.
  • Улучшено описание ошибок NullPointerException.
  • Добавлен упаковщик jpackage для самодостаточных приложений.
  • Порты для Solaris и платформ на SPARC объявлены устаревшими и могут быть исключены в будущем.

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

 , java 14,

gedisdone
()