summaryrefslogtreecommitdiff
path: root/search.xml
diff options
context:
space:
mode:
authormuqiuhan <[email protected]>2024-07-23 09:37:53 +0000
committermuqiuhan <[email protected]>2024-07-23 09:37:53 +0000
commit36b0ed4c95ebe11a31dead7f776c93bec250a644 (patch)
tree3f52a9eadace91257936408a7afa12337b442a01 /search.xml
parent024925861b9edba81d04a22d4e868141d6fe09fe (diff)
downloadblog-36b0ed4c95ebe11a31dead7f776c93bec250a644.tar.gz
deploy: 9afb69c7ab5733a5b139f136983933a2e64ccdf7
Diffstat (limited to 'search.xml')
-rw-r--r--search.xml153
1 files changed, 125 insertions, 28 deletions
diff --git a/search.xml b/search.xml
index a31d3894..53329cad 100644
--- a/search.xml
+++ b/search.xml
@@ -616,6 +616,103 @@
</tags>
</entry>
<entry>
+ <title>OCaml News 2024-6</title>
+ <url>/2024/07/23/OCaml-News-2024-6/</url>
+ <content><![CDATA[<figure class="highlight plaintext"><table><tr><td class="code"><pre><span class="line"> ^o3</span><br><span class="line">~/\_/\_|)</span><br><span class="line">|/=_=\|</span><br><span class="line">&quot; &quot;</span><br></pre></td></tr></table></figure>
+
+<h2 id="语言的发展"><a href="#语言的发展" class="headerlink" title="语言的发展"></a>语言的发展</h2><ul>
+<li><p><a href="https://link.zhihu.com/?target=https://github.com/ocaml/ocaml/pull/13275">Modular explicits #13275</a></p>
+</li>
+<li><p><a href="https://link.zhihu.com/?target=https://github.com/ocaml/ocaml/pull/12828">Add short syntax for dependent functor types #12828</a></p>
+</li>
+<li><p><a href="https://link.zhihu.com/?target=https://github.com/ocaml/ocaml/pull/13310">Add Pair module to standard library #13310</a></p>
+</li>
+<li><p><a href="https://link.zhihu.com/?target=https://github.com/ocaml/ocaml/pull/13272">Allow maximum number of domains to be specified as a OCAMLRUNPARAM parameter #13272</a></p>
+</li>
+<li><p><a href="https://link.zhihu.com/?target=https://github.com/ocaml/ocaml/pull/13097">Immutable arrays #13097</a></p>
+</li>
+<li><p><a href="https://link.zhihu.com/?target=https://github.com/ocaml/ocaml/pull/13161">Restore native armv7 support for NetBSD 10.0 #13161</a></p>
+</li>
+<li><p><a href="https://link.zhihu.com/?target=https://github.com/ocaml/ocaml/pull/12309">Add effect syntax #12309</a></p>
+</li>
+<li><p><a href="https://link.zhihu.com/?target=https://github.com/ocaml/ocaml/pull/12114">Add ThreadSanitizer support #12114</a></p>
+</li>
+<li><p><a href="https://link.zhihu.com/?target=https://github.com/ocaml/ocaml/pull/13195">A new abstract data type of enumerations in Set.Make(Ord).Enum #13195</a></p>
+</li>
+<li><p><a href="https://link.zhihu.com/?target=https://github.com/ocaml/ocaml/pull/12871">Stdlib priority queues #12871</a></p>
+</li>
+<li><p><a href="https://link.zhihu.com/?target=https://github.com/ocaml/ocaml/pull/9080">Aliasing &#x3D;&#x3D; and !&#x3D; with explicit names #9080</a></p>
+</li>
+<li><p><a href="https://link.zhihu.com/?target=https://github.com/ocaml/ocaml/pull/12964">Memory cleanup at exit #12964</a></p>
+</li>
+<li><p><a href="https://link.zhihu.com/?target=https://github.com/ocaml/ocaml/pull/13169">A document type for error messages #13169</a></p>
+</li>
+<li><p><a href="https://link.zhihu.com/?target=https://github.com/ocaml/ocaml/pull/13318">Fix GC alarm regression #13318</a></p>
+</li>
+<li><p><a href="https://link.zhihu.com/?target=https://github.com/ocaml/ocaml/pull/13326">Implement O_APPEND on windows #13326</a></p>
+</li>
+<li><p><a href="https://link.zhihu.com/?target=https://github.com/ocaml/ocaml/pull/13296">Add missing functions from Array to Dynarray #13296</a></p>
+</li>
+<li><p><a href="https://link.zhihu.com/?target=https://github.com/ocaml/ocaml/pull/12182%23discussion_r1678134261">Improve the type clash error message #12182</a></p>
+</li>
+<li><p><a href="https://link.zhihu.com/?target=https://github.com/ocaml/ocaml/pull/12298">Emphasize that Bigarray.int refers to the OCaml int type, and not the C int type #12298</a></p>
+</li>
+<li><p><a href="https://link.zhihu.com/?target=https://discuss.ocaml.org/t/effects-with-lwt-a-dead-end-for-now/15002">Effects with Lwt, a dead end for now?</a></p>
+</li>
+<li><p><a href="https://link.zhihu.com/?target=https://discuss.ocaml.org/t/changes-in-handling-of-gc-parameters-and-alarms-in-5-2-0/14986">Changes in handling of Gc parameters and alarms in 5.2.0</a></p>
+</li>
+</ul>
+<h2 id="新消息"><a href="#新消息" class="headerlink" title="新消息"></a>新消息</h2><ul>
+<li><p><a href="https://link.zhihu.com/?target=https://discuss.ocaml.org/t/ann-mopsa-1-0-modular-open-platform-for-static-analysis/15013">[ANN] Mopsa 1.0 – Modular Open Platform for Static Analysis</a></p>
+</li>
+<li><p><a href="https://link.zhihu.com/?target=https://discuss.ocaml.org/t/ann-a-small-extension-of-bigarray-genarray-adding-iteration-mapping-and-folding/15005">[ANN] A small extension of Bigarray.Genarray adding iteration, mapping and folding</a></p>
+</li>
+<li><p><a href="https://link.zhihu.com/?target=https://discuss.ocaml.org/t/ann-cudajit-bindings-to-the-cuda-and-nvrtc-libraries/15010">[ANN] cudajit: Bindings to the <code>cuda</code> and <code>nvrtc</code> libraries</a></p>
+</li>
+<li><p><a href="https://link.zhihu.com/?target=https://discuss.ocaml.org/t/ann-ocaml-lsp-1-18-0/14952">[ANN] OCaml LSP 1.18.0</a></p>
+</li>
+<li><p><a href="https://link.zhihu.com/?target=https://discuss.ocaml.org/t/ann-ortac-0-3-0-dynamic-formal-verification-made-easy/14936">[ANN] Ortac 0.3.0 Dynamic formal verification made easy</a></p>
+</li>
+</ul>
+<h2 id="有价值的文章"><a href="#有价值的文章" class="headerlink" title="有价值的文章"></a>有价值的文章</h2><ul>
+<li><p><a href="https://link.zhihu.com/?target=https://hal.sorbonne-universite.fr/hal-02890500v1/document">Combinations of Reusable Abstract Domains for a Multilingual Static Analyzer</a></p>
+</li>
+<li><p><a href="https://link.zhihu.com/?target=https://fizzixnerd.com/blog/2024-07-21-fixing-living/">Fighting Mutation with Mutation in Living</a></p>
+</li>
+<li><p><a href="https://link.zhihu.com/?target=https://discuss.ocaml.org/t/type-system-and-polymorphic-lets/14990">Type system and polymorphic let’s</a></p>
+</li>
+<li><p><a href="https://link.zhihu.com/?target=https://discuss.ocaml.org/t/using-docusaurus-to-document-an-ocaml-project/13359">Using Docusaurus to document an OCaml project</a></p>
+</li>
+<li><p><a href="https://link.zhihu.com/?target=https://discuss.ocaml.org/t/exploring-the-docusaurus-odoc-combo/15012">Exploring the Docusaurus+Odoc combo</a><a href="https://link.zhihu.com/?target=https://discuss.ocaml.org/t/type-system-and-polymorphic-lets/14990">Type system and polymorphic let’s</a><a href="https://link.zhihu.com/?target=https://discuss.ocaml.org/t/exploring-the-docusaurus-odoc-combo/15012">Exploring the Docusaurus+Odoc combo</a></p>
+</li>
+<li><p><a href="https://link.zhihu.com/?target=https://fizzixnerd.com/blog/2024-07-11-a-possibly-safer-interface-to-the-ctypes-ffi/">A (Possibly) Safer Interface to the Ctypes FFI</a></p>
+</li>
+<li><p><a href="https://link.zhihu.com/?target=https://fizzixnerd.com/blog/2024-07-09-ocaml-ffi-sharp-edges-and-how-to-avoid-them/">OCaml FFI Sharp Edges – and How to Avoid them!</a></p>
+</li>
+</ul>
+<h2 id="有趣的项目"><a href="#有趣的项目" class="headerlink" title="有趣的项目"></a>有趣的项目</h2><ul>
+<li><p><a href="https://link.zhihu.com/?target=https://ocaml.libvirt.org/">ocaml-libvirt OCaml bindings for libvirt</a></p>
+</li>
+<li><p><a href="https://link.zhihu.com/?target=https://gitlab.com/mopsa/mopsa-analyzer/">Gitlab - MOPSA&#x2F;MOPSA analyzer: stands for Modular and Open Platform for Static Analysis.</a></p>
+</li>
+<li><p><a href="https://link.zhihu.com/?target=https://github.com/Heyji2/GenArrayIter">GitHub - Heyji2&#x2F;GenArrayIter: Adding iteration, mapping and folding to the ocaml BigArray.Genarrays module which provides arrays of arbitrary dimensions</a></p>
+</li>
+<li><p><a href="https://link.zhihu.com/?target=https://github.com/mbarbin/bopkit">GitHub - mbarbin&#x2F;bopkit: An educational project for digital circuits programming</a></p>
+</li>
+<li><p><a href="https://link.zhihu.com/?target=https://github.com/dx3mod/rpmfile">GitHub - dx3mod&#x2F;rpmfile: A library for reading metadata from RPM packages.</a></p>
+</li>
+<li><p><a href="https://link.zhihu.com/?target=https://github.com/gildor478/ocaml-fileutils">Github - gildor478&#x2F;ocaml-fileutils: OCaml API to manipulate real files (POSIX like) and filenames</a></p>
+</li>
+<li><p><a href="https://link.zhihu.com/?target=https://github.com/NathanReb/ocaml-api-watch">Github - NathanReb&#x2F;ocaml-api-watch: Libraries and tools to keep watch on you OCaml lib’s API changes</a></p>
+</li>
+</ul>
+]]></content>
+ <tags>
+ <tag>Technique</tag>
+ <tag>OCaml</tag>
+ </tags>
+ </entry>
+ <entry>
<title>Radiographic Absence of the Left Humeral Head</title>
<url>/2023/10/25/Radiographic-Absence-of-the-Left-Humeral-Head/</url>
<content><![CDATA[<p>A 67-year-old man with thoracolumbar scoliosis, poor mobility, and history of frequent falls presented to the emergency department with 2 months of left shoulder pain, stiffness and reduced range of motion, and numbness and paresthesias in his left upper extremity.</p>
@@ -637,34 +734,6 @@
</tags>
</entry>
<entry>
- <title>Rescript @genType import 问题</title>
- <url>/2024/05/20/Rescript-genType-import-%E9%97%AE%E9%A2%98/</url>
- <content><![CDATA[<p>Rescript 11 之后,<code>@genType</code> 被合并进编译器,无需任何依赖就能使用,当在 Rescript 中 <code>@genType</code> 了使用某些 Rescript built-in 的基本类型时,可能会生成有问题的 <code>import</code> 相关代码,例如:</p>
-<figure class="highlight plaintext"><table><tr><td class="code"><pre><span class="line">@genType</span><br><span class="line">module LoginResponse = &#123;</span><br><span class="line"> let status = response =&gt; &#123;</span><br><span class="line"> response</span><br><span class="line"> -&gt;Js.Json.decodeObject</span><br><span class="line"> -&gt;Option.flatMap(response =&gt; &#123;</span><br><span class="line"> response-&gt;Js_dict.get(&quot;status&quot;)</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>status</code> 函数具有 <code>Js.Json.t =&gt; option&lt;Js.Json.t&gt;</code> 类型,那么在生成的 TypeScript 文件中,会出现这样的 import:</p>
-<figure class="highlight typescript"><table><tr><td class="code"><pre><span class="line"><span class="keyword">import</span> <span class="keyword">type</span> &#123; <span class="title class_">Json</span>_t <span class="keyword">as</span> <span class="title class_">Js</span>_Json_t &#125; <span class="keyword">from</span> <span class="string">&quot;./Js.gen.tsx&quot;</span></span><br></pre></td></tr></table></figure>
-
-<p>而 <code>Js.gen.tsx</code> 这个文件是不存在的,解决方案是使用 <code>@genType</code> 的 <code>shim</code>:</p>
-<ul>
-<li><p>在 <code>rescript.json</code> 中的 <code>gentypeconfig</code> 中添加 <code>shim</code> 配置:</p>
-<figure class="highlight json"><table><tr><td class="code"><pre><span class="line">...</span><br><span class="line"><span class="attr">&quot;gentypeconfig&quot;</span><span class="punctuation">:</span> <span class="punctuation">&#123;</span></span><br><span class="line">...</span><br><span class="line"> <span class="attr">&quot;shims&quot;</span><span class="punctuation">:</span> <span class="punctuation">&#123;</span></span><br><span class="line"> <span class="attr">&quot;Js&quot;</span><span class="punctuation">:</span> <span class="string">&quot;Js&quot;</span></span><br><span class="line"> <span class="punctuation">&#125;</span><span class="punctuation">,</span></span><br><span class="line">...</span><br><span class="line"><span class="punctuation">&#125;</span></span><br><span class="line">...</span><br></pre></td></tr></table></figure>
-</li>
-<li><p>然后新建 <code>Js.shim.ts</code>:</p>
-<figure class="highlight typescript"><table><tr><td class="code"><pre><span class="line"><span class="keyword">export</span> <span class="keyword">type</span> <span class="title class_">Json</span>_t = <span class="built_in">unknown</span>;</span><br><span class="line"></span><br><span class="line"><span class="keyword">export</span> <span class="keyword">type</span> t = <span class="built_in">unknown</span>;</span><br><span class="line"></span><br><span class="line"><span class="keyword">export</span> <span class="keyword">type</span> <span class="title class_">Exn</span>_t = <span class="title class_">Error</span>;</span><br></pre></td></tr></table></figure>
-</li>
-<li><p>删除原来由 <code>@genType</code> 生成的 TypeScript 文件并重新生成</p>
-</li>
-</ul>
-<p>现在生成的 TypeScript 文件将会从 <code>Js.shim.ts</code> import 类型:</p>
-<figure class="highlight typescript"><table><tr><td class="code"><pre><span class="line"><span class="keyword">import</span> <span class="keyword">type</span> &#123;<span class="title class_">Json</span>_t <span class="keyword">as</span> <span class="title class_">Js</span>_Json_t&#125; <span class="keyword">from</span> <span class="string">&#x27;../../src/model/Js.shim.ts&#x27;</span>;</span><br></pre></td></tr></table></figure>
-]]></content>
- <tags>
- <tag>Technique</tag>
- <tag>Rescript</tag>
- </tags>
- </entry>
- <entry>
<title>Rescript and React Native</title>
<url>/2024/01/22/Rescript-React-Native/</url>
<content><![CDATA[<p>Rescript 对 React Native 的支持还算可以,但如今的 RN 已经是 Expo 的 RN 了,所以仍然有些落后,在这个 template 中,我测试了 rescript + rescript-react-native + expo + nativewind 的组合,可以跑起来:</p>
@@ -696,6 +765,34 @@
</tags>
</entry>
<entry>
+ <title>Rescript @genType import 问题</title>
+ <url>/2024/05/20/Rescript-genType-import-%E9%97%AE%E9%A2%98/</url>
+ <content><![CDATA[<p>Rescript 11 之后,<code>@genType</code> 被合并进编译器,无需任何依赖就能使用,当在 Rescript 中 <code>@genType</code> 了使用某些 Rescript built-in 的基本类型时,可能会生成有问题的 <code>import</code> 相关代码,例如:</p>
+<figure class="highlight plaintext"><table><tr><td class="code"><pre><span class="line">@genType</span><br><span class="line">module LoginResponse = &#123;</span><br><span class="line"> let status = response =&gt; &#123;</span><br><span class="line"> response</span><br><span class="line"> -&gt;Js.Json.decodeObject</span><br><span class="line"> -&gt;Option.flatMap(response =&gt; &#123;</span><br><span class="line"> response-&gt;Js_dict.get(&quot;status&quot;)</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>status</code> 函数具有 <code>Js.Json.t =&gt; option&lt;Js.Json.t&gt;</code> 类型,那么在生成的 TypeScript 文件中,会出现这样的 import:</p>
+<figure class="highlight typescript"><table><tr><td class="code"><pre><span class="line"><span class="keyword">import</span> <span class="keyword">type</span> &#123; <span class="title class_">Json</span>_t <span class="keyword">as</span> <span class="title class_">Js</span>_Json_t &#125; <span class="keyword">from</span> <span class="string">&quot;./Js.gen.tsx&quot;</span></span><br></pre></td></tr></table></figure>
+
+<p>而 <code>Js.gen.tsx</code> 这个文件是不存在的,解决方案是使用 <code>@genType</code> 的 <code>shim</code>:</p>
+<ul>
+<li><p>在 <code>rescript.json</code> 中的 <code>gentypeconfig</code> 中添加 <code>shim</code> 配置:</p>
+<figure class="highlight json"><table><tr><td class="code"><pre><span class="line">...</span><br><span class="line"><span class="attr">&quot;gentypeconfig&quot;</span><span class="punctuation">:</span> <span class="punctuation">&#123;</span></span><br><span class="line">...</span><br><span class="line"> <span class="attr">&quot;shims&quot;</span><span class="punctuation">:</span> <span class="punctuation">&#123;</span></span><br><span class="line"> <span class="attr">&quot;Js&quot;</span><span class="punctuation">:</span> <span class="string">&quot;Js&quot;</span></span><br><span class="line"> <span class="punctuation">&#125;</span><span class="punctuation">,</span></span><br><span class="line">...</span><br><span class="line"><span class="punctuation">&#125;</span></span><br><span class="line">...</span><br></pre></td></tr></table></figure>
+</li>
+<li><p>然后新建 <code>Js.shim.ts</code>:</p>
+<figure class="highlight typescript"><table><tr><td class="code"><pre><span class="line"><span class="keyword">export</span> <span class="keyword">type</span> <span class="title class_">Json</span>_t = <span class="built_in">unknown</span>;</span><br><span class="line"></span><br><span class="line"><span class="keyword">export</span> <span class="keyword">type</span> t = <span class="built_in">unknown</span>;</span><br><span class="line"></span><br><span class="line"><span class="keyword">export</span> <span class="keyword">type</span> <span class="title class_">Exn</span>_t = <span class="title class_">Error</span>;</span><br></pre></td></tr></table></figure>
+</li>
+<li><p>删除原来由 <code>@genType</code> 生成的 TypeScript 文件并重新生成</p>
+</li>
+</ul>
+<p>现在生成的 TypeScript 文件将会从 <code>Js.shim.ts</code> import 类型:</p>
+<figure class="highlight typescript"><table><tr><td class="code"><pre><span class="line"><span class="keyword">import</span> <span class="keyword">type</span> &#123;<span class="title class_">Json</span>_t <span class="keyword">as</span> <span class="title class_">Js</span>_Json_t&#125; <span class="keyword">from</span> <span class="string">&#x27;../../src/model/Js.shim.ts&#x27;</span>;</span><br></pre></td></tr></table></figure>
+]]></content>
+ <tags>
+ <tag>Technique</tag>
+ <tag>Rescript</tag>
+ </tags>
+ </entry>
+ <entry>
<title>Rust NewType 模式</title>
<url>/2023/05/03/Rust-NewType-%E6%A8%A1%E5%BC%8F/</url>
<content><![CDATA[<p>New Type模式是一种软件设计模式,用于在已有类型的基础上创建一个新的类型。在Rust中,这通常是通过<strong>定义一个结构体,其中只包含一个单一成员。这个结构体(New Type)对外提供了一个新的、独立的类型,用于对原始类型增加额外的语义或限制。</strong></p>