Skip to content
Snippets Groups Projects
Commit c8487c61 authored by Francois-Rene Rideau's avatar Francois-Rene Rideau
Browse files

Update debug.lisp: uiop vs asdf/driver, ability to load slime afterwards, etc.

parent a3dace27
No related branches found
No related tags found
No related merge requests found
...@@ -11,21 +11,21 @@ ...@@ -11,21 +11,21 @@
#| #|
;;; If ASDF is already loaded, ;;; If ASDF is already loaded,
;;; you can load these utilities in the current package as follows: ;;; you can load these utilities in the current package as follows:
(d:asdf-debug) (uiop:uiop-debug)
;; which if you left the :D nickname to asdf/driver is short for: ;; which is the same as:
(asdf/utility::asdf-debug) (uiop/utility:uiop-debug)
;; The above macro can be configured to load any other debugging utility ;; The above macro can be configured to load any other debugging utility
;; that you may prefer to this one, with your customizations, ;; that you may prefer to this one, with your customizations,
;; by setting the variable ;; by setting the variable
;; asdf-utility:*asdf-debug-utility* ;; uiop/utility:*uiop-debug-utility*
;; to a form that evaluates to a designator of the pathname to your file. ;; to a form that evaluates to a designator of the pathname to your file.
;; For instance, on a home directory shared via NFS with different names ;; For instance, on a home directory shared via NFS with different names
;; on different machines, with your debug file in ~/lisp/debug-utils.lisp ;; on different machines, with your debug file in ~/lisp/debug-utils.lisp
;; you could in your ~/.sbclrc have the following configuration setting: ;; you could in your ~/.sbclrc have the following configuration setting:
(require :asdf) (require :asdf)
(setf asdf/utility:*asdf-debug-utility* (setf uiop/utility:*uiop-debug-utility*
'(asdf/pathname:subpathname (asdf/os:user-homedir) "lisp/debug-utils.lisp")) '(uiop/pathname:subpathname (uiop/os:user-homedir) "lisp/debug-utils.lisp"))
;;; If ASDF is not loaded (for instance, when debugging ASDF itself), ;;; If ASDF is not loaded (for instance, when debugging ASDF itself),
;;; Try the below, fixing the pathname to point to this file: ;;; Try the below, fixing the pathname to point to this file:
...@@ -102,21 +102,17 @@ The macro expansion has relatively low overhead in space of time." ...@@ -102,21 +102,17 @@ The macro expansion has relatively low overhead in space of time."
;;; Quick definitions for use at the REPL ;;; Quick definitions for use at the REPL
(defun w (&rest x) (format t "~&~{~S~^ ~}~%" x)) ;Write, space separated + LF (defun w (&rest x) (format t "~&~{~S~^ ~}~%" x)) ;Write, space separated + LF
(defun a (&rest x) (format t "~&~{~A~}~%" x)) ;print Anything, no separator, LF (defun a (&rest x) (format t "~&~{~A~}~%" x)) ;print Anything, no separator, LF
(defun e (x) (cons x (ignore-errors (list (eval x))))) ;eValuate (defun e (x) (cons x (ignore-errors (list (eval x))))) ;Evaluate
(defmacro x (x) `(format t "~&~S => ~S~%" ',x ,x)) ;eXamine (defmacro x (x) `(format t "~&~S => ~S~%" ',x ,x)) ;eXamine
(defun i (&rest x) (apply (read-from-string "swank:inspect-in-emacs") x)) ; SLIME inspection
(defun ra (&rest x) (require :cl-ppcre) (apply (read-from-string "cl-ppcre:regex-apropos") x))
(defmacro !a (&rest foo) ; define! Alias (defmacro !a (&rest foo) ; define! Alias
`(progn ,@(loop :for (alias name) :on foo :by #'cddr `(progn ,@(loop :for (alias name) :on foo :by #'cddr
:collect (if (macro-function name) :collect (if (macro-function name)
`(defmacro ,alias (&rest x) `(,',name ,@x)) `(defmacro ,alias (&rest x) `(,',name ,@x))
`(defun ,alias (&rest x) (apply ',name x)))))) `(defun ,alias (&rest x) (apply ',name x))))))
(!a ;;; common aliases
;;; common aliases
(!a
d describe d describe
ap apropos ap apropos
!p defparameter !p defparameter
m1 macroexpand-1) m1 macroexpand-1)
;;; SLIME integration
(when (find-package :swank)
(eval (read-from-string "(!a i swank:inspect-in-emacs)")))
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment