LINUX.ORG.RU

История изменений

Исправление den73, (текущая версия) :

Я не знаю, где это советуют, но я не вижу в этом проблемы - половина СУБД реализована именно таким способом. Если это будет мешать, то можно и поменять.

Главное, я уже выяснил, что отладчик нормально работает с таким кодом:

(eval-when (:compile-toplevel :load-toplevel)
  (require :screamer))

(in-package :screamer-user)

(defun f0 (x)
  (if (oddp x)
      x
      (progn
        (break)
        (fail))))

(defun f1 ()
  (all-values
       (let ((x (either 1 2 3 4)))
         (f0 x))))

Хотя в стеке есть некоторое количество «мусора», в целом можно работать. И даже SBCL-ский степпер позволяет походить по коду после break. И плюс нативный код - неплохо для начала.А то, что я раньше хотел сделать с Arnesi, скорее всего, можно было бы отлаживать только принтами или писать свой отладчик. И это был бы интерпретатор (в котором я уже успел исправить одну багу за пару часов игры в него).

Также у нас есть библиотека для реализации «версионного состояния». Она пока в зачаточном состоянии, но дизайнерские вопросы вроде уже решены. Возможно, что нам и не будет нужен откат setf.

Я не соглашусь, что screamer - это пролог. По-моему, это именно лисп с элементами пролога.

Исправление den73, :

Я не знаю, где это советуют, но я не вижу в этом проблемы - половина СУБД реализована именно таким способом. Если это будет мешать, то можно и поменять.

Главное, я уже выяснил, что отладчик нормально работает с таким кодом:

(eval-when (:compile-toplevel :load-toplevel)
  (require :screamer))

(in-package :screamer-user)

(defun f0 (x)
  (if (oddp x)
      x
      (progn
        (break)
        (fail))))

(defun f1 ()
  (all-values
       (let ((x (either 1 2 3 4)))
         (f0 x))))

ним. Хотя в стеке есть некоторое количество «мусора», в целом можно работать. И даже SBCL-ский степпер позволяет походить по коду после break. А то, что я раньше хотел сделать с Arnesi, скорее всего, можно было бы отлаживать только принтами или писать свой отладчик.

Также у нас есть библиотека для реализации «версионного состояния». Она пока в зачаточном состоянии, но дизайнерские вопросы вроде уже решены. Возможно, что нам и не будет нужен откат setf.

Я не соглашусь, что screamer - это пролог. По-моему, это именно лисп с элементами пролога.

Исходная версия den73, :

Я не знаю, где это советуют, но я не вижу в этом проблемы - половина СУБД реализована именно таким способом. Если это будет мешать, то можно и поменять.

Главное, я уже выяснил, что отладчик нормально работает с таким кодом:

(eval-when (:compile-toplevel :load-toplevel)
  (require :screamer))

(in-package :screamer-user)

(defun f0 (x)
  (if (oddp x)
      x
      (progn
        (break)
        (fail))))

(defun f1 ()
  (all-values
       (let ((x (either 1 2 3 4)))
         (f0 x))))

ним. Хотя в стеке есть некоторое количество «мусора», в целом можно работать. И даже SBCL-ский степпер позволяет походить по коду после break. А то, что я раньше хотел сделать с Arnesi, скорее всего, можно было бы отлаживать только принтами или писать свой отладчик.