<?xml version="1.0" encoding="UTF-8"?><rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>guilescheme &amp;mdash; bs2gs</title>
    <link>https://write.as/bs2gs/tag:guilescheme</link>
    <description>Learning Guile Scheme</description>
    <pubDate>Mon, 24 Aug 2026 13:35:44 +0000</pubDate>
    <item>
      <title>Installing Guile 2.2.4 on Two Computers</title>
      <link>https://write.as/bs2gs/installing-guile-2-2-4-on-two-computers?pk_campaign=rss-feed</link>
      <description>&lt;![CDATA[Scheme Languages have fascinated me for a while, along with Racket, Emacs Lisp, and Common Lisp. It&#39;s hard to decide(fn:0) which language to concentrate on. But, on principle, I have to go with Guile: Gnu&#39;s Ubiquitous Intelligent Language Extension.  And, in practice,  SXML and scheme seem like a good way for me to re-implement the way I generate teaching worksheets from pictures and sentences. Also, the quote notation of I.A. Richards might be made more accessible with scheme-generated html pages too. Ethically, the most principled way, doing the right thing is the most important. Probably, in the long run, the time and attention dedicated to working with Free Software is the best way to grow and contribute as a decent person. &#xA;&#xA;Free Programming Start: Computers on Kotatsu&#xA;&#xA; Debian 9 with Gnome makes these computers, an older smaller notebook bought used and a newer larger laptop, work for me. I&#39;ve been using the larger laptop for much longer than the older notebook, which I bought used and loaned to people as an free software experience.&#xA;&#xA;Along with Racket, GNU&#39;s Guile Scheme from Debian&#39;s apt repositories had been on the bigger computer for some time. I was able to play with some examples while reading R. Kent Dybvig&#39;s The Scheme Programming Language ,but, Skribilo&#39;s installation gave me trouble a few months ago. &#xA;&#xA;With a few free hours the other night, I read slow enough to see the Skribilo needs Guile 2.2 while I only had Guile 2.0. Complications took some time to overcome during the installation on larger computer that had Guile 2.0.  Overcoming those complications made installation on the next computer easier, but Guile 2.2.4 seems to need a Guile 2.0 installation in order to have shared libraries to access. For learning Skribilo, and if all goes well - Artanis as well, I imagine I will only need one Guile. So I uninstalled Guile 2.0 apt uninstall guile after installing Guile 2.2.4. &#xA;!--more--&#xA;&#xA;Guile 2.2.4 seemed to work well after uninstalling Guile 2.0, so with the older, slower computer I skipped the Guile 2.0 of Debian&#39;s apt (package) repositories and went directly for the Guile 2.2.4 tar.gz from GNU&#39;s site(fn:Gtar.gz). Using the browser Firefox to download the tar.gz files for Guile, Skribilo, Guile Reader, and maybe Artanis(fn:Alinks) I set the about:preferences(URL)  to ask me for a folder. After downloading the first file to ~/Guile/modules the rest of the files came into the same folder smoothly. Transferring files from the Downloads folder can be a distraction. With a long view, putting Guile 2.2 in a Guile\modules folder could be appropriate.&#xA;&#xA;Guile 2.2&#39;s installation succeeded after a few tweaks to the process explained in the manual&#39;s section 1.6 &#34;Obtaining and Installing Guile&#34;. (fn:GM1.6).  Various tar and zcat commands are complex when you don&#39;t use them very frequently. Gnome&#39;s file manager lets Extract Here with a right click on a .tar.gz file. Then in a shell console I just have remember cd change directories twice to get into the inner Guile-2.2.4 folder containinge the configure and Makefile  files that get everything to work.&#xA;&#xA;With the shell console in the folder with all Guile&#39;s files I followed the manual(fn:GM1.6). As a regular user (not as root user yet, as recommended somewhere) I typed in two commands:&#xA;   ./configure&#xA;This command told me of things needed for the Guile installation.&#xA;   make &#xA;These commands take a long time.&#xA;&#xA;The configure command&#39;s messages about missing requirements were not enough for me quickly meet Guile&#39;s needs. When the message said I needed libtdl or libunistring, I really needed libtdl-dev and libunistring-dev.  Guile&#39;s installation when well with Debian&#39;s packages: apt-get install libtdl-dev as a sudoer with sudo apt-get install libunistring-dev or as root user. &#xA;&#xA;While installing required software, on the older machine it was too involved to figure out how to, once again, add a sudo group so I just used a few shells consoles. I am developing a convention where my regular user shells are on the left half the screen, while the root user shells are on the right side. Even if the configure and make commands do not demand other software installations, I&#39;ll need sudo (standing for Super User Do?) or root privileges (authority?) to finally install Guile with the make install command. &#xA;&#xA;The Guile installation process also requires libgmp which I was not able to get with Debian&#39;s apt. A search got me to the GNU MP 4.1 page(fn:GMP) and I got more practice with the tar.gz file installation process: 1) download, 2) Extract Here, 3) cd to inner GMP-6.1.2 folder, 4)   ./configure, 5)   make, and 6) # make install. I now like the compact notation,   make and # make install, using    for commands safely to be done as a regular user and #  for commands necessarily to be done as root user. Until now I&#39;ve often rushed through manual and helpful pages and missed the important details that can save time and frustration. &#xA;&#xA;The installation process mentioned the need for bdw-gc. A search(fn:SUpage)  showed me that Debian&#39;s libgc-dev package would work so a quick # apt-get install libgc-dev let me avoid longer download, configure and make process.  &#xA;The need for libffi was, like libtdl and libunistring, met by Debian&#39;s -dev package # apt-get install libffi-dev. &#xA;&#xA;With Guile installed we check with   guile and get the scheme@(guile-user)   prompt. It is fun to work through Nala Ginrut&#39;s Scheme in 15 Minutes pages on the Artanis site(fn:Alinks).  &#xA;&#xA;A helpful hintfrom Yusuke Shinyama(fn:YSpage)  is to create a .guile file in your home directory.&#xA;&#xA;    (use-modules (ice-9 readline))&#xA;    (activate-readline)&#xA;With the above two lines in ~\.guile you can use the up arrow key instead of re-typing the previous command when using Guile interactively. If you are already in an interactive session just type the two lines in at the prompt. After doing it seven or eight times I&#39;m glad I noticed Yusuke Shinyama&#39;s advice.(fn:YSpage)&#xA;&#xA;I had to uninstall, # apt uninstall guile, Guile 2.0 so that   guile gave me an interactive sesssion with Guile 2.2.4. But on the machine that never had a Guile, the absence of Guile 2.0&#39;s shared libraries kept Guile from starting any session. I compared the results for   whereis guile on the two machines. The machine with a working Guile 2.2.4 still had a /usr/share/guile/2.0 folder, even though I uninstalled: # apt uninstall guile.  Thinking that I&#39;d rather have a working Guile Scheme, even if it was an older one, I installed the Debian package # apt-get install guile and then   guile  worked, and I had a session with Guile 2.2.4. &#xA;&#xA;And then I was able to install Skribilo(fn:SK) and it&#39;s requirement, Guile Reader(fn:GRpage). These installations gave me some trouble with directory paths, guilemoduledir, but a close reading of configure messages was enough for a working Skribilo installation. Guile Reader&#39;s need for gperf was easily met after the experience with installing Guile 2.2.4.  While the attitude and techniques for installation are still fresh with me, I hope to find the time to install Artanis too. After spending hours installing Guile I&#39;ll have to get competent with Skribilo, and hopefully train my brain learning web works with Artanis.&#xA;&#xA; (fn:0)&#xA;   https://wingolog.org/archives/2013/01/07/an-opinionated-guide-to-scheme-implementations&#xA; (fn:Gtar.gz)&#xA;    https://ftp.gnu.org/gnu/guile/&#xA; (fn:GM1.6) &#xA;    https://www.gnu.org/software/guile/manual/guile.html#Obtaining-and-Installing-Guile&#xA; (fn:Alinks)&#xA;   https://web-artanis.com/scheme.html&#xA;   http://alpha.gnu.org/gnu/artanis/&#xA; (fn:GMP)&#xA;   https://ftp.gnu.org/old-gnu/Manuals/gmp-4.1/html_mono/gmp.html#Introduction%20to%20GMP&#xA;   ftp://ftp.gnu.org/gnu/gmp&#xA; (fn:SUpage)&#xA;   https://superuser.com/questions/922738/configure-bdw-gc-not-found-when-building-inkscape-from-source#1063074&#xA; (fn:YSpage)&#xA;    https://superuser.com/questions/922738/configure-bdw-gc-not-found-when-building-inkscape-from-source#1063074&#xA; (fn:SKpages)&#xA;    https://www.nongnu.org/skribilo/doc/user.html&#xA;    https://www.nongnu.org/skribilo/index.html#download&#xA; (fn:GRpage)&#xA;    https://www.nongnu.org/guile-reader/&#xA;&#xA;Free Programming Start: Keyboard View of Computers&#xA;&#xA;(This post is a copy of a January 14, 2019 post:&#xA;  https://write.as/bsmall2/installing-guile-2-2-4-on-two-computers)&#xA;  #Guile #GuileScheme #Scheme #Skribilo #InstallingGuile ]]&gt;</description>
      <content:encoded><![CDATA[<p>Scheme Languages have fascinated me for a while, along with Racket, Emacs Lisp, and Common Lisp. It&#39;s hard to decide(fn:0) which language to concentrate on. But, on principle, I have to go with Guile: <em>Gnu&#39;s Ubiquitous Intelligent Language Extension</em>.  And, in practice,  SXML and scheme seem like a good way for me to re-implement the way I generate teaching worksheets from pictures and sentences. Also, the quote notation of I.A. Richards might be made more accessible with scheme-generated html pages too. Ethically, the most principled way, doing the right thing is the most important. Probably, in the long run, the time and attention dedicated to working with Free Software is the best way to grow and contribute as a decent person.</p>

<p><img src="https://i.snap.as/5eBJu67.jpg" alt="Free Programming Start: Computers on Kotatsu" title="Free Programming Start: Computers on Kotatsu, Installing Guile 2.2"/></p>

<p> Debian 9 with Gnome makes these computers, an older smaller notebook bought used and a newer larger laptop, work for me. I&#39;ve been using the larger laptop for much longer than the older notebook, which I bought used and loaned to people as an free software experience.</p>

<p>Along with Racket, GNU&#39;s Guile Scheme from Debian&#39;s apt repositories had been on the bigger computer for some time. I was able to play with some examples while reading R. Kent Dybvig&#39;s <em>The Scheme Programming Language</em> ,but, Skribilo&#39;s installation gave me trouble a few months ago.</p>

<p>With a few free hours the other night, I read slow enough to see the Skribilo needs Guile 2.2 while I only had Guile 2.0. Complications took some time to overcome during the installation on larger computer that had Guile 2.0.  Overcoming those complications made installation on the next computer easier, but Guile 2.2.4 seems to need a Guile 2.0 installation in order to have shared libraries to access. For learning Skribilo, and if all goes well – Artanis as well, I imagine I will only need one Guile. So I uninstalled Guile 2.0 <code>apt uninstall guile</code> after installing Guile 2.2.4.
</p>

<p>Guile 2.2.4 seemed to work well after uninstalling Guile 2.0, so with the older, slower computer I skipped the Guile 2.0 of Debian&#39;s apt (package) repositories and went directly for the Guile 2.2.4 <code>tar.gz</code> from GNU&#39;s site(fn:Gtar.gz). Using the browser Firefox to download the <code>tar.gz</code> files for Guile, Skribilo, Guile Reader, and maybe Artanis(fn:Alinks) I set the <code>about:preferences</code>(URL)  to ask me for a folder. After downloading the first file to <code>~/Guile/modules</code> the rest of the files came into the same folder smoothly. Transferring files from the <code>Downloads</code> folder can be a distraction. With a long view, putting Guile 2.2 in a <code>Guile\modules</code> folder could be appropriate.</p>

<p>Guile 2.2&#39;s installation succeeded after a few tweaks to the process explained in the manual&#39;s section 1.6 “Obtaining and Installing Guile”. (fn:GM1.6).  Various <code>tar</code> and <code>zcat</code> commands are complex when you don&#39;t use them very frequently. Gnome&#39;s file manager lets <code>Extract Here</code> with a right click on a <code>.tar.gz</code> file. Then in a shell console I just have remember <code>cd</code> change directories twice to get into the inner <code>Guile-2.2.4</code> folder containinge the <code>configure</code> and <code>Makefile</code>  files that get everything to work.</p>

<p>With the shell console in the folder with all Guile&#39;s files I followed the manual(fn:GM1.6). As a regular user (not as <code>root</code> user yet, as recommended somewhere) I typed in two commands:
 1. &gt; ./configure
This command told me of things needed for the Guile installation.
 2. &gt; make
These commands take a long time.</p>

<p>The <code>configure</code> command&#39;s messages about missing requirements were not enough for me quickly meet Guile&#39;s needs. When the message said I needed <code>libtdl</code> or <code>libunistring</code>, I really needed <code>libtdl-dev</code> and <code>libunistring-dev</code>.  Guile&#39;s installation when well with Debian&#39;s packages: <code>apt-get install libtdl-dev</code> as a sudoer with <code>sudo apt-get install libunistring-dev</code> or as root user.</p>

<p>While installing required software, on the older machine it was too involved to figure out how to, once again, add a <code>sudo</code> group so I just used a few shells consoles. I am developing a convention where my regular user shells are on the left half the screen, while the root user shells are on the right side. Even if the <code>configure</code> and <code>make</code> commands do not demand other software installations, I&#39;ll need <code>sudo</code> (standing for Super User Do?) or <code>root</code> privileges (authority?) to finally install Guile with the <code>make install</code> command.</p>

<p>The Guile installation process also requires <code>libgmp</code> which I was not able to get with Debian&#39;s <code>apt</code>. A search got me to the GNU MP 4.1 page(fn:GMP) and I got more practice with the <code>tar.gz</code> file installation process: 1) download, 2) Extract Here, 3) cd to inner GMP-6.1.2 folder, 4) <code>&gt; ./configure</code>, 5) <code>&gt; make</code>, and 6) <code># make install</code>. I now like the compact notation, <code>&gt; make</code> and <code># make install</code>, using <code>&gt;</code> for commands safely to be done as a regular user and <code>#</code> for commands necessarily to be done as root user. Until now I&#39;ve often rushed through manual and helpful pages and missed the important details that can save time and frustration.</p>

<p>The installation process mentioned the need for <code>bdw-gc</code>. A search(fn:SUpage)  showed me that Debian&#39;s <code>libgc-dev</code> package would work so a quick <code># apt-get install libgc-dev</code> let me avoid longer <em>download, configure and make</em> process.<br/>
The need for <code>libffi</code> was, like <code>libtdl</code> and <code>libunistring</code>, met by Debian&#39;s <code>-dev</code> package <code># apt-get install libffi-dev</code>.</p>

<p>With Guile installed we check with <code>&gt; guile</code> and get the <code>scheme@(guile-user)&gt;</code> prompt. It is fun to work through Nala Ginrut&#39;s <em>Scheme in 15 Minutes</em> pages on the <em>Artanis</em> site(fn:Alinks).</p>

<p>A helpful hintfrom Yusuke Shinyama(fn:YSpage)  is to create a <code>.guile</code> file in your home directory.</p>

<pre><code>    (use-modules (ice-9 readline))
    (activate-readline)
</code></pre>

<p>With the above two lines in <code>~\.guile</code> you can use the <code>up</code> arrow key instead of re-typing the previous command when using Guile interactively. If you are already in an interactive session just type the two lines in at the prompt. After doing it seven or eight times I&#39;m glad I noticed Yusuke Shinyama&#39;s advice.(fn:YSpage)</p>

<p>I had to uninstall, <code># apt uninstall guile</code>, Guile 2.0 so that <code>&gt; guile</code> gave me an interactive sesssion with Guile 2.2.4. But on the machine that never had a Guile, the absence of Guile 2.0&#39;s shared libraries kept Guile from starting any session. I compared the results for <code>&gt; whereis guile</code> on the two machines. The machine with a working Guile 2.2.4 still had a <code>/usr/share/guile/2.0</code> folder, even though I uninstalled: <code># apt uninstall guile</code>.  Thinking that I&#39;d rather have a working Guile Scheme, even if it was an older one, I installed the Debian package <code># apt-get install guile</code> and then <code>&gt; guile</code> worked, and I had a session with Guile 2.2.4.</p>

<p>And then I was able to install Skribilo(fn:SK) and it&#39;s requirement, Guile Reader(fn:GRpage). These installations gave me some trouble with directory paths, <code>guilemoduledir</code>, but a close reading of configure messages was enough for a working Skribilo installation. Guile Reader&#39;s need for <code>gperf</code> was easily met after the experience with installing Guile 2.2.4.  While the attitude and techniques for installation are still fresh with me, I hope to find the time to install Artanis too. After spending hours installing Guile I&#39;ll have to get competent with Skribilo, and hopefully train my brain learning web works with Artanis.</p>
<ul><li>(fn:0)
<ul><li><a href="https://wingolog.org/archives/2013/01/07/an-opinionated-guide-to-scheme-implementations">https://wingolog.org/archives/2013/01/07/an-opinionated-guide-to-scheme-implementations</a></li></ul></li>
<li>(fn:Gtar.gz)
<ul><li><a href="https://ftp.gnu.org/gnu/guile/">https://ftp.gnu.org/gnu/guile/</a></li></ul></li>
<li>(fn:GM1.6)
<ul><li><a href="https://www.gnu.org/software/guile/manual/guile.html#Obtaining-and-Installing-Guile">https://www.gnu.org/software/guile/manual/guile.html#Obtaining-and-Installing-Guile</a></li></ul></li>
<li>(fn:Alinks)
<ul><li><a href="https://web-artanis.com/scheme.html">https://web-artanis.com/scheme.html</a></li>
<li><a href="http://alpha.gnu.org/gnu/artanis/">http://alpha.gnu.org/gnu/artanis/</a></li></ul></li>
<li>(fn:GMP)
<ul><li><a href="https://ftp.gnu.org/old-gnu/Manuals/gmp-4.1/html_mono/gmp.html#Introduction%20to%20GMP">https://ftp.gnu.org/old-gnu/Manuals/gmp-4.1/html_mono/gmp.html#Introduction%20to%20GMP</a></li>
<li>ftp://ftp.gnu.org/gnu/gmp</li></ul></li>
<li>(fn:SUpage)
<ul><li><a href="https://superuser.com/questions/922738/configure-bdw-gc-not-found-when-building-inkscape-from-source#1063074">https://superuser.com/questions/922738/configure-bdw-gc-not-found-when-building-inkscape-from-source#1063074</a></li></ul></li>
<li>(fn:YSpage)
<ul><li><a href="https://superuser.com/questions/922738/configure-bdw-gc-not-found-when-building-inkscape-from-source#1063074">https://superuser.com/questions/922738/configure-bdw-gc-not-found-when-building-inkscape-from-source#1063074</a></li></ul></li>
<li>(fn:SKpages)
<ul><li><a href="https://www.nongnu.org/skribilo/doc/user.html">https://www.nongnu.org/skribilo/doc/user.html</a></li>
<li><a href="https://www.nongnu.org/skribilo/index.html#download">https://www.nongnu.org/skribilo/index.html#download</a></li></ul></li>
<li>(fn:GRpage)
<ul><li><a href="https://www.nongnu.org/guile-reader/">https://www.nongnu.org/guile-reader/</a></li></ul></li></ul>

<p><img src="https://i.snap.as/ioAxuLV.jpg" alt="Free Programming Start: Keyboard View of Computers" title="Free Programming Start:  Keyboard View of Computers on Kotatsu"/></p>

<p>(This post is a copy of a January 14, 2019 post:
  – <a href="https://write.as/bsmall2/installing-guile-2-2-4-on-two-computers)">https://write.as/bsmall2/installing-guile-2-2-4-on-two-computers)</a>
  <a href="https://write.as/bs2gs/tag:Guile" class="hashtag"><span>#</span><span class="p-category">Guile</span></a> <a href="https://write.as/bs2gs/tag:GuileScheme" class="hashtag"><span>#</span><span class="p-category">GuileScheme</span></a> <a href="https://write.as/bs2gs/tag:Scheme" class="hashtag"><span>#</span><span class="p-category">Scheme</span></a> <a href="https://write.as/bs2gs/tag:Skribilo" class="hashtag"><span>#</span><span class="p-category">Skribilo</span></a> <a href="https://write.as/bs2gs/tag:InstallingGuile" class="hashtag"><span>#</span><span class="p-category">InstallingGuile</span></a></p>
]]></content:encoded>
      <guid>https://write.as/bs2gs/installing-guile-2-2-4-on-two-computers</guid>
      <pubDate>Fri, 08 Feb 2019 13:37:01 +0000</pubDate>
    </item>
  </channel>
</rss>