Компилятор Sophia v4.2.0. уже выпущен

Компилятор 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

Добавлено

  • Конечная точка рок-ассемблера
  • Версия компилятора конечной точки

Изменено

Что нового в aesophia_cli

Добавлено

  • Опция --compiled_by для извлечения версии компилятора из файла или
    байтовый массив контракта

Изменено

1 Like