Advertisement
Guest User

Untitled

a guest
Apr 9th, 2019
145
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.41 KB | None | 0 0
  1.  
  2. (defun file-equal (a b)
  3. (equalp (com.informatimago.common-lisp.cesarum.file:binary-file-contents a)
  4. (com.informatimago.common-lisp.cesarum.file:binary-file-contents b)))
  5.  
  6. (defun find-optimizations (source-file object-file)
  7. (unwind-protect
  8. (let ((collection '()))
  9. (labels ((collect (item)
  10. (push item collection))
  11. (compile-with-optimizations (optimizations)
  12. (proclaim `(optimize ,@optimizations))
  13. (let ((temp (make-pathname :type "TEMP" :defaults source-file)))
  14. (ignore-errors (delete-file temp))
  15. (handler-case (progn
  16. (let ((*gensym-counter* 0))
  17. (compile-file source-file :output-file temp)
  18. (when (file-equal temp object-file)
  19. (collect optimizations))))
  20. (error (err)
  21. (print optimizations)
  22. (princ err)
  23. (terpri))))))
  24. (loop :for safety :in '(0 1 2 3)
  25. :do (loop :for debug :in '(0 1 2 3)
  26. :do (loop :for compilation-speed :in '(0 1 2 3)
  27. :do (loop :for space :in '(0 1 2 3)
  28. :do (loop :for speed :in '(0 1 2 3)
  29. :do (compile-with-optimizations
  30. `((safety ,safety)
  31. (debug ,debug)
  32. (compilation-speed ,compilation-speed)
  33. (space ,space)
  34. (speed ,speed))))))))
  35. collection))
  36. (proclaim '(optimize (compilation-speed 3) (debug 3) (safety 3) (space 0) (speed 0) ))))
  37.  
  38. #|
  39.  
  40. (load (compile-file "~/o"))
  41. (map nil 'print (find-optimizations "~/o.lisp" (let ((*gensym-counter* 0)) (compile-file "~/o.lisp"))))
  42.  
  43. ((safety 3) (debug 3) (compilation-speed 3) (space 3) (speed 3))
  44. ((safety 3) (debug 3) (compilation-speed 3) (space 3) (speed 2))
  45. ((safety 3) (debug 3) (compilation-speed 3) (space 3) (speed 1))
  46. ((safety 3) (debug 3) (compilation-speed 3) (space 3) (speed 0))
  47. ((safety 3) (debug 3) (compilation-speed 3) (space 2) (speed 3))
  48. ((safety 3) (debug 3) (compilation-speed 3) (space 2) (speed 2))
  49. ((safety 3) (debug 3) (compilation-speed 3) (space 2) (speed 1))
  50. ((safety 3) (debug 3) (compilation-speed 3) (space 2) (speed 0))
  51. ((safety 3) (debug 3) (compilation-speed 3) (space 1) (speed 3))
  52. ((safety 3) (debug 3) (compilation-speed 3) (space 1) (speed 2))
  53. ((safety 3) (debug 3) (compilation-speed 3) (space 1) (speed 1))
  54. ((safety 3) (debug 3) (compilation-speed 3) (space 1) (speed 0))
  55. ((safety 3) (debug 3) (compilation-speed 3) (space 0) (speed 3))
  56. ((safety 3) (debug 3) (compilation-speed 3) (space 0) (speed 2))
  57. ((safety 3) (debug 3) (compilation-speed 3) (space 0) (speed 1))
  58. ((safety 3) (debug 3) (compilation-speed 3) (space 0) (speed 0))
  59. ((safety 3) (debug 3) (compilation-speed 2) (space 3) (speed 0))
  60. ((safety 3) (debug 3) (compilation-speed 2) (space 2) (speed 0))
  61. ((safety 3) (debug 3) (compilation-speed 2) (space 1) (speed 0))
  62. ((safety 3) (debug 3) (compilation-speed 2) (space 0) (speed 0))
  63. ((safety 3) (debug 3) (compilation-speed 1) (space 3) (speed 0))
  64. ((safety 3) (debug 3) (compilation-speed 1) (space 2) (speed 0))
  65. ((safety 3) (debug 3) (compilation-speed 1) (space 1) (speed 0))
  66. ((safety 3) (debug 3) (compilation-speed 1) (space 0) (speed 0))
  67. ((safety 3) (debug 3) (compilation-speed 0) (space 3) (speed 0))
  68. ((safety 3) (debug 3) (compilation-speed 0) (space 2) (speed 0))
  69. ((safety 3) (debug 3) (compilation-speed 0) (space 1) (speed 0))
  70. ((safety 3) (debug 3) (compilation-speed 0) (space 0) (speed 0))
  71. ((safety 2) (debug 3) (compilation-speed 3) (space 3) (speed 1))
  72. ((safety 2) (debug 3) (compilation-speed 3) (space 3) (speed 0))
  73. ((safety 2) (debug 3) (compilation-speed 3) (space 2) (speed 1))
  74. ((safety 2) (debug 3) (compilation-speed 3) (space 2) (speed 0))
  75. ((safety 2) (debug 3) (compilation-speed 3) (space 1) (speed 1))
  76. ((safety 2) (debug 3) (compilation-speed 3) (space 1) (speed 0))
  77. ((safety 2) (debug 3) (compilation-speed 3) (space 0) (speed 1))
  78. ((safety 2) (debug 3) (compilation-speed 3) (space 0) (speed 0))
  79. ((safety 2) (debug 3) (compilation-speed 2) (space 3) (speed 0))
  80. ((safety 2) (debug 3) (compilation-speed 2) (space 2) (speed 0))
  81. ((safety 2) (debug 3) (compilation-speed 2) (space 1) (speed 0))
  82. ((safety 2) (debug 3) (compilation-speed 2) (space 0) (speed 0))
  83. ((safety 2) (debug 3) (compilation-speed 1) (space 3) (speed 0))
  84. ((safety 2) (debug 3) (compilation-speed 1) (space 2) (speed 0))
  85. ((safety 2) (debug 3) (compilation-speed 1) (space 1) (speed 0))
  86. ((safety 2) (debug 3) (compilation-speed 1) (space 0) (speed 0))
  87. ((safety 2) (debug 3) (compilation-speed 0) (space 3) (speed 0))
  88. ((safety 2) (debug 3) (compilation-speed 0) (space 2) (speed 0))
  89. ((safety 2) (debug 3) (compilation-speed 0) (space 1) (speed 0))
  90. ((safety 2) (debug 3) (compilation-speed 0) (space 0) (speed 0))
  91. ((safety 1) (debug 3) (compilation-speed 3) (space 3) (speed 0))
  92. ((safety 1) (debug 3) (compilation-speed 3) (space 2) (speed 0))
  93. ((safety 1) (debug 3) (compilation-speed 3) (space 1) (speed 0))
  94. ((safety 1) (debug 3) (compilation-speed 3) (space 0) (speed 0))
  95. ((safety 1) (debug 3) (compilation-speed 2) (space 3) (speed 0))
  96. ((safety 1) (debug 3) (compilation-speed 2) (space 2) (speed 0))
  97. ((safety 1) (debug 3) (compilation-speed 2) (space 1) (speed 0))
  98. ((safety 1) (debug 3) (compilation-speed 2) (space 0) (speed 0))
  99. ((safety 1) (debug 3) (compilation-speed 1) (space 3) (speed 0))
  100. ((safety 1) (debug 3) (compilation-speed 1) (space 2) (speed 0))
  101. ((safety 1) (debug 3) (compilation-speed 1) (space 1) (speed 0))
  102. ((safety 1) (debug 3) (compilation-speed 1) (space 0) (speed 0))
  103. ((safety 1) (debug 3) (compilation-speed 0) (space 3) (speed 0))
  104. ((safety 1) (debug 3) (compilation-speed 0) (space 2) (speed 0))
  105. ((safety 1) (debug 3) (compilation-speed 0) (space 1) (speed 0))
  106. ((safety 1) (debug 3) (compilation-speed 0) (space 0) (speed 0))
  107.  
  108. |#
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement