Вопросы с тегами [ghc]

1

голосов
0

ответ
260

Просмотры

В третий раз это очарование - Недетерминированная Стопка / GHC

Я пытался установить текст пакета с использованием стека внутри Ubuntu VM. Самое смешное - это не работа в первый раз (Stack останавливается с Segfault), он не работает во второй раз (внутренняя ошибка GHC), но она работает в третий раз. VM устанавливается с помощью следующей Vagrantfile. # - * - режим: рубин - * - # VI: множество Р = рубин: Vagrant.configure (2) делать | конфигурации | config.vm.box = "/ trusty64 убунту" config.ssh.forward_x11 = истинный config.vm.provider "VirtualBox" сделать | VB | vb.memory = "1024" vb.cpus = 1 конец config.vm.hostname = "стек-проект" config.vm.provision "оболочки", путь: "root-bootstrap.sh" Файл root-bootstrap.sh является #! / bin / Баш установлен -x набор -e экспорта DEBIAN_FRONTEND = "неинтерактивным" APT-получить обновление -qq &> / DEV / нуль APT-получить -qq установить программное обеспечение-свойства-общие \ PKG-конфигурации Wget DPKG нано ВИМ \ &> / DEV / нуль # Haskell Стек Wget -qO- https://get.haskellstack.org/ | ш Чаун -R бродяга $ HOME После запуска бродяги до && бродячей SSH (оба файла должен быть помещен в той же папке), я проверил, что стек был установлен. бродяга @ стек проект: ~ $ стек --version Версии 1.6.3 Git редакция b27e629b8c4ce369e3b8273f04db193b060000db (5454 фиксаций) x86_64 hpack-0.20.0 Я попытался установить текст следующей бродягу @ стек проект: ~ $ стопки установить --resolver lts- 10.3 Ввод текста неявное глобальный конфигурационный файл проекта: /home/vagrant/.stack/global-project/stack.yaml Примечание: Вы можете изменить снимок с помощью поля распознавателя там. Использование распознаватель: LTS-10,3 указано в командной строке Загруженные LTS-10.3 плана сборки. Подготовка к установке GHC в изолированном месте. Это не будет мешать любой установки на системном уровне. Предупреждение: Повторите число 0 после полной задержки 0 нами Если вы видите это предупреждение и стек не удается загрузить, но опять же, выполнив команду решает эту проблему, пожалуйста, сообщите здесь: https://github.com/commercialhaskell/stack/issues/ 3510 Загруженные GHC-8.2.2. Установленная GHC. Выбранный зеркало https://s3.amazonaws.com/hackage.fpcomplete.com/ Загрузка корневой Selected зеркало https://s3.amazonaws.com/hackage.fpcomplete.com/ Загрузка временных меток Выгрузка снимков Загрузка зеркал Не удается обновить индекс (без локального копия) Загрузка индекса Обновленного индекс пакета обновление загружен полностью заселенный кэш индекса. вина Сегментация (ядро сбрасывали) Я заметил, что ВМ имеет ~ 75 МБ свободной памяти, когда происходит выдаёт ошибку сегментации. стек работа / расстояние / x86_64-Linux / Cabal-2.0.1.0 / сборки / Data / Text.o) GHC: Внутренняя ошибка: Не удается совершить 1048576 байт памяти (GHC версия 8.2.2 для x86_64_unknown_linux) Пожалуйста, сообщите об этом как GHC ошибка: http://www.haskell.org/ghc/reportabug Можно подумать, что повторный запуск стека установки даст ту же ошибку GHC снова, правда? Неправильно. бродяга @ стек проекта: ~ $ стопка установить --cabal-многословным --resolver LTS-10,3 текстовая 1.2.2.2: настройка текстового 1.2.2.2: строить текст-1.2.2.2: копирование / регистрация В качестве проверки, я попытался с помощью стека GHCI --ghc-опций «-package текст», который работал хорошо, и я мог бы использовать функции нормально. Я установил мегапарсек (любая библиотека в зависимости от текста будет делать), и он установлен штраф. Какую комбинацию ошибки стеки, ошибка GHC и призрак я встретив здесь? Другие вещи, которые могут иметь отношение: Билет 4012 - Компиляция результаты не являются детерминированными. Если бы я угадал, это разница между второй раз и в третий раз. Версия вехи в настоящее время 8.4.1, в то время как GHC в LTS-10.3 8.2.2. МКВП +2016 бумаги (косвенно?), Утверждая, что GHC 8.0.2 является детерминированным.
theindigamer
1

голосов
0

ответ
46

Просмотры

Повторно включите скрытые предложения пакетов от GHC

Ранее GHC бы сообщить мне, когда я пытался импортировать модуль из установленного, но скрытый, пакет: Не удалось найти модуль «Foo» Это является членом скрытого пакета "Foo-0.1.0.0. Возможно, вам нужно добавить «Foo» в сборке-зависит в вашем .cabal файле. Now1, он не делает: Не удалось найти модуль «Foo» Возможно, вы имели в виду Бар (от бара-0.1.0.0) Используйте опцию -v, чтобы увидеть список файлов искали. Была эта функция была удалена, или это просто по умолчанию отключена (и если да, то как я могу включить его)? 1 Я подозреваю, что это произошло с версией шишки на 8.0.0, хотя я не уверен.
user10006571
1

голосов
0

ответ
55

Просмотры

Каковы точные условия для общего подвыражения (CSE) происходит в GHC?

Я обнаружил, что Haskell способен выполнять CSE, если соблюдены некоторые условия. Я читал эту статью: https://wiki.haskell.org/GHC_optimisations, но я не нашел никакой конкретной информации и был перенаправлен в руководстве GHC, который сказал мне только, как включить его и сбросить журнал этого оптимизатора. Я хотел бы, чтобы определить, будет ли мой код будет в состоянии выполнить его или нет. Где я могу найти такую ​​документацию? Издается это где-нибудь?
radrow
1

голосов
1

ответ
123

Просмотры

GHC не работает из-за отсутствия «Rts.h»

Когда я пытаюсь скомпилировать программу на Haskell с использованием GHC, он всегда вызывает такое же исключение: (в переводе на английский язык) $ GHC vtzr.hs Связывание vtzr ... /tmp/ghc8101_0/ghc8101_0.c:1:17: Фатальная ошибка: RTs .h: Файл или каталог не найден Компиляция прервана. На самом деле, «Rts.h» расположен правильно в /usr/lib64/ghc-7.4.2/include, так что я не очень понимаю, что компилятор жалуется. Я осмотрел его немного дальше и выяснили, что исключение на самом деле происходит от GCC пытается скомпилировать TMP-файл, который включает в себя Rts.h: *** C Compiler: «/ USR / бен / ССАГПЗ» «-fno-стек-протектор ' '-Wl, - хэш-размер = 31' '-Wl, - уменьшить-памяти-накладные расходы' '-c' '/tmp/ghc8656_0/ghc8656_0.c' '-o'' / TMP / ghc8656_0 / ghc8656_0 .o ' '-DTABLES_NEXT_TO_CODE' '-I'' -I / USR / lib64 / GHC-7.4. 2 / включают»Я использую GHC 7.4.2 и GCC 4.7.2 на Mageia 3 Linux x86_64. Может быть, это просто вопрос Mageia ...? КСТАТИ. Запуск программы с runghc работает отлично.
Pepsikarola K.
1

голосов
2

ответ
901

Просмотры

GHC не может найти модуль установлен

Моя установка Haskell не может найти модуль байтовой строки установленной операционной системой $ GHCI GHCi, версия 7.6.3: http://www.haskell.org/ghc/: для справки Загрузка пакета GHC-прима ... ... сделал установку связи. Загрузка пакета целочисленного ГМП ... связь ... сделано. Загрузка базовый пакет ... связь ... сделано. Prelude>: м + Data.ByteString.Lazy: Не удалось найти модуль `Data.ByteString.Lazy» Это не модуль в текущей программе, или в любом известном пакете. Но я установил этот модуль, используя ни: $ оборотов -ql GHC-байтовая строка /usr/lib64/ghc-7.6.3/bytestring-0.10.0.2 /usr/lib64/ghc-7.6.3/bytestring-0.10.0.2/libHSbytestring -0.10.0.2-ghc7.6.3.so / USR / доли / DOC / GHC-байтовой строки / USR / доли / DOC / GHC-байтовой строки / ЛИЦЕНЗИЯ Что не так?
Trismegistos
1

голосов
1

ответ
44

Просмотры

Как использовать класс типов, как `HasDynFlags M` в GHC

Во время игры с кодовой базой GHC, я найти класс типов имени HasDynFlags: HasDynFlags класса м, где getDynFlags :: м DynFlags Хотя название выглядит класс типов самого за себя, я не мог найти другие ограничения в определении класса типов, что говорит м должен быть Монада или, по крайней мере, Functor, чтобы мы могли получить доступ к этому значению. Тем не менее, большинство использования этого я найти в базе кода внутри сделай нотации, например dynFlag
Javran
1

голосов
1

ответ
56

Просмотры

Ошибка Ссылка на компиляции GHC 7.10.3 на SLES11

Я хочу собрать GHC 7.10.3 на экземпляре SLES11, поскольку загруженный двоичный не работает. Теперь я получаю ошибки ссылки в конце: /home/oswald/build/ghc-7.10.3/libraries/ghc-prim/dist-install/build/libHSghc-prim-0.4.0.0-8TmvWUcS1U1IKHT0levwg3-ghc7.10.3.so : неопределенная ссылка на `__sync_val_compare_and_swap_2' /home/oswald/build/ghc-7.10.3/libraries/ghc-prim/dist-install/build/libHSghc-prim-0.4.0.0-8TmvWUcS1U1IKHT0levwg3-ghc7.10.3.so: неопределенная ссылка в `__sync_fetch_and_nand_2' с большим линий больше. Они, кажется, GCC примитивы. Установленная версия GCC на этой машине 4.3.4, которая имеет примитивов, но я не нашел _2 и _1 окончаний в документации (она использует список аргументов переменной, как я понимаю). Любая идея о том, как решить эту проблему?
MichaelO
1

голосов
1

ответ
237

Просмотры

Установка Кабал параметров конфигурации в проекте стеки

В моем проекте стека у меня есть myproject.cabal файл. Я хотел бы попробовать междусобойчик вариант --disable-библиотека-профилирование документированной здесь: https://www.haskell.org/cabal/users-guide/installing-packages.html Однако, я не смог выяснить, где эта опция должна использоваться: там, где я положил его, последующий стек работает выход с недостаточностью (жалуясь в той или иной форме о возможности). Моя вышестоящая цель состоит в том, чтобы увидеть, если это ускоряет GHC компиляцию для моего проекта, но это действительно вторичной, насколько идет этот вопрос: я действительно просто хотел бы знать, как работают эти параметры конфигурации (в контексте проектов стеки) , Я использую GHC 6.7. В частности, если я использую Кабалы Configure, опция заканчивается сконфигурировано в GHC-опциях в моем myproject.cabal файла, но GHC потом жалуется: GHC: непризнанный флаг: --disable-библиотека-профилирование Я
Croad Langshan
1

голосов
1

ответ
175

Просмотры

«Не удалось вывести» ошибку на классе типа многопараметрической

У меня есть этот код: {- # LANGUAGE MultiParamTypeClasses # -} импорт System.Random (RandomGen (..)) класс RandomGen генераторных => Тень поколения свет где shadowRay :: ген -> свет -> Float Eval :: свет -> Float и я получаю эту ошибку: [1 из 1] компиляцией Main (problem.hs, problem.o) problem.hs: 6: 5: ошибка: * не удалось вывести (Shadow gen0 свет) из контекста: Тень поколения свет обязательность тип подписи для: Eval :: Тень поколения свет => свет -> поплавок -> поплавок в problem.hs: 6: 5-40 Тип переменной `gen0' неоднозначен * при проверке неоднозначности для` Eval»перенести проверка неоднозначности использование сайтов, включите AllowAmbiguousTypes При проверке методы класса: Eval :: FORALL поколения света. Тень поколения свет => FORALL поплавка. свет -> Поплавок -> Поплавок В объявлении класса для `Тени» Это проблема с GHC 7.10+. До этого работал. Существует исправление, если добавить параметр «ген» в «Eval», как: Eval :: ген -> свет -> Float Но я не хочу, чтобы добавить новый параметр значение, которое не будет использоваться. Есть ли какой-то другой способ для разрешения типа?
The_Ghost
1

голосов
1

ответ
48

Просмотры

Не удалось соответствовать типу «HandlerSite m0» с «HandlerSite т», когда «модификации» поле с таким же значением

Я работаю над приложением Йесод и хотел иметь альтернативный TextField с модифицированным Fieldview. Для начала, я попытался это: TextField :: (Монада м, RenderMessage (HandlerSite м) FormMessage) => Поле м Текст TextField = I.textField {Fieldview = Fieldview I.textField} Насколько я могу видеть, это должно быть TextField идентичен I.textField. Тем не менее, я получаю следующее сообщение об ошибке: Foo.hs: 37: 19: ошибка: • Не удается соответствовать типа 'HandlerSite m0' с 'HandlerSite м' Ожидаемый тип: FieldViewFunc м Текст Фактический тип: FieldViewFunc m0 Текст NB: '' HandlerSite является функцией типа, и не может быть инъективны переменной «m0» типа является неоднозначным • В поле «» FieldView из записи в выражении: I.textField {FieldView = FieldView I.textField} В уравнении для «» TextField : TextField = I.textField {Fieldview = Fieldview I.textField} • Соответствующие привязок включают TextField :: Поле м Текст (связанно в Foo.hs: 36: 1) Интересно, что этот альтернативный способ написания это работает просто отлично: TextField :: ( Монада м, RenderMessage (HandlerSite м) FormMessage) => поле м Текст TextField = F {Fieldview = Fieldview}, где F @ поле {..} = I.textField ли проблема при использовании Fieldview как функция? Я очень озадачен сейчас. Я попытался с помощью ScopedTypeVariables связать м с m0, но это не сработало, и я не понимаю, почему это даже необходимо. Что мешает м от согласования с m0? EDIT: Я просто попытался: TextField :: (Монада м, RenderMessage (HandlerSite м) FormMessage) => Поле м Текст TextField = I. TextField {Fieldview = Fieldview}, где поле {..} = I.textField И это не удалось, так что я предполагаю, что проблема связана с упоминанием I.textField дважды. Это странно. Это не так, как I.textField является членом типа класса с несколькими определениями, чтобы выбрать из, и, даже если бы это было, я не понимаю, что мешает GHC от выводя, что т и m0 такие же .... хорошо HandlerSite является семейного типа, так что я думаю, с точки проверки типов зрения это может привести к различным экземплярам RenderMessage и поэтому различные определения кода, который каким-то образом связаны с I.textField. Я думаю, что я начинаю видеть свет. EDIT 2: Я думал, что я мог связать их как это: TextField :: (Монада м, RenderMessage (HandlerSite м) FormMessage) => Поле м Текст TextField = (I.textField :: Поле м Текст) {Fieldview = Fieldview (I.textField :: Поле м Текст)} с ScopedTypeVariables, но, по-видимому, нет. EDIT 3: Следуя логике, это работает: TextField :: (Монада м, RenderMessage (HandlerSite м) FormMessage) => Поле м Текст TextField = е {Fieldview = Fieldview е}, где е = I.textField Так что я предполагаю, что это что-то делать с верхним уровнем против локальных привязок?
JoL
1

голосов
1

ответ
0

Просмотры

Здание GHC 7.2.1 на OpenSUSE

Просто интересно, если кто здесь имел успех здание GHC 7.2.1 на OpenSuSE. Я бегу на ошибки, с 7.0.3 в настоящее время установлена. CHMOD + х Inplace / Библиотека / GHC-сплит "гт" -f '#! / bin / ш' Inplace / bin / GHC-stage1 ECHO >> Inplace / бен / GHC-stage1 executablename Эхо»=" / дом / gatoatigrado / Загрузки / GHC-7.2.1 / Inplace / Библиотека / GHC-stage1" »>> Inplace / бен / GHC-stage1 Эхо 'DATADIR = "/ главная / gatoatigrado / Загрузки / GHC-7.2.1 / Inplace / Библиотека"'> > Inplace / бен / GHC-stage1 эхо 'BINDIR = "/ главная / gatoatigrado / Загрузки / GHC-7.2.1 / Inplace / бен"' >> TOPDIR Inplace / бен / GHC-stage1 эхо»=" / дом / gatoatigrado / Загрузки / GHC-7.2.1 / Inplace / Библиотека " '>> Inplace / бен / GHC-stage1 эхо' pgmgcc = "/ USR / бен / ССАГПЗ"»>> Inplace / бен / GHC-stage1 кошка G / ghc.wrapper >> Inplace / бен / GHC-stage1 CHMOD + х Inplace / бен / GHC-stage1 / USR / бен / НКУ -E -undef -traditional -P -DTOP = ' "/ главная / gatoatigrado / Загрузки / GHC-7.2.1"' -xc -Iincludes libffi / package.conf.in -o libffi / package.conf.inplace.raw Grep -v '^ # прагма GCC' libffi / package.conf.inplace.raw | СЕПГ -e 's / "" // г' -e 's /: [] *, /: / г'> libffi / package.conf.inplace "Inplace / бен / GHC-упак" обновление --force libffi / package.conf.inplace Чтение пакета информации от "libffi / package.conf.inplace" ... сделано. GHC-упак: слишком мало байтов. Ошибка чтения в позиции байта 44111 Марка [1]: *** [libffi / package.conf.inplace] Ошибка 1 марка [1]: *** Удаление файла `libffi / пакет. Марка conf.inplace»: *** [все] Ошибка 2 Заранее спасибо. сообщение об ошибке: http://hackage.haskell.org/trac/ghc/ticket/5446
gatoatigrado
1

голосов
1

ответ
0

Просмотры

Строительные проблемы, используя MacPorts с GHC LIBS

Я пытаюсь следовать учебник для библиотеки диаграмм для Haskell. Я установил Каир и gtk2hs с MacPorts. Но когда я пытаюсь запустить примеры учебника, я получаю следующее сообщение об ошибке: $ GHC --make diagramsTutorial.lhs Linking diagramsTutorial ... л.д. предупреждение: в /opt/local/lib/libgtk-x11-2.0.dylib, файл был построен для неподдерживаемый формат файла, который не является архитектура быть связана (i386) л.д. предупреждение: в /opt/local/lib/libgdk-x11-2.0.dylib, файл был создан для неподдерживаемый формат файла, который не архитектура быть связаны (i386) л.д. предупреждение: в /opt/local/lib/libatk-1.0.dylib, файл был создан для неподдерживаемый формат файла, который не является архитектура быть связаны (i386) л.д.: предупреждение: в / Opt / местные / Библиотека / libpangocairo-1.0.dylib, файл был создан для неподдерживаемый формат файла, который не является архитектура быть связаны (i386) .. и т.д ... Я использую OS X 10.6.8, ядро ​​i5 Macbook Pro. EDIT Я только нашел, что я использую платформу 32bit Haskell, которая может быть частью этой проблемы. Однако я не могу установить 64-битную версию (он имеет Неизвестную ошибку во время установки). Я не могу найти деинсталлятор. Согласно этой странице, я должен найти деинсталлятор на /Library/Frameworks/GHC.framework/Tools/Uninstaller, но там ничего нет.
Peter Hall
1

голосов
1

ответ
0

Просмотры

Оптимизация компилятора для бесконечных списков в Haskell?

Я разные «перестановка» частичных функции типа Т -> Может быть, т, что либо взять меня на новое место в структуре данных, возвращая Праведный или еще не возвращает ничего, если они еще не могут попасть. Я обычно должен применять эти частичные перестановки в повторных конкретных моделях, построение списка всех промежуточных значений, но усечения списка всякий раз, когда я возвращаюсь к моей стартовой позиции или перестановке не удается. scan_partial_perms :: уравнение т => [т -> Может быть, т] -> т -> [т] scan_partial_perms пс v = карта fromJust. TakeWhile тест $ scanl (>> =) (Just v) п.с. где тест (Just я) | я / = v = True тест _ = False iterate_partial_perm = scan_partial_perm. Итерация cycle_partial_perms = scan_partial_perms завивки. цикл I» м достаточно уверено, что scanl имеет желательную строгость и хвост рекурсия свойство в этом контексте. Любые другие советы по оптимизации этого кода? В частности, какой компилятор варианты за -O3 -fllvm я должен читать о? В худшем случае, я мог бы заменить scanl и бесконечный список с функцией аксессора, определяемой как завивки Li = л !! я `rem` длина л я предположил бы, что это не может улучшить производительность с правом оптимизаций однако.
Jeff Burdges
1

голосов
1

ответ
200

Просмотры

Как обеспечить экземпляр Data.Vector.Unbox для StablePtr-й в Haskell?

Я хочу использовать вектор пакет для хранения Unboxed массивы StablePtr Как можно использовать следующие (или их вариации): ptr2Int :: PTR а -> Int ptr2Int (PTR а) = I # (addr2Int # а) stablePtrToInt :: StablePtr а -> Int stablePtrToInt = ptr2Int. castStablePtrToPtr intToStablePtr :: Int -> StablePtr intToStablePtr (I # я) = castPtrToStablePtr $ Ptr (int2Addr # я), чтобы объявить экземпляр распаковывать для StablePtr в?
Cetin Sert
1

голосов
1

ответ
89

Просмотры

Typeclass instance is not resolved after module installed with Cabal

Я создал простой проект, чтобы продемонстрировать вопрос: https://github.com/jdevelop/testcabal Если я скомпилировать и установить модуль с «кликой установить», я не могу сериализовать Testdata с Binary:> GHCi GHCi, версия 7.0.4: http://www.haskell.org/ghc/: для справки Загрузка пакета GHC-прима ... ... сделал установку связи. Загрузка пакета целочисленного ГМП ... связь ... сделано. Загрузка базовый пакет ... связь ... сделано. Загрузка пакета FFI-1,0 ... связь ... сделано. GHCi>: м + TestBinary.Test Data.Binary GHCi> randomData. расшифровывает $ закодировать emptyTest: 1: 24: Нет экземпляра для (Binary TTestData), возникающие из использования `закодировать«Возможные исправления: добавить объявление экземпляра для (Binary TTestData) Во втором аргументе `($)», а именно `закодировать emptyTest»В выражении: randomData. расшифровывает $ закодировать emptyTest В уравнении для `это ': это = randomData. расшифровывает $ закодировать emptyTest Если я загрузить Test.hs в GHCI напрямую - все работает, как и ожидалось,> GHCi TestBinary / Test.hs GHCi, версия 7.0.4: http://www.haskell.org/ghc/: для справки Загрузка пакета GHC-прима ... ... сделал установку связи. Загрузка пакета целочисленного ГМП ... связь ... сделано. Загрузка базовый пакет ... связь ... сделано. Загрузка пакета FFI-1,0 ... связь ... сделано. [1 из 1] Сборка TestBinary.Test (TestBinary / Test.hs, интерпретируемый) Хорошо, модули загружены: TestBinary.Test. GHCi> randomData. расшифровывает $ закодировать emptyTest Загрузка пакета массива 0.3.0.2 ... ... сделано установку связи. Загрузка пакета байтовой строки-0.9.1.10 ... связь ... сделано. Загрузка пакеты контейнеры-0.4.0.0 ... ... сделаны установка связи. Загрузка пакета двоично-0.5.1.0 ... ... сделано установку связи. "
jdevelop
1

голосов
1

ответ
721

Просмотры

Невозможно установить Йесод-бункер

Я обновляю свою Йесод рамки до последней Йесод версии 1.2. Я установил Йесод-платформу (больно .... пришлось вручную удалить старую зависимость .... междусобойчик ад), теперь мне нужно установить Йесод-бен, и это должно быть сделано. Тем не менее, после того, как SUDO междусобойчик установить Йесод-бен я получаю следующее сообщение об ошибке. Строительство Йесод-бен-1.2.0 ... Предварительная обработка исполняемой 'Йесод-LD-обертка' для Йесода-бен-1.2.0 ... [1 из 1] Компиляция Main (ghcwrapper.hs, расстояние / сборки / Йесод-л.д. -wrapper / Йесод-ЛД-обертка-TMP / main.o) увязка расстояние / сборки / Йесод-ЛД-обертка / Йесод-ЛД-обертка ... / USR / BIN / LD: не может найти -lHStar-0.4.0.1 / USR / бен / л.д.: не может найти -lHSoptparse-аппликативны-0.5.2.1 / USR / BIN / LD: не может найти -lHSghc-пути-0.1.0.9 / USR / бен / л.д.: не может найти -lHSfsnotify-0.0.6 / USR / бен / л.д.: не может найти -lHShinotify-0.3.5 collect2: л.д. возвращается статус 1 выездную Не удалось установить Йесод-бен-1.2.0 междусобойчик: Ошибка: некоторые пакеты не удалось установить: Йесод-бен-1.2.0 сбой во время этапа строительства. Исключение составило: ExitFailure 1 В соответствии с этим, я чувствую, что это может иметь что-то делать с привилегиями я не уверен. EDIT: Я только нашел следующие две библиотеки. /usr/lib/haskell-packages/ghc/lib/tar-0.3.2.0/ghc-7.4.1/libHStar-0.3.2.0.a /usr/lib/haskell-packages/ghc/lib/ghc-paths-0.1 .0.8 / GHC-7.4.1 / libHSghc-пути-0.1.0.8.a Я пытаюсь обновить libghc-деготь-DEV до последней версии 0.4.0.1. Тем не менее, 0.3.2.0 является последней версией на APT-получить то, что есть варианты? Я чувствую, что это может иметь что-то делать с привилегиями я не уверен. EDIT: Я только нашел следующие две библиотеки. /usr/lib/haskell-packages/ghc/lib/tar-0.3.2.0/ghc-7.4.1/libHStar-0.3.2.0.a /usr/lib/haskell-packages/ghc/lib/ghc-paths-0.1 .0.8 / GHC-7.4.1 / libHSghc-пути-0.1.0.8.a Я пытаюсь обновить libghc-деготь-DEV до последней версии 0.4.0.1. Тем не менее, 0.3.2.0 является последней версией на APT-получить то, что есть варианты? Я чувствую, что это может иметь что-то делать с привилегиями я не уверен. EDIT: Я только нашел следующие две библиотеки. /usr/lib/haskell-packages/ghc/lib/tar-0.3.2.0/ghc-7.4.1/libHStar-0.3.2.0.a /usr/lib/haskell-packages/ghc/lib/ghc-paths-0.1 .0.8 / GHC-7.4.1 / libHSghc-пути-0.1.0.8.a Я пытаюсь обновить libghc-деготь-DEV до последней версии 0.4.0.1. Тем не менее, 0.3.2.0 является последней версией на APT-получить то, что есть варианты?
HHC
1

голосов
2

ответ
207

Просмотры

Haskell Src Exts Синтаксический Несколько операторов

Я хотел бы разобрать список инструкций Haskell. Например, предположим, что у меня есть следующий код: пусть а = Ь с = е из ParseResult STMT, и если вы пытаетесь parseStmt «пусть а = 3», то результат будет успешным ParseOk. Однако, если вы предоставляете несколько операторов, то эта функция жалуется, потому что есть более чем один оператор в строке. Как я разобрать несколько операторов, не заворачивая их в сделай блок? Кроме того, как я могу найти места в строке, которые являются разделениями заявлений Haskell, так что я могу разделить их, а затем использовать parseStmt из Haskell-Src-exts? Спасибо!
Andrew Gibiansky
1

голосов
1

ответ
217

Просмотры

“requested module differs from name found in the interface file”

То, что я хочу: междусобойчик строить свои модули; сделать, чтобы построить этот один сценарий. Сценарий ссылки на Objective-C (см https://github.com/mchakravarty/language-c-inline/tree/master/tests/objc/marshal-array). когда я строю сценарий, он не на импорт: $ сделать Main.hs: 1: 1: Плохой интерфейс файла: расстояние / сборки / Команды / OSX / Events.hi Что-то неладно; запрошенный модуль Main: Commands.OSX.Events отличается от имени, найденного в файле интерфейс команд-0.0.0: Commands.OSX.Events здесь некоторое содержимое файла: $ кота Makefile ПАКЕТЫ = -package шаблон-Haskell -package язык c- цитата -package языка с-рядный -package команды РАМКИ = -framework Carbon -framework Какао -framework Фонд LDFLAGS = $ (ПАКЕТЫ) $ (ПЛАТФОРМЫ) Main: main.o междусобойчик Exec - GHC -o Главная main.o $ ( LDFLAGS) main.o: междусобойчик построить Кабалы Exec - GHC -c Main.hs -idist / строить / -V ... $ кошачьего commands.cabal открытого-модули: Commands.OSX.Events HS-источник-DIRS: источники ... $ GHC - шоу-IFACE DIST / сборки команды-0.0.0 / команды / OSX / Events.hi интерфейса: Commands.OSX.Events 7083 ... $ кошачьи источники / команды / OSX / Events.hs модуль Commands.OSX.Events где .. . $ кошки Main.hs импорт Commands.OSX.Events ... кабала сборка прошла успешно, и исполняемые компилируется и работает успешно, если я просто положить все в том же каталоге, и игнорировать междусобойчик. я могу сказать, что некоторые GHC модуль является частью некоторого пакета? я могу сделать Cabal исполняемый с этими внешними зависимостями? любые другие решения? привет интерфейс команды-0.0.0: Commands.OSX.Events 7083 ... $ кошачьих источников / Команды / OSX / Events.hs модуль Commands.OSX.Events где ... $ кошачьего Main.hs импорт Commands.OSX.Events. .. кабала сборка прошла успешно, и исполняемые компилируется и работает успешно, если я просто положить все в том же каталоге, и игнорировать междусобойчик. я могу сказать, что некоторые GHC модуль является частью некоторого пакета? я могу сделать Cabal исполняемый с этими внешними зависимостями? любые другие решения? привет интерфейс команды-0.0.0: Commands.OSX.Events 7083 ... $ кошачьих источников / Команды / OSX / Events.hs модуль Commands.OSX.Events где ... $ кошачьего Main.hs импорт Commands.OSX.Events. .. кабала сборка прошла успешно, и исполняемые компилируется и работает успешно, если я просто положить все в том же каталоге, и игнорировать междусобойчик. я могу сказать, что некоторые GHC модуль является частью некоторого пакета? я могу сделать Cabal исполняемый с этими внешними зависимостями? любые другие решения? с этими внешними зависимостями? любые другие решения? с этими внешними зависимостями? любые другие решения?
sam boosalis
1

голосов
1

ответ
73

Просмотры

Обход GHC 7.6 Отсутствие NegativeLiterals

Мой код основан на: при х (-32768) -> Ничего иначе -> Просто х х является Int16, который имеет диапазон от -32768 до +32767. Который работает с расширением NeativeLiterals из GHC 7.8. Я не могу найти GHC 7.8 для Redhat RHEL6, так что я пытаюсь получить его работу с GHC 7.6. Загвоздка в том, что NegativeLiterals нового в 7.8. Кто-нибудь знает обходной путь?
Michael Fox
1

голосов
1

ответ
82

Просмотры

Выведение Generic из данных, объявленных в другой файл не удается

У меня есть эти два модуля: модуль сервер, где импорт Data.JSON.Schema.Generic (gSchema) импорт Data.JSON.Schema.Types (JSONSchema (схема)) импортировать два экземпляра JSONSchema данные, где схема = gSchema главного :: IO () основное = не определено {- # LANGUAGE DeriveGeneric # -} модуль два где импорта GHC.Generics (Generic) данные данные = данные {scName :: Строка} вывода Generic при попытке построить проект, содержащий эти два файла, то GHC в стадии компоновки бросает несколько ошибки, похожие на это: (Они отличаются только (.data + 0xxxx) части). расстояние / расстояние-песочница-190abc84 / сборки / libHSserver-0.1.a (Server.o) :( данные + 0x1b8). неопределенная ссылка на `serverzm0zi1_Two_zdfGenericData_closure» и окончательное сообщение является: collect2: ошибка: л.д. возвращается статус 1 выхода я попытался это с GHC 7.8.3 и 7.6.3, и они оба ведут себя одинаково. Я могу сделать эту функциональность работу, если поместить весь код в один модуль. Может кто-нибудь объяснить, что здесь происходит, пожалуйста?
coubeatczech
1

голосов
1

ответ
279

Просмотры

«Не удалось вывести ... из контекста ...», несмотря на то, что проведение контексте необходимо

В выражении: Карри mcomb В уравнении для `Append ': добавить = Карри mcomb Ошибка, модули загружены: AltMonad.Category, AltMonad.Hask. Мне кажется, что я даю правильный контекст, но я не знаю, как убедить GHC этого. Связанные файлы: AltMonad.Category {- # LANGUAGE NoImplicitPrelude # -} {- # LANGUAGE TypeOperators # -} {- # LANGUAGE TypeSynonymInstances # -} модуль AltMonad.Category где импорт AltMonad.Hask класс Категория кошка, где ID :: кошка аа (. ) :: б `cat` с -> а 'cat` б -> а` cat` с экземпляром Категория Hask где ID = \ х -> XG. е = \ х -> г (Fx) AltMonad.Hask {- # ЯЗЫК NoImplicitPrelude # -} Модуль AltMonad.Hask где тип Hask = (->) Мне кажется, что я даю правильный контекст, но я не знаю, как убедить GHC этого. Связанные файлы: AltMonad.Category {- # LANGUAGE NoImplicitPrelude # -} {- # LANGUAGE TypeOperators # -} {- # LANGUAGE TypeSynonymInstances # -} модуль AltMonad.Category где импорт AltMonad.Hask класс Категория кошка, где ID :: кошка аа (. ) :: б `cat` с -> а 'cat` б -> а` cat` с экземпляром Категория Hask где ID = \ х -> XG. е = \ х -> г (Fx) AltMonad.Hask {- # ЯЗЫК NoImplicitPrelude # -} Модуль AltMonad.Hask где тип Hask = (->) Мне кажется, что я даю правильный контекст, но я не знаю, как убедить GHC этого. Связанные файлы: AltMonad.Category {- # LANGUAGE NoImplicitPrelude # -} {- # LANGUAGE TypeOperators # -} {- # LANGUAGE TypeSynonymInstances # -} модуль AltMonad.Category где импорт AltMonad.Hask класс Категория кошка, где ID :: кошка аа (. ) :: б `cat` с -> а 'cat` б -> а` cat` с экземпляром Категория Hask где ID = \ х -> XG. е = \ х -> г (Fx) AltMonad.Hask {- # ЯЗЫК NoImplicitPrelude # -} Модуль AltMonad.Hask где тип Hask = (->) Hask класс Категория кошка где ID :: кошка аа :: б `cat` с (.) -> а 'cat` б -> а` cat` с экземпляром Категория Hask где ID = \ х -> х г. е = \ х -> г (Fx) AltMonad.Hask {- # ЯЗЫК NoImplicitPrelude # -} Модуль AltMonad.Hask где тип Hask = (->) Hask класс Категория кошка где ID :: кошка аа :: б `cat` с (.) -> а 'cat` б -> а` cat` с экземпляром Категория Hask где ID = \ х -> х г. е = \ х -> г (Fx) AltMonad.Hask {- # ЯЗЫК NoImplicitPrelude # -} Модуль AltMonad.Hask где тип Hask = (->)
Bertie Wheen
1

голосов
1

ответ
101

Просмотры

Haskell сделать рецепт терпит неудачу для Paradox доказательства теорем с использованием GHC

Я пытаюсь установить теорему парадокс прувер получены из здесь. Когда я бегу Makefile это команда, которая работает: GHC -optl -static -lstdc ++ -I ../ Instantiate -I ../ MINISAT / ток базы ../minisat/current-base/Solver.or ../ MINISAT / ток базы / Prop.or ../instantiate/MiniSatWrapper.or ../instantiate/MiniSatInstantiateClause.or -fglasgow-exts -O2 -static -threaded -main-это Paradox.Main.main --make Paradox.Main -о парадокс И это приводит к нескольким ошибкам так: Flags.hs: 52: 8: не удалось найти модуль «Char» Используйте -v, чтобы увидеть список файлов искали. для различных модулей, включая, но не ограничиваясь Чаре, CPUTime, IO. Сообщение окончательной ошибки Makefile: 38: рецепт цели «paradox.exe» потерпел неудачу марки: *** [paradox.exe] Ошибка 1 Не знаю Haskell, и я очень опытный с GNU сделать, но я пытаюсь установить этот пакет для проекта и достаточно неясный не быть упакованы для моих ОС (я бег Arch Linux). Насколько я знаю, он не упакован для любой операционной системы, поэтому необходимо установить из источника. Насколько я могу сказать, что проблема начинается со следующим сообщением об ошибке: на командной строке: Внимание: -fglasgow-exts осуждается: Использование отдельных расширения вместо Я использую версию GHC, представленную в хранилище пакетов Arch Linux: пакет ссылка
Kit
1

голосов
1

ответ
45

Просмотры

Adding a Show constraint when using GHC.Generics

Я использую GHC дженериков. Мой случай использования практически идентичен примеру, в вики, за исключением того, что я кодирования и декодирования последовательности генов. Это все работает отлично, пока я не решил сохранить список того, что я уже читал, так что я мог бы сообщить об этом пользователю в случае ошибки. Это означает, что мне нужно добавить ограничение Показать в моей реализации по умолчанию ГЭТ. Проблема заключается в том, что я не могу понять, как писать ограничение. Смотрите - HELP !!! комментарии в коде ниже. {- # ЛИНГВИСТИЧЕСКИЕ FlexibleContexts # -} {- # ЛИНГВИСТИЧЕСКИЕ DefaultSignatures # -} {- # ЯЗЫК DeriveGeneric # -} {- # ЯЗЫК TypeOperators # -} импорта Control.Monad.State.Lazy (StateT) импорт квалифицирован Control.Monad.State .Lazy, как S (говоря, получить, получает) импорт Data.Functor.Identity (идентичность) импорт Data.Word (Word8, Word16) импорт GHC. Тип Дженерики Sequence = [Word8] Тип Writer = тип StateT Последовательность Идентичность чтения = StateT (Sequence, Int [String]) Идентичность класс Генетическая г где - | Записывает ген последовательности. ставить :: г -> Writer () по умолчанию ставить :: (Generic г, GGenetic (Rep г)) => г -> Writer () положенный = gput. от - | Читает следующий ген в последовательности. получить :: Reader (либо [String] г) по умолчанию получают :: (Generic г, GGenetic (Rep г), Show (Rep GX ???)) - HELP !!! => Reader (либо [String] г) = прибудете делать (_, начало, _) Reader (либо [String] г) по умолчанию получают :: (Generic г, GGenetic (Rep г), Show (Rep GX ???)) - HELP !!! => Reader (либо [String] г) = прибудете делать (_, начало, _) Reader (либо [String] г) по умолчанию получают :: (Generic г, GGenetic (Rep г), Show (Rep GX ???)) - HELP !!! => Reader (либо [String] г) = прибудете делать (_, начало, _)
mhwombat
1

голосов
1

ответ
197

Просмотры

Как использовать Epoll / Kqueue включена версия GHC / Haskell для сетевых соединений?

Существует много старой информацию в сети, относящиеся к Epoll / Kqueue включен GHC. Например, код на странице вик Простых серверов не компилируется больше. Может кто-то обеспечить простой пример того, как использовать эту функцию в современной версии GHC построить, например, сервер TCP, который просто реагирует с «Hello» при подключении?
Ana
1

голосов
1

ответ
78

Просмотры

Скажите междусобойчик установить не строить в / TMP

Я получаю выход 1 ошибку из л.д. при попытке установить Кабалы hindent (фактический пакет потерпеть неудачу, Haskell-Src-exts). С помощью SUDO альтернатив --config ЛД выбрать золотую линкер, а затем попробовать еще раз, я был в состоянии получить сообщение об ошибке более значимое: Нет свободного места на устройстве. Оказывается, междусобойчик установить попытки построить проекты в / TMP, который, на моей машине, является виртуальным диском, который не очень большой. Как я могу сказать ему, чтобы строить проекты в другом месте?
Robin Green
1

голосов
1

ответ
493

Просмотры

Кабал установки отказывается установить модуль из-за отсутствия Кабал библиотеки

Я действительно отчаянным с этим. Попытка установить MTL для моего GHC, поэтому я установил Кабал установить пакет (я бегу Fedora 23). Затем я попытался запустить Кабалы обновления, которое закончило хорошо, но Кабалы установить MTL дает мне это. Разрешение зависимостей ... Настройка трансформеры-0.5.2.0 ... Не удалось установить трансформаторы-0.5.2.0 Последние 10 строк журнала сборки (/home/metthal/.cabal/logs/transformers-0.5.2.0.log): междусобойчик Ошибка: некоторые пакеты не удалось установить: MTL-2,2,1 зависит от трансформаторов-0.5.2.0, который не удалось установить. Трансформаторы-0.5.2.0 не удалось во время этапа конфигурирования. Исключение было: ошибка пользователя (пакет «трансформеры» требует Cabal версии библиотеки -любы &&> = 1,6, но не подходящая версия не установлена.) Указанный файл журнал полностью пуст. Пакет GHC-Кабал установлен. Отчеты Cabal --version это. междусобойчик установить версию 1.18.1.0 используя версию 1.18.1.5 библиотеки Кабал Я также попытался установить Кабалы междусобойчика установить, но это дало мне только одни и те же ошибки на все зависимости. Я действительно не понимаю больше, и я из идей, как решить эту проблему. Googling не помогает, как это кажется, я только один с такой проблемой. Я признателен за любую помощь.
Marek Milkovič
1

голосов
1

ответ
193

Просмотры

Стек интерпретатор - Добавить внешнюю зависимость

Я делаю сценарий с Turtle и мне нужна зависимость от GitHub. Я видел, что вы можете добавить такую ​​зависимость, когда вы делаете проект, поставив это в stack.yaml: пакеты: - Расположение: GIT: https://github.com/githubuser/reponame.git совершить: somecommitID Но возможно чтобы добавить его через командную строку? Это командная строка, используемая для запуска сценария: стек --resolver LTS-3,2---install GHC runghc --package черепахи Edit: Это первые строки моего скрипта: #! / USR / бен / окр стек - стек --resolver LTS-3,1 --install-GHC runghc --package черепаха импорта черепаха ...
Elie Gnrd
1

голосов
1

ответ
42

Просмотры

TypeLit из общего выражения Integer

Единственный способ я знаю, чтобы построить Nat является использование -XDataKinds с продвигаемых целыми числами, то есть, типа MyInt = 10 :: Nat. Вместо этого, я хотел бы иметь функцию Foo :: Integer -> Integer, что я могу индекс с отраженной Nat, а затем материализовать результат. Для того, чтобы продемонстрировать, что я имею в виду, предположим, что некоторые функции mkNat :: Integer -> Q типа. Я хочу написать типа Z = $ (mkNat $ Foo $ natVal (Proxy :: Proxy 10)) (В моем примере, Foo достаточно быстро, что оно может быть вычислено во время компиляции без запретительных накладных расходов.) Имея такую ​​возможность спасает меня в многоэтапный процесс запуска Foo в отдельной сессии GHCi, скопировав десятичное представление результата в исходный файл, а затем компиляции кода я действительно хотел. Конечно, только отсутствует компонент mkNat. Если я пишу свой собственный тип данных, эквивалент mkNat легко писать. Но я' d действительно хотел бы использовать встроенные в TypeLits. Есть некоторые TemplateHaskell (или одиночек, или какой-либо другой магии), которая позволила бы мне материализовать произвольное выражение Integer к Nat?
crockeea
1

голосов
1

ответ
99

Просмотры

Использование скомпилированных двоичных файлов в развитии Йесод

Йесод Quickstart рекомендует мне, что: Следуйте инструкциям по установке пакета, чтобы получить стек. Создать новый scaffolded сайта: стек новые мой проект-Йесод-SQLite && кд моего-проект Примечания: Используйте шаблоны стека, чтобы увидеть другой доступный строительный лес Йесода. Установите инструмент командной строки Йесод: стек установки Йесод-бен междусобойчик установить --install-GHC библиотеки сборки: разви сервер стека сборки Запуск: стек Exec - Йесод разви Просмотр Есод сайт по адресу: // локальный: 3000 / Однако стек установка .. и стек сборка хочет скачать и скомпилировать ~ 200 пакетов и построить время неприемлемо (около часа). Кроме того, само приложение не не компилируется до стека Exec, и это может занять некоторое время, если у меня есть много TH питания, как хутор и упорным. Я считаю, что лучше иметь свой стек или междусобойчик скачать все как скомпилированные двоичные файлы, и запустить мой Dev сайт через runhaskell или стек EXEC runhaskell за минимальное время компиляции. Так вот мои два вопроса: Как я могу использовать скомпилированные двоичные файлы для стека и Йесод устанавливает? Как я могу сделать GHCi перезагрузить источник после редактирования во время работы в режиме интерпретации? Йесод разви делает это, но он пытается перекомпилировать ..
thkang
1

голосов
1

ответ
511

Просмотры

Глобально отключить предупреждение по умолчанию

С момента последнего обновления, GHCi показывает много Внимание: сообщения символов Tab и я хочу, чтобы установить это предупреждающее сообщение будет отключена по умолчанию. Есть файл конфигурации можно создать / отредактировать, чтобы установить флаг -fnowarn-вкладки в глобальном масштабе?
MicroVirus
1

голосов
1

ответ
829

Просмотры

Haskell cabal: C compiler cannot create executables

Я пытаюсь установить GHC-мод для GHC 8.0.1 на Windows / x64. Когда я пытаюсь установить GHC-мод с помощью междусобойчик установки GHC-мод я получаю ошибку говоря мой компилятор C не работает (он использует с-компилятор в комплекте с GHC). Вот выход (второй раз, когда я управлял командой Его в основном то, что первый говорит один, но сводится к сообщению об ошибке.): C: \ Users \ ******> междусобойчик установить GHC-мод Разрешающая зависимости .. . Настройка старого времени 1.1.0.3 ... Не удалось установить старые временные 1.1.0.3 журнал сборки (C: \ Users \ ****** \ AppData \ Roaming \ Cabal \ Logs \ старого времени-1,1 .0.3.log): Настройка старого времени 1.1.0.3 ... bash.exe предупреждение: не удалось найти / TMP, пожалуйста, творите! Настройка: ПРЕДУПРЕЖДЕНИЕ: непризнанные опций: --with-компилятора для проверки GCC ... C: \ PROGRA ~ 1 \ Haskell Platform \ 8.0.1 \ MinGW \ Bin \ gcc.exe ^ Я думаю, что ошибка лежит здесь, как вы можете увидеть путь к файлу поврежден, но я не смог найти причину для этого проверки работает ли компилятор C ... не настроить: ошибка: в `/ cygdrive / C / Users / ****** /AppData/Local/Temp/cabal-tmp-6084/old-time-1.1.0.3 «: настроить: ошибка: C компилятор не может создавать исполняемые файлы См` config.log»для более подробной информации междусобойчик: Оставление каталог«C: \ Users \ ****** \ AppData \ Local \ Temp \ заговорщиков-ТМП-6084 \ давний-1.1.0.3' междусобойчик: ошибка: некоторые пакеты не удалось установить: cpphs-1.20.2 зависит от старого времени-1.1. 0,3, которые не удалось установить. GHC-мод-5.6.0.0 зависит от старого времени-1.1.0.3, который не удалось установить. Haskell-Src-exts-1.17.1 зависит от старого времени-1.1.0.3, который не удалось установить. hlint-1.9.35 зависит от старого времени-1.1.0.3, который не удалось установить. старое время 1.1.0.3 не удались во время этапа конфигурирования. Исключение составили: ExitFailure 77 Не могли бы вы помочь мне установить GHC-мод или предоставить какой-либо другой способ установки. Я уже trieded переустановки Haskell, так как я только начинал, но это не имеет никакого значения. И да, я добавил 3 линии, предоставленную на Haskell домашней странице.
Cooki3Tube
1

голосов
1

ответ
74

Просмотры

Haskell/GHC: overlapping instances reported while context only allows a single one

Уважаемые эксперты Haskell / GHC, я не понимаю, почему GHC отчетов перекрывающихся экземпляров в то время как только один на самом деле действует в соответствии предоставленные контексты. Например, давайте рассмотрим следующий фрагмент кода: {- # LANGUAGE FlexibleInstances # -} класса С а где Foo :: а -> Строка Foo х = "OK" экземпляр C Bool экземпляра (С а) => С [а] экземпляр (С а) => C [(Char, а)] = главная печать $ Foo [( 'а', True)] Компиляция это дает: Test.hs: 13: 16: ошибка: * перекрывающихся экземпляров для C [( Символьное, BOOL)], возникающие при использовании `Foo» Matching экземпляров: экземпляр C A => C [а] - Определено в Test.hs: 9: 10 экземпляра с а => C [(Char, а)] - - Определено в Test.hs: 11: 10 * Во второй аргумент `($) 'а именно` Foo [( 'а', True)]' в выражении: печать $ Foo [( 'а', True)] В уравнении для `главного ': основной = печать $ Foo [(' а», True)] Дело в том, что ( 'а', True) имеет тип (Char, Bool), который не является экземпляром C. Таким образом, экземпляр с а => с [а] не применяется к значению [( «а», True)]. Поэтому, почему GHC считают это? Вопрос действительно о понимании поведения GHC, а не о том, как избежать проблем (например, с помощью OverlappingInstances). Это потому, что контексты не используется при «решении» вызов функции? И если да, то почему? Заранее спасибо! Поэтому, почему GHC считают это? Вопрос действительно о понимании поведения GHC, а не о том, как избежать проблем (например, с помощью OverlappingInstances). Это потому, что контексты не используется при «решении» вызов функции? И если да, то почему? Заранее спасибо! Поэтому, почему GHC считают это? Вопрос действительно о понимании поведения GHC, а не о том, как избежать проблем (например, с помощью OverlappingInstances). Это потому, что контексты не используется при «решении» вызов функции? И если да, то почему? Заранее спасибо!
Didier Pieroux
1

голосов
1

ответ
545

Просмотры

лексическая ошибка в строке / символьный литерал с символом «\ 57441»

GHC дает мне ошибку с особым юникода характер. Характер является «немой» символ из шрифта-удивительном. putStrLn «» Ошибка: лексическая ошибка в строке / литера на символе «\ 57441» Я нашел этот билет, где описывается подобное поведение (https://ghc.haskell.org/trac/ghc/ticket/5518). Билет говорит, что это должно быть исправлено с GHC> 7.2.1. Я использую GHC 8.0.2 и он не работает в любом случае. Кто-нибудь знает, как обойти эту ошибку?
user3637541
1

голосов
1

ответ
192

Просмотры

Cabal install linking error

Я совершенно новой для программирования Haskell и в процессе создания своего первого надлежащего проекта с помощью Cabal я обнаружил ошибку. Я после этого учебника при структурировании проекта. Однако, когда я добрался до стадии, на которой я должен был войти междусобойчик установить -j я получил следующую ошибку: междусобойчик: Ввод каталога «» Настройка CabalTest-0.1.0.0 ... Строительство CabalTest-0.1.0.0 ... Предварительная обработка исполняемую 'CabalTest' для CabalTest-0.1.0.0 ... Увязка расстояние / расстояние-песочница-fe048ba8 / строить / CabalTest / CabalTest ... / USR / бен / л.д.: не может найти -lHSbase-4.9.1.0 / USR / BIN / LD: не может найти -lHSinteger-ГМФ-1.0.0.1 / USR / BIN / LD: не может найти -lHSghc-прима-0.5.0.0 / USR / бен / LD: не может найти -lHSrts collect2: ошибка: л.д. возвращается статус выхода 1 `НКА 'не удался в фазе` компоновщика. (Код выхода: 1) междусобойчик: Оставляя каталог '' Я попытался запустить междусобойчик установить базовый целочисленный-ГМФ GHC-прима ртс --reinstall, к которому он отвечает, что он не может найти РТС. Когда я изменил команду, чтобы исключить его вместо RTS выведенного это: междусобойчик: Не удалось разрешить зависимости: следующая цель: базовый (пользователь цель) отвергая: базовый 4.10.0.0, база-4.9.1.0, база-4.9.0.0, base- 4.8.2.0, база-4.8.1.0, база-4.8.0.0, база-4.7.0.2, база-4.7.0.1, база-4.7.0.0, база-4.6.0.1, база-4.6.0.0, база-4.5. 1.0, базовая-4.5.0.0, база-4.4.1.0, база-4.4.0.0, база-4.3.1.0, база-4.3.0.0, база-4.2.0.2, база-4.2.0.1, база-4.2.0.0, база-4.1.0.0, база-4.0.0.0 (только уже установленные экземпляры могут быть использованы) отказ: основание-3.0.3.2 (конфликт: основание => база> = 4.0 && база> = 4.0 &&
Zyphicx
1

голосов
1

ответ
106

Просмотры

Индуктивное определение более закрытого типа семьи

е), где collectArgs :: ((ForAll г (а -.> ReplaceReturnType FR) -> г) -> ReturnType е) -> а -> е collectArgs FA = collectArgs (\ ар -> F (\ к -> ар ( ка))) экземпляр (ReturnType а ~ а, ReplaceReturnType манекен ~ манекен) => CollectArgs а, где collectArgs :: ((FORALL г ReplaceReturnType ар -.> г) -> а) -> а collectArgs F = F ID Что в конце концов, хочет сделать с этим, чтобы написать функции, которые являются полиморфными по числу входящих аргументов, в то время как они не должны быть частью определения класса типа (который соответствовал бы PRINTF уаг стиль арга). Так, например: wrapsVariadicFunction :: (CollectArgs е) => F -> Int -> х wrapsVariadicFunction е конфиг = collectArgs $ \ применить -> если нечетная конфигурация, то ошибка "нечетные конфигурации ... Вы орехи ?!" еще применяются е только, что возвращаемый тип F не может coicide с этим из wrapsVariadicFunction. Теперь, в идеальном мире, где я могу связать класс типа с закрытым типом семьи (закрытого типа класса, так сказать), это было бы легко осуществить, так как соединение ReplaceReturnType ар ~ г будет ясно. Так как я не могу утверждать, что связь, это, по вполне понятным причинам, не ясно GHC 8.2.1: * Не удалось вывести: ReplaceReturnType ар ~ г из контекста: (ReturnType а ~ а, ReplaceReturnType фиктивный ~ фиктивная) связаны декларация экземпляра `R» представляет собой жесткий тип переменной связаны по типу ожидаемого по контексту: ForAll г. ReplaceReturnType ар -> г Ожидаемый тип: ReplaceReturnType ар -> г Фактический тип: г -> г * В первый аргумент `F 'а именно` ID', В выражении: F ID в уравнении для `collectArgs':. collectArgs F = F ID * Соответствующие привязки включают F :: (ForAll г ReplaceReturnType ар -> г ) -> а collectArgs :: ((FORALL г ReplaceReturnType ар -> г.) -> а) -> а | 29 | collectArgs = F идентификатор | Решение здесь было бы универсальна квантификация по манекену в контексте экземпляра, но это не возможно (пока, судя из того, что я видел в МКВПЕ). Кроме того, это очень громоздко. Таким образом, фактический вопрос здесь: Как связать определение значения уровня с закрытым типом семьей, так же, как замкнутый класс типа? Или это невозможно, так как типы не могут быть удалены больше? Если да, то есть какой-то другой обходной путь? F ID В уравнении для `collectArgs':. collectArgs F = F ID * Соответствующие привязки включают F :: (. FORALL г ReplaceReturnType ар -> г) -> A collectArgs :: ((FORALL г ReplaceReturnType ар -> г) - > а) -> а | 29 | collectArgs = F идентификатор | Решение здесь было бы универсальна квантификация по манекену в контексте экземпляра, но это не возможно (пока, судя из того, что я видел в МКВПЕ). Кроме того, это очень громоздко. Таким образом, фактический вопрос здесь: Как связать определение значения уровня с закрытым типом семьей, так же, как замкнутый класс типа? Или это невозможно, так как типы не могут быть удалены больше? Если да, то есть какой-то другой обходной путь? F ID В уравнении для `collectArgs':. collectArgs F = F ID * Соответствующие привязки включают F :: (. FORALL г ReplaceReturnType ар -> г) -> A collectArgs :: ((FORALL г ReplaceReturnType ар -> г) - > а) -> а | 29 | collectArgs = F идентификатор | Решение здесь было бы универсальна квантификация по манекену в контексте экземпляра, но это не возможно (пока, судя из того, что я видел в МКВПЕ). Кроме того, это очень громоздко. Таким образом, фактический вопрос здесь: Как связать определение значения уровня с закрытым типом семьей, так же, как замкнутый класс типа? Или это невозможно, так как типы не могут быть удалены больше? Если да, то есть какой-то другой обходной путь? а collectArgs :: ((FORALL г ReplaceReturnType ар -> г) -> а.) -> а | 29 | collectArgs = F идентификатор | Решение здесь было бы универсальна квантификация по манекену в контексте экземпляра, но это не возможно (пока, судя из того, что я видел в МКВПЕ). Кроме того, это очень громоздко. Таким образом, фактический вопрос здесь: Как связать определение значения уровня с закрытым типом семьей, так же, как замкнутый класс типа? Или это невозможно, так как типы не могут быть удалены больше? Если да, то есть какой-то другой обходной путь? а collectArgs :: ((FORALL г ReplaceReturnType ар -> г) -> а.) -> а | 29 | collectArgs = F идентификатор | Решение здесь было бы универсальна квантификация по манекену в контексте экземпляра, но это не возможно (пока, судя из того, что я видел в МКВПЕ). Кроме того, это очень громоздко. Таким образом, фактический вопрос здесь: Как связать определение значения уровня с закрытым типом семьей, так же, как замкнутый класс типа? Или это невозможно, так как типы не могут быть удалены больше? Если да, то есть какой-то другой обходной путь? собственно вопрос здесь: Как связать определение значения уровня с закрытым типом семьей, так же, как замкнутый класс типа? Или это невозможно, так как типы не могут быть удалены больше? Если да, то есть какой-то другой обходной путь? собственно вопрос здесь: Как связать определение значения уровня с закрытым типом семьей, так же, как замкнутый класс типа? Или это невозможно, так как типы не могут быть удалены больше? Если да, то есть какой-то другой обходной путь?
Sebastian Graf
1

голосов
1

ответ
56

Просмотры

Сделать тонкую разделяемую библиотеку

У меня есть много Lib * .a файлов, которые происхождение от проекта GHC Haskell. Только символы, которые я должен являются: ехЬегп «C» недействительным инициализации (); ехЬегп «С» недействительным шоу (); ехЬегп «С» скрыть недействительными (); ехЬегп «С» пустота близко (); Есть большое количество неопределенных символов (я уверен, что это Haskell-специфический) (часть CMakeLists.txt): список (APPEND LINKER_UNDEF "-Wl, -u, hs_atomic_or8") список (APPEND LINKER_UNDEF «-Wl, -u, hs_atomic_or16 ") список (APPEND LINKER_UNDEF "-Wl, -u, hs_atomic_or32") список (APPEND LINKER_UNDEF "-Wl, -u, hs_atomic_or64") список (APPEND LINKER_UNDEF "-Wl, -u, hs_atomic_xor8") список (APPEND LINKER_UNDEF" -Wl, -u, hs_atomic_xor16" ) список (APPEND LINKER_UNDEF "-Wl, -u, hs_atomic_xor32") список (APPEND LINKER_UNDEF "-Wl, -u, hs_atomic_xor64") ... # Много из них Если проект Haskell является самостоятельным приложением его размер составляет около 5 МБ, но сумма размеров Lib * .a файлов составляет около 70 МБ. Я хочу сделать Lib * .so файл минимального размера. Это означает, что мне нужно только символы, на которых первонач, показать, скрыть, близко зависит. Если я использую -Wl, - весь-архив, то все символы, экспортируемые * .o файлов из * .a файлов будут включены в результате общей библиотеки * .so файла. Но как сделать линкер включать только необходимые символы (возможно, плюс главный символ из одноранговой * .c файл, если не может быть опущен)? Могу ли я построить ELF-файл, который является двойственным: это * .so файл и простой ELF исполняемый файл в тот же самый момент? Могу ли я достичь этого, используя -rdynamic вариант? Это означает, что мне нужно только символы, на которых первонач, показать, скрыть, близко зависит. Если я использую -Wl, - весь-архив, то все символы, экспортируемые * .o файлов из * .a файлов будут включены в результате общей библиотеки * .so файла. Но как сделать линкер включать только необходимые символы (возможно, плюс главный символ из одноранговой * .c файл, если не может быть опущен)? Могу ли я построить ELF-файл, который является двойственным: это * .so файл и простой ELF исполняемый файл в тот же самый момент? Могу ли я достичь этого, используя -rdynamic вариант? Это означает, что мне нужно только символы, на которых первонач, показать, скрыть, близко зависит. Если я использую -Wl, - весь-архив, то все символы, экспортируемые * .o файлов из * .a файлов будут включены в результате общей библиотеки * .so файла. Но как сделать линкер включать только необходимые символы (возможно, плюс главный символ из одноранговой * .c файл, если не может быть опущен)? Могу ли я построить ELF-файл, который является двойственным: это * .so файл и простой ELF исполняемый файл в тот же самый момент? Могу ли я достичь этого, используя -rdynamic вариант? поэтому файл и простой ELF исполняемый в то же время? Могу ли я достичь этого, используя -rdynamic вариант? поэтому файл и простой ELF исполняемый в то же время? Могу ли я достичь этого, используя -rdynamic вариант?
Orient
1

голосов
1

ответ
471

Просмотры

Problems installing Haskell with Atom on a Mac

I want to program in Haskell using Atom on a Mac. Therefore I installed the following packages in Atom: haskell-ghc-mod ide-haskell ide-haskell-cabal language-haskell After that I installed the Haskell Platform 8.2.1 from here: https://www.haskell.org/platform/#osx-none This did not seem to work as I cannot compile and during every start of Atom there is this error message: Haskell-ghc-mod: ghc-mod failed to launch. It is probably missing or misconfigured. ENOENT Then I tried installing the necessary packages manually as described on https://atom-haskell.github.io/installation/installing-binary-dependencies/ which also failed (even unregistering failed): Daniels-MacBook-Pro:ghc-mod-sandbox daniel$ cabal install ghc-mod stylish-haskell Resolving dependencies... cabal: Could not resolve dependencies: trying: ghc-mod-5.8.0.0 (user goal) next goal: base (dependency of ghc-mod-5.8.0.0) rejecting: base-4.10.0.0/installed-4.1... (conflict: ghc-mod => base=4.6.0.1) rejecting: base-4.10.0.0, base-4.9.1.0, base-4.9.0.0, base-4.8.2.0, base-4.8.1.0, base-4.8.0.0, base-4.7.0.2, base-4.7.0.1, base-4.7.0.0, base-4.6.0.1, base-4.6.0.0, base-4.5.1.0, base-4.5.0.0, base-4.4.1.0, base-4.4.0.0, base-4.3.1.0, base-4.3.0.0, base-4.2.0.2, base-4.2.0.1, base-4.2.0.0, base-4.1.0.0, base-4.0.0.0, base-3.0.3.2, base-3.0.3.1 (constraint from non-upgradeable package requires installed instance) After searching the rest of the dependency tree exhaustively, these were the goals I've had most trouble fulfilling: base, ghc-mod, syb Note: when using a sandbox, all packages are required to have consistent dependencies. Try reinstalling/unregistering the offending packages or recreating the sandbox. Daniels-MacBook-Pro:ghc-mod-sandbox daniel$ cabal uninstall ghc-mod stylish-haskell cabal: This version of 'cabal-install' does not support the 'uninstall' operation. It will likely be implemented at some point in the future; in the meantime you're advised to use either 'ghc-pkg unregister ghc-mod' or 'cabal sandbox hc-pkg -- unregister ghc-mod'. Daniels-MacBook-Pro:ghc-mod-sandbox daniel$ ghc-pkg unregister ghc-mod ghc-pkg: cannot find package ghc-mod Daniels-MacBook-Pro:ghc-mod-sandbox daniel$ cabal sandbox hc-pkg -- unregister ghc-mod ghc-pkg: cannot find package ghc-mod Daniels-MacBook-Pro:ghc-mod-sandbox daniel$ cabal install ghc-mod stylish-haskell Resolving dependencies... cabal: Could not resolve dependencies: trying: ghc-mod-5.8.0.0 (user goal) next goal: base (dependency of ghc-mod-5.8.0.0) rejecting: base-4.10.0.0/installed-4.1... (conflict: ghc-mod => base=4.6.0.1) rejecting: base-4.10.0.0, base-4.9.1.0, base-4.9.0.0, base-4.8.2.0, base-4.8.1.0, base-4.8.0.0, base-4.7.0.2, base-4.7.0.1, base-4.7.0.0, base-4.6.0.1, base-4.6.0.0, base-4.5.1.0, base-4.5.0.0, base-4.4.1.0, base-4.4.0.0, base-4.3.1.0, base-4.3.0.0, base-4.2.0.2, base-4.2.0.1, base-4.2.0.0, base-4.1.0.0, base-4.0.0.0, base-3.0.3.2, base-3.0.3.1 (constraint from non-upgradeable package requires installed instance) After searching the rest of the dependency tree exhaustively, these were the goals I've had most trouble fulfilling: base, ghc-mod, syb Note: when using a sandbox, all packages are required to have consistent dependencies. Try reinstalling/unregistering the offending packages or recreating the sandbox. I already searched stackoverflow for answers but nothing really worked for me. Can anybody tell me what I am missing?
mrCarnivore
1

голосов
1

ответ
309

Просмотры

Как установить более ранние версии Haskell Platform и переключаться между ними?

Я установил этот https://www.haskell.org/platform/#linux-generic Haskell Platform. Проблема заключается в том, что поставляется с GHC версии 8.2.1. Как установить более раннюю версию Haskell платформы, так что я могу использовать старые, ошибка свободной GHC, если мне это нужно? Я могу видеть предыдущие версии. https://www.haskell.org/platform/prior.html Так остается вопрос, как я могу заставить их мирно сосуществовать в моей системе? активизируют-вс, кажется, не работает, поэтому, пожалуйста, скажите мне, как я переключаю defferent Haskell платформы? Просто установка платформы Haskell обновила ссылки в / USR / местные / бен. Так что я думаю, мой вопрос почти решен.
ruby_object
1

голосов
1

ответ
59

Просмотры

Есть ли способ, чтобы получить GHC профилирования подвергается через сокет сервера?

Это является обычным делом в JVM мире использовать возможности удаленной отладки виртуальной машины Java, чтобы получить runntime трассировки и профилирование информации: Виртуальная машина Java предоставляет порт, к которому клиенту может подключиться и подавать информацию от среды выполнения. Есть ли способ сделать это в недавнем GHC?
insitu
1

голосов
1

ответ
41

Просмотры

Как поколение список с Fractionals работает? [Дубликат]

Этот вопрос уже есть ответ здесь: Haskell диапазоны и плавают 2 ответов с плавающей точкой математика сломана? 28 ответов Если я хочу, чтобы создать список с входом: [3.1,5.1..8.1] GHC 8.6.3 возвращается: [3.1,5.1,7.1,9.099999999999998] Моя проблема здесь не приближение 9.1, но почему список, составленный GHC имеет один элемент больше, чем следующее решение. В документации, которую я нашел в GHC.Enum, что enumFromThenTo переводит это нечто похожее на следующее: - | Используется в переводе Хаскеля из @ [п, п «.. т] @ с - @ [п, п» .. т] = enumFromThenTo пп 'м @, возможная реализация - быть @enumFromThenTo нижегородским т = рабочий ( FX) (сх) нм @, - @x = fromEnum п»- п @ fromEnum, @cx = BOOL (> =) (0) @ - @fny - | п> 0 = е (п - 1) (Succ у) - | п <0 = F (п + 1) (пред у) - | в противном случае = у @ и - @worker scvm - | МВО = v: рабочий СБН (УО) м - | в противном случае = [] @ поэтому следующий код: импорт Data.Bool eftt NSM = работника (Fx) (сх) нм где х = (fromEnum s) - (fromEnum п) сх = BOOL (> =) (0) Fny | п> 0 = F (п-1) (Succ у) | п <0 = F (п + 1) (пред у) | в противном случае = у уборщица scvm | МВО = v: рабочий СБН (УО) м | в противном случае = [] В тот же вход, как и раньше, это, однако, возвращает этот список: [3.1,5.1,7.1] Реальное выполнение определенных в GHC.Enum заключается в следующем: enumFromThenTo x1 x2 у = отображение toEnum [fromEnum х1, х2 fromEnum. . fromEnum у] Но нет конкретизации Enum Double или Enum Float в GHC.
DiLe

Просмотр дополнительных вопросов