Perguntas com a marcação «ghc»

Glasgow Haskell Compiler é um compilador open source e ambiente interativo de última geração para a linguagem funcional Haskell. Use esta tag para perguntas específicas sobre GHC e não sobre Haskell em geral, pois quase todo mundo a usará, a menos que seja especificado de outra forma.

392
Transitividade da Especialização Automática no GHC

Dos documentos para o GHC 7.6: Em geral, você nem precisa do pragma SPECIALIZE. Ao compilar um módulo M, o otimizador do GHC (com -O) considera automaticamente cada função de sobrecarga de nível superior declarada em M e a especializa para os diferentes tipos em que é chamado em M. O otimizador...

322
Técnicas para rastrear restrições

Aqui está o cenário: escrevi algum código com uma assinatura de tipo e as queixas do GHC não puderam deduzir x ~ y para alguns xe y. Geralmente, você pode jogar um osso no GHC e simplesmente adicionar o isomorfismo às restrições da função, mas essa é uma má idéia por vários motivos: Não enfatiza...

212
Quando -XAllowAmbiguousTypes é apropriado?

Recentemente, publiquei uma pergunta sobre sintático-2.0 com relação à definição de share. Eu tive isso trabalhando no GHC 7.6 : {-# LANGUAGE GADTs, TypeOperators, FlexibleContexts #-} import Data.Syntactic import Data.Syntactic.Sugar.BindingT data Let a where Let :: Let (a :-> (a -> b)...

193
Lendo o GHC Core

O núcleo é a linguagem intermediária do GHC. O Reading Core pode ajudá-lo a entender melhor o desempenho do seu programa. Alguém me pediu documentação ou tutoriais sobre a leitura do Core, mas não consegui encontrar muita coisa. Que documentação está disponível para leitura do GHC Core? Aqui está...

156
Especialização com Restrições

Estou tendo problemas para que o GHC especialize uma função com uma restrição de classe. Eu tenho um exemplo mínimo do meu problema aqui: Foo.hs e Main.hs . Os dois arquivos são compilados (GHC 7.6.2 ghc -O3 Main) e executados. NOTA: Foo.hs está realmente despojado. Se você quiser ver por que a...

147
Por que o GHC é tão grande / grande?

Existe uma resposta simples: por que o GHC é tão grande? OCaml: 2MB Python: 15MB SBCL: 9MB OpenJRE - 26MB GHC: 113MB Não estou interessado no evangelismo de "Por que eu não deveria me importar com o tamanho, se Haskell é a ferramenta certa"; Esta é uma questão

143
O GHC-mod precisa usar nomes completos para tipos?

Estou tentando usar o ghc-modplug-in vim para fazer a verificação de tipo / sintaxe etc. No entanto, descobri que ghc-modsempre usa caminhos completos de tipos nas mensagens de erro, por exemplo: test.hs|71 col 13 error| Couldn't match type ‘Data.Text.Internal.Text’ || with ‘[GHC.Types.Char]’ ||...

106
Quando a memoização é automática no GHC Haskell?

Não consigo descobrir por que m1 está aparentemente memorizado enquanto m2 não está no seguinte: m1 = ((filter odd [1..]) !!) m2 n = ((filter odd [1..]) !! n) m1 10000000 leva cerca de 1,5 segundo na primeira chamada e uma fração disso nas chamadas subsequentes (presumivelmente ele armazena a...

86
Instâncias órfãs em Haskell

Ao compilar meu aplicativo Haskell com a -Wallopção, GHC reclama sobre instâncias órfãs, por exemplo: Publisher.hs:45:9: Warning: orphan instance: instance ToSElem Result A classe de tipo ToSElemnão é minha, ela é definida por HStringTemplate . Agora eu sei como consertar isso (mover a...

12
Comportamento estranho de (^) em Haskell

Por que o GHCi fornece respostas incorretas abaixo? GHCi λ> ((-20.24373193905347)^12)^2 - ((-20.24373193905347)^24) 4.503599627370496e15 Python3 >>> ((-20.24373193905347)**12)**2 - ((-20.24373193905347)**24) 0.0 ATUALIZAÇÃO Eu implementaria a função de Haskell (^) da seguinte...