Size: a a a

2020 November 04

MK

Maxim Koltsov in Haskell
Хорошо когда есть человек знающий историю
источник

AA

A64m AL256m qn<co... in Haskell
они были, правда, неюзабельные даже без учета того что кабалом тогда не поддерживались, потому что type фичи для переименования типов не было
https://gist.github.com/klapaucius/0f372b21d9c1b1d6dcd2
источник

MK

Maxim Koltsov in Haskell
A64m AL256m qn I0
они были, правда, неюзабельные даже без учета того что кабалом тогда не поддерживались, потому что type фичи для переименования типов не было
https://gist.github.com/klapaucius/0f372b21d9c1b1d6dcd2
И где следующий раз?)
источник

AA

A64m AL256m qn<co... in Haskell
следующий раз снойман запретил
источник

KV

Kirill Valyavin in Haskell
$ ghci +RTS -M20m
GHCi, version 8.8.4: https://www.haskell.org/ghc/  :? for help
package flags have changed, resetting and loading new packages...
Haskell> import Data.List
Haskell> foldl' (+) 0 [1..10^6]
500000500000
Haskell>
Leaving GHCi.
$ ghci +RTS -M20m
GHCi, version 8.8.4: https://www.haskell.org/ghc/  :? for help
package flags have changed, resetting and loading new packages...
Haskell> import Data.List
Haskell> :t foldl'
foldl' :: Foldable t => (b -> a -> b) -> b -> t a -> b
Haskell> foldl' (+) 0 [1..10^6]
ghc: panic! (the 'impossible' happened)
 (GHC version 8.8.4 for x86_64-unknown-linux):
 heap overflow

Please report this as a GHC bug:  https://www.haskell.org/ghc/reportabug

Если посмотреть тип сначала, то валится, а если не смотреть, то не валится
источник

NI

Nick Ivanych in Haskell
Репорть, чо.
источник

KV

Kirill Valyavin in Haskell
Что за квантовая механика
источник

AA

A64m AL256m qn<co... in Haskell
ну так аллокации разные
источник

AA

A64m AL256m qn<co... in Haskell
у гхци и у исполняющегося кода один хип будет
источник

AA

A64m AL256m qn<co... in Haskell
> ghci +RTS -A8K -M7750K
GHCi, version 8.10.1: https://www.haskell.org/ghc/  :? for help
Prelude> :t foldl
*** Exception: heap overflow
источник

KV

Kirill Valyavin in Haskell
A64m AL256m qn I0
ну так аллокации разные
А в чём именно разница
источник

AA

A64m AL256m qn<co... in Haskell
ну в аллокациях для :t foldl'
источник

KV

Kirill Valyavin in Haskell
Но проблема же в вычислении. Как оно может отожрать или не отожрать 20 мегов в зависимости от наличия :t
источник

AA

A64m AL256m qn<co... in Haskell
Kirill Valyavin
Но проблема же в вычислении. Как оно может отожрать или не отожрать 20 мегов в зависимости от наличия :t
но отжирает ~20 мегов + сколько-то кб после вычисления :t foldl'
источник

KV

Kirill Valyavin in Haskell
Без :t можно и до 10^9 считать, не поперхнётся
А с :t свалится и на 10^3
источник

AA

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

AA

A64m AL256m qn<co... in Haskell
никогда такого не было
источник

KV

Kirill Valyavin in Haskell
Т. е. смысл в том, что команда :t отжирает десятки мегабайт
источник

AA

A64m AL256m qn<co... in Haskell
ну и?
источник

KV

Kirill Valyavin in Haskell
Это просто вопрос, если так, то понятно и неудивительно
Ну разве что ещё хочется понять, фигли оно паникует вместо обычного эксепшена
источник