2015-11-17 8 views
1

Можно ли отлаживать Maxima CAS Код Lisp в Emacs?Отладка Maxima CAS Lisp код на Emacs

Это больно использовать так много утверждений печати все время.

+1

Лучше всего спросил список рассылки Maxima. –

+0

@RainerJoswig Я часто посещаю список рассылки Maxima, я думал, может быть, кто-то здесь может быть в курсе этого. – Rorschach

+0

Вы спрашиваете о запуске Maxima как Elisp или о том, чтобы запустить его под Common Lisp, связанным с Emacs через Slime? –

ответ

2

Я использовал два подхода на протяжении многих лет.

  1. Запуск слизи с использованием файла ядра Maxima. Смотрите это письмо для того, как сделать это

    http://article.gmane.org/gmane.comp.mathematics.maxima.general/36029

  2. Run Maxima, но добавить код в файле инициализации, чтобы создать сервер Суонк затем подключить к этому с slime-connect.

    http://article.gmane.org/gmane.comp.mathematics.maxima.general/44533

Кто-то (Лео Батлер, может быть?) В списке затем предложил аккуратнее подход, чем то, что в этом письме. К сожалению, мой поиск-фу подвел меня, и я не могу найти разговор, так что я буду просто вставить то, что в моей ~/.maxima/swank.lisp ныне:

(eval-when (:compile-toplevel :load-toplevel :execute) 
    (defvar *swank-asd* 
    (car (directory #P"~/.emacs.d/elpa/slime*/swank.asd"))) 

    (when *swank-asd* 
    (load *swank-asd*) 
    (require :swank))) 

(when (find-package :swank) 

    (swank:create-server :port 56789 :dont-close t) 
    ;; Hack to make "q" not kill Maxima outright. Only applies from console 
    (in-package :maxima) 
    (defvar *real-continue-function* (symbol-function 'continue)) 
    (setf (symbol-function 'continue) 
     (lambda (&rest args) 
      (let ((swank::*sldb-quit-restart* 'maxima::macsyma-quit)) 
      (apply *real-continue-function* args)))) 
    (format t "Swank loaded successfully")) 

Она начинается, пытаясь загрузить важничанье из моего каталога Emacs (I установить слизь с помощью Elpa). В случае успеха или если по какой-то причине swank загрузился, он создает сервер, а затем делает отличный «сделать ключ q не очень раздражающим», описанным во втором письме.

+0

поможет ли он в отладке исходного кода maxima? Разве это не похоже на запуск максимумов на slime/emacs, а не на терминал? – Rorschach

+0

Прошу прощения, но я не понимаю ваш вопрос. Мой ответ дает два разных способа запуска Maxima с подключенной слизью. Я думал, это то, что ты хотел? –

+0

Да, я мог догадаться, что это поможет мне запустить maxima на слизе, но также поможет мне установить точки останова в коде maxima и отладить его? – Rorschach