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.

1
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. …
392 haskell  ghc 

2
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 …
322 haskell  constraints  ghc 

8
O que a palavra-chave `forall` no Haskell / GHC faz?
Estou começando a entender como a forallpalavra-chave é usada nos chamados "tipos existenciais" como este: data ShowBox = forall s. Show s => SB s Este é apenas um subconjunto, no entanto, de como forallé usado e eu simplesmente não consigo entender meu uso em coisas como esta: runST :: …
312 haskell  syntax  types  ghc  forall 


2
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) :-> Full b) share :: (Let :<: sup, …
212 haskell  ghc 

4
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á o …


1
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 …
156 haskell  ghc 

6
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 técnica.
147 haskell  ghc 

2
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]’ || Expected type: containers-0.5.6.2:Data.Map.Base.Map || [GHC.Types.Char] || ([(integer-gmp-1.0.0.0:GHC.Integer.Type.Integer, …
143 haskell  ghc  ghc-mod 

5
Reduzindo o tempo de pausa na coleta de lixo em um programa Haskell
Estamos desenvolvendo um programa que recebe e encaminha "mensagens", mantendo um histórico temporário dessas mensagens, para que ele possa lhe informar o histórico, se solicitado. As mensagens são identificadas numericamente, geralmente têm cerca de 1 kilobyte e precisamos manter centenas de milhares dessas mensagens. Desejamos otimizar este programa para latência: …




4
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 …
106 haskell  ghc  memoization 

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.