From 468dad2c5af1dfdb34753335c101308e7934fe5b Mon Sep 17 00:00:00 2001 From: Eli Zaretskii Date: Sun, 8 Mar 2026 14:51:13 +0200 Subject: [PATCH] Use images in Emacs Lisp Intro manual (bug#80519) * doc/lispintro/emacs-lisp-intro.texi (Lists diagrammed) (Symbols as Chest, kill-ring-yank-pointer, lambda): Use @image and remove ASCII-art diagrams, which are now on separate *.txt files. (header): Remove print-postscript-figures and its commentary. * doc/lispintro/Makefile.in (auxfiles): New file list. (${buildinfodir}/%.txt, ${buildinfodir}/%.png): New targets. (${buildinfodir}/eintr.info): Depend on ${auxfiles}. (infoclean): Remove ${auxfiles}. * doc/lispintro/cons-1.png: * doc/lispintro/cons-1.txt: * doc/lispintro/cons-2.png: * doc/lispintro/cons-2.txt: * doc/lispintro/cons-2a.png: * doc/lispintro/cons-2a.txt: * doc/lispintro/cons-3.png: * doc/lispintro/cons-3.txt: * doc/lispintro/cons-4.png: * doc/lispintro/cons-4.txt: * doc/lispintro/cons-5.png: * doc/lispintro/cons-5.txt: * doc/lispintro/drawers.png: * doc/lispintro/drawers.txt: * doc/lispintro/lambda-1.png: * doc/lispintro/lambda-1.txt: * doc/lispintro/lambda-2.png: * doc/lispintro/lambda-2.txt: * doc/lispintro/lambda-3.png: * doc/lispintro/lambda-3.txt: New files, from Matto Fransen . --- doc/lispintro/Makefile.in | 31 ++++- doc/lispintro/cons-1.png | Bin 0 -> 3264 bytes doc/lispintro/cons-1.txt | 5 + doc/lispintro/cons-2.png | Bin 0 -> 4038 bytes doc/lispintro/cons-2.txt | 7 ++ doc/lispintro/cons-2a.png | Bin 0 -> 5017 bytes doc/lispintro/cons-2a.txt | 7 ++ doc/lispintro/cons-3.png | Bin 0 -> 4699 bytes doc/lispintro/cons-3.txt | 8 ++ doc/lispintro/cons-4.png | Bin 0 -> 5575 bytes doc/lispintro/cons-4.txt | 8 ++ doc/lispintro/cons-5.png | Bin 0 -> 6064 bytes doc/lispintro/cons-5.txt | 12 ++ doc/lispintro/drawers.png | Bin 0 -> 15219 bytes doc/lispintro/drawers.txt | 22 ++++ doc/lispintro/emacs-lisp-intro.texi | 189 ---------------------------- doc/lispintro/lambda-1.png | Bin 0 -> 3168 bytes doc/lispintro/lambda-1.txt | 4 + doc/lispintro/lambda-2.png | Bin 0 -> 3743 bytes doc/lispintro/lambda-2.txt | 4 + doc/lispintro/lambda-3.png | Bin 0 -> 3584 bytes doc/lispintro/lambda-3.txt | 4 + 22 files changed, 111 insertions(+), 190 deletions(-) create mode 100644 doc/lispintro/cons-1.png create mode 100644 doc/lispintro/cons-1.txt create mode 100644 doc/lispintro/cons-2.png create mode 100644 doc/lispintro/cons-2.txt create mode 100644 doc/lispintro/cons-2a.png create mode 100644 doc/lispintro/cons-2a.txt create mode 100644 doc/lispintro/cons-3.png create mode 100644 doc/lispintro/cons-3.txt create mode 100644 doc/lispintro/cons-4.png create mode 100644 doc/lispintro/cons-4.txt create mode 100644 doc/lispintro/cons-5.png create mode 100644 doc/lispintro/cons-5.txt create mode 100644 doc/lispintro/drawers.png create mode 100644 doc/lispintro/drawers.txt create mode 100644 doc/lispintro/lambda-1.png create mode 100644 doc/lispintro/lambda-1.txt create mode 100644 doc/lispintro/lambda-2.png create mode 100644 doc/lispintro/lambda-2.txt create mode 100644 doc/lispintro/lambda-3.png create mode 100644 doc/lispintro/lambda-3.txt diff --git a/doc/lispintro/Makefile.in b/doc/lispintro/Makefile.in index 411a6f1a473..f941d8166db 100644 --- a/doc/lispintro/Makefile.in +++ b/doc/lispintro/Makefile.in @@ -84,9 +84,37 @@ ps: $(PS_TARGETS) ${buildinfodir}: ${MKDIR_P} $@ +auxfiles = \ + ${buildinfodir}/cons-1.png \ + ${buildinfodir}/cons-1.txt \ + ${buildinfodir}/cons-2.png \ + ${buildinfodir}/cons-2.txt \ + ${buildinfodir}/cons-2a.png \ + ${buildinfodir}/cons-2a.txt \ + ${buildinfodir}/cons-3.png \ + ${buildinfodir}/cons-3.txt \ + ${buildinfodir}/cons-4.png \ + ${buildinfodir}/cons-4.txt \ + ${buildinfodir}/cons-5.png \ + ${buildinfodir}/cons-5.txt \ + ${buildinfodir}/drawers.png \ + ${buildinfodir}/drawers.txt \ + ${buildinfodir}/lambda-1.png \ + ${buildinfodir}/lambda-1.txt \ + ${buildinfodir}/lambda-2.png \ + ${buildinfodir}/lambda-2.txt \ + ${buildinfodir}/lambda-3.png \ + ${buildinfodir}/lambda-3.txt + +${buildinfodir}/%.txt: ${srcdir}/%.txt | ${buildinfodir} + cp $< $@ + +${buildinfodir}/%.png: ${srcdir}/%.png | ${buildinfodir} + cp $< $@ + # The file name eintr must fit within 5 characters, to allow for # -NN extensions to fit into DOS 8+3 limits without clashing. -${buildinfodir}/eintr.info: ${srcs} | ${buildinfodir} +${buildinfodir}/eintr.info: ${srcs} ${auxfiles} | ${buildinfodir} $(AM_V_GEN)$(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ $< emacs-lisp-intro.dvi: ${srcs} @@ -117,6 +145,7 @@ infoclean: rm -f \ $(buildinfodir)/eintr.info \ $(buildinfodir)/eintr.info-[1-9] + rm -f $(auxfiles) bootstrap-clean maintainer-clean: distclean infoclean rm -f TAGS diff --git a/doc/lispintro/cons-1.png b/doc/lispintro/cons-1.png new file mode 100644 index 0000000000000000000000000000000000000000..34fc524120baa6ca1e5dbe00c8c3395da99754b2 GIT binary patch literal 3264 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 |___|___|--> |___|___|--> nil + | | | + | | | + --> rose --> violet --> buttercup diff --git a/doc/lispintro/cons-2.png b/doc/lispintro/cons-2.png new file mode 100644 index 0000000000000000000000000000000000000000..61364db3faf978deef47c22e31118be56d1a8d55 GIT binary patch literal 4038 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 X|IPpY5-fqfp==$d)0ijz6&8O3cPYL} literal 0 HcmV?d00001 diff --git a/doc/lispintro/cons-2.txt b/doc/lispintro/cons-2.txt new file mode 100644 index 00000000000..5146cc9e3a3 --- /dev/null +++ b/doc/lispintro/cons-2.txt @@ -0,0 +1,7 @@ + bouquet + | + | ___ ___ ___ ___ ___ ___ + --> |___|___|--> |___|___|--> |___|___|--> nil + | | | + | | | + --> rose --> violet --> buttercup diff --git a/doc/lispintro/cons-2a.png b/doc/lispintro/cons-2a.png new file mode 100644 index 0000000000000000000000000000000000000000..741430349ff2bd76dc8bb18515501d2c1d4f2377 GIT binary patch literal 5017 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 Ie~*xV0Tit{$p8QV literal 0 HcmV?d00001 diff --git a/doc/lispintro/cons-2a.txt b/doc/lispintro/cons-2a.txt new file mode 100644 index 00000000000..03c26ec1d91 --- /dev/null +++ b/doc/lispintro/cons-2a.txt @@ -0,0 +1,7 @@ + bouquet + | + | -------------- --------------- ---------------- + | | car | cdr | | car | cdr | | car | cdr | + -->| rose | o------->| violet | o------->| butter- | nil | + | | | | | | | cup | | + -------------- --------------- ---------------- diff --git a/doc/lispintro/cons-3.png b/doc/lispintro/cons-3.png new file mode 100644 index 0000000000000000000000000000000000000000..655d01d2800ccd756a51f03cb80cccd3b94f58bc GIT binary patch literal 4699 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 y{K9?BhSfiho4*5pvA#9{ literal 0 HcmV?d00001 diff --git a/doc/lispintro/cons-3.txt b/doc/lispintro/cons-3.txt new file mode 100644 index 00000000000..c8d46d46532 --- /dev/null +++ b/doc/lispintro/cons-3.txt @@ -0,0 +1,8 @@ + bouquet flowers + | | + | ___ ___ | ___ ___ ___ ___ + --> | | | --> | | | | | | + |___|___|----> |___|___|--> |___|___|--> nil + | | | + | | | + --> rose --> violet --> buttercup diff --git a/doc/lispintro/cons-4.png b/doc/lispintro/cons-4.png new file mode 100644 index 0000000000000000000000000000000000000000..0e86d245ba42b64d79c651247b27a6aa7ec7a8bf GIT binary patch literal 5575 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 AH~;_u literal 0 HcmV?d00001 diff --git a/doc/lispintro/cons-4.txt b/doc/lispintro/cons-4.txt new file mode 100644 index 00000000000..34ccdf14834 --- /dev/null +++ b/doc/lispintro/cons-4.txt @@ -0,0 +1,8 @@ + bouquet flowers + | | + | ___ ___ ___ ___ | ___ ___ ___ ___ + --> | | | | | | --> | | | | | | + |___|___|----> |___|___|----> |___|___|---->|___|___|--> nil + | | | | + | | | | + --> lily --> rose --> violet --> buttercup diff --git a/doc/lispintro/cons-5.png b/doc/lispintro/cons-5.png new file mode 100644 index 0000000000000000000000000000000000000000..cc63f1248d93ec137cd48c69cab451f3b17aaf69 GIT binary patch literal 6064 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 literal 0 HcmV?d00001 diff --git a/doc/lispintro/cons-5.txt b/doc/lispintro/cons-5.txt new file mode 100644 index 00000000000..62216753195 --- /dev/null +++ b/doc/lispintro/cons-5.txt @@ -0,0 +1,12 @@ + kill-ring kill-ring-yank-pointer + | | + | ___ ___ | ___ ___ ___ ___ + ---> | | | --> | | | | | | + |___|___|----> |___|___|--> |___|___|--> nil + | | | + | | | + | | --> "yet more text" + | | + | --> "a different piece of text" + | + --> "some text" diff --git a/doc/lispintro/drawers.png b/doc/lispintro/drawers.png new file mode 100644 index 0000000000000000000000000000000000000000..fcfdbaad561c0f5397feb3c19f1aed932d34d4de GIT binary patch literal 15219 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 |___|___|--> |___|___|--> nil - | | | - | | | - --> rose --> violet --> buttercup -@end group -@end smallexample -@end ifclear @noindent In the diagram, each box represents a word of computer memory that @@ -9610,26 +9585,10 @@ evaluation of the expression @need 1250 @noindent creates a situation like this: - @c cons-cell-diagram #2 -@ifset print-postscript-figures @sp 1 @center @image{cons-2} @sp 1 -@end ifset -@ifclear print-postscript-figures -@smallexample -@group -bouquet - | - | ___ ___ ___ ___ ___ ___ - --> |___|___|--> |___|___|--> |___|___|--> nil - | | | - | | | - --> rose --> violet --> buttercup -@end group -@end smallexample -@end ifclear @noindent In this example, the symbol @code{bouquet} holds the address of the first @@ -9638,26 +9597,10 @@ pair of boxes. @need 1200 This same list can be illustrated in a different sort of box notation like this: - @c cons-cell-diagram #2a -@ifset print-postscript-figures @sp 1 @center @image{cons-2a} @sp 1 -@end ifset -@ifclear print-postscript-figures -@smallexample -@group -bouquet - | - | -------------- --------------- ---------------- - | | car | cdr | | car | cdr | | car | cdr | - -->| rose | o------->| violet | o------->| butter- | nil | - | | | | | | | cup | | - -------------- --------------- ---------------- -@end group -@end smallexample -@end ifclear (Symbols consist of more than pairs of addresses, but the structure of a symbol is made up of addresses. Indeed, the symbol @code{bouquet} @@ -9681,29 +9624,10 @@ evaluation of the following expression @need 800 @noindent produces this: - @c cons-cell-diagram #3 -@ifset print-postscript-figures @sp 1 @center @image{cons-3} @sp 1 -@end ifset -@ifclear print-postscript-figures -@sp 1 -@smallexample -@group -bouquet flowers - | | - | ___ ___ | ___ ___ ___ ___ - --> | | | --> | | | | | | - |___|___|----> |___|___|--> |___|___|--> nil - | | | - | | | - --> rose --> violet --> buttercup -@end group -@end smallexample -@sp 1 -@end ifclear @noindent The value of @code{flowers} is @code{(violet buttercup)}, which is @@ -9731,29 +9655,11 @@ the expression @need 1500 @noindent produces: - @c cons-cell-diagram #4 -@ifset print-postscript-figures @sp 1 @center @image{cons-4} @sp 1 @end ifset -@ifclear print-postscript-figures -@sp 1 -@smallexample -@group -bouquet flowers - | | - | ___ ___ ___ ___ | ___ ___ ___ ___ - --> | | | | | | --> | | | | | | - |___|___|----> |___|___|----> |___|___|---->|___|___|--> nil - | | | | - | | | | - --> lily --> rose --> violet --> buttercup -@end group -@end smallexample -@sp 1 -@end ifclear @need 1200 @noindent @@ -9810,43 +9716,10 @@ Reference Manual}.) @need 1500 Here is a fanciful representation: - @c chest-of-drawers diagram -@ifset print-postscript-figures @sp 1 @center @image{drawers} @sp 1 -@end ifset -@ifclear print-postscript-figures -@sp 1 -@smallexample -@group - Chest of Drawers Contents of Drawers - - __ o0O0o __ - / \ - --------------------- - | directions to | [map to] - | symbol name | bouquet - | | - +---------------------+ - | directions to | - | symbol definition | [none] - | | - +---------------------+ - | directions to | [map to] - | variable value | (rose violet buttercup) - | | - +---------------------+ - | directions to | - | property list | [not described here] - | | - +---------------------+ - |/ \| -@end group -@end smallexample -@sp 1 -@end ifclear @node List Exercise @section Exercise @@ -9959,32 +9832,10 @@ by both the @code{kill-ring} and the @code{kill-ring-yank-pointer}. The words ``a different piece of text'' and ``yet more text'' are not duplicated. Instead, the two Lisp variables point to the same pieces of text. Here is a diagram: - @c cons-cell-diagram #5 -@ifset print-postscript-figures @sp 1 @center @image{cons-5} @sp 1 -@end ifset -@ifclear print-postscript-figures -@smallexample -@group -kill-ring kill-ring-yank-pointer - | | - | ___ ___ | ___ ___ ___ ___ - ---> | | | --> | | | | | | - |___|___|----> |___|___|--> |___|___|--> nil - | | | - | | | - | | --> "yet more text" - | | - | --> "a different piece of text" - | - --> "some text" -@end group -@end smallexample -@sp 1 -@end ifclear Both the variable @code{kill-ring} and the variable @code{kill-ring-yank-pointer} are pointers. But the kill ring itself is @@ -20706,24 +20557,10 @@ equivalent of @code{multiply-by-seven} is: @need 1250 @noindent If we want to multiply 3 by 7, we can write: - -@c clear print-postscript-figures @c lambda example diagram #1 -@ifset print-postscript-figures @sp 1 @center @image{lambda-1} @sp 1 -@end ifset -@ifclear print-postscript-figures -@smallexample -@group -(multiply-by-seven 3) - \_______________/ ^ - | | - function argument -@end group -@end smallexample -@end ifclear @noindent This expression returns 21. @@ -20731,44 +20568,18 @@ This expression returns 21. @need 1250 @noindent Similarly, we can write: - @c lambda example diagram #2 -@ifset print-postscript-figures @sp 1 @center @image{lambda-2} @sp 1 -@end ifset -@ifclear print-postscript-figures -@smallexample -@group -((lambda (number) (* 7 number)) 3) - \____________________________/ ^ - | | - anonymous function argument -@end group -@end smallexample -@end ifclear @need 1250 @noindent If we want to divide 100 by 50, we can write: - @c lambda example diagram #3 -@ifset print-postscript-figures @sp 1 @center @image{lambda-3} @sp 1 -@end ifset -@ifclear print-postscript-figures -@smallexample -@group -((lambda (arg) (/ arg 50)) 100) - \______________________/ \_/ - | | - anonymous function argument -@end group -@end smallexample -@end ifclear @noindent This expression returns 2. The 100 is passed to the function, which diff --git a/doc/lispintro/lambda-1.png b/doc/lispintro/lambda-1.png new file mode 100644 index 0000000000000000000000000000000000000000..97d34b86330738a412b0834ff68ba93cadebcb7e GIT binary patch literal 3168 zcmdT{XHXMb7N&$=j0#c=O%RD734#=9f*=rSMtMq=fPkRX&>{vY0iSd*2tq&~njk14 zfi_@HlB0t5D<{`aku?9W^>cN6>;D=;JQIWo#$Igp9W6_H)>$8K~Cb}EL(7Kkf&lMs?t2~ zZqR+~!1cU`SlHkNSg0x;18jkxub(hQRi+rF?bj7VU7>jUR&2FY)(lXgT}+_1iTR#Pv>lE6mkFVdvD!(ZR5Xxfm=Fy*%~HH@FYCKJO}l% zZVD7Kb^s7oAZ3fN$Qj+Ghe)C9c_b*`Vd9w958)8e^tqPf+H7*TWk0{rtn_f{xY!GfT5*NJ zC95fK7dONtjKc)wx8|(-ct&M02T{dHL)U}=yo0rDcf(wewPwcqffLKw&@KuuBzcY0 ztlpr<;>8a-sE>RnWyW}`-xbtm)G2==$N7%PS)(`m$5f3Avwgmy_f8hy-^qAG2o={D z43Q`(5u!qZ`<)?$8{c!Qbn+(JuqPVC{Uf9z*p2AsJl(r{*1xvRD99I-1TBW&wnwJ_ zaqwuO&6YNAw!Hh|qcnwf$RLqgeDlQ7^{EZ?rw=CB`ZFRlC=K4SN&f!f$ymwc%dm@V zAF8taR=`#OZ#L;y(dA5boiF;xM%aZ#sYPzn(}g3Kb0w3H?xe-9_)a}N*XH(B?LCqD z@)zm&miea-nlvM-{Nf5vCo8L}^>Em{%rmZtH9Cn5*)wiX*ZDKvEau|R!eoWk`lp%~ z3xk;H!|9u{SjcfT{1A)f%_8Ufly!=hRG*m^mIAc1t5aU@Ua{A#t*k8ilZMlrKk^S5 zhL%lFOmsx!^7HdUwu5D-k`CbIe&$31l1_Ba=xTmB;H=6J()EXIzkHP-bWeV3YYXEt z5{KA3C)Sd>%XYiAHYa{}o^EaZ`HD1Wd1~Vj(s5AE$}|cjcECO9E#=aG6@&j!hkpUq zGn}rp`7dPaDPkcF{_fQ7G@Fe>QleA;229U$`F{EEx6i7YnAa$M<}tD|IC=^< zvVbmzhn5jXxP8Hme)W7R?OL4MMw7|$_H`B1%9o4cdovLrdVWpBTR3vvfUl`U)2!!L zhH^>7CKiqqizK(?+LYU`zpgpKZ<&!q6-0HTC{w3XxAef|*-OYS}*R zuR;$k+Z8W{nZ{(4X{)@4he&cJBGD8yV3c8+(+O(dm-z=arjZG>ecPag`BBEJTjLuu_Uf9p;4qYLt)_d15)pFG?%L7JJ6#sK(A{s@W)9Ul96kOg-_(GJXjj@ z`BM{e?6T#JMi(77lXP|HPJ(ZUT0oA?Lm3=$e@SW|az%ECG#VjRn4xX**8~3hIF%P0 zk%5k2%h4H>>Q#l^QKi+rN|+H-3M4?FtLf^bK3khXrChNPi{I)i`HT*~*(lQ7AK33v zrXQ0U^jaDyv|Br}s$u1QU6mDzOB~hKbk*5ez8`pnH#Tl`dkM{shh$ZiKg0dpU7Y?0 zZLWB^Nz4dGul7qs+VKqvU0!~GzgcJa& z!1g#_28u<-!jp^y%HusX0Mb4WpD8`NTG!KnIqg)`s?j3%YMc@Q1T50P-HOW={c=V% zi*mOj@_<4(X7V_yvZl~L)ao5%u2bc^?{4=672HTZh)fJsyF!T)ABgB*?uB;b<#SN} zH(^m{=70CwOd5TRg|d!6();059mJ>J*8X|E(H*GG2wq2eM|^c=uSJ9QoLpcU(2kSX z2Ykpk3;DZt<6aPVWwY4&j!)El_Ge-IP*{^!-ERoReYSp{EwZcB?y9yg|8RS18wwL> zdN}Rut|Jw2vUjy3+WM#6`Cl7cf%U%|+yNUI0d-(2w3Wu`5LRn=>_MWh_Uc_dNfREc qKua`25UYoKsTgJnl)o?da{Jub(*JX?MaoV1ktaX(*O%d+&;K`tQ4@Cn literal 0 HcmV?d00001 diff --git a/doc/lispintro/lambda-1.txt b/doc/lispintro/lambda-1.txt new file mode 100644 index 00000000000..a3701e3e7d8 --- /dev/null +++ b/doc/lispintro/lambda-1.txt @@ -0,0 +1,4 @@ + (multiply-by-seven 3) + \_______________/ ^ + | | + function argument diff --git a/doc/lispintro/lambda-2.png b/doc/lispintro/lambda-2.png new file mode 100644 index 0000000000000000000000000000000000000000..d288da4d58709ce9bef71d0110b12b2b674df22b GIT binary patch literal 3743 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 literal 0 HcmV?d00001 diff --git a/doc/lispintro/lambda-2.txt b/doc/lispintro/lambda-2.txt new file mode 100644 index 00000000000..40d0de448c4 --- /dev/null +++ b/doc/lispintro/lambda-2.txt @@ -0,0 +1,4 @@ + ((lambda (number) (* 7 number)) 3) + \____________________________/ ^ + | | + anonymous function argument diff --git a/doc/lispintro/lambda-3.png b/doc/lispintro/lambda-3.png new file mode 100644 index 0000000000000000000000000000000000000000..43027e11953f9f8b9ac023f541b734b0d40eea7f GIT binary patch literal 3584 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 N{t6R#ss4ZB@GriJy{P~I literal 0 HcmV?d00001 diff --git a/doc/lispintro/lambda-3.txt b/doc/lispintro/lambda-3.txt new file mode 100644 index 00000000000..20e48dc2e56 --- /dev/null +++ b/doc/lispintro/lambda-3.txt @@ -0,0 +1,4 @@ + ((lambda (arg) (/ arg 50)) 100) + \______________________/ \_/ + | | + anonymous function argument