Skip to content

Instantly share code, notes, and snippets.

@mbrezu
Created February 24, 2011 07:13
Show Gist options
  • Save mbrezu/841878 to your computer and use it in GitHub Desktop.
Save mbrezu/841878 to your computer and use it in GitHub Desktop.
tefun.lisp
(defpsmacro tefun (name args &body body)
(let ((traced-name (gensym (symbol-name name))))
`(progn
(defun ,traced-name ,args
,@body)
(defun ,name ,args
(trace (+ "entering "
,(encode-js-identifier (symbol-name name))
"("
,@(mapcar #'(lambda (name val)
`(+ ,(symbol-name name)
" = "
,val))
args
args)
")"))
(let ((result (,traced-name ,@args)))
(trace (+ "exiting "
,(encode-js-identifier (symbol-name name))
" returning "
result))
(return result))))))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment