list.html 165 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096209720982099210021012102210321042105210621072108210921102111211221132114211521162117211821192120212121222123212421252126212721282129213021312132213321342135213621372138213921402141214221432144214521462147214821492150215121522153215421552156215721582159216021612162216321642165216621672168216921702171217221732174217521762177217821792180218121822183218421852186218721882189219021912192219321942195219621972198219922002201220222032204220522062207220822092210221122122213221422152216221722182219222022212222222322242225222622272228222922302231223222332234223522362237223822392240224122422243224422452246224722482249225022512252225322542255225622572258225922602261226222632264226522662267226822692270227122722273227422752276227722782279228022812282228322842285228622872288228922902291229222932294229522962297229822992300230123022303230423052306230723082309231023112312231323142315231623172318231923202321232223232324232523262327232823292330233123322333233423352336233723382339234023412342234323442345234623472348234923502351235223532354235523562357235823592360236123622363236423652366236723682369237023712372237323742375237623772378237923802381238223832384238523862387238823892390239123922393239423952396239723982399240024012402240324042405240624072408240924102411241224132414241524162417241824192420242124222423242424252426242724282429243024312432243324342435243624372438243924402441244224432444244524462447244824492450245124522453245424552456245724582459246024612462246324642465246624672468246924702471247224732474247524762477247824792480248124822483248424852486248724882489249024912492249324942495249624972498249925002501250225032504250525062507250825092510251125122513251425152516251725182519252025212522252325242525252625272528252925302531253225332534253525362537253825392540254125422543254425452546254725482549255025512552255325542555255625572558255925602561256225632564256525662567256825692570257125722573257425752576257725782579258025812582258325842585258625872588258925902591259225932594259525962597259825992600260126022603260426052606260726082609261026112612261326142615261626172618261926202621262226232624262526262627262826292630263126322633263426352636263726382639264026412642264326442645264626472648264926502651265226532654265526562657265826592660266126622663266426652666266726682669267026712672267326742675267626772678267926802681268226832684268526862687268826892690269126922693269426952696269726982699270027012702270327042705270627072708270927102711271227132714271527162717271827192720272127222723272427252726272727282729273027312732273327342735273627372738273927402741274227432744274527462747274827492750275127522753275427552756275727582759276027612762276327642765276627672768276927702771277227732774277527762777277827792780278127822783278427852786278727882789279027912792279327942795279627972798279928002801280228032804280528062807280828092810281128122813281428152816281728182819282028212822282328242825282628272828282928302831283228332834283528362837283828392840284128422843284428452846284728482849285028512852285328542855285628572858285928602861286228632864286528662867286828692870287128722873287428752876287728782879288028812882288328842885288628872888288928902891289228932894289528962897289828992900290129022903290429052906290729082909291029112912291329142915291629172918291929202921292229232924292529262927292829292930293129322933293429352936293729382939294029412942294329442945294629472948294929502951295229532954295529562957295829592960296129622963296429652966296729682969297029712972297329742975297629772978297929802981298229832984298529862987298829892990299129922993299429952996299729982999300030013002300330043005300630073008300930103011301230133014301530163017301830193020302130223023302430253026302730283029303030313032303330343035303630373038303930403041304230433044304530463047304830493050305130523053305430553056305730583059306030613062306330643065306630673068306930703071307230733074307530763077307830793080308130823083308430853086308730883089309030913092309330943095309630973098309931003101310231033104310531063107310831093110311131123113311431153116311731183119312031213122312331243125312631273128312931303131313231333134313531363137313831393140314131423143314431453146314731483149315031513152315331543155315631573158315931603161316231633164316531663167316831693170317131723173317431753176317731783179318031813182318331843185318631873188318931903191319231933194319531963197319831993200320132023203320432053206320732083209321032113212321332143215321632173218321932203221322232233224322532263227322832293230323132323233323432353236323732383239324032413242324332443245324632473248324932503251325232533254325532563257325832593260326132623263326432653266326732683269327032713272327332743275327632773278327932803281328232833284328532863287328832893290329132923293329432953296329732983299330033013302330333043305330633073308330933103311331233133314331533163317331833193320332133223323332433253326332733283329333033313332333333343335333633373338333933403341334233433344334533463347334833493350335133523353335433553356335733583359336033613362336333643365336633673368336933703371337233733374337533763377337833793380338133823383338433853386338733883389339033913392339333943395339633973398339934003401340234033404340534063407340834093410341134123413341434153416341734183419342034213422342334243425342634273428342934303431343234333434343534363437343834393440344134423443344434453446344734483449345034513452345334543455345634573458345934603461346234633464346534663467346834693470347134723473347434753476347734783479348034813482348334843485348634873488348934903491349234933494349534963497349834993500350135023503350435053506350735083509351035113512351335143515351635173518351935203521352235233524352535263527352835293530353135323533353435353536353735383539354035413542354335443545354635473548354935503551355235533554355535563557355835593560356135623563356435653566356735683569357035713572357335743575357635773578357935803581358235833584358535863587358835893590359135923593359435953596359735983599360036013602360336043605360636073608360936103611361236133614361536163617361836193620362136223623362436253626362736283629363036313632363336343635363636373638363936403641364236433644364536463647364836493650365136523653365436553656365736583659366036613662366336643665366636673668366936703671367236733674367536763677367836793680368136823683368436853686368736883689369036913692369336943695369636973698369937003701370237033704370537063707370837093710371137123713371437153716371737183719372037213722372337243725372637273728372937303731373237333734373537363737373837393740374137423743374437453746374737483749375037513752375337543755375637573758375937603761376237633764376537663767376837693770377137723773377437753776377737783779378037813782
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
  3. "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
  4. <html xmlns="http://www.w3.org/1999/xhtml" lang="English" xml:lang="English">
  5. <head>
  6. <!-- 2024-04-07 So 15:49 -->
  7. <meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
  8. <meta name="viewport" content="width=device-width, initial-scale=1" />
  9. <title>Guile Awesome List</title>
  10. <meta name="author" content="Zelphir Kaltstahl (help &amp; input from Guile community)" />
  11. <meta name="keywords" content="guile, GNU, list, library, framework, project, software" />
  12. <meta name="generator" content="Org Mode" />
  13. <style>
  14. #content { max-width: 60em; margin: auto; }
  15. .title { text-align: center;
  16. margin-bottom: .2em; }
  17. .subtitle { text-align: center;
  18. font-size: medium;
  19. font-weight: bold;
  20. margin-top:0; }
  21. .todo { font-family: monospace; color: red; }
  22. .done { font-family: monospace; color: green; }
  23. .priority { font-family: monospace; color: orange; }
  24. .tag { background-color: #eee; font-family: monospace;
  25. padding: 2px; font-size: 80%; font-weight: normal; }
  26. .timestamp { color: #bebebe; }
  27. .timestamp-kwd { color: #5f9ea0; }
  28. .org-right { margin-left: auto; margin-right: 0px; text-align: right; }
  29. .org-left { margin-left: 0px; margin-right: auto; text-align: left; }
  30. .org-center { margin-left: auto; margin-right: auto; text-align: center; }
  31. .underline { text-decoration: underline; }
  32. #postamble p, #preamble p { font-size: 90%; margin: .2em; }
  33. p.verse { margin-left: 3%; }
  34. pre {
  35. border: 1px solid #e6e6e6;
  36. border-radius: 3px;
  37. background-color: #f2f2f2;
  38. padding: 8pt;
  39. font-family: monospace;
  40. overflow: auto;
  41. margin: 1.2em;
  42. }
  43. pre.src {
  44. position: relative;
  45. overflow: auto;
  46. }
  47. pre.src:before {
  48. display: none;
  49. position: absolute;
  50. top: -8px;
  51. right: 12px;
  52. padding: 3px;
  53. color: #555;
  54. background-color: #f2f2f299;
  55. }
  56. pre.src:hover:before { display: inline; margin-top: 14px;}
  57. /* Languages per Org manual */
  58. pre.src-asymptote:before { content: 'Asymptote'; }
  59. pre.src-awk:before { content: 'Awk'; }
  60. pre.src-authinfo::before { content: 'Authinfo'; }
  61. pre.src-C:before { content: 'C'; }
  62. /* pre.src-C++ doesn't work in CSS */
  63. pre.src-clojure:before { content: 'Clojure'; }
  64. pre.src-css:before { content: 'CSS'; }
  65. pre.src-D:before { content: 'D'; }
  66. pre.src-ditaa:before { content: 'ditaa'; }
  67. pre.src-dot:before { content: 'Graphviz'; }
  68. pre.src-calc:before { content: 'Emacs Calc'; }
  69. pre.src-emacs-lisp:before { content: 'Emacs Lisp'; }
  70. pre.src-fortran:before { content: 'Fortran'; }
  71. pre.src-gnuplot:before { content: 'gnuplot'; }
  72. pre.src-haskell:before { content: 'Haskell'; }
  73. pre.src-hledger:before { content: 'hledger'; }
  74. pre.src-java:before { content: 'Java'; }
  75. pre.src-js:before { content: 'Javascript'; }
  76. pre.src-latex:before { content: 'LaTeX'; }
  77. pre.src-ledger:before { content: 'Ledger'; }
  78. pre.src-lisp:before { content: 'Lisp'; }
  79. pre.src-lilypond:before { content: 'Lilypond'; }
  80. pre.src-lua:before { content: 'Lua'; }
  81. pre.src-matlab:before { content: 'MATLAB'; }
  82. pre.src-mscgen:before { content: 'Mscgen'; }
  83. pre.src-ocaml:before { content: 'Objective Caml'; }
  84. pre.src-octave:before { content: 'Octave'; }
  85. pre.src-org:before { content: 'Org mode'; }
  86. pre.src-oz:before { content: 'OZ'; }
  87. pre.src-plantuml:before { content: 'Plantuml'; }
  88. pre.src-processing:before { content: 'Processing.js'; }
  89. pre.src-python:before { content: 'Python'; }
  90. pre.src-R:before { content: 'R'; }
  91. pre.src-ruby:before { content: 'Ruby'; }
  92. pre.src-sass:before { content: 'Sass'; }
  93. pre.src-scheme:before { content: 'Scheme'; }
  94. pre.src-screen:before { content: 'Gnu Screen'; }
  95. pre.src-sed:before { content: 'Sed'; }
  96. pre.src-sh:before { content: 'shell'; }
  97. pre.src-sql:before { content: 'SQL'; }
  98. pre.src-sqlite:before { content: 'SQLite'; }
  99. /* additional languages in org.el's org-babel-load-languages alist */
  100. pre.src-forth:before { content: 'Forth'; }
  101. pre.src-io:before { content: 'IO'; }
  102. pre.src-J:before { content: 'J'; }
  103. pre.src-makefile:before { content: 'Makefile'; }
  104. pre.src-maxima:before { content: 'Maxima'; }
  105. pre.src-perl:before { content: 'Perl'; }
  106. pre.src-picolisp:before { content: 'Pico Lisp'; }
  107. pre.src-scala:before { content: 'Scala'; }
  108. pre.src-shell:before { content: 'Shell Script'; }
  109. pre.src-ebnf2ps:before { content: 'ebfn2ps'; }
  110. /* additional language identifiers per "defun org-babel-execute"
  111. in ob-*.el */
  112. pre.src-cpp:before { content: 'C++'; }
  113. pre.src-abc:before { content: 'ABC'; }
  114. pre.src-coq:before { content: 'Coq'; }
  115. pre.src-groovy:before { content: 'Groovy'; }
  116. /* additional language identifiers from org-babel-shell-names in
  117. ob-shell.el: ob-shell is the only babel language using a lambda to put
  118. the execution function name together. */
  119. pre.src-bash:before { content: 'bash'; }
  120. pre.src-csh:before { content: 'csh'; }
  121. pre.src-ash:before { content: 'ash'; }
  122. pre.src-dash:before { content: 'dash'; }
  123. pre.src-ksh:before { content: 'ksh'; }
  124. pre.src-mksh:before { content: 'mksh'; }
  125. pre.src-posh:before { content: 'posh'; }
  126. /* Additional Emacs modes also supported by the LaTeX listings package */
  127. pre.src-ada:before { content: 'Ada'; }
  128. pre.src-asm:before { content: 'Assembler'; }
  129. pre.src-caml:before { content: 'Caml'; }
  130. pre.src-delphi:before { content: 'Delphi'; }
  131. pre.src-html:before { content: 'HTML'; }
  132. pre.src-idl:before { content: 'IDL'; }
  133. pre.src-mercury:before { content: 'Mercury'; }
  134. pre.src-metapost:before { content: 'MetaPost'; }
  135. pre.src-modula-2:before { content: 'Modula-2'; }
  136. pre.src-pascal:before { content: 'Pascal'; }
  137. pre.src-ps:before { content: 'PostScript'; }
  138. pre.src-prolog:before { content: 'Prolog'; }
  139. pre.src-simula:before { content: 'Simula'; }
  140. pre.src-tcl:before { content: 'tcl'; }
  141. pre.src-tex:before { content: 'TeX'; }
  142. pre.src-plain-tex:before { content: 'Plain TeX'; }
  143. pre.src-verilog:before { content: 'Verilog'; }
  144. pre.src-vhdl:before { content: 'VHDL'; }
  145. pre.src-xml:before { content: 'XML'; }
  146. pre.src-nxml:before { content: 'XML'; }
  147. /* add a generic configuration mode; LaTeX export needs an additional
  148. (add-to-list 'org-latex-listings-langs '(conf " ")) in .emacs */
  149. pre.src-conf:before { content: 'Configuration File'; }
  150. table { border-collapse:collapse; }
  151. caption.t-above { caption-side: top; }
  152. caption.t-bottom { caption-side: bottom; }
  153. td, th { vertical-align:top; }
  154. th.org-right { text-align: center; }
  155. th.org-left { text-align: center; }
  156. th.org-center { text-align: center; }
  157. td.org-right { text-align: right; }
  158. td.org-left { text-align: left; }
  159. td.org-center { text-align: center; }
  160. dt { font-weight: bold; }
  161. .footpara { display: inline; }
  162. .footdef { margin-bottom: 1em; }
  163. .figure { padding: 1em; }
  164. .figure p { text-align: center; }
  165. .equation-container {
  166. display: table;
  167. text-align: center;
  168. width: 100%;
  169. }
  170. .equation {
  171. vertical-align: middle;
  172. }
  173. .equation-label {
  174. display: table-cell;
  175. text-align: right;
  176. vertical-align: middle;
  177. }
  178. .inlinetask {
  179. padding: 10px;
  180. border: 2px solid gray;
  181. margin: 10px;
  182. background: #ffffcc;
  183. }
  184. #org-div-home-and-up
  185. { text-align: right; font-size: 70%; white-space: nowrap; }
  186. textarea { overflow-x: auto; }
  187. .linenr { font-size: smaller }
  188. .code-highlighted { background-color: #ffff00; }
  189. .org-info-js_info-navigation { border-style: none; }
  190. #org-info-js_console-label
  191. { font-size: 10px; font-weight: bold; white-space: nowrap; }
  192. .org-info-js_search-highlight
  193. { background-color: #ffff00; color: #000000; font-weight: bold; }
  194. .org-svg { }
  195. </style>
  196. </head>
  197. <body>
  198. <div id="content" class="content">
  199. <h1 class="title">Guile Awesome List</h1>
  200. <div id="table-of-contents" role="doc-toc">
  201. <h2>Table of Contents</h2>
  202. <div id="text-table-of-contents" role="doc-toc">
  203. <ul>
  204. <li><a href="#manuals">1. Manuals</a></li>
  205. <li><a href="#tutorials-guide-books">2. Tutorials / Guides / Books</a>
  206. <ul>
  207. <li><a href="#tutorials-guide-books-general-gnu-guile-scheme">2.1. General GNU Guile / Scheme</a></li>
  208. <li><a href="#tutorials-guide-books-macros">2.2. Macros</a>
  209. <ul>
  210. <li><a href="#org17b2153">2.2.1. CK macros</a></li>
  211. </ul>
  212. </li>
  213. <li><a href="#tutorials-guide-books-monads">2.3. Monads</a></li>
  214. <li><a href="#tutorials-guide-books-ffi">2.4. FFI - Foreign Function Interface</a></li>
  215. <li><a href="#tutorials-guide-books-gui-development">2.5. GUI development</a></li>
  216. </ul>
  217. </li>
  218. <li><a href="#libraries">3. Libraries</a>
  219. <ul>
  220. <li><a href="#libraries-async">3.1. Async</a></li>
  221. <li><a href="#libraries-audio">3.2. Audio</a></li>
  222. <li><a href="#libraries-browser">3.3. Browser</a></li>
  223. <li><a href="#libraries-bots">3.4. Bots</a></li>
  224. <li><a href="#libraries-chat">3.5. Chat</a>
  225. <ul>
  226. <li><a href="#libraries-chat-chat-clients">3.5.1. Chat clients</a></li>
  227. <li><a href="#libraries-chat-chat-bots">3.5.2. Chat bots</a></li>
  228. <li><a href="#libraries-chat-protocols">3.5.3. Protocols</a></li>
  229. </ul>
  230. </li>
  231. <li><a href="#libraries-compression">3.6. Compression</a></li>
  232. <li><a href="#libraries-computer-vision">3.7. Computer vision</a></li>
  233. <li><a href="#configuration">3.8. Configuration</a></li>
  234. <li><a href="#cryptography">3.9. Cryptography</a></li>
  235. <li><a href="#databases">3.10. Databases</a>
  236. <ul>
  237. <li><a href="#databases-generic">3.10.1. Generic</a></li>
  238. <li><a href="#databases-postgres">3.10.2. Postgres</a></li>
  239. <li><a href="#databases-sqlite">3.10.3. Sqlite</a></li>
  240. <li><a href="#databases-mysql">3.10.4. MySQL</a></li>
  241. <li><a href="#databases-redis">3.10.5. Redis</a></li>
  242. <li><a href="#databases-couchdb">3.10.6. CouchDB</a></li>
  243. <li><a href="#databases-other">3.10.7. Other</a></li>
  244. </ul>
  245. </li>
  246. <li><a href="#data-structures">3.11. Data structures</a>
  247. <ul>
  248. <li><a href="#data-structures-purely-functional-data-structures-pdfs">3.11.1. Purely functional data structures (PFDs)</a></li>
  249. <li><a href="#data-structures-rdf">3.11.2. RDF</a></li>
  250. <li><a href="#data-structures-lenses">3.11.3. Lenses</a></li>
  251. <li><a href="#data-structures-trees">3.11.4. Trees</a></li>
  252. <li><a href="#data-structures-other">3.11.5. Other</a></li>
  253. </ul>
  254. </li>
  255. <li><a href="#debugging">3.12. Debugging</a></li>
  256. <li><a href="#decentralization">3.13. Decentralization</a></li>
  257. <li><a href="#development-environments">3.14. Development environments</a></li>
  258. <li><a href="#device-management">3.15. Device management</a></li>
  259. <li><a href="#distributed-computing">3.16. Distributed computing</a></li>
  260. <li><a href="#e-mail">3.17. E-Mail</a></li>
  261. <li><a href="#encodings">3.18. Encodings</a></li>
  262. <li><a href="#event-loop">3.19. Event loop</a></li>
  263. <li><a href="#ffi-foreign-function-interface">3.20. FFI - Foreign Function Interface</a></li>
  264. <li><a href="#file-formats">3.21. File formats</a>
  265. <ul>
  266. <li><a href="#file-formats-json">3.21.1. JSON</a></li>
  267. <li><a href="#file-formats-yaml">3.21.2. YAML</a></li>
  268. <li><a href="#file-formats-csv">3.21.3. CSV</a></li>
  269. <li><a href="#file-formats-xml">3.21.4. XML</a></li>
  270. <li><a href="#file-formats-markdown">3.21.5. Markdown</a></li>
  271. <li><a href="#file-formats-texinfo">3.21.6. Texinfo</a></li>
  272. <li><a href="#file-formats-jpeg">3.21.7. JPEG</a></li>
  273. <li><a href="#file-formats-png">3.21.8. PNG</a></li>
  274. <li><a href="#file-formats-ics">3.21.9. ICS</a></li>
  275. <li><a href="#file-formats-torrent">3.21.10. torrent</a></li>
  276. <li><a href="#file-formats-shapefile">3.21.11. Shapefile</a></li>
  277. <li><a href="#file-formats-cbor">3.21.12. CBOR</a></li>
  278. <li><a href="#org90c07e8">3.21.13. TAR</a></li>
  279. <li><a href="#orgae0b11b">3.21.14. INI</a></li>
  280. <li><a href="#file-formats-other">3.21.15. Other</a></li>
  281. </ul>
  282. </li>
  283. <li><a href="#file-system">3.22. File system</a></li>
  284. <li><a href="#game-development">3.23. Game development</a></li>
  285. <li><a href="#games">3.24. Games</a></li>
  286. <li><a href="#generators">3.25. Generators</a></li>
  287. <li><a href="#genomics">3.26. Genomics</a></li>
  288. <li><a href="#graphics">3.27. Graphics</a>
  289. <ul>
  290. <li><a href="#graphics-image-processing">3.27.1. Image processing</a></li>
  291. <li><a href="#graphics-design-and-cad">3.27.2. Design and CAD</a></li>
  292. </ul>
  293. </li>
  294. <li><a href="#gui-development">3.28. GUI development</a></li>
  295. <li><a href="#language">3.29. Language</a></li>
  296. <li><a href="#logging">3.30. Logging</a></li>
  297. <li><a href="#machine-learning">3.31. Machine Learning</a></li>
  298. <li><a href="#macros">3.32. Macros</a></li>
  299. <li><a href="#message-queues">3.33. Message Queues</a></li>
  300. <li><a href="#network-programming">3.34. Network programming</a></li>
  301. <li><a href="#parallelism">3.35. Parallelism</a></li>
  302. <li><a href="#parsing">3.36. Parsing</a>
  303. <ul>
  304. <li><a href="#parsing-parser-combinators">3.36.1. Parser Combinators</a></li>
  305. <li><a href="#parsing-parser-generator">3.36.2. Parser Generator</a></li>
  306. <li><a href="#parsing-other">3.36.3. Other</a></li>
  307. <li><a href="#parsing-xml-parser">3.36.4. XML parser</a></li>
  308. </ul>
  309. </li>
  310. <li><a href="#plotting">3.37. Plotting</a></li>
  311. <li><a href="#protocols">3.38. Protocols</a></li>
  312. <li><a href="#serialization">3.39. Serialization</a></li>
  313. <li><a href="#srfi-scheme-request-for-implementation-implementations">3.40. SRFI (Scheme Request For Implementation) implementations</a></li>
  314. <li><a href="#strings">3.41. Strings</a></li>
  315. <li><a href="#syntax">3.42. Syntax</a></li>
  316. <li><a href="#regular-expressions">3.43. Regular expressions</a></li>
  317. <li><a href="#repl-read-eval-print-loop">3.44. REPL (Read Eval Print Loop)</a></li>
  318. <li><a href="#rpc-remote-procedure-call">3.45. RPC (Remote Procedure Call)</a></li>
  319. <li><a href="#scientific-computing-and-mathematics">3.46. Scientific computing and mathematics</a>
  320. <ul>
  321. <li><a href="#scientific-computing-and-mathematics-interaction-with-the-jupyter-ecosystem">3.46.1. Interaction with the Jupyter ecosystem</a></li>
  322. </ul>
  323. </li>
  324. <li><a href="#search-engine">3.47. Search engine</a></li>
  325. <li><a href="#shell">3.48. Shell</a></li>
  326. <li><a href="#tui-development">3.49. TUI development</a></li>
  327. <li><a href="#testing">3.50. Testing</a>
  328. <ul>
  329. <li><a href="#testing-integration-testing">3.50.1. Integration testing</a></li>
  330. <li><a href="#testing-unit-testing">3.50.2. Unit testing</a></li>
  331. <li><a href="#testing-other">3.50.3. Other</a></li>
  332. </ul>
  333. </li>
  334. <li><a href="#types">3.51. Types</a>
  335. <ul>
  336. <li><a href="#types-static-typing">3.51.1. Static typing</a></li>
  337. </ul>
  338. </li>
  339. <li><a href="#version-control-systems">3.52. Version control systems</a></li>
  340. <li><a href="#web-development">3.53. Web Development</a>
  341. <ul>
  342. <li><a href="#web-development-web-servers">3.53.1. Web servers</a></li>
  343. <li><a href="#web-development-web-clients">3.53.2. Web clients</a></li>
  344. <li><a href="#web-development-web-frameworks">3.53.3. Web frameworks</a></li>
  345. <li><a href="#web-development-protocols">3.53.4. Protocols</a></li>
  346. <li><a href="#web-development-tooling-additional-libraries">3.53.5. Tooling / Additional libraries</a></li>
  347. <li><a href="#web-development-static-website-generators">3.53.6. Static website generators</a></li>
  348. <li><a href="#web-development-template-engine">3.53.7. Template engine</a></li>
  349. <li><a href="#web-development-interaction-with-services">3.53.8. Interaction with services</a></li>
  350. <li><a href="#web-development-web-application-examples">3.53.9. Web application examples</a></li>
  351. <li><a href="#web-development-web-drivers-selenium">3.53.10. Web drivers / Selenium</a></li>
  352. </ul>
  353. </li>
  354. <li><a href="#window-manager">3.54. Window manager</a></li>
  355. <li><a href="#working-with-code">3.55. Working with code</a></li>
  356. <li><a href="#other">3.56. Other</a></li>
  357. <li><a href="#unsorted">3.57. Unsorted</a></li>
  358. </ul>
  359. </li>
  360. <li><a href="#projects">4. Projects</a></li>
  361. <li><a href="#programming-paradigms">5. Programming paradigm</a>
  362. <ul>
  363. <li><a href="#programming-paradigms-object-oriented-programming">5.1. "Object-oriented programming"</a>
  364. <ul>
  365. <li><a href="#programming-paradigms-prototype-based">5.1.1. Prototype based</a></li>
  366. </ul>
  367. </li>
  368. <li><a href="#programming-paradigms-relational-programming">5.2. Relational programming</a></li>
  369. <li><a href="#programming-paradigms-functional-programming">5.3. Functional programming</a></li>
  370. </ul>
  371. </li>
  372. <li><a href="#programming-language-concepts">6. Programming language concepts</a>
  373. <ul>
  374. <li><a href="#programming-language-concepts-Pipeline-pipe-chain-threading">6.1. Pipeline / pipe / chain / threading</a></li>
  375. <li><a href="#org6e1e377">6.2. State Machines</a></li>
  376. </ul>
  377. </li>
  378. <li><a href="#programs">7. Programs</a>
  379. <ul>
  380. <li><a href="#programs-finances">7.1. Finances</a></li>
  381. <li><a href="#programs-window-manager">7.2. Window manager</a></li>
  382. <li><a href="#programs-other">7.3. Other</a></li>
  383. </ul>
  384. </li>
  385. <li><a href="#tools">8. Tools</a>
  386. <ul>
  387. <li><a href="#tools-notes">8.1. Notes</a></li>
  388. <li><a href="#tools-editor-support">8.2. Editor support</a></li>
  389. <li><a href="#tools-project-management">8.3. Project management</a>
  390. <ul>
  391. <li><a href="#tools-project-management-package-managers">8.3.1. Package managers</a></li>
  392. <li><a href="#tools-project-management-time-tracking">8.3.2. Time tracking</a></li>
  393. </ul>
  394. </li>
  395. <li><a href="#tools-build-tools">8.4. Build tools</a></li>
  396. </ul>
  397. </li>
  398. <li><a href="#blogs">9. Blogs</a></li>
  399. <li><a href="#other">10. Other</a></li>
  400. <li><a href="#other-lists-of-guile-software">11. Other lists of Guile software</a></li>
  401. <li><a href="#videos-talks-presentations">12. Videos / Talks / Presentations</a></li>
  402. </ul>
  403. </div>
  404. </div>
  405. <div id="outline-container-manuals" class="outline-2">
  406. <h2 id="manuals"><span class="section-number-2">1.</span> Manuals</h2>
  407. <div class="outline-text-2" id="text-manuals">
  408. <ul class="org-ul">
  409. <li>There is a huge reference manual for GNU Guile on the GNU website: <a href="https://www.gnu.org/software/guile/manual/">https://www.gnu.org/software/guile/manual/</a>.</li>
  410. </ul>
  411. </div>
  412. </div>
  413. <div id="outline-container-tutorials-guide-books" class="outline-2">
  414. <h2 id="tutorials-guide-books"><span class="section-number-2">2.</span> Tutorials / Guides / Books</h2>
  415. <div class="outline-text-2" id="text-tutorials-guide-books">
  416. </div>
  417. <div id="outline-container-tutorials-guide-books-general-gnu-guile-scheme" class="outline-3">
  418. <h3 id="tutorials-guide-books-general-gnu-guile-scheme"><span class="section-number-3">2.1.</span> General GNU Guile / Scheme</h3>
  419. <div class="outline-text-3" id="text-tutorials-guide-books-general-gnu-guile-scheme">
  420. <ul class="org-ul">
  421. <li>Guile reference manual
  422. <ul class="org-ul">
  423. <li>website: <a href="https://www.gnu.org/software/guile/manual/">https://www.gnu.org/software/guile/manual/</a></li>
  424. </ul></li>
  425. <li>official Guile tutorial
  426. <ul class="org-ul">
  427. <li>website: <a href="https://www.gnu.org/software/guile/docs/guile-tut/tutorial.html">https://www.gnu.org/software/guile/docs/guile-tut/tutorial.html</a></li>
  428. </ul></li>
  429. <li>Structure and Interpretation of Computer Programs (SICP)
  430. <ul class="org-ul">
  431. <li>website: <a href="https://mitpress.mit.edu/sites/default/files/sicp/index.html">https://mitpress.mit.edu/sites/default/files/sicp/index.html</a></li>
  432. <li>PDF version: <a href="https://github.com/sarabander/sicp-pdf">https://github.com/sarabander/sicp-pdf</a></li>
  433. </ul></li>
  434. <li>The Little Schemer
  435. <ul class="org-ul">
  436. <li>website: <a href="https://mitpress.mit.edu/books/little-schemer-fourth-edition">https://mitpress.mit.edu/books/little-schemer-fourth-edition</a></li>
  437. </ul></li>
  438. <li>"Learn Scheme in 15 minutes"
  439. <ul class="org-ul">
  440. <li>website: <a href="https://web-artanis.com/scheme.html">https://web-artanis.com/scheme.html</a></li>
  441. </ul></li>
  442. <li>guile-tutorial
  443. <ul class="org-ul">
  444. <li>git repo: <a href="https://notabug.org/cwebber/guile-tutorial">https://notabug.org/cwebber/guile-tutorial</a></li>
  445. </ul></li>
  446. <li>Guile Hacker Handbook
  447. <ul class="org-ul">
  448. <li>website: <a href="https://jeko.frama.io/en/index.html">https://jeko.frama.io/en/index.html</a></li>
  449. <li>git repo: <a href="https://framagit.org/Jeko/jeko.frama.io">https://framagit.org/Jeko/jeko.frama.io</a></li>
  450. </ul></li>
  451. <li>The Scheme Programming Language
  452. <ul class="org-ul">
  453. <li>web version: <a href="https://scheme.com/tspl4/">https://scheme.com/tspl4/</a></li>
  454. </ul></li>
  455. <li>A Pamphlet Against R
  456. <ul class="org-ul">
  457. <li>PDF version: <a href="https://github.com/panicz/pamphlet/raw/master/pamphlet.pdf">https://github.com/panicz/pamphlet/raw/master/pamphlet.pdf</a></li>
  458. <li>source codes: <a href="https://github.com/panicz/pamphlet">https://github.com/panicz/pamphlet</a></li>
  459. </ul></li>
  460. <li>Concrete Abstractions - An Introduction to Computer Science Using Scheme
  461. <ul class="org-ul">
  462. <li>web: <a href="https://gustavus.edu/mcs/max/concrete-abstractions-pdfs/index.html">https://gustavus.edu/mcs/max/concrete-abstractions-pdfs/index.html</a></li>
  463. </ul></li>
  464. </ul>
  465. </div>
  466. </div>
  467. <div id="outline-container-tutorials-guide-books-macros" class="outline-3">
  468. <h3 id="tutorials-guide-books-macros"><span class="section-number-3">2.2.</span> Macros</h3>
  469. <div class="outline-text-3" id="text-tutorials-guide-books-macros">
  470. <ul class="org-ul">
  471. <li>Macros in the GNU Guile reference manual
  472. <ul class="org-ul">
  473. <li>website: <a href="https://www.gnu.org/software/guile/manual/html_node/Macros.html">https://www.gnu.org/software/guile/manual/html_node/Macros.html</a></li>
  474. </ul></li>
  475. <li>Writing Hygienic Macros in Scheme with Syntax-Case
  476. <ul class="org-ul">
  477. <li>article: <a href="https://doc.lagout.org/programmation/Lisp/Scheme/Programming%20With%20Hygienic%20Macros%20-%20R%20K%20Dybvig.pdf">https://doc.lagout.org/programmation/Lisp/Scheme/Programming%20With%20Hygienic%20Macros%20-%20R%20K%20Dybvig.pdf</a></li>
  478. </ul></li>
  479. <li>Community Scheme Wiki about macros
  480. <ul class="org-ul">
  481. <li>scheme-faq-macros
  482. <ul class="org-ul">
  483. <li>website: <a href="http://community.schemewiki.org/?scheme-faq-macros">http://community.schemewiki.org/?scheme-faq-macros</a></li>
  484. </ul></li>
  485. <li>syntax-case
  486. <ul class="org-ul">
  487. <li>website: <a href="http://community.schemewiki.org/?syntax-case">http://community.schemewiki.org/?syntax-case</a></li>
  488. </ul></li>
  489. </ul></li>
  490. <li>A Scheme Syntax-Rules Primer
  491. <ul class="org-ul">
  492. <li>website: <a href="http://www.willdonnelly.net/blog/scheme-syntax-rules/">http://www.willdonnelly.net/blog/scheme-syntax-rules/</a></li>
  493. </ul></li>
  494. <li>Macro-by-Example: Deriving Syntactic Transformations from their Specifications
  495. <ul class="org-ul">
  496. <li>paper: <a href="https://legacy.cs.indiana.edu/ftp/techreports/TR206.pdf">https://legacy.cs.indiana.edu/ftp/techreports/TR206.pdf</a></li>
  497. </ul></li>
  498. <li>wikibooks.org about macros
  499. <ul class="org-ul">
  500. <li>website: <a href="https://en.wikibooks.org/wiki/Scheme_Programming/Macros">https://en.wikibooks.org/wiki/Scheme_Programming/Macros</a></li>
  501. </ul></li>
  502. <li>Advanced Scheme Techniques - Some Naughty Bits
  503. <ul class="org-ul">
  504. <li>slides: <a href="http://people.csail.mit.edu/jhbrown/scheme/macroslides04.pdf">http://people.csail.mit.edu/jhbrown/scheme/macroslides04.pdf</a></li>
  505. </ul></li>
  506. <li>C2 Wiki Scheme Macro Examples
  507. <ul class="org-ul">
  508. <li>website: <a href="http://wiki.c2.com/?SchemeMacroExamples">http://wiki.c2.com/?SchemeMacroExamples</a></li>
  509. </ul></li>
  510. <li>JRM's Syntax-rules Primer for the Merely Eccentric
  511. <ul class="org-ul">
  512. <li>website: <a href="https://hipster.home.xs4all.nl/lib/scheme/gauche/define-syntax-primer.txt">https://hipster.home.xs4all.nl/lib/scheme/gauche/define-syntax-primer.txt</a>
  513. <ul class="org-ul">
  514. <li>another location: <a href="http://www.phyast.pitt.edu/~micheles/syntax-rules.pdf">http://www.phyast.pitt.edu/~micheles/syntax-rules.pdf</a></li>
  515. </ul></li>
  516. </ul></li>
  517. <li>Scheme Macros I: Modules
  518. <ul class="org-ul">
  519. <li>website: <a href="https://blog.veitheller.de/Scheme_Macros_I:_Modules.html">https://blog.veitheller.de/Scheme_Macros_I:_Modules.html</a></li>
  520. </ul></li>
  521. <li>Writing Macros in Continuation-Passing Style
  522. <ul class="org-ul">
  523. <li>paper: <a href="https://www.semanticscholar.org/paper/Writing-Macros-in-Continuation-Passing-Style-Hilsdale-Friedman/752575dc24b2bb6e74ee6146df71860e10e3aee9#citing-papers">https://www.semanticscholar.org/paper/Writing-Macros-in-Continuation-Passing-Style-Hilsdale-Friedman/752575dc24b2bb6e74ee6146df71860e10e3aee9#citing-papers</a> (TODO: find a more permanent looking link)</li>
  524. </ul></li>
  525. <li>Low- and high-level macro programming in Scheme
  526. <ul class="org-ul">
  527. <li>website: <a href="http://okmij.org/ftp/Scheme/macros.html">http://okmij.org/ftp/Scheme/macros.html</a></li>
  528. </ul></li>
  529. </ul>
  530. </div>
  531. <div id="outline-container-org17b2153" class="outline-4">
  532. <h4 id="org17b2153"><span class="section-number-4">2.2.1.</span> CK macros</h4>
  533. <div class="outline-text-4" id="text-2-2-1">
  534. <ul class="org-ul">
  535. <li>Applicative syntax-rules: macros that compose better
  536. <ul class="org-ul">
  537. <li>website: <a href="http://okmij.org/ftp/Scheme/macros.html#ck-macros">http://okmij.org/ftp/Scheme/macros.html#ck-macros</a></li>
  538. </ul></li>
  539. <li>Chicken Scheme Wiki about ck-macros
  540. <ul class="org-ul">
  541. <li>website: <a href="http://wiki.call-cc.org/eggref/5/ck-macros">http://wiki.call-cc.org/eggref/5/ck-macros</a></li>
  542. </ul></li>
  543. </ul>
  544. </div>
  545. </div>
  546. </div>
  547. <div id="outline-container-tutorials-guide-books-monads" class="outline-3">
  548. <h3 id="tutorials-guide-books-monads"><span class="section-number-3">2.3.</span> Monads</h3>
  549. <div class="outline-text-3" id="text-tutorials-guide-books-monads">
  550. <ul class="org-ul">
  551. <li>A Schemer's Introduction to Monads
  552. <ul class="org-ul">
  553. <li>website: <a href="http://www.ccs.neu.edu/home/dherman/research/tutorials/monads-for-schemers.txt">http://www.ccs.neu.edu/home/dherman/research/tutorials/monads-for-schemers.txt</a></li>
  554. </ul></li>
  555. <li>A Schemer’s View of Monads - Partial Draft
  556. <ul class="org-ul">
  557. <li>website: <a href="https://cgi.sice.indiana.edu/~c311/lib/exe/fetch.php?media=manymonads.pdf">https://cgi.sice.indiana.edu/~c311/lib/exe/fetch.php?media=manymonads.pdf</a></li>
  558. </ul></li>
  559. <li>Monadic Programming in Scheme
  560. <ul class="org-ul">
  561. <li>website: <a href="http://okmij.org/ftp/Scheme/monad-in-Scheme.html">http://okmij.org/ftp/Scheme/monad-in-Scheme.html</a></li>
  562. </ul></li>
  563. <li>Panicz Godek's answer to How would you explain a concept of monads to a non-CS person?
  564. <ul class="org-ul">
  565. <li>website <a href="https://www.quora.com/How-would-you-explain-a-concept-of-monads-to-a-non-CS-person/answer/Panicz-Godek">https://www.quora.com/How-would-you-explain-a-concept-of-monads-to-a-non-CS-person/answer/Panicz-Godek</a></li>
  566. </ul></li>
  567. <li>Panicz Godek's answer to <a href="https://www.quora.com/Why-do-so-many-programmers-not-understand-the-theory-of-monads/answer/Panicz-Godek">https://www.quora.com/Why-do-so-many-programmers-not-understand-the-theory-of-monads/answer/Panicz-Godek</a>
  568. <ul class="org-ul">
  569. <li>website <a href="https://www.quora.com/Why-do-so-many-programmers-not-understand-the-theory-of-monads/answer/Panicz-Godek">https://www.quora.com/Why-do-so-many-programmers-not-understand-the-theory-of-monads/answer/Panicz-Godek</a></li>
  570. </ul></li>
  571. </ul>
  572. </div>
  573. </div>
  574. <div id="outline-container-tutorials-guide-books-ffi" class="outline-3">
  575. <h3 id="tutorials-guide-books-ffi"><span class="section-number-3">2.4.</span> FFI - Foreign Function Interface</h3>
  576. <div class="outline-text-3" id="text-tutorials-guide-books-ffi">
  577. <ul class="org-ul">
  578. <li>GNU Guile standard library FFI
  579. <ul class="org-ul">
  580. <li>GNU software reference manual: <a href="https://www.gnu.org/software/guile/manual/html_node/Foreign-Function-Interface.html">https://www.gnu.org/software/guile/manual/html_node/Foreign-Function-Interface.html</a></li>
  581. </ul></li>
  582. </ul>
  583. </div>
  584. </div>
  585. <div id="outline-container-tutorials-guide-books-gui-development" class="outline-3">
  586. <h3 id="tutorials-guide-books-gui-development"><span class="section-number-3">2.5.</span> GUI development</h3>
  587. <div class="outline-text-3" id="text-tutorials-guide-books-gui-development">
  588. <ul class="org-ul">
  589. <li><code>gtk-tutorial-using-guile-gnome</code>
  590. <ul class="org-ul">
  591. <li>git repo: <a href="https://github.com/yang-qu/gtk-tutorial-using-guile-gnome">https://github.com/yang-qu/gtk-tutorial-using-guile-gnome</a></li>
  592. <li>description: <i>"This project converts C code in gtk tutorial <a href="http://www.zetcode.com/tutorials/gtktutorial">http://www.zetcode.com/tutorials/gtktutorial</a></i> to scheme code using guile-gnome."/ (<a href="https://github.com/yang-qu/gtk-tutorial-using-guile-gnome/blob/ec4e9ce9c670b923fc3cc973c1e85fc7934ff4d8/README">https://github.com/yang-qu/gtk-tutorial-using-guile-gnome/blob/ec4e9ce9c670b923fc3cc973c1e85fc7934ff4d8/README</a>)</li>
  593. </ul></li>
  594. </ul>
  595. </div>
  596. </div>
  597. </div>
  598. <div id="outline-container-libraries" class="outline-2">
  599. <h2 id="libraries"><span class="section-number-2">3.</span> Libraries</h2>
  600. <div class="outline-text-2" id="text-libraries">
  601. </div>
  602. <div id="outline-container-libraries-async" class="outline-3">
  603. <h3 id="libraries-async"><span class="section-number-3">3.1.</span> Async</h3>
  604. <div class="outline-text-3" id="text-libraries-async">
  605. <ul class="org-ul">
  606. <li>8sync
  607. <ul class="org-ul">
  608. <li>git repository at Savannah: <a href="https://savannah.gnu.org/projects/8sync">https://savannah.gnu.org/projects/8sync</a></li>
  609. <li>manual / GNU software manual: <a href="https://www.gnu.org/software/8sync/manual/html_node/index.html#Top">https://www.gnu.org/software/8sync/manual/html_node/index.html#Top</a></li>
  610. <li>website / GNU software page: <a href="https://www.gnu.org/software/8sync/">https://www.gnu.org/software/8sync/</a></li>
  611. <li>tutorial: <a href="https://www.gnu.org/software/8sync/manual/html_node/Tutorial.html#Tutorial">https://www.gnu.org/software/8sync/manual/html_node/Tutorial.html#Tutorial</a></li>
  612. </ul></li>
  613. </ul>
  614. </div>
  615. </div>
  616. <div id="outline-container-libraries-audio" class="outline-3">
  617. <h3 id="libraries-audio"><span class="section-number-3">3.2.</span> Audio</h3>
  618. <div class="outline-text-3" id="text-libraries-audio">
  619. <ul class="org-ul">
  620. <li><code>gapd</code>
  621. <ul class="org-ul">
  622. <li>git repo: <a href="https://github.com/rashack/gapd">https://github.com/rashack/gapd</a></li>
  623. <li>description: <i>"Guile Audio Player Daemon"</i> (<a href="https://github.com/rashack/gapd">https://github.com/rashack/gapd</a>)</li>
  624. </ul></li>
  625. <li><code>xmms2-guile</code>
  626. <ul class="org-ul">
  627. <li>git repository: <a href="https://gitlab.com/ft/xmms2-guile">https://gitlab.com/ft/xmms2-guile</a></li>
  628. <li>description: <i>"Native XMMS2 client library for GNU Guile."</i> &#x2013; <a href="https://gitlab.com/ft/xmms2-guile">https://gitlab.com/ft/xmms2-guile</a> @ <code>b26d67cd2cb8100c17244c7bcf50b496e90c98ae</code></li>
  629. </ul></li>
  630. </ul>
  631. </div>
  632. </div>
  633. <div id="outline-container-libraries-browser" class="outline-3">
  634. <h3 id="libraries-browser"><span class="section-number-3">3.3.</span> Browser</h3>
  635. <div class="outline-text-3" id="text-libraries-browser">
  636. <ul class="org-ul">
  637. <li>Nomad
  638. <ul class="org-ul">
  639. <li>git repository at non-GNU Savannah: <a href="https://savannah.nongnu.org/projects/nomad/">https://savannah.nongnu.org/projects/nomad/</a></li>
  640. <li>website: <a href="https://www.nongnu.org/nomad/">https://www.nongnu.org/nomad/</a></li>
  641. </ul></li>
  642. </ul>
  643. </div>
  644. </div>
  645. <div id="outline-container-libraries-bots" class="outline-3">
  646. <h3 id="libraries-bots"><span class="section-number-3">3.4.</span> Bots</h3>
  647. <div class="outline-text-3" id="text-libraries-bots">
  648. <ul class="org-ul">
  649. <li><code>chatter</code>
  650. <ul class="org-ul">
  651. <li>git repo: <a href="https://github.com/apg/chatter">https://github.com/apg/chatter</a></li>
  652. <li>description: <i>"Chatter Bot framework, inspired by Elizabot, for Guile"</i> (<a href="https://github.com/apg/chatter/blob/e407b09e9aedb214e75ffaecbcc86ed105f154aa/README">https://github.com/apg/chatter/blob/e407b09e9aedb214e75ffaecbcc86ed105f154aa/README</a>)</li>
  653. </ul></li>
  654. </ul>
  655. </div>
  656. </div>
  657. <div id="outline-container-libraries-chat" class="outline-3">
  658. <h3 id="libraries-chat"><span class="section-number-3">3.5.</span> Chat</h3>
  659. <div class="outline-text-3" id="text-libraries-chat">
  660. </div>
  661. <div id="outline-container-libraries-chat-chat-clients" class="outline-4">
  662. <h4 id="libraries-chat-chat-clients"><span class="section-number-4">3.5.1.</span> Chat clients</h4>
  663. <div class="outline-text-4" id="text-libraries-chat-chat-clients">
  664. </div>
  665. <ol class="org-ol">
  666. <li><a id="libraries-chat-chat-clients-irc"></a>IRC<br />
  667. <div class="outline-text-5" id="text-libraries-chat-chat-clients-irc">
  668. <ul class="org-ul">
  669. <li><code>guile-irc</code>
  670. <ul class="org-ul">
  671. <li>git repository at GitHub: <a href="https://github.com/rekado/guile-irc">https://github.com/rekado/guile-irc</a></li>
  672. <li>description: <i>"An irc library for GNU guile."</i> (<a href="https://github.com/rekado/guile-irc/blob/master/README">https://github.com/rekado/guile-irc/blob/master/README</a>)</li>
  673. <li>API reference manual: <a href="http://fbs.github.io/guile-irc/">http://fbs.github.io/guile-irc/</a></li>
  674. </ul></li>
  675. </ul>
  676. </div>
  677. </li>
  678. </ol>
  679. </div>
  680. <div id="outline-container-libraries-chat-chat-bots" class="outline-4">
  681. <h4 id="libraries-chat-chat-bots"><span class="section-number-4">3.5.2.</span> Chat bots</h4>
  682. <div class="outline-text-4" id="text-libraries-chat-chat-bots">
  683. </div>
  684. <ol class="org-ol">
  685. <li><a id="libraries-chat-chat-bots-irc"></a>IRC<br />
  686. <div class="outline-text-5" id="text-libraries-chat-chat-bots-irc">
  687. <ul class="org-ul">
  688. <li>Cunning Bot
  689. <ul class="org-ul">
  690. <li>git repo: <a href="https://github.com/cadrspace/cunning-bot">https://github.com/cadrspace/cunning-bot</a></li>
  691. <li><p>
  692. description:
  693. </p>
  694. <blockquote>
  695. <p>
  696. Cunning Bot is a command-oriented IRC bot written in Guile Scheme.
  697. </p>
  698. <p>
  699. (<a href="https://github.com/cadrspace/cunning-bot/blob/cadrobot/README">https://github.com/cadrspace/cunning-bot/blob/cadrobot/README</a>)
  700. </p>
  701. </blockquote></li>
  702. </ul></li>
  703. <li><code>eliug</code>
  704. <ul class="org-ul">
  705. <li>git repo: <a href="https://github.com/szdiy/eliug">https://github.com/szdiy/eliug</a></li>
  706. <li>description: <i>"the smart irc bot written with GNU Guile-scheme"</i> (<a href="https://github.com/szdiy/eliug/blob/030bf891a4007e9c40f8fdacd306c77e71146334/README.md">https://github.com/szdiy/eliug/blob/030bf891a4007e9c40f8fdacd306c77e71146334/README.md</a>)</li>
  707. </ul></li>
  708. </ul>
  709. </div>
  710. </li>
  711. </ol>
  712. </div>
  713. <div id="outline-container-libraries-chat-protocols" class="outline-4">
  714. <h4 id="libraries-chat-protocols"><span class="section-number-4">3.5.3.</span> Protocols</h4>
  715. <div class="outline-text-4" id="text-libraries-chat-protocols">
  716. </div>
  717. <ol class="org-ol">
  718. <li><a id="libraries-chat-protocols-matrix"></a>Matrix<br />
  719. <div class="outline-text-5" id="text-libraries-chat-protocols-matrix">
  720. <ul class="org-ul">
  721. <li><code>guile-deck</code>
  722. <ul class="org-ul">
  723. <li>repository: <a href="https://github.com/artyom-poptsov/guile-deck">https://github.com/artyom-poptsov/guile-deck</a></li>
  724. <li>description: <i>"GNU Guile SDK for the Matrix network (<a href="https://matrix.org">https://matrix.org</a>)"</i> &#x2013; <a href="https://github.com/artyom-poptsov/guile-deck/blob/7df7512501fb9a6fe879fb95857dc172b5a8fc22/README">README file</a></li>
  725. </ul></li>
  726. </ul>
  727. </div>
  728. </li>
  729. </ol>
  730. </div>
  731. </div>
  732. <div id="outline-container-libraries-compression" class="outline-3">
  733. <h3 id="libraries-compression"><span class="section-number-3">3.6.</span> Compression</h3>
  734. <div class="outline-text-3" id="text-libraries-compression">
  735. <ul class="org-ul">
  736. <li><code>guile-zlib</code>
  737. <ul class="org-ul">
  738. <li>git repository at GitHub: <a href="https://github.com/davexunit/guile-zlib">https://github.com/davexunit/guile-zlib</a></li>
  739. </ul></li>
  740. <li><code>guile-zstd</code>
  741. <ul class="org-ul">
  742. <li>git repository at notabug.org: <a href="https://notabug.org/guile-zstd/guile-zstd">https://notabug.org/guile-zstd/guile-zstd</a></li>
  743. <li>description: <i>"GNU Guile bindings to the zstd compression library."</i> (<a href="https://notabug.org/guile-zstd/guile-zstd">https://notabug.org/guile-zstd/guile-zstd</a>)</li>
  744. </ul></li>
  745. </ul>
  746. </div>
  747. </div>
  748. <div id="outline-container-libraries-computer-vision" class="outline-3">
  749. <h3 id="libraries-computer-vision"><span class="section-number-3">3.7.</span> Computer vision</h3>
  750. <div class="outline-text-3" id="text-libraries-computer-vision">
  751. <ul class="org-ul">
  752. <li>GNU Guile-CV
  753. <ul class="org-ul">
  754. <li>website: <a href="https://www.gnu.org/software/guile-cv/">https://www.gnu.org/software/guile-cv/</a></li>
  755. <li>GNU software reference manual: <a href="https://www.gnu.org/software/guile-cv/manual/html_node/index.html">https://www.gnu.org/software/guile-cv/manual/html_node/index.html</a></li>
  756. <li><p>
  757. description:
  758. </p>
  759. <blockquote>
  760. <p>
  761. Guile-CV - Image Processing and Analysis in Guile - is a Computer Vision functional programming library for the Guile Scheme language.
  762. </p>
  763. <p>
  764. Guile-CV is based on Vigra (Vision with Generic Algorithms), enhanced with additional algorithms (Image Textures, Delineate, Reconstruction and many more), all accessible through a nice, clean and easy to use high level API.
  765. </p>
  766. <p>
  767. Guile-CV is natively multi-threaded, and takes advantage of multiple cores, using high-level and fine grained application-level parallelism constructs available in Guile, based on its support to POSIX threads.
  768. </p>
  769. <p>
  770. (<a href="https://www.gnu.org/software/guile-cv/index.html">https://www.gnu.org/software/guile-cv/index.html</a>)
  771. </p>
  772. </blockquote></li>
  773. </ul></li>
  774. </ul>
  775. </div>
  776. </div>
  777. <div id="outline-container-configuration" class="outline-3">
  778. <h3 id="configuration"><span class="section-number-3">3.8.</span> Configuration</h3>
  779. <div class="outline-text-3" id="text-configuration">
  780. <ul class="org-ul">
  781. <li><code>guile-config</code>
  782. <ul class="org-ul">
  783. <li>git repository at GitLab: <a href="https://gitlab.com/a-sassmannshausen/guile-config">https://gitlab.com/a-sassmannshausen/guile-config</a></li>
  784. </ul></li>
  785. </ul>
  786. </div>
  787. </div>
  788. <div id="outline-container-cryptography" class="outline-3">
  789. <h3 id="cryptography"><span class="section-number-3">3.9.</span> Cryptography</h3>
  790. <div class="outline-text-3" id="text-cryptography">
  791. <ul class="org-ul">
  792. <li><code>guile-gcrypt</code>
  793. <ul class="org-ul">
  794. <li>git repo: <a href="https://notabug.org/cwebber/guile-gcrypt">https://notabug.org/cwebber/guile-gcrypt</a></li>
  795. <li><p>
  796. description:
  797. </p>
  798. <blockquote>
  799. <p>
  800. Guile-Gcrypt provides a Guile 3.x/2.x interface to a subset of the GNU
  801. Libgcrypt crytographic library, which is itself used by the GNU Privacy Guard
  802. (GPG).
  803. </p>
  804. <p>
  805. Guile-Gcrypt provides modules for cryptographic hash functions, message
  806. authentication codes (MAC), public-key cryptography, strong randomness, and
  807. more. It is implemented using the foreign function interface (FFI) of Guile.
  808. </p>
  809. </blockquote></li>
  810. </ul></li>
  811. <li><code>gcrypt-guile</code>
  812. <ul class="org-ul">
  813. <li>git repo: <a href="https://github.com/fbs/gcrypt-guile">https://github.com/fbs/gcrypt-guile</a> (archived, read only)</li>
  814. <li>description: <i>"Wrappers to get some libgcrypt functionality into guile."</i> (<a href="https://github.com/fbs/gcrypt-guile/blob/0add93e2486044ca48f3de130a070fba21bf0b2d/README">https://github.com/fbs/gcrypt-guile/blob/0add93e2486044ca48f3de130a070fba21bf0b2d/README</a>)</li>
  815. </ul></li>
  816. </ul>
  817. </div>
  818. </div>
  819. <div id="outline-container-databases" class="outline-3">
  820. <h3 id="databases"><span class="section-number-3">3.10.</span> Databases</h3>
  821. <div class="outline-text-3" id="text-databases">
  822. </div>
  823. <div id="outline-container-databases-generic" class="outline-4">
  824. <h4 id="databases-generic"><span class="section-number-4">3.10.1.</span> Generic</h4>
  825. <div class="outline-text-4" id="text-databases-generic">
  826. <ul class="org-ul">
  827. <li>Generic
  828. <ul class="org-ul">
  829. <li><code>guile-dbi</code>
  830. <ul class="org-ul">
  831. <li>git repository at GitHub: <a href="https://github.com/opencog/guile-dbi">https://github.com/opencog/guile-dbi</a></li>
  832. <li>documentation: <a href="https://htmlpreview.github.io/?https://github.com/opencog/guile-dbi/blob/master/website/guile-dbi.html">https://htmlpreview.github.io/?https://github.com/opencog/guile-dbi/blob/master/website/guile-dbi.html</a></li>
  833. <li>offers MySQL, Postgresql and SQLite3 interfaces</li>
  834. </ul></li>
  835. </ul></li>
  836. </ul>
  837. </div>
  838. </div>
  839. <div id="outline-container-databases-postgres" class="outline-4">
  840. <h4 id="databases-postgres"><span class="section-number-4">3.10.2.</span> Postgres</h4>
  841. <div class="outline-text-4" id="text-databases-postgres">
  842. <ul class="org-ul">
  843. <li><code>guile-squee</code>
  844. <ul class="org-ul">
  845. <li>git repository at notabug.org: <a href="https://notabug.org/cwebber/guile-squee">https://notabug.org/cwebber/guile-squee</a></li>
  846. <li>documentation at: ???</li>
  847. </ul></li>
  848. <li><code>guile-dbd-postgresql</code>
  849. <ul class="org-ul">
  850. <li>git repository: <a href="https://github.com/opencog/guile-dbi/tree/master/guile-dbd-postgresql">https://github.com/opencog/guile-dbi/tree/master/guile-dbd-postgresql</a></li>
  851. <li>documentation: <a href="https://github.com/opencog/guile-dbi/blob/master/guile-dbd-postgresql/README">https://github.com/opencog/guile-dbi/blob/master/guile-dbd-postgresql/README</a></li>
  852. <li>description: This is a sub-repository of <code>guile-dbi</code> which is used for dealing with the Postgres side of things.</li>
  853. </ul></li>
  854. <li>Guile-PG
  855. <ul class="org-ul">
  856. <li>git repository: <a href="https://git.savannah.nongnu.org/cgit/guile-pg.git">https://git.savannah.nongnu.org/cgit/guile-pg.git</a></li>
  857. <li>documentation: ???</li>
  858. <li>project page: <a href="https://www.nongnu.org/guile-pg/">https://www.nongnu.org/guile-pg/</a></li>
  859. <li>description: <i>"Guile-PG is a collection of modules for Guile allowing access to the PostgreSQL RDBMS from Scheme programs."</i> (<a href="https://www.nongnu.org/guile-pg/">https://www.nongnu.org/guile-pg/</a>)</li>
  860. </ul></li>
  861. </ul>
  862. </div>
  863. </div>
  864. <div id="outline-container-databases-sqlite" class="outline-4">
  865. <h4 id="databases-sqlite"><span class="section-number-4">3.10.3.</span> Sqlite</h4>
  866. <div class="outline-text-4" id="text-databases-sqlite">
  867. <ul class="org-ul">
  868. <li><code>guile-sqlite3</code>
  869. <ul class="org-ul">
  870. <li>git repository at notabug.org: <a href="https://notabug.org/guile-sqlite3/guile-sqlite3.git">https://notabug.org/guile-sqlite3/guile-sqlite3.git</a></li>
  871. <li>documentation at: ???</li>
  872. </ul></li>
  873. <li><code>guile-dbd-sqlite3</code>
  874. <ul class="org-ul">
  875. <li>git repository at GitHub: <a href="https://github.com/opencog/guile-dbi/tree/master/guile-dbd-sqlite3">https://github.com/opencog/guile-dbi/tree/master/guile-dbd-sqlite3</a></li>
  876. <li>documentation: <a href="https://github.com/opencog/guile-dbi/blob/master/guile-dbd-sqlite3/README">https://github.com/opencog/guile-dbi/blob/master/guile-dbd-sqlite3/README</a></li>
  877. <li>description: This is a sub-repository of <code>guile-dbi</code> which is used for dealing with the Sqlite3 side of things.</li>
  878. </ul></li>
  879. </ul>
  880. </div>
  881. </div>
  882. <div id="outline-container-databases-mysql" class="outline-4">
  883. <h4 id="databases-mysql"><span class="section-number-4">3.10.4.</span> MySQL</h4>
  884. <div class="outline-text-4" id="text-databases-mysql">
  885. <ul class="org-ul">
  886. <li><code>guile-dbd-mysql</code>
  887. <ul class="org-ul">
  888. <li>git repository at GitHub: <a href="https://github.com/opencog/guile-dbi/tree/master/guile-dbd-mysql">https://github.com/opencog/guile-dbi/tree/master/guile-dbd-mysql</a></li>
  889. <li>documentation: <a href="https://github.com/opencog/guile-dbi/blob/master/guile-dbd-mysql/README">https://github.com/opencog/guile-dbi/blob/master/guile-dbd-mysql/README</a></li>
  890. <li>description: This is a sub-repository of <code>guile-dbi</code> which is used for dealing with the MySQL side of things.</li>
  891. </ul></li>
  892. </ul>
  893. </div>
  894. </div>
  895. <div id="outline-container-databases-redis" class="outline-4">
  896. <h4 id="databases-redis"><span class="section-number-4">3.10.5.</span> Redis</h4>
  897. <div class="outline-text-4" id="text-databases-redis">
  898. <ul class="org-ul">
  899. <li><code>guile-redis</code>
  900. <ul class="org-ul">
  901. <li>git repository at GitHub: <a href="https://github.com/aconchillo/guile-redis">https://github.com/aconchillo/guile-redis</a></li>
  902. </ul></li>
  903. </ul>
  904. </div>
  905. </div>
  906. <div id="outline-container-databases-couchdb" class="outline-4">
  907. <h4 id="databases-couchdb"><span class="section-number-4">3.10.6.</span> CouchDB</h4>
  908. <div class="outline-text-4" id="text-databases-couchdb">
  909. <ul class="org-ul">
  910. <li>CouchDB
  911. <ul class="org-ul">
  912. <li><code>guile-couchdb</code></li>
  913. <li>git repo: <a href="https://github.com/ukulanne/guile-couchdb">https://github.com/ukulanne/guile-couchdb</a></li>
  914. <li>description: CouchDB bindings for Guile</li>
  915. </ul></li>
  916. </ul>
  917. </div>
  918. </div>
  919. <div id="outline-container-databases-other" class="outline-4">
  920. <h4 id="databases-other"><span class="section-number-4">3.10.7.</span> Other</h4>
  921. <div class="outline-text-4" id="text-databases-other">
  922. <ul class="org-ul">
  923. <li>WiredTiger (<a href="http://www.wiredtiger.com/">http://www.wiredtiger.com/</a>
  924. <ul class="org-ul">
  925. <li><code>guile-wiredtiger</code>
  926. <ul class="org-ul">
  927. <li>blog post: <a href="https://hyper.dev/blog/getting-started-with-guile-wiredtiger.html">https://hyper.dev/blog/getting-started-with-guile-wiredtiger.html</a></li>
  928. <li>git repository at: ??? (framagit requires login?)</li>
  929. </ul></li>
  930. </ul></li>
  931. <li><code>guile-sparql</code>: <a href="https://github.com/roelj/guile-sparql">https://github.com/roelj/guile-sparql</a></li>
  932. <li><code>sparqling-genomics</code>: <a href="https://github.com/UMCUGenetics/sparqling-genomics">https://github.com/UMCUGenetics/sparqling-genomics</a></li>
  933. <li><code>nomunofu</code>
  934. <ul class="org-ul">
  935. <li>mentioned on: <a href="https://hyper.dev/blog/nomunofu.html">https://hyper.dev/blog/nomunofu.html</a></li>
  936. <li>git repo: ???</li>
  937. </ul></li>
  938. <li><code>gsparql</code>
  939. <ul class="org-ul">
  940. <li>git repo: <a href="https://github.com/cordawyn/gsparql">https://github.com/cordawyn/gsparql</a></li>
  941. <li>description: <i>"SPARQL client written in Guile"</i> (<a href="https://github.com/cordawyn/gsparql/blob/4076e435cc852a5c91922be5ffc7e201bb35d935/README.md">https://github.com/cordawyn/gsparql/blob/4076e435cc852a5c91922be5ffc7e201bb35d935/README.md</a>)</li>
  942. </ul></li>
  943. </ul>
  944. </div>
  945. </div>
  946. </div>
  947. <div id="outline-container-data-structures" class="outline-3">
  948. <h3 id="data-structures"><span class="section-number-3">3.11.</span> Data structures</h3>
  949. <div class="outline-text-3" id="text-data-structures">
  950. </div>
  951. <div id="outline-container-data-structures-purely-functional-data-structures-pdfs" class="outline-4">
  952. <h4 id="data-structures-purely-functional-data-structures-pdfs"><span class="section-number-4">3.11.1.</span> Purely functional data structures (PFDs)</h4>
  953. <div class="outline-text-4" id="text-data-structures-purely-functional-data-structures-pdfs">
  954. <ul class="org-ul">
  955. <li><code>pfds</code>
  956. <ul class="org-ul">
  957. <li>git repository at GitHub: <a href="https://github.com/ijp/pfds">https://github.com/ijp/pfds</a></li>
  958. <li>description: <i>"pfds is a set of purely functional data structures written in R6RS Scheme. It has been tested with Racket, Guile 2, Vicare Scheme and IronScheme."</i> (<a href="https://github.com/ijp/pfds/blob/454033f82dac7c0b0ea9e84eed1e8ed316487c78/README.org">https://github.com/ijp/pfds/blob/454033f82dac7c0b0ea9e84eed1e8ed316487c78/README.org</a>)</li>
  959. <li>documentation: <a href="https://github.com/ijp/pfds/blob/master/README.org">https://github.com/ijp/pfds/blob/master/README.org</a></li>
  960. </ul></li>
  961. <li><code>fectors</code>
  962. <ul class="org-ul">
  963. <li>git repository at GitHub: <a href="https://github.com/ijp/fectors">https://github.com/ijp/fectors</a>
  964. <ul class="org-ul">
  965. <li>perhaps fork or original or another library: <a href="https://hg.sr.ht/~bjoli/guile-fector">https://hg.sr.ht/~bjoli/guile-fector</a></li>
  966. </ul></li>
  967. </ul></li>
  968. <li><code>guile-fash</code>
  969. <ul class="org-ul">
  970. <li>mercurial repo: <a href="https://hg.sr.ht/~bjoli/guile-fash">https://hg.sr.ht/~bjoli/guile-fash</a></li>
  971. <li>description: <i>"guile-fash implements functional hashes using Hash array mapped tries (HAMTs)."</i> (<a href="https://hg.sr.ht/~bjoli/guile-fash/browse/readme.md?rev=tip">https://hg.sr.ht/~bjoli/guile-fash/browse/readme.md?rev=tip</a>)</li>
  972. <li>guix package: none</li>
  973. </ul></li>
  974. </ul>
  975. </div>
  976. </div>
  977. <div id="outline-container-data-structures-rdf" class="outline-4">
  978. <h4 id="data-structures-rdf"><span class="section-number-4">3.11.2.</span> RDF</h4>
  979. <div class="outline-text-4" id="text-data-structures-rdf">
  980. <ul class="org-ul">
  981. <li><code>guile-rdf</code>
  982. <ul class="org-ul">
  983. <li>git repository at framagit: <a href="https://framagit.org/tyreunom/guile-rdf">https://framagit.org/tyreunom/guile-rdf</a></li>
  984. </ul></li>
  985. </ul>
  986. </div>
  987. </div>
  988. <div id="outline-container-data-structures-lenses" class="outline-4">
  989. <h4 id="data-structures-lenses"><span class="section-number-4">3.11.3.</span> Lenses</h4>
  990. <div class="outline-text-4" id="text-data-structures-lenses">
  991. <ul class="org-ul">
  992. <li><code>guile-lens</code>
  993. <ul class="org-ul">
  994. <li>git repository at GitLab: <a href="https://gitlab.com/a-sassmannshausen/guile-lens">https://gitlab.com/a-sassmannshausen/guile-lens</a></li>
  995. </ul></li>
  996. </ul>
  997. </div>
  998. </div>
  999. <div id="outline-container-data-structures-trees" class="outline-4">
  1000. <h4 id="data-structures-trees"><span class="section-number-4">3.11.4.</span> Trees</h4>
  1001. <div class="outline-text-4" id="text-data-structures-trees">
  1002. <ul class="org-ul">
  1003. <li>Guile AA Tree
  1004. <ul class="org-ul">
  1005. <li>project page: <a href="https://savannah.nongnu.org/projects/guile-aa-tree">https://savannah.nongnu.org/projects/guile-aa-tree</a></li>
  1006. <li>git repo: <a href="https://git.savannah.nongnu.org/cgit/guile-aa-tree.git">https://git.savannah.nongnu.org/cgit/guile-aa-tree.git</a></li>
  1007. <li>description: <i>"An AA tree implementation for scheme. AA trees are self-balancing binary trees, which ensure O(log n) worst case performance for core operations. The module provides non-mutating insert, delete, and search operations, with support for convenient nested tree operations."</i> (<a href="https://savannah.nongnu.org/projects/guile-aa-tree">https://savannah.nongnu.org/projects/guile-aa-tree</a>)</li>
  1008. </ul></li>
  1009. </ul>
  1010. </div>
  1011. </div>
  1012. <div id="outline-container-data-structures-other" class="outline-4">
  1013. <h4 id="data-structures-other"><span class="section-number-4">3.11.5.</span> Other</h4>
  1014. <div class="outline-text-4" id="text-data-structures-other">
  1015. <ul class="org-ul">
  1016. <li><code>copernic</code>
  1017. <ul class="org-ul">
  1018. <li>git repository at GitHub: <a href="https://github.com/amirouche/copernic">https://github.com/amirouche/copernic</a></li>
  1019. </ul></li>
  1020. <li><code>scheme-bytestructures</code>
  1021. <ul class="org-ul">
  1022. <li>git repo: <a href="https://github.com/TaylanUB/scheme-bytestructures">https://github.com/TaylanUB/scheme-bytestructures</a></li>
  1023. <li><p>
  1024. description:
  1025. </p>
  1026. <blockquote>
  1027. <p>
  1028. [&#x2026;] offers a system imitating the type system of the C programming language, to be used on bytevectors. C's type system works on raw memory, and ours works on bytevectors which are an abstraction over raw memory in Scheme. The system is in fact more powerful than the C type system, elevating types to first-class status.
  1029. </p>
  1030. </blockquote></li>
  1031. </ul></li>
  1032. <li><code>guile-newra</code>
  1033. <ul class="org-ul">
  1034. <li>git repo: <a href="https://github.com/lloda/guile-newra">https://github.com/lloda/guile-newra</a></li>
  1035. <li>description: "A Scheme replacement for Guile's array system" (<a href="https://github.com/lloda/guile-newra">https://github.com/lloda/guile-newra</a>)</li>
  1036. </ul></li>
  1037. <li>Treaps
  1038. <ul class="org-ul">
  1039. <li>website: <a href="http://okmij.org/ftp/Scheme/#treaps">http://okmij.org/ftp/Scheme/#treaps</a></li>
  1040. <li><p>
  1041. description:
  1042. </p>
  1043. <blockquote>
  1044. <p>
  1045. An ordered dictionary data structure, based on randomized search trees (treaps) by Seidel and Aragon. Compared to red-black trees, treap is simpler and more elegant, and can get by without sentinels.
  1046. </p>
  1047. <p>
  1048. (<a href="http://okmij.org/ftp/Scheme/#treaps">http://okmij.org/ftp/Scheme/#treaps</a>)
  1049. </p>
  1050. </blockquote></li>
  1051. </ul></li>
  1052. <li><code>array-list</code>
  1053. <ul class="org-ul">
  1054. <li>repository: <a href="https://git.dthompson.us/chickadee.git/tree/chickadee/array-list.scm">https://git.dthompson.us/chickadee.git/tree/chickadee/array-list.scm</a></li>
  1055. <li>description: an implementation of a dynamic array (<a href="https://en.wikipedia.org/wiki/Dynamic_array">https://en.wikipedia.org/wiki/Dynamic_array</a>)</li>
  1056. </ul></li>
  1057. </ul>
  1058. </div>
  1059. </div>
  1060. </div>
  1061. <div id="outline-container-debugging" class="outline-3">
  1062. <h3 id="debugging"><span class="section-number-3">3.12.</span> Debugging</h3>
  1063. <div class="outline-text-3" id="text-debugging">
  1064. <ul class="org-ul">
  1065. <li><code>guile-jtd</code>
  1066. <ul class="org-ul">
  1067. <li>repository: <a href="https://github.com/mwette/guile-jtd">https://github.com/mwette/guile-jtd</a></li>
  1068. <li><p>
  1069. description:
  1070. </p>
  1071. <blockquote>
  1072. <p>
  1073. jump-to-debugger: like Python's pdb.set<sub>trace</sub>(), but for Guile
  1074. </p>
  1075. <p>
  1076. The `(jtd)` module for Guile provides a procedure (jump-to-debugger)
  1077. for escaping to the Guile REPL for the purpose of debugging code.
  1078. It should be considered beta code, still under development.
  1079. </p>
  1080. <p>
  1081. &#x2013; <a href="https://raw.githubusercontent.com/mwette/guile-jtd/cb40b0e0f2fa2a1825a5f1f273b6970be2fe1401/README.md">https://raw.githubusercontent.com/mwette/guile-jtd/cb40b0e0f2fa2a1825a5f1f273b6970be2fe1401/README.md</a>
  1082. </p>
  1083. </blockquote></li>
  1084. <li>documentation: <a href="https://github.com/mwette/guile-jtd/blob/main/README.md">https://github.com/mwette/guile-jtd/blob/main/README.md</a></li>
  1085. </ul></li>
  1086. </ul>
  1087. </div>
  1088. </div>
  1089. <div id="outline-container-decentralization" class="outline-3">
  1090. <h3 id="decentralization"><span class="section-number-3">3.13.</span> Decentralization</h3>
  1091. <div class="outline-text-3" id="text-decentralization">
  1092. <ul class="org-ul">
  1093. <li><code>wispwot</code>
  1094. <ul class="org-ul">
  1095. <li>repository: <a href="https://hg.sr.ht/~arnebab/wispwot/browse">https://hg.sr.ht/~arnebab/wispwot/browse</a></li>
  1096. <li><p>
  1097. description:
  1098. </p>
  1099. <blockquote>
  1100. <p>
  1101. This implements the defense from the Freenet project against disruption of
  1102. communication. It is created to experiment with ways to improve the scaling
  1103. and performance.
  1104. </p>
  1105. <p>
  1106. &#x2013; <a href="https://hg.sr.ht/~arnebab/wispwot">https://hg.sr.ht/~arnebab/wispwot</a>
  1107. </p>
  1108. </blockquote></li>
  1109. </ul></li>
  1110. </ul>
  1111. </div>
  1112. </div>
  1113. <div id="outline-container-development-environments" class="outline-3">
  1114. <h3 id="development-environments"><span class="section-number-3">3.14.</span> Development environments</h3>
  1115. <div class="outline-text-3" id="text-development-environments">
  1116. <ul class="org-ul">
  1117. <li><code>guile-studio</code>
  1118. <ul class="org-ul">
  1119. <li>git repo: <a href="https://git.elephly.net/gitweb.cgi?p=software/guile-studio.git;a=tree">https://git.elephly.net/gitweb.cgi?p=software/guile-studio.git;a=tree</a></li>
  1120. <li><p>
  1121. description:
  1122. </p>
  1123. <blockquote>
  1124. <p>
  1125. Racket has Dr Racket. Guile has &#x2026; Emacs? This is Emacs with a few
  1126. settings that make working with Guile easier for people new to Emacs.
  1127. Features include: CUA mode, Geiser, tool bar icons to evaluate Guile
  1128. buffers, support for Guile's very own picture language, code completion, a
  1129. simple mode line, etc. [&#x2026;]
  1130. </p>
  1131. </blockquote>
  1132. <p>
  1133. (<a href="https://git.elephly.net/gitweb.cgi?p=software/guile-studio.git;a=blob;f=README.org;hb=HEAD">https://git.elephly.net/gitweb.cgi?p=software/guile-studio.git;a=blob;f=README.org;hb=HEAD</a>)
  1134. </p></li>
  1135. </ul></li>
  1136. </ul>
  1137. </div>
  1138. </div>
  1139. <div id="outline-container-device-management" class="outline-3">
  1140. <h3 id="device-management"><span class="section-number-3">3.15.</span> Device management</h3>
  1141. <div class="outline-text-3" id="text-device-management">
  1142. <ul class="org-ul">
  1143. <li><code>guile-udev</code>:
  1144. <ul class="org-ul">
  1145. <li>description: <i>"Guile-Udev is a GNU Guile bindings to libudev."</i> (<a href="https://github.com/artyom-poptsov/guile-udev/blob/master/README">https://github.com/artyom-poptsov/guile-udev/blob/master/README</a>)</li>
  1146. <li>git repo: <a href="https://github.com/artyom-poptsov/guile-udev">https://github.com/artyom-poptsov/guile-udev</a></li>
  1147. <li>documentation: (inside the git repo: <a href="https://github.com/artyom-poptsov/guile-udev/blob/master/doc/guile-udev.texi">https://github.com/artyom-poptsov/guile-udev/blob/master/doc/guile-udev.texi</a>)</li>
  1148. <li>examples: (inside the git repo: <a href="https://github.com/artyom-poptsov/guile-udev/tree/master/examples">https://github.com/artyom-poptsov/guile-udev/tree/master/examples</a>)</li>
  1149. </ul></li>
  1150. </ul>
  1151. </div>
  1152. </div>
  1153. <div id="outline-container-distributed-computing" class="outline-3">
  1154. <h3 id="distributed-computing"><span class="section-number-3">3.16.</span> Distributed computing</h3>
  1155. <div class="outline-text-3" id="text-distributed-computing">
  1156. <ul class="org-ul">
  1157. <li><code>metabash</code>
  1158. <ul class="org-ul">
  1159. <li>git repository: <a href="https://github.com/artyom-poptsov/metabash">https://github.com/artyom-poptsov/metabash</a></li>
  1160. <li>description: <i>"GNU Guile module for running distributed shell pipelines."</i> &#x2013; <a href="https://github.com/artyom-poptsov/metabash/blob/master/README.org">https://github.com/artyom-poptsov/metabash/blob/master/README.org</a></li>
  1161. </ul></li>
  1162. </ul>
  1163. </div>
  1164. </div>
  1165. <div id="outline-container-e-mail" class="outline-3">
  1166. <h3 id="e-mail"><span class="section-number-3">3.17.</span> E-Mail</h3>
  1167. <div class="outline-text-3" id="text-e-mail">
  1168. <ul class="org-ul">
  1169. <li>GNU Mailutils ??? (<a href="https://mailutils.org/">https://mailutils.org/</a>)</li>
  1170. <li><code>guile-email</code>: <a href="https://guile-email.systemreboot.net/">https://guile-email.systemreboot.net/</a></li>
  1171. </ul>
  1172. </div>
  1173. </div>
  1174. <div id="outline-container-encodings" class="outline-3">
  1175. <h3 id="encodings"><span class="section-number-3">3.18.</span> Encodings</h3>
  1176. <div class="outline-text-3" id="text-encodings">
  1177. <ul class="org-ul">
  1178. <li>ERIS - Encoding for Robust Immutable Storage
  1179. <ul class="org-ul">
  1180. <li>website: <a href="http://purl.org/eris">http://purl.org/eris</a></li>
  1181. <li>git repository: <a href="https://gitlab.com/openengiadina/eris/-/tree/main">https://gitlab.com/openengiadina/eris/-/tree/main</a></li>
  1182. <li>description: <i>"ERIS is an encoding for arbitrary content into uniformly sized encrypted blocks that can be reassembled only in possession of a short read capability."</i> &#x2013; <a href="https://gitlab.com/openengiadina/eris/-/blob/88c54329c1f7357941ae3a4bac49847c022c9803/README.org">https://gitlab.com/openengiadina/eris/-/blob/88c54329c1f7357941ae3a4bac49847c022c9803/README.org</a></li>
  1183. </ul></li>
  1184. </ul>
  1185. </div>
  1186. </div>
  1187. <div id="outline-container-event-loop" class="outline-3">
  1188. <h3 id="event-loop"><span class="section-number-3">3.19.</span> Event loop</h3>
  1189. <div class="outline-text-3" id="text-event-loop">
  1190. <ul class="org-ul">
  1191. <li><code>guile-a-sync</code>
  1192. <ul class="org-ul">
  1193. <li>git repository at GitHub: <a href="https://github.com/ChrisVine/guile-a-sync">https://github.com/ChrisVine/guile-a-sync</a></li>
  1194. <li>documentation: ?</li>
  1195. </ul></li>
  1196. </ul>
  1197. </div>
  1198. </div>
  1199. <div id="outline-container-ffi-foreign-function-interface" class="outline-3">
  1200. <h3 id="ffi-foreign-function-interface"><span class="section-number-3">3.20.</span> FFI - Foreign Function Interface</h3>
  1201. <div class="outline-text-3" id="text-ffi-foreign-function-interface">
  1202. <ul class="org-ul">
  1203. <li>GNU Guile standard library FFI
  1204. <ul class="org-ul">
  1205. <li>GNU software reference manual: <a href="https://www.gnu.org/software/guile/manual/html_node/Foreign-Function-Interface.html">https://www.gnu.org/software/guile/manual/html_node/Foreign-Function-Interface.html</a></li>
  1206. </ul></li>
  1207. <li><code>ffi-helper</code> from NYACC
  1208. <ul class="org-ul">
  1209. <li>documentation: <a href="https://www.nongnu.org/nyacc/ffi-help.html">https://www.nongnu.org/nyacc/ffi-help.html</a></li>
  1210. </ul></li>
  1211. </ul>
  1212. </div>
  1213. </div>
  1214. <div id="outline-container-file-formats" class="outline-3">
  1215. <h3 id="file-formats"><span class="section-number-3">3.21.</span> File formats</h3>
  1216. <div class="outline-text-3" id="text-file-formats">
  1217. </div>
  1218. <div id="outline-container-file-formats-json" class="outline-4">
  1219. <h4 id="file-formats-json"><span class="section-number-4">3.21.1.</span> JSON</h4>
  1220. <div class="outline-text-4" id="text-file-formats-json">
  1221. <ul class="org-ul">
  1222. <li><code>guile-json</code>
  1223. <ul class="org-ul">
  1224. <li>on GitHub: <a href="https://github.com/aconchillo/guile-json">https://github.com/aconchillo/guile-json</a></li>
  1225. <li>on savannah: <a href="http://savannah.nongnu.org/projects/guile-json/">http://savannah.nongnu.org/projects/guile-json/</a></li>
  1226. </ul></li>
  1227. <li><code>guile-json</code> (another one)
  1228. <ul class="org-ul">
  1229. <li>git repo: <a href="https://github.com/cthom06/guile-json">https://github.com/cthom06/guile-json</a></li>
  1230. <li>description: <i>"A basic JSON parser for Guile"</i> (<a href="https://github.com/cthom06/guile-json/blob/1b2f77c4242fa52d6f8624806ec0c47e0d2ca08a/README">https://github.com/cthom06/guile-json/blob/1b2f77c4242fa52d6f8624806ec0c47e0d2ca08a/README</a>)</li>
  1231. </ul></li>
  1232. </ul>
  1233. </div>
  1234. </div>
  1235. <div id="outline-container-file-formats-yaml" class="outline-4">
  1236. <h4 id="file-formats-yaml"><span class="section-number-4">3.21.2.</span> YAML</h4>
  1237. <div class="outline-text-4" id="text-file-formats-yaml">
  1238. <ul class="org-ul">
  1239. <li><code>guile-libyaml</code>
  1240. <ul class="org-ul">
  1241. <li>git repo: <a href="https://github.com/mwette/guile-libyaml">https://github.com/mwette/guile-libyaml</a></li>
  1242. <li>description: <i>"simple yaml module using ffi-helper from www.nongnu.org/nyacc"</i> (<a href="https://github.com/mwette/guile-libyaml/blob/f5d33a6880e96571d3cb079ed7755ffc156cac46/README.md">https://github.com/mwette/guile-libyaml/blob/f5d33a6880e96571d3cb079ed7755ffc156cac46/README.md</a>)</li>
  1243. </ul></li>
  1244. </ul>
  1245. </div>
  1246. </div>
  1247. <div id="outline-container-file-formats-csv" class="outline-4">
  1248. <h4 id="file-formats-csv"><span class="section-number-4">3.21.3.</span> CSV</h4>
  1249. <div class="outline-text-4" id="text-file-formats-csv">
  1250. <ul class="org-ul">
  1251. <li><code>guile-csv</code>
  1252. <ul class="org-ul">
  1253. <li>git repository at GitLab: <a href="https://gitlab.com/NalaGinrut/guile-csv">https://gitlab.com/NalaGinrut/guile-csv</a></li>
  1254. </ul></li>
  1255. <li><code>guile-dsv</code>
  1256. <ul class="org-ul">
  1257. <li>This is more general, but can work with CSV as well.</li>
  1258. <li>git repository at GitHub: <a href="https://github.com/artyom-poptsov/guile-dsv">https://github.com/artyom-poptsov/guile-dsv</a></li>
  1259. </ul></li>
  1260. </ul>
  1261. </div>
  1262. </div>
  1263. <div id="outline-container-file-formats-xml" class="outline-4">
  1264. <h4 id="file-formats-xml"><span class="section-number-4">3.21.4.</span> XML</h4>
  1265. <div class="outline-text-4" id="text-file-formats-xml">
  1266. <ul class="org-ul">
  1267. <li>Guile's standard library SXML implementation
  1268. <ul class="org-ul">
  1269. <li>GNU software manual: <a href="https://www.gnu.org/software/guile/manual/html_node/SXML.html">https://www.gnu.org/software/guile/manual/html_node/SXML.html</a></li>
  1270. <li>Basically your templates become functions or macros.</li>
  1271. <li>The structure of your document is kept as Scheme data structures.
  1272. <ul class="org-ul">
  1273. <li>This avoids having parse the document as a long string into an internal data structure to perform semantic transformations.</li>
  1274. <li>It enables pattern matching without resorting to things like regular expressions and similar shenanigans.</li>
  1275. </ul></li>
  1276. </ul></li>
  1277. </ul>
  1278. </div>
  1279. </div>
  1280. <div id="outline-container-file-formats-markdown" class="outline-4">
  1281. <h4 id="file-formats-markdown"><span class="section-number-4">3.21.5.</span> Markdown</h4>
  1282. <div class="outline-text-4" id="text-file-formats-markdown">
  1283. <ul class="org-ul">
  1284. <li><code>guile-commonmark</code>
  1285. <ul class="org-ul">
  1286. <li>git repository at GitHub: <a href="https://github.com/OrangeShark/guile-commonmark">https://github.com/OrangeShark/guile-commonmark</a></li>
  1287. <li>documentation: ???</li>
  1288. </ul></li>
  1289. </ul>
  1290. </div>
  1291. </div>
  1292. <div id="outline-container-file-formats-texinfo" class="outline-4">
  1293. <h4 id="file-formats-texinfo"><span class="section-number-4">3.21.6.</span> Texinfo</h4>
  1294. <div class="outline-text-4" id="text-file-formats-texinfo">
  1295. <ul class="org-ul">
  1296. <li>Guile standard library texinfo functionality
  1297. <ul class="org-ul">
  1298. <li>GNU software manual page: <a href="https://www.gnu.org/software/guile/manual/html_node/texinfo.html">https://www.gnu.org/software/guile/manual/html_node/texinfo.html</a></li>
  1299. </ul></li>
  1300. </ul>
  1301. </div>
  1302. </div>
  1303. <div id="outline-container-file-formats-jpeg" class="outline-4">
  1304. <h4 id="file-formats-jpeg"><span class="section-number-4">3.21.7.</span> JPEG</h4>
  1305. <div class="outline-text-4" id="text-file-formats-jpeg">
  1306. <ul class="org-ul">
  1307. <li><code>guile-jpeg</code>: a library for parsing JPEG files
  1308. <ul class="org-ul">
  1309. <li>git repo: <a href="https://github.com/guildhall/guile-jpeg">https://github.com/guildhall/guile-jpeg</a> (archived)</li>
  1310. </ul></li>
  1311. </ul>
  1312. </div>
  1313. </div>
  1314. <div id="outline-container-file-formats-png" class="outline-4">
  1315. <h4 id="file-formats-png"><span class="section-number-4">3.21.8.</span> PNG</h4>
  1316. <div class="outline-text-4" id="text-file-formats-png">
  1317. <ul class="org-ul">
  1318. <li><code>guile-PNG</code>
  1319. <ul class="org-ul">
  1320. <li>git repo: <a href="https://github.com/artyom-poptsov/guile-png">https://github.com/artyom-poptsov/guile-png</a></li>
  1321. <li>description: "Portable Network Graphics (PNG, RFC 2083) library for GNU Guile." &#x2013; <a href="https://github.com/artyom-poptsov/guile-png/blob/06bb2c734c3007346f970be6f6a00407ac5d76f0/README.org">https://github.com/artyom-poptsov/guile-png/blob/06bb2c734c3007346f970be6f6a00407ac5d76f0/README.org</a></li>
  1322. </ul></li>
  1323. </ul>
  1324. </div>
  1325. </div>
  1326. <div id="outline-container-file-formats-ics" class="outline-4">
  1327. <h4 id="file-formats-ics"><span class="section-number-4">3.21.9.</span> ICS</h4>
  1328. <div class="outline-text-4" id="text-file-formats-ics">
  1329. <ul class="org-ul">
  1330. <li><code>guile-ics</code>
  1331. <ul class="org-ul">
  1332. <li>git repository at GitHub: <a href="https://github.com/artyom-poptsov/guile-ics">https://github.com/artyom-poptsov/guile-ics</a></li>
  1333. </ul></li>
  1334. </ul>
  1335. </div>
  1336. </div>
  1337. <div id="outline-container-file-formats-torrent" class="outline-4">
  1338. <h4 id="file-formats-torrent"><span class="section-number-4">3.21.10.</span> torrent</h4>
  1339. <div class="outline-text-4" id="text-file-formats-torrent">
  1340. <ul class="org-ul">
  1341. <li><code>torrent</code>
  1342. <ul class="org-ul">
  1343. <li>git repository at GitHub: <a href="https://github.com/o-nly/torrent">https://github.com/o-nly/torrent</a></li>
  1344. <li>documentation at: ???</li>
  1345. </ul></li>
  1346. </ul>
  1347. </div>
  1348. </div>
  1349. <div id="outline-container-file-formats-shapefile" class="outline-4">
  1350. <h4 id="file-formats-shapefile"><span class="section-number-4">3.21.11.</span> Shapefile</h4>
  1351. <div class="outline-text-4" id="text-file-formats-shapefile">
  1352. <ul class="org-ul">
  1353. <li><code>guile-shapefile</code>
  1354. <ul class="org-ul">
  1355. <li>git repository: <a href="https://github.com/HugoNikanor/guile-shapefile">https://github.com/HugoNikanor/guile-shapefile</a></li>
  1356. <li>description: <i>"Guile Shapefile is a Guile library for reading shapefiles."</i> (<a href="https://github.com/HugoNikanor/guile-shapefile/blob/37fd219d3dc3d944e8f29b1bad6baf9e59372275/README.md">https://github.com/HugoNikanor/guile-shapefile/blob/37fd219d3dc3d944e8f29b1bad6baf9e59372275/README.md</a>)</li>
  1357. <li>documentation: <a href="https://hugonikanor.github.io/guile-shapefile/">https://hugonikanor.github.io/guile-shapefile/</a></li>
  1358. </ul></li>
  1359. </ul>
  1360. </div>
  1361. </div>
  1362. <div id="outline-container-file-formats-cbor" class="outline-4">
  1363. <h4 id="file-formats-cbor"><span class="section-number-4">3.21.12.</span> CBOR</h4>
  1364. <div class="outline-text-4" id="text-file-formats-cbor">
  1365. <ul class="org-ul">
  1366. <li><code>guile-cbor</code>
  1367. <ul class="org-ul">
  1368. <li>git repo: <a href="https://inqlab.net/git/guile-cbor.git/">https://inqlab.net/git/guile-cbor.git/</a></li>
  1369. <li><p>
  1370. description:
  1371. </p>
  1372. <blockquote>
  1373. <p>
  1374. The Concise Binary Object Representation (CBOR), as specified by RFC 8949,
  1375. is a binary data serialization format. CBOR is similar to JSON but
  1376. serializes to binary which is smaller and faster to generate and parse.
  1377. </p>
  1378. </blockquote></li>
  1379. </ul></li>
  1380. </ul>
  1381. </div>
  1382. </div>
  1383. <div id="outline-container-org90c07e8" class="outline-4">
  1384. <h4 id="org90c07e8"><span class="section-number-4">3.21.13.</span> TAR</h4>
  1385. <div class="outline-text-4" id="text-3-21-13">
  1386. <p>
  1387. There is no standalone library for TAR files yet (2021-11-15), but there is code dealing with TAR files, which might be separatable into its own library:
  1388. </p>
  1389. <ul class="org-ul">
  1390. <li>Implementation of Ustar in Gash:
  1391. <ul class="org-ul">
  1392. <li><a href="https://git.savannah.nongnu.org/cgit/gash/gash-utils.git/tree/gash/commands/tar.scm">https://git.savannah.nongnu.org/cgit/gash/gash-utils.git/tree/gash/commands/tar.scm</a></li>
  1393. <li><a href="https://git.savannah.nongnu.org/cgit/gash/gash-utils.git/tree/gash/ustar.scm">https://git.savannah.nongnu.org/cgit/gash/gash-utils.git/tree/gash/ustar.scm</a></li>
  1394. </ul></li>
  1395. <li>GNU Tar stuff:
  1396. <ul class="org-ul">
  1397. <li><a href="https://git.savannah.gnu.org/cgit/tar.git/tree/src/tar.h">https://git.savannah.gnu.org/cgit/tar.git/tree/src/tar.h</a></li>
  1398. <li><a href="https://savannah.gnu.org/git/?group=tar">https://savannah.gnu.org/git/?group=tar</a></li>
  1399. <li><a href="https://www.gnu.org/software/tar/">https://www.gnu.org/software/tar/</a></li>
  1400. </ul></li>
  1401. </ul>
  1402. </div>
  1403. </div>
  1404. <div id="outline-container-orgae0b11b" class="outline-4">
  1405. <h4 id="orgae0b11b"><span class="section-number-4">3.21.14.</span> INI</h4>
  1406. <div class="outline-text-4" id="text-3-21-14">
  1407. <ul class="org-ul">
  1408. <li><code>Guile-INI</code>
  1409. <ul class="org-ul">
  1410. <li>git repository: <a href="https://github.com/artyom-poptsov/guile-ini">https://github.com/artyom-poptsov/guile-ini</a></li>
  1411. <li>description: <i>"A GNU Guile library for working with INI format."</i> (<a href="https://github.com/artyom-poptsov/guile-ini/blob/6764a8a23d8d5911c08ee2bc996cb776e6b0ae5e/README.org">https://github.com/artyom-poptsov/guile-ini/blob/6764a8a23d8d5911c08ee2bc996cb776e6b0ae5e/README.org</a>)</li>
  1412. <li>documentation: <a href="https://github.com/artyom-poptsov/guile-ini/tree/master/doc">https://github.com/artyom-poptsov/guile-ini/tree/master/doc</a></li>
  1413. </ul></li>
  1414. </ul>
  1415. </div>
  1416. </div>
  1417. <div id="outline-container-file-formats-other" class="outline-4">
  1418. <h4 id="file-formats-other"><span class="section-number-4">3.21.15.</span> Other</h4>
  1419. <div class="outline-text-4" id="text-file-formats-other">
  1420. <ul class="org-ul">
  1421. <li><code>guile-mime</code>
  1422. <ul class="org-ul">
  1423. <li>git repo: <a href="https://mikegerwitz.com/projects/guile-mime/tree/">https://mikegerwitz.com/projects/guile-mime/tree/</a></li>
  1424. <li>description: A library, that helps figuring out the MIME type of a file.</li>
  1425. </ul></li>
  1426. <li>If the input is not input from users and is trustworthy, one might be able to leverage read/write of s-expressions instead of using other formats.</li>
  1427. </ul>
  1428. </div>
  1429. </div>
  1430. </div>
  1431. <div id="outline-container-file-system" class="outline-3">
  1432. <h3 id="file-system"><span class="section-number-3">3.22.</span> File system</h3>
  1433. <div class="outline-text-3" id="text-file-system">
  1434. <ul class="org-ul">
  1435. <li><code>sdupes</code>
  1436. <ul class="org-ul">
  1437. <li>description: duplicate file detection</li>
  1438. <li>git repository at GitHub: <a href="https://github.com/sph-mn/sdupes">https://github.com/sph-mn/sdupes</a></li>
  1439. </ul></li>
  1440. <li><code>duplicates</code>
  1441. <ul class="org-ul">
  1442. <li>git repo: <a href="https://github.com/rashack/duplicates">https://github.com/rashack/duplicates</a></li>
  1443. <li>description: <i>"Find duplicate files - in Guile Scheme"</i> (<a href="https://github.com/rashack/duplicates">https://github.com/rashack/duplicates</a>)</li>
  1444. </ul></li>
  1445. <li><code>guile-filesystem</code>
  1446. <ul class="org-ul">
  1447. <li>git repo: <a href="https://gitlab.com/lilyp/guile-filesystem">https://gitlab.com/lilyp/guile-filesystem</a></li>
  1448. <li>description: "[&#x2026;] provides a set of utilities to deal with the filesystem beyond what POSIX mandates, from manipulating file names to actually creating files and directories." &#x2013; <a href="https://gitlab.com/lilyp/guile-filesystem/-/blob/f1f7f45c23a8662abdecc4b054b4da64f3cc868f/README.org">https://gitlab.com/lilyp/guile-filesystem/-/blob/f1f7f45c23a8662abdecc4b054b4da64f3cc868f/README.org</a></li>
  1449. </ul></li>
  1450. <li><code>guile-fslib</code>
  1451. <ul class="org-ul">
  1452. <li>git repo: <a href="https://notabug.org/ZelphirKaltstahl/guile-fslib">https://notabug.org/ZelphirKaltstahl/guile-fslib</a></li>
  1453. <li>description: "guile-fslib is a library, which contains procedures for working with filenames. It simplifies common tasks like splitting, joining and getting the file extension of a filename." &#x2013; <a href="https://notabug.org/ZelphirKaltstahl/guile-fslib/src/67266331dc9be54cc4c7bf2a6b814815c21e44e1/README.org">https://notabug.org/ZelphirKaltstahl/guile-fslib/src/67266331dc9be54cc4c7bf2a6b814815c21e44e1/README.org</a></li>
  1454. </ul></li>
  1455. </ul>
  1456. </div>
  1457. </div>
  1458. <div id="outline-container-game-development" class="outline-3">
  1459. <h3 id="game-development"><span class="section-number-3">3.23.</span> Game development</h3>
  1460. <div class="outline-text-3" id="text-game-development">
  1461. <ul class="org-ul">
  1462. <li>Chickadee
  1463. <ul class="org-ul">
  1464. <li>describes itself as "game development toolkit"</li>
  1465. <li>OpenGL based</li>
  1466. <li>website: <a href="https://dthompson.us/projects/chickadee.html">https://dthompson.us/projects/chickadee.html</a></li>
  1467. <li>manual: <a href="https://dthompson.us/manuals/chickadee/index.html">https://dthompson.us/manuals/chickadee/index.html</a></li>
  1468. </ul></li>
  1469. <li><code>guile-allegro5</code>
  1470. <ul class="org-ul">
  1471. <li>git repo: <a href="https://github.com/davexunit/guile-allegro5">https://github.com/davexunit/guile-allegro5</a></li>
  1472. <li>description: <i>"Allegro 5 is a cross-platform, open source, game programming library written in C. Guile-allegro5 is a collection of modules that provides bindings for Guile."</i> (<a href="https://github.com/davexunit/guile-allegro5/blob/614ecc978e034f7b7ba5bd23e27111c8fef81b56/README.md">https://github.com/davexunit/guile-allegro5/blob/614ecc978e034f7b7ba5bd23e27111c8fef81b56/README.md</a>)</li>
  1473. </ul></li>
  1474. <li><code>gzochi</code>
  1475. <ul class="org-ul">
  1476. <li>git repo: <a href="https://git.savannah.gnu.org/cgit/gzochi.git">https://git.savannah.gnu.org/cgit/gzochi.git</a></li>
  1477. <li>project page: <a href="https://www.nongnu.org/gzochi/">https://www.nongnu.org/gzochi/</a></li>
  1478. <li>documentation: <a href="https://www.nongnu.org/gzochi/gzochid.html">https://www.nongnu.org/gzochi/gzochid.html</a></li>
  1479. <li><p>
  1480. description:
  1481. </p>
  1482. <blockquote>
  1483. <p>
  1484. gzochi (<i>zoʊ-tʃiː</i>) is a programming framework for developing online games
  1485. in GNU Guile, and a distributed middleware container that hosts your games
  1486. for thousands of connected players. gzochi takes care of the hard parts of
  1487. online game development - concurrency, data persistence, and network
  1488. communications - so you can focus on the stuff that matters!
  1489. </p>
  1490. </blockquote>
  1491. <p>
  1492. (<a href="https://www.nongnu.org/gzochi/">https://www.nongnu.org/gzochi/</a>)
  1493. </p></li>
  1494. </ul></li>
  1495. </ul>
  1496. </div>
  1497. </div>
  1498. <div id="outline-container-games" class="outline-3">
  1499. <h3 id="games"><span class="section-number-3">3.24.</span> Games</h3>
  1500. <div class="outline-text-3" id="text-games">
  1501. <ul class="org-ul">
  1502. <li>StayAlive
  1503. <ul class="org-ul">
  1504. <li>git repo: <a href="https://github.com/mwitmer/StayAlive">https://github.com/mwitmer/StayAlive</a></li>
  1505. </ul></li>
  1506. <li>dryads-wake
  1507. <ul class="org-ul">
  1508. <li>git repo: <a href="https://hg.sr.ht/~arnebab/dryads-wake">https://hg.sr.ht/~arnebab/dryads-wake</a></li>
  1509. <li><p>
  1510. description:
  1511. </p>
  1512. <blockquote>
  1513. <p>
  1514. Dryads Wake is a game of dialogue and choices.
  1515. (<a href="https://hg.sr.ht/~arnebab/dryads-wake">https://hg.sr.ht/~arnebab/dryads-wake</a>)
  1516. </p>
  1517. </blockquote></li>
  1518. </ul></li>
  1519. <li><code>guile-mud</code>
  1520. <ul class="org-ul">
  1521. <li>git repo: <a href="https://github.com/NalaGinrut/guile-mud">https://github.com/NalaGinrut/guile-mud</a></li>
  1522. <li>description: ???</li>
  1523. </ul></li>
  1524. <li><code>game_of_life</code>
  1525. <ul class="org-ul">
  1526. <li>git repo: <a href="https://github.com/deathgrindfreak/game_of_life">https://github.com/deathgrindfreak/game_of_life</a></li>
  1527. <li>description: <i>"An implementation of Conway's Game of Life in Guile Scheme."</i> (<a href="https://github.com/deathgrindfreak/game_of_life/blob/501f7d3c0dc50a3cbac8df3620f8e507f32d5aa5/README.md">https://github.com/deathgrindfreak/game_of_life/blob/501f7d3c0dc50a3cbac8df3620f8e507f32d5aa5/README.md</a>)</li>
  1528. </ul></li>
  1529. </ul>
  1530. </div>
  1531. </div>
  1532. <div id="outline-container-generators" class="outline-3">
  1533. <h3 id="generators"><span class="section-number-3">3.25.</span> Generators</h3>
  1534. <div class="outline-text-3" id="text-generators">
  1535. <ul class="org-ul">
  1536. <li>C-Ast
  1537. <ul class="org-ul">
  1538. <li>git repo: <a href="https://github.com/zenhack/c-ast">https://github.com/zenhack/c-ast</a></li>
  1539. <li>description: <i>"C-Ast is a GNU Guile library for generating C code."</i> (<a href="https://github.com/zenhack/c-ast/blob/5af5758ccae5e468587cda837e1fd9e685205bef/README.md">https://github.com/zenhack/c-ast/blob/5af5758ccae5e468587cda837e1fd9e685205bef/README.md</a>)</li>
  1540. </ul></li>
  1541. </ul>
  1542. </div>
  1543. </div>
  1544. <div id="outline-container-genomics" class="outline-3">
  1545. <h3 id="genomics"><span class="section-number-3">3.26.</span> Genomics</h3>
  1546. <div class="outline-text-3" id="text-genomics">
  1547. <ul class="org-ul">
  1548. <li><code>sparqling-genomics</code>
  1549. <ul class="org-ul">
  1550. <li>git repo: <a href="https://github.com/UMCUGenetics/sparqling-genomics">https://github.com/UMCUGenetics/sparqling-genomics</a></li>
  1551. <li><p>
  1552. description:
  1553. </p>
  1554. <blockquote>
  1555. <p>
  1556. This project provides programs to extract RDF triplets from commonly used file formats in genomics. It also provides a web-based environment to explore the RDF triplets once inserted in a triple store.
  1557. </p>
  1558. <p>
  1559. (<a href="https://github.com/UMCUGenetics/sparqling-genomics">https://github.com/UMCUGenetics/sparqling-genomics</a>)
  1560. </p>
  1561. </blockquote></li>
  1562. <li>usage example: <a href="https://github.com/UMCUGenetics/sparqling-genomics/blob/dc5fea515c30aa26ff60b77911438689473d125b/web/ldap/authenticate.scm.in#L148">https://github.com/UMCUGenetics/sparqling-genomics/blob/dc5fea515c30aa26ff60b77911438689473d125b/web/ldap/authenticate.scm.in#L148</a></li>
  1563. </ul></li>
  1564. </ul>
  1565. </div>
  1566. </div>
  1567. <div id="outline-container-graphics" class="outline-3">
  1568. <h3 id="graphics"><span class="section-number-3">3.27.</span> Graphics</h3>
  1569. <div class="outline-text-3" id="text-graphics">
  1570. <ul class="org-ul">
  1571. <li><code>guile-sdl</code>
  1572. <ul class="org-ul">
  1573. <li>GNU software page: <a href="https://www.gnu.org/software/guile-sdl/">https://www.gnu.org/software/guile-sdl/</a></li>
  1574. <li>gnuvola page of examples: <a href="http://www.gnuvola.org/software/guile-sdl-demos/">http://www.gnuvola.org/software/guile-sdl-demos/</a></li>
  1575. <li>gnuvola software page: <a href="http://www.gnuvola.org/software/guile-sdl-demos/">http://www.gnuvola.org/software/guile-sdl-demos/</a></li>
  1576. </ul></li>
  1577. <li><code>guile-sdl2</code>
  1578. <ul class="org-ul">
  1579. <li>project website: <a href="https://dthompson.us/projects/guile-sdl2.html">https://dthompson.us/projects/guile-sdl2.html</a></li>
  1580. </ul></li>
  1581. <li><code>guile-opengl</code>
  1582. <ul class="org-ul">
  1583. <li>GNU software page: <a href="https://www.gnu.org/software/guile-opengl/">https://www.gnu.org/software/guile-opengl/</a></li>
  1584. <li>GNU software manual page: <a href="https://www.gnu.org/software/guile-opengl/manual/guile-opengl.html">https://www.gnu.org/software/guile-opengl/manual/guile-opengl.html</a></li>
  1585. <li>git repository at Savannah: <a href="http://savannah.gnu.org/projects/guile-opengl">http://savannah.gnu.org/projects/guile-opengl</a></li>
  1586. </ul></li>
  1587. <li><code>guile-cairo</code>
  1588. <ul class="org-ul">
  1589. <li>git repository at Savannah: <a href="http://savannah.nongnu.org/projects/guile-cairo">http://savannah.nongnu.org/projects/guile-cairo</a></li>
  1590. </ul></li>
  1591. <li><code>guile-jpeg</code>: a library for parsing JPEG files
  1592. <ul class="org-ul">
  1593. <li>git repository at GitHub: <a href="https://github.com/guildhall/guile-jpeg">https://github.com/guildhall/guile-jpeg</a></li>
  1594. </ul></li>
  1595. </ul>
  1596. </div>
  1597. <div id="outline-container-graphics-image-processing" class="outline-4">
  1598. <h4 id="graphics-image-processing"><span class="section-number-4">3.27.1.</span> Image processing</h4>
  1599. <div class="outline-text-4" id="text-graphics-image-processing">
  1600. <ul class="org-ul">
  1601. <li><code>guile-cv</code>
  1602. <ul class="org-ul">
  1603. <li>GNU software page: <a href="https://www.gnu.org/software/guile-cv/">https://www.gnu.org/software/guile-cv/</a></li>
  1604. <li>git repository at Savannah: <a href="http://git.savannah.gnu.org/cgit/guile-cv.git">http://git.savannah.gnu.org/cgit/guile-cv.git</a></li>
  1605. </ul></li>
  1606. <li><code>guile-picture-language</code>
  1607. <ul class="org-ul">
  1608. <li>website: <a href="https://elephly.net/guile-picture-language/">https://elephly.net/guile-picture-language/</a></li>
  1609. <li>repository: <a href="https://git.elephly.net/gitweb.cgi?p=software/guile-picture-language.git">https://git.elephly.net/gitweb.cgi?p=software/guile-picture-language.git</a></li>
  1610. <li>manual: <a href="https://elephly.net/guile-picture-language/manual.html">https://elephly.net/guile-picture-language/manual.html</a></li>
  1611. </ul></li>
  1612. </ul>
  1613. </div>
  1614. </div>
  1615. <div id="outline-container-graphics-design-and-cad" class="outline-4">
  1616. <h4 id="graphics-design-and-cad"><span class="section-number-4">3.27.2.</span> Design and CAD</h4>
  1617. <div class="outline-text-4" id="text-graphics-design-and-cad">
  1618. <ul class="org-ul">
  1619. <li><code>libfive</code>
  1620. <ul class="org-ul">
  1621. <li>website: <a href="https://libfive.com/">https://libfive.com/</a></li>
  1622. <li>git repository: <a href="https://github.com/libfive/libfive">https://github.com/libfive/libfive</a></li>
  1623. <li><p>
  1624. description:
  1625. </p>
  1626. <blockquote>
  1627. <p>
  1628. "libfive is a software library and set of tools for solid modeling, especially suited for parametric and procedural design. It is infrastructure for generative design, mass customization, and domain-specific CAD tools."
  1629. </p>
  1630. <p>
  1631. &#x2013; <a href="https://libfive.com/">https://libfive.com/</a> (2021-05-13)
  1632. </p>
  1633. </blockquote>
  1634. <p>
  1635. libfive itself is not written in GNU Guile, but interaction with it include
  1636. using GNU Guile as a modelling language.
  1637. </p></li>
  1638. </ul></li>
  1639. </ul>
  1640. </div>
  1641. </div>
  1642. </div>
  1643. <div id="outline-container-gui-development" class="outline-3">
  1644. <h3 id="gui-development"><span class="section-number-3">3.28.</span> GUI development</h3>
  1645. <div class="outline-text-3" id="text-gui-development">
  1646. <ul class="org-ul">
  1647. <li><code>guile-gi</code>
  1648. <ul class="org-ul">
  1649. <li>git repository at GitHub: <a href="https://github.com/spk121/guile-gi">https://github.com/spk121/guile-gi</a></li>
  1650. <li>documentation at: <a href="https://spk121.github.io/guile-gi/">https://spk121.github.io/guile-gi/</a></li>
  1651. <li><p>
  1652. description:
  1653. </p>
  1654. <blockquote>
  1655. <p>
  1656. This is a library for GNU Guile to create language bindings via GObject Introspection.
  1657. </p>
  1658. <p>
  1659. GNU Guile is an implementation of Scheme, which is a Lisp-like language. This library allows Guile to use GObject-based libraries &#x2013; such as GTK+3, GLib, and WebKit2 &#x2013; by generating a Scheme API from the GObject Introspection information provided by those libraries.
  1660. </p>
  1661. <p>
  1662. [&#x2026;]
  1663. </p>
  1664. <p>
  1665. &#x2013; <a href="https://raw.githubusercontent.com/spk121/guile-gi/c4a9b8d11debe9a633a4be936f1bbf4b7098fe66/README.md">https://raw.githubusercontent.com/spk121/guile-gi/c4a9b8d11debe9a633a4be936f1bbf4b7098fe66/README.md</a>
  1666. </p>
  1667. </blockquote></li>
  1668. </ul></li>
  1669. <li><code>guile-gnome</code>
  1670. <ul class="org-ul">
  1671. <li>GNU software page: <a href="https://www.gnu.org/software/guile-gnome/">https://www.gnu.org/software/guile-gnome/</a></li>
  1672. <li>git repository at Savannah: <a href="http://git.savannah.gnu.org/cgit/guile-gnome.git">http://git.savannah.gnu.org/cgit/guile-gnome.git</a></li>
  1673. </ul></li>
  1674. <li><code>guile-gtk</code>
  1675. <ul class="org-ul">
  1676. <li>website: <a href="https://www.gnu.org/software/guile-gtk/">https://www.gnu.org/software/guile-gtk/</a></li>
  1677. <li>CVS repository at non-GNU Savannah: <a href="http://savannah.nongnu.org/projects/guile-gtk/">http://savannah.nongnu.org/projects/guile-gtk/</a></li>
  1678. </ul></li>
  1679. <li><code>g-golf</code>: <a href="https://www.gnu.org/software/g-golf/">https://www.gnu.org/software/g-golf/</a></li>
  1680. <li><code>guile-webview</code>
  1681. <ul class="org-ul">
  1682. <li>git repository: <a href="https://github.com/KikyTokamuro/guile-webview">https://github.com/KikyTokamuro/guile-webview</a></li>
  1683. <li>description: <i>"Wrapper for using libwebview from GNU Guile"</i> &#x2013; <a href="https://github.com/KikyTokamuro/guile-webview/blob/a2af7bc339e777b05e304158bcfae23815d8bcef/README.md">https://github.com/KikyTokamuro/guile-webview/blob/a2af7bc339e777b05e304158bcfae23815d8bcef/README.md</a></li>
  1684. <li>documentation: <a href="https://github.com/KikyTokamuro/guile-webview/tree/main/examples">https://github.com/KikyTokamuro/guile-webview/tree/main/examples</a></li>
  1685. </ul></li>
  1686. </ul>
  1687. </div>
  1688. </div>
  1689. <div id="outline-container-language" class="outline-3">
  1690. <h3 id="language"><span class="section-number-3">3.29.</span> Language</h3>
  1691. <div class="outline-text-3" id="text-language">
  1692. <ul class="org-ul">
  1693. <li><code>guile-aspell</code>
  1694. <ul class="org-ul">
  1695. <li>git repository at GitHub: <a href="https://github.com/spk121/guile-aspell">https://github.com/spk121/guile-aspell</a></li>
  1696. <li>website: <a href="http://lonelycactus.com/guile-aspell.html">http://lonelycactus.com/guile-aspell.html</a></li>
  1697. </ul></li>
  1698. </ul>
  1699. </div>
  1700. </div>
  1701. <div id="outline-container-logging" class="outline-3">
  1702. <h3 id="logging"><span class="section-number-3">3.30.</span> Logging</h3>
  1703. <div class="outline-text-3" id="text-logging">
  1704. <ul class="org-ul">
  1705. <li><code>guile-logging</code>
  1706. <ul class="org-ul">
  1707. <li>git repository at GitHub: <a href="https://github.com/shanecelis/guile-logging">https://github.com/shanecelis/guile-logging</a></li>
  1708. </ul></li>
  1709. <li>SysLog proposal
  1710. <ul class="org-ul">
  1711. <li>git repo: <a href="https://bitbucket.org/cowan/r7rs-wg1-infra/src/default/SyslogCowan.md">https://bitbucket.org/cowan/r7rs-wg1-infra/src/default/SyslogCowan.md</a></li>
  1712. <li>description: This is a specification for an implementation of syslog.</li>
  1713. </ul></li>
  1714. <li>logging module of <code>sparqling-genomics</code>
  1715. <ul class="org-ul">
  1716. <li>git repo: <a href="https://github.com/UMCUGenetics/sparqling-genomics/blob/master/web/logger.scm">https://github.com/UMCUGenetics/sparqling-genomics/blob/master/web/logger.scm</a></li>
  1717. <li>description: This is what <code>sparqling-genomics</code> uses internally.</li>
  1718. </ul></li>
  1719. </ul>
  1720. </div>
  1721. </div>
  1722. <div id="outline-container-machine-learning" class="outline-3">
  1723. <h3 id="machine-learning"><span class="section-number-3">3.31.</span> Machine Learning</h3>
  1724. <div class="outline-text-3" id="text-machine-learning">
  1725. <ul class="org-ul">
  1726. <li>decision tree
  1727. <ul class="org-ul">
  1728. <li><code>guile-ml</code>
  1729. <ul class="org-ul">
  1730. <li>repository at notabug.org: <a href="https://notabug.org/ZelphirKaltstahl/guile-ml">https://notabug.org/ZelphirKaltstahl/guile-ml</a></li>
  1731. </ul></li>
  1732. </ul></li>
  1733. <li><code>guile-snowball-stemmer</code>
  1734. <ul class="org-ul">
  1735. <li>mentioned on: <a href="https://snowballstem.org/projects.html">https://snowballstem.org/projects.html</a></li>
  1736. <li>mentioned on: <a href="https://github.com/snowballstem/snowball/issues/34#issuecomment-491056371">https://github.com/snowballstem/snowball/issues/34#issuecomment-491056371</a></li>
  1737. <li>git repo: unfortunately the link to the repository is broken</li>
  1738. </ul></li>
  1739. <li>AIscm
  1740. <ul class="org-ul">
  1741. <li>website: <a href="http://wedesoft.github.io/aiscm/">http://wedesoft.github.io/aiscm/</a></li>
  1742. <li><p>
  1743. description:
  1744. </p>
  1745. <blockquote>
  1746. <p>
  1747. AIscm is a Guile extension for numerical arrays and tensors. Performance is achieved by using the LLVM JIT compiler.
  1748. </p>
  1749. <p>
  1750. (<a href="http://wedesoft.github.io/aiscm/">http://wedesoft.github.io/aiscm/</a>)
  1751. </p>
  1752. </blockquote></li>
  1753. </ul></li>
  1754. </ul>
  1755. </div>
  1756. </div>
  1757. <div id="outline-container-macros" class="outline-3">
  1758. <h3 id="macros"><span class="section-number-3">3.32.</span> Macros</h3>
  1759. <div class="outline-text-3" id="text-macros">
  1760. <ul class="org-ul">
  1761. <li><code>guile-for-loops</code>
  1762. <ul class="org-ul">
  1763. <li>mercurial repo: <a href="https://hg.sr.ht/~bjoli/guile-for-loops">https://hg.sr.ht/~bjoli/guile-for-loops</a></li>
  1764. <li><p>
  1765. description:
  1766. </p>
  1767. <blockquote>
  1768. <p>
  1769. A re-implementation of a large-ish chunk of rackets for-macros. It is mostly compatible with racket's macros, with the largest omission being the body-or-break clause and some of the sequence iterators (like in-cycle, which can be covered by circular lists). There are other differences of course, like for/foldr not being on par feature-wise, and all the nicities you get by having a generic sequence interfce.
  1770. </p>
  1771. <p>
  1772. [&#x2026;]
  1773. </p>
  1774. <p>
  1775. (<a href="https://hg.sr.ht/~bjoli/guile-for-loops/browse/README.md?rev=580d3fb365ea2734b037ad3ca7f2ab1e4aa5116d">https://hg.sr.ht/~bjoli/guile-for-loops/browse/README.md?rev=580d3fb365ea2734b037ad3ca7f2ab1e4aa5116d</a>)
  1776. </p>
  1777. </blockquote></li>
  1778. </ul></li>
  1779. <li><code>goof-loop</code>
  1780. <ul class="org-ul">
  1781. <li>repository: <a href="https://git.sr.ht/~bjoli/goof-loop/">https://git.sr.ht/~bjoli/goof-loop/</a></li>
  1782. <li><p>
  1783. description:
  1784. </p>
  1785. <blockquote>
  1786. <p>
  1787. goof-loop - a scheme looping facility
  1788. </p>
  1789. <p>
  1790. goof-loops aims to be an amalgamation of the racket for loops and Alex Shinn's (chibi-loop). We are many that found racket's for loops a breeze of fresh air, but in the end their most general forms (for/fold and for/foldr) are kinda odd to work with. If you choose not to use those general for loops, you cannot express arbitrary transformations, like say a fibonacci sequence, since for clauses cannot reference eachother. goof-loop tries to fix this [&#x2026;]
  1791. </p>
  1792. <p>
  1793. &#x2013; <a href="https://git.sr.ht/~bjoli/goof-loop/tree/cccc324ecd14325d9f2fe4c7eabd8bc217823d32/item/README.md">https://git.sr.ht/~bjoli/goof-loop/tree/cccc324ecd14325d9f2fe4c7eabd8bc217823d32/item/README.md</a>
  1794. </p>
  1795. </blockquote></li>
  1796. </ul></li>
  1797. <li><code>megacut</code> macro:
  1798. <ul class="org-ul">
  1799. <li>mercurial repo: <a href="https://hg.sr.ht/~bjoli/megacut">https://hg.sr.ht/~bjoli/megacut</a></li>
  1800. <li><p>
  1801. description:
  1802. </p>
  1803. <blockquote>
  1804. <p>
  1805. This is a clojure-like lambda shorthand for guile. The macro is called megacut (which is a bad name, since it is not much like cut).
  1806. </p>
  1807. <p>
  1808. (<a href="https://hg.sr.ht/~bjoli/megacut/browse/readme.txt?rev=75caf96aa4a9282d489230fe56fff4f1aa5e2564">https://hg.sr.ht/~bjoli/megacut/browse/readme.txt?rev=75caf96aa4a9282d489230fe56fff4f1aa5e2564</a>)
  1809. </p>
  1810. </blockquote></li>
  1811. </ul></li>
  1812. <li>GNU Thales
  1813. <ul class="org-ul">
  1814. <li>project page: <a href="https://savannah.gnu.org/projects/thales">https://savannah.gnu.org/projects/thales</a></li>
  1815. <li>git repo: <a href="https://git.savannah.gnu.org/cgit/thales.git">https://git.savannah.gnu.org/cgit/thales.git</a></li>
  1816. <li>description: <i>"GNU Thales is set of GNU Guile macroses to perform doctests."</i> (<a href="https://savannah.gnu.org/projects/thales">https://savannah.gnu.org/projects/thales</a>)</li>
  1817. </ul></li>
  1818. <li>Documentation for Scheme Syntax Extension Packages in SLIB
  1819. <ul class="org-ul">
  1820. <li>website: <a href="https://people.csail.mit.edu/jaffer/slib/Scheme-Syntax-Extension-Packages.html#Scheme-Syntax-Extension-Packages">https://people.csail.mit.edu/jaffer/slib/Scheme-Syntax-Extension-Packages.html#Scheme-Syntax-Extension-Packages</a></li>
  1821. </ul></li>
  1822. <li>Implementation of function contracts: <a href="https://notabug.org/ZelphirKaltstahl/guile-examples/src/master/macros/contract.scm">https://notabug.org/ZelphirKaltstahl/guile-examples/src/master/macros/contract.scm</a></li>
  1823. </ul>
  1824. </div>
  1825. </div>
  1826. <div id="outline-container-message-queues" class="outline-3">
  1827. <h3 id="message-queues"><span class="section-number-3">3.33.</span> Message Queues</h3>
  1828. <div class="outline-text-3" id="text-message-queues">
  1829. <ul class="org-ul">
  1830. <li>Zero MQ
  1831. <ul class="org-ul">
  1832. <li><code>guile-zmq</code>
  1833. <ul class="org-ul">
  1834. <li>git repository at GitLab: <a href="https://gitlab.com/NalaGinrut/guile-zmq">https://gitlab.com/NalaGinrut/guile-zmq</a></li>
  1835. </ul></li>
  1836. <li><code>guile-simple-zmq</code>
  1837. <ul class="org-ul">
  1838. <li>git repository at GitHub: <a href="https://github.com/jerry40/guile-simple-zmq">https://github.com/jerry40/guile-simple-zmq</a></li>
  1839. </ul></li>
  1840. </ul></li>
  1841. </ul>
  1842. </div>
  1843. </div>
  1844. <div id="outline-container-network-programming" class="outline-3">
  1845. <h3 id="network-programming"><span class="section-number-3">3.34.</span> Network programming</h3>
  1846. <div class="outline-text-3" id="text-network-programming">
  1847. <ul class="org-ul">
  1848. <li>Guile's standard library networking module
  1849. <ul class="org-ul">
  1850. <li>GNU software manual page: <a href="https://www.gnu.org/software/guile/manual/html_node/Networking.html">https://www.gnu.org/software/guile/manual/html_node/Networking.html</a></li>
  1851. </ul></li>
  1852. <li><code>guile-curl</code>
  1853. <ul class="org-ul">
  1854. <li>git repository at GitHub: <a href="https://github.com/spk121/guile-curl">https://github.com/spk121/guile-curl</a></li>
  1855. </ul></li>
  1856. <li><code>guile-ssh</code>
  1857. <ul class="org-ul">
  1858. <li>git repository at GitHub: <a href="https://github.com/artyom-poptsov/guile-ssh">https://github.com/artyom-poptsov/guile-ssh</a></li>
  1859. </ul></li>
  1860. <li>GNU Serveez
  1861. <ul class="org-ul">
  1862. <li>GNU software page: <a href="https://www.gnu.org/software/serveez/">https://www.gnu.org/software/serveez/</a></li>
  1863. <li>manual: <a href="https://www.gnu.org/software/serveez/manual/">https://www.gnu.org/software/serveez/manual/</a></li>
  1864. <li>git repository at Savannah: <a href="http://savannah.gnu.org/projects/serveez/">http://savannah.gnu.org/projects/serveez/</a></li>
  1865. </ul></li>
  1866. <li><code>serveez-mg</code>
  1867. <ul class="org-ul">
  1868. <li>git repository at GitHub <a href="https://github.com/spk121/serveez-mg">https://github.com/spk121/serveez-mg</a></li>
  1869. <li>based on GNU Serveez</li>
  1870. </ul></li>
  1871. <li><code>stis-engine</code>
  1872. <ul class="org-ul">
  1873. <li>git repository at: <a href="https://gitlab.com/tampe/stis-engine">https://gitlab.com/tampe/stis-engine</a></li>
  1874. <li>description: <i>"Communication layer ontop of guile fibers"</i> &#x2013; <a href="https://gitlab.com/tampe/stis-engine">https://gitlab.com/tampe/stis-engine</a></li>
  1875. </ul></li>
  1876. <li><code>Scheme-GNUnet</code>
  1877. <ul class="org-ul">
  1878. <li>git repository: <a href="https://git.gnunet.org/gnunet-scheme.git/">https://git.gnunet.org/gnunet-scheme.git/</a></li>
  1879. <li><p>
  1880. description:
  1881. </p>
  1882. <blockquote>
  1883. <p>
  1884. Scheme-GNUnet is a WIP (Guile) Scheme port of the GNUnet client libraries.
  1885. Unlike gnunet-guile, it is not a binding for the C libraries. It can be
  1886. used in multi-threaded applications, e.g. with guile-fibers.
  1887. </p>
  1888. <p>
  1889. It is not to be confused with <a href="https://git.gnunet.org/gnunet-guile2.git">https://git.gnunet.org/gnunet-guile2.git</a>
  1890. and <a href="https://git.savannah.gnu.org/cgit/guix/gnunet.git">https://git.savannah.gnu.org/cgit/guix/gnunet.git</a>, which implement
  1891. bindings for the C libraries and support a different set of services.
  1892. </p>
  1893. <p>
  1894. &#x2013; Guile user mailing list
  1895. </p>
  1896. </blockquote></li>
  1897. <li>documentation: <a href="https://git.gnunet.org/gnunet-scheme.git/tree/doc">https://git.gnunet.org/gnunet-scheme.git/tree/doc</a></li>
  1898. </ul></li>
  1899. </ul>
  1900. </div>
  1901. </div>
  1902. <div id="outline-container-parallelism" class="outline-3">
  1903. <h3 id="parallelism"><span class="section-number-3">3.35.</span> Parallelism</h3>
  1904. <div class="outline-text-3" id="text-parallelism">
  1905. <ul class="org-ul">
  1906. <li>standard library futures
  1907. <ul class="org-ul">
  1908. <li>GNU software manual page: <a href="https://www.gnu.org/software/guile/docs/docs-2.2/guile-ref/Futures.html">https://www.gnu.org/software/guile/docs/docs-2.2/guile-ref/Futures.html</a> (link to Guile 2.2 docs &#x2013; Where are the 3.x docs?)</li>
  1909. <li><p>
  1910. description:
  1911. </p>
  1912. <blockquote>
  1913. <p>
  1914. [&#x2026;] a construct for fine-grain parallelism. A future is a wrapper around an expression whose computation may occur in parallel with the code of the calling thread, and possibly in parallel with other futures. Like promises, futures are essentially proxies that can be queried to obtain the value of the enclosed expression [&#x2026;]
  1915. </p>
  1916. </blockquote></li>
  1917. </ul></li>
  1918. <li><code>guile-fibers</code>
  1919. <ul class="org-ul">
  1920. <li>git repo: <a href="https://github.com/wingo/fibers">https://github.com/wingo/fibers</a></li>
  1921. <li><p>
  1922. description:
  1923. </p>
  1924. <blockquote>
  1925. <p>
  1926. Concurrent ML-like concurrency for Guile
  1927. </p>
  1928. </blockquote></li>
  1929. </ul></li>
  1930. <li>standard library parallel forms
  1931. <ul class="org-ul">
  1932. <li>GNU software manual page: <a href="https://www.gnu.org/software/guile/manual/html_node/Parallel-Forms.html">https://www.gnu.org/software/guile/manual/html_node/Parallel-Forms.html</a></li>
  1933. <li>note: Sometimes the parallel forms might cause errors, see <a href="https://lists.gnu.org/archive/html/guile-user/2020-01/msg00092.html">https://lists.gnu.org/archive/html/guile-user/2020-01/msg00092.html</a>, I recommend to use futures or if suitable <code>guile-fibers</code> instead.</li>
  1934. </ul></li>
  1935. <li><code>guile-parallel</code>
  1936. <ul class="org-ul">
  1937. <li>git repo: <a href="https://git.sr.ht/~old/guile-parallel">https://git.sr.ht/~old/guile-parallel</a></li>
  1938. <li>description: "High level structures and procedures for parallelism." &#x2013; <a href="https://git.sr.ht/~old/guile-parallel/tree/dc1a55ea2499b6ca4355e9aae1d7256effd14355/item/README.md">https://git.sr.ht/~old/guile-parallel/tree/dc1a55ea2499b6ca4355e9aae1d7256effd14355/item/README.md</a></li>
  1939. </ul></li>
  1940. </ul>
  1941. </div>
  1942. </div>
  1943. <div id="outline-container-parsing" class="outline-3">
  1944. <h3 id="parsing"><span class="section-number-3">3.36.</span> Parsing</h3>
  1945. <div class="outline-text-3" id="text-parsing">
  1946. </div>
  1947. <div id="outline-container-parsing-parser-combinators" class="outline-4">
  1948. <h4 id="parsing-parser-combinators"><span class="section-number-4">3.36.1.</span> Parser Combinators</h4>
  1949. <div class="outline-text-4" id="text-parsing-parser-combinators">
  1950. <ul class="org-ul">
  1951. <li><code>stis-parser</code>
  1952. <ul class="org-ul">
  1953. <li>git repository at GitLab: <a href="https://gitlab.com/tampe/stis-parser">https://gitlab.com/tampe/stis-parser</a></li>
  1954. </ul></li>
  1955. </ul>
  1956. </div>
  1957. </div>
  1958. <div id="outline-container-parsing-parser-generator" class="outline-4">
  1959. <h4 id="parsing-parser-generator"><span class="section-number-4">3.36.2.</span> Parser Generator</h4>
  1960. <div class="outline-text-4" id="text-parsing-parser-generator">
  1961. <ul class="org-ul">
  1962. <li><code>nyacc</code>: Not Yet Another Compiler Compiler
  1963. <ul class="org-ul">
  1964. <li>git repository at Savannah: <a href="https://savannah.nongnu.org/projects/nyacc">https://savannah.nongnu.org/projects/nyacc</a></li>
  1965. <li>documentation: <a href="https://www.nongnu.org/nyacc/nyacc-ug.html">https://www.nongnu.org/nyacc/nyacc-ug.html</a></li>
  1966. </ul></li>
  1967. </ul>
  1968. </div>
  1969. </div>
  1970. <div id="outline-container-parsing-other" class="outline-4">
  1971. <h4 id="parsing-other"><span class="section-number-4">3.36.3.</span> Other</h4>
  1972. <div class="outline-text-4" id="text-parsing-other">
  1973. <ul class="org-ul">
  1974. <li>standard library PEG parsing
  1975. <ul class="org-ul">
  1976. <li>GNU software manual page: <a href="https://www.gnu.org/software/guile/manual/html_node/PEG-Parsing.html">https://www.gnu.org/software/guile/manual/html_node/PEG-Parsing.html</a></li>
  1977. <li><p>
  1978. description:
  1979. </p>
  1980. <blockquote>
  1981. <p>
  1982. Parsing Expression Grammars (PEGs) are a way of specifying formal languages for text processing.
  1983. </p>
  1984. <p>
  1985. (<a href="https://www.gnu.org/software/guile/manual/html_node/PEG-Parsing.html">https://www.gnu.org/software/guile/manual/html_node/PEG-Parsing.html</a>)
  1986. </p>
  1987. </blockquote></li>
  1988. </ul></li>
  1989. </ul>
  1990. </div>
  1991. </div>
  1992. <div id="outline-container-parsing-xml-parser" class="outline-4">
  1993. <h4 id="parsing-xml-parser"><span class="section-number-4">3.36.4.</span> XML parser</h4>
  1994. <div class="outline-text-4" id="text-parsing-xml-parser">
  1995. <ul class="org-ul">
  1996. <li>Mixp:
  1997. <ul class="org-ul">
  1998. <li>git repository: <a href="https://git.savannah.nongnu.org/cgit/mixp.git">https://git.savannah.nongnu.org/cgit/mixp.git</a></li>
  1999. <li>website: <a href="https://www.nongnu.org/mixp/">https://www.nongnu.org/mixp/</a></li>
  2000. <li>description: <i>"Mixp is a set of modules for Guile that wrap libexpat and provide higher-level utilities. [&#x2026;]"</i> (<a href="https://savannah.nongnu.org/projects/mixp">https://savannah.nongnu.org/projects/mixp</a>)</li>
  2001. <li>documentation: ???</li>
  2002. </ul></li>
  2003. </ul>
  2004. </div>
  2005. </div>
  2006. </div>
  2007. <div id="outline-container-plotting" class="outline-3">
  2008. <h3 id="plotting"><span class="section-number-3">3.37.</span> Plotting</h3>
  2009. <div class="outline-text-3" id="text-plotting">
  2010. <ul class="org-ul">
  2011. <li><code>guile-plotutils</code>
  2012. <ul class="org-ul">
  2013. <li>git repository at GitHub: <a href="https://github.com/spk121/guile-plotutils">https://github.com/spk121/guile-plotutils</a></li>
  2014. <li>website: <a href="https://www.gnu.org/software/plotutils/plotutils.html">https://www.gnu.org/software/plotutils/plotutils.html</a></li>
  2015. </ul></li>
  2016. </ul>
  2017. </div>
  2018. </div>
  2019. <div id="outline-container-protocols" class="outline-3">
  2020. <h3 id="protocols"><span class="section-number-3">3.38.</span> Protocols</h3>
  2021. <div class="outline-text-3" id="text-protocols">
  2022. <ul class="org-ul">
  2023. <li>X protocol
  2024. <ul class="org-ul">
  2025. <li><code>guile-xcb</code>
  2026. <ul class="org-ul">
  2027. <li>git repo: <a href="https://github.com/mwitmer/guile-xcb">https://github.com/mwitmer/guile-xcb</a></li>
  2028. </ul></li>
  2029. </ul></li>
  2030. </ul>
  2031. </div>
  2032. </div>
  2033. <div id="outline-container-serialization" class="outline-3">
  2034. <h3 id="serialization"><span class="section-number-3">3.39.</span> Serialization</h3>
  2035. <div class="outline-text-3" id="text-serialization">
  2036. <ul class="org-ul">
  2037. <li><code>guile-msgpack</code>
  2038. <ul class="org-ul">
  2039. <li>git repo: <a href="https://gitlab.com/HiPhish/guile-msgpack">https://gitlab.com/HiPhish/guile-msgpack</a></li>
  2040. <li><p>
  2041. description:
  2042. </p>
  2043. <blockquote>
  2044. <p>
  2045. This is a GNU Guile library implementing the MessagePack data serialisation format. It allows you to serialise (pack) and de-serialise (unpack) Scheme objects to and from binary data according to the MessagePack format.
  2046. </p>
  2047. <p>
  2048. (<a href="https://gitlab.com/HiPhish/guile-msgpack/-/blob/master/README.rst">https://gitlab.com/HiPhish/guile-msgpack/-/blob/master/README.rst</a>)
  2049. </p>
  2050. </blockquote></li>
  2051. </ul></li>
  2052. <li><code>stis-data</code>
  2053. <ul class="org-ul">
  2054. <li>git repo: <a href="https://gitlab.com/tampe/stis-data">https://gitlab.com/tampe/stis-data</a></li>
  2055. <li>description: <i>"Serializing guile datastructures into binary format"</i> &#x2013; <a href="https://gitlab.com/tampe/stis-data/-/blob/08d2de0ceef22f87083221b1b59c91de76836bd9/README.md">https://gitlab.com/tampe/stis-data/-/blob/08d2de0ceef22f87083221b1b59c91de76836bd9/README.md</a></li>
  2056. </ul></li>
  2057. </ul>
  2058. </div>
  2059. </div>
  2060. <div id="outline-container-srfi-scheme-request-for-implementation-implementations" class="outline-3">
  2061. <h3 id="srfi-scheme-request-for-implementation-implementations"><span class="section-number-3">3.40.</span> SRFI (Scheme Request For Implementation) implementations</h3>
  2062. <div class="outline-text-3" id="text-srfi-scheme-request-for-implementation-implementations">
  2063. <ul class="org-ul">
  2064. <li><code>TaylanUB/scheme-srfis</code>
  2065. <ul class="org-ul">
  2066. <li>git repo: <a href="https://github.com/TaylanUB/scheme-srfis">https://github.com/TaylanUB/scheme-srfis</a></li>
  2067. <li>description: This repository contains implementations for some SRFIs.</li>
  2068. </ul></li>
  2069. <li><code>srfi-78-guile</code>
  2070. <ul class="org-ul">
  2071. <li>git repo: <a href="https://github.com/sunjoong/srfi-78-guile">https://github.com/sunjoong/srfi-78-guile</a></li>
  2072. <li>description: <i>"SRFI 78: Lightweight testing by Sebastian Egner"</i> (<a href="https://github.com/sunjoong/srfi-78-guile">https://github.com/sunjoong/srfi-78-guile</a>)</li>
  2073. </ul></li>
  2074. <li><code>guile-srfi89</code>
  2075. <ul class="org-ul">
  2076. <li>git repo: <a href="https://gitlab.com/mjbecze/guile-srfi-89">https://gitlab.com/mjbecze/guile-srfi-89</a></li>
  2077. <li>description: <i>"This is a hygienic implemention of SRFI 89 (Optional positional and named parameters) for Guile Scheme."</i> (<a href="https://gitlab.com/mjbecze/guile-srfi-89/-/blob/0c907086e809c69faaac75ce2feeb3ba1694f037/README.md">https://gitlab.com/mjbecze/guile-srfi-89/-/blob/0c907086e809c69faaac75ce2feeb3ba1694f037/README.md</a>)</li>
  2078. </ul></li>
  2079. <li><code>srfi-151</code>
  2080. <ul class="org-ul">
  2081. <li>git repo: <a href="https://github.com/ft/srfi-151">https://github.com/ft/srfi-151</a></li>
  2082. <li>description: <i>"SRFI-151 — Bitwise Operations — Implementation for GNU Guile"</i> (<a href="https://github.com/ft/srfi-151/blob/486ee152c826ad07eaf4e8765e8c20842dba0915/README">https://github.com/ft/srfi-151/blob/486ee152c826ad07eaf4e8765e8c20842dba0915/README</a>)</li>
  2083. <li>license: <a href="https://github.com/ft/srfi-151/blob/486ee152c826ad07eaf4e8765e8c20842dba0915/LICENCE">https://github.com/ft/srfi-151/blob/486ee152c826ad07eaf4e8765e8c20842dba0915/LICENCE</a></li>
  2084. <li>documentation: <a href="https://srfi.schemers.org/srfi-151/srfi-151.html">https://srfi.schemers.org/srfi-151/srfi-151.html</a></li>
  2085. </ul></li>
  2086. <li><code>scheme-libraries</code>
  2087. <ul class="org-ul">
  2088. <li>repository: <a href="https://launchpad.net/scheme-libraries">https://launchpad.net/scheme-libraries</a></li>
  2089. </ul></li>
  2090. <li><code>wisp</code>
  2091. <ul class="org-ul">
  2092. <li>mercurial repo: <a href="https://hg.sr.ht/~arnebab/wisp">https://hg.sr.ht/~arnebab/wisp</a></li>
  2093. <li>website: <a href="http://draketo.de/english/wisp">http://draketo.de/english/wisp</a>, <a href="https://srfi.schemers.org/srfi-119/srfi-119.html">https://srfi.schemers.org/srfi-119/srfi-119.html</a></li>
  2094. <li>GNU Guix package: <code>guile-wisp</code></li>
  2095. <li>description: <i>"wisp: simpler indentation-sensitive scheme"</i> (<a href="https://srfi.schemers.org/srfi-119/srfi-119.html">https://srfi.schemers.org/srfi-119/srfi-119.html</a>)</li>
  2096. </ul></li>
  2097. <li><code>awesome-coroutine-generators</code>
  2098. <ul class="org-ul">
  2099. <li>git repository: <a href="https://git.sr.ht/~bjoli/awesome-coroutine-generators/tree">https://git.sr.ht/~bjoli/awesome-coroutine-generators/tree</a></li>
  2100. <li>description: an implementation of SRFI-158</li>
  2101. </ul></li>
  2102. <li>double ended queue
  2103. <ul class="org-ul">
  2104. <li>website: <a href="https://srfi.schemers.org/srfi-134/srfi-134.html">https://srfi.schemers.org/srfi-134/srfi-134.html</a></li>
  2105. <li>repository: <a href="https://github.com/scheme-requests-for-implementation/srfi-134/">https://github.com/scheme-requests-for-implementation/srfi-134/</a></li>
  2106. </ul></li>
  2107. </ul>
  2108. </div>
  2109. </div>
  2110. <div id="outline-container-strings" class="outline-3">
  2111. <h3 id="strings"><span class="section-number-3">3.41.</span> Strings</h3>
  2112. <div class="outline-text-3" id="text-strings">
  2113. <ul class="org-ul">
  2114. <li><code>guile-raw-strings</code>
  2115. <ul class="org-ul">
  2116. <li>git repo: <a href="https://github.com/lloda/guile-raw-strings">https://github.com/lloda/guile-raw-strings</a></li>
  2117. </ul></li>
  2118. </ul>
  2119. </div>
  2120. </div>
  2121. <div id="outline-container-syntax" class="outline-3">
  2122. <h3 id="syntax"><span class="section-number-3">3.42.</span> Syntax</h3>
  2123. <div class="outline-text-3" id="text-syntax">
  2124. <ul class="org-ul">
  2125. <li>(grand scheme) glossary
  2126. <ul class="org-ul">
  2127. <li>git repo: <a href="https://github.com/plande/grand-scheme">https://github.com/plande/grand-scheme</a></li>
  2128. </ul></li>
  2129. </ul>
  2130. </div>
  2131. </div>
  2132. <div id="outline-container-regular-expressions" class="outline-3">
  2133. <h3 id="regular-expressions"><span class="section-number-3">3.43.</span> Regular expressions</h3>
  2134. <div class="outline-text-3" id="text-regular-expressions">
  2135. <ul class="org-ul">
  2136. <li>IrRegular Expressions (Scheme, R[4567]RS)
  2137. <ul class="org-ul">
  2138. <li>website: <a href="http://synthcode.com/scheme/irregex">http://synthcode.com/scheme/irregex</a></li>
  2139. </ul></li>
  2140. </ul>
  2141. </div>
  2142. </div>
  2143. <div id="outline-container-repl-read-eval-print-loop" class="outline-3">
  2144. <h3 id="repl-read-eval-print-loop"><span class="section-number-3">3.44.</span> REPL (Read Eval Print Loop)</h3>
  2145. <div class="outline-text-3" id="text-repl-read-eval-print-loop">
  2146. <ul class="org-ul">
  2147. <li><code>guile-colorized</code>
  2148. <ul class="org-ul">
  2149. <li>git repository at GitLab: <a href="https://gitlab.com/NalaGinrut/guile-colorized">https://gitlab.com/NalaGinrut/guile-colorized</a></li>
  2150. </ul></li>
  2151. </ul>
  2152. </div>
  2153. </div>
  2154. <div id="outline-container-rpc-remote-procedure-call" class="outline-3">
  2155. <h3 id="rpc-remote-procedure-call"><span class="section-number-3">3.45.</span> RPC (Remote Procedure Call)</h3>
  2156. <div class="outline-text-3" id="text-rpc-remote-procedure-call">
  2157. <ul class="org-ul">
  2158. <li>GNU Guile-RPC
  2159. <ul class="org-ul">
  2160. <li>website: <a href="https://www.gnu.org/software/guile-rpc/">https://www.gnu.org/software/guile-rpc/</a></li>
  2161. <li>documentation: <a href="https://www.gnu.org/software/guile-rpc/manual/">https://www.gnu.org/software/guile-rpc/manual/</a></li>
  2162. <li>git repo: <a href="http://git.savannah.gnu.org/gitweb/?p=guile-rpc.git">http://git.savannah.gnu.org/gitweb/?p=guile-rpc.git</a></li>
  2163. </ul></li>
  2164. <li><code>guile-xmlrpc</code>:
  2165. <ul class="org-ul">
  2166. <li><p>
  2167. description:
  2168. </p>
  2169. <blockquote>
  2170. <p>
  2171. guile-xmlrpc is an XMLRPC module for Guile. Guile already has the wonderful sxml module that allows XML document creation and parsing. guile-xmlrpc goes one step further and combines sxml with some macros and procedures that simplifies even more the creation and parsing of XMLRPC documents.
  2172. </p>
  2173. <p>
  2174. (<a href="https://github.com/aconchillo/guile-xmlrpc/blob/master/README.org">https://github.com/aconchillo/guile-xmlrpc/blob/master/README.org</a>)
  2175. </p>
  2176. </blockquote></li>
  2177. <li>git repo: <a href="https://github.com/aconchillo/guile-xmlrpc">https://github.com/aconchillo/guile-xmlrpc</a></li>
  2178. <li>manual: (readme file in git repo)</li>
  2179. </ul></li>
  2180. </ul>
  2181. </div>
  2182. </div>
  2183. <div id="outline-container-scientific-computing-and-mathematics" class="outline-3">
  2184. <h3 id="scientific-computing-and-mathematics"><span class="section-number-3">3.46.</span> Scientific computing and mathematics</h3>
  2185. <div class="outline-text-3" id="text-scientific-computing-and-mathematics">
  2186. <ul class="org-ul">
  2187. <li>GNU Scientific Library (GSL)
  2188. <ul class="org-ul">
  2189. <li>GNU software page <a href="https://www.gnu.org/software/gsl/">https://www.gnu.org/software/gsl/</a></li>
  2190. <li>git repository at Savannah: <a href="http://savannah.gnu.org/projects/gsl/">http://savannah.gnu.org/projects/gsl/</a></li>
  2191. <li>wikipedia page: <a href="https://en.wikipedia.org/wiki/GNU_Scientific_Library">https://en.wikipedia.org/wiki/GNU_Scientific_Library</a></li>
  2192. <li>Guile bindings: <a href="http://community.schemewiki.org/?gee-guile-gsl">http://community.schemewiki.org/?gee-guile-gsl</a></li>
  2193. </ul></li>
  2194. <li>Matrix multiplication
  2195. <ul class="org-ul">
  2196. <li><code>guile-ffi-cblas</code>
  2197. <ul class="org-ul">
  2198. <li>git repository at GitHub: <a href="https://github.com/lloda/guile-ffi-cblas">https://github.com/lloda/guile-ffi-cblas</a></li>
  2199. </ul></li>
  2200. </ul></li>
  2201. <li>Fast Fourier Transformation
  2202. <ul class="org-ul">
  2203. <li><code>guile-ffi-fftw</code> by lloda
  2204. <ul class="org-ul">
  2205. <li>git repo: <a href="https://github.com/lloda/guile-ffi-fftw">https://github.com/lloda/guile-ffi-fftw</a></li>
  2206. <li>description: <i>"A simple wrapper for FFTW, using Guile's FFI"</i> (<a href="https://github.com/lloda/guile-ffi-fftw">https://github.com/lloda/guile-ffi-fftw</a>)</li>
  2207. </ul></li>
  2208. <li><code>guile-ffi-fftw</code> by Mikael Djurfeldt
  2209. <ul class="org-ul">
  2210. <li>git repo at Savannah: <a href="https://savannah.nongnu.org/projects/guile-fftw">https://savannah.nongnu.org/projects/guile-fftw</a></li>
  2211. <li>description:</li>
  2212. </ul></li>
  2213. </ul></li>
  2214. <li>Symbolic mathematics
  2215. <ul class="org-ul">
  2216. <li><code>guile-scmutils</code>
  2217. <ul class="org-ul">
  2218. <li>website: <a href="https://www.cs.rochester.edu/~gildea/guile-scmutils/">https://www.cs.rochester.edu/~gildea/guile-scmutils/</a></li>
  2219. <li>download: <a href="https://www.cs.rochester.edu/~gildea/guile-scmutils/guile-scmutils-v1.0.tgz">https://www.cs.rochester.edu/~gildea/guile-scmutils/guile-scmutils-v1.0.tgz</a></li>
  2220. <li><p>
  2221. description:
  2222. </p>
  2223. <blockquote>
  2224. <p>
  2225. A port of the scmutils package for symbolic mathematics from mit scheme to guile, in an effort to make scmutils and the examples from the Structure and Interpretation of Classical Mechanics available on a wider variety of architectures/operating systems.
  2226. </p>
  2227. <p>
  2228. (<a href="https://www.cs.rochester.edu/~gildea/guile-scmutils/">https://www.cs.rochester.edu/~gildea/guile-scmutils/</a>)
  2229. </p>
  2230. </blockquote></li>
  2231. </ul></li>
  2232. </ul></li>
  2233. <li>Guile implementation of symbolic mathematics shown in SICP
  2234. <ul class="org-ul">
  2235. <li>Does this exist?</li>
  2236. </ul></li>
  2237. </ul>
  2238. </div>
  2239. <div id="outline-container-scientific-computing-and-mathematics-interaction-with-the-jupyter-ecosystem" class="outline-4">
  2240. <h4 id="scientific-computing-and-mathematics-interaction-with-the-jupyter-ecosystem"><span class="section-number-4">3.46.1.</span> Interaction with the Jupyter ecosystem</h4>
  2241. <div class="outline-text-4" id="text-scientific-computing-and-mathematics-interaction-with-the-jupyter-ecosystem">
  2242. <ul class="org-ul">
  2243. <li><code>guix-kernel</code>
  2244. <ul class="org-ul">
  2245. <li>git repository at gitlab.inria.fr: <a href="https://gitlab.inria.fr/guix-hpc/guix-kernel">https://gitlab.inria.fr/guix-hpc/guix-kernel</a></li>
  2246. <li>blog post: <a href="https://hpc.guix.info/blog/2019/10/towards-reproducible-jupyter-notebooks/">https://hpc.guix.info/blog/2019/10/towards-reproducible-jupyter-notebooks/</a></li>
  2247. </ul></li>
  2248. <li><code>guile-kernel</code>
  2249. <ul class="org-ul">
  2250. <li>git repository at GitHub: <a href="https://github.com/jerry40/guile-kernel">https://github.com/jerry40/guile-kernel</a></li>
  2251. </ul></li>
  2252. </ul>
  2253. </div>
  2254. </div>
  2255. </div>
  2256. <div id="outline-container-search-engine" class="outline-3">
  2257. <h3 id="search-engine"><span class="section-number-3">3.47.</span> Search engine</h3>
  2258. <div class="outline-text-3" id="text-search-engine">
  2259. <ul class="org-ul">
  2260. <li><code>babelia</code>
  2261. <ul class="org-ul">
  2262. <li>git repo: <a href="https://github.com/amirouche/babelia">https://github.com/amirouche/babelia</a></li>
  2263. <li><p>
  2264. description:
  2265. </p>
  2266. <blockquote>
  2267. <p>
  2268. Wanna be search engine with federation support
  2269. </p>
  2270. <p>
  2271. (<a href="https://github.com/amirouche/babelia">https://github.com/amirouche/babelia</a>)
  2272. </p>
  2273. </blockquote></li>
  2274. </ul></li>
  2275. </ul>
  2276. </div>
  2277. </div>
  2278. <div id="outline-container-shell" class="outline-3">
  2279. <h3 id="shell"><span class="section-number-3">3.48.</span> Shell</h3>
  2280. <div class="outline-text-3" id="text-shell">
  2281. <ul class="org-ul">
  2282. <li><code>gash</code>
  2283. <ul class="org-ul">
  2284. <li>git repo: <a href="https://git.savannah.nongnu.org/cgit/gash.git">https://git.savannah.nongnu.org/cgit/gash.git</a></li>
  2285. <li><p>
  2286. description:
  2287. </p>
  2288. <blockquote>
  2289. <p>
  2290. Gash is a POSIX-compatible shell written in Guile Scheme. It provides both
  2291. the shell interface, as well as a Guile library for parsing shell scripts.
  2292. Gash is designed to bootstrap Bash as part of the Guix bootstrap process.
  2293. We are planning to develop Gash into a general-purpose shell and tool for
  2294. building interfaces between Scheme and the shell.
  2295. </p>
  2296. </blockquote>
  2297. <p>
  2298. (<a href="https://git.savannah.nongnu.org/cgit/gash.git/tree/README?id=8f9b973264cc799df27795df6230839e96dc00eb">https://git.savannah.nongnu.org/cgit/gash.git/tree/README?id=8f9b973264cc799df27795df6230839e96dc00eb</a>)
  2299. </p></li>
  2300. </ul></li>
  2301. </ul>
  2302. </div>
  2303. </div>
  2304. <div id="outline-container-tui-development" class="outline-3">
  2305. <h3 id="tui-development"><span class="section-number-3">3.49.</span> TUI development</h3>
  2306. <div class="outline-text-3" id="text-tui-development">
  2307. <ul class="org-ul">
  2308. <li><code>guile-ncurses</code>
  2309. <ul class="org-ul">
  2310. <li>GNU software page: <a href="https://www.gnu.org/software/guile-ncurses/">https://www.gnu.org/software/guile-ncurses/</a></li>
  2311. <li>git repository at GitHub: <a href="https://github.com/guildhall/guile-ncurses">https://github.com/guildhall/guile-ncurses</a></li>
  2312. </ul></li>
  2313. <li><code>guile-termios</code>
  2314. <ul class="org-ul">
  2315. <li>git repository: <a href="https://gitlab.com/ft/guile-termios">https://gitlab.com/ft/guile-termios</a></li>
  2316. <li><p>
  2317. description:
  2318. </p>
  2319. <blockquote>
  2320. <p>
  2321. POSIX termios interface for GNU Guile
  2322. </p>
  2323. <p>
  2324. To query and change settings of serial devices on POSIX systems, the termios
  2325. API is used. GNU Guile doesn't have an interface for that built in. This module
  2326. implements this interface by use of Guile's dynamic FFI.
  2327. </p>
  2328. <p>
  2329. [&#x2026;]
  2330. </p>
  2331. <p>
  2332. &#x2013; <a href="https://gitlab.com/ft/guile-termios/-/blob/29dfd68bdc64d6cea0cd4a50757439b77523e9f5/README">https://gitlab.com/ft/guile-termios/-/blob/29dfd68bdc64d6cea0cd4a50757439b77523e9f5/README</a>
  2333. </p>
  2334. </blockquote></li>
  2335. <li>license: <a href="https://gitlab.com/ft/guile-termios/-/blob/29dfd68bdc64d6cea0cd4a50757439b77523e9f5/LICENCE">https://gitlab.com/ft/guile-termios/-/blob/29dfd68bdc64d6cea0cd4a50757439b77523e9f5/LICENCE</a></li>
  2336. </ul></li>
  2337. </ul>
  2338. </div>
  2339. </div>
  2340. <div id="outline-container-testing" class="outline-3">
  2341. <h3 id="testing"><span class="section-number-3">3.50.</span> Testing</h3>
  2342. <div class="outline-text-3" id="text-testing">
  2343. </div>
  2344. <div id="outline-container-testing-integration-testing" class="outline-4">
  2345. <h4 id="testing-integration-testing"><span class="section-number-4">3.50.1.</span> Integration testing</h4>
  2346. <div class="outline-text-4" id="text-testing-integration-testing">
  2347. <ul class="org-ul">
  2348. <li><code>guix-cuirass</code>
  2349. <ul class="org-ul">
  2350. <li>git repo: <a href="https://gitlab.com/mothacehe/guix-cuirass">https://gitlab.com/mothacehe/guix-cuirass</a></li>
  2351. <li>website: ???</li>
  2352. </ul></li>
  2353. </ul>
  2354. </div>
  2355. </div>
  2356. <div id="outline-container-testing-unit-testing" class="outline-4">
  2357. <h4 id="testing-unit-testing"><span class="section-number-4">3.50.2.</span> Unit testing</h4>
  2358. <div class="outline-text-4" id="text-testing-unit-testing">
  2359. <ul class="org-ul">
  2360. <li>srfi-64 (<a href="https://srfi.schemers.org/srfi-64/srfi-64.html">https://srfi.schemers.org/srfi-64/srfi-64.html</a>)
  2361. <ul class="org-ul">
  2362. <li>GNU software Guile manual page: <a href="https://www.gnu.org/software/guile/manual/html_node/SRFI_002d64.html">https://www.gnu.org/software/guile/manual/html_node/SRFI_002d64.html</a></li>
  2363. </ul></li>
  2364. <li><code>srfi-64-driver</code>
  2365. <ul class="org-ul">
  2366. <li>git repository at: ???</li>
  2367. <li>website: <a href="https://ngyro.com/software/srfi-64-driver.html">https://ngyro.com/software/srfi-64-driver.html</a></li>
  2368. </ul></li>
  2369. <li><code>guile-testing</code>
  2370. <ul class="org-ul">
  2371. <li>git repository at: <a href="https://github.com/wedesoft/guile-testing">https://github.com/wedesoft/guile-testing</a></li>
  2372. <li>description: <i>"This is an example on how to do unit-testing using GNU Guile, Automake Test Anything Protocol (TAP), and SRFI-64."</i> (<a href="https://github.com/wedesoft/guile-testing/blob/598768b04fe9ef13e07401f1bd715f5fb3bb964e/README.md">https://github.com/wedesoft/guile-testing/blob/598768b04fe9ef13e07401f1bd715f5fb3bb964e/README.md</a>)</li>
  2373. </ul></li>
  2374. <li><code>guile-unit</code>
  2375. <ul class="org-ul">
  2376. <li>git repository: ??? (was at <a href="https://github.com/sirius94/guile-unit">https://github.com/sirius94/guile-unit</a>)</li>
  2377. <li>description: ???</li>
  2378. </ul></li>
  2379. <li><code>ggspec</code>
  2380. <ul class="org-ul">
  2381. <li>git repo: <a href="https://github.com/yawaramin/ggspec">https://github.com/yawaramin/ggspec</a></li>
  2382. <li>description: <i>"lightweight unit testing library for Guile"</i> (<a href="https://github.com/yawaramin/ggspec/blob/97dab55962f63d9692475b171fd6fbd76ac64731/README.md">https://github.com/yawaramin/ggspec/blob/97dab55962f63d9692475b171fd6fbd76ac64731/README.md</a>)</li>
  2383. </ul></li>
  2384. </ul>
  2385. </div>
  2386. <ol class="org-ol">
  2387. <li><a id="testing-unit-testing-tap-output"></a>TAP output<br />
  2388. <div class="outline-text-5" id="text-testing-unit-testing-tap-output">
  2389. <ul class="org-ul">
  2390. <li><code>guile-tap</code>
  2391. <ul class="org-ul">
  2392. <li>git repo: <a href="https://github.com/xevz/guile-tap">https://github.com/xevz/guile-tap</a></li>
  2393. <li>description: <i>"Simple Guile module which provides TAP compilant output."</i> (<a href="https://github.com/xevz/guile-tap">https://github.com/xevz/guile-tap</a>)</li>
  2394. </ul></li>
  2395. <li><code>guile-tap</code>
  2396. <ul class="org-ul">
  2397. <li>Yes there are 2!</li>
  2398. <li>git repo: <a href="https://gitlab.com/ft/guile-tap">https://gitlab.com/ft/guile-tap</a></li>
  2399. <li>description: <i>"This is a library for GNU Guile that implements a framework for specifying test cases that emit output that adheres to the Test Anything Protocol (TAP)¹."</i> (<a href="https://gitlab.com/ft/guile-tap/-/blob/87edc4b74bfe0774af0211c06a30366a44c1371a/README">https://gitlab.com/ft/guile-tap/-/blob/87edc4b74bfe0774af0211c06a30366a44c1371a/README</a>)</li>
  2400. <li>license: <a href="https://gitlab.com/ft/guile-tap/-/blob/87edc4b74bfe0774af0211c06a30366a44c1371a/LICENCE">https://gitlab.com/ft/guile-tap/-/blob/87edc4b74bfe0774af0211c06a30366a44c1371a/LICENCE</a></li>
  2401. <li><code>scm-test-tap</code>
  2402. <ul class="org-ul">
  2403. <li>git repo: <a href="https://github.com/ft/scm-test-tap">https://github.com/ft/scm-test-tap</a></li>
  2404. <li>description: <i>"TAP emitting test-framework for GNU Guile"</i> (<a href="https://github.com/ft/scm-test-tap">https://github.com/ft/scm-test-tap</a>)</li>
  2405. </ul></li>
  2406. </ul></li>
  2407. </ul>
  2408. </div>
  2409. </li>
  2410. </ol>
  2411. </div>
  2412. <div id="outline-container-testing-other" class="outline-4">
  2413. <h4 id="testing-other"><span class="section-number-4">3.50.3.</span> Other</h4>
  2414. <div class="outline-text-4" id="text-testing-other">
  2415. <ul class="org-ul">
  2416. <li><code>guile-quickcheck</code>
  2417. <ul class="org-ul">
  2418. <li>git repo: <a href="https://git.ngyro.com/guile-quickcheck">https://git.ngyro.com/guile-quickcheck</a></li>
  2419. <li>website: <a href="https://ngyro.com/software/guile-quickcheck.html">https://ngyro.com/software/guile-quickcheck.html</a></li>
  2420. <li><p>
  2421. description:
  2422. </p>
  2423. <blockquote>
  2424. <p>
  2425. This Guile library provides tools for randomized, property-based testing. It
  2426. follows closely the QuickCheck library written in Haskell, with inspiration
  2427. from the Racket version. You can use it to define a property (a predicate
  2428. with specifications for its inputs) and test it by generating many random
  2429. inputs and seeing if it holds.
  2430. </p>
  2431. <p>
  2432. &#x2013; <a href="https://ngyro.com/software/guile-quickcheck.html">https://ngyro.com/software/guile-quickcheck.html</a>
  2433. </p>
  2434. </blockquote></li>
  2435. </ul></li>
  2436. <li><code>guile-proba</code>
  2437. <ul class="org-ul">
  2438. <li>git repo: <a href="https://codeberg.org/luis-felipe/guile-proba">https://codeberg.org/luis-felipe/guile-proba</a></li>
  2439. <li><p>
  2440. description:
  2441. </p>
  2442. <blockquote>
  2443. <p>
  2444. Guile Probá is a set of testing tools for GNU Guile projects with
  2445. SRFI 64-based test suites. It comes with a command-line interface
  2446. that allows you to autodiscover tests and run them, and a library
  2447. that includes a test runner and helpers for writing tests.
  2448. </p>
  2449. <p>
  2450. &#x2013; <a href="https://codeberg.org/luis-felipe/guile-proba/src/commit/f6b235072ec0f41dcdee8631d454c517e5637dbd/README.org">https://codeberg.org/luis-felipe/guile-proba/src/commit/f6b235072ec0f41dcdee8631d454c517e5637dbd/README.org</a>
  2451. </p>
  2452. </blockquote></li>
  2453. </ul></li>
  2454. </ul>
  2455. </div>
  2456. </div>
  2457. </div>
  2458. <div id="outline-container-types" class="outline-3">
  2459. <h3 id="types"><span class="section-number-3">3.51.</span> Types</h3>
  2460. <div class="outline-text-3" id="text-types">
  2461. </div>
  2462. <div id="outline-container-types-static-typing" class="outline-4">
  2463. <h4 id="types-static-typing"><span class="section-number-4">3.51.1.</span> Static typing</h4>
  2464. <div class="outline-text-4" id="text-types-static-typing">
  2465. <ul class="org-ul">
  2466. <li><code>Theme-D</code>
  2467. <ul class="org-ul">
  2468. <li>source code: on website at: <a href="https://www.tohoyn.fi/theme-d/download.html">https://www.tohoyn.fi/theme-d/download.html</a></li>
  2469. <li><p>
  2470. description:
  2471. </p>
  2472. <blockquote>
  2473. <p>
  2474. Programming language Theme-D extends Scheme with static typing. The current
  2475. Scheme platform is guile 3.0 but the software works for guile 2.2,
  2476. too. Theme-D resembles Jaap Weel's Theme but Theme-D is more dynamic and
  2477. the objects in Theme-D need to have type tags. See Theme-D-Golf for GNOME
  2478. bindings to Theme-D.
  2479. </p>
  2480. <p>
  2481. &#x2013; <a href="https://www.tohoyn.fi/theme-d/index.html">https://www.tohoyn.fi/theme-d/index.html</a>
  2482. </p>
  2483. </blockquote></li>
  2484. <li>license: parts as: LGPL-3, GFDL-1.3, GPL-3</li>
  2485. <li>documentation:
  2486. <ul class="org-ul">
  2487. <li>examples: <a href="https://www.tohoyn.fi/theme-d/examples.html">https://www.tohoyn.fi/theme-d/examples.html</a></li>
  2488. <li>docs: <a href="https://www.tohoyn.fi/theme-d/documentation.html">https://www.tohoyn.fi/theme-d/documentation.html</a></li>
  2489. </ul></li>
  2490. </ul></li>
  2491. </ul>
  2492. </div>
  2493. </div>
  2494. </div>
  2495. <div id="outline-container-version-control-systems" class="outline-3">
  2496. <h3 id="version-control-systems"><span class="section-number-3">3.52.</span> Version control systems</h3>
  2497. <div class="outline-text-3" id="text-version-control-systems">
  2498. <ul class="org-ul">
  2499. <li><code>guile-git</code>
  2500. <ul class="org-ul">
  2501. <li>git repository at GitLab: <a href="https://gitlab.com/guile-git/guile-git">https://gitlab.com/guile-git/guile-git</a></li>
  2502. </ul></li>
  2503. <li><code>guile-semver</code>
  2504. <ul class="org-ul">
  2505. <li>git repository at ngyro: <a href="https://git.ngyro.com/guile-semver">https://git.ngyro.com/guile-semver</a></li>
  2506. <li>website at: <a href="https://ngyro.com/software/guile-semver.html">https://ngyro.com/software/guile-semver.html</a></li>
  2507. </ul></li>
  2508. </ul>
  2509. </div>
  2510. </div>
  2511. <div id="outline-container-web-development" class="outline-3">
  2512. <h3 id="web-development"><span class="section-number-3">3.53.</span> Web Development</h3>
  2513. <div class="outline-text-3" id="text-web-development">
  2514. </div>
  2515. <div id="outline-container-web-development-web-servers" class="outline-4">
  2516. <h4 id="web-development-web-servers"><span class="section-number-4">3.53.1.</span> Web servers</h4>
  2517. <div class="outline-text-4" id="text-web-development-web-servers">
  2518. <ul class="org-ul">
  2519. <li>Guile's standard library's web server:
  2520. <ul class="org-ul">
  2521. <li>GNU software manual page: <a href="https://www.gnu.org/software/guile/manual/html_node/Web-Server.html">https://www.gnu.org/software/guile/manual/html_node/Web-Server.html</a></li>
  2522. <li>blog post about the performance of Guile's web server: <a href="http://wingolog.org/archives/2012/03/08/an-in-depth-look-at-the-performance-of-guiles-web-server">http://wingolog.org/archives/2012/03/08/an-in-depth-look-at-the-performance-of-guiles-web-server</a></li>
  2523. <li>documentation as generic interface for web server implementations: <a href="https://www.gnu.org/software/guile/manual/html_node/Web-Server.html">https://www.gnu.org/software/guile/manual/html_node/Web-Server.html</a></li>
  2524. <li>examples for usage for creating a web app: <a href="https://www.gnu.org/software/guile/manual/html_node/Web-Examples.html#Web-Examples">https://www.gnu.org/software/guile/manual/html_node/Web-Examples.html#Web-Examples</a></li>
  2525. </ul></li>
  2526. <li><code>gappserver</code>
  2527. <ul class="org-ul">
  2528. <li>git repo: <a href="https://github.com/uberblah/gappserver">https://github.com/uberblah/gappserver</a></li>
  2529. <li>description: <i>"a really tiny guile webserver"</i> (<a href="https://github.com/uberblah/gappserver">https://github.com/uberblah/gappserver</a>)</li>
  2530. </ul></li>
  2531. </ul>
  2532. </div>
  2533. </div>
  2534. <div id="outline-container-web-development-web-clients" class="outline-4">
  2535. <h4 id="web-development-web-clients"><span class="section-number-4">3.53.2.</span> Web clients</h4>
  2536. <div class="outline-text-4" id="text-web-development-web-clients">
  2537. <ul class="org-ul">
  2538. <li><code>web-client-with-cache</code>
  2539. <ul class="org-ul">
  2540. <li>repository: <a href="https://labo.planete-kraus.eu/web-client-with-cache.git/">https://labo.planete-kraus.eu/web-client-with-cache.git/</a></li>
  2541. <li>manual: <a href="https://web-client-with-cache.planete-kraus.eu/index.html">https://web-client-with-cache.planete-kraus.eu/index.html</a></li>
  2542. <li>description: a caching web client</li>
  2543. </ul></li>
  2544. </ul>
  2545. </div>
  2546. </div>
  2547. <div id="outline-container-web-development-web-frameworks" class="outline-4">
  2548. <h4 id="web-development-web-frameworks"><span class="section-number-4">3.53.3.</span> Web frameworks</h4>
  2549. <div class="outline-text-4" id="text-web-development-web-frameworks">
  2550. <ul class="org-ul">
  2551. <li>guile's-standard-library's web module for dealing with web stuff:
  2552. <ul class="org-ul">
  2553. <li>GNU software manual page: <a href="https://www.gnu.org/software/guile/manual/html_node/Web.html">https://www.gnu.org/software/guile/manual/html_node/Web.html</a></li>
  2554. </ul></li>
  2555. <li>GNU Artanis web application frameweork
  2556. <ul class="org-ul">
  2557. <li>GNU software page: <a href="https://www.gnu.org/software/artanis/">https://www.gnu.org/software/artanis/</a></li>
  2558. <li>git repository at GitLab: <a href="https://gitlab.com/NalaGinrut/artanis">https://gitlab.com/NalaGinrut/artanis</a></li>
  2559. <li>official website of the GNU Artanis project: <a href="https://web-artanis.com/">https://web-artanis.com/</a></li>
  2560. <li>blog post about GNU Artanis: <a href="https://dev.to/heroku/an-ode-to-gnu-artanis-2gn3">https://dev.to/heroku/an-ode-to-gnu-artanis-2gn3</a></li>
  2561. <li>manual:
  2562. <ul class="org-ul">
  2563. <li><a href="https://www.gnu.org/software/artanis/manual/manual.html">https://www.gnu.org/software/artanis/manual/manual.html</a></li>
  2564. <li><a href="https://www.gnu.org/software/artanis/manual/html_node/">https://www.gnu.org/software/artanis/manual/html_node/</a></li>
  2565. </ul></li>
  2566. <li>blog post about using GNU Artanis in a docker container: <a href="https://nalaginrut.com/archives/2019/09/18/install%20gnu%20artanis%20with%20docker">https://nalaginrut.com/archives/2019/09/18/install%20gnu%20artanis%20with%20docker</a></li>
  2567. </ul></li>
  2568. <li>SPH web app
  2569. <ul class="org-ul">
  2570. <li>git repository at GitHub: <a href="https://github.com/sph-mn/sph-web-app">https://github.com/sph-mn/sph-web-app</a></li>
  2571. </ul></li>
  2572. <li>Tekuti
  2573. <ul class="org-ul">
  2574. <li>git repository at GutHub: <a href="https://github.com/wingo/tekuti">https://github.com/wingo/tekuti</a></li>
  2575. <li>blog post about tekuti: <a href="https://wingolog.org/projects/tekuti/">https://wingolog.org/projects/tekuti/</a></li>
  2576. <li>description: <i>"Server-side blog engine written in Scheme"</i> (see repository), web blog using Git as its persistent store</li>
  2577. </ul></li>
  2578. </ul>
  2579. </div>
  2580. </div>
  2581. <div id="outline-container-web-development-protocols" class="outline-4">
  2582. <h4 id="web-development-protocols"><span class="section-number-4">3.53.4.</span> Protocols</h4>
  2583. <div class="outline-text-4" id="text-web-development-protocols">
  2584. </div>
  2585. <ol class="org-ol">
  2586. <li><a id="web-development-protocols-web-sockets"></a>Web sockets<br />
  2587. <div class="outline-text-5" id="text-web-development-protocols-web-sockets">
  2588. <ul class="org-ul">
  2589. <li><code>guile-websocket</code>
  2590. <ul class="org-ul">
  2591. <li>git repo: <a href="https://git.dthompson.us/guile-websocket.git">https://git.dthompson.us/guile-websocket.git</a></li>
  2592. <li>description: <i>"Guile-WebSocket is an implementation of the WebSocket protocol as defined by <a href="https://tools.ietf.org/html/rfc6455">RFC 6455</a>."</i> (<a href="https://git.dthompson.us/guile-websocket.git/tree/README?id=c854e0f84a40d972cbd532bbb89c97ca0126a7cf">https://git.dthompson.us/guile-websocket.git/tree/README?id=c854e0f84a40d972cbd532bbb89c97ca0126a7cf</a>)</li>
  2593. </ul></li>
  2594. </ul>
  2595. </div>
  2596. </li>
  2597. </ol>
  2598. </div>
  2599. <div id="outline-container-web-development-tooling-additional-libraries" class="outline-4">
  2600. <h4 id="web-development-tooling-additional-libraries"><span class="section-number-4">3.53.5.</span> Tooling / Additional libraries</h4>
  2601. <div class="outline-text-4" id="text-web-development-tooling-additional-libraries">
  2602. <ul class="org-ul">
  2603. <li>JSON
  2604. <ul class="org-ul">
  2605. <li><code>guile-json</code>
  2606. <ul class="org-ul">
  2607. <li>on GitHub: <a href="https://github.com/aconchillo/guile-json">https://github.com/aconchillo/guile-json</a></li>
  2608. <li>on savannah: <a href="http://savannah.nongnu.org/projects/guile-json/">http://savannah.nongnu.org/projects/guile-json/</a></li>
  2609. </ul></li>
  2610. </ul></li>
  2611. <li><code>guile-www</code>
  2612. <ul class="org-ul">
  2613. <li>git repository at savannah non-gnu: <a href="http://savannah.nongnu.org/projects/guile-www/">http://savannah.nongnu.org/projects/guile-www/</a></li>
  2614. <li>git repository at: <a href="https://github.com/guildhall/guile-www">https://github.com/guildhall/guile-www</a></li>
  2615. <li>description: <i>"This is the Guile WWW library, a set of Guile Scheme modules to facilitate HTTP, URL and CGI programming."</i> (<a href="https://github.com/guildhall/guile-www/tree/263e9632bab062f0ec360c2d54b3bf7d1a4e9ba7">https://github.com/guildhall/guile-www/tree/263e9632bab062f0ec360c2d54b3bf7d1a4e9ba7</a>)</li>
  2616. </ul></li>
  2617. <li><code>guile-webutils</code>
  2618. <ul class="org-ul">
  2619. <li>git repository at notabug.org: <a href="https://notabug.org/cwebber/guile-webutils">https://notabug.org/cwebber/guile-webutils</a></li>
  2620. </ul></li>
  2621. <li><code>guile-html</code>
  2622. <ul class="org-ul">
  2623. <li>git repo: <a href="https://github.com/TaylanUB/guile-html">https://github.com/TaylanUB/guile-html</a></li>
  2624. <li><p>
  2625. description:
  2626. </p>
  2627. <blockquote>
  2628. <p>
  2629. A tiny module to make it less annoying to make and write HTML files using SXML. Read the code!
  2630. </p>
  2631. </blockquote></li>
  2632. </ul></li>
  2633. </ul>
  2634. </div>
  2635. <ol class="org-ol">
  2636. <li><a id="web-development-tooling-additional-libraries-authorization-and-authentication"></a>Authorization and authentication<br />
  2637. <div class="outline-text-5" id="text-web-development-tooling-additional-libraries-authorization-and-authentication">
  2638. <ul class="org-ul">
  2639. <li><code>guile-oauth</code>
  2640. <ul class="org-ul">
  2641. <li>git repository at GitHub: <a href="https://github.com/aconchillo/guile-oauth">https://github.com/aconchillo/guile-oauth</a></li>
  2642. </ul></li>
  2643. <li><code>guile-jwt</code>
  2644. <ul class="org-ul">
  2645. <li>git repository on GitHub: <a href="https://github.com/aconchillo/guile-jwt">https://github.com/aconchillo/guile-jwt</a></li>
  2646. </ul></li>
  2647. </ul>
  2648. </div>
  2649. </li>
  2650. </ol>
  2651. </div>
  2652. <div id="outline-container-web-development-static-website-generators" class="outline-4">
  2653. <h4 id="web-development-static-website-generators"><span class="section-number-4">3.53.6.</span> Static website generators</h4>
  2654. <div class="outline-text-4" id="text-web-development-static-website-generators">
  2655. <ul class="org-ul">
  2656. <li><code>guile-haunt</code>
  2657. <ul class="org-ul">
  2658. <li>git repository at GitHub: <a href="https://github.com/guildhall/guile-haunt">https://github.com/guildhall/guile-haunt</a></li>
  2659. </ul></li>
  2660. <li>SPH static website generator
  2661. <ul class="org-ul">
  2662. <li>git repository at GitHub: <a href="https://github.com/sph-mn/sph-web-publish">https://github.com/sph-mn/sph-web-publish</a></li>
  2663. </ul></li>
  2664. </ul>
  2665. </div>
  2666. </div>
  2667. <div id="outline-container-web-development-template-engine" class="outline-4">
  2668. <h4 id="web-development-template-engine"><span class="section-number-4">3.53.7.</span> Template engine</h4>
  2669. <div class="outline-text-4" id="text-web-development-template-engine">
  2670. <ul class="org-ul">
  2671. <li>Guile's standard library SXML implementation
  2672. <ul class="org-ul">
  2673. <li>GNU software manual: <a href="https://www.gnu.org/software/guile/manual/html_node/SXML.html">https://www.gnu.org/software/guile/manual/html_node/SXML.html</a></li>
  2674. <li>Basically your templates become functions or macros.</li>
  2675. <li>The structure of your document is kept as Scheme data structures.
  2676. <ul class="org-ul">
  2677. <li>This avoids having parse the document as a long string into an internal data structure to perform semantic transformations.</li>
  2678. <li>It enables pattern matching without resorting to things like regular expressions and similar shenanigans.</li>
  2679. </ul></li>
  2680. </ul></li>
  2681. </ul>
  2682. </div>
  2683. </div>
  2684. <div id="outline-container-web-development-interaction-with-services" class="outline-4">
  2685. <h4 id="web-development-interaction-with-services"><span class="section-number-4">3.53.8.</span> Interaction with services</h4>
  2686. <div class="outline-text-4" id="text-web-development-interaction-with-services">
  2687. <ul class="org-ul">
  2688. <li><code>guile-mastodon</code>
  2689. <ul class="org-ul">
  2690. <li>git repository at framagit: <a href="https://framagit.org/prouby/guile-mastodon">https://framagit.org/prouby/guile-mastodon</a></li>
  2691. <li>documentation at: <a href="https://framagit.org/prouby/guile-mastodon/-/blob/master/doc/guile-mastodon.org">https://framagit.org/prouby/guile-mastodon/-/blob/master/doc/guile-mastodon.org</a></li>
  2692. </ul></li>
  2693. </ul>
  2694. </div>
  2695. </div>
  2696. <div id="outline-container-web-development-web-application-examples" class="outline-4">
  2697. <h4 id="web-development-web-application-examples"><span class="section-number-4">3.53.9.</span> Web application examples</h4>
  2698. <div class="outline-text-4" id="text-web-development-web-application-examples">
  2699. <ul class="org-ul">
  2700. <li><code>scheme-todomvc</code>:
  2701. <ul class="org-ul">
  2702. <li>git repo: <a href="https://github.com/amirouche/scheme-todomvc">https://github.com/amirouche/scheme-todomvc</a></li>
  2703. <li>demo: <a href="https://amirouche.github.io/scheme-todomvc/">https://amirouche.github.io/scheme-todomvc/</a></li>
  2704. </ul></li>
  2705. </ul>
  2706. </div>
  2707. </div>
  2708. <div id="outline-container-web-development-web-drivers-selenium" class="outline-4">
  2709. <h4 id="web-development-web-drivers-selenium"><span class="section-number-4">3.53.10.</span> Web drivers / Selenium</h4>
  2710. <div class="outline-text-4" id="text-web-development-web-drivers-selenium">
  2711. <ul class="org-ul">
  2712. <li><code>guile-web-driver</code>
  2713. <ul class="org-ul">
  2714. <li>git repo: <a href="https://github.com/her01n/guile-web-driver">https://github.com/her01n/guile-web-driver</a></li>
  2715. <li>description: "web driver (selenium) client for guile" (<a href="https://github.com/her01n/guile-web-driver">https://github.com/her01n/guile-web-driver</a>)</li>
  2716. </ul></li>
  2717. </ul>
  2718. </div>
  2719. </div>
  2720. </div>
  2721. <div id="outline-container-window-manager" class="outline-3">
  2722. <h3 id="window-manager"><span class="section-number-3">3.54.</span> Window manager</h3>
  2723. <div class="outline-text-3" id="text-window-manager">
  2724. <ul class="org-ul">
  2725. <li><code>guile-wm</code>
  2726. <ul class="org-ul">
  2727. <li>git repo: <a href="https://github.com/mwitmer/guile-wm">https://github.com/mwitmer/guile-wm</a></li>
  2728. </ul></li>
  2729. </ul>
  2730. </div>
  2731. </div>
  2732. <div id="outline-container-working-with-code" class="outline-3">
  2733. <h3 id="working-with-code"><span class="section-number-3">3.55.</span> Working with code</h3>
  2734. <div class="outline-text-3" id="text-working-with-code">
  2735. <ul class="org-ul">
  2736. <li><code>guile-syntax-highlight</code>
  2737. <ul class="org-ul">
  2738. <li>website: <a href="https://dthompson.us/projects/guile-syntax-highlight.html">https://dthompson.us/projects/guile-syntax-highlight.html</a></li>
  2739. <li>git repository: <a href="https://git.dthompson.us/guile-syntax-highlight.git">https://git.dthompson.us/guile-syntax-highlight.git</a></li>
  2740. </ul></li>
  2741. <li><code>guile-syntax-parse</code>
  2742. <ul class="org-ul">
  2743. <li>git repo: <a href="https://gitlab.com/guile-syntax-parse/guile-syntax-parse">https://gitlab.com/guile-syntax-parse/guile-syntax-parse</a></li>
  2744. <li>description: port of Racket's syntax parse to GNU Guile</li>
  2745. <li>documentation: see <a href="https://docs.racket-lang.org/syntax-parse-example/index.html?q=syntax%20parse#%28part._.A_syntax-parse_.Crash_.Course%29">https://docs.racket-lang.org/syntax-parse-example/index.html?q=syntax%20parse#%28part._.A_syntax-parse_.Crash_.Course%29</a></li>
  2746. </ul></li>
  2747. <li><code>scheme-lsp-server</code>
  2748. <ul class="org-ul">
  2749. <li>git repository: <a href="https://codeberg.org/rgherdt/scheme-lsp-server">https://codeberg.org/rgherdt/scheme-lsp-server</a></li>
  2750. <li><p>
  2751. description:
  2752. </p>
  2753. <blockquote>
  2754. <p>
  2755. A LSP (Language Server Protocol) server for Scheme.
  2756. </p>
  2757. <p>
  2758. This software aims to support several Scheme implementations. To achieve this, the code is designed to contain as much logic as possible in R7RS Scheme, separating implementation-specific code in different directories.
  2759. </p>
  2760. <p>
  2761. Note: this code is still in an early development stage and the API may change. Change suggestions are welcome.
  2762. </p>
  2763. <p>
  2764. &#x2013; <a href="https://codeberg.org/rgherdt/scheme-lsp-server/src/commit/f9492cdf89c0680aeddb58478c0371d7d738d1b1/README.md">https://codeberg.org/rgherdt/scheme-lsp-server/src/commit/f9492cdf89c0680aeddb58478c0371d7d738d1b1/README.md</a>
  2765. </p>
  2766. </blockquote></li>
  2767. <li>documentation: <a href="https://codeberg.org/rgherdt/scheme-lsp-server/src/branch/master/README.md">https://codeberg.org/rgherdt/scheme-lsp-server/src/branch/master/README.md</a></li>
  2768. </ul></li>
  2769. </ul>
  2770. </div>
  2771. </div>
  2772. <div id="outline-container-other" class="outline-3">
  2773. <h3 id="other"><span class="section-number-3">3.56.</span> Other</h3>
  2774. <div class="outline-text-3" id="text-other">
  2775. <ul class="org-ul">
  2776. <li><code>guile-lib</code>
  2777. <ul class="org-ul">
  2778. <li>git repository at non-GNU Savannah: <a href="http://git.savannah.nongnu.org/cgit/guile-lib.git">http://git.savannah.nongnu.org/cgit/guile-lib.git</a></li>
  2779. <li>website at: <a href="https://www.nongnu.org/guile-lib/">https://www.nongnu.org/guile-lib/</a></li>
  2780. <li><p>
  2781. description:
  2782. </p>
  2783. <blockquote>
  2784. <p>
  2785. guile-lib is intended as an accumulation place for pure-scheme Guile modules, allowing for people to cooperate integrating their generic Guile modules into a coherent library. Think "a down-scaled, limited-scope CPAN for Guile". [&#x2026;]
  2786. </p>
  2787. <p>
  2788. (<a href="https://www.nongnu.org/guile-lib/">https://www.nongnu.org/guile-lib/</a>)
  2789. </p>
  2790. </blockquote></li>
  2791. </ul></li>
  2792. <li>Spells
  2793. <ul class="org-ul">
  2794. <li>git repo: <a href="https://github.com/rotty/spells">https://github.com/rotty/spells</a></li>
  2795. <li><p>
  2796. description:
  2797. </p>
  2798. <blockquote>
  2799. <p>
  2800. Spells is a collection of R6RS libraries providing features beyond R6RS in a uniform way across supported implementations.
  2801. </p>
  2802. <p>
  2803. (<a href="https://github.com/rotty/spells/blob/master/README">https://github.com/rotty/spells/blob/master/README</a>)
  2804. </p>
  2805. </blockquote></li>
  2806. <li>documentation: <a href="http://rotty.xx.vu/software/spells/">http://rotty.xx.vu/software/spells/</a> (unfortunately 404 currently)</li>
  2807. </ul></li>
  2808. <li>SPH website:
  2809. <ul class="org-ul">
  2810. <li>It has some Guile library and project descriptions and links.</li>
  2811. <li><a href="http://sph.mn/">http://sph.mn/</a></li>
  2812. </ul></li>
  2813. <li>Grip
  2814. <ul class="org-ul">
  2815. <li>website: <a href="http://www.nongnu.org/grip/index.html">http://www.nongnu.org/grip/index.html</a></li>
  2816. <li>project page: <a href="https://savannah.nongnu.org/projects/grip">https://savannah.nongnu.org/projects/grip</a></li>
  2817. <li>git repo: <a href="https://git.savannah.nongnu.org/cgit/grip.git">https://git.savannah.nongnu.org/cgit/grip.git</a></li>
  2818. <li><p>
  2819. description:
  2820. </p>
  2821. <blockquote>
  2822. <p>
  2823. The idea is similar to the one expressed in Guile-Lib, that is, a place for
  2824. people to collaborate to the development of a common library, though less
  2825. intimidating maybe and, unlike Guile-Lib, Grip will tolerate, under strict
  2826. conditions, some C code: this is notably to support and boost Guile-CV
  2827. floating point operations, at least till Guile has an AOT compiler, able to
  2828. offer similar performance results for fixed size floating points and integer
  2829. operations.
  2830. </p>
  2831. </blockquote>
  2832. <p>
  2833. (<a href="https://www.nongnu.org/grip/index.html">https://www.nongnu.org/grip/index.html</a>)
  2834. </p></li>
  2835. </ul></li>
  2836. </ul>
  2837. </div>
  2838. </div>
  2839. <div id="outline-container-unsorted" class="outline-3">
  2840. <h3 id="unsorted"><span class="section-number-3">3.57.</span> Unsorted</h3>
  2841. <div class="outline-text-3" id="text-unsorted">
  2842. <ul class="org-ul">
  2843. <li>CMOD-PLAY:
  2844. <ul class="org-ul">
  2845. <li>website: <a href="https://www.gnuvola.org/software/cmod-play/">https://www.gnuvola.org/software/cmod-play/</a></li>
  2846. <li>description: ???</li>
  2847. </ul></li>
  2848. <li><code>guile-mpd</code>: <a href="https://github.com/steveerhart/guile-mpd">https://github.com/steveerhart/guile-mpd</a></li>
  2849. <li><code>alias-generator</code>: <a href="https://gitlab.com/Formbi/alias-generator">https://gitlab.com/Formbi/alias-generator</a></li>
  2850. <li><code>bloom-filter</code>: <a href="https://github.com/ijp/bloom-filter">https://github.com/ijp/bloom-filter</a></li>
  2851. <li><code>codejam practices</code>: <a href="https://github.com/jcca/codejam_practices">https://github.com/jcca/codejam_practices</a></li>
  2852. <li><code>guile-agentx</code>: <a href="https://github.com/securactive/guile-agentx">https://github.com/securactive/guile-agentx</a></li>
  2853. <li><code>guile-lfsr</code>:
  2854. <ul class="org-ul">
  2855. <li>git repo: <a href="https://gitlab.com/ft/guile-lfsr">https://gitlab.com/ft/guile-lfsr</a></li>
  2856. <li><p>
  2857. description:
  2858. </p>
  2859. <blockquote>
  2860. <p>
  2861. This library contains three scheme modules targetted at GNU Guile. The
  2862. (communication lfsr) module implements linear feedback shift registers as
  2863. infinite streams of bits. LFSRs are used, for example, to generate chip
  2864. sequences in CDMA systems, for synchronising preambles or as pseudo random
  2865. number generators. The module implements LFSRs in both Fibonacci and Galois
  2866. configurations.
  2867. </p>
  2868. <p>
  2869. &#x2013; <a href="https://gitlab.com/ft/guile-lfsr/-/blob/47724179fc3c0f6f4dddd20d189422b1ac9d3cdd/README">https://gitlab.com/ft/guile-lfsr/-/blob/47724179fc3c0f6f4dddd20d189422b1ac9d3cdd/README</a>
  2870. </p>
  2871. </blockquote></li>
  2872. <li>license: <a href="https://gitlab.com/ft/guile-lfsr/-/blob/47724179fc3c0f6f4dddd20d189422b1ac9d3cdd/LICENCE">https://gitlab.com/ft/guile-lfsr/-/blob/47724179fc3c0f6f4dddd20d189422b1ac9d3cdd/LICENCE</a></li>
  2873. </ul></li>
  2874. <li><code>guile-e-series</code>
  2875. <ul class="org-ul">
  2876. <li>git repository: <a href="https://gitlab.com/ft/guile-e-series">https://gitlab.com/ft/guile-e-series</a></li>
  2877. <li><p>
  2878. description:
  2879. </p>
  2880. <blockquote>
  2881. <hr />
  2882. <p>
  2883. E-Series Tools for GNU Guile
  2884. </p>
  2885. <hr />
  2886. <p>
  2887. The E-Series are series of preferred numbers, commonly used to specify electro-
  2888. nic parts; mostly resistors, inductors and capacitors. This library implements
  2889. two kinds of lookups: a) Given a value, look up that value in all E-series and
  2890. return the values surrounding the desired value; and b) Given an integer that
  2891. identifies an E-Series and a desired value, return combinations of two parts,
  2892. that approximate the desired value as closely as possible.
  2893. </p>
  2894. <p>
  2895. [&#x2026;]
  2896. </p>
  2897. <p>
  2898. &#x2013; <a href="https://gitlab.com/ft/guile-e-series/-/blob/7244035d25fc85898bacb76deacc89568aeff44f/README">https://gitlab.com/ft/guile-e-series/-/blob/7244035d25fc85898bacb76deacc89568aeff44f/README</a>
  2899. </p>
  2900. </blockquote></li>
  2901. <li>license: <a href="https://gitlab.com/ft/guile-e-series/-/blob/7244035d25fc85898bacb76deacc89568aeff44f/LICENCE">https://gitlab.com/ft/guile-e-series/-/blob/7244035d25fc85898bacb76deacc89568aeff44f/LICENCE</a></li>
  2902. </ul></li>
  2903. </ul>
  2904. </div>
  2905. </div>
  2906. </div>
  2907. <div id="outline-container-projects" class="outline-2">
  2908. <h2 id="projects"><span class="section-number-2">4.</span> Projects</h2>
  2909. <div class="outline-text-2" id="text-projects">
  2910. <ul class="org-ul">
  2911. <li>Guile 100
  2912. <ul class="org-ul">
  2913. <li><p>
  2914. description:
  2915. </p>
  2916. <blockquote>
  2917. <p>
  2918. This is the repository for the Guile 100 Programs project. This is a collaborative effort to create a set of examples on how Guile might be used for real-world problems.
  2919. </p>
  2920. <p>
  2921. (<a href="https://github.com/spk121/guile100/blob/master/README.md">https://github.com/spk121/guile100/blob/master/README.md</a>)
  2922. </p>
  2923. </blockquote></li>
  2924. <li>git repo: <a href="https://github.com/spk121/guile100/">https://github.com/spk121/guile100/</a></li>
  2925. <li>website: <a href="http://www.lonelycactus.com/guile100/html/index.html">http://www.lonelycactus.com/guile100/html/index.html</a></li>
  2926. </ul></li>
  2927. </ul>
  2928. </div>
  2929. </div>
  2930. <div id="outline-container-programming-paradigms" class="outline-2">
  2931. <h2 id="programming-paradigms"><span class="section-number-2">5.</span> Programming paradigm</h2>
  2932. <div class="outline-text-2" id="text-programming-paradigms">
  2933. </div>
  2934. <div id="outline-container-programming-paradigms-object-oriented-programming" class="outline-3">
  2935. <h3 id="programming-paradigms-object-oriented-programming"><span class="section-number-3">5.1.</span> "Object-oriented programming"</h3>
  2936. <div class="outline-text-3" id="text-programming-paradigms-object-oriented-programming">
  2937. <ul class="org-ul">
  2938. <li>GOOPS
  2939. <ul class="org-ul">
  2940. <li>GNU software manual page: <a href="https://www.gnu.org/software/guile/manual/html_node/GOOPS.html">https://www.gnu.org/software/guile/manual/html_node/GOOPS.html</a></li>
  2941. </ul></li>
  2942. </ul>
  2943. </div>
  2944. <div id="outline-container-programming-paradigms-prototype-based" class="outline-4">
  2945. <h4 id="programming-paradigms-prototype-based"><span class="section-number-4">5.1.1.</span> Prototype based</h4>
  2946. <div class="outline-text-4" id="text-programming-paradigms-prototype-based">
  2947. <ul class="org-ul">
  2948. <li>Shelf
  2949. <ul class="org-ul">
  2950. <li>git repo: <a href="https://github.com/mwitmer/Shelf">https://github.com/mwitmer/Shelf</a></li>
  2951. </ul></li>
  2952. </ul>
  2953. </div>
  2954. </div>
  2955. </div>
  2956. <div id="outline-container-programming-paradigms-relational-programming" class="outline-3">
  2957. <h3 id="programming-paradigms-relational-programming"><span class="section-number-3">5.2.</span> Relational programming</h3>
  2958. <div class="outline-text-3" id="text-programming-paradigms-relational-programming">
  2959. <ul class="org-ul">
  2960. <li><code>minikanren</code>
  2961. <ul class="org-ul">
  2962. <li>git repository at GitHub: <a href="https://github.com/ijp/minikanren">https://github.com/ijp/minikanren</a></li>
  2963. <li>miniKanren uncourse by William Byrd: <a href="https://duckduckgo.com/?q=minikanren+uncourse&amp;t=h_&amp;iax=videos&amp;ia=videos&amp;iai=https%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3DiCuVTGWNU3s">https://duckduckgo.com/?q=minikanren+uncourse&amp;t=h_&amp;iax=videos&amp;ia=videos&amp;iai=https%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3DiCuVTGWNU3s</a></li>
  2964. </ul></li>
  2965. </ul>
  2966. </div>
  2967. </div>
  2968. <div id="outline-container-programming-paradigms-functional-programming" class="outline-3">
  2969. <h3 id="programming-paradigms-functional-programming"><span class="section-number-3">5.3.</span> Functional programming</h3>
  2970. <div class="outline-text-3" id="text-programming-paradigms-functional-programming">
  2971. <ul class="org-ul">
  2972. <li>Monad implementations
  2973. <ul class="org-ul">
  2974. <li>git repository at GitHub: <a href="https://github.com/ijp/monad">https://github.com/ijp/monad</a></li>
  2975. </ul></li>
  2976. <li>Genshou: Extensible effects
  2977. <ul class="org-ul">
  2978. <li>website: <a href="https://git.sr.ht/~wklew/genshou">https://git.sr.ht/~wklew/genshou</a></li>
  2979. <li>description: Implementation of a way to encapsulate side effects based on
  2980. <a href="http://okmij.org/ftp/Haskell/extensible/">http://okmij.org/ftp/Haskell/extensible/</a>. It helps dealing with side effects in a
  2981. functional way.</li>
  2982. </ul></li>
  2983. </ul>
  2984. </div>
  2985. </div>
  2986. </div>
  2987. <div id="outline-container-programming-language-concepts" class="outline-2">
  2988. <h2 id="programming-language-concepts"><span class="section-number-2">6.</span> Programming language concepts</h2>
  2989. <div class="outline-text-2" id="text-programming-language-concepts">
  2990. </div>
  2991. <div id="outline-container-programming-language-concepts-Pipeline-pipe-chain-threading" class="outline-3">
  2992. <h3 id="programming-language-concepts-Pipeline-pipe-chain-threading"><span class="section-number-3">6.1.</span> Pipeline / pipe / chain / threading</h3>
  2993. <div class="outline-text-3" id="text-programming-language-concepts-Pipeline-pipe-chain-threading">
  2994. <ul class="org-ul">
  2995. <li>SRFI-197:
  2996. <ul class="org-ul">
  2997. <li>website: <a href="https://srfi.schemers.org/srfi-197/srfi-197.html">https://srfi.schemers.org/srfi-197/srfi-197.html</a></li>
  2998. <li>git repository: <a href="https://github.com/ar-nelson/srfi-197">https://github.com/ar-nelson/srfi-197</a></li>
  2999. </ul></li>
  3000. <li>macro examples:
  3001. <ul class="org-ul">
  3002. <li>git repository: <a href="https://notabug.org/ZelphirKaltstahl/guile-macros/src/master/threading-pipe-macro/macro-hygienic-syntax-rules.scm">https://notabug.org/ZelphirKaltstahl/guile-macros/src/master/threading-pipe-macro/macro-hygienic-syntax-rules.scm</a></li>
  3003. <li>description: simple pipeline macro implementation</li>
  3004. </ul></li>
  3005. <li><code>guile-threading-macro.scm</code>
  3006. <ul class="org-ul">
  3007. <li>gist: <a href="https://gist.github.com/emanon-was/ed12f6023e2d6328334a">https://gist.github.com/emanon-was/ed12f6023e2d6328334a</a></li>
  3008. <li>description: simple pipeline macro implementation</li>
  3009. </ul></li>
  3010. <li><code>guile-threading-macros</code>
  3011. <ul class="org-ul">
  3012. <li>repository: <a href="https://hg.sr.ht/~bjoli/guile-threading-macros">https://hg.sr.ht/~bjoli/guile-threading-macros</a></li>
  3013. <li>description: Implements threading macros, which let you choose the position of the threaded argument at each step in the pipeline. Using SRFI-197 is recommended, once it is available in GNU Guile.</li>
  3014. </ul></li>
  3015. </ul>
  3016. </div>
  3017. </div>
  3018. <div id="outline-container-org6e1e377" class="outline-3">
  3019. <h3 id="org6e1e377"><span class="section-number-3">6.2.</span> State Machines</h3>
  3020. <div class="outline-text-3" id="text-6-2">
  3021. <ul class="org-ul">
  3022. <li><code>Guile-SMC</code>
  3023. <ul class="org-ul">
  3024. <li>git repository: <a href="https://github.com/artyom-poptsov/guile-smc">https://github.com/artyom-poptsov/guile-smc</a></li>
  3025. <li>description: <i>"GNU Guile state machine compiler."</i> &#x2013; <a href="https://github.com/artyom-poptsov/guile-smc/blob/d3a1dda50a64f1ac293d02ece1258006a0219e78/README.org">https://github.com/artyom-poptsov/guile-smc/blob/d3a1dda50a64f1ac293d02ece1258006a0219e78/README.org</a></li>
  3026. <li>documentation: <a href="https://github.com/artyom-poptsov/guile-smc/tree/master/doc">https://github.com/artyom-poptsov/guile-smc/tree/master/doc</a></li>
  3027. </ul></li>
  3028. </ul>
  3029. </div>
  3030. </div>
  3031. </div>
  3032. <div id="outline-container-programs" class="outline-2">
  3033. <h2 id="programs"><span class="section-number-2">7.</span> Programs</h2>
  3034. <div class="outline-text-2" id="text-programs">
  3035. </div>
  3036. <div id="outline-container-programs-finances" class="outline-3">
  3037. <h3 id="programs-finances"><span class="section-number-3">7.1.</span> Finances</h3>
  3038. <div class="outline-text-3" id="text-programs-finances">
  3039. <ul class="org-ul">
  3040. <li>ETRACK
  3041. <ul class="org-ul">
  3042. <li>git repository: <a href="https://gitlab.com/restio-al-restio/etrack/">https://gitlab.com/restio-al-restio/etrack/</a></li>
  3043. <li>description: <i>"[&#x2026;] a simple package to track expenses: query, add, delete, update. You can use ETRACK from Emacs or from the command-line."</i> (<a href="https://gitlab.com/restio-al-restio/etrack/-/blob/fe360a7f6acdb855046c99b888c9f8a11084051c/README">https://gitlab.com/restio-al-restio/etrack/-/blob/fe360a7f6acdb855046c99b888c9f8a11084051c/README</a>)</li>
  3044. </ul></li>
  3045. </ul>
  3046. </div>
  3047. </div>
  3048. <div id="outline-container-programs-window-manager" class="outline-3">
  3049. <h3 id="programs-window-manager"><span class="section-number-3">7.2.</span> Window manager</h3>
  3050. <div class="outline-text-3" id="text-programs-window-manager">
  3051. <ul class="org-ul">
  3052. <li><code>RPX</code>
  3053. <ul class="org-ul">
  3054. <li>repository: <a href="https://www.gnuvola.org/software/rpx/">https://www.gnuvola.org/software/rpx/</a></li>
  3055. <li>description: <i>"This is rpx, a port of ratpoison to Guile Scheme. [&#x2026;]"</i> (<a href="https://www.gnuvola.org/software/rpx/">https://www.gnuvola.org/software/rpx/</a>)</li>
  3056. <li>on nongnu: <a href="https://www.nongnu.org/ratpoison/">https://www.nongnu.org/ratpoison/</a></li>
  3057. </ul></li>
  3058. </ul>
  3059. </div>
  3060. </div>
  3061. <div id="outline-container-programs-other" class="outline-3">
  3062. <h3 id="programs-other"><span class="section-number-3">7.3.</span> Other</h3>
  3063. <div class="outline-text-3" id="text-programs-other">
  3064. <ul class="org-ul">
  3065. <li>Starlet
  3066. <ul class="org-ul">
  3067. <li>repository: <a href="https://github.com/taw10/starlet">https://github.com/taw10/starlet</a></li>
  3068. <li><p>
  3069. description:
  3070. </p>
  3071. <blockquote>
  3072. <p>
  3073. Starlet is an experimental Lisp-based domain-specific language (DSL) for theatrical lighting control. It's based on Guile and sends its DMX output via OLA to almost any type of lighting control interface - DMX, sACN, Art-Net etc.
  3074. </p>
  3075. <p>
  3076. &#x2013; <a href="https://github.com/taw10/starlet/blob/79df0f8c3289189387a4e07e24e507445ab85a4d/README.md">https://github.com/taw10/starlet/blob/79df0f8c3289189387a4e07e24e507445ab85a4d/README.md</a>
  3077. </p>
  3078. </blockquote></li>
  3079. </ul></li>
  3080. </ul>
  3081. </div>
  3082. </div>
  3083. </div>
  3084. <div id="outline-container-tools" class="outline-2">
  3085. <h2 id="tools"><span class="section-number-2">8.</span> Tools</h2>
  3086. <div class="outline-text-2" id="text-tools">
  3087. </div>
  3088. <div id="outline-container-tools-notes" class="outline-3">
  3089. <h3 id="tools-notes"><span class="section-number-3">8.1.</span> Notes</h3>
  3090. <div class="outline-text-3" id="text-tools-notes">
  3091. <ul class="org-ul">
  3092. <li><code>guile-notes</code>
  3093. <ul class="org-ul">
  3094. <li>git repo: <a href="https://github.com/Halfwake/guile-notes">https://github.com/Halfwake/guile-notes</a></li>
  3095. <li>description: <i>"A tool for saving a list of notes."</i> (<a href="https://github.com/Halfwake/guile-notes">https://github.com/Halfwake/guile-notes</a>)</li>
  3096. </ul></li>
  3097. </ul>
  3098. </div>
  3099. </div>
  3100. <div id="outline-container-tools-editor-support" class="outline-3">
  3101. <h3 id="tools-editor-support"><span class="section-number-3">8.2.</span> Editor support</h3>
  3102. <div class="outline-text-3" id="text-tools-editor-support">
  3103. <ul class="org-ul">
  3104. <li><code>guile.vim</code>
  3105. <ul class="org-ul">
  3106. <li>git repo: <a href="https://gitlab.com/HiPhish/guile.vim">https://gitlab.com/HiPhish/guile.vim</a></li>
  3107. <li><p>
  3108. description:
  3109. </p>
  3110. <blockquote>
  3111. <p>
  3112. This plugin extends Vim's Scheme support to include the additions to the language provided by the GNU Guile implementation. The plugin automatically detects whether a Scheme file is a Guile file and adds syntax highlighting for Guile's special forms.
  3113. </p>
  3114. <p>
  3115. (<a href="https://gitlab.com/HiPhish/guile.vim/-/blob/master/README.rst">https://gitlab.com/HiPhish/guile.vim/-/blob/master/README.rst</a>)
  3116. </p>
  3117. </blockquote></li>
  3118. </ul></li>
  3119. <li><code>repl.nvim</code>
  3120. <ul class="org-ul">
  3121. <li>git repo: <a href="https://gitlab.com/HiPhish/repl.nvim/">https://gitlab.com/HiPhish/repl.nvim/</a></li>
  3122. <li><p>
  3123. description:
  3124. </p>
  3125. <blockquote>
  3126. <p>
  3127. REPL.nvim bring REPL support to Nvim! Use the built-in REPLs, add your own, or change the existing ones. Change settings in your init.vim or on the fly, make them global or local, use the existing ones or make your own.
  3128. </p>
  3129. <p>
  3130. (<a href="https://gitlab.com/HiPhish/repl.nvim/-/blob/master/README.rst">https://gitlab.com/HiPhish/repl.nvim/-/blob/master/README.rst</a>)
  3131. </p>
  3132. </blockquote></li>
  3133. </ul></li>
  3134. <li>conjure
  3135. <ul class="org-ul">
  3136. <li>git repo: <a href="https://github.com/Olical/conjure">https://github.com/Olical/conjure</a></li>
  3137. <li>description: <i>"Conjure is an interactive environment for evaluating code within your running program. [&#x2026;]"</i> (<a href="https://github.com/Olical/conjure/blob/4dc7c745618a24799af44797c51af7cc308e42a4/README.adoc">https://github.com/Olical/conjure/blob/4dc7c745618a24799af44797c51af7cc308e42a4/README.adoc</a>)</li>
  3138. </ul></li>
  3139. <li>Emacs Guile support
  3140. <ul class="org-ul">
  3141. <li><code>guile-ide</code>
  3142. <ul class="org-ul">
  3143. <li>repository: <a href="https://framagit.org/Jeko/guile-ide">https://framagit.org/Jeko/guile-ide</a></li>
  3144. <li>description: Emacs configuration file focusing on Guile development</li>
  3145. </ul></li>
  3146. <li><code>flycheck-guile</code></li>
  3147. <li><code>geiser-guile</code></li>
  3148. </ul></li>
  3149. <li>TODO: other editors support</li>
  3150. </ul>
  3151. </div>
  3152. </div>
  3153. <div id="outline-container-tools-project-management" class="outline-3">
  3154. <h3 id="tools-project-management"><span class="section-number-3">8.3.</span> Project management</h3>
  3155. <div class="outline-text-3" id="text-tools-project-management">
  3156. <ul class="org-ul">
  3157. <li><code>guile-hall</code>
  3158. <ul class="org-ul">
  3159. <li>git repository at GitLab: <a href="https://gitlab.com/a-sassmannshausen/guile-hall">https://gitlab.com/a-sassmannshausen/guile-hall</a></li>
  3160. </ul></li>
  3161. <li><code>homebrew-guile</code>: <a href="https://github.com/aconchillo/">https://github.com/aconchillo/</a></li>
  3162. <li><code>guile-debbugs</code>
  3163. <ul class="org-ul">
  3164. <li>git repo: <a href="http://savannah.gnu.org/git/?group=guile-debbugs">http://savannah.gnu.org/git/?group=guile-debbugs</a></li>
  3165. <li>description: see <a href="http://git.savannah.nongnu.org/cgit/guile-debbugs.git/tree/README.org">http://git.savannah.nongnu.org/cgit/guile-debbugs.git/tree/README.org</a></li>
  3166. </ul></li>
  3167. </ul>
  3168. </div>
  3169. <div id="outline-container-tools-project-management-package-managers" class="outline-4">
  3170. <h4 id="tools-project-management-package-managers"><span class="section-number-4">8.3.1.</span> Package managers</h4>
  3171. <div class="outline-text-4" id="text-tools-project-management-package-managers">
  3172. <ul class="org-ul">
  3173. <li>GUIX package search
  3174. <ul class="org-ul">
  3175. <li>website: <a href="https://hpc.guix.info/browse">https://hpc.guix.info/browse</a></li>
  3176. <li>Search for example for <code>^guile-</code> to find many Guile libraries and projects.</li>
  3177. </ul></li>
  3178. <li><code>guildhall</code>
  3179. <ul class="org-ul">
  3180. <li>git repository at GitHub: <a href="https://github.com/ijp/guildhall">https://github.com/ijp/guildhall</a></li>
  3181. </ul></li>
  3182. <li>Akku
  3183. <ul class="org-ul">
  3184. <li>website: <a href="https://akkuscm.org/">https://akkuscm.org/</a></li>
  3185. <li><p>
  3186. description:
  3187. </p>
  3188. <blockquote>
  3189. <p>
  3190. Akku.scm is a language package manager for Scheme. It grabs hold of code and vigorously shakes it until it behaves properly.
  3191. </p>
  3192. <p>
  3193. (<a href="https://akkuscm.org/">https://akkuscm.org/</a>)
  3194. </p>
  3195. </blockquote></li>
  3196. </ul></li>
  3197. </ul>
  3198. </div>
  3199. </div>
  3200. <div id="outline-container-tools-project-management-time-tracking" class="outline-4">
  3201. <h4 id="tools-project-management-time-tracking"><span class="section-number-4">8.3.2.</span> Time tracking</h4>
  3202. <div class="outline-text-4" id="text-tools-project-management-time-tracking">
  3203. <ul class="org-ul">
  3204. <li>GNU Foliot
  3205. <ul class="org-ul">
  3206. <li>website: <a href="https://www.gnu.org/software/foliot/index.html">https://www.gnu.org/software/foliot/index.html</a></li>
  3207. <li>git repo: <a href="https://git.savannah.gnu.org/cgit/foliot.git">https://git.savannah.gnu.org/cgit/foliot.git</a></li>
  3208. <li><p>
  3209. description:
  3210. </p>
  3211. <blockquote>
  3212. <p>
  3213. GNU Foliot is a small and easy to use time keeping application.
  3214. </p>
  3215. <p>
  3216. It can be used in a single user mode or by small organizations. Starting
  3217. with version 0.9.4, it can import other user's database, an essential
  3218. feature for remote collaborators.
  3219. </p>
  3220. <p>
  3221. The fields it handles are: a date, who, for whom, what, a duration, whether
  3222. or not to be charged and a description.
  3223. </p>
  3224. <p>
  3225. It includes, on the main application screen, a powerful dynamic filters
  3226. criteria mechanism, which lets you visualize, work on and print a subset of
  3227. your time keeping entries.
  3228. </p>
  3229. <p>
  3230. A printing templates system allows you to (pre)define, reuse and hence
  3231. quickly generate the pdf files and/or printed reports of your needs.
  3232. </p>
  3233. <p>
  3234. A version which will let users export an active filter based subset of their
  3235. time keeping entries is under work.
  3236. </p>
  3237. </blockquote>
  3238. <p>
  3239. (<a href="https://www.gnu.org/software/foliot/index.html">https://www.gnu.org/software/foliot/index.html</a>)
  3240. </p></li>
  3241. </ul></li>
  3242. </ul>
  3243. </div>
  3244. </div>
  3245. </div>
  3246. <div id="outline-container-tools-build-tools" class="outline-3">
  3247. <h3 id="tools-build-tools"><span class="section-number-3">8.4.</span> Build tools</h3>
  3248. <div class="outline-text-3" id="text-tools-build-tools">
  3249. <ul class="org-ul">
  3250. <li><code>potato-make</code>
  3251. <ul class="org-ul">
  3252. <li>repository: <a href="https://github.com/spk121/potato-make">https://github.com/spk121/potato-make</a></li>
  3253. <li><p>
  3254. description:
  3255. </p>
  3256. <blockquote>
  3257. <p>
  3258. Potato Make is a scheme library that aims to simplify the task of
  3259. maintaining, updating, and regenerating programs. It is inspired by the make
  3260. utility in POSIX. With this library, you can write a build script in Guile
  3261. Scheme.
  3262. </p>
  3263. <p>
  3264. &#x2013; <a href="https://github.com/spk121/potato-make/blob/5e823c5f5a9a51f9f89681684e77636b32cb5669/README.md">https://github.com/spk121/potato-make/blob/5e823c5f5a9a51f9f89681684e77636b32cb5669/README.md</a>
  3265. </p>
  3266. </blockquote></li>
  3267. </ul></li>
  3268. </ul>
  3269. </div>
  3270. </div>
  3271. </div>
  3272. <div id="outline-container-blogs" class="outline-2">
  3273. <h2 id="blogs"><span class="section-number-2">9.</span> Blogs</h2>
  3274. <div class="outline-text-2" id="text-blogs">
  3275. <ul class="org-ul">
  3276. <li><a href="https://hyper.dev/">https://hyper.dev/</a></li>
  3277. <li><a href="http://wingolog.org/">http://wingolog.org/</a></li>
  3278. <li><a href="http://okmij.org/ftp/Scheme/">http://okmij.org/ftp/Scheme/</a></li>
  3279. <li>blog post about singletons in GNU Guile
  3280. <ul class="org-ul">
  3281. <li>website: <a href="http://hiphish.github.io/blog/2019/05/24/singleton-objects-in-guile-scheme/">http://hiphish.github.io/blog/2019/05/24/singleton-objects-in-guile-scheme/</a></li>
  3282. </ul></li>
  3283. </ul>
  3284. </div>
  3285. </div>
  3286. <div id="outline-container-other" class="outline-2">
  3287. <h2 id="other"><span class="section-number-2">10.</span> Other</h2>
  3288. <div class="outline-text-2" id="text-other">
  3289. <ul class="org-ul">
  3290. <li>SPH lib, collection of Guile libraries
  3291. <ul class="org-ul">
  3292. <li>website: <a href="http://sph.mn/computer/software/sph-lib.html">http://sph.mn/computer/software/sph-lib.html</a></li>
  3293. </ul></li>
  3294. <li>C2 Wiki Category Scheme
  3295. <ul class="org-ul">
  3296. <li>website: <a href="https://proxy.c2.com/cgi/wiki?CategoryScheme">https://proxy.c2.com/cgi/wiki?CategoryScheme</a></li>
  3297. </ul></li>
  3298. <li>C2 Wiki Guile Scheme
  3299. <ul class="org-ul">
  3300. <li>website: <a href="https://proxy.c2.com/cgi/wiki?GuileScheme">https://proxy.c2.com/cgi/wiki?GuileScheme</a></li>
  3301. </ul></li>
  3302. <li>C2 Wiki Scheme Language
  3303. <ul class="org-ul">
  3304. <li>website: <a href="https://proxy.c2.com/cgi/wiki?SchemeLanguage">https://proxy.c2.com/cgi/wiki?SchemeLanguage</a></li>
  3305. </ul></li>
  3306. <li>Community Scheme Wiki
  3307. <ul class="org-ul">
  3308. <li>general
  3309. <ul class="org-ul">
  3310. <li>website: <a href="http://community.schemewiki.org">http://community.schemewiki.org</a></li>
  3311. </ul></li>
  3312. <li>Scheme FAQ
  3313. <ul class="org-ul">
  3314. <li>website: <a href="http://community.schemewiki.org/?scheme-faq-standards">http://community.schemewiki.org/?scheme-faq-standards</a></li>
  3315. </ul></li>
  3316. </ul></li>
  3317. <li>SICP solutions
  3318. <ul class="org-ul">
  3319. <li>git repo: <a href="https://github.com/alpardal/SICP-guile">https://github.com/alpardal/SICP-guile</a></li>
  3320. <li><p>
  3321. description:
  3322. </p>
  3323. <blockquote>
  3324. <p>
  3325. A SICP Study Guide With Exercise Solutions in Guile &amp; Emacs Lisp
  3326. </p>
  3327. <p>
  3328. (<a href="https://github.com/alpardal/SICP-guile">https://github.com/alpardal/SICP-guile</a>)
  3329. </p>
  3330. </blockquote></li>
  3331. </ul></li>
  3332. <li>Guile-BAUX
  3333. <ul class="org-ul">
  3334. <li>git repo: <a href="https://git.savannah.nongnu.org/cgit/guile-baux.git">https://git.savannah.nongnu.org/cgit/guile-baux.git</a></li>
  3335. <li><p>
  3336. description: A loose collection Guile modules:
  3337. </p>
  3338. <blockquote>
  3339. <p>
  3340. Guile-BAUX is a collection of scripts and modules intended to be installed in your
  3341. project’s aux dir (i.e., build-aux/, or equivalent dir specified by AC<sub>CONFIG</sub><sub>AUX</sub><sub>DIR</sub> in
  3342. configure.ac). There are modules for:
  3343. </p>
  3344. <ul class="org-ul">
  3345. <li>extracting documentation / generating texinfo</li>
  3346. <li>doing (Scheme) source-source scanning / transforming</li>
  3347. <li>constructing / displaying modules’ dependency graph</li>
  3348. <li>generating C boilerplate</li>
  3349. </ul>
  3350. <p>
  3351. [&#x2026;]
  3352. </p>
  3353. <p>
  3354. &#x2013; <a href="https://www.gnuvola.org/software/guile-baux/guile-baux.pdf">https://www.gnuvola.org/software/guile-baux/guile-baux.pdf</a>
  3355. </p>
  3356. </blockquote></li>
  3357. </ul></li>
  3358. <li><code>gclip-select</code>
  3359. <ul class="org-ul">
  3360. <li>git repo: <a href="https://git.savannah.nongnu.org/cgit/gclip-select.git">https://git.savannah.nongnu.org/cgit/gclip-select.git</a></li>
  3361. <li><p>
  3362. description:
  3363. </p>
  3364. <blockquote>
  3365. <p>
  3366. This is gclip<sub>select</sub>, a small program that allows you to re-select from the text
  3367. lines that were selected at one time or another as the X Primary Selection. This
  3368. is useful when, in X Windows, if you have selected something using the left
  3369. mouse button (as in the convention of the X Windows System) and you later
  3370. select something else but want to get back to the earlier selection.
  3371. </p>
  3372. <p>
  3373. Thus this program allows you to quickly switch between frequently copied texts
  3374. for pasting. When you select some text you will notice gclip<sub>select</sub> window adds
  3375. the newly selected text to the list. And you can choose any earlier selection in
  3376. the list window to make it the X11 primary selection again; you can then paste it
  3377. using the middle mouse button.
  3378. </p>
  3379. <p>
  3380. &#x2013; <a href="https://git.savannah.nongnu.org/cgit/gclip-select.git/tree/README?id=b78bc3cd2d46bba590bddbbe0a7d43823635c249">https://git.savannah.nongnu.org/cgit/gclip-select.git/tree/README?id=b78bc3cd2d46bba590bddbbe0a7d43823635c249</a>
  3381. </p>
  3382. </blockquote></li>
  3383. </ul></li>
  3384. </ul>
  3385. </div>
  3386. </div>
  3387. <div id="outline-container-other-lists-of-guile-software" class="outline-2">
  3388. <h2 id="other-lists-of-guile-software"><span class="section-number-2">11.</span> Other lists of Guile software</h2>
  3389. <div class="outline-text-2" id="text-other-lists-of-guile-software">
  3390. <ul class="org-ul">
  3391. <li>official GNU Guile website library list: <a href="https://www.gnu.org/software/guile/libraries/">https://www.gnu.org/software/guile/libraries/</a></li>
  3392. <li>SPH list: <a href="http://sph.mn/foreign/guile-software.html">http://sph.mn/foreign/guile-software.html</a></li>
  3393. </ul>
  3394. </div>
  3395. </div>
  3396. <div id="outline-container-videos-talks-presentations" class="outline-2">
  3397. <h2 id="videos-talks-presentations"><span class="section-number-2">12.</span> Videos / Talks / Presentations</h2>
  3398. <div class="outline-text-2" id="text-videos-talks-presentations">
  3399. <ul class="org-ul">
  3400. <li>The GNU Guy:
  3401. <ul class="org-ul">
  3402. <li><a href="https://video.hardlimit.com/videos/watch/95ddfcce-0be7-4d2c-a1d4-8017deedfdeb">Sending an Email via GNU Guile</a></li>
  3403. <li><a href="https://video.hardlimit.com/videos/watch/37d822a2-0eed-4dd6-b230-5008d433503e">A tiny and incomplete intro to Scheme Macros</a></li>
  3404. <li><a href="https://video.hardlimit.com/videos/watch/14e041a7-59dd-458f-aeca-5aa3e8a87a1e">Reporting A Guile Bug</a></li>
  3405. <li><a href="https://video.hardlimit.com/videos/watch/playlist/da7e41c8-38df-443f-aef1-d14fc7206fcc">Guile Web Development</a> (playlist)</li>
  3406. </ul></li>
  3407. </ul>
  3408. <p>
  3409. This category is still fairly empty. Help filling it with interesting GNU Guile related videos, talks or presentations!
  3410. </p>
  3411. </div>
  3412. </div>
  3413. </div>
  3414. <div id="postamble" class="status">
  3415. <p class="date">Date: 2021-08-14 Sa 00:00</p>
  3416. <p class="author">Author: Zelphir Kaltstahl (help &amp; input from Guile community)</p>
  3417. <p class="date">Created: 2024-04-07 So 15:49</p>
  3418. <p class="validation"><a href="https://validator.w3.org/check?uri=referer">Validate</a></p>
  3419. </div>
  3420. </body>
  3421. </html>