Size: a a a

2021 March 07

к

кана in Haskell
я думал главная проблема это квадратичные рекорды
источник

AA

A64m AL256m qn<co... in Haskell
Maxim Koltsov
Каких?
1) выбрать тайпклассы, которые для оптимизации требуют генерить кучу кода
2) выбрать использовать тайпклассы для базовых вещей типа сравнений и арифметики, т.е. сделать эту оптимизацию обязательной
источник

к

кана in Haskell
кана
я думал главная проблема это квадратичные рекорды
а еще как оказалось тайпфемели, которые как нам рассказал @int_index, генерят и хранят все-все промежуточные редукции
источник

AA

A64m AL256m qn<co... in Haskell
это определенно проблемы, но не главные!
источник

к

кана in Haskell
A64m AL256m qn I0
1) выбрать тайпклассы, которые для оптимизации требуют генерить кучу кода
2) выбрать использовать тайпклассы для базовых вещей типа сравнений и арифметики, т.е. сделать эту оптимизацию обязательной
а какая есть альтернатива, кроме окамлового варианта делать функцию (<) :: forall a. a -> a -> Bool которая падает в рантайме?
источник

к

кана in Haskell
без модулей-функторов так не выжить было бы, если захочется кастомный <
источник

AA

A64m AL256m qn<co... in Haskell
были еще пара причин - более тормозной пм чекер в 8.0 и более тормозной кодогенератор в 7.8 которые дали пару заметных подскоков в торможении, из-за чего, думаю, вой и пошел про КОНПЕЛЯЦИЮ, но реальный вклад всего этого еще меньше, чем у предыдущего
источник

AA

A64m AL256m qn<co... in Haskell
кана
а какая есть альтернатива, кроме окамлового варианта делать функцию (<) :: forall a. a -> a -> Bool которая падает в рантайме?
да никакого, по большому счету, ну разве что джит
источник

AA

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

AA

A64m AL256m qn<co... in Haskell
кана
а какая есть альтернатива, кроме окамлового варианта делать функцию (<) :: forall a. a -> a -> Bool которая падает в рантайме?
в смл есть какбе специальный тайпкласс для сравнения, все типы делятся на сравнимые и нет при объявлении, самому такой "тайпкласс" для другого не сделать
источник

AA

A64m AL256m qn<co... in Haskell
в ельме даже и самому такую разновидность типов нельзя объявлять вроде
источник

JS

Jerzy Syrowiecki in Haskell
Misha Puzanov
теперь можно будет сраться на тему foo ^. #bar vs foo . bar! красота
foo . bar против foo.bar
источник

AA

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

ЖК

Жук Короед in Haskell
Продублирую сюда, в новичковом чате остался без внимания:

Использую расширение Haskell для VSCode.
Сегодня ВНЕЗАПНО мой проект стал выдавать ошибки почти во всех файлах:
ghcide compiled against GHC 8.10.2 but currently using 8.8.4
This is unsupported, ghcide must be compiled with the same GHC version as the project. cradle
Уже как месяц у меня стоит 8.10.2 и до сегодня все было нормально. project_name.cabal, stack.yaml и прочие штуки не трогал.
Откуда этот 8.8.4 взялся и как это чинить?
источник

к

кана in Haskell
покажи ghc --version в папке проекта на всякий случай
источник

к

кана in Haskell
ты явно используешь ghcide, или это при hls такая же ошибка? (видел такое)
источник

ЖК

Жук Короед in Haskell
У меня ghc 8.10.2 в path прописан, в папке проекта выдает
The Glorious Glasgow Haskell Compilation System, version 8.10.2
источник

к

кана in Haskell
если hls, то hls как установлен, плагином или вручную?
источник

ЖК

Жук Короед in Haskell
Просто стоит плагин haskell, отдельно ничего не ставил и не трогал.
источник

к

кана in Haskell
а
stack ghc -- --version
?
источник