Представлен публике публичный инициатива языка программирования Solod

2 мин
Представлен публике публичный инициатива языка программирования Solod

Состоялся выпуск языка программирования под названием Solod (So). Это подход предоставляет подмножество языка Go, транскомпилируемое в представление на языке C (C11). Инициатива можно использовать для сборки компиляторами GCC, Clang и zig cc.

Ключевым отличием языка Solod от Go и Tinygo является использование ручного управления памятью, работающего без применения сборщика мусора, без автоматического выделения памяти и без подсчёта ссылок. Транспайлер для Solod написан на языке Go и опубликован под лицензией BSD. Решением поддерживается работа в Linux, macOS и Windows.

По информации OpenNET, язык Solod поддерживает структуры, методы, интерфейсы, слайсы, возврат функциями нескольких значений, в частности, итог и исходник ошибки, дженерики и отложенные вызовы (defer). Для упрощения в проекте не поддерживаются каналы, сопрограммы и замыкания.

При разработке на языке Solod могут использоваться существующие LSP‑серверы, линтеры, интегрированные среды разработки и редакторы кода, поддерживающие язык Go, а также инструментарий go test.

Написанный на Solod код может интегрироваться с приложениями на языке C (язык C может вызвать функции на Solod и наоборот) и не требует прикрепления runtime. Из ключевых областей применения отмечается системное программирование с близкими к C возможностями, но с синтаксисом в стиле Go и обеспечением проверки типов. Solod равным образом может применяться для портирования Go-библиотек для использования в проектах на C. На язык C портированы Go-пакеты strings, io, bytes, mem, slices.

В дополнение к набора портированных Go-библиотек в программах на языке Solod можно применять обвязки над стандартной библиотекой libc.

По умолчанию вся хранилище в Solod выделяется в стеке, но через функции Alloc/Free стандартной библиотеки можно выделять память в куче. Сборка мусора и подсчёт ссылок в проекте не используются, но в Solod предоставляются возможности для проверки типов и аварийного завершения при обращении за границу массива. При этом проверки на возвращение висячих указателей (dangling pointer) и отсутствие освобождения памяти не производятся. В качестве основного способа выявления проблем при работе с памятью в Solod упоминается использование AddressSanitizer (‑fsanitize=address) в современных компиляторах.

По производительности скомпилированные приложения, написанные на Solod, в большинстве случаев быстрее программ на Go. Например, производительность работы функций из пакета Byte быстрее в полтора раза при идентичном потреблении памяти. Работа с байтовыми буферами быстрее в 1.3 раза при чтении и в 2–4 раза при записи. В пакете Map выборка по целочисленному ключу быстрее в 3.4 раза, но модификация ключей медленнее в 1.6 раза. Выборка по строковым ключам на одном уровне с языком Go, но модификация медленнее в 1.5 раза. Парсинг и форматирование целых чисел быстрее в 2 раза, а с плавающей запятой — в 1.5/1.2 раза. Строковые функции быстрее в 1.3 раза, а создание строк быстрее в 2–4 раза при снижении потребления памяти на 10–20%.

Читают сейчас

Взломы ИИ-агентов дошли до городского совета Нью-Йорка. Кто должен отвечать перед законом?

42 минуты назад

Взломы ИИ-агентов дошли до городского совета Нью-Йорка. Кто должен отвечать перед законом?

В понедельник, 5 октября, городской совет Нью-Йорка провел слушания о рисках ИИ. Спикер совета Джулия Менин пригласила представителей OpenAI, Anthropic, Google и Meta*, и те выступили под присягой. Вм

Microsoft может вернуть 3D Pinball в Windows 11: глава подразделения Windows включил эту идею в список для рассмотрения

43 минуты назад

Microsoft может вернуть 3D Pinball в Windows 11: глава подразделения Windows включил эту идею в список для рассмотрения

Глава подразделения Windows Паван Давулури включил в свой список для рассмотрения идею перенести игру 3D Pinball for Windows — Space Cadet из Windows XP в Windows 11. Об этом Давулури рассказал в подк

Курсы 1С: Учебного центра №1 появились на отдельной витрине Инфостарта

1 час назад

Курсы 1С: Учебного центра №1 появились на отдельной витрине Инфостарта

Инфостарт запустил партнерскую витрину с более чем 50 программами 1С:Учебного центра №1. В каталоге можно посмотреть ближайшие потоки, оформить обучение для себя или команды и передать приобретенный к

В pgvector 0.8.7 исправили уязвимость с возможностью выполнения произвольного кода

1 час назад

В pgvector 0.8.7 исправили уязвимость с возможностью выполнения произвольного кода

В pgvector нашли уязвимость, которая при построении IVFFlat-индекса может привести к записи за пределами буфера и потенциальному выполнению произвольного кода. Задача затрагивает версии 0.8.6 и ниже и

Microsoft вскоре начнёт блокировать дополнительные типы вложений в новой версии Outlook для Windows и веб‑версии

2 часа назад

Microsoft вскоре начнёт блокировать дополнительные типы вложений в новой версии Outlook для Windows и веб‑версии

Microsoft вскоре начнёт блокировать вложения формата MSIX в новой версии Outlook для Windows и веб‑версии, чтобы снизить риски заражения вредоносным программным обеспечением. Читать далее