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

Новости мира unix. Хотите узнать секрет вечного счастья? Откройте страницу 246.
Ответить
acolyte
Аватара пользователя
Сообщения: 1808
Зарегистрирован: 20.08.2022

#

Релиз языка программирования V 0.5.2
Дата публикации:Sun, 19 Jul 2026 12:38:41 +0300

Состоялся релиз статически типизированного языка программирования V 0.5.2 (vlang). Основными целями при создании V были простота изучения и использования, высокая читаемость, быстрая компиляция, повышенная безопасность, эффективная разработка, кроссплатформенное использование, улучшенное взаимодействие с языком C, лучшая обработка ошибок, отключаемый сборщик мусора (GC), современные возможности и более удобное сопровождение программ. Проект также развивает свою графическую библиотеку и пакетный менеджер. Код компилятора, библиотек и сопутствующих инструментов открыт под лицензией MIT.
Среди изменений в новой версии:
  • Внедрена начальная версия управления владением памятью (как в Rust) с использованием флага -ownership. Вся логика реализована во время компиляции (comptime), поэтому не оказывает влияния на скорость или размер обычного V-кода. Добавлен VGC, параллельный сборщик мусора (tri-color mark-and-sweep), перенесённый из Go. Реализованы модули для iOS и macOS, позволяющие писать код без использования Objective-C. Включена поддержка нового бэкенда компилятора V2 ("v -v2 file.v"). Разрешено использование отрицательного индексирования массивов, например, "arr#[-1]". Добавлен оператор возведения в степень "**". Добавлен новый стандартный модуль mcp для взаимодействия V-приложений с AI-моделями, инструментами и сервисами, используя протокол MCP (Model Context Protocol). Добавлена возможность перегрузки оператора "[]". Полностью удалён устаревший фреймворк vweb, заменённый на фреймворк veb некоторое время назад. Добавлена возможность использовать "$if bsd" на этапе компиляции. Стандартная библиотека: Появился модуль для работы с изображениями, вдохновлённый модулем image для языка Go. Появился модуль для работы с большими числами (math.decimal) Появился модуль для работы с tar-архивами (archive.tar) Появился модуль для работы с разметкой markdown (x.markdown) Появился модуль для работы с форматом yaml (yaml) В модуль compress добавлен код для работы с форматами bzip2 (compress.bzip2), snappy (compress.snappy) и brotli (compress.brotli). В модуль crypto добавлен алгоритм ML-DSA (crypto.mldsa) и код для работы hkdf (crypto.hkdf). В модуль crypto.aes добавлена поддержка шифра AES-GCM (crypto.aes) В модуле os исправлена проблема 2038 года (int => int64) В модуль hash добавлен код для работы с контрольными суммами crc64 (hash.crc64) и adler32 (hash.adler32) В модуль time добавлен метод unix_now() для быстрого получения текущего времени (в секундах, UTC). Модули compress.deflate и compress.zlib переписаны на чистом V. В модуле veb добавлена поддержка создания и обслуживания сжатых файлов; промежуточного ПО (middleware) для конкретного пути и комбинации HTTP-методов; SSL; повторно используемых соединений; параллельного цикла обработки событий (многопоточная обработка соединений). В модуль net.websocket добавлена поддержка совершения запросов через прокси В модуль net.http добавлена опция для обхода проверки HTTPS-сертификата В модуль net.smtp добавлен настраиваемый таймаут при отправке писем и возможность отправки как HTML, так и текстовых писем (multipart/alternative) В модуль net добавлена поддержка многоадресной рассылки по UDP. В модуль http.fetch добавлен S3-совместимый клиент и диспетчер обработчиков схем В модуль net.ssl добавлена поддержка протокола ALPN для бэкендов mbedtls и OpenSSL В модуль net.http для HTTP/2 добавлена поддержка сжатия заголовков HPACK (RFC-7541); кодека бинарных кадров (binary framing layer, RFC-7540); синхронных клиентских соединений (H2Conn); [[https://github.com/vlang/v/pull/27362 согласования HTTP/2 в fetch с помощью ALPN. HTTP/2 включён по умолчанию для HTTPS-запросов.
ORM: Добавлена поддержка продвинутых типов PostgreSQL (например geometry), базы данных H2, метода SQL для операций UPSERT, оператора "OR" в динамических блоках WHERE. В модуль db.sqlite добавлены методы tables, columns, schema, db_size В модуле db.pg теперь потокобезопасный пул для DB, Tx и Conn с API в стиле Go В модуле db.mysql обеспечена поддержка многооператорных запросов. В C бекенд добавлена поддержка архитектуры sparc64 и реализована возможность отладки кода с помощью GDB или LLDB. Появилась возможность писать функции, вычисляемые во время компиляции (помечаются атрибутом @[comptime]). В утилиту командной строки добавлена команда для генерации C-проекта, флаг "-generate-c-project path". Реализован менеджер версий V, предоставляющий возможность собирать проект с указанной версией V в файле .vvmrc. В пакетном менеджере (vpm) появилась поддержка ользовательских зеркал для установки пакетов. Связанные с проектом новости:
  • Появилась открытая реализация сервера Minecraft (Bedrock Edition), написанная на V. Опубликован Mustela, сверхбыстрый (9000 страниц в секунду) генератор статических сайтов, написанный на V. Встроенный драйвер PostgreSQL в V, который также используется в V ORM, теперь является потокобезопасным, как и в Go. Больше не нужно использовать пулы соединений. Драйверы для MySQL, sqlite и MSSQL скоро также получат эту возможность. Veb (веб-фреймворк V) теперь многопоточный. Старый однопоточный цикл событий picoev заменён на совершенно новый бэкенд fasthttp (по одной рабочему потоку на каждое ядро процессора; epoll в Linux, kqueue в macOS/BSD; отсутствие конфликтов блокировок; передача статических файлов без копирования через sendfile()). Модернизированы трассировки стека (включаются опцией "-g"), которые при аварийном завершении теперь показывают полные пути к файлам с номерами строк и именами методов, что позволяет сразу перейти от сообщения об ошибке к точному коду, который её вызвал. Экспериментальный модуль x.json2, написанный полностью на V, теперь стабилен и заменил старый модуль json, основанный на cJSON.
Новость позаимствована с opennet.ru
Ссылка на оригинал: https://www.opennet.ru/opennews/art.shtml?num=65929

Жизнь за Нер'зула!

Ответить