«ghc» 태그된 질문

Glasgow Haskell Compiler는 기능적 언어 Haskell을위한 최신 오픈 소스 컴파일러이자 대화 형 환경입니다. 달리 명시하지 않는 한 거의 모든 사람이 사용하므로 일반적으로 Haskell이 아니라 GHC에 관한 질문에이 태그를 사용하십시오.

1
GHC에서 자동 전문화의 전이성
에서 워드 프로세서 GHC 7.6에 대한 : [Y] 당신은 종종 처음에는 SPECIALIZE pragma가 필요하지 않습니다. 모듈 M을 컴파일 할 때 GHC의 옵티 마이저 (-O 포함)는 M에 선언 된 각각의 최상위 오버로드 된 함수를 자동으로 고려하여 M에서 호출되는 다양한 유형에 특화합니다. 옵티마이 저는 가져온 각 INLINABLE 오버로드 된 함수, M에서 호출되는 …
392 haskell  ghc 

2
제약 조건 추적 기법
시나리오는 다음과 같습니다. 유형 서명으로 일부 코드를 작성했으며 GHC는 일부 x및에 대해 x ~ y를 추론 할 수 없다고 불평 y합니다. 일반적으로 GHC에 뼈를 던지고 단순히 함수 제약 조건에 동형을 추가 할 수는 있지만 몇 가지 이유로 나쁜 생각입니다. 코드 이해를 강조하지 않습니다. 하나가 충분할 경우 5 개의 제약 조건으로 …
322 haskell  constraints  ghc 

8
Haskell / GHC의`forall` 키워드는 무엇을합니까?
다음 forall과 같이 소위 "존재 유형"에서 키워드가 사용되는 방식을 이해하기 시작 했습니다. data ShowBox = forall s. Show s => SB s 그러나 이것은 forall사용 방법의 일부일 뿐이며 다음과 같은 용도로 내 마음을 감쌀 수는 없습니다. runST :: forall a. (forall s. ST s a) -> a 또는 왜 이것이 …
312 haskell  syntax  types  ghc  forall 

4
Haskell (GHC)이 왜 그렇게 빠른가?
Haskell ( GHC컴파일러 포함)은 예상보다 훨씬 빠릅니다 . 올바르게 사용하면 저수준 언어에 가까워 질 수 있습니다. (하스 켈러가 가장 좋아하는 일은 C의 5 % 이내에서 시도하는 것입니다 (또는 이길 수도 있지만 GHC가 Haskell을 C로 컴파일하기 때문에 비효율적 인 C 프로그램을 사용하고 있음을 의미합니다). 내 질문은 왜? Haskell은 선언적이며 람다 미적분학을 …

2
-XAllowAmbiguousTypes는 언제 적절한가요?
최근 에의 정의와 관련하여 syntactic-2.0 에 대한 질문을 게시했습니다 . GHC 7.6 에서이 작업을 수행했습니다 .share {-# 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, sup ~ Domain b, …
212 haskell  ghc 

4
GHC 코어 읽기
핵심은 GHC의 중간 언어입니다. Reading Core는 프로그램의 성과를 더 잘 이해하는 데 도움이됩니다. 누군가 Core 읽기에 대한 문서 나 자습서를 요청했지만 많이 찾을 수 없었습니다. GHC Core를 읽을 수있는 문서는 무엇입니까? 지금까지 찾은 내용은 다음과 같습니다. 엄격 성, 게으름 및 재귀를 활용하여 C만큼 빠르게 Haskell 작성 C만큼 빠른 Haskell : …

3
GHC가 확실하게 수행 할 수있는 최적화 방법은 무엇입니까?
GHC는 수행 할 수있는 많은 최적화 기능을 가지고 있지만, 모두가 무엇인지, 그들이 수행 될 가능성과 상황에 대해 알지 못합니다. 내 질문은 : 매번 또는 거의 적용 할 수있는 변형은 무엇입니까? 자주 실행되는 (평가 된) 코드 조각을보고 첫 번째 생각이 "흠, 아마도 최적화해야 할 것"이라면, 두 번째 생각은 "생각하지 않아도됩니다. GHC가 …

1
제약이있는 전문화
클래스 제약 조건이있는 함수를 GHC에서 특수화하는 데 문제가 있습니다. 여기 내 문제의 최소한의 예를 가지고 : Foo.hs 및 Main.hs을 . 두 파일은 컴파일 (GHC 7.6.2, ghc -O3 Main)되어 실행됩니다. 참고 : Foo.hs 실제로 제거되었습니다. 제약 조건이 필요한 이유를 보려면 여기에서 더 많은 코드를 볼 수 있습니다 . 코드를 단일 파일에 …
156 haskell  ghc 

6
왜 GHC가 그렇게 큰가요?
간단한 대답이 있습니까? 왜 GHC가 그렇게 큰가요? 오캠 : 2MB 파이썬 : 15MB SBCL : 9MB OpenJRE-26MB GHC : 113MB "하스켈이 올바른 도구라면 왜 크기에 신경 쓰지 말아야합니까?"의 전도에는 관심이 없다. 이것은 기술적 인 질문입니다.
147 haskell  ghc 

2
GHC-mod는 타입에 전체 이름을 사용해야합니까?
ghc-modvim 플러그인 을 사용하여 유형 / 구문 검사 등을 수행 하려고합니다 . 그러나 ghc-mod항상 오류 메시지에 유형의 전체 경로를 사용 한다는 것을 알았습니다 . 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, || integer-gmp-1.0.0.0:GHC.Integer.Type.Integer)], || containers-0.5.6.2:Data.Set.Base.Set || integer-gmp-1.0.0.0:GHC.Integer.Type.Integer) || …
143 haskell  ghc  ghc-mod 

5
Haskell 프로그램에서 가비지 콜렉션 일시 정지 시간 단축
우리는 "메시지"를 수신 및 전달하는 프로그램을 개발하고 있으며, 해당 메시지의 임시 기록을 유지하면서 요청시 메시지 기록을 알려줄 수 있습니다. 메시지는 숫자로 식별되며 일반적으로 크기는 약 1KB이므로 수십만 개의 메시지를 보관해야합니다. 대기 시간을 위해이 프로그램을 최적화하려고합니다. 메시지를주고받는 시간은 10 밀리 초 미만이어야합니다. 이 프로그램은 Haskell로 작성되었으며 GHC로 컴파일되었습니다. 그러나 실제 프로그램에서 …

2
GHC로 거대한 바이너리로 컴파일 된 작은 Haskell 프로그램
사소한 하스켈 프로그램조차도 거대한 실행 파일로 바뀝니다. 나는 작은 프로그램을 작성했는데, 그것은 (GHC로) 7MB를 확장하는 바이너리로 컴파일되었습니다! 작은 하스켈 프로그램도 거대한 바이너리로 컴파일되는 원인은 무엇입니까? 이것을 줄이기 위해 무엇을 할 수 있습니까?

2
Haskell 데이터 유형의 메모리 공간
Haskell (대부분 GHC 사용)에 일부 데이터 유형의 값을 저장하는 데 필요한 실제 메모리 양을 어떻게 찾을 수 있습니까? 런타임시 (예 : GHCi에서) 평가할 수 있습니까? 아니면 구성 요소에서 복합 데이터 유형의 메모리 요구 사항을 추정 할 수 있습니까? 일반적 유형의 메모리 요구하는 경우 a와 b공지 같은 대수 데이터 유형의 메모리 …


4
GHC Haskell에서 메모는 언제 자동으로 이루어 집니까?
m2가 다음에 없는데 m1이 분명히 메모 된 이유를 알 수 없습니다. m1 = ((filter odd [1..]) !!) m2 n = ((filter odd [1..]) !! n) m1 10000000은 첫 번째 호출에서 약 1.5 초가 걸리고 후속 호출에서 그 일부 (아마도 목록을 캐시 함)에 걸리는 반면, m2 10000000은 항상 같은 시간 (각 …
106 haskell  ghc  memoization 

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.