2014-11-04 1 views
2

В настоящее время cabal repl неприменим для меня. Ввод строки в подсказке неустойчив: появляется несколько букв, а затем, кажется, висеть в течение 5-10 секунд, только чтобы продолжить снова. Я подозреваю, что это связано с тем, что он загружает файлы Alex/Happy сгенерированными файлами (81K и 134K соответственно) в REPL. Мне не нужны эти файлы для поддержки REPL большую часть времени. Я не уверен, что на самом деле проблема, но я не знаю, что еще попробовать.Замена каббала слишком медленная

Я хотел бы иметь возможность исключить их из REPL, все еще включив их в процесс сборки. Еще лучше: могу ли я использовать только одну функцию из каждого из этих файлов (lex/parse) как-то?

Редактировать: Я вижу это поведение с GHC 7.8.3/Cabal 1.20.0.3, работающим на OS X 10.9 и среднемесячным rMBP (Sandy Bridge) с 16 ГБ ОЗУ. GHC/Cabal был установлен через Homebrew.

Edit 2: Cabal file в вопросе

+1

Можете ли вы дать некоторую информацию о машине, на которой вы работаете? Это локальная машина, удаленная машина? ОПЕРАЦИОННЫЕ СИСТЕМЫ? Такого рода вещи. –

+1

Добавлено в оригинальное сообщение. –

ответ

0

Я попытался реорганизовать код для каждого пользователя5402, но я не смог получить большую часть ускорения даже с кодом в разных базовых пакетах.

Вместо этого я создал .ghci файл в директории проекта со следующим содержанием:

:set -fobject-code 

Это нагружать скомпилированные версии модулей, с только экспортируемые функции отозваны. Для моих целей это прекрасно.

2

Вы можете оставить .cabal файл?

Если я правильно понимаю вашу ситуацию правильно, вот как я мог бы продолжить:

  1. Убедитесь, что Алекс и счастливые сгенерированные файлы вызывают замедление.
  2. Если это так, подумайте о переносе их в другой пакет, чтобы ghci загрузил скомпилированные версии.

Для # 1, я мог бы попробовать заменить Алекс и счастливых сгенерированные файлы только с окурками - скелетные файлы, которые содержат определение (= undefined) для только символов, которые импортируются другими модулями.

+0

Хорошая идея! Я дам вам попытку и отчитаюсь. Я не уверен, как сделать # 2, поэтому я дам вам знать, исправляет ли это что-то. –

+0

Я подтвердил, что эти сгенерированные файлы вызывают замедление. Я также отредактировал ссылку на текущий файл Cabal. Я помещал их в пакет 'Hython.Parser', мне нужно сделать что-нибудь особенное, чтобы предотвратить ghci от их автоматической загрузки? –