Andy Melnikov (nponeccop) wrote,
Andy Melnikov
nponeccop

Category:

Эйлеры снова поломались

Случайно совпав по времени с выходом статьи Романа Душкина про алгоритм М вывода типов в системе типов Хиндли-Милнера, SVN-ревизия R881 HN0 от 19 мая содержит выводильщик типов с использованием этого алгоритма, вместо старого ад-хок, изобретенного inv2004.

Теперь тесты, которые раньше проходили, упали - оказалось, что в ряде случаев старый тайпчекер не выполнял генерализацию лет-выражений. В том числе упали большие задачи из project euler - работает только одна. Нужно чинить компилятор замыканий, чтобы он правильно компилировал полиморфные лет-выражения.

Парадоксально, что новый выводильщик, выполненный на UUAG, по количеству строк  занимает не меньше, чем старый, сделанный совершенно в лоб, без атрибутов и монад. Но смысловых строк стало меньше - основную часть нового чекера занимают декларации атрибутов.
Subscribe

  • Post a new comment

    Error

    default userpic

    Your reply will be screened

    Your IP address will be recorded 

    When you submit the form an invisible reCAPTCHA check will be performed.
    You must follow the Privacy Policy and Google Terms of use.
  • 0 comments