Компилятор Sophia v4.2.0. уже выпущен
HTTP-интерфейс к компилятору доступен через docker-hub. Мы ожидаем, что SDK и инструменты разработки подберут (незначительные) изменения в ближайшие недели. Компилятор CLI имеет новую опцию для извлечения версии компилятора из байт-кода. Интерфейс HTTP также имеет новую конечную точку для извлечения версии компилятора из байт-кода, а также новую конечную точку для получения кода ассемблера FATE из байт-кода FATE. Сам компилятор теперь разрешает сопоставление с образцом в левой части, это означает, что код может быть написан еще более удобным способом. Смотрите примеры ниже и в Advent of Code - 2019
Что нового в aesophia
Добавлено
-
Разрешить отдельную точку входа / функцию подписи и определения, а также сопоставление шаблона в левой части:
function
length : list('a) => int
length () = 0
length (x :: xs) = 1 + length(xs) -
Разрешить сопоставление с образцом в генераторах понимания списка (фильтрация совпадений неудачи):
function somes(xs : list(option('a))) : list('a) =
[ x | Some(x) ← xs ] -
Разрешить сопоставление с шаблоном в привязках let (прерывание при сбое совпадения):
function test(m : map(int, int)) =
let Some(x) = Map.lookup(m, 0)
x
Изменено
- Улучшения генератора кода FATE.
- Исправление ошибки: обработка квалифицированных конструкторов в шаблонах.
- Исправление ошибки: разрешено переключение также на отрицательные числа.
Что нового - aesophia_http
Добавлено
- Конечная точка рок-ассемблера
- Версия компилятора конечной точки
Изменено
- Улучшение Sophia 4.2.0
Что нового в aesophia_cli
Добавлено
- Опция --compiled_by для извлечения версии компилятора из файла или
байтовый массив контракта
Изменено
- Улучшение Sophia 4.2.0