GC логирование при запуске ракетки как emacs REPL - PullRequest
0 голосов
/ 26 августа 2018

Я не получаю никаких сообщений GC при запуске кода Racket в режиме raket в emacs.

Запуск следующего кода в DrRacket возвращает запись в журнале, а запуск в Emacs REPL - нет.

(define my-logger (make-log-receiver (current-logger) 'debug 'GC))
(collect-garbage)
(sync/timeout 1 my-logger)

Как я могу получить сообщения журнала в случае Emacs REPL?

1 Ответ

0 голосов
/ 26 августа 2018
  1. Убедитесь, что у вас установлена ​​несколько более поздняя версия режима ракетки (например, последняя версия от MELPA ).
  2. Использование Cc Cl aka M-x racket-logger, чтобы открыть буфер racket-logger-mode.
  3. Если у вас возникли проблемы или вопросы, не стесняйтесь открыть номер .

Обновление : вышеприведенные инструкции на самом деле не отвечают, почему ваша собственная программа не получает событие журнала.Это действительно интересная ошибка - спасибо!Больше разговоров по теме вопроса .Когда я это выясню, я попытаюсь вернуться сюда и обновить этот ответ снова чем-то, что, надеюсь, будет интересно и познавательно в журналировании Racket.


Обновление : Получилосьбыть "о чем я думал?"ошибка в режиме ракетки.Я создавал новый регистратор:

(define global-logger (make-logger))
  (current-logger global-logger)

вместо того, чтобы просто использовать существующий:

(define global-logger (current-logger))

Существующий регистратор является специальным, как документация по Racket для регистраторов поясняет:

При запуске Racket создает начальный регистратор, который используется для записи событий из основной системы времени выполнения.Например, событие 'debug сообщается для каждой сборки мусора (см. Сборка мусора ).

Я отправил коммит в ветку темы, и когда я получаю все-зеленый из CI слился с мастером;вскоре после этого он станет доступен через MELPA.

...