Size: a a a

2020 May 27

R

Roman in Haskell
A64m AL256m qn I0
Don't support language features that aggressively complicate the compiler; eg. no -XTemplateHaskell or -XRebindableSyntax. Likewise, desugar before typechecking.
А зачем вообще кому-то может понадобиться дешугарить перед тайпчекингом?
источник

AA

A64m AL256m qn<co... in Haskell
Roman
А зачем вообще кому-то может понадобиться дешугарить перед тайпчекингом?
ну язык для тайпчека меньше. lmlc так делал. непонятно только где ошибка произошла - а в остальном одни плюсы же
источник

R

Roman in Haskell
это же даже с точки зрения простоты написания компилятора более сложная стратегия. Потому что проще написать два тайпчекера (для surface language и для core language), чтобы убедиться, что дешугаринг сохраняет семантику
источник

MK

Maxim Koltsov in Haskell
A64m AL256m qn I0
эти переписыватели-на-расте же любят пурскрипт - написали бы для пурскрипта бекенд и интероп в окамл
это даже более-менее реально
Окамл то зачем?
источник

R

Roman in Haskell
иначе потом охереешь ошибки отлавливать
источник

R

Roman in Haskell
у нас сейчас два тайпчекера, и мы еще третий пишем (для IR)
источник

AA

A64m AL256m qn<co... in Haskell
Maxim Koltsov
Окамл то зачем?
ну а откуда еще готовый бекенд, рантайм и какие-то либы для пурскрипта взять?
источник

R

Roman in Haskell
просто чтобы убедиться, что все действительно компилируется корректно
источник

R

Roman in Haskell
или он имеет в виду, что только дешугарить надо до тайпчекинга, но тайп чекать потом кор все равно надо?
источник

R

Roman in Haskell
то есть не чекать только самый верхний язык
источник

AA

A64m AL256m qn<co... in Haskell
ну там такой дешугаринг будет, что особо и нечего проверять, тайпклассы то до тайпчека все равно не сделать
источник

AA

A64m AL256m qn<co... in Haskell
пм тоже не скомпилять
источник

AA

A64m AL256m qn<co... in Haskell
хотя мож они гадт не будут делать
источник

AA

A64m AL256m qn<co... in Haskell
ну, конечно, они ничего не будут делать, в смысле не собираются
источник

R

Roman in Haskell
A64m AL256m qn I0
ну, конечно, они ничего не будут делать, в смысле не собираются
ну видимо собираются. Просто еще не осознали, какая это бездна
источник

AA

A64m AL256m qn<co... in Haskell
я чет вообще сомневаюсь, что можно переписать независимо гхц-ный тайпчекер даже с целью точно ту же функциональность поддержать, чтоб потом не пришлось патчить пол хекеджа.
источник

DI

Dmitry Ivanov in Haskell
https://github.com/twitter/rsc вот граждане смогли написать свой компилятор скалы в примерно таком же порыве
источник

DI

Dmitry Ivanov in Haskell
правда на скале, не на расте
источник

R

Roman in Haskell
A64m AL256m qn I0
я чет вообще сомневаюсь, что можно переписать независимо гхц-ный тайпчекер даже с целью точно ту же функциональность поддержать, чтоб потом не пришлось патчить пол хекеджа.
угу, там всратых корнер-кейзов полно. Не уверен насчет половины хакаджа, но вот эти 90% вряд ли достижимы даже для любого их best effort с целью в точности переписать гхц
источник

DI

Dmitry Ivanov in Haskell
не очень понятно, что он собирает, судя по ридми, только пакеты авторов
источник