summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--2023/06/17/发热及超高热危象/index.html6
-rw-r--r--2023/09/28/A-Brief-History-of-Just-In-Time/index.html2
-rw-r--r--2023/10/05/v8中Number-toString-的实现/index.html2
-rw-r--r--2023/10/05/v8中的Number-toString/index.html253
-rw-r--r--2023/12/02/二〇二三年十二月二日/index.html2
-rw-r--r--2024/01/08/OCaml-News-2024-1/index.html283
-rw-r--r--2024/01/18/OCaml-News-2024-2/index.html293
-rw-r--r--2024/01/22/Rescript-React-Native/index.html255
-rw-r--r--2024/01/23/G-Machine/index.html240
-rw-r--r--2024/01/23/二〇二四年一月二十三日/index.html2
-rw-r--r--2024/01/23/慢性肺源性心脏病/index.html5
-rw-r--r--archives/2023/10/index.html18
-rw-r--r--archives/2023/page/2/index.html30
-rw-r--r--archives/2023/page/3/index.html36
-rw-r--r--archives/2023/page/4/index.html36
-rw-r--r--archives/2023/page/5/index.html18
-rw-r--r--archives/2024/01/index.html72
-rw-r--r--archives/2024/index.html72
-rw-r--r--archives/index.html60
-rw-r--r--archives/page/2/index.html60
-rw-r--r--archives/page/3/index.html60
-rw-r--r--archives/page/4/index.html60
-rw-r--r--archives/page/5/index.html60
-rw-r--r--archives/page/6/index.html66
-rw-r--r--archives/page/7/index.html92
-rw-r--r--tag/index.html6
-rw-r--r--tags/Life/index.html18
-rw-r--r--tags/OCaml/index.html38
-rw-r--r--tags/Rescript/index.html191
-rw-r--r--tags/Technique/index.html83
-rw-r--r--tags/Technique/page/2/index.html252
31 files changed, 2405 insertions, 266 deletions
diff --git a/2023/06/17/发热及超高热危象/index.html b/2023/06/17/发热及超高热危象/index.html
index 3e05493c..e96f8521 100644
--- a/2023/06/17/发热及超高热危象/index.html
+++ b/2023/06/17/发热及超高热危象/index.html
@@ -139,6 +139,12 @@
Medicine
</a>
</span>
+
+ <span class="post-tag">
+ <a href="/tags/Life/">
+ Life
+ </a>
+ </span>
</div>
diff --git a/2023/09/28/A-Brief-History-of-Just-In-Time/index.html b/2023/09/28/A-Brief-History-of-Just-In-Time/index.html
index f6e4792b..1a6f5e11 100644
--- a/2023/09/28/A-Brief-History-of-Just-In-Time/index.html
+++ b/2023/09/28/A-Brief-History-of-Just-In-Time/index.html
@@ -203,7 +203,7 @@
<div class="icon arrow-left"></div>
<div class="post-link">
- <a href="/2023/10/05/v8%E4%B8%ADNumber-toString-%E7%9A%84%E5%AE%9E%E7%8E%B0/">Prev</a>
+ <a href="/2023/10/05/v8%E4%B8%AD%E7%9A%84Number-toString/">Prev</a>
</div>
</div>
diff --git a/2023/10/05/v8中Number-toString-的实现/index.html b/2023/10/05/v8中Number-toString-的实现/index.html
index ab166679..15ededb5 100644
--- a/2023/10/05/v8中Number-toString-的实现/index.html
+++ b/2023/10/05/v8中Number-toString-的实现/index.html
@@ -213,7 +213,7 @@
<div class="icon arrow-right"></div>
<div class="post-link">
- <a href="/2023/09/28/A-Brief-History-of-Just-In-Time/">Next</a>
+ <a href="/2023/10/05/v8%E4%B8%AD%E7%9A%84Number-toString/">Next</a>
</div>
</div>
diff --git a/2023/10/05/v8中的Number-toString/index.html b/2023/10/05/v8中的Number-toString/index.html
new file mode 100644
index 00000000..b13f98eb
--- /dev/null
+++ b/2023/10/05/v8中的Number-toString/index.html
@@ -0,0 +1,253 @@
+<!DOCTYPE html>
+<html lang="en">
+ <head>
+ <meta charset="UTF-8">
+<meta name="viewport"
+ content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
+<meta http-equiv="X-UA-Compatible" content="ie=edge">
+
+ <meta name="author" content="韩暮秋">
+
+
+ <meta name="subtitle" content="暮秋小屋">
+
+
+ <meta name="description" content="这里是暮秋小屋,思念和灵感的寄存处">
+
+
+ <meta name="keywords" content="韩暮秋,MuqiuHan">
+
+
+
+
+<title>v8中的Number.toString() | 暮秋小屋</title>
+
+
+
+
+
+<style>
+ @import url('https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&family=Noto+Sans+SC:wght@300;400;500;700&family=Roboto+Mono&display=swap');
+</style>
+
+
+
+ <!-- stylesheets list from _config.yml -->
+
+ <link rel="stylesheet" href="/css/style.css">
+
+
+
+
+
+ <!-- scripts list from _config.yml -->
+
+ <script src="/js/frame.js"></script>
+
+
+
+
+
+ <script src="https://polyfill.io/v3/polyfill.min.js?features=es6"></script>
+ <script id="MathJax-script" async src="https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-mml-chtml.js"></script>
+
+
+
+
+
+
+
+ <meta name="generator" content="Hexo 6.3.0"></head>
+ <body>
+ <div class="mask-border">
+ </div>
+
+ <div class="wrapper">
+
+ <div class="header">
+ <div class="flex-container">
+ <div class="header-inner">
+ <div class="site-brand-container">
+ <a href="/">
+
+ 暮秋小屋
+
+ </a>
+ </div>
+ <div id="menu-btn" class="menu-btn" onclick="toggleMenu()">
+ Menu
+ </div>
+ <nav class="site-nav">
+ <ul class="menu-list">
+
+
+ <li class="menu-item">
+ <a href="/">主页</a>
+ </li>
+
+
+
+ <li class="menu-item">
+ <a href="/categories/gallery/">日记本</a>
+ </li>
+
+
+
+ <li class="menu-item">
+ <a href="/tags/Medicine/">医学</a>
+ </li>
+
+
+
+ <li class="menu-item">
+ <a href="/tags/Technique/">计算机科学</a>
+ </li>
+
+
+
+ <li class="menu-item">
+ <a href="/tags/Life/">生活</a>
+ </li>
+
+
+
+ <li class="menu-item">
+ <a href="/about">关于</a>
+ </li>
+
+
+
+ </ul>
+ </nav>
+ </div>
+ </div>
+</div>
+
+
+ <div class="main">
+ <div class="flex-container">
+ <article id="post">
+
+
+ <div class="post-head">
+ <div class="post-info">
+ <div class="tag-list">
+
+
+ <span class="post-tag">
+ <a href="/tags/Technique/">
+ Technique
+ </a>
+ </span>
+
+
+ </div>
+ <div class="post-title">
+
+
+ v8中的Number.toString()
+
+
+ </div>
+ <span class="post-date">
+ Oct 5, 2023
+ </span>
+ </div>
+ <div class="post-img">
+
+ <div class="h-line-primary"></div>
+
+ </div>
+</div>
+ <div class="post-content">
+ <p>这里讲一下JavaScript中<code>Number.toString()</code>的实现, 以V8为例。</p>
+<ul>
+<li><a target="_blank" rel="noopener" href="https://github.com/v8/v8/">The official mirror of the V8 Git repository</a></li>
+</ul>
+<p>在很多地方都能看到:</p>
+<figure class="highlight c++"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">*isolate-&gt;<span class="built_in">factory</span>()-&gt;<span class="built_in">NumberToString</span>(value);</span><br></pre></td></tr></table></figure>
+<p>例如 <a target="_blank" rel="noopener" href="https://github.com/v8/v8/blob/df99ca37a9d02a3318d3e5487c7803f6230b8f5f/src/builtins/builtins-number.cc#L140">&#x2F;src&#x2F;builtins&#x2F;builtins-number.cc</a> 中。</p>
+<p>下面看看<code>NumberToString</code>的定义, 应该是在 <a target="_blank" rel="noopener" href="https://github.com/v8/v8/blob/829e8d18d73e21807c78223b0cc107c76c80da27/src/heap/factory-base.cc#L963-L978">src&#x2F;heap&#x2F;factory-base.cc</a> 中:</p>
+<figure class="highlight c++"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br></pre></td><td class="code"><pre><span class="line"><span class="keyword">template</span> &lt;<span class="keyword">typename</span> Impl&gt;</span><br><span class="line">Handle&lt;String&gt; FactoryBase&lt;Impl&gt;::<span class="built_in">NumberToString</span>(Handle&lt;Object&gt; number,</span><br><span class="line"> NumberCacheMode mode) &#123;</span><br><span class="line"> <span class="built_in">SLOW_DCHECK</span>(<span class="built_in">IsNumber</span>(*number));</span><br><span class="line"> <span class="keyword">if</span> (<span class="built_in">IsSmi</span>(*number)) <span class="keyword">return</span> <span class="built_in">SmiToString</span>(Smi::<span class="built_in">cast</span>(*number), mode);</span><br><span class="line"></span><br><span class="line"> <span class="type">double</span> double_value = Handle&lt;HeapNumber&gt;::<span class="built_in">cast</span>(number)-&gt;<span class="built_in">value</span>();</span><br><span class="line"> <span class="comment">// Try to canonicalize doubles.</span></span><br><span class="line"> <span class="type">int</span> smi_value;</span><br><span class="line"> <span class="keyword">if</span> (<span class="built_in">DoubleToSmiInteger</span>(double_value, &amp;smi_value)) &#123;</span><br><span class="line"> <span class="keyword">return</span> <span class="built_in">SmiToString</span>(Smi::<span class="built_in">FromInt</span>(smi_value), mode);</span><br><span class="line"> &#125;</span><br><span class="line"> <span class="keyword">return</span> <span class="built_in">HeapNumberToString</span>(Handle&lt;HeapNumber&gt;::<span class="built_in">cast</span>(number), double_value,</span><br><span class="line"> mode);</span><br><span class="line">&#125;</span><br></pre></td></tr></table></figure>
+
+<p>可以看到这里调用了 <code>SmiToString</code>, 这里不往下翻这个函数的定义, 只需要知道Smi是什么即可。 Smi 是一种特殊的整数类型,它被用于表示较小的整数值,通常在 32 位系统中是 31 位有符号整数。Smi 类型的值存储在指针的低位,而指针的高位用于标记该值是一个 Smi 类型。<code>IsSmi</code> 函数会检查给定的值是否为 Smi 类型,如果是,则返回 true,否则返回 false。这个函数通常用于 V8 引擎内部的优化和性能优化。</p>
+<p>所以<code>NumberToString</code>会判断number是否是一个smi, 如果是的话就调用SmiToString, 否则会尝试将其转换为double再去调用<code>DoubleToSmiInteger</code>, 将<code>DoubleToSmiInteger</code>的调用结果存在<code>smi_value</code>里面, 再通过调用<code>SmiToString</code>将<code>smi_value</code>转换为字符串。</p>
+<p>如果这两条路都行不通的话,就直接调用<code>HeapNumberToString</code>了。</p>
+<p><code>HeapNumberToString</code>的定义如下:</p>
+<figure class="highlight c++"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br></pre></td><td class="code"><pre><span class="line"><span class="keyword">template</span> &lt;<span class="keyword">typename</span> Impl&gt;</span><br><span class="line">Handle&lt;String&gt; FactoryBase&lt;Impl&gt;::<span class="built_in">HeapNumberToString</span>(Handle&lt;HeapNumber&gt; number,</span><br><span class="line"> <span class="type">double</span> value,</span><br><span class="line"> NumberCacheMode mode) &#123;</span><br><span class="line"> <span class="type">int</span> hash = mode == NumberCacheMode::kIgnore</span><br><span class="line"> ? <span class="number">0</span></span><br><span class="line"> : <span class="built_in">impl</span>()-&gt;<span class="built_in">NumberToStringCacheHash</span>(value);</span><br><span class="line"></span><br><span class="line"> <span class="keyword">if</span> (mode == NumberCacheMode::kBoth) &#123;</span><br><span class="line"> Handle&lt;Object&gt; cached = <span class="built_in">impl</span>()-&gt;<span class="built_in">NumberToStringCacheGet</span>(*number, hash);</span><br><span class="line"> <span class="keyword">if</span> (!<span class="built_in">IsUndefined</span>(*cached, <span class="built_in">isolate</span>())) <span class="keyword">return</span> Handle&lt;String&gt;::<span class="built_in">cast</span>(cached);</span><br><span class="line"> &#125;</span><br><span class="line"></span><br><span class="line"> Handle&lt;String&gt; result;</span><br><span class="line"> <span class="keyword">if</span> (value == <span class="number">0</span>) &#123;</span><br><span class="line"> result = <span class="built_in">zero_string</span>();</span><br><span class="line"> &#125; <span class="keyword">else</span> <span class="keyword">if</span> (std::<span class="built_in">isnan</span>(value)) &#123;</span><br><span class="line"> result = <span class="built_in">NaN_string</span>();</span><br><span class="line"> &#125; <span class="keyword">else</span> &#123;</span><br><span class="line"> <span class="type">char</span> arr[kNumberToStringBufferSize];</span><br><span class="line"> <span class="function">base::Vector&lt;<span class="type">char</span>&gt; <span class="title">buffer</span><span class="params">(arr, arraysize(arr))</span></span>;</span><br><span class="line"> <span class="type">const</span> <span class="type">char</span>* string = <span class="built_in">DoubleToCString</span>(value, buffer);</span><br><span class="line"> result = <span class="built_in">CharToString</span>(<span class="keyword">this</span>, string, mode);</span><br><span class="line"> &#125;</span><br><span class="line"> <span class="keyword">if</span> (mode != NumberCacheMode::kIgnore) &#123;</span><br><span class="line"> <span class="built_in">impl</span>()-&gt;<span class="built_in">NumberToStringCacheSet</span>(number, hash, result);</span><br><span class="line"> &#125;</span><br><span class="line"> <span class="keyword">return</span> result;</span><br><span class="line">&#125;</span><br></pre></td></tr></table></figure>
+
+<p>就是熟知的NaN, Undefined处理,重点在:</p>
+<figure class="highlight c++"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br></pre></td><td class="code"><pre><span class="line"><span class="type">char</span> arr[kNumberToStringBufferSize];</span><br><span class="line"><span class="function">base::Vector&lt;<span class="type">char</span>&gt; <span class="title">buffer</span><span class="params">(arr, arraysize(arr))</span></span>;</span><br><span class="line"><span class="type">const</span> <span class="type">char</span>* string = <span class="built_in">DoubleToCString</span>(value, buffer);</span><br><span class="line">result = <span class="built_in">CharToString</span>(<span class="keyword">this</span>, string, mode);</span><br></pre></td></tr></table></figure>
+
+<p>这里调用了<code>DoubleToCString</code>, 其定义在 <a target="_blank" rel="noopener" href="https://github.com/v8/v8/blob/829e8d18d73e21807c78223b0cc107c76c80da27/src/numbers/conversions.cc#L1064-L1126">&#x2F;src&#x2F;numbers&#x2F;conversions.cc</a> 中:</p>
+<figure class="highlight c++"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br><span class="line">30</span><br><span class="line">31</span><br><span class="line">32</span><br><span class="line">33</span><br><span class="line">34</span><br><span class="line">35</span><br><span class="line">36</span><br><span class="line">37</span><br><span class="line">38</span><br><span class="line">39</span><br><span class="line">40</span><br><span class="line">41</span><br><span class="line">42</span><br><span class="line">43</span><br><span class="line">44</span><br><span class="line">45</span><br><span class="line">46</span><br><span class="line">47</span><br><span class="line">48</span><br><span class="line">49</span><br><span class="line">50</span><br><span class="line">51</span><br><span class="line">52</span><br><span class="line">53</span><br><span class="line">54</span><br><span class="line">55</span><br><span class="line">56</span><br><span class="line">57</span><br><span class="line">58</span><br><span class="line">59</span><br><span class="line">60</span><br><span class="line">61</span><br><span class="line">62</span><br></pre></td><td class="code"><pre><span class="line"><span class="function"><span class="type">const</span> <span class="type">char</span>* <span class="title">DoubleToCString</span><span class="params">(<span class="type">double</span> v, base::Vector&lt;<span class="type">char</span>&gt; buffer)</span> </span>&#123;</span><br><span class="line"> <span class="keyword">switch</span> (FPCLASSIFY_NAMESPACE::<span class="built_in">fpclassify</span>(v)) &#123;</span><br><span class="line"> <span class="keyword">case</span> FP_NAN:</span><br><span class="line"> <span class="keyword">return</span> <span class="string">&quot;NaN&quot;</span>;</span><br><span class="line"> <span class="keyword">case</span> FP_INFINITE:</span><br><span class="line"> <span class="keyword">return</span> (v &lt; <span class="number">0.0</span> ? <span class="string">&quot;-Infinity&quot;</span> : <span class="string">&quot;Infinity&quot;</span>);</span><br><span class="line"> <span class="keyword">case</span> FP_ZERO:</span><br><span class="line"> <span class="keyword">return</span> <span class="string">&quot;0&quot;</span>;</span><br><span class="line"> <span class="keyword">default</span>: &#123;</span><br><span class="line"> <span class="keyword">if</span> (<span class="built_in">IsInt32Double</span>(v)) &#123;</span><br><span class="line"> <span class="comment">// This will trigger if v is -0 and -0.0 is stringified to &quot;0&quot;.</span></span><br><span class="line"> <span class="comment">// (see ES section 7.1.12.1 #sec-tostring-applied-to-the-number-type)</span></span><br><span class="line"> <span class="keyword">return</span> <span class="built_in">IntToCString</span>(<span class="built_in">FastD2I</span>(v), buffer);</span><br><span class="line"> &#125;</span><br><span class="line"> <span class="function">SimpleStringBuilder <span class="title">builder</span><span class="params">(buffer.begin(), buffer.length())</span></span>;</span><br><span class="line"> <span class="type">int</span> decimal_point;</span><br><span class="line"> <span class="type">int</span> sign;</span><br><span class="line"> <span class="type">const</span> <span class="type">int</span> kV8DtoaBufferCapacity = base::kBase10MaximalLength + <span class="number">1</span>;</span><br><span class="line"> <span class="type">char</span> decimal_rep[kV8DtoaBufferCapacity];</span><br><span class="line"> <span class="type">int</span> length;</span><br><span class="line"></span><br><span class="line"> base::<span class="built_in">DoubleToAscii</span>(</span><br><span class="line"> v, base::DTOA_SHORTEST, <span class="number">0</span>,</span><br><span class="line"> base::<span class="built_in">Vector</span>&lt;<span class="type">char</span>&gt;(decimal_rep, kV8DtoaBufferCapacity), &amp;sign,</span><br><span class="line"> &amp;length, &amp;decimal_point);</span><br><span class="line"></span><br><span class="line"> <span class="keyword">if</span> (sign) builder.<span class="built_in">AddCharacter</span>(<span class="string">&#x27;-&#x27;</span>);</span><br><span class="line"></span><br><span class="line"> <span class="keyword">if</span> (length &lt;= decimal_point &amp;&amp; decimal_point &lt;= <span class="number">21</span>) &#123;</span><br><span class="line"> <span class="comment">// ECMA-262 section 9.8.1 step 6.</span></span><br><span class="line"> builder.<span class="built_in">AddString</span>(decimal_rep);</span><br><span class="line"> builder.<span class="built_in">AddPadding</span>(<span class="string">&#x27;0&#x27;</span>, decimal_point - length);</span><br><span class="line"></span><br><span class="line"> &#125; <span class="keyword">else</span> <span class="keyword">if</span> (<span class="number">0</span> &lt; decimal_point &amp;&amp; decimal_point &lt;= <span class="number">21</span>) &#123;</span><br><span class="line"> <span class="comment">// ECMA-262 section 9.8.1 step 7.</span></span><br><span class="line"> builder.<span class="built_in">AddSubstring</span>(decimal_rep, decimal_point);</span><br><span class="line"> builder.<span class="built_in">AddCharacter</span>(<span class="string">&#x27;.&#x27;</span>);</span><br><span class="line"> builder.<span class="built_in">AddString</span>(decimal_rep + decimal_point);</span><br><span class="line"></span><br><span class="line"> &#125; <span class="keyword">else</span> <span class="keyword">if</span> (decimal_point &lt;= <span class="number">0</span> &amp;&amp; decimal_point &gt; <span class="number">-6</span>) &#123;</span><br><span class="line"> <span class="comment">// ECMA-262 section 9.8.1 step 8.</span></span><br><span class="line"> builder.<span class="built_in">AddString</span>(<span class="string">&quot;0.&quot;</span>);</span><br><span class="line"> builder.<span class="built_in">AddPadding</span>(<span class="string">&#x27;0&#x27;</span>, -decimal_point);</span><br><span class="line"> builder.<span class="built_in">AddString</span>(decimal_rep);</span><br><span class="line"></span><br><span class="line"> &#125; <span class="keyword">else</span> &#123;</span><br><span class="line"> <span class="comment">// ECMA-262 section 9.8.1 step 9 and 10 combined.</span></span><br><span class="line"> builder.<span class="built_in">AddCharacter</span>(decimal_rep[<span class="number">0</span>]);</span><br><span class="line"> <span class="keyword">if</span> (length != <span class="number">1</span>) &#123;</span><br><span class="line"> builder.<span class="built_in">AddCharacter</span>(<span class="string">&#x27;.&#x27;</span>);</span><br><span class="line"> builder.<span class="built_in">AddString</span>(decimal_rep + <span class="number">1</span>);</span><br><span class="line"> &#125;</span><br><span class="line"> builder.<span class="built_in">AddCharacter</span>(<span class="string">&#x27;e&#x27;</span>);</span><br><span class="line"> builder.<span class="built_in">AddCharacter</span>((decimal_point &gt;= <span class="number">0</span>) ? <span class="string">&#x27;+&#x27;</span> : <span class="string">&#x27;-&#x27;</span>);</span><br><span class="line"> <span class="type">int</span> exponent = decimal_point - <span class="number">1</span>;</span><br><span class="line"> <span class="keyword">if</span> (exponent &lt; <span class="number">0</span>) exponent = -exponent;</span><br><span class="line"> builder.<span class="built_in">AddDecimalInteger</span>(exponent);</span><br><span class="line"> &#125;</span><br><span class="line"> <span class="keyword">return</span> builder.<span class="built_in">Finalize</span>();</span><br><span class="line"> &#125;</span><br><span class="line"> &#125;</span><br><span class="line">&#125;</span><br></pre></td></tr></table></figure>
+
+<p>不用过多解释, 已经很清晰了, <code>FastD2I</code> 就是 Fast Double to Integer的意思, 定义如下, 注释也很详尽:</p>
+<figure class="highlight c++"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br></pre></td><td class="code"><pre><span class="line"><span class="comment">// The fast double-to-(unsigned-)int conversion routine does not guarantee</span></span><br><span class="line"><span class="comment">// rounding towards zero.</span></span><br><span class="line"><span class="comment">// The result is undefined if x is infinite or NaN, or if the rounded</span></span><br><span class="line"><span class="comment">// integer value is outside the range of type int.</span></span><br><span class="line"><span class="function"><span class="keyword">inline</span> <span class="type">int</span> <span class="title">FastD2I</span><span class="params">(<span class="type">double</span> x)</span> </span>&#123;</span><br><span class="line"> <span class="built_in">DCHECK</span>(x &lt;= INT_MAX);</span><br><span class="line"> <span class="built_in">DCHECK</span>(x &gt;= INT_MIN);</span><br><span class="line"> <span class="keyword">return</span> <span class="built_in">static_cast</span>&lt;<span class="type">int32_t</span>&gt;(x);</span><br><span class="line">&#125;</span><br></pre></td></tr></table></figure>
+
+<p>以上</p>
+
+</div>
+
+<script>
+ window.onload = detectors();
+</script>
+ <div class="post-footer">
+ <div class="h-line-primary"></div>
+ <nav class="post-nav">
+ <div class="prev-item">
+
+ <div class="icon arrow-left"></div>
+ <div class="post-link">
+ <a href="/2023/10/05/v8%E4%B8%ADNumber-toString-%E7%9A%84%E5%AE%9E%E7%8E%B0/">Prev</a>
+ </div>
+
+ </div>
+ <div class="next-item">
+
+ <div class="icon arrow-right"></div>
+ <div class="post-link">
+ <a href="/2023/09/28/A-Brief-History-of-Just-In-Time/">Next</a>
+ </div>
+
+ </div>
+ </nav>
+</div>
+
+
+ <div class="post-comment">
+
+
+
+
+
+
+
+</div>
+
+
+</article>
+ </div>
+ </div>
+
+ <div class="footer">
+ <div class="flex-container">
+ <div class="footer-text">
+
+
+ |
+
+
+ 希望路过的人可以添点柴火让这里暖和点
+
+ </div>
+ </div>
+</div>
+
+ </div>
+
+
+
+
+ </body>
+</html>
diff --git a/2023/12/02/二〇二三年十二月二日/index.html b/2023/12/02/二〇二三年十二月二日/index.html
index c10f5b97..b508bdbf 100644
--- a/2023/12/02/二〇二三年十二月二日/index.html
+++ b/2023/12/02/二〇二三年十二月二日/index.html
@@ -187,7 +187,7 @@
<div class="icon arrow-left"></div>
<div class="post-link">
- <a href="/2024/01/23/%E4%BA%8C%E3%80%87%E4%BA%8C%E5%9B%9B%E5%B9%B4%E4%B8%80%E6%9C%88%E4%BA%8C%E5%8D%81%E4%B8%89%E6%97%A5/">Prev</a>
+ <a href="/2024/01/08/OCaml-News-2024-1/">Prev</a>
</div>
</div>
diff --git a/2024/01/08/OCaml-News-2024-1/index.html b/2024/01/08/OCaml-News-2024-1/index.html
new file mode 100644
index 00000000..13a70b6c
--- /dev/null
+++ b/2024/01/08/OCaml-News-2024-1/index.html
@@ -0,0 +1,283 @@
+<!DOCTYPE html>
+<html lang="en">
+ <head>
+ <meta charset="UTF-8">
+<meta name="viewport"
+ content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
+<meta http-equiv="X-UA-Compatible" content="ie=edge">
+
+ <meta name="author" content="韩暮秋">
+
+
+ <meta name="subtitle" content="暮秋小屋">
+
+
+ <meta name="description" content="这里是暮秋小屋,思念和灵感的寄存处">
+
+
+ <meta name="keywords" content="韩暮秋,MuqiuHan">
+
+
+
+
+<title>OCaml News 2024-1 | 暮秋小屋</title>
+
+
+
+
+
+<style>
+ @import url('https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&family=Noto+Sans+SC:wght@300;400;500;700&family=Roboto+Mono&display=swap');
+</style>
+
+
+
+ <!-- stylesheets list from _config.yml -->
+
+ <link rel="stylesheet" href="/css/style.css">
+
+
+
+
+
+ <!-- scripts list from _config.yml -->
+
+ <script src="/js/frame.js"></script>
+
+
+
+
+
+ <script src="https://polyfill.io/v3/polyfill.min.js?features=es6"></script>
+ <script id="MathJax-script" async src="https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-mml-chtml.js"></script>
+
+
+
+
+
+
+
+ <meta name="generator" content="Hexo 6.3.0"></head>
+ <body>
+ <div class="mask-border">
+ </div>
+
+ <div class="wrapper">
+
+ <div class="header">
+ <div class="flex-container">
+ <div class="header-inner">
+ <div class="site-brand-container">
+ <a href="/">
+
+ 暮秋小屋
+
+ </a>
+ </div>
+ <div id="menu-btn" class="menu-btn" onclick="toggleMenu()">
+ Menu
+ </div>
+ <nav class="site-nav">
+ <ul class="menu-list">
+
+
+ <li class="menu-item">
+ <a href="/">主页</a>
+ </li>
+
+
+
+ <li class="menu-item">
+ <a href="/categories/gallery/">日记本</a>
+ </li>
+
+
+
+ <li class="menu-item">
+ <a href="/tags/Medicine/">医学</a>
+ </li>
+
+
+
+ <li class="menu-item">
+ <a href="/tags/Technique/">计算机科学</a>
+ </li>
+
+
+
+ <li class="menu-item">
+ <a href="/tags/Life/">生活</a>
+ </li>
+
+
+
+ <li class="menu-item">
+ <a href="/about">关于</a>
+ </li>
+
+
+
+ </ul>
+ </nav>
+ </div>
+ </div>
+</div>
+
+
+ <div class="main">
+ <div class="flex-container">
+ <article id="post">
+
+
+ <div class="post-head">
+ <div class="post-info">
+ <div class="tag-list">
+
+
+ <span class="post-tag">
+ <a href="/tags/Technique/">
+ Technique
+ </a>
+ </span>
+
+ <span class="post-tag">
+ <a href="/tags/OCaml/">
+ OCaml
+ </a>
+ </span>
+
+
+ </div>
+ <div class="post-title">
+
+
+ OCaml News 2024-1
+
+
+ </div>
+ <span class="post-date">
+ Jan 8, 2024
+ </span>
+ </div>
+ <div class="post-img">
+
+ <div class="h-line-primary"></div>
+
+ </div>
+</div>
+ <div class="post-content">
+ <h2 id="News"><a href="#News" class="headerlink" title="News"></a>News</h2><ul>
+<li><a target="_blank" rel="noopener" href="https://tarides.com/blog/2023-12-20-ocaml-survey-developers-perception-interest-and-perceived-barriers/">OCaml Survey: Developers’ Perception, Interest, and Perceived Barriers</a></li>
+<li><a target="_blank" rel="noopener" href="https://tarides.com/blog/2023-12-29-announcing-the-orchide-project-powering-satellite-innovation/">Announcing the ORCHIDE Project: Powering Satellite Innovation</a></li>
+<li><a target="_blank" rel="noopener" href="https://github.com/ocaml/ocaml/pull/12885">Dynarrays, unboxed (with local dummies) #12885</a></li>
+<li><a target="_blank" rel="noopener" href="https://github.com/ocaml/ocaml/pull/12871">Stdlib priority queues #12871</a></li>
+<li><a target="_blank" rel="noopener" href="https://github.com/ocaml/ocaml/pull/12596">Compile recursive bindings in Lambda #12596</a></li>
+<li><a target="_blank" rel="noopener" href="https://github.com/ocaml/ocaml/pull/12828">Add short syntax for dependent functor types #12828</a></li>
+<li><a target="_blank" rel="noopener" href="https://github.com/ocaml/ocaml/pull/12508">[shapes] Add support for project-wide occurrences #12508</a></li>
+<li><a target="_blank" rel="noopener" href="https://github.com/ocaml/ocaml/pull/1802">Make the character set for OCaml source code officially UTF-8. #1802</a></li>
+<li><a target="_blank" rel="noopener" href="https://github.com/ocaml/ocaml/pull/12719">Add thread local storage #12719</a></li>
+</ul>
+<h2 id="Videos"><a href="#Videos" class="headerlink" title="Videos"></a>Videos</h2><ul>
+<li><a target="_blank" rel="noopener" href="https://www.youtube.com/watch?v=zG7JejHlQoM">“Melange: The next frontier in type-safe web development” by Dillon Mulroy - RVAJS 2023</a></li>
+<li><a target="_blank" rel="noopener" href="https://www.youtube.com/watch?v=R-XJzUrP7bQ">Trying out OCaml TUI framework Mint Tea!</a></li>
+<li><a target="_blank" rel="noopener" href="https://www.youtube.com/watch?v=XyDbG9FGR1o">A TUI chat in OCaml 🐫</a></li>
+<li>[Building a Game Engine… with OCaml ?! [Part 1]](<a target="_blank" rel="noopener" href="https://www.youtube.com/watch?v=1XpUaTnssQE">https://www.youtube.com/watch?v=1XpUaTnssQE</a></li>
+</ul>
+<h2 id="Blogs"><a href="#Blogs" class="headerlink" title="Blogs"></a>Blogs</h2><ul>
+<li><a target="_blank" rel="noopener" href="https://sancho.dev/blog/whats-possible-with-melange">What’s possible with Melange</a></li>
+<li><a target="_blank" rel="noopener" href="https://discuss.ocaml.org/t/access-inferred-types/13805">Access inferred types</a></li>
+<li><a target="_blank" rel="noopener" href="https://discuss.ocaml.org/t/using-menhir-to-parse-into-idiomatic-js-typescript-structures/13809">Using Menhir to parse into idiomatic JS (TypeScript) structures</a></li>
+<li><a target="_blank" rel="noopener" href="https://discuss.ocaml.org/t/why-constructors-are-not-curried/13792">Why constructors are not curried?</a></li>
+<li><a target="_blank" rel="noopener" href="https://discuss.ocaml.org/t/practical-example-of-applicative-vs-generative-functors/13777">Practical example of applicative vs generative functors?</a></li>
+<li><a target="_blank" rel="noopener" href="https://discuss.ocaml.org/t/compiler-optimization-on-flattening-adt-for-less-boxing/13764">Compiler optimization on flattening ADT for less boxing?</a></li>
+<li><a target="_blank" rel="noopener" href="https://discuss.ocaml.org/t/how-to-express-koka-home-page-example/13748">How to express Koka home page example?</a></li>
+<li><a target="_blank" rel="noopener" href="https://practicalocaml.com/parsing-with-binary-string-pattern-matching/">Parsing with Binary String Pattern Matching</a></li>
+</ul>
+<h2 id="Highlighted-Projects"><a href="#Highlighted-Projects" class="headerlink" title="Highlighted Projects"></a>Highlighted Projects</h2><ul>
+<li><a target="_blank" rel="noopener" href="https://github.com/backtracking/grid">grid: A tiny library for two-dimensional arrays</a></li>
+<li><a target="_blank" rel="noopener" href="https://github.com/leostera/minttea">A fun little TUI framework for OCaml</a></li>
+<li><a target="_blank" rel="noopener" href="https://github.com/terrateamio/ocaml-ts-mode">ocaml-ts-mode: Ocaml mode for emacs using treesitter</a></li>
+<li><a target="_blank" rel="noopener" href="https://github.com/dmmulroy/create-melange-app">create-melange-app: An example app created by create-melange-app</a></li>
+<li><a target="_blank" rel="noopener" href="https://github.com/andersfugmann/ppx_protocol_conv">ppx_protocol_conv: Pluggable serialization and deserialization of ocaml data strucures based on type_conv</a></li>
+<li><a target="_blank" rel="noopener" href="https://spatial-shell.app/">spatial-shell: Spatial Shell is a daemon implementing a spatial model inspired by Material Shell, for i3 and sway. More precisely, it organizes your windows within a grid whose rows are the workspaces of your favorite WM.</a></li>
+<li><a target="_blank" rel="noopener" href="https://codeberg.org/marcc/fixgen">Fixgen: A language agnostic fixture generator</a></li>
+<li><a target="_blank" rel="noopener" href="https://github.com/tweag/opam-nix">opam-nix: Turn opam-based OCaml projects into Nix derivations</a></li>
+<li><a target="_blank" rel="noopener" href="https://github.com/leostera/blink">Blink: A pure OCaml HTTP client for Riot</a></li>
+<li><a target="_blank" rel="noopener" href="https://github.com/leostera/colors">colors: A pure OCaml library for manipulating colors in different color spaces.</a></li>
+<li><a target="_blank" rel="noopener" href="https://github.com/nationalarchives/miiify">miilfy: A web annotation server built with the same principles as Git</a></li>
+</ul>
+<h2 id="New-Releases"><a href="#New-Releases" class="headerlink" title="New Releases"></a>New Releases</h2><ul>
+<li><a target="_blank" rel="noopener" href="https://github.com/leostera/riot">Roit v0.0.7: An actor-model multi-core scheduler for OCaml 5 🐫</a></li>
+<li><a target="_blank" rel="noopener" href="https://github.com/leostera/castore">CAStore: A portable pure OCaml CA Store, with no dependencies, inspired by Elixir’s <a target="_blank" rel="noopener" href="https://github.com/elixir-mint/castore">:castore</a>.</a></li>
+<li><a target="_blank" rel="noopener" href="https://discuss.ocaml.org/t/learn-ocaml-1-0-approaching-call-for-testers/13621">Lean-OCaml 1.0: A Web Application for Learning OCaml</a></li>
+<li><a target="_blank" rel="noopener" href="https://erratique.ch/software/cmarkit">cmarkit 0.3.0” CommonMark parser and renderer for OCaml</a></li>
+<li><a target="_blank" rel="noopener" href="https://ocaml.org/p/dream-html/latest">dream-html 2.0.0: A library for generating HTML</a></li>
+<li><a target="_blank" rel="noopener" href="https://git.frama-c.com/pub/caisar/">Caisar: A platform under active development at CEA LIST, aiming to provide a wide range of features to characterize the safety and robustness of artificial intelligence based software.</a></li>
+<li><a target="_blank" rel="noopener" href="https://github.com/jserot/rfsm">RFSM 2.0: A toolset for describing and simulating StateChart-like state diagrams.</a></li>
+<li><a target="_blank" rel="noopener" href="https://github.com/chshersh/zbg/tree/main">Zbg 2.0: <code>zbg</code> (short for <strong>Z</strong>ero <strong>B</strong>ullshit <strong>G</strong>it) is a CLI tool for using <code>git</code> efficiently.</a></li>
+</ul>
+
+</div>
+
+<script>
+ window.onload = detectors();
+</script>
+ <div class="post-footer">
+ <div class="h-line-primary"></div>
+ <nav class="post-nav">
+ <div class="prev-item">
+
+ <div class="icon arrow-left"></div>
+ <div class="post-link">
+ <a href="/2024/01/18/OCaml-News-2024-2/">Prev</a>
+ </div>
+
+ </div>
+ <div class="next-item">
+
+ <div class="icon arrow-right"></div>
+ <div class="post-link">
+ <a href="/2023/12/02/%E4%BA%8C%E3%80%87%E4%BA%8C%E4%B8%89%E5%B9%B4%E5%8D%81%E4%BA%8C%E6%9C%88%E4%BA%8C%E6%97%A5/">Next</a>
+ </div>
+
+ </div>
+ </nav>
+</div>
+
+
+ <div class="post-comment">
+
+
+
+
+
+
+
+</div>
+
+
+</article>
+ </div>
+ </div>
+
+ <div class="footer">
+ <div class="flex-container">
+ <div class="footer-text">
+
+
+ |
+
+
+ 希望路过的人可以添点柴火让这里暖和点
+
+ </div>
+ </div>
+</div>
+
+ </div>
+
+
+
+
+ </body>
+</html>
diff --git a/2024/01/18/OCaml-News-2024-2/index.html b/2024/01/18/OCaml-News-2024-2/index.html
new file mode 100644
index 00000000..a97be6e9
--- /dev/null
+++ b/2024/01/18/OCaml-News-2024-2/index.html
@@ -0,0 +1,293 @@
+<!DOCTYPE html>
+<html lang="en">
+ <head>
+ <meta charset="UTF-8">
+<meta name="viewport"
+ content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
+<meta http-equiv="X-UA-Compatible" content="ie=edge">
+
+ <meta name="author" content="韩暮秋">
+
+
+ <meta name="subtitle" content="暮秋小屋">
+
+
+ <meta name="description" content="这里是暮秋小屋,思念和灵感的寄存处">
+
+
+ <meta name="keywords" content="韩暮秋,MuqiuHan">
+
+
+
+
+<title>OCaml News 2024-2 | 暮秋小屋</title>
+
+
+
+
+
+<style>
+ @import url('https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&family=Noto+Sans+SC:wght@300;400;500;700&family=Roboto+Mono&display=swap');
+</style>
+
+
+
+ <!-- stylesheets list from _config.yml -->
+
+ <link rel="stylesheet" href="/css/style.css">
+
+
+
+
+
+ <!-- scripts list from _config.yml -->
+
+ <script src="/js/frame.js"></script>
+
+
+
+
+
+ <script src="https://polyfill.io/v3/polyfill.min.js?features=es6"></script>
+ <script id="MathJax-script" async src="https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-mml-chtml.js"></script>
+
+
+
+
+
+
+
+ <meta name="generator" content="Hexo 6.3.0"></head>
+ <body>
+ <div class="mask-border">
+ </div>
+
+ <div class="wrapper">
+
+ <div class="header">
+ <div class="flex-container">
+ <div class="header-inner">
+ <div class="site-brand-container">
+ <a href="/">
+
+ 暮秋小屋
+
+ </a>
+ </div>
+ <div id="menu-btn" class="menu-btn" onclick="toggleMenu()">
+ Menu
+ </div>
+ <nav class="site-nav">
+ <ul class="menu-list">
+
+
+ <li class="menu-item">
+ <a href="/">主页</a>
+ </li>
+
+
+
+ <li class="menu-item">
+ <a href="/categories/gallery/">日记本</a>
+ </li>
+
+
+
+ <li class="menu-item">
+ <a href="/tags/Medicine/">医学</a>
+ </li>
+
+
+
+ <li class="menu-item">
+ <a href="/tags/Technique/">计算机科学</a>
+ </li>
+
+
+
+ <li class="menu-item">
+ <a href="/tags/Life/">生活</a>
+ </li>
+
+
+
+ <li class="menu-item">
+ <a href="/about">关于</a>
+ </li>
+
+
+
+ </ul>
+ </nav>
+ </div>
+ </div>
+</div>
+
+
+ <div class="main">
+ <div class="flex-container">
+ <article id="post">
+
+
+ <div class="post-head">
+ <div class="post-info">
+ <div class="tag-list">
+
+
+ <span class="post-tag">
+ <a href="/tags/Technique/">
+ Technique
+ </a>
+ </span>
+
+ <span class="post-tag">
+ <a href="/tags/OCaml/">
+ OCaml
+ </a>
+ </span>
+
+
+ </div>
+ <div class="post-title">
+
+
+ OCaml News 2024-2
+
+
+ </div>
+ <span class="post-date">
+ Jan 18, 2024
+ </span>
+ </div>
+ <div class="post-img">
+
+ <div class="h-line-primary"></div>
+
+ </div>
+</div>
+ <div class="post-content">
+ <h2 id="News"><a href="#News" class="headerlink" title="News"></a>News</h2><ul>
+<li><a target="_blank" rel="noopener" href="https://discuss.ocaml.org/t/ann-preview-play-with-project-wide-occurrences-for-ocaml/13814">[ANN][PREVIEW] Play with project-wide occurrences for OCaml!</a></li>
+<li><a target="_blank" rel="noopener" href="https://github.com/ocaml/dune/pull/8784">[Dune]: Add link flags ocamlmklib when using ctypes stubs. #8784</a></li>
+<li><a target="_blank" rel="noopener" href="https://discuss.ocaml.org/t/ocaml-software-foundation-january-2024-update/13828">OCaml Software Foundation: January 2024 update</a></li>
+<li>[Apprendre à programmer avec OCaml](Apprendre à programmer avec OCaml)</li>
+<li><a target="_blank" rel="noopener" href="https://discuss.ocaml.org/t/call-for-speakers-for-the-2024-carolina-code-conference-is-open-until-april-15th/13827"><a target="_blank" rel="noopener" href="https://discuss.ocaml.org/t/call-for-speakers-for-the-2024-carolina-code-conference-is-open-until-april-15th/13827">Call for Speakers for the 2024 Carolina Code Conference is open until April 15th</a></a></li>
+<li><a target="_blank" rel="noopener" href="https://github.com/ocaml/ocaml/discussions/11924">[OCaml]: feature request: better errors #11924</a></li>
+<li><a target="_blank" rel="noopener" href="https://discuss.ocaml.org/t/ocsigen-summary-of-recent-releases/13817">Ocsigen: summary of recent releases</a></li>
+</ul>
+<h2 id="Discussion"><a href="#Discussion" class="headerlink" title="Discussion"></a>Discussion</h2><ul>
+<li><a target="_blank" rel="noopener" href="https://discuss.ocaml.org/t/benchmark-between-open-addressing-and-closed-addressing-hashtbl/13882">Benchmark between open-addressing and closed-addressing hashtbl</a></li>
+<li><a target="_blank" rel="noopener" href="https://discuss.ocaml.org/t/examples-of-caqti-infix/13878">Examples of Caqti infix?</a></li>
+<li><a target="_blank" rel="noopener" href="https://discuss.ocaml.org/t/why-can-t-i-create-a-project-with-non-ascii-characters/13865">Why can’t I create a project with non-ASCII characters? </a></li>
+<li><a target="_blank" rel="noopener" href="https://discuss.ocaml.org/t/old-self-taught-vs-uni-debate-landscape-for-former-jane-street/13851">Old self-taught vs. uni debate; Landscape for former; Jane Street</a></li>
+<li><a target="_blank" rel="noopener" href="https://discuss.ocaml.org/t/toml-file-parser/13854">Is there an easy way to read the values from a toml file?</a></li>
+<li><a target="_blank" rel="noopener" href="https://discuss.ocaml.org/t/generate-typed-ast-fragments/13824">Generate typed AST fragments</a></li>
+<li><a target="_blank" rel="noopener" href="https://discuss.ocaml.org/t/partially-apply-function-accepting-multiple-modules-and-keep-polymorphic-types/13823">Partially apply function accepting multiple modules and keep polymorphic types</a></li>
+<li><a target="_blank" rel="noopener" href="https://discuss.ocaml.org/t/printing-unicode-characters-on-different-platforms/13813">Printing Unicode Characters on Different Platforms</a></li>
+</ul>
+<h2 id="Videos"><a href="#Videos" class="headerlink" title="Videos"></a>Videos</h2><ul>
+<li><a target="_blank" rel="noopener" href="https://watch.ocaml.org/w/iQNqZzA8gVmd4RQaycAwx4">Verifying an Effect-Based Cooperative Concurrency Scheduler in Iris by Adrian Dapprich</a></li>
+</ul>
+<h2 id="Blogs"><a href="#Blogs" class="headerlink" title="Blogs"></a>Blogs</h2><ul>
+<li><a target="_blank" rel="noopener" href="https://discuss.ocaml.org/t/advice-for-combining-multiple-monads/10409">Advice for combining multiple monads</a></li>
+<li><a target="_blank" rel="noopener" href="https://discuss.ocaml.org/t/writing-ctypes-bindings-to-system-shared-libraries-for-bytecode-targets-via-the-dune-ctypes-stanza/13844">Writing ctypes bindings to system shared libraries for bytecode targets via the dune ctypes stanza</a></li>
+</ul>
+<h2 id="Highlighted-Projects"><a href="#Highlighted-Projects" class="headerlink" title="Highlighted Projects"></a>Highlighted Projects</h2><ul>
+<li><a target="_blank" rel="noopener" href="https://github.com/johnyob/grace">Grace: A fancy diagnostics library that allows your compilers to exit with grace</a></li>
+<li><a target="_blank" rel="noopener" href="https://github.com/thierry-martinez/metapp">meta-pp: Meta-preprocessor for OCaml</a></li>
+<li><a target="_blank" rel="noopener" href="https://github.com/stedolan/ppx_stage">ppx_stage: Staged metaprogramming in stock OCaml</a></li>
+<li><a target="_blank" rel="noopener" href="https://erratique.ch/software/cmarkit">Cmarkit is an <a target="_blank" rel="noopener" href="http://ocaml.org/">OCaml</a> libary for parsing the <a target="_blank" rel="noopener" href="https://spec.commonmark.org/">CommonMark</a> specification.</a></li>
+<li><a target="_blank" rel="noopener" href="https://erratique.ch/software/brr">Brr is a toolkit for programming browsers in <a target="_blank" rel="noopener" href="http://ocaml.org/">OCaml</a> with the <a target="_blank" rel="noopener" href="http://ocsigen.org/js_of_ocaml/">js_of_ocaml</a> compiler. It provides:</a></li>
+<li><a target="_blank" rel="noopener" href="https://erratique.ch/software/zipc">Zipc is an in-memory <a target="_blank" rel="noopener" href="https://pkware.cachefly.net/webdocs/casestudies/APPNOTE.TXT">ZIP</a> archive and <a target="_blank" rel="noopener" href="https://www.rfc-editor.org/rfc/rfc1951">deflate</a> compression codec for <a target="_blank" rel="noopener" href="http://ocaml.org/">OCaml</a>.</a></li>
+<li><a target="_blank" rel="noopener" href="https://github.com/lukstafi/ocaml-gccjit">ocaml-gccjit: OCaml bindings for libgccjit</a></li>
+<li><a target="_blank" rel="noopener" href="https://github.com/whitequark/ocaml-m17n">ocaml-m17n: Multilingualization for the OCaml source code</a></li>
+<li><a target="_blank" rel="noopener" href="https://github.com/hackwaly/ocamlearlybird">ocamlearlybird: OCaml debug adapter</a></li>
+<li><a target="_blank" rel="noopener" href="https://github.com/dmbaturin/otoml">otoml: TOML parsing, manipulation, and pretty-printing library for OCaml (fully 1.0.0-compliant)</a></li>
+<li><a target="_blank" rel="noopener" href="https://github.com/mattjbray/ocaml-decoders">ocaml-decoders: Elm-inspired decoders for Ocaml</a></li>
+<li><a target="_blank" rel="noopener" href="https://github.com/OCamlPro/ez_toml">ez_toml: A library to parse and print TOML files</a></li>
+</ul>
+<h2 id="New-Releases"><a href="#New-Releases" class="headerlink" title="New Releases"></a>New Releases</h2><ul>
+<li><a target="_blank" rel="noopener" href="http://cambium.inria.fr/~fpottier/oma/doc/oma/Oma/index.html">Oma: OCaml implementation of ‘Two Simplified Algorithms for Maintaining Order in a List’</a><ul>
+<li><a target="_blank" rel="noopener" href="https://discuss.ocaml.org/t/ann-first-release-of-oma/13845">[ANN] First release of oma</a></li>
+<li><a target="_blank" rel="noopener" href="https://erikdemaine.org/papers/DietzSleator_ESA2002/paper.pdf">Two Simplified Algorithms for Maintaining Order in a List</a></li>
+</ul>
+</li>
+<li><a target="_blank" rel="noopener" href="https://github.com/hackwaly/ocamlearlybird">ocamlearlybird: v1.3.0</a><ul>
+<li><a target="_blank" rel="noopener" href="https://discuss.ocaml.org/t/ann-ocamlearlybird-just-got-ability-to-inspect-opaque-abstract-values/13852">[ANN] Ocamlearlybird just got ability to inspect opaque&#x2F;abstract values</a></li>
+</ul>
+</li>
+<li><a target="_blank" rel="noopener" href="https://github.com/Axot017/validate">validate: OCaml Data Validation library</a><ul>
+<li><a target="_blank" rel="noopener" href="https://discuss.ocaml.org/t/ann-validate-a-new-library-for-data-validation/13861">[ANN] Validate - A New Library for Data Validation</a></li>
+</ul>
+</li>
+<li><a target="_blank" rel="noopener" href="https://github.com/gborough/sarif">sarif v2.1.0: Static Analysis Results Interchange Format (SARIF) For OCaml</a><ul>
+<li><a target="_blank" rel="noopener" href="https://discuss.ocaml.org/t/ann-sarif-0-1-0-static-analysis-results-interchange-format-sarif-for-ocaml/13821">[ANN] sarif 0.1.0 - Static Analysis Results Interchange Format (SARIF) For OCaml</a></li>
+</ul>
+</li>
+<li><a target="_blank" rel="noopener" href="https://discuss.ocaml.org/t/ann-new-release-of-menhir-20231231/13816">[ANN] New release of Menhir (20231231)</a></li>
+</ul>
+
+</div>
+
+<script>
+ window.onload = detectors();
+</script>
+ <div class="post-footer">
+ <div class="h-line-primary"></div>
+ <nav class="post-nav">
+ <div class="prev-item">
+
+ <div class="icon arrow-left"></div>
+ <div class="post-link">
+ <a href="/2024/01/22/Rescript-React-Native/">Prev</a>
+ </div>
+
+ </div>
+ <div class="next-item">
+
+ <div class="icon arrow-right"></div>
+ <div class="post-link">
+ <a href="/2024/01/08/OCaml-News-2024-1/">Next</a>
+ </div>
+
+ </div>
+ </nav>
+</div>
+
+
+ <div class="post-comment">
+
+
+
+
+
+
+
+</div>
+
+
+</article>
+ </div>
+ </div>
+
+ <div class="footer">
+ <div class="flex-container">
+ <div class="footer-text">
+
+
+ |
+
+
+ 希望路过的人可以添点柴火让这里暖和点
+
+ </div>
+ </div>
+</div>
+
+ </div>
+
+
+
+
+ </body>
+</html>
diff --git a/2024/01/22/Rescript-React-Native/index.html b/2024/01/22/Rescript-React-Native/index.html
new file mode 100644
index 00000000..47775070
--- /dev/null
+++ b/2024/01/22/Rescript-React-Native/index.html
@@ -0,0 +1,255 @@
+<!DOCTYPE html>
+<html lang="en">
+ <head>
+ <meta charset="UTF-8">
+<meta name="viewport"
+ content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
+<meta http-equiv="X-UA-Compatible" content="ie=edge">
+
+ <meta name="author" content="韩暮秋">
+
+
+ <meta name="subtitle" content="暮秋小屋">
+
+
+ <meta name="description" content="这里是暮秋小屋,思念和灵感的寄存处">
+
+
+ <meta name="keywords" content="韩暮秋,MuqiuHan">
+
+
+
+
+<title>Rescript React Native | 暮秋小屋</title>
+
+
+
+
+
+<style>
+ @import url('https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&family=Noto+Sans+SC:wght@300;400;500;700&family=Roboto+Mono&display=swap');
+</style>
+
+
+
+ <!-- stylesheets list from _config.yml -->
+
+ <link rel="stylesheet" href="/css/style.css">
+
+
+
+
+
+ <!-- scripts list from _config.yml -->
+
+ <script src="/js/frame.js"></script>
+
+
+
+
+
+ <script src="https://polyfill.io/v3/polyfill.min.js?features=es6"></script>
+ <script id="MathJax-script" async src="https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-mml-chtml.js"></script>
+
+
+
+
+
+
+
+ <meta name="generator" content="Hexo 6.3.0"></head>
+ <body>
+ <div class="mask-border">
+ </div>
+
+ <div class="wrapper">
+
+ <div class="header">
+ <div class="flex-container">
+ <div class="header-inner">
+ <div class="site-brand-container">
+ <a href="/">
+
+ 暮秋小屋
+
+ </a>
+ </div>
+ <div id="menu-btn" class="menu-btn" onclick="toggleMenu()">
+ Menu
+ </div>
+ <nav class="site-nav">
+ <ul class="menu-list">
+
+
+ <li class="menu-item">
+ <a href="/">主页</a>
+ </li>
+
+
+
+ <li class="menu-item">
+ <a href="/categories/gallery/">日记本</a>
+ </li>
+
+
+
+ <li class="menu-item">
+ <a href="/tags/Medicine/">医学</a>
+ </li>
+
+
+
+ <li class="menu-item">
+ <a href="/tags/Technique/">计算机科学</a>
+ </li>
+
+
+
+ <li class="menu-item">
+ <a href="/tags/Life/">生活</a>
+ </li>
+
+
+
+ <li class="menu-item">
+ <a href="/about">关于</a>
+ </li>
+
+
+
+ </ul>
+ </nav>
+ </div>
+ </div>
+</div>
+
+
+ <div class="main">
+ <div class="flex-container">
+ <article id="post">
+
+
+ <div class="post-head">
+ <div class="post-info">
+ <div class="tag-list">
+
+
+ <span class="post-tag">
+ <a href="/tags/Technique/">
+ Technique
+ </a>
+ </span>
+
+ <span class="post-tag">
+ <a href="/tags/Rescript/">
+ Rescript
+ </a>
+ </span>
+
+
+ </div>
+ <div class="post-title">
+
+
+ Rescript React Native
+
+
+ </div>
+ <span class="post-date">
+ Jan 22, 2024
+ </span>
+ </div>
+ <div class="post-img">
+
+ <div class="h-line-primary"></div>
+
+ </div>
+</div>
+ <div class="post-content">
+ <p>Rescript 对 React Native 的支持还算可以,但如今的 RN 已经是 Expo 的 RN 了,所以仍然有些落后,在这个 template 中,我测试了 rescript + rescript-react-native + expo + nativewind 的组合,可以跑起来:</p>
+<ul>
+<li><a target="_blank" rel="noopener" href="https://github.com/muqiuhan/rescript-react-native-expo-nativewind-template">muqiuhan&#x2F;rescript-react-native-expo-nativewind-template</a></li>
+</ul>
+<p>其中有两个问题,一是 <a target="_blank" rel="noopener" href="https://github.com/rescript-bindings/expo">rescript-expo</a> 对 rescript v11 的兼容性,我通过简单的注释让其通过编译:</p>
+<ul>
+<li><a target="_blank" rel="noopener" href="https://github.com/muqiuhan/expo/commit/918e9578f2a991450821760352c2445c4866f0d8">[Fix]: DocumentPicker type options</a></li>
+</ul>
+<p>二是对于 nativewind 的支持,编写的 binding 非常丑陋:</p>
+<figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br></pre></td><td class="code"><pre><span class="line">type default_style = &#123;</span><br><span class="line"> className?: string,</span><br><span class="line"> children?: React.element,</span><br><span class="line">&#125;</span><br><span class="line"></span><br><span class="line">@module(&quot;nativewind&quot;)</span><br><span class="line">external styled: React.component&lt;&#x27;a&gt; =&gt; React.component&lt;default_style&gt; = &quot;styled&quot;</span><br><span class="line"></span><br><span class="line">module StyledText = &#123;</span><br><span class="line"> let make = styled(ReactNative.Text.make)</span><br><span class="line">&#125;</span><br><span class="line"></span><br><span class="line">module StyledView = &#123;</span><br><span class="line"> let make = styled(ReactNative.View.make)</span><br><span class="line">&#125;</span><br><span class="line"></span><br><span class="line">module StyledImage = &#123;</span><br><span class="line"> type props = &#123;</span><br><span class="line"> source?: string,</span><br><span class="line"> ...default_style,</span><br><span class="line"> &#125;</span><br><span class="line"></span><br><span class="line"> @module(&quot;nativewind&quot;)</span><br><span class="line"> external styled: React.component&lt;&#x27;a&gt; =&gt; React.component&lt;props&gt; = &quot;styled&quot;</span><br><span class="line"></span><br><span class="line"> let make: React.component&lt;props&gt; = styled(ReactNative.Image.make)</span><br><span class="line">&#125;</span><br></pre></td></tr></table></figure>
+
+<p>而这似乎并没有好的解决方案,理想中的实现应该是:</p>
+<figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br></pre></td><td class="code"><pre><span class="line">module Styled = (Component: &#123;</span><br><span class="line"> type params // or type params = &#x27;a</span><br><span class="line"> let make: React.component&lt;props&gt;</span><br><span class="line">&#125;) =&gt; &#123;</span><br><span class="line"> type props = &#123;</span><br><span class="line"> ...Component.props, // This can&#x27;t work as it is not defined as record</span><br><span class="line"> className?: string</span><br><span class="line"> &#125;</span><br><span class="line"> @module(&quot;nativewind&quot;)</span><br><span class="line"> external styled: React.component&lt;Component.props&gt; =&gt; React.component&lt;props&gt; = &quot;styled&quot;</span><br><span class="line"></span><br><span class="line"> let make: React.component&lt;props&gt; = styled(Component.make)</span><br><span class="line">&#125;</span><br></pre></td></tr></table></figure>
+
+<p>或者退一步:</p>
+<figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br></pre></td><td class="code"><pre><span class="line">type styledProps = &#123;</span><br><span class="line"> className?: string,</span><br><span class="line"> // ...</span><br><span class="line">&#125;</span><br><span class="line"></span><br><span class="line">@module(&quot;nativewind&quot;)</span><br><span class="line"> external styled: React.component&lt;&#x27;a&gt; =&gt; React.component&lt;&#x27;b&gt; = &quot;styled&quot;</span><br><span class="line"></span><br><span class="line">module StyledText = &#123;</span><br><span class="line"> type props = &#123;</span><br><span class="line"> ...ReactNative.Text.props,</span><br><span class="line"> ...styledProps</span><br><span class="line"> &#125;</span><br><span class="line"></span><br><span class="line"> let make: React.component&lt;props&gt; = styled(ReactNative.Text.make)</span><br><span class="line">&#125;</span><br></pre></td></tr></table></figure>
+
+<p>但这在当前的 rescript 中,根本无法实现。</p>
+<p>详细的讨论看这个帖子:</p>
+<ul>
+<li><a target="_blank" rel="noopener" href="https://forum.rescript-lang.org/t/how-to-use-nativewind-in-rescript-react-native/5005">How to use Nativewind in Rescript React Native</a></li>
+</ul>
+
+</div>
+
+<script>
+ window.onload = detectors();
+</script>
+ <div class="post-footer">
+ <div class="h-line-primary"></div>
+ <nav class="post-nav">
+ <div class="prev-item">
+
+ <div class="icon arrow-left"></div>
+ <div class="post-link">
+ <a href="/2024/01/23/%E4%BA%8C%E3%80%87%E4%BA%8C%E5%9B%9B%E5%B9%B4%E4%B8%80%E6%9C%88%E4%BA%8C%E5%8D%81%E4%B8%89%E6%97%A5/">Prev</a>
+ </div>
+
+ </div>
+ <div class="next-item">
+
+ <div class="icon arrow-right"></div>
+ <div class="post-link">
+ <a href="/2024/01/18/OCaml-News-2024-2/">Next</a>
+ </div>
+
+ </div>
+ </nav>
+</div>
+
+
+ <div class="post-comment">
+
+
+
+
+
+
+
+</div>
+
+
+</article>
+ </div>
+ </div>
+
+ <div class="footer">
+ <div class="flex-container">
+ <div class="footer-text">
+
+
+ |
+
+
+ 希望路过的人可以添点柴火让这里暖和点
+
+ </div>
+ </div>
+</div>
+
+ </div>
+
+
+
+
+ </body>
+</html>
diff --git a/2024/01/23/G-Machine/index.html b/2024/01/23/G-Machine/index.html
new file mode 100644
index 00000000..ff1d742e
--- /dev/null
+++ b/2024/01/23/G-Machine/index.html
@@ -0,0 +1,240 @@
+<!DOCTYPE html>
+<html lang="en">
+ <head>
+ <meta charset="UTF-8">
+<meta name="viewport"
+ content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
+<meta http-equiv="X-UA-Compatible" content="ie=edge">
+
+ <meta name="author" content="韩暮秋">
+
+
+ <meta name="subtitle" content="暮秋小屋">
+
+
+ <meta name="description" content="这里是暮秋小屋,思念和灵感的寄存处">
+
+
+ <meta name="keywords" content="韩暮秋,MuqiuHan">
+
+
+
+
+<title>G-Machine | 暮秋小屋</title>
+
+
+
+
+
+<style>
+ @import url('https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&family=Noto+Sans+SC:wght@300;400;500;700&family=Roboto+Mono&display=swap');
+</style>
+
+
+
+ <!-- stylesheets list from _config.yml -->
+
+ <link rel="stylesheet" href="/css/style.css">
+
+
+
+
+
+ <!-- scripts list from _config.yml -->
+
+ <script src="/js/frame.js"></script>
+
+
+
+
+
+ <script src="https://polyfill.io/v3/polyfill.min.js?features=es6"></script>
+ <script id="MathJax-script" async src="https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-mml-chtml.js"></script>
+
+
+
+
+
+
+
+ <meta name="generator" content="Hexo 6.3.0"></head>
+ <body>
+ <div class="mask-border">
+ </div>
+
+ <div class="wrapper">
+
+ <div class="header">
+ <div class="flex-container">
+ <div class="header-inner">
+ <div class="site-brand-container">
+ <a href="/">
+
+ 暮秋小屋
+
+ </a>
+ </div>
+ <div id="menu-btn" class="menu-btn" onclick="toggleMenu()">
+ Menu
+ </div>
+ <nav class="site-nav">
+ <ul class="menu-list">
+
+
+ <li class="menu-item">
+ <a href="/">主页</a>
+ </li>
+
+
+
+ <li class="menu-item">
+ <a href="/categories/gallery/">日记本</a>
+ </li>
+
+
+
+ <li class="menu-item">
+ <a href="/tags/Medicine/">医学</a>
+ </li>
+
+
+
+ <li class="menu-item">
+ <a href="/tags/Technique/">计算机科学</a>
+ </li>
+
+
+
+ <li class="menu-item">
+ <a href="/tags/Life/">生活</a>
+ </li>
+
+
+
+ <li class="menu-item">
+ <a href="/about">关于</a>
+ </li>
+
+
+
+ </ul>
+ </nav>
+ </div>
+ </div>
+</div>
+
+
+ <div class="main">
+ <div class="flex-container">
+ <article id="post">
+
+
+ <div class="post-head">
+ <div class="post-info">
+ <div class="tag-list">
+
+
+ <span class="post-tag">
+ <a href="/tags/Technique/">
+ Technique
+ </a>
+ </span>
+
+
+ </div>
+ <div class="post-title">
+
+
+ G-Machine
+
+
+ </div>
+ <span class="post-date">
+ Jan 23, 2024
+ </span>
+ </div>
+ <div class="post-img">
+
+ <div class="h-line-primary"></div>
+
+ </div>
+</div>
+ <div class="post-content">
+ <ul>
+<li><a target="_blank" rel="noopener" href="https://link.springer.com/chapter/10.1007/3-540-15975-4_50">The G-machine: A fast, graph-reduction evaluator</a></li>
+</ul>
+<p>G-Machine 是一种通过图规约来对函数式语言程序求值的抽象架构。<br>与组合子规约不同,组合子规约的control是从表达式图本身动态导出的,而G-Machine是由通过编译Application表达式导出的指令序列指定的。</p>
+<hr>
+<p>FP的程序基本上都可以用一个表达式的图表示,图计算机就是对这个图求值的机器,总的说来对图的求值是一个不停合并图上的节点生产新节点的过程。</p>
+<p>例如:</p>
+<figure class="highlight ocaml"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line"><span class="keyword">let</span> x = <span class="number">2</span> + <span class="number">3</span> <span class="keyword">in</span> </span><br><span class="line"> x * x</span><br></pre></td></tr></table></figure>
+
+<p>先计算出5,然后创建一个新的节点 <code>5 * 5</code>,然后再对这个节点求值,于是求值过程中就产生了很多临时的节点,这些中间节点也被叫做是 spine,求值过程是沿着 spine 进行的。</p>
+<p>但是这样就产生了很多额外的开销,lambda lifting 里提到:可以把程序里,很多捕捉了外围绑定的闭包函数中的这些绑定,转换成函数的参数,从而消除闭包,得到的这个函数就可以自由脱离作用域,被静态的编译到机器码里。这些被 float out 的函数也叫 supercombinator.</p>
+<p>在上面的代码中,如果不创建新的节点,顺序计算完了第一个 <code>x</code>,第二个 <code>x</code> 还会再被算一遍。</p>
+<p>Spineless reduction 的概念:只有当面临需要重复计算的情况时,才去创建节点,不然就一路顺序算下去</p>
+<ul>
+<li><a target="_blank" rel="noopener" href="https://en.wikipedia.org/wiki/Graph_reduction">Graph reduction</a></li>
+<li><a target="_blank" rel="noopener" href="https://en.wikipedia.org/wiki/Graph_reduction_machine">Graph reduction machine</a></li>
+<li><a target="_blank" rel="noopener" href="https://www.zhihu.com/question/54834531/answer/144213668">https://www.zhihu.com/question/54834531/answer/144213668</a></li>
+</ul>
+
+</div>
+
+<script>
+ window.onload = detectors();
+</script>
+ <div class="post-footer">
+ <div class="h-line-primary"></div>
+ <nav class="post-nav">
+ <div class="prev-item">
+
+ </div>
+ <div class="next-item">
+
+ <div class="icon arrow-right"></div>
+ <div class="post-link">
+ <a href="/2024/01/23/%E6%85%A2%E6%80%A7%E8%82%BA%E6%BA%90%E6%80%A7%E5%BF%83%E8%84%8F%E7%97%85/">Next</a>
+ </div>
+
+ </div>
+ </nav>
+</div>
+
+
+ <div class="post-comment">
+
+
+
+
+
+
+
+</div>
+
+
+</article>
+ </div>
+ </div>
+
+ <div class="footer">
+ <div class="flex-container">
+ <div class="footer-text">
+
+
+ |
+
+
+ 希望路过的人可以添点柴火让这里暖和点
+
+ </div>
+ </div>
+</div>
+
+ </div>
+
+
+
+
+ </body>
+</html>
diff --git a/2024/01/23/二〇二四年一月二十三日/index.html b/2024/01/23/二〇二四年一月二十三日/index.html
index b41da268..62bf3ade 100644
--- a/2024/01/23/二〇二四年一月二十三日/index.html
+++ b/2024/01/23/二〇二四年一月二十三日/index.html
@@ -195,7 +195,7 @@
<div class="icon arrow-right"></div>
<div class="post-link">
- <a href="/2023/12/02/%E4%BA%8C%E3%80%87%E4%BA%8C%E4%B8%89%E5%B9%B4%E5%8D%81%E4%BA%8C%E6%9C%88%E4%BA%8C%E6%97%A5/">Next</a>
+ <a href="/2024/01/22/Rescript-React-Native/">Next</a>
</div>
</div>
diff --git a/2024/01/23/慢性肺源性心脏病/index.html b/2024/01/23/慢性肺源性心脏病/index.html
index 93def6d0..91a5abba 100644
--- a/2024/01/23/慢性肺源性心脏病/index.html
+++ b/2024/01/23/慢性肺源性心脏病/index.html
@@ -237,6 +237,11 @@
<nav class="post-nav">
<div class="prev-item">
+ <div class="icon arrow-left"></div>
+ <div class="post-link">
+ <a href="/2024/01/23/G-Machine/">Prev</a>
+ </div>
+
</div>
<div class="next-item">
diff --git a/archives/2023/10/index.html b/archives/2023/10/index.html
index a4d23175..20fee9f8 100644
--- a/archives/2023/10/index.html
+++ b/archives/2023/10/index.html
@@ -293,6 +293,24 @@
</div>
+
+
+
+
+
+ <div class="post-list-item">
+ <div class="post-title">
+ <a href="/2023/10/05/v8%E4%B8%AD%E7%9A%84Number-toString/">
+
+ v8中的Number.toString()
+
+ </a>
+ </div>
+
+ <span class="post-date">Oct 5, 2023</span>
+ </div>
+
+
<div id="paginator">
</div>
diff --git a/archives/2023/page/2/index.html b/archives/2023/page/2/index.html
index 999db11d..6d6f0eae 100644
--- a/archives/2023/page/2/index.html
+++ b/archives/2023/page/2/index.html
@@ -228,14 +228,14 @@
<div class="post-list-item">
<div class="post-title">
- <a href="/2023/09/28/A-Brief-History-of-Just-In-Time/">
+ <a href="/2023/10/05/v8%E4%B8%AD%E7%9A%84Number-toString/">
- A Brief History of Just-In-Time
+ v8中的Number.toString()
</a>
</div>
- <span class="post-date">Sep 28, 2023</span>
+ <span class="post-date">Oct 5, 2023</span>
</div>
@@ -246,14 +246,14 @@
<div class="post-list-item">
<div class="post-title">
- <a href="/2023/09/13/%E4%BA%8C%E9%9B%B6%E4%BA%8C%E4%B8%89%E5%B9%B4%E4%B9%9D%E6%9C%88%E5%8D%81%E4%B8%89%E6%97%A5/">
+ <a href="/2023/09/28/A-Brief-History-of-Just-In-Time/">
- 二零二三年九月十三日
+ A Brief History of Just-In-Time
</a>
</div>
- <span class="post-date">Sep 13, 2023</span>
+ <span class="post-date">Sep 28, 2023</span>
</div>
@@ -264,14 +264,14 @@
<div class="post-list-item">
<div class="post-title">
- <a href="/2023/08/27/%E4%BA%8C%E9%9B%B6%E4%BA%8C%E4%B8%89%E5%B9%B4%E5%85%AB%E6%9C%88%E4%BA%8C%E5%8D%81%E4%B8%83%E6%97%A5/">
+ <a href="/2023/09/13/%E4%BA%8C%E9%9B%B6%E4%BA%8C%E4%B8%89%E5%B9%B4%E4%B9%9D%E6%9C%88%E5%8D%81%E4%B8%89%E6%97%A5/">
- 二零二三年八月二十七日
+ 二零二三年九月十三日
</a>
</div>
- <span class="post-date">Aug 27, 2023</span>
+ <span class="post-date">Sep 13, 2023</span>
</div>
@@ -282,14 +282,14 @@
<div class="post-list-item">
<div class="post-title">
- <a href="/2023/08/21/%E4%BA%8C%E9%9B%B6%E4%BA%8C%E4%B8%89%E5%B9%B4%E5%85%AB%E6%9C%88%E4%BA%8C%E5%8D%81%E4%B8%80%E6%97%A5/">
+ <a href="/2023/08/27/%E4%BA%8C%E9%9B%B6%E4%BA%8C%E4%B8%89%E5%B9%B4%E5%85%AB%E6%9C%88%E4%BA%8C%E5%8D%81%E4%B8%83%E6%97%A5/">
- 二零二三年八月二十一日
+ 二零二三年八月二十七日
</a>
</div>
- <span class="post-date">Aug 21, 2023</span>
+ <span class="post-date">Aug 27, 2023</span>
</div>
@@ -300,14 +300,14 @@
<div class="post-list-item">
<div class="post-title">
- <a href="/2023/08/15/tick-thread%E5%9C%A8Multicore-OCaml%E4%B8%AD%E7%9A%84%E4%BD%9C%E7%94%A8/">
+ <a href="/2023/08/21/%E4%BA%8C%E9%9B%B6%E4%BA%8C%E4%B8%89%E5%B9%B4%E5%85%AB%E6%9C%88%E4%BA%8C%E5%8D%81%E4%B8%80%E6%97%A5/">
- tick thread在Multicore OCaml中的作用
+ 二零二三年八月二十一日
</a>
</div>
- <span class="post-date">Aug 15, 2023</span>
+ <span class="post-date">Aug 21, 2023</span>
</div>
diff --git a/archives/2023/page/3/index.html b/archives/2023/page/3/index.html
index b621630d..f532b7e6 100644
--- a/archives/2023/page/3/index.html
+++ b/archives/2023/page/3/index.html
@@ -138,6 +138,24 @@
<div class="post-list-item">
<div class="post-title">
+ <a href="/2023/08/15/tick-thread%E5%9C%A8Multicore-OCaml%E4%B8%AD%E7%9A%84%E4%BD%9C%E7%94%A8/">
+
+ tick thread在Multicore OCaml中的作用
+
+ </a>
+ </div>
+
+ <span class="post-date">Aug 15, 2023</span>
+ </div>
+
+
+
+
+
+
+
+ <div class="post-list-item">
+ <div class="post-title">
<a href="/2023/08/15/poll-error-attribute-in-OCaml/">
使用 [@poll error] 实现线程安全的数据结构
@@ -293,24 +311,6 @@
</div>
-
-
-
-
-
- <div class="post-list-item">
- <div class="post-title">
- <a href="/2023/06/22/%E7%81%AF%E7%AC%BC%E8%8D%89/">
-
- 灯笼草
-
- </a>
- </div>
-
- <span class="post-date">Jun 22, 2023</span>
- </div>
-
-
<div id="paginator">
<div class=paginator>
diff --git a/archives/2023/page/4/index.html b/archives/2023/page/4/index.html
index 9326b4ba..6084bdf4 100644
--- a/archives/2023/page/4/index.html
+++ b/archives/2023/page/4/index.html
@@ -138,6 +138,24 @@
<div class="post-list-item">
<div class="post-title">
+ <a href="/2023/06/22/%E7%81%AF%E7%AC%BC%E8%8D%89/">
+
+ 灯笼草
+
+ </a>
+ </div>
+
+ <span class="post-date">Jun 22, 2023</span>
+ </div>
+
+
+
+
+
+
+
+ <div class="post-list-item">
+ <div class="post-title">
<a href="/2023/06/17/%E5%8F%91%E7%83%AD%E5%8F%8A%E8%B6%85%E9%AB%98%E7%83%AD%E5%8D%B1%E8%B1%A1/">
发热及超高热危象
@@ -293,24 +311,6 @@
</div>
-
-
-
-
-
- <div class="post-list-item">
- <div class="post-title">
- <a href="/2023/03/01/%E6%B0%94%E8%83%B8/">
-
- 气胸
-
- </a>
- </div>
-
- <span class="post-date">Mar 1, 2023</span>
- </div>
-
-
<div id="paginator">
<div class=paginator>
diff --git a/archives/2023/page/5/index.html b/archives/2023/page/5/index.html
index 6e2e1e39..1883a23f 100644
--- a/archives/2023/page/5/index.html
+++ b/archives/2023/page/5/index.html
@@ -138,6 +138,24 @@
<div class="post-list-item">
<div class="post-title">
+ <a href="/2023/03/01/%E6%B0%94%E8%83%B8/">
+
+ 气胸
+
+ </a>
+ </div>
+
+ <span class="post-date">Mar 1, 2023</span>
+ </div>
+
+
+
+
+
+
+
+ <div class="post-list-item">
+ <div class="post-title">
<a href="/2023/03/01/%E7%BA%AF%E7%89%9B%E5%A5%B6%E5%8F%AF%E4%BB%A5%E5%8A%A0%E7%82%B9%E5%95%A5/">
纯牛奶可以加点啥
diff --git a/archives/2024/01/index.html b/archives/2024/01/index.html
index 9317622e..9328d12d 100644
--- a/archives/2024/01/index.html
+++ b/archives/2024/01/index.html
@@ -138,6 +138,24 @@
<div class="post-list-item">
<div class="post-title">
+ <a href="/2024/01/23/G-Machine/">
+
+ G-Machine
+
+ </a>
+ </div>
+
+ <span class="post-date">Jan 23, 2024</span>
+ </div>
+
+
+
+
+
+
+
+ <div class="post-list-item">
+ <div class="post-title">
<a href="/2024/01/23/%E6%85%A2%E6%80%A7%E8%82%BA%E6%BA%90%E6%80%A7%E5%BF%83%E8%84%8F%E7%97%85/">
慢性肺源性心脏病
@@ -167,6 +185,60 @@
</div>
+
+
+
+
+
+ <div class="post-list-item">
+ <div class="post-title">
+ <a href="/2024/01/22/Rescript-React-Native/">
+
+ Rescript React Native
+
+ </a>
+ </div>
+
+ <span class="post-date">Jan 22, 2024</span>
+ </div>
+
+
+
+
+
+
+
+ <div class="post-list-item">
+ <div class="post-title">
+ <a href="/2024/01/18/OCaml-News-2024-2/">
+
+ OCaml News 2024-2
+
+ </a>
+ </div>
+
+ <span class="post-date">Jan 18, 2024</span>
+ </div>
+
+
+
+
+
+
+
+ <div class="post-list-item">
+ <div class="post-title">
+ <a href="/2024/01/08/OCaml-News-2024-1/">
+
+ OCaml News 2024-1
+
+ </a>
+ </div>
+
+ <span class="post-date">Jan 8, 2024</span>
+ </div>
+
+
<div id="paginator">
</div>
diff --git a/archives/2024/index.html b/archives/2024/index.html
index fe63ebb5..48887a91 100644
--- a/archives/2024/index.html
+++ b/archives/2024/index.html
@@ -138,6 +138,24 @@
<div class="post-list-item">
<div class="post-title">
+ <a href="/2024/01/23/G-Machine/">
+
+ G-Machine
+
+ </a>
+ </div>
+
+ <span class="post-date">Jan 23, 2024</span>
+ </div>
+
+
+
+
+
+
+
+ <div class="post-list-item">
+ <div class="post-title">
<a href="/2024/01/23/%E6%85%A2%E6%80%A7%E8%82%BA%E6%BA%90%E6%80%A7%E5%BF%83%E8%84%8F%E7%97%85/">
慢性肺源性心脏病
@@ -167,6 +185,60 @@
</div>
+
+
+
+
+
+ <div class="post-list-item">
+ <div class="post-title">
+ <a href="/2024/01/22/Rescript-React-Native/">
+
+ Rescript React Native
+
+ </a>
+ </div>
+
+ <span class="post-date">Jan 22, 2024</span>
+ </div>
+
+
+
+
+
+
+
+ <div class="post-list-item">
+ <div class="post-title">
+ <a href="/2024/01/18/OCaml-News-2024-2/">
+
+ OCaml News 2024-2
+
+ </a>
+ </div>
+
+ <span class="post-date">Jan 18, 2024</span>
+ </div>
+
+
+
+
+
+
+
+ <div class="post-list-item">
+ <div class="post-title">
+ <a href="/2024/01/08/OCaml-News-2024-1/">
+
+ OCaml News 2024-1
+
+ </a>
+ </div>
+
+ <span class="post-date">Jan 8, 2024</span>
+ </div>
+
+
<div id="paginator">
</div>
diff --git a/archives/index.html b/archives/index.html
index 6e87a333..0a4737dd 100644
--- a/archives/index.html
+++ b/archives/index.html
@@ -138,9 +138,9 @@
<div class="post-list-item">
<div class="post-title">
- <a href="/2024/01/23/%E6%85%A2%E6%80%A7%E8%82%BA%E6%BA%90%E6%80%A7%E5%BF%83%E8%84%8F%E7%97%85/">
+ <a href="/2024/01/23/G-Machine/">
- 慢性肺源性心脏病
+ G-Machine
</a>
</div>
@@ -156,9 +156,9 @@
<div class="post-list-item">
<div class="post-title">
- <a href="/2024/01/23/%E4%BA%8C%E3%80%87%E4%BA%8C%E5%9B%9B%E5%B9%B4%E4%B8%80%E6%9C%88%E4%BA%8C%E5%8D%81%E4%B8%89%E6%97%A5/">
+ <a href="/2024/01/23/%E6%85%A2%E6%80%A7%E8%82%BA%E6%BA%90%E6%80%A7%E5%BF%83%E8%84%8F%E7%97%85/">
- 二〇二四年一月二十三日
+ 慢性肺源性心脏病
</a>
</div>
@@ -171,19 +171,17 @@
- <div class="year-title">2023</div>
-
<div class="post-list-item">
<div class="post-title">
- <a href="/2023/12/02/%E4%BA%8C%E3%80%87%E4%BA%8C%E4%B8%89%E5%B9%B4%E5%8D%81%E4%BA%8C%E6%9C%88%E4%BA%8C%E6%97%A5/">
+ <a href="/2024/01/23/%E4%BA%8C%E3%80%87%E4%BA%8C%E5%9B%9B%E5%B9%B4%E4%B8%80%E6%9C%88%E4%BA%8C%E5%8D%81%E4%B8%89%E6%97%A5/">
- 二〇二三年十二月二日
+ 二〇二四年一月二十三日
</a>
</div>
- <span class="post-date">Dec 2, 2023</span>
+ <span class="post-date">Jan 23, 2024</span>
</div>
@@ -194,14 +192,14 @@
<div class="post-list-item">
<div class="post-title">
- <a href="/2023/12/01/%E4%BA%8C%E3%80%87%E4%BA%8C%E4%B8%89%E5%B9%B4%E5%8D%81%E4%BA%8C%E6%9C%88%E4%B8%80%E6%97%A5/">
+ <a href="/2024/01/22/Rescript-React-Native/">
- 二〇二三年十二月一日
+ Rescript React Native
</a>
</div>
- <span class="post-date">Dec 1, 2023</span>
+ <span class="post-date">Jan 22, 2024</span>
</div>
@@ -212,14 +210,14 @@
<div class="post-list-item">
<div class="post-title">
- <a href="/2023/11/29/%E4%BA%8C%E3%80%87%E4%BA%8C%E4%B8%89%E5%B9%B4%E5%8D%81%E4%B8%80%E6%9C%88%E4%BA%8C%E5%8D%81%E4%B9%9D%E6%97%A5/">
+ <a href="/2024/01/18/OCaml-News-2024-2/">
- 二〇二三年十一月二十九日
+ OCaml News 2024-2
</a>
</div>
- <span class="post-date">Nov 29, 2023</span>
+ <span class="post-date">Jan 18, 2024</span>
</div>
@@ -230,14 +228,14 @@
<div class="post-list-item">
<div class="post-title">
- <a href="/2023/11/21/Adolescent-Onset-of-Acute-Heart-Failure/">
+ <a href="/2024/01/08/OCaml-News-2024-1/">
- Adolescent Onset of Acute Heart Failure
+ OCaml News 2024-1
</a>
</div>
- <span class="post-date">Nov 21, 2023</span>
+ <span class="post-date">Jan 8, 2024</span>
</div>
@@ -245,17 +243,19 @@
+ <div class="year-title">2023</div>
+
<div class="post-list-item">
<div class="post-title">
- <a href="/2023/11/16/Fever-of-Unknown-Origin/">
+ <a href="/2023/12/02/%E4%BA%8C%E3%80%87%E4%BA%8C%E4%B8%89%E5%B9%B4%E5%8D%81%E4%BA%8C%E6%9C%88%E4%BA%8C%E6%97%A5/">
- Fever of Unknown Origin
+ 二〇二三年十二月二日
</a>
</div>
- <span class="post-date">Nov 16, 2023</span>
+ <span class="post-date">Dec 2, 2023</span>
</div>
@@ -266,14 +266,14 @@
<div class="post-list-item">
<div class="post-title">
- <a href="/2023/11/06/%E4%BA%8C%E9%9B%B6%E4%BA%8C%E4%B8%89%E5%B9%B4%E5%8D%81%E4%B8%80%E6%9C%88%E5%85%AD%E6%97%A5/">
+ <a href="/2023/12/01/%E4%BA%8C%E3%80%87%E4%BA%8C%E4%B8%89%E5%B9%B4%E5%8D%81%E4%BA%8C%E6%9C%88%E4%B8%80%E6%97%A5/">
- 二零二三年十一月六日
+ 二〇二三年十二月一日
</a>
</div>
- <span class="post-date">Nov 6, 2023</span>
+ <span class="post-date">Dec 1, 2023</span>
</div>
@@ -284,14 +284,14 @@
<div class="post-list-item">
<div class="post-title">
- <a href="/2023/10/25/%E5%84%BF%E7%AB%A5%E6%96%B0%E5%9E%8B%E5%86%A0%E7%8A%B6%E7%97%85%E6%AF%92Omicron%E6%A0%AA%E5%92%8C%E8%82%BA%E7%82%8E%E6%94%AF%E5%8E%9F%E4%BD%93%E6%B7%B7%E5%90%88%E6%84%9F%E6%9F%93%E9%87%8D%E7%97%87%E8%82%BA%E7%82%8E1%E4%BE%8B/">
+ <a href="/2023/11/29/%E4%BA%8C%E3%80%87%E4%BA%8C%E4%B8%89%E5%B9%B4%E5%8D%81%E4%B8%80%E6%9C%88%E4%BA%8C%E5%8D%81%E4%B9%9D%E6%97%A5/">
- 儿童新型冠状病毒Omicron株和肺炎支原体混合感染重症肺炎1例
+ 二〇二三年十一月二十九日
</a>
</div>
- <span class="post-date">Oct 25, 2023</span>
+ <span class="post-date">Nov 29, 2023</span>
</div>
@@ -302,14 +302,14 @@
<div class="post-list-item">
<div class="post-title">
- <a href="/2023/10/25/Radiographic-Absence-of-the-Left-Humeral-Head/">
+ <a href="/2023/11/21/Adolescent-Onset-of-Acute-Heart-Failure/">
- Radiographic Absence of the Left Humeral Head
+ Adolescent Onset of Acute Heart Failure
</a>
</div>
- <span class="post-date">Oct 25, 2023</span>
+ <span class="post-date">Nov 21, 2023</span>
</div>
diff --git a/archives/page/2/index.html b/archives/page/2/index.html
index 395c834b..43705261 100644
--- a/archives/page/2/index.html
+++ b/archives/page/2/index.html
@@ -138,14 +138,14 @@
<div class="post-list-item">
<div class="post-title">
- <a href="/2023/10/25/%E8%82%BA%E7%82%8E%E6%94%AF%E5%8E%9F%E4%BD%93%E6%B3%A8%E6%84%8F%E4%BA%8B%E9%A1%B9/">
+ <a href="/2023/11/16/Fever-of-Unknown-Origin/">
- 肺炎支原体注意事项
+ Fever of Unknown Origin
</a>
</div>
- <span class="post-date">Oct 25, 2023</span>
+ <span class="post-date">Nov 16, 2023</span>
</div>
@@ -156,14 +156,14 @@
<div class="post-list-item">
<div class="post-title">
- <a href="/2023/10/22/%E5%86%AC%E5%AD%A3%E5%92%B3%E5%97%BD%E8%BE%A8%E5%88%AB%E6%8C%87%E5%8D%97/">
+ <a href="/2023/11/06/%E4%BA%8C%E9%9B%B6%E4%BA%8C%E4%B8%89%E5%B9%B4%E5%8D%81%E4%B8%80%E6%9C%88%E5%85%AD%E6%97%A5/">
- 冬季咳嗽辨别指南
+ 二零二三年十一月六日
</a>
</div>
- <span class="post-date">Oct 22, 2023</span>
+ <span class="post-date">Nov 6, 2023</span>
</div>
@@ -174,14 +174,14 @@
<div class="post-list-item">
<div class="post-title">
- <a href="/2023/10/21/OCaml-Core-Int-pow-%E7%9A%84%E5%AE%9E%E7%8E%B0/">
+ <a href="/2023/10/25/%E5%84%BF%E7%AB%A5%E6%96%B0%E5%9E%8B%E5%86%A0%E7%8A%B6%E7%97%85%E6%AF%92Omicron%E6%A0%AA%E5%92%8C%E8%82%BA%E7%82%8E%E6%94%AF%E5%8E%9F%E4%BD%93%E6%B7%B7%E5%90%88%E6%84%9F%E6%9F%93%E9%87%8D%E7%97%87%E8%82%BA%E7%82%8E1%E4%BE%8B/">
- OCaml Core.Int.pow 的实现
+ 儿童新型冠状病毒Omicron株和肺炎支原体混合感染重症肺炎1例
</a>
</div>
- <span class="post-date">Oct 21, 2023</span>
+ <span class="post-date">Oct 25, 2023</span>
</div>
@@ -192,14 +192,14 @@
<div class="post-list-item">
<div class="post-title">
- <a href="/2023/10/13/%E8%82%9D%E5%8A%9F%E8%83%BD%E6%A3%80%E6%9F%A5%E5%8C%96%E9%AA%8C%E5%8D%95/">
+ <a href="/2023/10/25/Radiographic-Absence-of-the-Left-Humeral-Head/">
- 肝功能检查化验单阅读指南
+ Radiographic Absence of the Left Humeral Head
</a>
</div>
- <span class="post-date">Oct 13, 2023</span>
+ <span class="post-date">Oct 25, 2023</span>
</div>
@@ -210,14 +210,14 @@
<div class="post-list-item">
<div class="post-title">
- <a href="/2023/10/12/%E8%A1%80%E5%B8%B8%E8%A7%84%E5%8C%96%E9%AA%8C%E7%BB%93%E6%9E%9C%E9%98%85%E8%AF%BB%E6%8C%87%E5%8D%97/">
+ <a href="/2023/10/25/%E8%82%BA%E7%82%8E%E6%94%AF%E5%8E%9F%E4%BD%93%E6%B3%A8%E6%84%8F%E4%BA%8B%E9%A1%B9/">
- 血常规化验结果阅读指南
+ 肺炎支原体注意事项
</a>
</div>
- <span class="post-date">Oct 12, 2023</span>
+ <span class="post-date">Oct 25, 2023</span>
</div>
@@ -228,14 +228,14 @@
<div class="post-list-item">
<div class="post-title">
- <a href="/2023/10/12/%E8%BF%87%E5%BA%A6%E7%96%B2%E5%8A%B3%E7%9A%84%E5%85%AD%E7%A7%8D%E8%A1%A8%E7%8E%B0/">
+ <a href="/2023/10/22/%E5%86%AC%E5%AD%A3%E5%92%B3%E5%97%BD%E8%BE%A8%E5%88%AB%E6%8C%87%E5%8D%97/">
- 过度疲劳的六种表现
+ 冬季咳嗽辨别指南
</a>
</div>
- <span class="post-date">Oct 12, 2023</span>
+ <span class="post-date">Oct 22, 2023</span>
</div>
@@ -246,14 +246,14 @@
<div class="post-list-item">
<div class="post-title">
- <a href="/2023/10/05/v8%E4%B8%ADNumber-toString-%E7%9A%84%E5%AE%9E%E7%8E%B0/">
+ <a href="/2023/10/21/OCaml-Core-Int-pow-%E7%9A%84%E5%AE%9E%E7%8E%B0/">
- v8中Number.toString()的实现
+ OCaml Core.Int.pow 的实现
</a>
</div>
- <span class="post-date">Oct 5, 2023</span>
+ <span class="post-date">Oct 21, 2023</span>
</div>
@@ -264,14 +264,14 @@
<div class="post-list-item">
<div class="post-title">
- <a href="/2023/09/28/A-Brief-History-of-Just-In-Time/">
+ <a href="/2023/10/13/%E8%82%9D%E5%8A%9F%E8%83%BD%E6%A3%80%E6%9F%A5%E5%8C%96%E9%AA%8C%E5%8D%95/">
- A Brief History of Just-In-Time
+ 肝功能检查化验单阅读指南
</a>
</div>
- <span class="post-date">Sep 28, 2023</span>
+ <span class="post-date">Oct 13, 2023</span>
</div>
@@ -282,14 +282,14 @@
<div class="post-list-item">
<div class="post-title">
- <a href="/2023/09/13/%E4%BA%8C%E9%9B%B6%E4%BA%8C%E4%B8%89%E5%B9%B4%E4%B9%9D%E6%9C%88%E5%8D%81%E4%B8%89%E6%97%A5/">
+ <a href="/2023/10/12/%E8%A1%80%E5%B8%B8%E8%A7%84%E5%8C%96%E9%AA%8C%E7%BB%93%E6%9E%9C%E9%98%85%E8%AF%BB%E6%8C%87%E5%8D%97/">
- 二零二三年九月十三日
+ 血常规化验结果阅读指南
</a>
</div>
- <span class="post-date">Sep 13, 2023</span>
+ <span class="post-date">Oct 12, 2023</span>
</div>
@@ -300,14 +300,14 @@
<div class="post-list-item">
<div class="post-title">
- <a href="/2023/08/27/%E4%BA%8C%E9%9B%B6%E4%BA%8C%E4%B8%89%E5%B9%B4%E5%85%AB%E6%9C%88%E4%BA%8C%E5%8D%81%E4%B8%83%E6%97%A5/">
+ <a href="/2023/10/12/%E8%BF%87%E5%BA%A6%E7%96%B2%E5%8A%B3%E7%9A%84%E5%85%AD%E7%A7%8D%E8%A1%A8%E7%8E%B0/">
- 二零二三年八月二十七日
+ 过度疲劳的六种表现
</a>
</div>
- <span class="post-date">Aug 27, 2023</span>
+ <span class="post-date">Oct 12, 2023</span>
</div>
diff --git a/archives/page/3/index.html b/archives/page/3/index.html
index 2efef4f3..b73ee4a3 100644
--- a/archives/page/3/index.html
+++ b/archives/page/3/index.html
@@ -138,14 +138,14 @@
<div class="post-list-item">
<div class="post-title">
- <a href="/2023/08/21/%E4%BA%8C%E9%9B%B6%E4%BA%8C%E4%B8%89%E5%B9%B4%E5%85%AB%E6%9C%88%E4%BA%8C%E5%8D%81%E4%B8%80%E6%97%A5/">
+ <a href="/2023/10/05/v8%E4%B8%ADNumber-toString-%E7%9A%84%E5%AE%9E%E7%8E%B0/">
- 二零二三年八月二十一日
+ v8中Number.toString()的实现
</a>
</div>
- <span class="post-date">Aug 21, 2023</span>
+ <span class="post-date">Oct 5, 2023</span>
</div>
@@ -156,14 +156,14 @@
<div class="post-list-item">
<div class="post-title">
- <a href="/2023/08/15/tick-thread%E5%9C%A8Multicore-OCaml%E4%B8%AD%E7%9A%84%E4%BD%9C%E7%94%A8/">
+ <a href="/2023/10/05/v8%E4%B8%AD%E7%9A%84Number-toString/">
- tick thread在Multicore OCaml中的作用
+ v8中的Number.toString()
</a>
</div>
- <span class="post-date">Aug 15, 2023</span>
+ <span class="post-date">Oct 5, 2023</span>
</div>
@@ -174,14 +174,14 @@
<div class="post-list-item">
<div class="post-title">
- <a href="/2023/08/15/poll-error-attribute-in-OCaml/">
+ <a href="/2023/09/28/A-Brief-History-of-Just-In-Time/">
- 使用 [@poll error] 实现线程安全的数据结构
+ A Brief History of Just-In-Time
</a>
</div>
- <span class="post-date">Aug 15, 2023</span>
+ <span class="post-date">Sep 28, 2023</span>
</div>
@@ -192,14 +192,14 @@
<div class="post-list-item">
<div class="post-title">
- <a href="/2023/08/15/Typed-Design-Patterns-for-the-Functional-Era/">
+ <a href="/2023/09/13/%E4%BA%8C%E9%9B%B6%E4%BA%8C%E4%B8%89%E5%B9%B4%E4%B9%9D%E6%9C%88%E5%8D%81%E4%B8%89%E6%97%A5/">
- Typed Design Patterns for the Functional Era
+ 二零二三年九月十三日
</a>
</div>
- <span class="post-date">Aug 15, 2023</span>
+ <span class="post-date">Sep 13, 2023</span>
</div>
@@ -210,14 +210,14 @@
<div class="post-list-item">
<div class="post-title">
- <a href="/2023/08/01/%E4%BA%8C%E3%80%87%E4%BA%8C%E4%B8%89%E5%B9%B4%E5%85%AB%E6%9C%88%E4%B8%80%E6%97%A5/">
+ <a href="/2023/08/27/%E4%BA%8C%E9%9B%B6%E4%BA%8C%E4%B8%89%E5%B9%B4%E5%85%AB%E6%9C%88%E4%BA%8C%E5%8D%81%E4%B8%83%E6%97%A5/">
- 二〇二三年八月一日
+ 二零二三年八月二十七日
</a>
</div>
- <span class="post-date">Aug 1, 2023</span>
+ <span class="post-date">Aug 27, 2023</span>
</div>
@@ -228,14 +228,14 @@
<div class="post-list-item">
<div class="post-title">
- <a href="/2023/07/30/%E4%BA%8C%E9%9B%B6%E4%BA%8C%E4%B8%89%E5%B9%B4%E4%B8%83%E6%9C%88%E4%B8%89%E5%8D%81%E6%97%A5/">
+ <a href="/2023/08/21/%E4%BA%8C%E9%9B%B6%E4%BA%8C%E4%B8%89%E5%B9%B4%E5%85%AB%E6%9C%88%E4%BA%8C%E5%8D%81%E4%B8%80%E6%97%A5/">
- 二零二三年七月三十日
+ 二零二三年八月二十一日
</a>
</div>
- <span class="post-date">Jul 30, 2023</span>
+ <span class="post-date">Aug 21, 2023</span>
</div>
@@ -246,14 +246,14 @@
<div class="post-list-item">
<div class="post-title">
- <a href="/2023/07/26/%E4%BA%8C%E3%80%87%E4%BA%8C%E4%B8%89%E5%B9%B4%E4%B8%83%E6%9C%88%E4%BA%8C%E5%8D%81%E5%85%AD%E6%97%A5/">
+ <a href="/2023/08/15/tick-thread%E5%9C%A8Multicore-OCaml%E4%B8%AD%E7%9A%84%E4%BD%9C%E7%94%A8/">
- 二〇二三年七月二十六日
+ tick thread在Multicore OCaml中的作用
</a>
</div>
- <span class="post-date">Jul 26, 2023</span>
+ <span class="post-date">Aug 15, 2023</span>
</div>
@@ -264,14 +264,14 @@
<div class="post-list-item">
<div class="post-title">
- <a href="/2023/07/21/WiscKey-Separating-Keys-from-Values-in-SSD-conscious-Storage/">
+ <a href="/2023/08/15/poll-error-attribute-in-OCaml/">
- WiscKey: Separating Keys from Values in SSD-conscious Storage
+ 使用 [@poll error] 实现线程安全的数据结构
</a>
</div>
- <span class="post-date">Jul 21, 2023</span>
+ <span class="post-date">Aug 15, 2023</span>
</div>
@@ -282,14 +282,14 @@
<div class="post-list-item">
<div class="post-title">
- <a href="/2023/06/29/%E4%BA%8C%E3%80%87%E4%BA%8C%E4%B8%89%E5%B9%B4%E5%85%AD%E6%9C%88%E4%BA%8C%E5%8D%81%E4%B9%9D%E6%97%A5/">
+ <a href="/2023/08/15/Typed-Design-Patterns-for-the-Functional-Era/">
- 二〇二三年六月二十九日
+ Typed Design Patterns for the Functional Era
</a>
</div>
- <span class="post-date">Jun 29, 2023</span>
+ <span class="post-date">Aug 15, 2023</span>
</div>
@@ -300,14 +300,14 @@
<div class="post-list-item">
<div class="post-title">
- <a href="/2023/06/28/%E9%9A%90%E8%97%8F%E4%B8%80%E4%BA%9BOCaml-Effect%E7%9A%84%E6%9C%BA%E5%88%B6%EF%BC%8C%E8%AE%A9%E5%85%B6%E8%AF%AD%E6%B3%95%E5%9C%A8%E7%B2%BE%E7%A5%9E%E4%B8%8A%E6%9B%B4%E6%8E%A5%E8%BF%91delimcc/">
+ <a href="/2023/08/01/%E4%BA%8C%E3%80%87%E4%BA%8C%E4%B8%89%E5%B9%B4%E5%85%AB%E6%9C%88%E4%B8%80%E6%97%A5/">
- 隐藏一些OCaml Effect的机制,让其语法在精神上更接近delimcc
+ 二〇二三年八月一日
</a>
</div>
- <span class="post-date">Jun 28, 2023</span>
+ <span class="post-date">Aug 1, 2023</span>
</div>
diff --git a/archives/page/4/index.html b/archives/page/4/index.html
index f9cf2f96..1cc2a723 100644
--- a/archives/page/4/index.html
+++ b/archives/page/4/index.html
@@ -138,14 +138,14 @@
<div class="post-list-item">
<div class="post-title">
- <a href="/2023/06/28/caml-release-runtime-system%E5%AF%BC%E8%87%B4%E7%9A%84%E6%AD%BB%E9%94%81%E9%97%AE%E9%A2%98/">
+ <a href="/2023/07/30/%E4%BA%8C%E9%9B%B6%E4%BA%8C%E4%B8%89%E5%B9%B4%E4%B8%83%E6%9C%88%E4%B8%89%E5%8D%81%E6%97%A5/">
- caml_release_runtime_system导致的死锁问题
+ 二零二三年七月三十日
</a>
</div>
- <span class="post-date">Jun 28, 2023</span>
+ <span class="post-date">Jul 30, 2023</span>
</div>
@@ -156,14 +156,14 @@
<div class="post-list-item">
<div class="post-title">
- <a href="/2023/06/22/%E7%81%AF%E7%AC%BC%E8%8D%89/">
+ <a href="/2023/07/26/%E4%BA%8C%E3%80%87%E4%BA%8C%E4%B8%89%E5%B9%B4%E4%B8%83%E6%9C%88%E4%BA%8C%E5%8D%81%E5%85%AD%E6%97%A5/">
- 灯笼草
+ 二〇二三年七月二十六日
</a>
</div>
- <span class="post-date">Jun 22, 2023</span>
+ <span class="post-date">Jul 26, 2023</span>
</div>
@@ -174,14 +174,14 @@
<div class="post-list-item">
<div class="post-title">
- <a href="/2023/06/17/%E5%8F%91%E7%83%AD%E5%8F%8A%E8%B6%85%E9%AB%98%E7%83%AD%E5%8D%B1%E8%B1%A1/">
+ <a href="/2023/07/21/WiscKey-Separating-Keys-from-Values-in-SSD-conscious-Storage/">
- 发热及超高热危象
+ WiscKey: Separating Keys from Values in SSD-conscious Storage
</a>
</div>
- <span class="post-date">Jun 17, 2023</span>
+ <span class="post-date">Jul 21, 2023</span>
</div>
@@ -192,14 +192,14 @@
<div class="post-list-item">
<div class="post-title">
- <a href="/2023/06/10/%E4%BA%8C%E9%9B%B6%E4%BA%8C%E4%B8%89%E5%B9%B4%E5%85%AD%E6%9C%88%E5%8D%81%E6%97%A5/">
+ <a href="/2023/06/29/%E4%BA%8C%E3%80%87%E4%BA%8C%E4%B8%89%E5%B9%B4%E5%85%AD%E6%9C%88%E4%BA%8C%E5%8D%81%E4%B9%9D%E6%97%A5/">
- 二零二三年六月十日
+ 二〇二三年六月二十九日
</a>
</div>
- <span class="post-date">Jun 10, 2023</span>
+ <span class="post-date">Jun 29, 2023</span>
</div>
@@ -210,14 +210,14 @@
<div class="post-list-item">
<div class="post-title">
- <a href="/2023/04/25/%E4%BA%8C%E9%9B%B6%E4%BA%8C%E4%B8%89%E5%B9%B4%E5%9B%9B%E6%9C%88%E4%BA%8C%E5%8D%81%E4%BA%94%E6%97%A5/">
+ <a href="/2023/06/28/%E9%9A%90%E8%97%8F%E4%B8%80%E4%BA%9BOCaml-Effect%E7%9A%84%E6%9C%BA%E5%88%B6%EF%BC%8C%E8%AE%A9%E5%85%B6%E8%AF%AD%E6%B3%95%E5%9C%A8%E7%B2%BE%E7%A5%9E%E4%B8%8A%E6%9B%B4%E6%8E%A5%E8%BF%91delimcc/">
- 二零二三年四月二十五日
+ 隐藏一些OCaml Effect的机制,让其语法在精神上更接近delimcc
</a>
</div>
- <span class="post-date">Apr 25, 2023</span>
+ <span class="post-date">Jun 28, 2023</span>
</div>
@@ -228,14 +228,14 @@
<div class="post-list-item">
<div class="post-title">
- <a href="/2023/04/22/%E4%BA%8C%E9%9B%B6%E4%BA%8C%E4%B8%89%E5%B9%B4%E5%9B%9B%E6%9C%88%E4%BA%8C%E5%8D%81%E4%BA%8C%E6%97%A5/">
+ <a href="/2023/06/28/caml-release-runtime-system%E5%AF%BC%E8%87%B4%E7%9A%84%E6%AD%BB%E9%94%81%E9%97%AE%E9%A2%98/">
- 二零二三年四月二十二日
+ caml_release_runtime_system导致的死锁问题
</a>
</div>
- <span class="post-date">Apr 22, 2023</span>
+ <span class="post-date">Jun 28, 2023</span>
</div>
@@ -246,14 +246,14 @@
<div class="post-list-item">
<div class="post-title">
- <a href="/2023/03/14/%E8%9E%BA%E5%86%85%E9%85%AF%E7%89%87/">
+ <a href="/2023/06/22/%E7%81%AF%E7%AC%BC%E8%8D%89/">
- 螺内酯片
+ 灯笼草
</a>
</div>
- <span class="post-date">Mar 14, 2023</span>
+ <span class="post-date">Jun 22, 2023</span>
</div>
@@ -264,14 +264,14 @@
<div class="post-list-item">
<div class="post-title">
- <a href="/2023/03/14/%E5%91%8B%E5%A1%9E%E7%B1%B3/">
+ <a href="/2023/06/17/%E5%8F%91%E7%83%AD%E5%8F%8A%E8%B6%85%E9%AB%98%E7%83%AD%E5%8D%B1%E8%B1%A1/">
- 呋塞米
+ 发热及超高热危象
</a>
</div>
- <span class="post-date">Mar 14, 2023</span>
+ <span class="post-date">Jun 17, 2023</span>
</div>
@@ -282,14 +282,14 @@
<div class="post-list-item">
<div class="post-title">
- <a href="/2023/03/13/%E6%9B%BF%E7%B1%B3%E6%B2%99%E5%9D%A6/">
+ <a href="/2023/06/10/%E4%BA%8C%E9%9B%B6%E4%BA%8C%E4%B8%89%E5%B9%B4%E5%85%AD%E6%9C%88%E5%8D%81%E6%97%A5/">
- 替米沙坦
+ 二零二三年六月十日
</a>
</div>
- <span class="post-date">Mar 13, 2023</span>
+ <span class="post-date">Jun 10, 2023</span>
</div>
@@ -300,14 +300,14 @@
<div class="post-list-item">
<div class="post-title">
- <a href="/2023/03/05/%E5%A5%A5%E5%8F%B8%E4%BB%96%E9%9F%A6/">
+ <a href="/2023/04/25/%E4%BA%8C%E9%9B%B6%E4%BA%8C%E4%B8%89%E5%B9%B4%E5%9B%9B%E6%9C%88%E4%BA%8C%E5%8D%81%E4%BA%94%E6%97%A5/">
- 奥司他韦
+ 二零二三年四月二十五日
</a>
</div>
- <span class="post-date">Mar 5, 2023</span>
+ <span class="post-date">Apr 25, 2023</span>
</div>
diff --git a/archives/page/5/index.html b/archives/page/5/index.html
index 088a03c0..1c4d5e17 100644
--- a/archives/page/5/index.html
+++ b/archives/page/5/index.html
@@ -138,14 +138,14 @@
<div class="post-list-item">
<div class="post-title">
- <a href="/2023/03/04/%E9%87%91%E5%8C%AE%E8%A6%81%E7%95%A5/">
+ <a href="/2023/04/22/%E4%BA%8C%E9%9B%B6%E4%BA%8C%E4%B8%89%E5%B9%B4%E5%9B%9B%E6%9C%88%E4%BA%8C%E5%8D%81%E4%BA%8C%E6%97%A5/">
- 金匮要略
+ 二零二三年四月二十二日
</a>
</div>
- <span class="post-date">Mar 4, 2023</span>
+ <span class="post-date">Apr 22, 2023</span>
</div>
@@ -156,14 +156,14 @@
<div class="post-list-item">
<div class="post-title">
- <a href="/2023/03/01/%E6%B0%94%E8%83%B8/">
+ <a href="/2023/03/14/%E8%9E%BA%E5%86%85%E9%85%AF%E7%89%87/">
- 气胸
+ 螺内酯片
</a>
</div>
- <span class="post-date">Mar 1, 2023</span>
+ <span class="post-date">Mar 14, 2023</span>
</div>
@@ -174,14 +174,14 @@
<div class="post-list-item">
<div class="post-title">
- <a href="/2023/03/01/%E7%BA%AF%E7%89%9B%E5%A5%B6%E5%8F%AF%E4%BB%A5%E5%8A%A0%E7%82%B9%E5%95%A5/">
+ <a href="/2023/03/14/%E5%91%8B%E5%A1%9E%E7%B1%B3/">
- 纯牛奶可以加点啥
+ 呋塞米
</a>
</div>
- <span class="post-date">Mar 1, 2023</span>
+ <span class="post-date">Mar 14, 2023</span>
</div>
@@ -192,14 +192,14 @@
<div class="post-list-item">
<div class="post-title">
- <a href="/2023/02/26/%E4%BA%8C%E9%9B%B6%E4%BA%8C%E4%B8%89%E5%B9%B4%E4%BA%8C%E6%9C%88%E4%BA%8C%E5%8D%81%E5%85%AD%E6%97%A5/">
+ <a href="/2023/03/13/%E6%9B%BF%E7%B1%B3%E6%B2%99%E5%9D%A6/">
- 二零二三年二月二十六日
+ 替米沙坦
</a>
</div>
- <span class="post-date">Feb 26, 2023</span>
+ <span class="post-date">Mar 13, 2023</span>
</div>
@@ -210,14 +210,14 @@
<div class="post-list-item">
<div class="post-title">
- <a href="/2023/02/25/%E4%BA%8C%E9%9B%B6%E4%BA%8C%E4%B8%89%E5%B9%B4%E4%BA%8C%E6%9C%88%E4%BA%8C%E5%8D%81%E4%BA%94%E6%97%A5/">
+ <a href="/2023/03/05/%E5%A5%A5%E5%8F%B8%E4%BB%96%E9%9F%A6/">
- 二零二三年二月二十五日
+ 奥司他韦
</a>
</div>
- <span class="post-date">Feb 25, 2023</span>
+ <span class="post-date">Mar 5, 2023</span>
</div>
@@ -228,14 +228,14 @@
<div class="post-list-item">
<div class="post-title">
- <a href="/2023/02/24/%E4%BA%8C%E9%9B%B6%E4%BA%8C%E4%B8%89%E5%B9%B4%E4%BA%8C%E6%9C%88%E4%BA%8C%E5%8D%81%E5%9B%9B%E6%97%A5/">
+ <a href="/2023/03/04/%E9%87%91%E5%8C%AE%E8%A6%81%E7%95%A5/">
- 二零二三年二月二十四日
+ 金匮要略
</a>
</div>
- <span class="post-date">Feb 24, 2023</span>
+ <span class="post-date">Mar 4, 2023</span>
</div>
@@ -246,14 +246,14 @@
<div class="post-list-item">
<div class="post-title">
- <a href="/2023/02/22/%E4%BA%8C%E9%9B%B6%E4%BA%8C%E4%B8%89%E5%B9%B4%E4%BA%8C%E6%9C%88%E4%BA%8C%E5%8D%81%E4%BA%8C%E6%97%A5/">
+ <a href="/2023/03/01/%E6%B0%94%E8%83%B8/">
- 二零二三年二月二十二日
+ 气胸
</a>
</div>
- <span class="post-date">Feb 22, 2023</span>
+ <span class="post-date">Mar 1, 2023</span>
</div>
@@ -264,14 +264,14 @@
<div class="post-list-item">
<div class="post-title">
- <a href="/2023/02/02/%E4%BA%8C%E9%9B%B6%E4%BA%8C%E4%B8%89%E5%B9%B4%E4%BA%8C%E6%9C%88%E4%BA%8C%E6%97%A5/">
+ <a href="/2023/03/01/%E7%BA%AF%E7%89%9B%E5%A5%B6%E5%8F%AF%E4%BB%A5%E5%8A%A0%E7%82%B9%E5%95%A5/">
- 二零二三年二月二日
+ 纯牛奶可以加点啥
</a>
</div>
- <span class="post-date">Feb 2, 2023</span>
+ <span class="post-date">Mar 1, 2023</span>
</div>
@@ -282,14 +282,14 @@
<div class="post-list-item">
<div class="post-title">
- <a href="/2023/02/01/%E4%BA%8C%E9%9B%B6%E4%BA%8C%E4%B8%89%E5%B9%B4%E4%BA%8C%E6%9C%88%E4%B8%80%E6%97%A5/">
+ <a href="/2023/02/26/%E4%BA%8C%E9%9B%B6%E4%BA%8C%E4%B8%89%E5%B9%B4%E4%BA%8C%E6%9C%88%E4%BA%8C%E5%8D%81%E5%85%AD%E6%97%A5/">
- 二零二三年二月一日
+ 二零二三年二月二十六日
</a>
</div>
- <span class="post-date">Feb 1, 2023</span>
+ <span class="post-date">Feb 26, 2023</span>
</div>
@@ -300,14 +300,14 @@
<div class="post-list-item">
<div class="post-title">
- <a href="/2023/01/21/%E4%BA%8C%E9%9B%B6%E4%BA%8C%E4%B8%89%E5%B9%B4%E4%B8%80%E6%9C%88%E4%BA%8C%E5%8D%81%E4%B8%80%E6%97%A5/">
+ <a href="/2023/02/25/%E4%BA%8C%E9%9B%B6%E4%BA%8C%E4%B8%89%E5%B9%B4%E4%BA%8C%E6%9C%88%E4%BA%8C%E5%8D%81%E4%BA%94%E6%97%A5/">
- 二零二三年一月二十一日
+ 二零二三年二月二十五日
</a>
</div>
- <span class="post-date">Jan 21, 2023</span>
+ <span class="post-date">Feb 25, 2023</span>
</div>
diff --git a/archives/page/6/index.html b/archives/page/6/index.html
index 5282c707..08e5410e 100644
--- a/archives/page/6/index.html
+++ b/archives/page/6/index.html
@@ -133,19 +133,19 @@
- <div class="year-title">2022</div>
+ <div class="year-title">2023</div>
<div class="post-list-item">
<div class="post-title">
- <a href="/2022/12/31/%E4%BA%8C%E9%9B%B6%E4%BA%8C%E4%BA%8C%E5%B9%B4%E5%8D%81%E4%BA%8C%E6%9C%88%E4%B8%89%E5%8D%81%E4%B8%80%E6%97%A5/">
+ <a href="/2023/02/24/%E4%BA%8C%E9%9B%B6%E4%BA%8C%E4%B8%89%E5%B9%B4%E4%BA%8C%E6%9C%88%E4%BA%8C%E5%8D%81%E5%9B%9B%E6%97%A5/">
- 二零二二年十二月三十一日
+ 二零二三年二月二十四日
</a>
</div>
- <span class="post-date">Dec 31, 2022</span>
+ <span class="post-date">Feb 24, 2023</span>
</div>
@@ -156,14 +156,14 @@
<div class="post-list-item">
<div class="post-title">
- <a href="/2022/11/03/%E4%BA%8C%E9%9B%B6%E4%BA%8C%E4%BA%8C%E5%B9%B4%E5%8D%81%E4%B8%80%E6%9C%88%E6%9C%88%E4%B8%89%E6%97%A5/">
+ <a href="/2023/02/22/%E4%BA%8C%E9%9B%B6%E4%BA%8C%E4%B8%89%E5%B9%B4%E4%BA%8C%E6%9C%88%E4%BA%8C%E5%8D%81%E4%BA%8C%E6%97%A5/">
- 二零二二年十一月月三日
+ 二零二三年二月二十二日
</a>
</div>
- <span class="post-date">Nov 3, 2022</span>
+ <span class="post-date">Feb 22, 2023</span>
</div>
@@ -174,14 +174,14 @@
<div class="post-list-item">
<div class="post-title">
- <a href="/2022/10/01/%E4%BA%8C%E9%9B%B6%E4%BA%8C%E4%BA%8C%E5%B9%B4%E5%8D%81%E6%9C%88%E4%B8%80%E6%97%A5/">
+ <a href="/2023/02/02/%E4%BA%8C%E9%9B%B6%E4%BA%8C%E4%B8%89%E5%B9%B4%E4%BA%8C%E6%9C%88%E4%BA%8C%E6%97%A5/">
- 二零二二年十月一日
+ 二零二三年二月二日
</a>
</div>
- <span class="post-date">Oct 1, 2022</span>
+ <span class="post-date">Feb 2, 2023</span>
</div>
@@ -192,14 +192,14 @@
<div class="post-list-item">
<div class="post-title">
- <a href="/2022/09/22/%E4%BA%8C%E9%9B%B6%E4%BA%8C%E4%BA%8C%E5%B9%B4%E4%B9%9D%E6%9C%88%E4%BA%8C%E5%8D%81%E4%BA%8C%E6%97%A5/">
+ <a href="/2023/02/01/%E4%BA%8C%E9%9B%B6%E4%BA%8C%E4%B8%89%E5%B9%B4%E4%BA%8C%E6%9C%88%E4%B8%80%E6%97%A5/">
- 二零二二年九月二十二日
+ 二零二三年二月一日
</a>
</div>
- <span class="post-date">Sep 22, 2022</span>
+ <span class="post-date">Feb 1, 2023</span>
</div>
@@ -210,14 +210,14 @@
<div class="post-list-item">
<div class="post-title">
- <a href="/2022/08/21/%E4%BA%8C%E9%9B%B6%E4%BA%8C%E4%BA%8C%E5%B9%B4%E5%85%AB%E6%9C%88%E4%BA%8C%E5%8D%81%E4%B8%80%E6%97%A5/">
+ <a href="/2023/01/21/%E4%BA%8C%E9%9B%B6%E4%BA%8C%E4%B8%89%E5%B9%B4%E4%B8%80%E6%9C%88%E4%BA%8C%E5%8D%81%E4%B8%80%E6%97%A5/">
- 二零二二年八月二十一日
+ 二零二三年一月二十一日
</a>
</div>
- <span class="post-date">Aug 21, 2022</span>
+ <span class="post-date">Jan 21, 2023</span>
</div>
@@ -225,17 +225,19 @@
+ <div class="year-title">2022</div>
+
<div class="post-list-item">
<div class="post-title">
- <a href="/2022/03/14/%E4%BA%8C%E9%9B%B6%E4%BA%8C%E4%BA%8C%E5%B9%B4%E4%B8%89%E6%9C%88%E5%8D%81%E5%9B%9B%E6%97%A5/">
+ <a href="/2022/12/31/%E4%BA%8C%E9%9B%B6%E4%BA%8C%E4%BA%8C%E5%B9%B4%E5%8D%81%E4%BA%8C%E6%9C%88%E4%B8%89%E5%8D%81%E4%B8%80%E6%97%A5/">
- 二零二二年三月十四日
+ 二零二二年十二月三十一日
</a>
</div>
- <span class="post-date">Mar 14, 2022</span>
+ <span class="post-date">Dec 31, 2022</span>
</div>
@@ -246,14 +248,14 @@
<div class="post-list-item">
<div class="post-title">
- <a href="/2022/01/01/%E4%BA%8C%E9%9B%B6%E4%BA%8C%E4%BA%8C%E5%B9%B4%E4%B8%80%E6%9C%88%E4%B8%80%E6%97%A5/">
+ <a href="/2022/11/03/%E4%BA%8C%E9%9B%B6%E4%BA%8C%E4%BA%8C%E5%B9%B4%E5%8D%81%E4%B8%80%E6%9C%88%E6%9C%88%E4%B8%89%E6%97%A5/">
- 二零二二年一月一日
+ 二零二二年十一月月三日
</a>
</div>
- <span class="post-date">Jan 1, 2022</span>
+ <span class="post-date">Nov 3, 2022</span>
</div>
@@ -261,19 +263,17 @@
- <div class="year-title">2021</div>
-
<div class="post-list-item">
<div class="post-title">
- <a href="/2021/03/27/%E4%BA%8C%E9%9B%B6%E4%BA%8C%E4%B8%80%E5%B9%B4%E4%B8%89%E6%9C%88%E4%BA%8C%E5%8D%81%E4%B8%83%E6%97%A5/">
+ <a href="/2022/10/01/%E4%BA%8C%E9%9B%B6%E4%BA%8C%E4%BA%8C%E5%B9%B4%E5%8D%81%E6%9C%88%E4%B8%80%E6%97%A5/">
- 二零二一年三月二十七日
+ 二零二二年十月一日
</a>
</div>
- <span class="post-date">Mar 27, 2021</span>
+ <span class="post-date">Oct 1, 2022</span>
</div>
@@ -284,14 +284,14 @@
<div class="post-list-item">
<div class="post-title">
- <a href="/2021/03/15/%E4%BA%8C%E9%9B%B6%E4%BA%8C%E4%B8%80%E5%B9%B4%E4%B8%89%E6%9C%88%E5%8D%81%E4%BA%94%E6%97%A5/">
+ <a href="/2022/09/22/%E4%BA%8C%E9%9B%B6%E4%BA%8C%E4%BA%8C%E5%B9%B4%E4%B9%9D%E6%9C%88%E4%BA%8C%E5%8D%81%E4%BA%8C%E6%97%A5/">
- 二零二一年三月十五日
+ 二零二二年九月二十二日
</a>
</div>
- <span class="post-date">Mar 15, 2021</span>
+ <span class="post-date">Sep 22, 2022</span>
</div>
@@ -302,14 +302,14 @@
<div class="post-list-item">
<div class="post-title">
- <a href="/2021/02/16/%E4%BA%8C%E9%9B%B6%E4%BA%8C%E4%B8%80%E5%B9%B4%E4%BA%8C%E6%9C%88%E5%8D%81%E5%85%AD%E6%97%A5/">
+ <a href="/2022/08/21/%E4%BA%8C%E9%9B%B6%E4%BA%8C%E4%BA%8C%E5%B9%B4%E5%85%AB%E6%9C%88%E4%BA%8C%E5%8D%81%E4%B8%80%E6%97%A5/">
- 二零二一年二月十六日
+ 二零二二年八月二十一日
</a>
</div>
- <span class="post-date">Feb 16, 2021</span>
+ <span class="post-date">Aug 21, 2022</span>
</div>
diff --git a/archives/page/7/index.html b/archives/page/7/index.html
index 034d13f9..45b39829 100644
--- a/archives/page/7/index.html
+++ b/archives/page/7/index.html
@@ -133,11 +133,103 @@
+ <div class="year-title">2022</div>
+
+
+ <div class="post-list-item">
+ <div class="post-title">
+ <a href="/2022/03/14/%E4%BA%8C%E9%9B%B6%E4%BA%8C%E4%BA%8C%E5%B9%B4%E4%B8%89%E6%9C%88%E5%8D%81%E5%9B%9B%E6%97%A5/">
+
+ 二零二二年三月十四日
+
+ </a>
+ </div>
+
+ <span class="post-date">Mar 14, 2022</span>
+ </div>
+
+
+
+
+
+
+
+ <div class="post-list-item">
+ <div class="post-title">
+ <a href="/2022/01/01/%E4%BA%8C%E9%9B%B6%E4%BA%8C%E4%BA%8C%E5%B9%B4%E4%B8%80%E6%9C%88%E4%B8%80%E6%97%A5/">
+
+ 二零二二年一月一日
+
+ </a>
+ </div>
+
+ <span class="post-date">Jan 1, 2022</span>
+ </div>
+
+
+
+
+
+
<div class="year-title">2021</div>
<div class="post-list-item">
<div class="post-title">
+ <a href="/2021/03/27/%E4%BA%8C%E9%9B%B6%E4%BA%8C%E4%B8%80%E5%B9%B4%E4%B8%89%E6%9C%88%E4%BA%8C%E5%8D%81%E4%B8%83%E6%97%A5/">
+
+ 二零二一年三月二十七日
+
+ </a>
+ </div>
+
+ <span class="post-date">Mar 27, 2021</span>
+ </div>
+
+
+
+
+
+
+
+ <div class="post-list-item">
+ <div class="post-title">
+ <a href="/2021/03/15/%E4%BA%8C%E9%9B%B6%E4%BA%8C%E4%B8%80%E5%B9%B4%E4%B8%89%E6%9C%88%E5%8D%81%E4%BA%94%E6%97%A5/">
+
+ 二零二一年三月十五日
+
+ </a>
+ </div>
+
+ <span class="post-date">Mar 15, 2021</span>
+ </div>
+
+
+
+
+
+
+
+ <div class="post-list-item">
+ <div class="post-title">
+ <a href="/2021/02/16/%E4%BA%8C%E9%9B%B6%E4%BA%8C%E4%B8%80%E5%B9%B4%E4%BA%8C%E6%9C%88%E5%8D%81%E5%85%AD%E6%97%A5/">
+
+ 二零二一年二月十六日
+
+ </a>
+ </div>
+
+ <span class="post-date">Feb 16, 2021</span>
+ </div>
+
+
+
+
+
+
+
+ <div class="post-list-item">
+ <div class="post-title">
<a href="/2021/02/14/%E4%BA%8C%E9%9B%B6%E4%BA%8C%E4%B8%80%E5%B9%B4%E4%BA%8C%E6%9C%88%E5%8D%81%E5%9B%9B%E6%97%A5/">
二零二一年二月十四日
diff --git a/tag/index.html b/tag/index.html
index 52d2d3b7..1840ec0b 100644
--- a/tag/index.html
+++ b/tag/index.html
@@ -158,6 +158,12 @@
</span>
<span class="post-tag">
+ <a href="/tags/Rescript/">
+ Rescript
+ </a>
+ </span>
+
+ <span class="post-tag">
<a href="/tags/Database/">
Database
</a>
diff --git a/tags/Life/index.html b/tags/Life/index.html
index f6748714..7baa5400 100644
--- a/tags/Life/index.html
+++ b/tags/Life/index.html
@@ -253,6 +253,24 @@
<div class="post-list-item">
<div class="post-title">
+ <a href="/2023/06/17/%E5%8F%91%E7%83%AD%E5%8F%8A%E8%B6%85%E9%AB%98%E7%83%AD%E5%8D%B1%E8%B1%A1/">
+
+ 发热及超高热危象
+
+ </a>
+ </div>
+
+ <span class="post-date">Jun 17, 2023</span>
+ </div>
+
+
+
+
+
+
+
+ <div class="post-list-item">
+ <div class="post-title">
<a href="/2023/03/01/%E7%BA%AF%E7%89%9B%E5%A5%B6%E5%8F%AF%E4%BB%A5%E5%8A%A0%E7%82%B9%E5%95%A5/">
纯牛奶可以加点啥
diff --git a/tags/OCaml/index.html b/tags/OCaml/index.html
index 475e135f..dbbbb8d3 100644
--- a/tags/OCaml/index.html
+++ b/tags/OCaml/index.html
@@ -140,6 +140,44 @@
+ <div class="year-title">2024</div>
+
+
+ <div class="post-list-item">
+ <div class="post-title">
+ <a href="/2024/01/18/OCaml-News-2024-2/">
+
+ OCaml News 2024-2
+
+ </a>
+ </div>
+
+ <span class="post-date">Jan 18, 2024</span>
+ </div>
+
+
+
+
+
+
+
+ <div class="post-list-item">
+ <div class="post-title">
+ <a href="/2024/01/08/OCaml-News-2024-1/">
+
+ OCaml News 2024-1
+
+ </a>
+ </div>
+
+ <span class="post-date">Jan 8, 2024</span>
+ </div>
+
+
+
+
+
+
<div class="year-title">2023</div>
diff --git a/tags/Rescript/index.html b/tags/Rescript/index.html
new file mode 100644
index 00000000..56476574
--- /dev/null
+++ b/tags/Rescript/index.html
@@ -0,0 +1,191 @@
+<!DOCTYPE html>
+<html lang="en">
+ <head>
+ <meta charset="UTF-8">
+<meta name="viewport"
+ content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
+<meta http-equiv="X-UA-Compatible" content="ie=edge">
+
+ <meta name="author" content="韩暮秋">
+
+
+ <meta name="subtitle" content="暮秋小屋">
+
+
+ <meta name="description" content="这里是暮秋小屋,思念和灵感的寄存处">
+
+
+ <meta name="keywords" content="韩暮秋,MuqiuHan">
+
+
+
+
+<title>Tag: Rescript | 暮秋小屋</title>
+
+
+
+
+
+<style>
+ @import url('https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&family=Noto+Sans+SC:wght@300;400;500;700&family=Roboto+Mono&display=swap');
+</style>
+
+
+
+ <!-- stylesheets list from _config.yml -->
+
+ <link rel="stylesheet" href="/css/style.css">
+
+
+
+
+
+ <!-- scripts list from _config.yml -->
+
+ <script src="/js/frame.js"></script>
+
+
+
+
+
+ <script src="https://polyfill.io/v3/polyfill.min.js?features=es6"></script>
+ <script id="MathJax-script" async src="https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-mml-chtml.js"></script>
+
+
+
+
+
+
+
+ <meta name="generator" content="Hexo 6.3.0"></head>
+ <body>
+ <div class="mask-border">
+ </div>
+
+ <div class="wrapper">
+
+ <div class="header">
+ <div class="flex-container">
+ <div class="header-inner">
+ <div class="site-brand-container">
+ <a href="/">
+
+ 暮秋小屋
+
+ </a>
+ </div>
+ <div id="menu-btn" class="menu-btn" onclick="toggleMenu()">
+ Menu
+ </div>
+ <nav class="site-nav">
+ <ul class="menu-list">
+
+
+ <li class="menu-item">
+ <a href="/">主页</a>
+ </li>
+
+
+
+ <li class="menu-item">
+ <a href="/categories/gallery/">日记本</a>
+ </li>
+
+
+
+ <li class="menu-item">
+ <a href="/tags/Medicine/">医学</a>
+ </li>
+
+
+
+ <li class="menu-item">
+ <a href="/tags/Technique/">计算机科学</a>
+ </li>
+
+
+
+ <li class="menu-item">
+ <a href="/tags/Life/">生活</a>
+ </li>
+
+
+
+ <li class="menu-item">
+ <a href="/about">关于</a>
+ </li>
+
+
+
+ </ul>
+ </nav>
+ </div>
+ </div>
+</div>
+
+
+ <div class="main">
+ <div class="flex-container">
+ <div id="tag">
+
+
+ <p class="tag-title">
+ / <a href="/tag/">tags</a>
+ / <a href="">Rescript</a> /
+ </p>
+ <div class="post-list">
+
+
+
+
+
+
+ <div class="year-title">2024</div>
+
+
+ <div class="post-list-item">
+ <div class="post-title">
+ <a href="/2024/01/22/Rescript-React-Native/">
+
+ Rescript React Native
+
+ </a>
+ </div>
+
+ <span class="post-date">Jan 22, 2024</span>
+ </div>
+
+
+ <div id="paginator">
+
+ </div>
+</div>
+
+
+
+
+</div>
+ </div>
+ </div>
+
+ <div class="footer">
+ <div class="flex-container">
+ <div class="footer-text">
+
+
+ |
+
+
+ 希望路过的人可以添点柴火让这里暖和点
+
+ </div>
+ </div>
+</div>
+
+ </div>
+
+
+
+
+ </body>
+</html>
diff --git a/tags/Technique/index.html b/tags/Technique/index.html
index df29d45d..734be0bb 100644
--- a/tags/Technique/index.html
+++ b/tags/Technique/index.html
@@ -140,19 +140,19 @@
- <div class="year-title">2023</div>
+ <div class="year-title">2024</div>
<div class="post-list-item">
<div class="post-title">
- <a href="/2023/10/21/OCaml-Core-Int-pow-%E7%9A%84%E5%AE%9E%E7%8E%B0/">
+ <a href="/2024/01/23/G-Machine/">
- OCaml Core.Int.pow 的实现
+ G-Machine
</a>
</div>
- <span class="post-date">Oct 21, 2023</span>
+ <span class="post-date">Jan 23, 2024</span>
</div>
@@ -163,14 +163,14 @@
<div class="post-list-item">
<div class="post-title">
- <a href="/2023/10/05/v8%E4%B8%ADNumber-toString-%E7%9A%84%E5%AE%9E%E7%8E%B0/">
+ <a href="/2024/01/22/Rescript-React-Native/">
- v8中Number.toString()的实现
+ Rescript React Native
</a>
</div>
- <span class="post-date">Oct 5, 2023</span>
+ <span class="post-date">Jan 22, 2024</span>
</div>
@@ -181,14 +181,14 @@
<div class="post-list-item">
<div class="post-title">
- <a href="/2023/09/28/A-Brief-History-of-Just-In-Time/">
+ <a href="/2024/01/18/OCaml-News-2024-2/">
- A Brief History of Just-In-Time
+ OCaml News 2024-2
</a>
</div>
- <span class="post-date">Sep 28, 2023</span>
+ <span class="post-date">Jan 18, 2024</span>
</div>
@@ -199,14 +199,14 @@
<div class="post-list-item">
<div class="post-title">
- <a href="/2023/08/15/tick-thread%E5%9C%A8Multicore-OCaml%E4%B8%AD%E7%9A%84%E4%BD%9C%E7%94%A8/">
+ <a href="/2024/01/08/OCaml-News-2024-1/">
- tick thread在Multicore OCaml中的作用
+ OCaml News 2024-1
</a>
</div>
- <span class="post-date">Aug 15, 2023</span>
+ <span class="post-date">Jan 8, 2024</span>
</div>
@@ -214,17 +214,19 @@
+ <div class="year-title">2023</div>
+
<div class="post-list-item">
<div class="post-title">
- <a href="/2023/08/15/poll-error-attribute-in-OCaml/">
+ <a href="/2023/10/21/OCaml-Core-Int-pow-%E7%9A%84%E5%AE%9E%E7%8E%B0/">
- 使用 [@poll error] 实现线程安全的数据结构
+ OCaml Core.Int.pow 的实现
</a>
</div>
- <span class="post-date">Aug 15, 2023</span>
+ <span class="post-date">Oct 21, 2023</span>
</div>
@@ -235,14 +237,32 @@
<div class="post-list-item">
<div class="post-title">
- <a href="/2023/08/15/Typed-Design-Patterns-for-the-Functional-Era/">
+ <a href="/2023/10/05/v8%E4%B8%ADNumber-toString-%E7%9A%84%E5%AE%9E%E7%8E%B0/">
- Typed Design Patterns for the Functional Era
+ v8中Number.toString()的实现
</a>
</div>
- <span class="post-date">Aug 15, 2023</span>
+ <span class="post-date">Oct 5, 2023</span>
+ </div>
+
+
+
+
+
+
+
+ <div class="post-list-item">
+ <div class="post-title">
+ <a href="/2023/10/05/v8%E4%B8%AD%E7%9A%84Number-toString/">
+
+ v8中的Number.toString()
+
+ </a>
+ </div>
+
+ <span class="post-date">Oct 5, 2023</span>
</div>
@@ -253,14 +273,14 @@
<div class="post-list-item">
<div class="post-title">
- <a href="/2023/07/21/WiscKey-Separating-Keys-from-Values-in-SSD-conscious-Storage/">
+ <a href="/2023/09/28/A-Brief-History-of-Just-In-Time/">
- WiscKey: Separating Keys from Values in SSD-conscious Storage
+ A Brief History of Just-In-Time
</a>
</div>
- <span class="post-date">Jul 21, 2023</span>
+ <span class="post-date">Sep 28, 2023</span>
</div>
@@ -271,14 +291,14 @@
<div class="post-list-item">
<div class="post-title">
- <a href="/2023/06/28/%E9%9A%90%E8%97%8F%E4%B8%80%E4%BA%9BOCaml-Effect%E7%9A%84%E6%9C%BA%E5%88%B6%EF%BC%8C%E8%AE%A9%E5%85%B6%E8%AF%AD%E6%B3%95%E5%9C%A8%E7%B2%BE%E7%A5%9E%E4%B8%8A%E6%9B%B4%E6%8E%A5%E8%BF%91delimcc/">
+ <a href="/2023/08/15/tick-thread%E5%9C%A8Multicore-OCaml%E4%B8%AD%E7%9A%84%E4%BD%9C%E7%94%A8/">
- 隐藏一些OCaml Effect的机制,让其语法在精神上更接近delimcc
+ tick thread在Multicore OCaml中的作用
</a>
</div>
- <span class="post-date">Jun 28, 2023</span>
+ <span class="post-date">Aug 15, 2023</span>
</div>
@@ -289,19 +309,26 @@
<div class="post-list-item">
<div class="post-title">
- <a href="/2023/06/28/caml-release-runtime-system%E5%AF%BC%E8%87%B4%E7%9A%84%E6%AD%BB%E9%94%81%E9%97%AE%E9%A2%98/">
+ <a href="/2023/08/15/poll-error-attribute-in-OCaml/">
- caml_release_runtime_system导致的死锁问题
+ 使用 [@poll error] 实现线程安全的数据结构
</a>
</div>
- <span class="post-date">Jun 28, 2023</span>
+ <span class="post-date">Aug 15, 2023</span>
</div>
<div id="paginator">
+ <div class=paginator>
+ <div class="h-line-primary"></div>
+ <nav class="pagination">
+ <span class="page-number current">1</span><a class="page-number" href="/tags/Technique/page/2/">2</a>
+ </nav>
+ </div>
+
</div>
</div>
diff --git a/tags/Technique/page/2/index.html b/tags/Technique/page/2/index.html
new file mode 100644
index 00000000..ca11b3ca
--- /dev/null
+++ b/tags/Technique/page/2/index.html
@@ -0,0 +1,252 @@
+<!DOCTYPE html>
+<html lang="en">
+ <head>
+ <meta charset="UTF-8">
+<meta name="viewport"
+ content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
+<meta http-equiv="X-UA-Compatible" content="ie=edge">
+
+ <meta name="author" content="韩暮秋">
+
+
+ <meta name="subtitle" content="暮秋小屋">
+
+
+ <meta name="description" content="这里是暮秋小屋,思念和灵感的寄存处">
+
+
+ <meta name="keywords" content="韩暮秋,MuqiuHan">
+
+
+
+
+<title>Tag: Technique | 暮秋小屋</title>
+
+
+
+
+
+<style>
+ @import url('https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&family=Noto+Sans+SC:wght@300;400;500;700&family=Roboto+Mono&display=swap');
+</style>
+
+
+
+ <!-- stylesheets list from _config.yml -->
+
+ <link rel="stylesheet" href="/css/style.css">
+
+
+
+
+
+ <!-- scripts list from _config.yml -->
+
+ <script src="/js/frame.js"></script>
+
+
+
+
+
+ <script src="https://polyfill.io/v3/polyfill.min.js?features=es6"></script>
+ <script id="MathJax-script" async src="https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-mml-chtml.js"></script>
+
+
+
+
+
+
+
+ <meta name="generator" content="Hexo 6.3.0"></head>
+ <body>
+ <div class="mask-border">
+ </div>
+
+ <div class="wrapper">
+
+ <div class="header">
+ <div class="flex-container">
+ <div class="header-inner">
+ <div class="site-brand-container">
+ <a href="/">
+
+ 暮秋小屋
+
+ </a>
+ </div>
+ <div id="menu-btn" class="menu-btn" onclick="toggleMenu()">
+ Menu
+ </div>
+ <nav class="site-nav">
+ <ul class="menu-list">
+
+
+ <li class="menu-item">
+ <a href="/">主页</a>
+ </li>
+
+
+
+ <li class="menu-item">
+ <a href="/categories/gallery/">日记本</a>
+ </li>
+
+
+
+ <li class="menu-item">
+ <a href="/tags/Medicine/">医学</a>
+ </li>
+
+
+
+ <li class="menu-item">
+ <a href="/tags/Technique/">计算机科学</a>
+ </li>
+
+
+
+ <li class="menu-item">
+ <a href="/tags/Life/">生活</a>
+ </li>
+
+
+
+ <li class="menu-item">
+ <a href="/about">关于</a>
+ </li>
+
+
+
+ </ul>
+ </nav>
+ </div>
+ </div>
+</div>
+
+
+ <div class="main">
+ <div class="flex-container">
+ <div id="tag">
+
+
+ <p class="tag-title">
+ / <a href="/tag/">tags</a>
+ / <a href="">Technique</a> /
+ </p>
+ <div class="post-list">
+
+
+
+
+
+
+ <div class="year-title">2023</div>
+
+
+ <div class="post-list-item">
+ <div class="post-title">
+ <a href="/2023/08/15/Typed-Design-Patterns-for-the-Functional-Era/">
+
+ Typed Design Patterns for the Functional Era
+
+ </a>
+ </div>
+
+ <span class="post-date">Aug 15, 2023</span>
+ </div>
+
+
+
+
+
+
+
+ <div class="post-list-item">
+ <div class="post-title">
+ <a href="/2023/07/21/WiscKey-Separating-Keys-from-Values-in-SSD-conscious-Storage/">
+
+ WiscKey: Separating Keys from Values in SSD-conscious Storage
+
+ </a>
+ </div>
+
+ <span class="post-date">Jul 21, 2023</span>
+ </div>
+
+
+
+
+
+
+
+ <div class="post-list-item">
+ <div class="post-title">
+ <a href="/2023/06/28/%E9%9A%90%E8%97%8F%E4%B8%80%E4%BA%9BOCaml-Effect%E7%9A%84%E6%9C%BA%E5%88%B6%EF%BC%8C%E8%AE%A9%E5%85%B6%E8%AF%AD%E6%B3%95%E5%9C%A8%E7%B2%BE%E7%A5%9E%E4%B8%8A%E6%9B%B4%E6%8E%A5%E8%BF%91delimcc/">
+
+ 隐藏一些OCaml Effect的机制,让其语法在精神上更接近delimcc
+
+ </a>
+ </div>
+
+ <span class="post-date">Jun 28, 2023</span>
+ </div>
+
+
+
+
+
+
+
+ <div class="post-list-item">
+ <div class="post-title">
+ <a href="/2023/06/28/caml-release-runtime-system%E5%AF%BC%E8%87%B4%E7%9A%84%E6%AD%BB%E9%94%81%E9%97%AE%E9%A2%98/">
+
+ caml_release_runtime_system导致的死锁问题
+
+ </a>
+ </div>
+
+ <span class="post-date">Jun 28, 2023</span>
+ </div>
+
+
+ <div id="paginator">
+
+ <div class=paginator>
+ <div class="h-line-primary"></div>
+ <nav class="pagination">
+ <a class="page-number" href="/tags/Technique/">1</a><span class="page-number current">2</span>
+ </nav>
+ </div>
+
+ </div>
+</div>
+
+
+
+
+</div>
+ </div>
+ </div>
+
+ <div class="footer">
+ <div class="flex-container">
+ <div class="footer-text">
+
+
+ |
+
+
+ 希望路过的人可以添点柴火让这里暖和点
+
+ </div>
+ </div>
+</div>
+
+ </div>
+
+
+
+
+ </body>
+</html>