Запитання з тегом «ghc»

Glasgow Haskell Compiler - це сучасний компілятор з відкритим кодом та інтерактивне середовище для функціональної мови Haskell. Використовуйте цей тег для запитань конкретно про GHC, а не про Haskell взагалі, оскільки майже всі будуть використовувати його, якщо не вказано інше.

1
Транзитивність автоспеціалізації в GHC
З документів для GHC 7.6: [Y] часто навіть не потрібна СПЕЦІАЛІЗАЦІЯ в першу чергу. Під час компіляції модуля M оптимізатор GHC (з -O) автоматично враховує кожну функцію перевантаженого верхнього рівня, заявлену в M, і спеціалізує її для різних типів, при яких вона викликається в М. Оптимізатор також враховує кожну імпортовану …
392 haskell  ghc 

2
Методики відстеження обмежень
Ось сценарій: я написав код з підписом типу, і GHC скарги не змогли вивести x ~ y для деяких xі y. Зазвичай можна закинути GHC кісткою і просто додати ізоморфізм до обмежень функції, але це погана ідея з кількох причин: Це не підкреслює розуміння коду. Ви можете закінчити 5 обмежень, …
322 haskell  constraints  ghc 

8
Що робить ключове слово `forall` у Haskell / GHC?
Я починаю розуміти, як forallключове слово використовується в так званих "екзистенціальних типах", як це: data ShowBox = forall s. Show s => SB s Однак це лише підмножина способів forallвикористання, і я просто не можу обернути розум навколо його використання в таких речах: runST :: forall a. (forall s. ST …
312 haskell  syntax  types  ghc  forall 

4
Чому Хаскелл (GHC) так проклятий?
Haskell (з GHCкомпілятором) набагато швидше, ніж ви очікували . Якщо правильно використати, він може наблизитись до мов низького рівня. (Улюблена річ Haskellers - це спробувати потрапити в межах 5% С (або навіть перемогти його, але це означає, що ви використовуєте неефективну програму C, оскільки GHC компілює Haskell на C).) Моє …

2
Коли -XAllowAmbiguousTypes підходить?
Нещодавно я опублікував питання про синтаксичний-2.0 щодо визначення поняття share. У мене це було в 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, sup ~ …
212 haskell  ghc 

4
Читання GHC Core
Основна мова є проміжною мовою GHC. Читання Core може допомогти вам краще зрозуміти продуктивність вашої програми. Хтось запитав мене щодо документації чи навчальних посібників з читання Core, але я не зміг знайти багато чого. Яка документація доступна для читання GHC Core? Ось що я знайшов поки що: Пишіть Haskell так …

3
На які оптимізації можна очікувати надійної роботи GHC?
У GHC є багато оптимізацій, які він може виконати, але я не знаю, що вони є, ні наскільки вони можуть бути виконані та за яких обставин. Моє запитання: яке перетворення я можу очікувати, що воно буде застосовуватися кожного разу, або майже так? Якщо я дивлюся на фрагмент коду, який буде …

1
Спеціалізація з обмеженнями
У мене виникають проблеми з отриманням GHC для спеціалізації функції з обмеженням класу. У мене є мінімальний приклад моєї проблеми тут: Foo.hs і Main.hs . Два файли компілюються (GHC 7.6.2, ghc -O3 Main) і запускаються. ПРИМІТКА: Foo.hs дійсно позбавлений. Якщо ви хочете зрозуміти, для чого потрібне обмеження, ви можете побачити …
156 haskell  ghc 

6
Чому GHC настільки великий / великий?
Є проста відповідь: Чому GHC настільки великий? OCaml: 2 Мб Пітон: 15 Мб SBCL: 9 Мб OpenJRE - 26 Мб GHC: 113 Мб Не цікавиться євангелізацією "Чому я не повинен дбати про розмір, якщо Haskell - це правильний інструмент"; це технічне питання.
147 haskell  ghc 

2
Чи повинен GHC-мод використовувати повні назви для типів?
Я намагаюся використовувати ghc-modплагін vim для перевірки типу / синтаксису і т. Д. Однак я виявив, що 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 …
143 haskell  ghc  ghc-mod 

5
Скорочення часу паузи на збирання сміття в програмі Haskell
Ми розробляємо програму, яка отримує та передає "повідомлення", зберігаючи тимчасову історію цих повідомлень, щоб вона могла повідомити вам історію повідомлень за запитом. Повідомлення ідентифікуються чисельно, зазвичай мають розмір близько 1 кілобайт, і нам потрібно зберігати сотні тисяч цих повідомлень. Ми хочемо оптимізувати цю програму за затримкою: час між відправленням та …

2
Невелика програма Haskell, складена разом з GHC, у величезну бінарну
Навіть тривіально малі програми Haskell перетворюються на гігантські виконувані файли. Я написав невелику програму, яка була складена (з GHC) у двійкову, розмір якої перевищує 7 Мб! Що може спричинити компіляцію навіть невеликої програми Haskell до величезного бінарного файлу? Що, якщо що, я можу зробити, щоб зменшити це?

2
Слід пам'яті типів даних Haskell
Як я можу знайти фактичний об'єм пам'яті, необхідний для зберігання значення певного типу даних у Haskell (переважно з GHC)? Чи можна оцінити його під час виконання (наприклад, в GHCi) або можливо оцінити потреби в пам'яті складеного типу даних з його компонентів? Загалом, якщо вимоги до пам’яті типів aі bвідомі, яка …


4
Коли в GHC Haskell запам'ятовування автоматично?
Я не можу зрозуміти, чому m1, мабуть, запам'ятовується, а m2 не в наступному: m1 = ((filter odd [1..]) !!) m2 n = ((filter odd [1..]) !! n) m1 10000000 займає приблизно 1,5 секунди на перший дзвінок, і частина цього при наступних дзвінках (імовірно, це кешування списку), тоді як m2 10000000 …
106 haskell  ghc  memoization 

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.