6 часов назад
Представлен публике публичный инициатива языка программирования 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%.

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

4 минуты назад
«Ведомости»: ЦБ разрабатывает режим для обслуживания клиентов по видеосвязи
Центробанк разрабатывает экспериментально‑правовой режим (ЭПР), который позволит банкам заключать договоры на обслуживание новых клиентов по видеосвязи. Об этом пишут «Ведомости» со ссылкой на трёх со
14 минут назад
Сегодня #новостнаясреда
Главные новости для тех, кто следит за бизнесом, производством, ритейлом и ИИ⬇️ 🔵 В Минтрансе России разрабатывают систему на основе ИИ для прогнозирования воздействия наводнений на транспортную инфр

19 минут назад
Вот так ИИ распространяет фэйковые статьи на е
Вы даже не замечаете, как смысл статей меняется на противоположный. Внимание! Это не учебная тревога, поставьте статью в закладки, может неожиданно пригодиться! Эта тяжелая - иногда очень - учесть мож

21 минуту назад
Uber расширяет использование чипов Amazon и начинает тестировать Trainium3
Uber расширяет контракт с AWS и переводит больше своих сервисов на чипы Amazon. Организация увеличит использование серверных ARM-процессоров Graviton, а также начнет пилотное тестирование Trainium3 —
36 минут назад
Волонтёры помогают людям с ослабленным зрением собирать конструкторы Lego
Волонтёр Мэтью Шифрин, страдающий врождённой слепотой, научился собирать конструкторы Lego с помощью инструкций на шрифте Брайля. Теперь он стартовал помогать со сборкой другим людям. Читать далее