<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
  <title>Effective Lambda (EN)</title>
  <link>https://www.effectivelambda.org/en/</link>
  <atom:link href="https://www.effectivelambda.org/en/feed.xml" rel="self" type="application/rss+xml" />
  <description>A programming blog.</description>
  <language>en</language>
  <lastBuildDate>Tue, 21 Apr 2026 16:24:07 +0000</lastBuildDate>
  <item>
    <title>Common Lisp: install SBCL on Windows</title>
    <link>https://www.effectivelambda.org/en/blog/002-install-sbcl-on-windows.html</link>
    <guid isPermaLink="true">https://www.effectivelambda.org/en/blog/002-install-sbcl-on-windows.html</guid>
    <pubDate>Tue, 21 Apr 2026 00:00:00 +0000</pubDate>
    <description><![CDATA[<p>In this post, we will see how to install SBCL, one of the most famous Common Lisp implementations, on Windows. We will modify the <code>Path</code> environment variable. We will not cover SBCL’s access from Emacs here.</p>
<p>Let’s go…</p>
<p>Go to <a href="https://www.sbcl.org/platform-table.html" class="uri">https://www.sbcl.org/platform-table.html</a> and click on the cell at the intersection of the <code>Windows</code> row and the <code>x86-64</code> column (assuming your Windows version is 64-bit).</p>
<p>At the time of writing this post, the latest accessible version is <code>2.5.6</code>.</p>
<p>The file <code>sbcl-2.5.6-x86-64-windows-binary.msi</code> is downloaded. Launch it, and install SBCL anywhere (we will move it just after).</p>
<p>Move it to the desired directory, for example <code>c:/programs2/sbcl-2.5.6</code>.</p>
<p>In this case, the executable is located at the following location:<br />
<code>c:/programs2/sbcl-2.5.6/sbcl.exe</code><br />
and we can observe the existence of the subdirectory<br />
<code>c:/programs2/sbcl-2.5.6/contrib/</code></p>
<p>Double-click on the executable <code>c:/programs2/sbcl-2.5.6/sbcl.exe</code> to launch SBCL:</p>
<figure>
<img src="/img/002a-sbcl-fresh.png" alt="" /><figcaption>SBCL fresh install</figcaption>
</figure>
<p>The <code>*</code> symbol is a command prompt.</p>
<p>We can try a simple operation like <code>(+ 2 2)</code>, which will return <code>4</code>.</p>
<figure>
<img src="/img/002b-sbcl-simple-operation.png" alt="" /><figcaption>SBCL simple operation</figcaption>
</figure>
<p>To quit SBCL, use the instruction <code>(quit)</code> or <code>(exit)</code>.</p>
<p>It is recommended to add the directory containing the executable, namely <code>C:\programs2\sbcl-2.5.6</code>, to the Windows (user) <code>Path</code> environment variable. This will allow launching SBCL from anywhere.</p>
]]></description>
  </item>
  <item>
    <title>Install Emacs on Windows</title>
    <link>https://www.effectivelambda.org/en/blog/001-install-emacs-on-windows.html</link>
    <guid isPermaLink="true">https://www.effectivelambda.org/en/blog/001-install-emacs-on-windows.html</guid>
    <pubDate>Tue, 21 Apr 2026 00:00:00 +0000</pubDate>
    <description><![CDATA[<p>In this post, we will see how to install Emacs on Windows, while creating an <code>init.el</code> configuration file, and configuring the Windows <code>HOME</code> environment variable necessary to find it.</p>
<p>Let’s go…</p>
<p>Download the .zip file containing Emacs from the FTP <a href="https://ftp.gnu.org/gnu/emacs/windows/" class="uri">https://ftp.gnu.org/gnu/emacs/windows/</a> or from the mirror <a href="https://mirror.cyberbits.eu/gnu/emacs/windows/" class="uri">https://mirror.cyberbits.eu/gnu/emacs/windows/</a></p>
<p>At the time of writing this post, the latest available version is 30.1. The file to download is therefore <code>emacs-30.1.zip</code> (159 MB)</p>
<p>Unzip it in the directory <strong>of your choice</strong>, for example within <code>C:/programs2/emacs-30.1/</code></p>
<p>The subdirectories will then typically be:<br />
<code>C:/programs2/emacs-30.1/bin</code><br />
<code>C:/programs2/emacs-30.1/include</code><br />
<code>C:/programs2/emacs-30.1/lib</code><br />
etc…</p>
<p>Create a desktop shortcut pointing to <code>C:\programs2\emacs-30.1\bin\emacs.exe</code></p>
<p>Double-click on the shortcut to run it. Emacs should launch.</p>
<figure>
<img src="/img/001a-emacs-splash-screen.png" alt="" /><figcaption>Emacs splash screen</figcaption>
</figure>
<p>To close Emacs: <code>File</code> &gt; <code>Quit</code> menu or the keyboard shortcut <code>Ctrl-x Ctrl-c</code></p>
<p>At this stage, Emacs is installed. :)</p>
<p>One important thing remains to be done: <strong>indicate to Emacs the correct location of the future configuration file</strong> <code>init.el</code></p>
<p>Emacs will look for it in the directory designated by <code>~</code>, which by default under Windows represents an unlikely directory, for example <code>C:\Users\username\AppData\Roaming</code>, which is often the last place where we want to store a configuration file.</p>
<p>(Advanced users can know the location of this default directory by at least three methods: <em>(i)</em> <code>(expand-file-name "~")</code> <em>(ii)</em> <code>(getenv "HOME")</code> or <em>(iii)</em> <code>M-x dired</code> then choose the <code>~</code> directory by typing <code>~</code> directly just after the proposed directory.)</p>
<p>Let’s suppose we want to store configuration files in the same directory as Emacs (<strong>but we can do it elsewhere</strong>): <code>C:\programs2\emacs-30.1\</code></p>
<p>Let’s create a Windows (user) environment variable named <code>HOME</code> with the content <code>C:\programs2\emacs-30.1\</code></p>
<p>In <code>C:\programs2\emacs-30.1\</code>, let’s now create a <code>.emacs.d</code> directory, and, in this directory, an <code>init.el</code> file with the following content:</p>
<pre class="elisp"><code>(message &quot;Here is init.el file. Emacs version is %s&quot; (emacs-version))</code></pre>
<p>Let’s close Emacs (<code>File</code> &gt; <code>Quit</code> in the menus or <code>Ctrl-X Ctrl-C</code> keyboard shortcut) and restart it.</p>
<p>No visible change should be noticed.</p>
<p>Let’s now display the content of the <code>Messages</code> buffer, for example through the <code>Buffers</code> menu or through the keyboard shortcut <code>Ctrl-x Ctrl-b</code>. The buffer content should show the text</p>
<blockquote>
<p>Here is init.el file. Emacs version is […]</p>
</blockquote>
<p>… which proves that our <code>init.el</code> file has been properly loaded.</p>
<figure>
<img src="/img/001b-emacs-messages-buffer.png" alt="" /><figcaption>Emacs Messages buffer</figcaption>
</figure>
<p>This <code>init.el</code> file will be able to accommodate all the configuration instructions we wish… but that’s another story, or rather the story of a lifetime of refinement :D</p>
]]></description>
  </item>
</channel>
</rss>
