Pull to refresh

Язык программирования V 0.2: Механизм освобождения памяти во время компиляции

Команда языка V рада сообщить о выпуске новой версии, 0.2. V - это простой, безопасный, быстрый и компилируемый язык программирования для создания поддерживаемых программ.

Cкачать и получить дополнительную информацию можно на официальном сайте The V programming language.

Что вошло в новую версию 0.2

Compile-time memory management
Был создан механизм для подстановки вызовов free в нужных местах кода, он освобождает большинство объектов (~90 - 100%), а остальные посредством подсчёта ссылок.

Разработчику не нужно ничего менять в своём коде. "Это просто работает", как в Python, Go или Java, за исключением того, что нет тяжёлого GC, отслеживающего всё, или дорогостоящего RC для каждого объекта.

Демонстрация этого механизма производилась на текстовом редакторе Ved написанного на V. Запуск редактора Ved с файлом размером 8 МБ без утечек памяти:

Флаг включения этого механизма -autofree, который будет использоваться по умолчанию в версии 0.3.

Графический модуль V

Новая версия графического модуля теперь использует не только OpenGL, но и ещё Metal с DirectX, что улучшило кроссплатформенность проектов на V.

Веб-часть стандартной библиотеки V

Был реализован мощный модуль websocket, соответствующий стандарту RFC 6455 и прошедший набор тестов Autobahn (498 клиентских тестов и 249 серверных тестов).

Был улучшен модуль net, сейчас он стал более полным и предоставляет API наподобие Go.

Также V может работать в браузере через WASM и выполнять код V, переводя его в JavaScript (Пример: V WASM Playground).

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

Был добавлен флаг -usecache, который будет использоваться по умолчанию в версии 0.2.1, благодаря ему стандартная библиотека V не будет перестраиваться под каждое приложение, что несомненно увеличит скорость компиляции программ.

Также был добавлен флаг #pkgconfig, который используется внутри файлов с исходным кодом на V, он позволяет использовать экосистему pkgconfig для поиска и подключения С библиотек.

Новая улучшенная реализация sum types.

Множество исправлений и оптимизаций в хэш-мапе.

Другие изменения в языке

Более короткий синтаксис обобщённых типов.

Было добавлено множество отсутствующих проверок в средстве проверки типов (например, проверка правильности использования общедоступных полей структуры).

Улучшения в CI, такие как команда v fmt -verify. Это гарантирует, что весь код, отправленный в проект V, отформатирован.

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

Эти и другие изменения описаны в CHANGELOG.

Tags:
Hubs:
You can’t comment this publication because its author is not yet a full member of the community. You will be able to contact the author only after he or she has been invited by someone in the community. Until then, author’s username will be hidden by an alias.