Updated generation of system-graph.

Pascal J. Bourguignon [2018-12-29 18:20]
Updated generation of system-graph.
Filename
Makefile
common-lisp/Makefile
common-lisp/README.pdf
common-lisp/gen-lib-graph.lisp
common-lisp/graphviz/graph-dot.lisp
common-lisp/system-graph.dot
common-lisp/system-graph.ps
small-cl-pgms/botihn/Makefile
diff --git a/Makefile b/Makefile
index e9a3a8a..31b7719 100644
--- a/Makefile
+++ b/Makefile
@@ -43,7 +43,8 @@ all::

 include implementations.mk

-
+help::
+	@printf 'NOTE: Most of this makefile is obsolete.\n      Please use ASDF or QUICKLISP to compile and load these systems.\n'
 help::
 	@for c in $(COMPILERS) ; do printf $(HELP_FMT) "compile-with-$$c" "Compile with $$c." ; done
 	@printf $(HELP_FMT) 'all' 'Compile with all the available compilers.'
@@ -69,7 +70,7 @@ PREFIX=$(HOME)/quicklisp/local-projects
 PACKAGES=$(PREFIX)

 PACKAGE_PATH=com/informatimago
-MODULES= common-lisp clext clmisc  clisp  susv3  rdp
+MODULES= common-lisp clext clmisc  clisp  susv3  rdp small-cl-pgms/botihn



@@ -198,6 +199,14 @@ help::
 try:
 	$(call eval_with_sbcl,'(progn (load #P"~/quicklisp/setup.lisp") (funcall (find-symbol "QUICKLOAD" "QL") :com.informatimago.tools.try-systems) (funcall (find-symbol "TRY-SYSTEMS" "COM.INFORMATIMAGO.TOOLS.TRY-SYSTEMS")))')

+
+help::
+	@printf $(HELP_FMT)  'system-index.txt'    'Builds a list of all asd files.'
+clean::
+	-rm -f system-index.txt
+system-index.txt:
+	@find * -name \*.asd | while read line ; do echo "$${#line}:$${line}" ; done | sort -t: -k 1n | awk -F: '{print $$2;}' > system-index.txt
+
 # quicklisp-tag: quicklisp-tag-remove quicklisp-tag-add
 #
 # quicklisp-tag-remove:
diff --git a/common-lisp/Makefile b/common-lisp/Makefile
index 281083d..14c3bb8 100644
--- a/common-lisp/Makefile
+++ b/common-lisp/Makefile
@@ -32,31 +32,44 @@
 #    along with this program.  If not, see http://www.gnu.org/licenses/
 #*****************************************************************************
 PREFIX=/usr/local
-
 all:: doc

+include ../implementations.mk
+
+help::
+	@printf $(HELP_FMT) 'doc'  'Generate documentation.'
+doc::documentation
+documentation:: README.pdf
+html:: README.html
+
 help::
-	@echo "make iana-character-sets.data # downloads the IANA character sets data file."
+	@printf $(HELP_FMT) 'iana-character-sets.data' 'Downloads the IANA character sets data file.'
 iana-character-sets.data:
 	wget http://www.iana.org/assignments/character-sets -O $@

-
-
-
+help::
+	@printf $(HELP_FMT) 'system-graph.ps'  'Generate graph of systems.'
+	@printf $(HELP_FMT) 'system-graph.eps' 'Generate graph of systems.'
+	@printf $(HELP_FMT) 'system-graph.dot' 'Generate graph of systems.'
+clean::
+	-@rm -f system-graph.dot system-graph.ps system-graph.eps
+system-graph.dot:Makefile gen-lib-graph.lisp $(shell find . -name \*.asd)
+	ccl -n -e '(handler-case (progn  (load "gen-lib-graph.lisp") (ccl:quit)) (error (err) (princ err *error-output*) (terpri *error-output*) (ccl:quit 1)))'
 system-graph.ps:system-graph.dot
 	dot -Tps  -o system-graph.ps system-graph.dot
 system-graph.eps:system-graph.ps
 	ps2epsi system-graph.ps system-graph.eps
 	lc -u system-graph.eps

+help::
+	@printf $(HELP_FMT) 'README.pdf'  'Generate README.'
+clean::
+	-@rm -f README.html README.pdf
 README.pdf:README system-graph.eps
 	rst2pdf < README > README.pdf
 README.html:README system-graph.eps
 	rst2html < README > README.html

-doc::documentation
-documentation:: README.pdf
-html:: README.html

 compile::
 	./compile.sh
diff --git a/common-lisp/README.pdf b/common-lisp/README.pdf
deleted file mode 100644
index 2bed768..0000000
--- a/common-lisp/README.pdf
+++ /dev/null
@@ -1,1194 +0,0 @@
-%PDF-1.4
-% ReportLab Generated PDF document http://www.reportlab.com
-1 0 obj
-<< /F1 2 0 R /F2 3 0 R /F3 4 0 R /F4 5 0 R /F5 6 0 R >>
-endobj
-2 0 obj
-<< /BaseFont /Helvetica /Encoding /WinAnsiEncoding /Name /F1 /Subtype /Type1 /Type /Font >>
-endobj
-3 0 obj
-<< /BaseFont /Helvetica-Oblique /Encoding /WinAnsiEncoding /Name /F2 /Subtype /Type1 /Type /Font >>
-endobj
-4 0 obj
-<< /BaseFont /Helvetica-Bold /Encoding /WinAnsiEncoding /Name /F3 /Subtype /Type1 /Type /Font >>
-endobj
-5 0 obj
-<< /BaseFont /Helvetica-BoldOblique /Encoding /WinAnsiEncoding /Name /F4 /Subtype /Type1 /Type /Font >>
-endobj
-6 0 obj
-<< /BaseFont /Courier /Encoding /WinAnsiEncoding /Name /F5 /Subtype /Type1 /Type /Font >>
-endobj
-7 0 obj
-<< /Contents 22 0 R /MediaBox [ 0 0 595.2756 841.8898 ] /Parent 21 0 R /Resources << /Font 1 0 R /ProcSet [ /PDF /Text /ImageB /ImageC /ImageI ] >> /Rotate 0 /Trans <<  >>
-  /Type /Page >>
-endobj
-8 0 obj
-<< /Contents 23 0 R /MediaBox [ 0 0 595.2756 841.8898 ] /Parent 21 0 R /Resources << /Font 1 0 R /ProcSet [ /PDF /Text /ImageB /ImageC /ImageI ] >> /Rotate 0 /Trans <<  >>
-  /Type /Page >>
-endobj
-9 0 obj
-<< /Contents 24 0 R /MediaBox [ 0 0 595.2756 841.8898 ] /Parent 21 0 R /Resources << /Font 1 0 R /ProcSet [ /PDF /Text /ImageB /ImageC /ImageI ] >> /Rotate 0 /Trans <<  >>
-  /Type /Page >>
-endobj
-10 0 obj
-<< /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter [ /ASCII85Decode /DCTDecode ] /Height 128 /Length 6363 /Subtype /Image
-  /Type /XObject /Width 128 >>
-stream
-s4IA0!"_al8O`[\!<N7E!-S>Bs4[N@!!<9(!WiE*!WiE*!s8W."p>&3"9\u7"pG2;#RUnF#RLeE$kEaR$P!ON#n7IU%M'*^&J,9X&eblh'+YWc&HCJb6NI8k!sA]/#Qt89&.8dP&.fBa&.fBa&.fBa&.fBa&.fBa&.fBa&.fBa&.fBa&.fBa&.fBa&.fBa&.fBa&.nlW!"fJ:J,k*%!?qLF&HMtG!WU(<*WQ0@!sJ]+zz!!!?+!XSr3"U>;;!WU(<;%N^.!X&Q-"q(kD"UP//!!!$$!rrH-"pY_G&g8tC3'gDc[0[Nb+u35.EMg"j(aC:^6;gcbEfu`^dhNX>OcpSjA'sd&6UZKXU9_Vos24mW!<E0%!WrH'zz!!!3.!<iN,":5%G!&kJi!<NB+!so28!rr<$!!!!"!!36*&Kq;^0bQcl'I#;0@=aQWn-9UB,Z8ZV'k2dB,I-5-g&MN`!<<05!tbMt!0oO&%`eld$N%^\8#tQSNil9Uk3*_He[q[/fq36tfs]n:jP(tsVh+qc]O!qT_C<t;1o>n`PP?'@/9oY(-V,$a=MFuC=1XHjB9,8HB`?*]\rWb%O$?*IrlGh?4Ztusq37UroVF1A!$!*]$&5=#U%IT1lDsj@YuM"ae9sD@H29<ep./K=I60Q:qD1Y88=\2T:]30N!9tE$-KfiFrrD^#&ul=dW;:[^oCQXUm#\iXqK@,ToOa0NOZK4OF6RUm:r@t9kL,t!jp>#k*RoL!4F-cZ8+oJZe9sD@H29<ep.1a:1H4s(^A3NjM8,k"pWO8M#s5*^G'NWNArl;?];YRLGk:Q>O6hujSZt'EQ[\ak]s0HeQ[\a^<C%FD+&:-'IZ2\QOr&6_:<su1N7%Te-[3!G^6%g@0iD0MP;(?^mLWE\6!5F[(0#2F5Plj1hBubq-N`ptEg8XD?e:U<>qItYK8Z>G`tL*cfI1<9-n&Yiaq1]f/Kgb;3a>(F^t*1i`h*J35e">DLa>#):c4\DnYaB%O=hTZIL/aRZV)>rprUqf_q$KW&J*0^3Vf<-0E2"s%728uEBar#r[RkY)O/'X?P8a)PfM:N.O?c:e=mur%`p.;W.7"87EV/YO,fcB5';Z*Xq;-LM@<JKYP_Ac.e>2[l9J1j,SB*hb,;3\66`?rIFNiu3hB-i.SHNcL5oUm4J#Z(UcjrQo7(G"i.u>o:?,-&I3;bM@`/nL%;(IPC%-&:$[\sWJl@9D:c4\DnYaB%O=hTZIL/aRZV)>rprUqf_q$KW&JWKf3QM."MQ^0DM+gp<:Vu#g,/%rYQnBg61#Od!)_A'6UFN6`<)SFL6+.Uq.s:"cJqP:-WCf:gITp5jFtM)qHHD\fWln7;'<8r%NFs;T7jK5aj\h=.*dtXVN[L]m`I>J^-K7D0B&f90>dV)oY0@i<DJ>fS0/!dZjQ6Y64T%"!S=c1l\Gc_9nf-)N04ja4P9++t_.faREV`nLIck'K&Rs`$f_'&na';3*1D2jS@8I_flqOh@'h;3DXoo<j,Au#4Q#,9b/u^Y4[&4Wn4$?WG9Imtbr;)Z3O"'";eH<q)2,u-c`#MdX]l2iR%Ct'BF+Ka^c4VCj="7DVCT8FMK4]H?EOBKV&7QAoTf7;X--0[<g8=+p,"83de4Na,NFXtAb]DH=G*>5Jrr<)ZVXmNu0S/X=$R$UgXY51p2g'T42#bk-'g'.#5*hG`3QcEf!!BM_NjL]bQI8)qROfbirr<e<p3EX'Ut'b;5s;I,!A2fg:HDZ,<T2/d*GELLRMK72I6(iBCZAF3KeS+c2cXu6XV*W":eo@0[PWE!LfY<lTi.W:)3UHePii*_eE*:PI:IS$'EK['V)aSpbgBnDbIDoA[%/fTp"eK88P*="]I0+QR&t&b!nT0B)Zg>U^6EX78?.e'+3,<:)/)aq/S_>(k&hYX?0dJ$DaMlqV*gW1A%7.1*$QU$p8rMk\XLH!4IGM?Na4qL;TMn625Z,VbFi\1GNq2SH(9n?Jg:F"EIrn((*nmk7<G+=)*6LF/Z05%=qit2Pl_JcAn*7Baj+paZ1`/7Nj7_*E)<(DQVJ)[H#d0o`g>5Rl#eOod;Yat#/S*/Yk8Db[!UdCpOkV-_iPA>I,[<3/r&7OmPO\tdKR>8/3t`#enCVoT*G-W\%9P7,rd)F24@Y;VoDJn/fq9H#u1]29-,qbajL@1eh=iO(sFAd:O`s_\3hNnUUU`kmuN.6p=8Je>,.Xl9UU7i1o'k4@;nDo\'p]+3O`h,rH^VkbB'^tGUo^SX;][e%>(kH=H<O&,.3>q]djBP1Cl1q74)cU1=(WtMG@?JngVP%^-T5Ac9/L<[,^o"o2L.T[jJ87k-`=TPVAcY8!jDj,GR=Bf)%=/^A>M):_r=G%8rWl*XW`q$HRMBo!@pU?%\HfQFfIXGW+(Eg9*uo4s.Sp&e@QmBQ)c('(-mPTAn_(f/RDt<n83oE`<AL0o8r->"`R&BuhP0:]BqRO&]#KPGLl34$)Y2Bs:/Sa4c56;O&Zkm-CWf[aI_m`unl0P#V:?Gqr,A@[b`0M-4f#p3FLFQ2V'h!5.[fHmo3:`$mZmDm8'r"]sZmADT7%+M\0+EOj\,jS8"@2bG&qS%Ye^>7rebRWTZg,m;COW;PCsN^nD"412PuPJ,\QDNo0:QRL*6QRmk;f`;O=f[rF4q0/48XB]m`R]PTBlcr4"c**4@8NVGBK:#,<$h1=^a%Mt(V6K9edA:++X-KQ+&"P4%Xi4flrQWFhB-sugdkN5FeY93-%\`2dY6\5uY#N:sAfM`:G94)g&pFid"kT'+^18VVP>o(_<40lE.to&\i<LY3+-ijH"HIsWD`n];(&L'1`='+@./1mpc6]Rhf'7):LVcRVNKh#%];!2:S/8U&Ak'S(\#!;jQ'HdO9(`588f_>Ub^l4JP*sWZV_V#q@mK"M-.1m1'$6?2Wcc?rf0l*_Fju//'/6+4iXhX&MGsq(;Mn$G%8e.`DG"S"k+ideLKKUC92bN"bZH\mYZO7tf@\r6Pp"[NeY(YkU+a5oduok.%`1#W,sCbPb8.I?7)^o]n".s'jVNaU1$=BsUla8CS]79+qEVO$`J>g")U/r*e)9+S(ACq9"K)Ap#.$rD2#,2@"iJnE_(!1NBk,/T)*1$mHH#Y',DV&k*W'UE`N<.#*gne0c=oZ:MoS?)*;aLD_h%rQ;F\MYK#3.fHkkCK'(1$Z=in30e]C]A+V#q'-WZS\8DU[+&gOUW**A+oV9`H>C;iKG)3ZXVCb8d=@HLIC#j9<GjEZS%n_lPPQod5o`2-_%ZFNM3D)Tf^"(H"="d[$9#7ARN#F2R>,F5HhpLr%3AT`:`Hd+8*R`)0S>i_Z;$='i;a;X:J5%:2sa2^/EnT2Mh'B&2;c'@fP+n::kA/Sn'k)KVP*_41m*g_1\9]@&9jbnoe7j[PJG82bq;O:]_W2pu(0.rstmu_JsrWq39F"=`ud8PH3WL)2X/[U2;Xf;T@O;(B6AA9p#R;E4?%=tAnBg(_pnkb"#oOE"$-3;oSc#`mQ:j?,XI&hh0h.<js?ft&).rq4(pWM8%%k/VA9PF$B][1FO3Xs=T[6)p$LLHP\ZWn0.:/JZoqG)62p"1$Y!jK!Cn_2uCgnrCM<fYV<)V&"t?+0MbS@,1q>#ViW4>g_;!TbR/.6(C_G.&)gdT4>l94h(.;4uW@g37W*hFT_j:=;]]11=Td'\^&mC<9ZQ]e,($Bf:TX9535.[s97]8NTKhSB6OqVCGbO:MEV\2bdUb8leNK3469/]YG!;PE5c],_,nB-Q%:S%h=:ce_A4=@(pC#)4kb(cBsV+AU1?q%Dp"]rj3WdidT"gh^IRQZ"Z,e<91XQC@;.GTe*FFPFjaKQiMDm1iZ!F<+kK`UMI*O$?8jHPjM;0R3@ipoq*p2@$o1&#E%&j<P9lKD,n&IRB.)]0.+#ojJh?'[*j^SMbu)XEY8U&DgoaP&5?2F0O43ITZC;r36Ia9@]E4W(BRAc"NX1GQ,CgT5%=MdLt3W4*Y#YCj]O1$3Emq[c(<kR:=iP(Ol3&[NmDLhj]TbY7Zota]GokS5*USZFodgj\U^NQ+R^F@`DMG/1f!(,K7+kHh.";8S.0(eghH7rU^MON=FsJ',m.;HNuECVklTi0(Z:P9CG`<V:Q1he>WlQo&J=&uhq\*Af+1--NXpS[m@RWH!XQ3J4lF9])XJp=;RFlgFW/K:d^<@le=C,0KlSUl!C679\W"Hp4t9tMf4/+8<o(_;=KaJ\Uu^C-<JFHP!#%$,=-c:pJ_!E:N5:@i)rk.42?;B3fg/mZm%h)`8e//t8T!$a:P.VE,_[COk9P\eNPpY(@T[CnfhcAPU%1@<JsKt1fe\oUIH*?7cE6[YWYakt1/1;6aVi-5[28f/\aBiY%3ss^+@;/bdB58J*J-A:7VsMd<X#U$Zj"-YdTMfQK1V6*.E%;YKG%Jrbs^]:M,>O]8^,53`I.l/>1]6i@Y$*_HW*`sBi>ZcV,]e:Wa8:*0B>;qM*^4Hmu8XlLYcjl\L0URhNX@']hM#\C77Ef!37`K,ssfgNL==)OVEKW'Z&Yd$6<p8Zk%DT*#6R[5EbX12T3N\T*?DV'4JZq0'L5*3"73?eu1C5lAD'3UT9r,=UN>aD=Cr(]R`qs34FlkIO8,\CL)-7[J?\*/!4Bo(+JfH4-\1sPrR\)JE)<FRE.hnE$"@h@C^)FDXOL8idsO6:n3hCcZd+;;M=G\C"OYJ@=Ej]V/a_c0jg63ZK]LL\>ab6h5[Q(hAJimZ*T_&XR]s^a(*qaikOMp93]-b,JL%QK(-U1m/I&4r6-"tAgl*7o!7HV2T!YGqn-(*d:HB:E(mAd345Ehh'ob%bfn2b_I]-&7-c8g3<9c5JQPc8_-7OAeY9LRg.&Eo\?0BbF[oSP/R5;RM,?CuAj[^YS2eAZ4hs-m;m#>#9I)$to?'p7O#hY9**T[He9P#f:;Adh)2-uVWc"+NoXX5:o1R9/cVTHV)29pXA^+P(5!uST=gL$1k)#Y<NL44MhsG4n4oOTD00\)26JZc46<"Z,.9Qe)]T^D]_)kJs1tQPCg-gNJbVlk_3W+WJrr=jIOs=VF,GugBl=q.<Ksem7&?0H2UFbOm%EaiN6[:ba,BhRTf)o]\99"$gj%k;U+C!Z2`"JS-?Xcr$qX*[+np3u:QJSI+C[fKU'f^j\eLLqg)I@9Y)cm<h^V6b&"U-\1B2M8Q3g<=6&L\RB/9oY(-V,$a=MG!:"'MI])LQ)[!o`G]i/!HLpuaigou0<d(\,]GAh#$I&Nqi<\eq!bn[]!r:mI#?,S57\ebUR=@r'Tf(["&A_7i+6_(\<6<?dVV$"fdG4NJ+C1u_=;8,s-5b>'QrN!0"J"phX9+fXajZ4pG_n!!?ZbG9QoK`;&?2I4^O1JM:p[c#`[C!JTHEOFV3X"j-D[a_Zsb3FOMIur5FI%uHRj6V<>fW1X^4=-r44*@T,RHfZMELKZH8p?!'3OYah_T\!A,%kEg:)2F*:#RuK<O9:">Lf[u1;*VeAMUOKJi>lhSXcWMf%<T)PB7kmHM,_koj%.\Z]n]WU<KE<(B@"b*HN?u,q)_"=#-SM&u#_98qPV.<7=V<%2\YD`D&*B;9Nk3H/qSkd62R+o>t4\e!Y2dQWtefoBm1(%BX$9'GO,2&EAQhbUULl<sJ0Rgqqeq;mkhtbrr(S[^0hEa0c/$qn*gYKfnYCS8hs^?,`p6AtoK1Fp3G/iFSKM_sBRrV'pN[%U;XtaNF[adPE/38LdonU8=u,-#6\KV%kFIT0Weu&L\RB/9oY(-V,$a=MG!:&FJ-dlu_7J^+NZ8jajj>h:HIKEsettl'-k(@\ZYr]!Neoi9FL;R7#:[Vnlmb%p@D]%CX\aZ71$&:@QFh)R:h?FAtnNA`,*75hu7#[&<c-iih:oO6FIT-YZBLBuOGq[3*eJ,"MuG?31%%n<ISCTB-/hmS;3&lI1X*K5*WG$f%;L5LlYHIg4DP7L4i5".nNp<">lF5hGms[&<c-iih:oO6FIT-YZBLBuOGq[3*eJ,!hZ/eIM8[+##F#WCfj\QQ99?,m[(?PYsb;)p(4h4.bO#.K6G/X8"TJqCoV)g/IrREEDXH8+^2IZ?4phKs[am=Abj\?n5Aq@]=EA0/,C#gmWuhaBfejaNW_MTQD7%HM,_koj%.\Z]n]WU<KE<(B@"b*HN?u,q)_"=#-SM&u#_98qPV.<7=V29b7+6R#cSqB_UYQ']7_n0cIBU[hUYs=K3`G[i0,5\,OCip!f<0QC3u'QJVno;I)]*>1T7F@o0"=CF\#6>P)&MIb(DpjI;C!@pNhQobqWm$.`;0UQF3+&pBHA<ji0_B&R<j8]0mY\"tKroaY5"8BAsVW7!IIP"@-,e=reAC*dY!Pbf*D7%ZaP'G2`iTg9Lpf`~>endstream
-endobj
-11 0 obj
-<< /Contents 25 0 R /MediaBox [ 0 0 595.2756 841.8898 ] /Parent 21 0 R /Resources << /Font 1 0 R /ProcSet [ /PDF /Text /ImageB /ImageC /ImageI ] /XObject << /FormXob.a0ac99c367c05b5790e1730a8f1148ab 10 0 R >> >> /Rotate 0 /Trans <<  >>
-  /Type /Page >>
-endobj
-12 0 obj
-<< /Outlines 14 0 R /PageLabels 26 0 R /PageMode /UseNone /Pages 21 0 R /Type /Catalog >>
-endobj
-13 0 obj
-<< /Author () /CreationDate (D:20150717012256-01'00') /Creator (\(unspecified\)) /Keywords () /Producer (ReportLab PDF Library - www.reportlab.com) /Subject (\(unspecified\))
-  /Title () >>
-endobj
-14 0 obj
-<< /Count 8 /First 15 0 R /Last 20 0 R /Type /Outlines >>
-endobj
-15 0 obj
-<< /Count 4 /Dest [ 7 0 R /XYZ 62.69291 765.0236 0 ] /First 16 0 R /Last 19 0 R /Next 20 0 R /Parent 14 0 R
-  /Title (com.informatimago.common-lisp version 1.2) >>
-endobj
-16 0 obj
-<< /Count 2 /Dest [ 7 0 R /XYZ 62.69291 558.0236 0 ] /First 17 0 R /Last 18 0 R /Next 19 0 R /Parent 15 0 R
-  /Title (Compilation) >>
-endobj
-17 0 obj
-<< /Dest [ 7 0 R /XYZ 62.69291 480.0236 0 ] /Next 18 0 R /Parent 16 0 R /Title (Compilation with the compile-with-asdf.lisp script) >>
-endobj
-18 0 obj
-<< /Dest [ 7 0 R /XYZ 62.69291 183.8236 0 ] /Parent 16 0 R /Prev 17 0 R /Title (Compilation directly with ASDF) >>
-endobj
-19 0 obj
-<< /Dest [ 8 0 R /XYZ 62.69291 765.0236 0 ] /Parent 15 0 R /Prev 16 0 R /Title (Description of the sublibraries) >>
-endobj
-20 0 obj
-<< /Dest [ 11 0 R /XYZ 62.69291 741.0236 0 ] /Parent 14 0 R /Prev 15 0 R /Title (Dependencies of the sub-libraries) >>
-endobj
-21 0 obj
-<< /Count 4 /Kids [ 7 0 R 8 0 R 9 0 R 11 0 R ] /Type /Pages >>
-endobj
-22 0 obj
-<< /Length 5680 >>
-stream
-1 0 0 1 0 0 cm  BT /F1 12 Tf 14.4 TL ET
-q
-1 0 0 1 62.69291 744.0236 cm
-q
-BT 1 0 0 1 0 3.5 Tm 21 TL /F2 17.5 Tf 0 0 0 rg (com.informatimago.common-lisp ) Tj /F3 17.5 Tf 0 0 0 rg (version 1.2) Tj T* ET
-Q
-Q
-q
-1 0 0 1 62.69291 726.0236 cm
-q
-0 0 0 rg
-BT 1 0 0 1 0 2 Tm /F1 10 Tf 12 TL (The packages provided by this library should be PURE conformant Common Lisp packages.) Tj T* ET
-Q
-Q
-q
-1 0 0 1 62.69291 660.0236 cm
-q
-0 0 0 rg
-BT 1 0 0 1 0 50 Tm /F1 10 Tf 12 TL .498651 Tw (They should compile and run in all Common Lisp compliant implementations, and should have make use) Tj T* 0 Tw .658443 Tw (of no external package \(eg. compatibility library\) and no other \(implementation dependant\) package than) Tj T* 0 Tw 1.280751 Tw (COMMON-LISP. They should not use #+/#- to activate or disable implementation specific code. [There) Tj T* 0 Tw 1.230814 Tw (remains some packages using #+/#- with implementations specific variants, we're working on removing) Tj T* 0 Tw (these forms].) Tj T* ET
-Q
-Q
-q
-1 0 0 1 62.69291 630.0236 cm
-q
-BT 1 0 0 1 0 14 Tm 3.259979 Tw 12 TL /F1 10 Tf 0 0 0 rg (This new version of the ) Tj /F2 10 Tf 0 0 0 rg (com.informatimago.common-lisp ) Tj /F1 10 Tf 0 0 0 rg (library has been restructured into various) Tj T* 0 Tw (sub-libraries, each with its own ASD file.) Tj T* ET
-Q
-Q
-q
-1 0 0 1 62.69291 600.0236 cm
-q
-0 0 0 rg
-BT 1 0 0 1 0 14 Tm /F1 10 Tf 12 TL .094269 Tw (This should help managing the dependencies between the individual sub-libraries, and promote the use of) Tj T* 0 Tw (the most interesting of them.) Tj T* ET
-Q
-Q
-q
-1 0 0 1 62.69291 570.0236 cm
-q
-BT 1 0 0 1 0 14 Tm 4.621953 Tw 12 TL /F2 10 Tf 0 0 0 rg (com.informatimago.common-lisp.lisp-sexp ) Tj /F1 10 Tf 0 0 0 rg (and ) Tj /F2 10 Tf 0 0 0 rg (com.informatimago.common-lisp.cesarum ) Tj /F1 10 Tf 0 0 0 rg (are the two) Tj T* 0 Tw (base sublibraries, almost all of the others use them.) Tj T* ET
-Q
-Q
-q
-1 0 0 1 62.69291 540.0236 cm
-q
-BT 1 0 0 1 0 3 Tm 18 TL /F3 15 Tf 0 0 0 rg (Compilation) Tj T* ET
-Q
-Q
-q
-1 0 0 1 62.69291 510.0236 cm
-q
-0 0 0 rg
-BT 1 0 0 1 0 14 Tm /F1 10 Tf 12 TL 1.552339 Tw (Starting with version 1.2 of this library, ASDF systems are provided to allow for an easy and modular) Tj T* 0 Tw (compilation.) Tj T* ET
-Q
-Q
-q
-1 0 0 1 62.69291 492.0236 cm
-q
-BT 1 0 0 1 0 2 Tm 12 TL /F2 10 Tf 0 0 0 rg (compile.lisp ) Tj /F1 10 Tf 0 0 0 rg (should not be used anymore \(until upgraded\). ) Tj /F2 10 Tf 0 0 0 rg (make-depends.lisp ) Tj /F1 10 Tf 0 0 0 rg (needs an upgrade too.) Tj T* ET
-Q
-Q
-q
-1 0 0 1 62.69291 465.0236 cm
-q
-BT 1 0 0 1 0 2.5 Tm 15 TL /F4 12.5 Tf 0 0 0 rg (Compilation with the ) Tj /F2 12.5 Tf 0 0 0 rg (compile-with-asdf.lisp ) Tj /F4 12.5 Tf 0 0 0 rg (script) Tj T* ET
-Q
-Q
-q
-1 0 0 1 62.69291 435.0236 cm
-q
-BT 1 0 0 1 0 14 Tm .10311 Tw 12 TL /F1 10 Tf 0 0 0 rg (On implementations that don't provide \(yet\) ASDF, you need to indicate what asdf.lisp file must be loaded,) Tj T* 0 Tw (by setting the ) Tj /F2 10 Tf 0 0 0 rg (cl-user::*asdf-source* ) Tj /F1 10 Tf 0 0 0 rg (variable.) Tj T* ET
-Q
-Q
-q
-1 0 0 1 62.69291 405.0236 cm
-q
-BT 1 0 0 1 0 14 Tm 5.055318 Tw 12 TL /F1 10 Tf 0 0 0 rg (The path to the asdf-binary-locations directory \(where the .asd file lies\) must be set to the) Tj T* 0 Tw /F2 10 Tf 0 0 0 rg (cl-user::*asdf-binary-locations-directory* ) Tj /F1 10 Tf 0 0 0 rg (variable.) Tj T* ET
-Q
-Q
-q
-1 0 0 1 62.69291 387.0236 cm
-q
-0 0 0 rg
-BT 1 0 0 1 0 2 Tm /F1 10 Tf 12 TL (Then the compile-with-asdf.lisp script can be loaded:) Tj T* ET
-Q
-Q
-q
-1 0 0 1 62.69291 257.8236 cm
-q
-q
-1 0 0 1 0 0 cm
-q
-1 0 0 1 6.6 6.6 cm
-q
-.662745 .662745 .662745 RG
-.5 w
-.960784 .960784 .862745 rg
-n -6 -6 588 120 re B*
-Q
-q
-0 0 0 rg
-BT 1 0 0 1 0 98 Tm /F5 10 Tf 12 TL (\(in-package :cl-user\)) Tj T*  T* (\(defvar *asdf-source*) Tj T* (  #P"/data/lisp/packages/net/common-lisp/projects/asdf/asdf/asdf.lisp"\)) Tj T*  T* (\(defvar *asdf-binary-locations-directory*) Tj T* (  #P"/data/lisp/packages/net/common-lisp/projects/asdf-binary-locations/asdf-binary-locations/"\)) Tj T*  T* (\(load "compile-with-asdf.lisp"\)) Tj T* ET
-Q
-Q
-Q
-Q
-Q
-q
-1 0 0 1 62.69291 225.8236 cm
-q
-BT 1 0 0 1 0 14 Tm 1.209269 Tw 12 TL /F1 10 Tf 0 0 0 rg (It will add to ) Tj /F2 10 Tf 0 0 0 rg (asdf:*central-registry* ) Tj /F1 10 Tf 0 0 0 rg (the current directory and its subdirectories containing .asd files, and) Tj T* 0 Tw (asdf:load-op the ) Tj /F2 10 Tf 0 0 0 rg (:com.informatimago.common-lisp ) Tj /F1 10 Tf 0 0 0 rg (system, which depends on all the sublibrary systems.) Tj T* ET
-Q
-Q
-q
-1 0 0 1 62.69291 195.8236 cm
-q
-BT 1 0 0 1 0 14 Tm 2.314651 Tw 12 TL /F1 10 Tf 0 0 0 rg (If the variables are set correctly in ) Tj /F2 10 Tf 0 0 0 rg (compile-with-asdf.lisp) Tj /F1 10 Tf 0 0 0 rg (, then the ) Tj /F2 10 Tf 0 0 0 rg (compile.sh ) Tj /F1 10 Tf 0 0 0 rg (script can be used to) Tj T* 0 Tw (compile it with ccl, clisp, ecl and sbcl, which are the four implementations tested so far.) Tj T* ET
-Q
-Q
-q
-1 0 0 1 62.69291 168.8236 cm
-q
-BT 1 0 0 1 0 2.5 Tm 15 TL /F4 12.5 Tf 0 0 0 rg (Compilation directly with ASDF) Tj T* ET
-Q
-Q
-q
-1 0 0 1 62.69291 138.8236 cm
-q
-BT 1 0 0 1 0 14 Tm .509431 Tw 12 TL /F1 10 Tf 0 0 0 rg (You can compile directly with ASDF, either by setting up symbolic links of the .asd files to a site-systems) Tj T* 0 Tw (directory, or adding the directories where these .asd files lie to the ) Tj /F2 10 Tf 0 0 0 rg (asdf:*central-registry*.) Tj T* ET
-Q
-Q
-q
-1 0 0 1 62.69291 120.8236 cm
-q
-0 0 0 rg
-BT 1 0 0 1 0 2 Tm /F1 10 Tf 12 TL (It is advised to used asdf-binary-locations or ASDF-2 to have the objects placed in a good location.) Tj T* ET
-Q
-Q
-
-endstream
-endobj
-23 0 obj
-<< /Length 6936 >>
-stream
-1 0 0 1 0 0 cm  BT /F1 12 Tf 14.4 TL ET
-q
-1 0 0 1 62.69291 747.0236 cm
-q
-BT 1 0 0 1 0 3 Tm 18 TL /F3 15 Tf 0 0 0 rg (Description of the sublibraries) Tj T* ET
-Q
-Q
-q
-1 0 0 1 62.69291 717.0236 cm
-q
-0 0 0 rg
-BT 1 0 0 1 0 14 Tm /F1 10 Tf 12 TL .242339 Tw (Here is a short description of each sublibrary. See inside for details about the packages provided. The file) Tj T* 0 Tw (system-graph.ps gives the dependencies between these sublibraries.) Tj T* ET
-Q
-Q
-q
-1 0 0 1 62.69291 699.0236 cm
-q
-0 0 0 rg
-BT 1 0 0 1 0 2 Tm /F1 10 Tf 12 TL (lisp-sexp/) Tj T* ET
-Q
-Q
-q
-1 0 0 1 62.69291 693.0236 cm
-Q
-q
-1 0 0 1 62.69291 663.0236 cm
-0 0 0 rg
-BT /F1 10 Tf 12 TL ET
-BT 1 0 0 1 0 2 Tm  T* ET
-q
-1 0 0 1 20 18 cm
-q
-0 0 0 rg
-BT 1 0 0 1 0 2 Tm /F1 10 Tf 12 TL (com.informatimago.common-lisp.lisp-sexp.source-form) Tj T* ET
-Q
-Q
-q
-1 0 0 1 20 0 cm
-q
-0 0 0 rg
-BT 1 0 0 1 0 2 Tm /F1 10 Tf 12 TL (Functions to parse and manipulate Common Lisp sources as lisp forms \(such as in macros\).) Tj T* ET
-Q
-Q
-q
-Q
-Q
-q
-1 0 0 1 62.69291 663.0236 cm
-Q
-q
-1 0 0 1 62.69291 645.0236 cm
-q
-0 0 0 rg
-BT 1 0 0 1 0 2 Tm /F1 10 Tf 12 TL (lisp-reader/) Tj T* ET
-Q
-Q
-q
-1 0 0 1 62.69291 639.0236 cm
-Q
-q
-1 0 0 1 62.69291 609.0236 cm
-0 0 0 rg
-BT /F1 10 Tf 12 TL ET
-BT 1 0 0 1 0 2 Tm  T* ET
-q
-1 0 0 1 20 18 cm
-q
-0 0 0 rg
-BT 1 0 0 1 0 2 Tm /F1 10 Tf 12 TL (com.informatimago.common-lisp.lisp-reader.reader) Tj T* ET
-Q
-Q
-q
-1 0 0 1 20 0 cm
-q
-0 0 0 rg
-BT 1 0 0 1 0 2 Tm /F1 10 Tf 12 TL (A Common Lisp reader, with some extensions \(hooks to parse tokens\).) Tj T* ET
-Q
-Q
-q
-Q
-Q
-q
-1 0 0 1 62.69291 609.0236 cm
-Q
-q
-1 0 0 1 62.69291 591.0236 cm
-q
-0 0 0 rg
-BT 1 0 0 1 0 2 Tm /F1 10 Tf 12 TL (lisp-text/) Tj T* ET
-Q
-Q
-q
-1 0 0 1 62.69291 585.0236 cm
-Q
-q
-1 0 0 1 62.69291 531.0236 cm
-0 0 0 rg
-BT /F1 10 Tf 12 TL ET
-BT 1 0 0 1 0 2 Tm  T* ET
-q
-1 0 0 1 20 42 cm
-q
-0 0 0 rg
-BT 1 0 0 1 0 2 Tm /F1 10 Tf 12 TL (com.informatimago.common-lisp.lisp-text.source-text) Tj T* ET
-Q
-Q
-q
-1 0 0 1 20 0 cm
-q
-0 0 0 rg
-BT 1 0 0 1 0 26 Tm /F1 10 Tf 12 TL 2.200697 Tw (This package exports functions to read and manipulate Common Lisp sources. Most of the text) Tj T* 0 Tw .177126 Tw (source properties are kept \(file position, line number, comments, feature tests, etc\), while no package) Tj T* 0 Tw (is created and no symbol is interned.) Tj T* ET
-Q
-Q
-q
-Q
-Q
-q
-1 0 0 1 62.69291 531.0236 cm
-Q
-q
-1 0 0 1 62.69291 513.0236 cm
-q
-0 0 0 rg
-BT 1 0 0 1 0 2 Tm /F1 10 Tf 12 TL (lisp/) Tj T* ET
-Q
-Q
-q
-1 0 0 1 62.69291 507.0236 cm
-Q
-q
-1 0 0 1 62.69291 447.0236 cm
-0 0 0 rg
-BT /F1 10 Tf 12 TL ET
-BT 1 0 0 1 0 2 Tm  T* ET
-q
-1 0 0 1 20 48 cm
-q
-0 0 0 rg
-BT 1 0 0 1 0 2 Tm /F1 10 Tf 12 TL (com.informatimago.common-lisp.lisp.generic-cl) Tj T* ET
-Q
-Q
-q
-1 0 0 1 20 30 cm
-q
-0 0 0 rg
-BT 1 0 0 1 0 2 Tm /F1 10 Tf 12 TL (This system provides various lisp packages or implementations.) Tj T* ET
-Q
-Q
-q
-1 0 0 1 20 0 cm
-q
-0 0 0 rg
-BT 1 0 0 1 0 14 Tm /F1 10 Tf 12 TL 1.090751 Tw (generic-cl provides a package with the same symbols as COMMON-LISP, but whose functions are) Tj T* 0 Tw (replaced by equivalent generic functions.) Tj T* ET
-Q
-Q
-q
-Q
-Q
-q
-1 0 0 1 62.69291 447.0236 cm
-Q
-q
-1 0 0 1 62.69291 429.0236 cm
-q
-0 0 0 rg
-BT 1 0 0 1 0 2 Tm /F1 10 Tf 12 TL (cesarum/) Tj T* ET
-Q
-Q
-q
-1 0 0 1 62.69291 423.0236 cm
-Q
-q
-1 0 0 1 62.69291 357.0236 cm
-0 0 0 rg
-BT /F1 10 Tf 12 TL ET
-BT 1 0 0 1 0 2 Tm  T* ET
-q
-1 0 0 1 20 54 cm
-q
-0 0 0 rg
-BT 1 0 0 1 0 2 Tm /F1 10 Tf 12 TL (com.informatimago.common-lisp.cesarum.utility et al.) Tj T* ET
-Q
-Q
-q
-1 0 0 1 20 0 cm
-q
-0 0 0 rg
-BT 1 0 0 1 0 38 Tm /F1 10 Tf 12 TL 2.20284 Tw (This sytem provies various utilities and extensions to Common Lisp. There are set of packages) Tj T* 0 Tw 1.550814 Tw (corresponding to Common Lisp chapters \(package, list, string, array, etc\), extending the Common) Tj T* 0 Tw 1.921412 Tw (Lisp types with useful functions. And there are additionnal abstract data types or data structures) Tj T* 0 Tw (\(dictionary, graph, left-leaning red-black trees\).) Tj T* ET
-Q
-Q
-q
-Q
-Q
-q
-1 0 0 1 62.69291 357.0236 cm
-Q
-q
-1 0 0 1 62.69291 339.0236 cm
-q
-0 0 0 rg
-BT 1 0 0 1 0 2 Tm /F1 10 Tf 12 TL (file/) Tj T* ET
-Q
-Q
-q
-1 0 0 1 62.69291 333.0236 cm
-Q
-q
-1 0 0 1 62.69291 303.0236 cm
-0 0 0 rg
-BT /F1 10 Tf 12 TL ET
-BT 1 0 0 1 0 2 Tm  T* ET
-q
-1 0 0 1 20 18 cm
-q
-0 0 0 rg
-BT 1 0 0 1 0 2 Tm /F1 10 Tf 12 TL (com.informatimago.common-lisp.file.file) Tj T* ET
-Q
-Q
-q
-1 0 0 1 20 0 cm
-q
-0 0 0 rg
-BT 1 0 0 1 0 2 Tm /F1 10 Tf 12 TL (Various utility to deal with files and streams.) Tj T* ET
-Q
-Q
-q
-Q
-Q
-q
-1 0 0 1 62.69291 303.0236 cm
-Q
-q
-1 0 0 1 62.69291 285.0236 cm
-q
-0 0 0 rg
-BT 1 0 0 1 0 2 Tm /F1 10 Tf 12 TL (arithmetic/) Tj T* ET
-Q
-Q
-q
-1 0 0 1 62.69291 279.0236 cm
-Q
-q
-1 0 0 1 62.69291 237.0236 cm
-0 0 0 rg
-BT /F1 10 Tf 12 TL ET
-BT 1 0 0 1 0 2 Tm  T* ET
-q
-1 0 0 1 20 30 cm
-q
-0 0 0 rg
-BT 1 0 0 1 0 2 Tm /F1 10 Tf 12 TL (com.informatimago.common-lisp.aritmethic.primes) Tj T* ET
-Q
-Q
-q
-1 0 0 1 20 0 cm
-q
-0 0 0 rg
-BT 1 0 0 1 0 14 Tm /F1 10 Tf 12 TL 1.051412 Tw (Various arithmetic utilities. For now, we have a package to compute primes \(Eratostene sieve\) and) Tj T* 0 Tw (factorize integers.) Tj T* ET
-Q
-Q
-q
-Q
-Q
-q
-1 0 0 1 62.69291 237.0236 cm
-Q
-q
-1 0 0 1 62.69291 219.0236 cm
-q
-0 0 0 rg
-BT 1 0 0 1 0 2 Tm /F1 10 Tf 12 TL (data-encoding/) Tj T* ET
-Q
-Q
-q
-1 0 0 1 62.69291 213.0236 cm
-Q
-q
-1 0 0 1 62.69291 183.0236 cm
-0 0 0 rg
-BT /F1 10 Tf 12 TL ET
-BT 1 0 0 1 0 2 Tm  T* ET
-q
-1 0 0 1 20 18 cm
-q
-0 0 0 rg
-BT 1 0 0 1 0 2 Tm /F1 10 Tf 12 TL (com.informatimago.common-lisp.data-encoding.data-encoding) Tj T* ET
-Q
-Q
-q
-1 0 0 1 20 0 cm
-q
-0 0 0 rg
-BT 1 0 0 1 0 2 Tm /F1 10 Tf 12 TL (A serializer/deserializer for lisp data.) Tj T* ET
-Q
-Q
-q
-Q
-Q
-q
-1 0 0 1 62.69291 183.0236 cm
-Q
-q
-1 0 0 1 62.69291 165.0236 cm
-q
-0 0 0 rg
-BT 1 0 0 1 0 2 Tm /F1 10 Tf 12 TL (heap/) Tj T* ET
-Q
-Q
-q
-1 0 0 1 62.69291 159.0236 cm
-Q
-q
-1 0 0 1 62.69291 135.0236 cm
-0 0 0 rg
-BT /F1 10 Tf 12 TL ET
-BT 1 0 0 1 0 2 Tm  T* ET
-q
-1 0 0 1 20 0 cm
-q
-0 0 0 rg
-BT 1 0 0 1 0 14 Tm /F1 10 Tf 12 TL 1.064198 Tw (A garbage collector for a heap of lisp data. \(The purpose is to be used to share lisp data amongst) Tj T* 0 Tw (different processes using shared memory\).) Tj T* ET
-Q
-Q
-q
-Q
-Q
-q
-1 0 0 1 62.69291 135.0236 cm
-Q
-q
-1 0 0 1 62.69291 117.0236 cm
-q
-0 0 0 rg
-BT 1 0 0 1 0 2 Tm /F1 10 Tf 12 TL (csv/) Tj T* ET
-Q
-Q
-q
-1 0 0 1 62.69291 111.0236 cm
-Q
-q
-1 0 0 1 62.69291 81.02362 cm
-0 0 0 rg
-BT /F1 10 Tf 12 TL ET
-BT 1 0 0 1 0 2 Tm  T* ET
-q
-1 0 0 1 20 18 cm
-q
-0 0 0 rg
-BT 1 0 0 1 0 2 Tm /F1 10 Tf 12 TL (com.informatimago.common-lisp.csv.csv) Tj T* ET
-Q
-Q
-q
-1 0 0 1 20 0 cm
-q
-0 0 0 rg
-BT 1 0 0 1 0 2 Tm /F1 10 Tf 12 TL (The CSV file format.) Tj T* ET
-Q
-Q
-q
-Q
-Q
-q
-1 0 0 1 62.69291 81.02362 cm
-Q
-
-endstream
-endobj
-24 0 obj
-<< /Length 7705 >>
-stream
-1 0 0 1 0 0 cm  BT /F1 12 Tf 14.4 TL ET
-q
-1 0 0 1 62.69291 753.0236 cm
-q
-0 0 0 rg
-BT 1 0 0 1 0 2 Tm /F1 10 Tf 12 TL (bank/) Tj T* ET
-Q
-Q
-q
-1 0 0 1 62.69291 747.0236 cm
-Q
-q
-1 0 0 1 62.69291 705.0236 cm
-0 0 0 rg
-BT /F1 10 Tf 12 TL ET
-BT 1 0 0 1 0 2 Tm  T* ET
-q
-1 0 0 1 20 30 cm
-q
-0 0 0 rg
-BT 1 0 0 1 0 2 Tm /F1 10 Tf 12 TL (com.informatimago.common-lisp.bank.iban) Tj T* ET
-Q
-Q
-q
-1 0 0 1 20 0 cm
-q
-0 0 0 rg
-BT 1 0 0 1 0 14 Tm /F1 10 Tf 12 TL 1.089984 Tw (A package to deal with IBAN \(Internationnal Bank Account Numbers\) and another to deal with RIB) Tj T* 0 Tw (\(Relev\351 d'Identit\351 Bancaire\) which are the French account numbers.) Tj T* ET
-Q
-Q
-q
-Q
-Q
-q
-1 0 0 1 62.69291 705.0236 cm
-Q
-q
-1 0 0 1 62.69291 687.0236 cm
-q
-0 0 0 rg
-BT 1 0 0 1 0 2 Tm /F1 10 Tf 12 TL (picture/) Tj T* ET
-Q
-Q
-q
-1 0 0 1 62.69291 681.0236 cm
-Q
-q
-1 0 0 1 62.69291 669.0236 cm
-0 0 0 rg
-BT /F1 10 Tf 12 TL ET
-BT 1 0 0 1 0 2 Tm  T* ET
-q
-1 0 0 1 20 0 cm
-q
-0 0 0 rg
-BT 1 0 0 1 0 2 Tm /F1 10 Tf 12 TL (A ASCII-art picture package, with packages to draw lisp lists and trees.) Tj T* ET
-Q
-Q
-q
-Q
-Q
-q
-1 0 0 1 62.69291 669.0236 cm
-Q
-q
-1 0 0 1 62.69291 651.0236 cm
-q
-0 0 0 rg
-BT 1 0 0 1 0 2 Tm /F1 10 Tf 12 TL (rfc2822/) Tj T* ET
-Q
-Q
-q
-1 0 0 1 62.69291 645.0236 cm
-Q
-q
-1 0 0 1 62.69291 633.0236 cm
-0 0 0 rg
-BT /F1 10 Tf 12 TL ET
-BT 1 0 0 1 0 2 Tm  T* ET
-q
-1 0 0 1 20 0 cm
-q
-0 0 0 rg
-BT 1 0 0 1 0 2 Tm /F1 10 Tf 12 TL (Utilities to deal with RFC-2822 message formats.) Tj T* ET
-Q
-Q
-q
-Q
-Q
-q
-1 0 0 1 62.69291 633.0236 cm
-Q
-q
-1 0 0 1 62.69291 615.0236 cm
-q
-0 0 0 rg
-BT 1 0 0 1 0 2 Tm /F1 10 Tf 12 TL (rfc3548/) Tj T* ET
-Q
-Q
-q
-1 0 0 1 62.69291 609.0236 cm
-Q
-q
-1 0 0 1 62.69291 567.0236 cm
-0 0 0 rg
-BT /F1 10 Tf 12 TL ET
-BT 1 0 0 1 0 2 Tm  T* ET
-q
-1 0 0 1 20 18 cm
-q
-0 0 0 rg
-BT 1 0 0 1 0 14 Tm /F1 10 Tf 12 TL 3.350751 Tw (This packages exports functions to encode an decode text blocks according to the encoding) Tj T* 0 Tw (described in:) Tj T* ET
-Q
-Q
-q
-1 0 0 1 20 12 cm
-Q
-q
-1 0 0 1 20 0 cm
-0 0 0 rg
-BT /F1 10 Tf 12 TL ET
-BT 1 0 0 1 0 2 Tm  T* ET
-q
-1 0 0 1 20 0 cm
-q
-0 0 0 rg
-BT 1 0 0 1 0 2 Tm /F1 10 Tf 12 TL (RFC3548: The Base16, Base32, and Base64 Data Encodings) Tj T* ET
-Q
-Q
-q
-Q
-Q
-q
-1 0 0 1 20 0 cm
-Q
-q
-Q
-Q
-q
-1 0 0 1 62.69291 567.0236 cm
-Q
-q
-1 0 0 1 62.69291 549.0236 cm
-q
-0 0 0 rg
-BT 1 0 0 1 0 2 Tm /F1 10 Tf 12 TL (unix/) Tj T* ET
-Q
-Q
-q
-1 0 0 1 62.69291 543.0236 cm
-Q
-q
-1 0 0 1 62.69291 531.0236 cm
-0 0 0 rg
-BT /F1 10 Tf 12 TL ET
-BT 1 0 0 1 0 2 Tm  T* ET
-q
-1 0 0 1 20 0 cm
-q
-0 0 0 rg
-BT 1 0 0 1 0 2 Tm /F1 10 Tf 12 TL (Packages to read unix administration files /etc/group /etc/passwd and /etc/aliases.) Tj T* ET
-Q
-Q
-q
-Q
-Q
-q
-1 0 0 1 62.69291 531.0236 cm
-Q
-q
-1 0 0 1 62.69291 513.0236 cm
-q
-0 0 0 rg
-BT 1 0 0 1 0 2 Tm /F1 10 Tf 12 TL (html-base/) Tj T* ET
-Q
-Q
-q
-1 0 0 1 62.69291 507.0236 cm
-Q
-q
-1 0 0 1 62.69291 495.0236 cm
-0 0 0 rg
-BT /F1 10 Tf 12 TL ET
-BT 1 0 0 1 0 2 Tm  T* ET
-q
-1 0 0 1 20 0 cm
-q
-0 0 0 rg
-BT 1 0 0 1 0 2 Tm /F1 10 Tf 12 TL (Some common HTML packages.) Tj T* ET
-Q
-Q
-q
-Q
-Q
-q
-1 0 0 1 62.69291 495.0236 cm
-Q
-q
-1 0 0 1 62.69291 477.0236 cm
-q
-0 0 0 rg
-BT 1 0 0 1 0 2 Tm /F1 10 Tf 12 TL (html-generator/) Tj T* ET
-Q
-Q
-q
-1 0 0 1 62.69291 471.0236 cm
-Q
-q
-1 0 0 1 62.69291 459.0236 cm
-0 0 0 rg
-BT /F1 10 Tf 12 TL ET
-BT 1 0 0 1 0 2 Tm  T* ET
-q
-1 0 0 1 20 0 cm
-q
-0 0 0 rg
-BT 1 0 0 1 0 2 Tm /F1 10 Tf 12 TL (An HTML generator.) Tj T* ET
-Q
-Q
-q
-Q
-Q
-q
-1 0 0 1 62.69291 459.0236 cm
-Q
-q
-1 0 0 1 62.69291 441.0236 cm
-q
-0 0 0 rg
-BT 1 0 0 1 0 2 Tm /F1 10 Tf 12 TL (html-parser/) Tj T* ET
-Q
-Q
-q
-1 0 0 1 62.69291 435.0236 cm
-Q
-q
-1 0 0 1 62.69291 423.0236 cm
-0 0 0 rg
-BT /F1 10 Tf 12 TL ET
-BT 1 0 0 1 0 2 Tm  T* ET
-q
-1 0 0 1 20 0 cm
-q
-0 0 0 rg
-BT 1 0 0 1 0 2 Tm /F1 10 Tf 12 TL (An HTML parser.) Tj T* ET
-Q
-Q
-q
-Q
-Q
-q
-1 0 0 1 62.69291 423.0236 cm
-Q
-q
-1 0 0 1 62.69291 405.0236 cm
-q
-0 0 0 rg
-BT 1 0 0 1 0 2 Tm /F1 10 Tf 12 TL (http/) Tj T* ET
-Q
-Q
-q
-1 0 0 1 62.69291 399.0236 cm
-Q
-q
-1 0 0 1 62.69291 387.0236 cm
-0 0 0 rg
-BT /F1 10 Tf 12 TL ET
-BT 1 0 0 1 0 2 Tm  T* ET
-q
-1 0 0 1 20 0 cm
-q
-0 0 0 rg
-BT 1 0 0 1 0 2 Tm /F1 10 Tf 12 TL (Some utilities for HTTP processing.) Tj T* ET
-Q
-Q
-q
-Q
-Q
-q
-1 0 0 1 62.69291 387.0236 cm
-Q
-q
-1 0 0 1 62.69291 369.0236 cm
-q
-0 0 0 rg
-BT 1 0 0 1 0 2 Tm /F1 10 Tf 12 TL (diagram/) Tj T* ET
-Q
-Q
-q
-1 0 0 1 62.69291 363.0236 cm
-Q
-q
-1 0 0 1 62.69291 351.0236 cm
-0 0 0 rg
-BT /F1 10 Tf 12 TL ET
-BT 1 0 0 1 0 2 Tm  T* ET
-q
-1 0 0 1 20 0 cm
-q
-0 0 0 rg
-BT 1 0 0 1 0 2 Tm /F1 10 Tf 12 TL (Some packages generating Diagram! 2.0 files \(ancestor to OmniGrafle\).) Tj T* ET
-Q
-Q
-q
-Q
-Q
-q
-1 0 0 1 62.69291 351.0236 cm
-Q
-q
-1 0 0 1 62.69291 333.0236 cm
-q
-0 0 0 rg
-BT 1 0 0 1 0 2 Tm /F1 10 Tf 12 TL (graphviz/) Tj T* ET
-Q
-Q
-q
-1 0 0 1 62.69291 327.0236 cm
-Q
-q
-1 0 0 1 62.69291 315.0236 cm
-0 0 0 rg
-BT /F1 10 Tf 12 TL ET
-BT 1 0 0 1 0 2 Tm  T* ET
-q
-1 0 0 1 20 0 cm
-q
-0 0 0 rg
-BT 1 0 0 1 0 2 Tm /F1 10 Tf 12 TL (Generates GraphViz .dot files from com.informatimago.common-lisp.cesarum.graph objects.) Tj T* ET
-Q
-Q
-q
-Q
-Q
-q
-1 0 0 1 62.69291 315.0236 cm
-Q
-q
-1 0 0 1 62.69291 297.0236 cm
-q
-0 0 0 rg
-BT 1 0 0 1 0 2 Tm /F1 10 Tf 12 TL (interactive/) Tj T* ET
-Q
-Q
-q
-1 0 0 1 62.69291 291.0236 cm
-Q
-q
-1 0 0 1 62.69291 279.0236 cm
-0 0 0 rg
-BT /F1 10 Tf 12 TL ET
-BT 1 0 0 1 0 2 Tm  T* ET
-q
-1 0 0 1 20 0 cm
-q
-0 0 0 rg
-BT 1 0 0 1 0 2 Tm /F1 10 Tf 12 TL (Interactive commands \(to be used at the REPL\).) Tj T* ET
-Q
-Q
-q
-Q
-Q
-q
-1 0 0 1 62.69291 279.0236 cm
-Q
-q
-1 0 0 1 62.69291 261.0236 cm
-q
-0 0 0 rg
-BT 1 0 0 1 0 2 Tm /F1 10 Tf 12 TL (invoice/) Tj T* ET
-Q
-Q
-q
-1 0 0 1 62.69291 255.0236 cm
-Q
-q
-1 0 0 1 62.69291 231.0236 cm
-0 0 0 rg
-BT /F1 10 Tf 12 TL ET
-BT 1 0 0 1 0 2 Tm  T* ET
-q
-1 0 0 1 20 0 cm
-q
-0 0 0 rg
-BT 1 0 0 1 0 14 Tm /F1 10 Tf 12 TL 1.799318 Tw (Process and generate invoices. \(I don't use it anymore. There's a Devise datatype with a reader) Tj T* 0 Tw (macro that should be extracted to be reused\).) Tj T* ET
-Q
-Q
-q
-Q
-Q
-q
-1 0 0 1 62.69291 231.0236 cm
-Q
-q
-1 0 0 1 62.69291 213.0236 cm
-q
-0 0 0 rg
-BT 1 0 0 1 0 2 Tm /F1 10 Tf 12 TL (regexp/) Tj T* ET
-Q
-Q
-q
-1 0 0 1 62.69291 207.0236 cm
-Q
-q
-1 0 0 1 62.69291 195.0236 cm
-0 0 0 rg
-BT /F1 10 Tf 12 TL ET
-BT 1 0 0 1 0 2 Tm  T* ET
-q
-1 0 0 1 20 0 cm
-q
-0 0 0 rg
-BT 1 0 0 1 0 2 Tm /F1 10 Tf 12 TL (An implementation of POSIX regexps and of EMACS regexps \(both incomplete\).) Tj T* ET
-Q
-Q
-q
-Q
-Q
-q
-1 0 0 1 62.69291 195.0236 cm
-Q
-q
-1 0 0 1 62.69291 177.0236 cm
-q
-0 0 0 rg
-BT 1 0 0 1 0 2 Tm /F1 10 Tf 12 TL (ed/) Tj T* ET
-Q
-Q
-q
-1 0 0 1 62.69291 171.0236 cm
-Q
-q
-1 0 0 1 62.69291 147.0236 cm
-0 0 0 rg
-BT /F1 10 Tf 12 TL ET
-BT 1 0 0 1 0 2 Tm  T* ET
-q
-1 0 0 1 20 0 cm
-q
-0 0 0 rg
-BT 1 0 0 1 0 14 Tm /F1 10 Tf 12 TL .69284 Tw (An implementation of ed\(1\) \(lacks only regular expressions, to be provided eventually by the regexp) Tj T* 0 Tw (sublibrary\).) Tj T* ET
-Q
-Q
-q
-Q
-Q
-q
-1 0 0 1 62.69291 147.0236 cm
-Q
-q
-1 0 0 1 62.69291 129.0236 cm
-q
-0 0 0 rg
-BT 1 0 0 1 0 2 Tm /F1 10 Tf 12 TL (cxx/) Tj T* ET
-Q
-Q
-q
-1 0 0 1 62.69291 123.0236 cm
-Q
-q
-1 0 0 1 62.69291 111.0236 cm
-0 0 0 rg
-BT /F1 10 Tf 12 TL ET
-BT 1 0 0 1 0 2 Tm  T* ET
-q
-1 0 0 1 20 0 cm
-q
-0 0 0 rg
-BT 1 0 0 1 0 2 Tm /F1 10 Tf 12 TL (Partial C++ parser and call graph builder.) Tj T* ET
-Q
-Q
-q
-Q
-Q
-q
-1 0 0 1 62.69291 111.0236 cm
-Q
-q
-1 0 0 1 62.69291 93.02362 cm
-q
-0 0 0 rg
-BT 1 0 0 1 0 2 Tm /F1 10 Tf 12 TL (make-depends/) Tj T* ET
-Q
-Q
-q
-1 0 0 1 62.69291 87.02362 cm
-Q
-
-endstream
-endobj
-25 0 obj
-<< /Length 939 >>
-stream
-1 0 0 1 0 0 cm  BT /F1 12 Tf 14.4 TL ET
-q
-1 0 0 1 62.69291 753.0236 cm
-0 0 0 rg
-BT /F1 10 Tf 12 TL ET
-BT 1 0 0 1 0 2 Tm  T* ET
-q
-1 0 0 1 20 0 cm
-q
-0 0 0 rg
-BT 1 0 0 1 0 2 Tm /F1 10 Tf 12 TL (Script to generate the dependencies \(asd files\) from the sources, and to generate summary.html files.) Tj T* ET
-Q
-Q
-q
-Q
-Q
-q
-1 0 0 1 62.69291 753.0236 cm
-Q
-q
-1 0 0 1 62.69291 720.0236 cm
-q
-BT 1 0 0 1 0 3.5 Tm 21 TL /F3 17.5 Tf 0 0 0 rg (Dependencies of the sub-libraries) Tj T* ET
-Q
-Q
-q
-1 0 0 1 62.69291 708.0236 cm
-Q
-q
-1 0 0 1 62.69291 584.0236 cm
-0 0 0 rg
-BT /F1 10 Tf 12 TL ET
-q
-1 0 0 1 184.9449 21 cm
-q
-100 0 0 100 0 0 cm
-/FormXob.a0ac99c367c05b5790e1730a8f1148ab Do
-Q
-Q
-q
-1 0 0 1 6 3 cm
-q
-0 0 0 rg
-BT 1 0 0 1 0 2 Tm /F2 10 Tf 12 TL 61.38988 0 Td (A dependency diagram of the com.informatimago.common-lisp sub-libraries) Tj T* -61.38988 0 Td ET
-Q
-Q
-q
-Q
-Q
-q
-1 0 0 1 62.69291 584.0236 cm
-Q
-
-endstream
-endobj
-26 0 obj
-<< /Nums [ 0 27 0 R 1 28 0 R 2 29 0 R 3 30 0 R ] >>
-endobj
-27 0 obj
-<< /S /D /St 1 >>
-endobj
-28 0 obj
-<< /S /D /St 2 >>
-endobj
-29 0 obj
-<< /S /D /St 3 >>
-endobj
-30 0 obj
-<< /S /D /St 4 >>
-endobj
-xref
-0 31
-0000000000 65535 f
-0000000075 00000 n
-0000000149 00000 n
-0000000259 00000 n
-0000000377 00000 n
-0000000492 00000 n
-0000000614 00000 n
-0000000722 00000 n
-0000000931 00000 n
-0000001140 00000 n
-0000001349 00000 n
-0000007908 00000 n
-0000008182 00000 n
-0000008291 00000 n
-0000008502 00000 n
-0000008579 00000 n
-0000008764 00000 n
-0000008919 00000 n
-0000009073 00000 n
-0000009207 00000 n
-0000009342 00000 n
-0000009480 00000 n
-0000009562 00000 n
-0000015299 00000 n
-0000022292 00000 n
-0000030054 00000 n
-0000031049 00000 n
-0000031120 00000 n
-0000031157 00000 n
-0000031194 00000 n
-0000031231 00000 n
-trailer
-<< /ID
- % ReportLab generated PDF document -- digest (http://www.reportlab.com)
- [(\264\322\227\217\203\351d\221\203\330=#\)bJ\012) (\264\322\227\217\203\351d\221\203\330=#\)bJ\012)]
- /Info 13 0 R /Root 12 0 R /Size 31 >>
-startxref
-31268
-%%EOF
diff --git a/common-lisp/gen-lib-graph.lisp b/common-lisp/gen-lib-graph.lisp
index 124bbd2..f310b98 100644
--- a/common-lisp/gen-lib-graph.lisp
+++ b/common-lisp/gen-lib-graph.lisp
@@ -36,6 +36,7 @@
   (setf *readtable* (copy-readtable nil)))

 (in-package "COMMON-LISP-USER")
+(require 'asdf)

 (setf asdf:*central-registry*
       (append (remove-duplicates
@@ -46,13 +47,14 @@
               asdf:*central-registry*))


-(asdf-load :com.informatimago.common-lisp.graphviz)
+(asdf:oos 'asdf:load-op :com.informatimago.common-lisp.graphviz)



 (defpackage "COM.INFORMATIMAGO.TOOLS.GEN-LIB-GRAPH"
   (:use "COMMON-LISP"
         "COM.INFORMATIMAGO.COMMON-LISP.CESARUM.GRAPH"
+        "COM.INFORMATIMAGO.COMMON-LISP.CESARUM.SEQUENCE"
         "COM.INFORMATIMAGO.COMMON-LISP.GRAPHVIZ.GRAPH-DOT"))
 (in-package "COM.INFORMATIMAGO.TOOLS.GEN-LIB-GRAPH")

@@ -61,34 +63,70 @@


 (defun read-asd-file (path)
-  (with-open-file (asd path)
-    (read asd nil nil)))
-
-(defun asd-name (asd) (second asd))
-(defun asd-depends-on (asd) (getf (cddr asd) :depends-on))
-
-
-(defun make-system-graph (asd-files graph-path)
-  (let* ((asds  (mapcar (function read-asd-file) asd-files))
+  (let ((*package* *package*)
+        (result '()))
+    (labels ((collect (sexp)
+               (push sexp result))
+             (process (sexp)
+               (cond
+                 ((atom sexp))
+                 ((eql 'eval-when (first sexp))
+                  (when (intersection '(:load-toplevel :execute load eval)
+                                      (second sexp))
+                    (dolist (sexp (cddr sexp))
+                      (process sexp))))
+                 ((eql 'progn (first sexp))
+                  (dolist (sexp (cdr sexp))
+                    (process sexp)))
+                 ((eql 'in-package (first sexp))
+                  (eval sexp))
+                 ((eql 'asdf:defsystem (first sexp))
+                  (collect sexp)))))
+      (with-open-file (asd path)
+        (loop
+          :for sexp := (ignore-errors (read asd nil asd))
+          :until (eql sexp asd)
+          :do (process sexp))))
+    (nreverse result)))
+
+(defun asd-name (asd)
+  (string-downcase (second asd)))
+
+(defun asd-depends-on (asd)
+  (mapcar (function string-downcase)
+          (getf (cddr asd) :depends-on)))
+
+(defmethod dot-label ((element element-class))
+  (getf (properties element) :dot-label))
+
+(defun make-system-graph (asd-files graph-path &key test)
+  (let* ((asds  (let ((asds  (mapcan (function read-asd-file) asd-files)))
+                  (if test
+                      (remove-if-not test asds)
+                      asds)))
          (nodes (mapcar (lambda (asd)
+                          (format *trace-output* ";; read ~A~%" (asd-name asd))
+                          (force-output *trace-output*)
                           (make-instance 'element-class
-                              :ident (asd-name asd)
-                              :properties (list :asd asd
-                                                :dot-label (subseq (string (asd-name asd))
-                                                                   (length "com.informatimago.common-lisp.")))))
+                                         :ident (asd-name asd)
+                                         :properties (list :asd asd
+                                                           :dot-label (subseq (string (asd-name asd))
+                                                                              (length "com.informatimago.common-lisp.")))))
                         asds))
          (g     (make-instance 'graph-class :edge-class 'directed-edge-class)))
     (add-nodes g nodes)
     (loop
-       :for node :in nodes
-       :for dependencies = (mapcar (lambda (asd-name)
-                                     (find asd-name nodes
-                                           :test (function member)
-                                           :key (lambda (node) (get-property node :asd))))
-                                   (asd-depends-on (get-property node :asd)))
-       :do (loop
-              :for dependency :in dependencies
-              :do (add-edge-between-nodes g node dependency)))
+      :for node :in nodes
+      :for dependencies = (mapcar (lambda (asd-name)
+                                    (find asd-name nodes
+                                          :test (function equal)
+                                          :key (lambda (node) (asd-name (get-property node :asd)))))
+                                  (asd-depends-on (get-property node :asd)))
+      :do (loop
+            :for dependency :in dependencies
+            :when dependency
+              :do (format *trace-output* "~A -> ~A~%" (dot-label node) (dot-label dependency))
+                  (add-edge-between-nodes g node dependency)))
     (set-property g :dot-rankdir "LR")
     (set-property g :dot-concentrate t)
     (with-open-file (out graph-path
@@ -98,7 +136,8 @@
       (princ (generate-dot g) out))))


-(make-system-graph *asd-files* "system-graph.dot")
+(make-system-graph *asd-files* "system-graph.dot"
+                   :test (lambda (asd) (not (suffixp ".test" (asd-name asd)))))


 ;;;; THE END ;;;;
diff --git a/common-lisp/graphviz/graph-dot.lisp b/common-lisp/graphviz/graph-dot.lisp
index c74a2e4..3f75d03 100644
--- a/common-lisp/graphviz/graph-dot.lisp
+++ b/common-lisp/graphviz/graph-dot.lisp
@@ -195,9 +195,9 @@ NOTE:   dot graphs are directed.
          "splines=true;~%"
          "// common attributes of NODES:~%"
          "node [height=0.2 width=0.5 shape=box fontsize=8 fontname=Futura] ;~%"))
-     (map-elements (nodes self) (lambda (node) (generate-dot node)))
+     (map-elements 'list (nodes self) (lambda (node) (generate-dot node)))
      (format nil "// common attributes of edges:~%edge [style=solid];~%")
-     (map-elements (edges self) (lambda (edge) (generate-dot edge)))
+     (map-elements 'list (edges self) (lambda (edge) (generate-dot edge)))
      (format nil "}~%")))))


diff --git a/common-lisp/system-graph.dot b/common-lisp/system-graph.dot
deleted file mode 100644
index 0a86ce5..0000000
--- a/common-lisp/system-graph.dot
+++ /dev/null
@@ -1,74 +0,0 @@
-digraph Untitled
-{
-rankdir=LR;
-concentrate=true;
-// attributes of graph:
-// page=8,11.4;    // page size (NeXTprinter:A4).
-// size=30,8;     // graph size (please edit to fit).
-// rotate=90;    // graph orientation (please edit to fit).
-// ratio=fill;  // fill the size (or compress, auto, aspect/ratio).
-nodesep=0.3;
-ranksep=0.3;
-center=1;
-// common attributes of NODES:
-node [height=0.2 width=0.5 shape=box fontsize=8 fontname=Times] ;
-ELEMENTCLASS42903 [ style=filled color=black fillcolor=LightYellow label="HEAP" ];
-ELEMENTCLASS42902 [ style=filled color=black fillcolor=LightYellow label="REGEXP" ];
-ELEMENTCLASS42901 [ style=filled color=black fillcolor=LightYellow label="FILE" ];
-ELEMENTCLASS42900 [ style=filled color=black fillcolor=LightYellow label="CESARUM" ];
-ELEMENTCLASS42899 [ style=filled color=black fillcolor=LightYellow label="DATA-ENCODING" ];
-ELEMENTCLASS42898 [ style=filled color=black fillcolor=LightYellow label="INTERACTIVE" ];
-ELEMENTCLASS42897 [ style=filled color=black fillcolor=LightYellow label="CXX" ];
-ELEMENTCLASS42896 [ style=filled color=black fillcolor=LightYellow label="HTML-GENERATOR" ];
-ELEMENTCLASS42895 [ style=filled color=black fillcolor=LightYellow label="RFC2822" ];
-ELEMENTCLASS42894 [ style=filled color=black fillcolor=LightYellow label="ED" ];
-ELEMENTCLASS42893 [ style=filled color=black fillcolor=LightYellow label="HTML-PARSER" ];
-ELEMENTCLASS42892 [ style=filled color=black fillcolor=LightYellow label="GRAPHVIZ" ];
-ELEMENTCLASS42891 [ style=filled color=black fillcolor=LightYellow label="LISP" ];
-ELEMENTCLASS42890 [ style=filled color=black fillcolor=LightYellow label="LISP-READER" ];
-ELEMENTCLASS42889 [ style=filled color=black fillcolor=LightYellow label="HTTP" ];
-ELEMENTCLASS42888 [ style=filled color=black fillcolor=LightYellow label="BANK" ];
-ELEMENTCLASS42887 [ style=filled color=black fillcolor=LightYellow label="CSV" ];
-ELEMENTCLASS42886 [ style=filled color=black fillcolor=LightYellow label="PARSER" ];
-ELEMENTCLASS42885 [ style=filled color=black fillcolor=LightYellow label="UNIX" ];
-ELEMENTCLASS42884 [ style=filled color=black fillcolor=LightYellow label="LISP-SEXP" ];
-ELEMENTCLASS42883 [ style=filled color=black fillcolor=LightYellow label="RFC3548" ];
-ELEMENTCLASS42882 [ style=filled color=black fillcolor=LightYellow label="LISP-TEXT" ];
-ELEMENTCLASS42881 [ style=filled color=black fillcolor=LightYellow label="PICTURE" ];
-ELEMENTCLASS42880 [ style=filled color=black fillcolor=LightYellow label="ARITHMETIC" ];
-ELEMENTCLASS42879 [ style=filled color=black fillcolor=LightYellow label="INVOICE" ];
-ELEMENTCLASS42878 [ style=filled color=black fillcolor=LightYellow label="HTML-BASE" ];
-ELEMENTCLASS42877 [ style=filled color=black fillcolor=LightYellow label="DIAGRAM" ];
-// common attributes of edges:
-edge [style=solid];
-ELEMENTCLASS42903 -> ELEMENTCLASS42900 ;
-ELEMENTCLASS42902 -> ELEMENTCLASS42881 ;
-ELEMENTCLASS42902 -> ELEMENTCLASS42900 ;
-ELEMENTCLASS42901 -> ELEMENTCLASS42900 ;
-ELEMENTCLASS42900 -> ELEMENTCLASS42884 ;
-ELEMENTCLASS42899 -> ELEMENTCLASS42900 ;
-ELEMENTCLASS42898 -> ELEMENTCLASS42900 ;
-ELEMENTCLASS42897 -> ELEMENTCLASS42900 ;
-ELEMENTCLASS42896 -> ELEMENTCLASS42900 ;
-ELEMENTCLASS42895 -> ELEMENTCLASS42900 ;
-ELEMENTCLASS42894 -> ELEMENTCLASS42902 ;
-ELEMENTCLASS42894 -> ELEMENTCLASS42900 ;
-ELEMENTCLASS42893 -> ELEMENTCLASS42878 ;
-ELEMENTCLASS42893 -> ELEMENTCLASS42900 ;
-ELEMENTCLASS42892 -> ELEMENTCLASS42900 ;
-ELEMENTCLASS42890 -> ELEMENTCLASS42884 ;
-ELEMENTCLASS42889 -> ELEMENTCLASS42896 ;
-ELEMENTCLASS42889 -> ELEMENTCLASS42900 ;
-ELEMENTCLASS42888 -> ELEMENTCLASS42900 ;
-ELEMENTCLASS42887 -> ELEMENTCLASS42900 ;
-ELEMENTCLASS42886 -> ELEMENTCLASS42900 ;
-ELEMENTCLASS42885 -> ELEMENTCLASS42900 ;
-ELEMENTCLASS42883 -> ELEMENTCLASS42900 ;
-ELEMENTCLASS42882 -> ELEMENTCLASS42890 ;
-ELEMENTCLASS42881 -> ELEMENTCLASS42900 ;
-ELEMENTCLASS42880 -> ELEMENTCLASS42900 ;
-ELEMENTCLASS42879 -> ELEMENTCLASS42900 ;
-ELEMENTCLASS42878 -> ELEMENTCLASS42884 ;
-ELEMENTCLASS42878 -> ELEMENTCLASS42900 ;
-ELEMENTCLASS42877 -> ELEMENTCLASS42900 ;
-}
diff --git a/common-lisp/system-graph.ps b/common-lisp/system-graph.ps
deleted file mode 100644
index cfedc12..0000000
--- a/common-lisp/system-graph.ps
+++ /dev/null
@@ -1,1381 +0,0 @@
-%!PS-Adobe-3.0
-%%Creator: graphviz version 2.26.3 (20100126.1600)
-%%Title: Untitled
-%%Pages: (atend)
-%%BoundingBox: (atend)
-%%EndComments
-save
-%%BeginProlog
-/DotDict 200 dict def
-DotDict begin
-
-/setupLatin1 {
-mark
-/EncodingVector 256 array def
- EncodingVector 0
-
-ISOLatin1Encoding 0 255 getinterval putinterval
-EncodingVector 45 /hyphen put
-
-% Set up ISO Latin 1 character encoding
-/starnetISO {
-        dup dup findfont dup length dict begin
-        { 1 index /FID ne { def }{ pop pop } ifelse
-        } forall
-        /Encoding EncodingVector def
-        currentdict end definefont
-} def
-/Times-Roman starnetISO def
-/Times-Italic starnetISO def
-/Times-Bold starnetISO def
-/Times-BoldItalic starnetISO def
-/Helvetica starnetISO def
-/Helvetica-Oblique starnetISO def
-/Helvetica-Bold starnetISO def
-/Helvetica-BoldOblique starnetISO def
-/Courier starnetISO def
-/Courier-Oblique starnetISO def
-/Courier-Bold starnetISO def
-/Courier-BoldOblique starnetISO def
-cleartomark
-} bind def
-
-%%BeginResource: procset graphviz 0 0
-/coord-font-family /Times-Roman def
-/default-font-family /Times-Roman def
-/coordfont coord-font-family findfont 8 scalefont def
-
-/InvScaleFactor 1.0 def
-/set_scale {
-       dup 1 exch div /InvScaleFactor exch def
-       scale
-} bind def
-
-% styles
-/solid { [] 0 setdash } bind def
-/dashed { [9 InvScaleFactor mul dup ] 0 setdash } bind def
-/dotted { [1 InvScaleFactor mul 6 InvScaleFactor mul] 0 setdash } bind def
-/invis {/fill {newpath} def /stroke {newpath} def /show {pop newpath} def} bind def
-/bold { 2 setlinewidth } bind def
-/filled { } bind def
-/unfilled { } bind def
-/rounded { } bind def
-/diagonals { } bind def
-
-% hooks for setting color
-/nodecolor { sethsbcolor } bind def
-/edgecolor { sethsbcolor } bind def
-/graphcolor { sethsbcolor } bind def
-/nopcolor {pop pop pop} bind def
-
-/beginpage {	% i j npages
-	/npages exch def
-	/j exch def
-	/i exch def
-	/str 10 string def
-	npages 1 gt {
-		gsave
-			coordfont setfont
-			0 0 moveto
-			(\() show i str cvs show (,) show j str cvs show (\)) show
-		grestore
-	} if
-} bind def
-
-/set_font {
-	findfont exch
-	scalefont setfont
-} def
-
-% draw text fitted to its expected width
-/alignedtext {			% width text
-	/text exch def
-	/width exch def
-	gsave
-		width 0 gt {
-			[] 0 setdash
-			text stringwidth pop width exch sub text length div 0 text ashow
-		} if
-	grestore
-} def
-
-/boxprim {				% xcorner ycorner xsize ysize
-		4 2 roll
-		moveto
-		2 copy
-		exch 0 rlineto
-		0 exch rlineto
-		pop neg 0 rlineto
-		closepath
-} bind def
-
-/ellipse_path {
-	/ry exch def
-	/rx exch def
-	/y exch def
-	/x exch def
-	matrix currentmatrix
-	newpath
-	x y translate
-	rx ry scale
-	0 0 1 0 360 arc
-	setmatrix
-} bind def
-
-/endpage { showpage } bind def
-/showpage { } def
-
-/layercolorseq
-	[	% layer color sequence - darkest to lightest
-		[0 0 0]
-		[.2 .8 .8]
-		[.4 .8 .8]
-		[.6 .8 .8]
-		[.8 .8 .8]
-	]
-def
-
-/layerlen layercolorseq length def
-
-/setlayer {/maxlayer exch def /curlayer exch def
-	layercolorseq curlayer 1 sub layerlen mod get
-	aload pop sethsbcolor
-	/nodecolor {nopcolor} def
-	/edgecolor {nopcolor} def
-	/graphcolor {nopcolor} def
-} bind def
-
-/onlayer { curlayer ne {invis} if } def
-
-/onlayers {
-	/myupper exch def
-	/mylower exch def
-	curlayer mylower lt
-	curlayer myupper gt
-	or
-	{invis} if
-} def
-
-/curlayer 0 def
-
-%%EndResource
-%%EndProlog
-%%BeginSetup
-14 default-font-family set_font
-1 setmiterlimit
-% /arrowlength 10 def
-% /arrowwidth 5 def
-
-% make sure pdfmark is harmless for PS-interpreters other than Distiller
-/pdfmark where {pop} {userdict /pdfmark /cleartomark load put} ifelse
-% make '<<' and '>>' safe on PS Level 1 devices
-/languagelevel where {pop languagelevel}{1} ifelse
-2 lt {
-    userdict (<<) cvn ([) cvn load put
-    userdict (>>) cvn ([) cvn load put
-} if
-
-%%EndSetup
-setupLatin1
-%%Page: 1 1
-%%PageBoundingBox: 99 36 513 884
-%%PageOrientation: Portrait
-0 0 1 beginpage
-gsave
-99 36 414 848 boxprim clip newpath
-1 1 set_scale 0 rotate 103 41 translate
-% ELEMENTCLASS42903
-gsave
-0.16471 0.12157 1 nodecolor
-newpath 216 762.5 moveto
-178 762.5 lineto
-178 745.5 lineto
-216 745.5 lineto
-closepath fill
-1 setlinewidth
-filled
-0 0 0 nodecolor
-newpath 216 762.5 moveto
-178 762.5 lineto
-178 745.5 lineto
-216 745.5 lineto
-closepath stroke
-0 0 0 nodecolor
-8 /Times set_font
-186 751.3 moveto 22 (HEAP) alignedtext
-grestore
-% ELEMENTCLASS42900
-gsave
-0.16471 0.12157 1 nodecolor
-newpath 324 417.5 moveto
-270 417.5 lineto
-270 400.5 lineto
-324 400.5 lineto
-closepath fill
-1 setlinewidth
-filled
-0 0 0 nodecolor
-newpath 324 417.5 moveto
-270 417.5 lineto
-270 400.5 lineto
-324 400.5 lineto
-closepath stroke
-0 0 0 nodecolor
-8 /Times set_font
-277.5 406.3 moveto 39 (CESARUM) alignedtext
-grestore
-% ELEMENTCLASS42903->ELEMENTCLASS42900
-gsave
-1 setlinewidth
-solid
-0 0 0 edgecolor
-newpath 216.35 747.74 moveto
-225.52 743.79 235.8 737.75 242 729 curveto
-277.01 679.65 291.98 488.02 295.9 427.46 curveto
-stroke
-0 0 0 edgecolor
-newpath 299.41 427.37 moveto
-296.54 417.17 lineto
-292.43 426.93 lineto
-closepath fill
-1 setlinewidth
-solid
-0 0 0 edgecolor
-newpath 299.41 427.37 moveto
-296.54 417.17 lineto
-292.43 426.93 lineto
-closepath stroke
-grestore
-% ELEMENTCLASS42902
-gsave
-0.16471 0.12157 1 nodecolor
-newpath 117 678.5 moveto
-71 678.5 lineto
-71 661.5 lineto
-117 661.5 lineto
-closepath fill
-1 setlinewidth
-filled
-0 0 0 nodecolor
-newpath 117 678.5 moveto
-71 678.5 lineto
-71 661.5 lineto
-117 661.5 lineto
-closepath stroke
-0 0 0 nodecolor
-8 /Times set_font
-78.5 667.3 moveto 31 (REGEXP) alignedtext
-grestore
-% ELEMENTCLASS42902->ELEMENTCLASS42900
-gsave
-1 setlinewidth
-solid
-0 0 0 edgecolor
-newpath 106.71 678.08 moveto
-130.52 692.73 180.88 721.35 197 712 curveto
-stroke
-1 setlinewidth
-solid
-0 0 0 edgecolor
-newpath 197 712 moveto
-216.43 700.73 228.48 706.93 242 689 curveto
-273.61 647.09 290.58 482.68 295.48 427.31 curveto
-stroke
-0 0 0 edgecolor
-newpath 298.98 427.5 moveto
-296.35 417.24 lineto
-292 426.9 lineto
-closepath fill
-1 setlinewidth
-solid
-0 0 0 edgecolor
-newpath 298.98 427.5 moveto
-296.35 417.24 lineto
-292 426.9 lineto
-closepath stroke
-grestore
-% ELEMENTCLASS42881
-gsave
-0.16471 0.12157 1 nodecolor
-newpath 222 678.5 moveto
-172 678.5 lineto
-172 661.5 lineto
-222 661.5 lineto
-closepath fill
-1 setlinewidth
-filled
-0 0 0 nodecolor
-newpath 222 678.5 moveto
-172 678.5 lineto
-172 661.5 lineto
-222 661.5 lineto
-closepath stroke
-0 0 0 nodecolor
-8 /Times set_font
-180 667.3 moveto 34 (PICTURE) alignedtext
-grestore
-% ELEMENTCLASS42902->ELEMENTCLASS42881
-gsave
-1 setlinewidth
-solid
-0 0 0 edgecolor
-newpath 117.63 670 moveto
-130.63 670 147.02 670 161.53 670 curveto
-stroke
-0 0 0 edgecolor
-newpath 161.68 673.5 moveto
-171.68 670 lineto
-161.68 666.5 lineto
-closepath fill
-1 setlinewidth
-solid
-0 0 0 edgecolor
-newpath 161.68 673.5 moveto
-171.68 670 lineto
-161.68 666.5 lineto
-closepath stroke
-grestore
-% ELEMENTCLASS42901
-gsave
-0.16471 0.12157 1 nodecolor
-newpath 215 594.5 moveto
-179 594.5 lineto
-179 577.5 lineto
-215 577.5 lineto
-closepath fill
-1 setlinewidth
-filled
-0 0 0 nodecolor
-newpath 215 594.5 moveto
-179 594.5 lineto
-179 577.5 lineto
-215 577.5 lineto
-closepath stroke
-0 0 0 nodecolor
-8 /Times set_font
-188.5 583.3 moveto 17 (FILE) alignedtext
-grestore
-% ELEMENTCLASS42901->ELEMENTCLASS42900
-gsave
-1 setlinewidth
-solid
-0 0 0 edgecolor
-newpath 215.26 582.04 moveto
-224.37 579.22 234.92 574.55 242 567 curveto
-279.68 526.8 291.72 459.42 295.43 427.21 curveto
-stroke
-0 0 0 edgecolor
-newpath 298.93 427.36 moveto
-296.45 417.06 lineto
-291.96 426.66 lineto
-closepath fill
-1 setlinewidth
-solid
-0 0 0 edgecolor
-newpath 298.93 427.36 moveto
-296.45 417.06 lineto
-291.96 426.66 lineto
-closepath stroke
-grestore
-% ELEMENTCLASS42884
-gsave
-0.16471 0.12157 1 nodecolor
-newpath 406 798.5 moveto
-352 798.5 lineto
-352 781.5 lineto
-406 781.5 lineto
-closepath fill
-1 setlinewidth
-filled
-0 0 0 nodecolor
-newpath 406 798.5 moveto
-352 798.5 lineto
-352 781.5 lineto
-406 781.5 lineto
-closepath stroke
-0 0 0 nodecolor
-8 /Times set_font
-360 787.3 moveto 38 (LISP-SEXP) alignedtext
-grestore
-% ELEMENTCLASS42900->ELEMENTCLASS42884
-gsave
-1 setlinewidth
-solid
-0 0 0 edgecolor
-newpath 298.79 417.31 moveto
-309.04 464.94 360.38 703.48 375.07 771.73 curveto
-stroke
-0 0 0 edgecolor
-newpath 371.71 772.76 moveto
-377.23 781.8 lineto
-378.55 771.28 lineto
-closepath fill
-1 setlinewidth
-solid
-0 0 0 edgecolor
-newpath 371.71 772.76 moveto
-377.23 781.8 lineto
-378.55 771.28 lineto
-closepath stroke
-grestore
-% ELEMENTCLASS42899
-gsave
-0.16471 0.12157 1 nodecolor
-newpath 238 556.5 moveto
-156 556.5 lineto
-156 539.5 lineto
-238 539.5 lineto
-closepath fill
-1 setlinewidth
-filled
-0 0 0 nodecolor
-newpath 238 556.5 moveto
-156 556.5 lineto
-156 539.5 lineto
-238 539.5 lineto
-closepath stroke
-0 0 0 nodecolor
-8 /Times set_font
-164 545.3 moveto 66 (DATA-ENCODING) alignedtext
-grestore
-% ELEMENTCLASS42899->ELEMENTCLASS42900
-gsave
-1 setlinewidth
-solid
-0 0 0 edgecolor
-newpath 225.13 539.9 moveto
-231.22 537.17 237.25 533.61 242 529 curveto
-271.52 500.36 286.68 452.91 293.1 427.09 curveto
-stroke
-0 0 0 edgecolor
-newpath 296.55 427.71 moveto
-295.4 417.18 lineto
-289.73 426.13 lineto
-closepath fill
-1 setlinewidth
-solid
-0 0 0 edgecolor
-newpath 296.55 427.71 moveto
-295.4 417.18 lineto
-289.73 426.13 lineto
-closepath stroke
-grestore
-% ELEMENTCLASS42898
-gsave
-0.16471 0.12157 1 nodecolor
-newpath 231 518.5 moveto
-163 518.5 lineto
-163 501.5 lineto
-231 501.5 lineto
-closepath fill
-1 setlinewidth
-filled
-0 0 0 nodecolor
-newpath 231 518.5 moveto
-163 518.5 lineto
-163 501.5 lineto
-231 501.5 lineto
-closepath stroke
-0 0 0 nodecolor
-8 /Times set_font
-170.5 507.3 moveto 53 (INTERACTIVE) alignedtext
-grestore
-% ELEMENTCLASS42898->ELEMENTCLASS42900
-gsave
-1 setlinewidth
-solid
-0 0 0 edgecolor
-newpath 223.2 501.93 moveto
-229.77 499.14 236.5 495.53 242 491 curveto
-263.54 473.23 279.94 444.86 289.02 426.59 curveto
-stroke
-0 0 0 edgecolor
-newpath 292.27 427.91 moveto
-293.4 417.38 lineto
-285.94 424.9 lineto
-closepath fill
-1 setlinewidth
-solid
-0 0 0 edgecolor
-newpath 292.27 427.91 moveto
-293.4 417.38 lineto
-285.94 424.9 lineto
-closepath stroke
-grestore
-% ELEMENTCLASS42897
-gsave
-0.16471 0.12157 1 nodecolor
-newpath 215 480.5 moveto
-179 480.5 lineto
-179 463.5 lineto
-215 463.5 lineto
-closepath fill
-1 setlinewidth
-filled
-0 0 0 nodecolor
-newpath 215 480.5 moveto
-179 480.5 lineto
-179 463.5 lineto
-215 463.5 lineto
-closepath stroke
-0 0 0 nodecolor
-8 /Times set_font
-188 469.3 moveto 18 (CXX) alignedtext
-grestore
-% ELEMENTCLASS42897->ELEMENTCLASS42900
-gsave
-1 setlinewidth
-solid
-0 0 0 edgecolor
-newpath 212.63 463.8 moveto
-221.38 459.09 232.43 452.94 242 447 curveto
-254.05 439.52 267.13 430.52 277.51 423.16 curveto
-stroke
-0 0 0 edgecolor
-newpath 279.75 425.86 moveto
-285.84 417.19 lineto
-275.67 420.17 lineto
-closepath fill
-1 setlinewidth
-solid
-0 0 0 edgecolor
-newpath 279.75 425.86 moveto
-285.84 417.19 lineto
-275.67 420.17 lineto
-closepath stroke
-grestore
-% ELEMENTCLASS42896
-gsave
-0.16471 0.12157 1 nodecolor
-newpath 241 396.5 moveto
-153 396.5 lineto
-153 379.5 lineto
-241 379.5 lineto
-closepath fill
-1 setlinewidth
-filled
-0 0 0 nodecolor
-newpath 241 396.5 moveto
-153 396.5 lineto
-153 379.5 lineto
-241 379.5 lineto
-closepath stroke
-0 0 0 nodecolor
-8 /Times set_font
-160.5 385.3 moveto 73 (HTML-GENERATOR) alignedtext
-grestore
-% ELEMENTCLASS42896->ELEMENTCLASS42900
-gsave
-1 setlinewidth
-solid
-0 0 0 edgecolor
-newpath 235.38 396.06 moveto
-243.27 397.72 251.56 399.46 259.42 401.11 curveto
-stroke
-0 0 0 edgecolor
-newpath 258.93 404.58 moveto
-269.43 403.21 lineto
-260.37 397.73 lineto
-closepath fill
-1 setlinewidth
-solid
-0 0 0 edgecolor
-newpath 258.93 404.58 moveto
-269.43 403.21 lineto
-260.37 397.73 lineto
-closepath stroke
-grestore
-% ELEMENTCLASS42895
-gsave
-0.16471 0.12157 1 nodecolor
-newpath 220 358.5 moveto
-174 358.5 lineto
-174 341.5 lineto
-220 341.5 lineto
-closepath fill
-1 setlinewidth
-filled
-0 0 0 nodecolor
-newpath 220 358.5 moveto
-174 358.5 lineto
-174 341.5 lineto
-220 341.5 lineto
-closepath stroke
-0 0 0 nodecolor
-8 /Times set_font
-181.5 347.3 moveto 31 (RFC2822) alignedtext
-grestore
-% ELEMENTCLASS42895->ELEMENTCLASS42900
-gsave
-1 setlinewidth
-solid
-0 0 0 edgecolor
-newpath 219 358.11 moveto
-226.47 361.17 234.76 364.91 242 369 curveto
-255.17 376.44 268.94 386.45 279.4 394.6 curveto
-stroke
-0 0 0 edgecolor
-newpath 277.32 397.42 moveto
-287.33 400.9 lineto
-281.68 391.94 lineto
-closepath fill
-1 setlinewidth
-solid
-0 0 0 edgecolor
-newpath 277.32 397.42 moveto
-287.33 400.9 lineto
-281.68 391.94 lineto
-closepath stroke
-grestore
-% ELEMENTCLASS42894
-gsave
-0.16471 0.12157 1 nodecolor
-newpath 36 657.5 moveto
-0 657.5 lineto
-0 640.5 lineto
-36 640.5 lineto
-closepath fill
-1 setlinewidth
-filled
-0 0 0 nodecolor
-newpath 36 657.5 moveto
-0 657.5 lineto
-0 640.5 lineto
-36 640.5 lineto
-closepath stroke
-0 0 0 nodecolor
-8 /Times set_font
-13 646.3 moveto 10 (ED) alignedtext
-grestore
-% ELEMENTCLASS42894->ELEMENTCLASS42902
-gsave
-1 setlinewidth
-solid
-0 0 0 edgecolor
-newpath 36.01 653.98 moveto
-43.39 656.02 52.18 658.45 60.66 660.79 curveto
-stroke
-0 0 0 edgecolor
-newpath 59.79 664.18 moveto
-70.36 663.47 lineto
-61.65 657.43 lineto
-closepath fill
-1 setlinewidth
-solid
-0 0 0 edgecolor
-newpath 59.79 664.18 moveto
-70.36 663.47 lineto
-61.65 657.43 lineto
-closepath stroke
-grestore
-% ELEMENTCLASS42894->ELEMENTCLASS42900
-gsave
-1 setlinewidth
-solid
-0 0 0 edgecolor
-newpath 36.17 647.84 moveto
-84.01 644.42 211.86 632.83 242 605 curveto
-268.46 580.57 287.65 470.83 294.37 427.08 curveto
-stroke
-0 0 0 edgecolor
-newpath 297.86 427.45 moveto
-295.87 417.05 lineto
-290.93 426.42 lineto
-closepath fill
-1 setlinewidth
-solid
-0 0 0 edgecolor
-newpath 297.86 427.45 moveto
-295.87 417.05 lineto
-290.93 426.42 lineto
-closepath stroke
-grestore
-% ELEMENTCLASS42893
-gsave
-0.16471 0.12157 1 nodecolor
-newpath 129 720.5 moveto
-59 720.5 lineto
-59 703.5 lineto
-129 703.5 lineto
-closepath fill
-1 setlinewidth
-filled
-0 0 0 nodecolor
-newpath 129 720.5 moveto
-59 720.5 lineto
-59 703.5 lineto
-129 703.5 lineto
-closepath stroke
-0 0 0 nodecolor
-8 /Times set_font
-66.5 709.3 moveto 55 (HTML-PARSER) alignedtext
-grestore
-% ELEMENTCLASS42893->ELEMENTCLASS42900
-gsave
-1 setlinewidth
-solid
-0 0 0 edgecolor
-newpath 126.81 720.04 moveto
-148.21 723.44 175.96 724.2 197 712 curveto
-stroke
-grestore
-% ELEMENTCLASS42878
-gsave
-0.16471 0.12157 1 nodecolor
-newpath 227 800.5 moveto
-167 800.5 lineto
-167 783.5 lineto
-227 783.5 lineto
-closepath fill
-1 setlinewidth
-filled
-0 0 0 nodecolor
-newpath 227 800.5 moveto
-167 800.5 lineto
-167 783.5 lineto
-227 783.5 lineto
-closepath stroke
-0 0 0 nodecolor
-8 /Times set_font
-174.5 789.3 moveto 45 (HTML-BASE) alignedtext
-grestore
-% ELEMENTCLASS42893->ELEMENTCLASS42878
-gsave
-1 setlinewidth
-solid
-0 0 0 edgecolor
-newpath 99.94 720.13 moveto
-109.6 732.88 129.89 757.71 152 773 curveto
-155.53 775.44 159.43 777.66 163.4 779.65 curveto
-stroke
-0 0 0 edgecolor
-newpath 162.14 782.92 moveto
-172.69 783.87 lineto
-165.04 776.55 lineto
-closepath fill
-1 setlinewidth
-solid
-0 0 0 edgecolor
-newpath 162.14 782.92 moveto
-172.69 783.87 lineto
-165.04 776.55 lineto
-closepath stroke
-grestore
-% ELEMENTCLASS42892
-gsave
-0.16471 0.12157 1 nodecolor
-newpath 225 320.5 moveto
-169 320.5 lineto
-169 303.5 lineto
-225 303.5 lineto
-closepath fill
-1 setlinewidth
-filled
-0 0 0 nodecolor
-newpath 225 320.5 moveto
-169 320.5 lineto
-169 303.5 lineto
-225 303.5 lineto
-closepath stroke
-0 0 0 nodecolor
-8 /Times set_font
-176.5 309.3 moveto 41 (GRAPHVIZ) alignedtext
-grestore
-% ELEMENTCLASS42892->ELEMENTCLASS42900
-gsave
-1 setlinewidth
-solid
-0 0 0 edgecolor
-newpath 223.13 320.15 moveto
-229.7 322.95 236.45 326.53 242 331 curveto
-262.71 347.68 279.07 374.11 288.4 391.5 curveto
-stroke
-0 0 0 edgecolor
-newpath 285.37 393.26 moveto
-293.05 400.55 lineto
-291.59 390.06 lineto
-closepath fill
-1 setlinewidth
-solid
-0 0 0 edgecolor
-newpath 285.37 393.26 moveto
-293.05 400.55 lineto
-291.59 390.06 lineto
-closepath stroke
-grestore
-% ELEMENTCLASS42891
-gsave
-0.16471 0.12157 1 nodecolor
-newpath 36 695.5 moveto
-0 695.5 lineto
-0 678.5 lineto
-36 678.5 lineto
-closepath fill
-1 setlinewidth
-filled
-0 0 0 nodecolor
-newpath 36 695.5 moveto
-0 695.5 lineto
-0 678.5 lineto
-36 678.5 lineto
-closepath stroke
-0 0 0 nodecolor
-8 /Times set_font
-10 684.3 moveto 16 (LISP) alignedtext
-grestore
-% ELEMENTCLASS42890
-gsave
-0.16471 0.12157 1 nodecolor
-newpath 330 840.5 moveto
-264 840.5 lineto
-264 823.5 lineto
-330 823.5 lineto
-closepath fill
-1 setlinewidth
-filled
-0 0 0 nodecolor
-newpath 330 840.5 moveto
-264 840.5 lineto
-264 823.5 lineto
-330 823.5 lineto
-closepath stroke
-0 0 0 nodecolor
-8 /Times set_font
-272 829.3 moveto 50 (LISP-READER) alignedtext
-grestore
-% ELEMENTCLASS42890->ELEMENTCLASS42884
-gsave
-1 setlinewidth
-solid
-0 0 0 edgecolor
-newpath 312.81 823.9 moveto
-324.49 817.92 340.64 809.65 354.05 802.78 curveto
-stroke
-0 0 0 edgecolor
-newpath 355.93 805.75 moveto
-363.24 798.07 lineto
-352.74 799.52 lineto
-closepath fill
-1 setlinewidth
-solid
-0 0 0 edgecolor
-newpath 355.93 805.75 moveto
-363.24 798.07 lineto
-352.74 799.52 lineto
-closepath stroke
-grestore
-% ELEMENTCLASS42889
-gsave
-0.16471 0.12157 1 nodecolor
-newpath 112 417.5 moveto
-76 417.5 lineto
-76 400.5 lineto
-112 400.5 lineto
-closepath fill
-1 setlinewidth
-filled
-0 0 0 nodecolor
-newpath 112 417.5 moveto
-76 417.5 lineto
-76 400.5 lineto
-112 400.5 lineto
-closepath stroke
-0 0 0 nodecolor
-8 /Times set_font
-84 406.3 moveto 20 (HTTP) alignedtext
-grestore
-% ELEMENTCLASS42889->ELEMENTCLASS42900
-gsave
-1 setlinewidth
-solid
-0 0 0 edgecolor
-newpath 112.01 409 moveto
-144.91 409 215.36 409 259.2 409 curveto
-stroke
-0 0 0 edgecolor
-newpath 259.46 412.5 moveto
-269.46 409 lineto
-259.46 405.5 lineto
-closepath fill
-1 setlinewidth
-solid
-0 0 0 edgecolor
-newpath 259.46 412.5 moveto
-269.46 409 lineto
-259.46 405.5 lineto
-closepath stroke
-grestore
-% ELEMENTCLASS42889->ELEMENTCLASS42896
-gsave
-1 setlinewidth
-solid
-0 0 0 edgecolor
-newpath 112.41 405.25 moveto
-122.28 403.23 134.95 400.65 147.46 398.1 curveto
-stroke
-0 0 0 edgecolor
-newpath 148.31 401.5 moveto
-157.41 396.07 lineto
-146.91 394.64 lineto
-closepath fill
-1 setlinewidth
-solid
-0 0 0 edgecolor
-newpath 148.31 401.5 moveto
-157.41 396.07 lineto
-146.91 394.64 lineto
-closepath stroke
-grestore
-% ELEMENTCLASS42888
-gsave
-0.16471 0.12157 1 nodecolor
-newpath 216 282.5 moveto
-178 282.5 lineto
-178 265.5 lineto
-216 265.5 lineto
-closepath fill
-1 setlinewidth
-filled
-0 0 0 nodecolor
-newpath 216 282.5 moveto
-178 282.5 lineto
-178 265.5 lineto
-216 265.5 lineto
-closepath stroke
-0 0 0 nodecolor
-8 /Times set_font
-186 271.3 moveto 22 (BANK) alignedtext
-grestore
-% ELEMENTCLASS42888->ELEMENTCLASS42900
-gsave
-1 setlinewidth
-solid
-0 0 0 edgecolor
-newpath 216.28 278.73 moveto
-224.99 281.66 234.9 286.2 242 293 curveto
-270.62 320.4 286.01 365.69 292.75 390.8 curveto
-stroke
-0 0 0 edgecolor
-newpath 289.42 391.94 moveto
-295.25 400.79 lineto
-296.21 390.23 lineto
-closepath fill
-1 setlinewidth
-solid
-0 0 0 edgecolor
-newpath 289.42 391.94 moveto
-295.25 400.79 lineto
-296.21 390.23 lineto
-closepath stroke
-grestore
-% ELEMENTCLASS42887
-gsave
-0.16471 0.12157 1 nodecolor
-newpath 215 244.5 moveto
-179 244.5 lineto
-179 227.5 lineto
-215 227.5 lineto
-closepath fill
-1 setlinewidth
-filled
-0 0 0 nodecolor
-newpath 215 244.5 moveto
-179 244.5 lineto
-179 227.5 lineto
-215 227.5 lineto
-closepath stroke
-0 0 0 nodecolor
-8 /Times set_font
-189 233.3 moveto 16 (CSV) alignedtext
-grestore
-% ELEMENTCLASS42887->ELEMENTCLASS42900
-gsave
-1 setlinewidth
-solid
-0 0 0 edgecolor
-newpath 215.24 239.99 moveto
-224.34 242.81 234.89 247.48 242 255 curveto
-278.82 293.96 291.24 359.22 295.23 390.8 curveto
-stroke
-0 0 0 edgecolor
-newpath 291.76 391.24 moveto
-296.35 400.79 lineto
-298.72 390.47 lineto
-closepath fill
-1 setlinewidth
-solid
-0 0 0 edgecolor
-newpath 291.76 391.24 moveto
-296.35 400.79 lineto
-298.72 390.47 lineto
-closepath stroke
-grestore
-% ELEMENTCLASS42886
-gsave
-0.16471 0.12157 1 nodecolor
-newpath 220 206.5 moveto
-174 206.5 lineto
-174 189.5 lineto
-220 189.5 lineto
-closepath fill
-1 setlinewidth
-filled
-0 0 0 nodecolor
-newpath 220 206.5 moveto
-174 206.5 lineto
-174 189.5 lineto
-220 189.5 lineto
-closepath stroke
-0 0 0 nodecolor
-8 /Times set_font
-182 195.3 moveto 30 (PARSER) alignedtext
-grestore
-% ELEMENTCLASS42886->ELEMENTCLASS42900
-gsave
-1 setlinewidth
-solid
-0 0 0 edgecolor
-newpath 220.03 203.33 moveto
-227.95 206.2 236.26 210.53 242 217 curveto
-265.28 243.27 286.13 348.05 293.84 390.75 curveto
-stroke
-0 0 0 edgecolor
-newpath 290.43 391.58 moveto
-295.62 400.82 lineto
-297.33 390.37 lineto
-closepath fill
-1 setlinewidth
-solid
-0 0 0 edgecolor
-newpath 290.43 391.58 moveto
-295.62 400.82 lineto
-297.33 390.37 lineto
-closepath stroke
-grestore
-% ELEMENTCLASS42885
-gsave
-0.16471 0.12157 1 nodecolor
-newpath 216 168.5 moveto
-178 168.5 lineto
-178 151.5 lineto
-216 151.5 lineto
-closepath fill
-1 setlinewidth
-filled
-0 0 0 nodecolor
-newpath 216 168.5 moveto
-178 168.5 lineto
-178 151.5 lineto
-216 151.5 lineto
-closepath stroke
-0 0 0 nodecolor
-8 /Times set_font
-186 157.3 moveto 22 (UNIX) alignedtext
-grestore
-% ELEMENTCLASS42885->ELEMENTCLASS42900
-gsave
-1 setlinewidth
-solid
-0 0 0 edgecolor
-newpath 216.04 163.82 moveto
-225.12 166.58 235.42 171.24 242 179 curveto
-269.52 211.48 288.55 342.26 294.78 390.77 curveto
-stroke
-0 0 0 edgecolor
-newpath 291.31 391.27 moveto
-296.03 400.76 lineto
-298.26 390.4 lineto
-closepath fill
-1 setlinewidth
-solid
-0 0 0 edgecolor
-newpath 291.31 391.27 moveto
-296.03 400.76 lineto
-298.26 390.4 lineto
-closepath stroke
-grestore
-% ELEMENTCLASS42883
-gsave
-0.16471 0.12157 1 nodecolor
-newpath 220 130.5 moveto
-174 130.5 lineto
-174 113.5 lineto
-220 113.5 lineto
-closepath fill
-1 setlinewidth
-filled
-0 0 0 nodecolor
-newpath 220 130.5 moveto
-174 130.5 lineto
-174 113.5 lineto
-220 113.5 lineto
-closepath stroke
-0 0 0 nodecolor
-8 /Times set_font
-181.5 119.3 moveto 31 (RFC3548) alignedtext
-grestore
-% ELEMENTCLASS42883->ELEMENTCLASS42900
-gsave
-1 setlinewidth
-solid
-0 0 0 edgecolor
-newpath 220.77 127.26 moveto
-228.58 130.11 236.62 134.44 242 141 curveto
-273.78 179.75 290.54 336.71 295.45 390.67 curveto
-stroke
-0 0 0 edgecolor
-newpath 291.97 391.15 moveto
-296.34 400.8 lineto
-298.95 390.53 lineto
-closepath fill
-1 setlinewidth
-solid
-0 0 0 edgecolor
-newpath 291.97 391.15 moveto
-296.34 400.8 lineto
-298.95 390.53 lineto
-closepath stroke
-grestore
-% ELEMENTCLASS42882
-gsave
-0.16471 0.12157 1 nodecolor
-newpath 224 840.5 moveto
-170 840.5 lineto
-170 823.5 lineto
-224 823.5 lineto
-closepath fill
-1 setlinewidth
-filled
-0 0 0 nodecolor
-newpath 224 840.5 moveto
-170 840.5 lineto
-170 823.5 lineto
-224 823.5 lineto
-closepath stroke
-0 0 0 nodecolor
-8 /Times set_font
-177.5 829.3 moveto 39 (LISP-TEXT) alignedtext
-grestore
-% ELEMENTCLASS42882->ELEMENTCLASS42890
-gsave
-1 setlinewidth
-solid
-0 0 0 edgecolor
-newpath 224.59 832 moveto
-233.6 832 243.84 832 253.71 832 curveto
-stroke
-0 0 0 edgecolor
-newpath 253.81 835.5 moveto
-263.81 832 lineto
-253.81 828.5 lineto
-closepath fill
-1 setlinewidth
-solid
-0 0 0 edgecolor
-newpath 253.81 835.5 moveto
-263.81 832 lineto
-253.81 828.5 lineto
-closepath stroke
-grestore
-% ELEMENTCLASS42881->ELEMENTCLASS42900
-gsave
-1 setlinewidth
-solid
-0 0 0 edgecolor
-newpath 219.83 661.87 moveto
-227.93 657.94 236.4 652.42 242 645 curveto
-268.27 610.18 288.07 476.91 294.64 427.54 curveto
-stroke
-0 0 0 edgecolor
-newpath 298.15 427.75 moveto
-295.97 417.38 lineto
-291.21 426.84 lineto
-closepath fill
-1 setlinewidth
-solid
-0 0 0 edgecolor
-newpath 298.15 427.75 moveto
-295.97 417.38 lineto
-291.21 426.84 lineto
-closepath stroke
-grestore
-% ELEMENTCLASS42880
-gsave
-0.16471 0.12157 1 nodecolor
-newpath 230 92.5 moveto
-164 92.5 lineto
-164 75.5 lineto
-230 75.5 lineto
-closepath fill
-1 setlinewidth
-filled
-0 0 0 nodecolor
-newpath 230 92.5 moveto
-164 92.5 lineto
-164 75.5 lineto
-230 75.5 lineto
-closepath stroke
-0 0 0 nodecolor
-8 /Times set_font
-172 81.3 moveto 50 (ARITHMETIC) alignedtext
-grestore
-% ELEMENTCLASS42880->ELEMENTCLASS42900
-gsave
-1 setlinewidth
-solid
-0 0 0 edgecolor
-newpath 227.87 92.17 moveto
-233.25 94.84 238.29 98.36 242 103 curveto
-278.11 148.15 292.3 332.01 295.97 390.82 curveto
-stroke
-0 0 0 edgecolor
-newpath 292.48 391.06 moveto
-296.57 400.83 lineto
-299.46 390.64 lineto
-closepath fill
-1 setlinewidth
-solid
-0 0 0 edgecolor
-newpath 292.48 391.06 moveto
-296.57 400.83 lineto
-299.46 390.64 lineto
-closepath stroke
-grestore
-% ELEMENTCLASS42879
-gsave
-0.16471 0.12157 1 nodecolor
-newpath 222 54.5 moveto
-172 54.5 lineto
-172 37.5 lineto
-222 37.5 lineto
-closepath fill
-1 setlinewidth
-filled
-0 0 0 nodecolor
-newpath 222 54.5 moveto
-172 54.5 lineto
-172 37.5 lineto
-222 37.5 lineto
-closepath stroke
-0 0 0 nodecolor
-8 /Times set_font
-180 43.3 moveto 34 (INVOICE) alignedtext
-grestore
-% ELEMENTCLASS42879->ELEMENTCLASS42900
-gsave
-1 setlinewidth
-solid
-0 0 0 edgecolor
-newpath 222.35 51.66 moveto
-229.71 54.5 237.08 58.73 242 65 curveto
-282.4 116.53 293.8 326.98 296.36 390.66 curveto
-stroke
-0 0 0 edgecolor
-newpath 292.87 390.91 moveto
-296.74 400.77 lineto
-299.86 390.65 lineto
-closepath fill
-1 setlinewidth
-solid
-0 0 0 edgecolor
-newpath 292.87 390.91 moveto
-296.74 400.77 lineto
-299.86 390.65 lineto
-closepath stroke
-grestore
-% ELEMENTCLASS42878->ELEMENTCLASS42900
-gsave
-1 setlinewidth
-solid
-0 0 0 edgecolor
-newpath 227.52 784.14 moveto
-233.05 781.43 238.25 777.82 242 773 curveto
-284.73 718.01 294.57 492.89 296.55 427.12 curveto
-stroke
-0 0 0 edgecolor
-newpath 300.05 427.16 moveto
-296.82 417.07 lineto
-293.05 426.97 lineto
-closepath fill
-1 setlinewidth
-solid
-0 0 0 edgecolor
-newpath 300.05 427.16 moveto
-296.82 417.07 lineto
-293.05 426.97 lineto
-closepath stroke
-grestore
-% ELEMENTCLASS42878->ELEMENTCLASS42884
-gsave
-1 setlinewidth
-solid
-0 0 0 edgecolor
-newpath 227.87 791.66 moveto
-259.26 791.32 307.93 790.78 341.51 790.41 curveto
-stroke
-0 0 0 edgecolor
-newpath 341.88 793.91 moveto
-351.84 790.3 lineto
-341.81 786.91 lineto
-closepath fill
-1 setlinewidth
-solid
-0 0 0 edgecolor
-newpath 341.88 793.91 moveto
-351.84 790.3 lineto
-341.81 786.91 lineto
-closepath stroke
-grestore
-% ELEMENTCLASS42877
-gsave
-0.16471 0.12157 1 nodecolor
-newpath 224 16.5 moveto
-170 16.5 lineto
-170 -.5 lineto
-224 -.5 lineto
-closepath fill
-1 setlinewidth
-filled
-0 0 0 nodecolor
-newpath 224 16.5 moveto
-170 16.5 lineto
-170 -.5 lineto
-224 -.5 lineto
-closepath stroke
-0 0 0 nodecolor
-8 /Times set_font
-177.5 5.3 moveto 39 (DIAGRAM) alignedtext
-grestore
-% ELEMENTCLASS42877->ELEMENTCLASS42900
-gsave
-1 setlinewidth
-solid
-0 0 0 edgecolor
-newpath 224.75 14.57 moveto
-231.31 17.38 237.65 21.36 242 27 curveto
-286.78 85.05 295.19 323 296.69 390.86 curveto
-stroke
-0 0 0 edgecolor
-newpath 293.19 390.93 moveto
-296.89 400.86 lineto
-300.19 390.79 lineto
-closepath fill
-1 setlinewidth
-solid
-0 0 0 edgecolor
-newpath 293.19 390.93 moveto
-296.89 400.86 lineto
-300.19 390.79 lineto
-closepath stroke
-grestore
-endpage
-showpage
-grestore
-%%PageTrailer
-%%EndPage: 1
-%%Trailer
-%%Pages: 1
-%%BoundingBox: 99 36 513 884
-end
-restore
-%%EOF
diff --git a/small-cl-pgms/botihn/Makefile b/small-cl-pgms/botihn/Makefile
index e24db7f..d7797ce 100644
--- a/small-cl-pgms/botihn/Makefile
+++ b/small-cl-pgms/botihn/Makefile
@@ -19,10 +19,10 @@ install::botihn
 	install -m 755 botihn /usr/local/sbin/botihn

 doc::html
-	pandoc -f rst -t asciidoc < botihn.txt >botihn-fr.asc
+	pandoc -f rst -t asciidoc < botihn.txt > botihn-fr.asc

 clean::
-	- rm -f botihn-fr.html botihn-fr.html.in
+	- rm -f botihn-fr.html botihn-fr.html.in botihn-fr.asc

 html::botihn-fr.html
ViewGit