Как стать автором
Обновить

Язык программирования 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.

Теги:
Хабы:
Данная статья не подлежит комментированию, поскольку её автор ещё не является полноправным участником сообщества. Вы сможете связаться с автором только после того, как он получит приглашение от кого-либо из участников сообщества. До этого момента его username будет скрыт псевдонимом.