Clojure REPL зависает при выводе дозы в OS X, но не в Linux - PullRequest
2 голосов
/ 02 февраля 2011

Я использую Clojure 1.2 как на своей машине Snow Leopard OS X, так и на моем Ubuntu linux box с помощью команды lein repl.Я прохожу обучающий урок https://github.com/swannodette/enlive-tutorial/

Когда я попадаю в урок "Третий скраб" и запускаю следующую команду:

(print-stories)

она работает как положено в Ubuntu, но в ОСX, он выводит только первый рассказ, а затем выводит остальное только после того, как я ввожу какое-то выражение, будь то число, (println "привет мир") или еще много чего.Что-то странное в том, как REPL работает в OS X, - как будто буфер не сбрасывает вывод полностью.

Я заметил, что в функции print-stories используется макрос doseq.Поэтому, если я сделаю это:

tutorial.scrape3=> (doseq [x (map extract (stories))] (println x))

, я получу вывод на OSX:

{:summary , :byline , :headline With Stones and Firebombs, Mubarak Allies Attack}

, который является только первым элементом.Если я затем ввожу 0 (или любое допустимое выражение) и нажимаю return, я получаю остаток от вывода:

0
{:summary The Conversation: Long, worthy road to democracy. , :byline , :headline }
{:summary The Frugal Traveler scores a cheap ticket to Malaga, Spain, birthplace of Picasso., :byline , :headline A Taste of Picasso (and Iberian Cuisine)}
{:summary Lay claim to the next great place: four emerging destinations., :byline , :headline Beat the Crowds}
[etc]

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

У кого-нибудь есть идеи?

Ответы [ 2 ]

1 голос
/ 03 февраля 2011

Это не проблема OSX, которая случилась со мной и в Ubuntu 10.10.Может быть связано с rlwrap, который используется leiningen AFAIK.Я использую торт в настоящее время.

1 голос
/ 03 февраля 2011

Как это случилось, я вчера вечером сделал то же самое увлекательное руководство по снежному барсу, и функция scrape3 (print-story) прекрасно работает для меня.Код dosq в вашем вопросе также работает для меня без остановки.

Какой вывод вы получите, если вы запустите «lein version» в командной строке?Детали моей версии:

Leiningen 1.4.2 на Java 1.6.0_22 Java HotSpot (TM) 64-битный сервер VM

Приветствия, Колин

...