Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- (defun file-equal (a b)
- (equalp (com.informatimago.common-lisp.cesarum.file:binary-file-contents a)
- (com.informatimago.common-lisp.cesarum.file:binary-file-contents b)))
- (defun find-optimizations (source-file object-file)
- (unwind-protect
- (let ((collection '()))
- (labels ((collect (item)
- (push item collection))
- (compile-with-optimizations (optimizations)
- (proclaim `(optimize ,@optimizations))
- (let ((temp (make-pathname :type "TEMP" :defaults source-file)))
- (ignore-errors (delete-file temp))
- (handler-case (progn
- (let ((*gensym-counter* 0))
- (compile-file source-file :output-file temp)
- (when (file-equal temp object-file)
- (collect optimizations))))
- (error (err)
- (print optimizations)
- (princ err)
- (terpri))))))
- (loop :for safety :in '(0 1 2 3)
- :do (loop :for debug :in '(0 1 2 3)
- :do (loop :for compilation-speed :in '(0 1 2 3)
- :do (loop :for space :in '(0 1 2 3)
- :do (loop :for speed :in '(0 1 2 3)
- :do (compile-with-optimizations
- `((safety ,safety)
- (debug ,debug)
- (compilation-speed ,compilation-speed)
- (space ,space)
- (speed ,speed))))))))
- collection))
- (proclaim '(optimize (compilation-speed 3) (debug 3) (safety 3) (space 0) (speed 0) ))))
- #|
- (load (compile-file "~/o"))
- (map nil 'print (find-optimizations "~/o.lisp" (let ((*gensym-counter* 0)) (compile-file "~/o.lisp"))))
- ((safety 3) (debug 3) (compilation-speed 3) (space 3) (speed 3))
- ((safety 3) (debug 3) (compilation-speed 3) (space 3) (speed 2))
- ((safety 3) (debug 3) (compilation-speed 3) (space 3) (speed 1))
- ((safety 3) (debug 3) (compilation-speed 3) (space 3) (speed 0))
- ((safety 3) (debug 3) (compilation-speed 3) (space 2) (speed 3))
- ((safety 3) (debug 3) (compilation-speed 3) (space 2) (speed 2))
- ((safety 3) (debug 3) (compilation-speed 3) (space 2) (speed 1))
- ((safety 3) (debug 3) (compilation-speed 3) (space 2) (speed 0))
- ((safety 3) (debug 3) (compilation-speed 3) (space 1) (speed 3))
- ((safety 3) (debug 3) (compilation-speed 3) (space 1) (speed 2))
- ((safety 3) (debug 3) (compilation-speed 3) (space 1) (speed 1))
- ((safety 3) (debug 3) (compilation-speed 3) (space 1) (speed 0))
- ((safety 3) (debug 3) (compilation-speed 3) (space 0) (speed 3))
- ((safety 3) (debug 3) (compilation-speed 3) (space 0) (speed 2))
- ((safety 3) (debug 3) (compilation-speed 3) (space 0) (speed 1))
- ((safety 3) (debug 3) (compilation-speed 3) (space 0) (speed 0))
- ((safety 3) (debug 3) (compilation-speed 2) (space 3) (speed 0))
- ((safety 3) (debug 3) (compilation-speed 2) (space 2) (speed 0))
- ((safety 3) (debug 3) (compilation-speed 2) (space 1) (speed 0))
- ((safety 3) (debug 3) (compilation-speed 2) (space 0) (speed 0))
- ((safety 3) (debug 3) (compilation-speed 1) (space 3) (speed 0))
- ((safety 3) (debug 3) (compilation-speed 1) (space 2) (speed 0))
- ((safety 3) (debug 3) (compilation-speed 1) (space 1) (speed 0))
- ((safety 3) (debug 3) (compilation-speed 1) (space 0) (speed 0))
- ((safety 3) (debug 3) (compilation-speed 0) (space 3) (speed 0))
- ((safety 3) (debug 3) (compilation-speed 0) (space 2) (speed 0))
- ((safety 3) (debug 3) (compilation-speed 0) (space 1) (speed 0))
- ((safety 3) (debug 3) (compilation-speed 0) (space 0) (speed 0))
- ((safety 2) (debug 3) (compilation-speed 3) (space 3) (speed 1))
- ((safety 2) (debug 3) (compilation-speed 3) (space 3) (speed 0))
- ((safety 2) (debug 3) (compilation-speed 3) (space 2) (speed 1))
- ((safety 2) (debug 3) (compilation-speed 3) (space 2) (speed 0))
- ((safety 2) (debug 3) (compilation-speed 3) (space 1) (speed 1))
- ((safety 2) (debug 3) (compilation-speed 3) (space 1) (speed 0))
- ((safety 2) (debug 3) (compilation-speed 3) (space 0) (speed 1))
- ((safety 2) (debug 3) (compilation-speed 3) (space 0) (speed 0))
- ((safety 2) (debug 3) (compilation-speed 2) (space 3) (speed 0))
- ((safety 2) (debug 3) (compilation-speed 2) (space 2) (speed 0))
- ((safety 2) (debug 3) (compilation-speed 2) (space 1) (speed 0))
- ((safety 2) (debug 3) (compilation-speed 2) (space 0) (speed 0))
- ((safety 2) (debug 3) (compilation-speed 1) (space 3) (speed 0))
- ((safety 2) (debug 3) (compilation-speed 1) (space 2) (speed 0))
- ((safety 2) (debug 3) (compilation-speed 1) (space 1) (speed 0))
- ((safety 2) (debug 3) (compilation-speed 1) (space 0) (speed 0))
- ((safety 2) (debug 3) (compilation-speed 0) (space 3) (speed 0))
- ((safety 2) (debug 3) (compilation-speed 0) (space 2) (speed 0))
- ((safety 2) (debug 3) (compilation-speed 0) (space 1) (speed 0))
- ((safety 2) (debug 3) (compilation-speed 0) (space 0) (speed 0))
- ((safety 1) (debug 3) (compilation-speed 3) (space 3) (speed 0))
- ((safety 1) (debug 3) (compilation-speed 3) (space 2) (speed 0))
- ((safety 1) (debug 3) (compilation-speed 3) (space 1) (speed 0))
- ((safety 1) (debug 3) (compilation-speed 3) (space 0) (speed 0))
- ((safety 1) (debug 3) (compilation-speed 2) (space 3) (speed 0))
- ((safety 1) (debug 3) (compilation-speed 2) (space 2) (speed 0))
- ((safety 1) (debug 3) (compilation-speed 2) (space 1) (speed 0))
- ((safety 1) (debug 3) (compilation-speed 2) (space 0) (speed 0))
- ((safety 1) (debug 3) (compilation-speed 1) (space 3) (speed 0))
- ((safety 1) (debug 3) (compilation-speed 1) (space 2) (speed 0))
- ((safety 1) (debug 3) (compilation-speed 1) (space 1) (speed 0))
- ((safety 1) (debug 3) (compilation-speed 1) (space 0) (speed 0))
- ((safety 1) (debug 3) (compilation-speed 0) (space 3) (speed 0))
- ((safety 1) (debug 3) (compilation-speed 0) (space 2) (speed 0))
- ((safety 1) (debug 3) (compilation-speed 0) (space 1) (speed 0))
- ((safety 1) (debug 3) (compilation-speed 0) (space 0) (speed 0))
- |#
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement