ndtimofeev
ghc Haskell У меня такое ощущение что в ubuntu проект собранный при помощи cabal new-install собрался без поддержки -threaded. Что нажать чтобы исправить? А то у меня сервант ставит опердень раком.
qnikst
ghc ненужный_пост Haskell Хочу плагин к GHC, который вычисляет какие исключения может бросать функция. Причем, какой-нить тупой, ей даешь на вход текстовый файлик со списком:

Module.function : Module.Exception

он используя эту информацию собирает код и генерит на выходе файлик дополненый всеми собранными функциями, это же реально?
rufuse
ghc Haskell programming А какие существуют рекомендации по дефолтному количеству ядер и вообще железу для хаскелльных приложений? Есть приложение, где не получается честно замерить пока что, а рекомендации по железу уже нужны. С ОЗУ там понятно — чем больше, тем лучше, а по количеству ядер ЦПУ капается производительность где?
segfault
ghc ? Haskell А кто-то натыкался на случай, когда изменение кода в одной топ-левел функции вызывало ошибки в других топ-левел функциях, которые до изменения прекрасно компилировались? При чём, изменение касается тела функции (опечатка), а не типа. Т.е. сообщения становятся бесполезными и запутывающими, и указывают вообще не на те декларации, в которых ошибка.
qnikst
ghc ? Haskell а можно каким-то образом отключать ghc-options: -event-log, если через cabal/stack включается --profile? Просто обычно с профилем не собираешь, а -event-log удобно выносить сразу в cabal файл, чтобы не забывать с ним собирать, т.к. с его поддержкой код пойдет в т.ч. в production.
qnikst
ghc typefun 1.hs:16:1: error:
• Invalid declaration for ‘FieldType’; you must explicitly
declare which variables are dependent on which others.
Inferred variable kinds:
p :: N
t :: Type
i :: Fin p
• In the type synonym declaration for ‘FieldType’


А вот как это явно указать?
L29Ah
ghc log muesli Haskell ‰ time cabal build
Package has never been configured. Configuring with default flags. If this
fails, please run configure manually.
Resolving dependencies...
Configuring muesli-0...
Building muesli-0...
Preprocessing executable 'Muesli' for muesli-0...
[1 of 2] Compiling Muesli ( Muesli.hs, dist/build/Muesli/Muesli-tmp/Muesli.o )
[2 of 2] Compiling Main ( Main.hs, dist/build/Muesli/Muesli-tmp/Main.o )
Linking dist/build/Muesli/Muesli ...
cabal build 567.09s user 79.04s system 116% cpu 9:16.86 total
‰ du -sh dist/build/Muesli/Muesli
10M dist/build/Muesli/Muesli
‰ strip dist/build/Muesli/Muesli
‰ du -sh dist/build/Muesli/Muesli
6.2M dist/build/Muesli/Muesli

Три гига рамы выжрал алсо.
L29Ah
ghc ? Haskell У меня одного ghc-7.10.3 компилит многократно медленнее чем ghc-7.10.2? // потерял тред на жуйке про это явление
qnikst
ghc fun Make the crash happen as early as possible. -debug already turned on lots of assertions, one of which might trigger. Also, try +RTS -DS which turns on a bunch of extra "sanity checking", i.e. expensive assertions about the state of the runtime at regular points. One thing this enables is a full sweep of the heap after each garbage collection to make sure there are no dangling references. Also, it fills all free memory with the value 0xaaaaaaaa (the sound of GHC disappearing down a hole).
agr
ghc stack cabal Запиливал проект на ghc-7.10.1.
Думаю, а попробую.
Собираю проект с stack.
stack init --solver # честно выкачивает 7.10.1
stack build
Два часа проходит, и не справляется.

Качаю 7.10.2.
rm -rf stack
Пересобираю stack.
Пересобираю проект cabal + ghc-7.10.2.
Думаю, а попробую.
Собираю проект с stack.
stack init --solver
stack build
Два часа проходит, и не справляется.
dr-Chaos
ghc Windows Haskell Образовалась забавная проблема: один и тот же код собранный ghc 7.6.3 и ghc 7.8.4 после запуска занимает разный private bytes. 6 Мб и 104 Мб соответственно.
Всё бы ничего, но во втором случае довольно быстро кончается память. Подскажите куда копать.
ghc 32 битный, система 64 битная.
qnikst
ghc circleci ? блин на CI делается cabal configure , cabal build, при этом cabal test --show-always=true говорит, мол перекофигурируйте, т.к. сменился кабал и ghc, как такое может быть?
qnikst
ghc Haskell гинь-гинь новая мода — считать complitation time своим программ и ругаться если он увеличился с новой версией! Будь в тренде! Ведь компилятор должен быть быстрым, скорость работы компилятора это главная фича!!!
Macil
ghc UEFI Haskell Интересно, а реально ли портировать GHC на UEFI окружение, чтобы можно было писать ФП-буткиты^W красивые загрузчики с блекджеком и шлюхами?
С чего следует начать? Наверно с запиливания возможности генерить бинарники диалекта PE+, используемого в UEFI? Разделяемых библиотек в UEFI нет, всё динамически через COM^W интерфейс «протоколов», так что хаскелистам не привыкать. Хотя, первым делом придётся портировать integer-gmp на UEFI...
Может быть кто-то из таких же извращенцев уже данным вопросом занимается?
qnikst
ghc TIL В продолжение предыдущему посту:

```
Prelude Control.Exception> error "a" `catch` (\e -> getMaskingState >>= print . flip const (e :: SomeException))
MaskedInterruptible
Prelude Control.Exception> getMaskingState
Unmasked
```

Вот такое вот "ха-ха". Надо теперь потестить мелкие паттерны и подумать как теперь жить с этим знанием и насколько часто можно было допустить ошибку. Т.е. не пускать действие из exception handler а делать верно, т.е.

не

go `catchSome` (const go)

а, например,

let fix f = maybe (fix f) return (Just <$> f `catchSome` (cont $ return Nothing))
in fix go
qnikst
ghc rts ? Кто-нибудь может пояснить по: (комментарий из rts/Exceptions.cmm)

Furthermore, asynchronous exceptions are masked automatically during
the execution of an exception handler.

Т.к. это выглядит очень странно и go `catch` (const go) явно ж не должен
пускать go второй раз с замаскированными исключениями. Ползать по всему коду base, чтобы проследить что там происходит мне лень :)



полный текст:


A thread can request that asynchronous exceptions not be delivered
("masked") for the duration of an I/O computation. The primitives

maskAsyncExceptions# :: IO a -> IO a

and

maskUninterruptible# :: IO a -> IO a

are used for this purpose. During a masked section, asynchronous
exceptions may be unmasked again temporarily:

unmaskAsyncExceptions# :: IO a -> IO a

Furthermore, asynchronous exceptions are masked automatically during
the execution of an exception handler. All three of these primitives
leave a continuation on the stack which reverts to the previous
state (masked interruptible, masked non-interruptible, or unmasked)
on exit.

qnikst
ghc гинь-гинь без Functor m
compiler/utils/MonadUtils.hs:82:10:
Could not deduce (Functor m)
arising from the superclasses of an instance declaration
from the context (Monad m)
bound by the instance declaration
at compiler/utils/MonadUtils.hs:82:10-44
Possible fix:
add (Functor m) to the context of the instance declaration
In the instance declaration for ‘Applicative (StateT s m)’

с Functor m
compiler/utils/MonadUtils.hs:82:10: Warning:
Redundant constraint: Functor m
In the instance declaration for ‘Applicative (StateT s m)’