Deploying upstream@bf2c6e26c6ea8ea7ab1ea04d15e2adeaf30e4a14: Publish libakerror article, update plan
This commit is contained in:
@@ -346,7 +346,7 @@
|
||||
style="padding-right: 2px;">
|
||||
</i>TOC
|
||||
</div>
|
||||
<ol class="toc"><li class="toc-item toc-level-2"><a class="toc-link" href="#Getting-roasted-in-IRC-is-motivational"><span class="toc-text">Getting roasted in IRC is motivational</span></a></li><li class="toc-item toc-level-2"><a class="toc-link" href="#There-is-no-problem-C-is-not-broken"><span class="toc-text">There is no problem. C is not broken.</span></a></li><li class="toc-item toc-level-2"><a class="toc-link" href="#Because-we-can-do-better"><span class="toc-text">Because we can do better</span></a></li><li class="toc-item toc-level-2"><a class="toc-link" href="#Check-errno-stupid"><span class="toc-text">Check errno, stupid</span></a></li><li class="toc-item toc-level-2"><a class="toc-link" href="#The-libakerror-way"><span class="toc-text">The libakerror way</span></a></li><li class="toc-item toc-level-2"><a class="toc-link" href="#But-the-macros-hide-a-lot-of-complexity"><span class="toc-text">But the macros hide a lot of complexity</span></a></li><li class="toc-item toc-level-2"><a class="toc-link" href="#We-don%E2%80%99t-like-it"><span class="toc-text">We don’t like it</span></a></li><li class="toc-item toc-level-2"><a class="toc-link" href="#Why-I-like-it"><span class="toc-text">Why I like it</span></a><ol class="toc-child"><li class="toc-item toc-level-3"><a class="toc-link" href="#Ensuring-errors-get-checked"><span class="toc-text">Ensuring errors get checked</span></a></li><li class="toc-item toc-level-3"><a class="toc-link" href="#Debugging-when-all-you-have-is-logs"><span class="toc-text">Debugging when all you have is logs</span></a></li><li class="toc-item toc-level-3"><a class="toc-link" href="#Ensuring-cleanup-behavior-occurs-on-error"><span class="toc-text">Ensuring cleanup behavior occurs on error</span></a></li><li class="toc-item toc-level-3"><a class="toc-link" href="#Managing-early-exit-handlers-with-cleanup-without-goto"><span class="toc-text">Managing early exit handlers with cleanup without goto</span></a></li></ol></li></ol></li><li class="toc-item toc-level-1"><a class="toc-link" href="#Solving-a-problem-you-don%E2%80%99t-actually-have"><span class="toc-text">Solving a problem you don’t actually have</span></a></li><li class="toc-item toc-level-1"><a class="toc-link" href="#I-still-don%E2%80%99t-like-it"><span class="toc-text">I still don’t like it</span></a>
|
||||
<ol class="toc"><li class="toc-item toc-level-2"><a class="toc-link" href="#Getting-roasted-in-IRC-is-motivational"><span class="toc-text">Getting roasted in IRC is motivational</span></a></li><li class="toc-item toc-level-2"><a class="toc-link" href="#There-is-no-problem-C-is-not-broken"><span class="toc-text">There is no problem. C is not broken.</span></a></li><li class="toc-item toc-level-2"><a class="toc-link" href="#Because-we-can-do-better"><span class="toc-text">Because we can do better</span></a></li><li class="toc-item toc-level-2"><a class="toc-link" href="#Check-errno-stupid"><span class="toc-text">Check errno, stupid</span></a></li><li class="toc-item toc-level-2"><a class="toc-link" href="#The-libakerror-way"><span class="toc-text">The libakerror way</span></a></li><li class="toc-item toc-level-2"><a class="toc-link" href="#But-the-macros-hide-a-lot-of-complexity"><span class="toc-text">But the macros hide a lot of complexity</span></a></li><li class="toc-item toc-level-2"><a class="toc-link" href="#We-don%E2%80%99t-like-it"><span class="toc-text">We don’t like it</span></a></li><li class="toc-item toc-level-2"><a class="toc-link" href="#Why-I-like-it"><span class="toc-text">Why I like it</span></a><ol class="toc-child"><li class="toc-item toc-level-3"><a class="toc-link" href="#Ensuring-errors-get-checked"><span class="toc-text">Ensuring errors get checked</span></a></li><li class="toc-item toc-level-3"><a class="toc-link" href="#Debugging-when-all-you-have-is-logs"><span class="toc-text">Debugging when all you have is logs</span></a></li><li class="toc-item toc-level-3"><a class="toc-link" href="#Ensuring-cleanup-behavior-occurs-on-error"><span class="toc-text">Ensuring cleanup behavior occurs on error</span></a></li><li class="toc-item toc-level-3"><a class="toc-link" href="#Managing-early-exit-handlers-with-cleanup-without-goto"><span class="toc-text">Managing early exit handlers with cleanup without goto</span></a></li></ol></li><li class="toc-item toc-level-2"><a class="toc-link" href="#Solving-a-problem-you-don%E2%80%99t-actually-have"><span class="toc-text">Solving a problem you don’t actually have</span></a></li><li class="toc-item toc-level-2"><a class="toc-link" href="#I-still-don%E2%80%99t-like-it"><span class="toc-text">I still don’t like it</span></a></li></ol>
|
||||
</div>
|
||||
</article>
|
||||
|
||||
@@ -461,7 +461,7 @@
|
||||
</h1>
|
||||
</header>
|
||||
<div class="post-meta post-show-meta">
|
||||
<time datetime="2026-01-11T03:03:05.994Z">
|
||||
<time datetime="2026-01-11T03:06:29.621Z">
|
||||
<i
|
||||
class="iconfont icon-calendar"
|
||||
style="margin-right: 2px;">
|
||||
@@ -1152,14 +1152,14 @@ _writeToFile_cleanup<span class="token operator">:</span>
|
||||
<li>Returns 0 at the end of the function assuming everything happens correctly</li>
|
||||
</ol>
|
||||
<p>And it does it all without <code>goto</code>.</p>
|
||||
<h1 id="Solving-a-problem-you-don’t-actually-have"><a href="#Solving-a-problem-you-don’t-actually-have" class="headerlink" title="Solving a problem you don’t actually have"></a>Solving a problem you don’t actually have</h1><p>So, let’s revisit the claim</p>
|
||||
<h2 id="Solving-a-problem-you-don’t-actually-have"><a href="#Solving-a-problem-you-don’t-actually-have" class="headerlink" title="Solving a problem you don’t actually have"></a>Solving a problem you don’t actually have</h2><p>So, let’s revisit the claim</p>
|
||||
<pre class="line-numbers language-none"><code class="language-none"><#c user> this is solving a problem that doesn't exist<span aria-hidden="true" class="line-numbers-rows"><span></span></span></code></pre>
|
||||
|
||||
<ol>
|
||||
<li>We have been able to demonstrate several varieties of problems which are very real, very common, and very much present even in our beloved <strong>C</strong> language.</li>
|
||||
<li>We have been able to demonstrate that <code>libakerror</code> solves these problems quite handily</li>
|
||||
</ol>
|
||||
<h1 id="I-still-don’t-like-it"><a href="#I-still-don’t-like-it" class="headerlink" title="I still don’t like it"></a>I still don’t like it</h1><p>And that’s fine. It’s okay for people to like different things. But if you have the same kinds of problems I’ve described here, and you love (or want to love) writing in C, but error handling has made you gunshy … Feel free to take this code and use it. It’s free (as in speech).</p>
|
||||
<h2 id="I-still-don’t-like-it"><a href="#I-still-don’t-like-it" class="headerlink" title="I still don’t like it"></a>I still don’t like it</h2><p>And that’s fine. It’s okay for people to like different things. But if you have the same kinds of problems I’ve described here, and you love (or want to love) writing in C, but error handling has made you gunshy … Feel free to take this code and use it. It’s free (as in speech).</p>
|
||||
|
||||
</div>
|
||||
<div>
|
||||
@@ -1185,12 +1185,12 @@ _writeToFile_cleanup<span class="token operator">:</span>
|
||||
|
||||
<div class="nav-item-next">
|
||||
<a
|
||||
href="/2026/01/11/News-2026-Week-1/"
|
||||
href="/2025/01/04/Socrates-got-a-raw-deal/"
|
||||
class="nav-link">
|
||||
<div>
|
||||
<div class="nav-label">Next</div>
|
||||
|
||||
<div class="nav-title">News - 2026 - Week 1 </div>
|
||||
<div class="nav-title">Socrates got a raw deal </div>
|
||||
|
||||
</div>
|
||||
<i class="iconfont icon-right nav-next-icon"></i>
|
||||
@@ -1208,7 +1208,7 @@ _writeToFile_cleanup<span class="token operator">:</span>
|
||||
style="padding-right: 2px;">
|
||||
</i>TOC
|
||||
</div>
|
||||
<ol class="toc"><li class="toc-item toc-level-2"><a class="toc-link" href="#Getting-roasted-in-IRC-is-motivational"><span class="toc-text">Getting roasted in IRC is motivational</span></a></li><li class="toc-item toc-level-2"><a class="toc-link" href="#There-is-no-problem-C-is-not-broken"><span class="toc-text">There is no problem. C is not broken.</span></a></li><li class="toc-item toc-level-2"><a class="toc-link" href="#Because-we-can-do-better"><span class="toc-text">Because we can do better</span></a></li><li class="toc-item toc-level-2"><a class="toc-link" href="#Check-errno-stupid"><span class="toc-text">Check errno, stupid</span></a></li><li class="toc-item toc-level-2"><a class="toc-link" href="#The-libakerror-way"><span class="toc-text">The libakerror way</span></a></li><li class="toc-item toc-level-2"><a class="toc-link" href="#But-the-macros-hide-a-lot-of-complexity"><span class="toc-text">But the macros hide a lot of complexity</span></a></li><li class="toc-item toc-level-2"><a class="toc-link" href="#We-don%E2%80%99t-like-it"><span class="toc-text">We don’t like it</span></a></li><li class="toc-item toc-level-2"><a class="toc-link" href="#Why-I-like-it"><span class="toc-text">Why I like it</span></a><ol class="toc-child"><li class="toc-item toc-level-3"><a class="toc-link" href="#Ensuring-errors-get-checked"><span class="toc-text">Ensuring errors get checked</span></a></li><li class="toc-item toc-level-3"><a class="toc-link" href="#Debugging-when-all-you-have-is-logs"><span class="toc-text">Debugging when all you have is logs</span></a></li><li class="toc-item toc-level-3"><a class="toc-link" href="#Ensuring-cleanup-behavior-occurs-on-error"><span class="toc-text">Ensuring cleanup behavior occurs on error</span></a></li><li class="toc-item toc-level-3"><a class="toc-link" href="#Managing-early-exit-handlers-with-cleanup-without-goto"><span class="toc-text">Managing early exit handlers with cleanup without goto</span></a></li></ol></li></ol></li><li class="toc-item toc-level-1"><a class="toc-link" href="#Solving-a-problem-you-don%E2%80%99t-actually-have"><span class="toc-text">Solving a problem you don’t actually have</span></a></li><li class="toc-item toc-level-1"><a class="toc-link" href="#I-still-don%E2%80%99t-like-it"><span class="toc-text">I still don’t like it</span></a>
|
||||
<ol class="toc"><li class="toc-item toc-level-2"><a class="toc-link" href="#Getting-roasted-in-IRC-is-motivational"><span class="toc-text">Getting roasted in IRC is motivational</span></a></li><li class="toc-item toc-level-2"><a class="toc-link" href="#There-is-no-problem-C-is-not-broken"><span class="toc-text">There is no problem. C is not broken.</span></a></li><li class="toc-item toc-level-2"><a class="toc-link" href="#Because-we-can-do-better"><span class="toc-text">Because we can do better</span></a></li><li class="toc-item toc-level-2"><a class="toc-link" href="#Check-errno-stupid"><span class="toc-text">Check errno, stupid</span></a></li><li class="toc-item toc-level-2"><a class="toc-link" href="#The-libakerror-way"><span class="toc-text">The libakerror way</span></a></li><li class="toc-item toc-level-2"><a class="toc-link" href="#But-the-macros-hide-a-lot-of-complexity"><span class="toc-text">But the macros hide a lot of complexity</span></a></li><li class="toc-item toc-level-2"><a class="toc-link" href="#We-don%E2%80%99t-like-it"><span class="toc-text">We don’t like it</span></a></li><li class="toc-item toc-level-2"><a class="toc-link" href="#Why-I-like-it"><span class="toc-text">Why I like it</span></a><ol class="toc-child"><li class="toc-item toc-level-3"><a class="toc-link" href="#Ensuring-errors-get-checked"><span class="toc-text">Ensuring errors get checked</span></a></li><li class="toc-item toc-level-3"><a class="toc-link" href="#Debugging-when-all-you-have-is-logs"><span class="toc-text">Debugging when all you have is logs</span></a></li><li class="toc-item toc-level-3"><a class="toc-link" href="#Ensuring-cleanup-behavior-occurs-on-error"><span class="toc-text">Ensuring cleanup behavior occurs on error</span></a></li><li class="toc-item toc-level-3"><a class="toc-link" href="#Managing-early-exit-handlers-with-cleanup-without-goto"><span class="toc-text">Managing early exit handlers with cleanup without goto</span></a></li></ol></li><li class="toc-item toc-level-2"><a class="toc-link" href="#Solving-a-problem-you-don%E2%80%99t-actually-have"><span class="toc-text">Solving a problem you don’t actually have</span></a></li><li class="toc-item toc-level-2"><a class="toc-link" href="#I-still-don%E2%80%99t-like-it"><span class="toc-text">I still don’t like it</span></a></li></ol>
|
||||
</div>
|
||||
|
||||
</main>
|
||||
@@ -1223,7 +1223,7 @@ _writeToFile_cleanup<span class="token operator">:</span>
|
||||
style="padding-right: 2px;">
|
||||
</i>TOC
|
||||
</div>
|
||||
<ol class="toc"><li class="toc-item toc-level-2"><a class="toc-link" href="#Getting-roasted-in-IRC-is-motivational"><span class="toc-text">Getting roasted in IRC is motivational</span></a></li><li class="toc-item toc-level-2"><a class="toc-link" href="#There-is-no-problem-C-is-not-broken"><span class="toc-text">There is no problem. C is not broken.</span></a></li><li class="toc-item toc-level-2"><a class="toc-link" href="#Because-we-can-do-better"><span class="toc-text">Because we can do better</span></a></li><li class="toc-item toc-level-2"><a class="toc-link" href="#Check-errno-stupid"><span class="toc-text">Check errno, stupid</span></a></li><li class="toc-item toc-level-2"><a class="toc-link" href="#The-libakerror-way"><span class="toc-text">The libakerror way</span></a></li><li class="toc-item toc-level-2"><a class="toc-link" href="#But-the-macros-hide-a-lot-of-complexity"><span class="toc-text">But the macros hide a lot of complexity</span></a></li><li class="toc-item toc-level-2"><a class="toc-link" href="#We-don%E2%80%99t-like-it"><span class="toc-text">We don’t like it</span></a></li><li class="toc-item toc-level-2"><a class="toc-link" href="#Why-I-like-it"><span class="toc-text">Why I like it</span></a><ol class="toc-child"><li class="toc-item toc-level-3"><a class="toc-link" href="#Ensuring-errors-get-checked"><span class="toc-text">Ensuring errors get checked</span></a></li><li class="toc-item toc-level-3"><a class="toc-link" href="#Debugging-when-all-you-have-is-logs"><span class="toc-text">Debugging when all you have is logs</span></a></li><li class="toc-item toc-level-3"><a class="toc-link" href="#Ensuring-cleanup-behavior-occurs-on-error"><span class="toc-text">Ensuring cleanup behavior occurs on error</span></a></li><li class="toc-item toc-level-3"><a class="toc-link" href="#Managing-early-exit-handlers-with-cleanup-without-goto"><span class="toc-text">Managing early exit handlers with cleanup without goto</span></a></li></ol></li></ol></li><li class="toc-item toc-level-1"><a class="toc-link" href="#Solving-a-problem-you-don%E2%80%99t-actually-have"><span class="toc-text">Solving a problem you don’t actually have</span></a></li><li class="toc-item toc-level-1"><a class="toc-link" href="#I-still-don%E2%80%99t-like-it"><span class="toc-text">I still don’t like it</span></a>
|
||||
<ol class="toc"><li class="toc-item toc-level-2"><a class="toc-link" href="#Getting-roasted-in-IRC-is-motivational"><span class="toc-text">Getting roasted in IRC is motivational</span></a></li><li class="toc-item toc-level-2"><a class="toc-link" href="#There-is-no-problem-C-is-not-broken"><span class="toc-text">There is no problem. C is not broken.</span></a></li><li class="toc-item toc-level-2"><a class="toc-link" href="#Because-we-can-do-better"><span class="toc-text">Because we can do better</span></a></li><li class="toc-item toc-level-2"><a class="toc-link" href="#Check-errno-stupid"><span class="toc-text">Check errno, stupid</span></a></li><li class="toc-item toc-level-2"><a class="toc-link" href="#The-libakerror-way"><span class="toc-text">The libakerror way</span></a></li><li class="toc-item toc-level-2"><a class="toc-link" href="#But-the-macros-hide-a-lot-of-complexity"><span class="toc-text">But the macros hide a lot of complexity</span></a></li><li class="toc-item toc-level-2"><a class="toc-link" href="#We-don%E2%80%99t-like-it"><span class="toc-text">We don’t like it</span></a></li><li class="toc-item toc-level-2"><a class="toc-link" href="#Why-I-like-it"><span class="toc-text">Why I like it</span></a><ol class="toc-child"><li class="toc-item toc-level-3"><a class="toc-link" href="#Ensuring-errors-get-checked"><span class="toc-text">Ensuring errors get checked</span></a></li><li class="toc-item toc-level-3"><a class="toc-link" href="#Debugging-when-all-you-have-is-logs"><span class="toc-text">Debugging when all you have is logs</span></a></li><li class="toc-item toc-level-3"><a class="toc-link" href="#Ensuring-cleanup-behavior-occurs-on-error"><span class="toc-text">Ensuring cleanup behavior occurs on error</span></a></li><li class="toc-item toc-level-3"><a class="toc-link" href="#Managing-early-exit-handlers-with-cleanup-without-goto"><span class="toc-text">Managing early exit handlers with cleanup without goto</span></a></li></ol></li><li class="toc-item toc-level-2"><a class="toc-link" href="#Solving-a-problem-you-don%E2%80%99t-actually-have"><span class="toc-text">Solving a problem you don’t actually have</span></a></li><li class="toc-item toc-level-2"><a class="toc-link" href="#I-still-don%E2%80%99t-like-it"><span class="toc-text">I still don’t like it</span></a></li></ol>
|
||||
</article>
|
||||
|
||||
|
||||
@@ -1237,6 +1237,11 @@ _writeToFile_cleanup<span class="token operator">:</span>
|
||||
</div>
|
||||
<div class="recent-posts-list">
|
||||
|
||||
<div class="recent-posts-item">
|
||||
<div class="recent-posts-item-title">2026-01-11</div>
|
||||
<a href="/2026/01/11/News-2026-Week-1/"><div class="recent-posts-item-content">News - 2026 - Week 1</div></a>
|
||||
</div>
|
||||
|
||||
<div class="recent-posts-item">
|
||||
<div class="recent-posts-item-title">2026-01-11</div>
|
||||
<a href="/2026/01/11/Single-Pane-of-Glass/"><div class="recent-posts-item-content">Single Pane of Glass</div></a>
|
||||
@@ -1252,11 +1257,6 @@ _writeToFile_cleanup<span class="token operator">:</span>
|
||||
<a href="/2026/01/11/libakerror/"><div class="recent-posts-item-content">libakerror</div></a>
|
||||
</div>
|
||||
|
||||
<div class="recent-posts-item">
|
||||
<div class="recent-posts-item-title">2026-01-11</div>
|
||||
<a href="/2026/01/11/News-2026-Week-1/"><div class="recent-posts-item-content">News - 2026 - Week 1</div></a>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</article>
|
||||
|
||||
Reference in New Issue
Block a user