Чтобы добавлять сообщения и комментарии, .

@qnikst:
qnikst

While we are still trying to get 8.0.2 out the door, 8.2.1 is quickly
approaching.

вот всегда так

@qnikst:
qnikst

А уже же придумали как в стеке собрать ghc со своими патчами?

@qnikst:
qnikst

а можно каким-то образом отключать ghc-options: -event-log, если через cabal/stack включается --profile? Просто обычно с профилем не собираешь, а -event-log удобно выносить сразу в cabal файл, чтобы не забывать с ним собирать, т.к. с его поддержкой код пойдет в т.ч. в production.

@qnikst:
qnikst

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:
L29Ah

‰ 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

Три гига рамы выжрал алсо.

@qnikst:
qnikst

Вот с base-4.7 в дополнение к traceEvents появилось traceMarker, а в чем отличие и когда что использовать?

@L29Ah:
L29Ah

У меня одного ghc-7.10.3 компилит многократно медленнее чем ghc-7.10.2? // потерял тред на жуйке про это явление

@qnikst:
qnikst

Похоже Семён у Макскома украл машину времени

wiz 00:12

> hackage.haskell.org

> Since: 4.9.0.0
см. урл, потом синс и опять урл. wat

@L29Ah:
L29Ah

Кому занести соточку чтобы в ghci появился vi mode?

@qnikst:
qnikst

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:
agr

Запиливал проект на 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
Два часа проходит, и не справляется.

@qnikst:
qnikst

Didn't you know? Once the core-to-core passes are complete, a binary appears on disk by sheer magic. And magic is never wrong.

@Annoynimous:
Annoynimous

#error No implementation for getProcessCPUTime() available.
Мне нужно наколдовать какую-то волшебную чародейскую магию чтобы ghc собрался с musl?

@agr:
agr

У кого-нибудь получалось поставить пакет text-icu под Windows 7 x64?

@segfault:
segfault

downloads.haskell.org
А в 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.

@dr-Chaos:
dr-Chaos

Образовалась забавная проблема: один и тот же код собранный ghc 7.6.3 и ghc 7.8.4 после запуска занимает разный private bytes. 6 Мб и 104 Мб соответственно.
Всё бы ничего, но во втором случае довольно быстро кончается память. Подскажите куда копать.
ghc 32 битный, система 64 битная.

@dr-Chaos:
dr-Chaos

Я так понимаю вот эта херня github.com случилась из-за этой херни ghc.haskell.org ?

@qnikst:
qnikst

кто-нить может объяснить почему автор закрыл:

ghc.haskell.org

и что делать с такой проблемой?

@dr-Chaos:
dr-Chaos

Однако забавно в 7.10.1 Стал на отсутствие инстанса Applicative... Это потому что Applicative и Monad как-то разделили?

@qnikst:
qnikst

блин на CI делается cabal configure , cabal build, при этом cabal test --show-always=true говорит, мол перекофигурируйте, т.к. сменился кабал и ghc, как такое может быть?

@dr-Chaos:
dr-Chaos

Осталось понять почему в 7,8 нету пакета с загадочным названием ghc-dynamic ...

@dr-Chaos:
dr-Chaos

Собрал ghc из experimental со странной версией ghc-7.8.20141223 ... После выхода 7.10 7.8 уже можно считать достаточно стабильным?

@qnikst:
qnikst

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'

@qnikst:
qnikst

новая мода — считать complitation time своим программ и ругаться если он увеличился с новой версией! Будь в тренде! Ведь компилятор должен быть быстрым, скорость работы компилятора это главная фича!!!

@Macil:
Macil

Интересно, а реально ли портировать GHC на UEFI окружение, чтобы можно было писать ФП-буткиты^W красивые загрузчики с блекджеком и шлюхами?
С чего следует начать? Наверно с запиливания возможности генерить бинарники диалекта PE+, используемого в UEFI? Разделяемых библиотек в UEFI нет, всё динамически через COM^W интерфейс «протоколов», так что хаскелистам не привыкать. Хотя, первым делом придётся портировать integer-gmp на UEFI...
Может быть кто-то из таких же извращенцев уже данным вопросом занимается?

@dr-Chaos:
dr-Chaos

походу пришло время переходить на ghc 7.8

@qnikst:
qnikst

Смотрите какая красота нас ожидает! (там статья)

research.microsoft.com

@qnikst:
qnikst

В продолжение предыдущему посту:

```
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:
qnikst

Кто-нибудь может пояснить по: (комментарий из 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:
qnikst

пишем unsafeCoerce с int-e:
ghc.haskell.org

@qnikst:
qnikst

И как отлючить Trustworthy если оно прописано в default-extensions,
т.к. Safe не перекрывает а NoTrustworthy нету :/

@qnikst:
qnikst

без 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)’

@qnikst:
qnikst

GHCs source code is indented with a mixture of tabs and spaces, and is standardised on a tabstop of 8.
впрочем это уже устарено, и сейчас только spaces, но все равно весело

@qnikst:
qnikst

про то какие пакеты стоит проверить на предмет того, что удаление зависимости от трансформеров их не поломает:

Don't worry, we've never given any promise about GHC APIstability across major versions (or minor versions, for that
matter.)

@qnikst:
qnikst

написал предложение по тому чтобы избавиться от зависимостей от трансформеров в ghc-lib (с proof of concept патчами, конечно же). тут же пришли дебьяновый меинтейнер и стакановый начальник и очень поддержали идею, надеюсь удастся протолкнуть (правда в 7.12 уже скорее всего).

@qnikst:
qnikst

7.8.4 собирает, а 7.10 нет, есть идеи куда копать?

src/Control/Eff/Cut.hs:70:2:
Illegal equational constraint Data.OpenUnion.Internal.OpenUnion2.Member'
Choose r
~ 'True
(Use GADTs or TypeFamilies to permit this)
When checking that `loop' has the inferred type
loop :: forall r a.
(Data.OpenUnion.Internal.OpenUnion2.Member' Choose r ~ 'True) =>
[Eff (Exc CutFalse :> r) a]
-> Free (Union (Exc CutFalse :> r)) a -> Eff r a
In an equation for `call':
call
= loop []
where
loop jq
= freeMap
(\ x -> return x `mplus'` next jq)
(\ u
-> case decomp u of {
Right (Exc CutFalse) -> ...
Left u' -> ... })
check ::
Member Choose r =>
[Eff (Exc CutFalse :> r) a]
-> Union r (Eff (Exc CutFalse :> r) a) -> Eff r a
check jq u | Just (Choose [] _) <- prj u = next jq
check jq u | Just (Choose [x] k) <- prj u = loop jq (k x)
check jq u | Just (Choose lst k) <- prj u = next $ map k lst ++ jq
check jq u = send u >>= loop jq
next :: Member Choose r => [Eff (Exc CutFalse :> r) a] -> Eff r a
....

@segfault:
segfault

lpaste.net

выдает

Settings.hs:12:25-38:
Not in scope: type constructor or class `TransactorConf'

Если закоментировать вызовы `deriveJSON`, то компилируется.
Если переместить нижний тип вверх lpaste.net — тоже компилируется.
Это особенность работы TH?

@segfault:
segfault

У меня тут странность:

Building dependent-map-0.1.1.2...
Preprocessing library dependent-map-0.1.1.2...
target ‘base’ is not a module name or a source file

В кабал файле есть такое:
ghc-options:        -trust base -trust dependent-sum
Если убрать `-trust base` то все собирается.
Не припомню чтобы в ghc-7.8.3 такое было. Что за нах? И зачем вообще этот `-trust` (ман читал)?

@qnikst:
qnikst

я правильно понимаю, что goldfire это Ричард Эйзенберг?

@qnikst:
qnikst

В 7.10 при команде :info выдается информация о DataFamilies:


class RRoute a where
type role Route nominal
data family Route a
— Defined at T.hs:4:3
data instance Route Int = RInt — Defined at T.hs:8:8

@segfault ты рад? +)

я правильно понимаю, что это решает ту проблему, что ты репортил и :info (Route Int) становится не нужно?