3C3JDZ4XSAW6PCX36KBTHGQ34JPSZQXA5RIR7P4PMIKBXNXNQ4RAC
EQNQZM76ATVXJCKPLTFKMW7XIS4SH5CKKZZDB623D6UM4AQPH6EAC
RXCY7LD6ZRIOIKZEYKLMCYPMQPXF4DOEEFBDLVR2B22BXLZJFFBQC
A3TVGLVHSVLMEHLHB3TPBSD3QGNVGX3DIK6BEBDTTHWBNW4ALMRAC
PRE42LRLBF7CR3L7ERIPSQJJTDAQQ4UJ2H5KOHSVX7TL4STJXYNAC
DBSX7XQAQNMMA3TRSOKXUEVK2JMASWMCJOZRLDPLY3RJR7JW44KAC
K4KPTJTYRAJID6IBUIXMLOUKQ7J7XXHHFNSJHMYHDU5IA7ZJXABQC
ZQAZG2XD44TLBYXNG72BFU437YRZ5A75FRWJ6LHTAHEVNKVTYU2AC
"gnuplot -e \"~:[~*~;set xrange [~{~f~^:~}];~]~:[~*~;set yrange [~{~f~^:~}];~]set terminal svg font 'Alegreya,14' enhanced ~:[~*~;size ~{~a~^,~} ~]background '~a'; set border lw 3 lc rgb '~a'; set logscale y 2; plot '< cat' lt rgb '~a' notitle ~:[~;with linespoint~]\""
"gnuplot -e \"~:[~*~;set xrange [~{~f~^:~}];~]~:[~*~;set yrange [~{~f~^:~}];~]set terminal svg font 'Alegreya,14' enhanced ~:[~*~;size ~{~a~^,~} ~]background '~a'; set border lw 3 lc rgb '~a'; plot '< cat' lt rgb '~a' notitle ~:[~;with linespoint~]\""
(defun dep-tree (system-designator)
(let ((start (string-downcase (asdf:coerce-name (asdf:find-system system-designator))))
(to-process (list system-designator))
(result (make-hash-table :test #'equal)))
(labels ((%inner (system-designator)
(let* ((system (asdf:find-system system-designator))
(deps (asdf:system-depends-on system)))
(setf (gethash (asdf:component-name system)
result)
(mapcar (lambda (it)
(let ((*print-case* :downcase))
(princ-to-string it)))
deps))
(mapc (lambda (it)
(let ((thing (asdf/find-component:resolve-dependency-spec system
it)))
(when (and thing
(null (gethash (asdf:primary-system-name thing)
result)))
(pushnew (asdf:primary-system-name thing)
to-process
:test 'equal))))
deps))))
(loop while to-process
for val = (pop to-process)
do (%inner val))
(values result start))))