Как запретить Guile запускать отладчик при каждой ошибке?

Я использую Guile вместе с Geiser в Emacs во время обучения программированию на Scheme. Я считаю, что на самом деле помехой является то, что Guile попадает в отладчик каждый раз, когда я делаю опечатку или ввожу неправильный фрагмент кода. Как я могу сделать Guile более терпимым к моим опечаткам / ошибкам и пропустить отладчик при использовании его через Geiser под Emacs?

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


person haziz    schedule 15.02.2015    source источник


Ответы (2)


Вы можете установить для параметра on-error значение report, и он просто сообщит об ошибке, не бросая вас в отладчик (это значение по умолчанию, debug); например

scheme@(guile-user)> ,option on-error 'report
scheme@(guile-user)> (/ 1 0)
ERROR: Throw to key `numerical-overflow' with args `("/" "Numerical overflow" #f #f)'.
scheme@(guile-user)> 

См .: https://www.gnu.org/software/guile/manual/html_node/System-Commands.html

person djcb    schedule 31.01.2017

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

Если вы используете lispy для выполнения eval с помощью e, вы даже не видите окно REPL, вы просто получаете сообщения в эхо-области с результатом.

Если вы установите (setq geiser-impl--implementation 'guile) и нажмете e в lispy-mode, он автоматически запустит Geiser REPL (если живого нет) и вычислит выражение.

person abo-abo    schedule 15.02.2015