и компиляция резкая аки диарея.
Module.function : Module.Exception
он используя эту информацию собирает код и генерит на выходе файлик дополненый всеми собранными функциями, это же реально?
ghc.haskell.org ghc.haskell.org — Мне кажется или что-то пошло не так?
approaching.
вот всегда так
• 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’
А вот как это явно указать?
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
Три гига рамы выжрал алсо.
Думаю, а попробую.
Собираю проект с 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
Два часа проходит, и не справляется.
Мне нужно наколдовать какую-то волшебную чародейскую магию чтобы ghc собрался с musl?
downloads.haskell.org
А в 7.10 внезапно появились прагмы для overlapping instances
Ну и..
А в 7.10 внезапно появились прагмы для overlapping instances
Ну и..
If exactly one non-incoherent candidate remains, select it. If all remaining candidates are incoherent, select an arbitary one.Вся суть того, чем отличается INCOHERENT от OVERLAPPING.
Всё бы ничего, но во втором случае довольно быстро кончается память. Подскажите куда копать.
ghc 32 битный, система 64 битная.
github.com случилась из-за этой херни ghc.haskell.org ?
Я так понимаю вот эта херня cat 1.hs test = "mutli\ \line" main = putStrLn test $ ghc 1.hs [1 of 1] Compiling Main ( 1.hs, 1.o ) Linking 1 ... $ ghc -XCPP 1.hs [1 of 1] Compiling Main ( 1.hs, 1.o ) [flags changed] 1.hs:1:18: lexical error in string/character literal at character 'l'
С чего следует начать? Наверно с запиливания возможности генерить бинарники диалекта PE+, используемого в UEFI? Разделяемых библиотек в UEFI нет, всё динамически через COM^W интерфейс «протоколов», так что хаскелистам не привыкать. Хотя, первым делом придётся портировать integer-gmp на UEFI...
Может быть кто-то из таких же извращенцев уже данным вопросом занимается?
```
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
Furthermore, asynchronous exceptions are masked automatically duringthe 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.
т.к. Safe не перекрывает а NoTrustworthy нету :/
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)’
GHCs source code is indented with a mixture of tabs and spaces, and is standardised on a tabstop of 8.
впрочем это уже устарено, и сейчас только spaces, но все равно весело