ちんちん
このコミットが含まれているのは:
コミット
30f7bcb8a8
118
gemini/blog.atom
118
gemini/blog.atom
|
@ -67,52 +67,53 @@ Pixivで、9割のイラストはNSFWですので、検閲として扱いま
|
||||||
|
|
||||||
|
|
||||||
<h2 id="zig">Zigとは?</h2>
|
<h2 id="zig">Zigとは?</h2>
|
||||||
<p><a href="https://ziglang.org/ja/">Zig</a>は隠された制御フローの無い、隠されたメモリ割り当ての無い、プリプロセッサの無い、マクロの無いシステムプログラミング用言語です。<br />
|
<p><a href="https://ziglang.org/ja/">Zig</a>は、隠れた制御フローや隠れたメモリ割り当て、プリプロセッサやマクロがないシステムプログラミング用言語です。<br />
|
||||||
アセンブリ言語よりZig言語の方が読みやすくて、C言語よりZig言語の方が細かい制御が有りますので、アセンブリ言語より高水準言語で、C言語より低水準言語です。<br />
|
アセンブリ言語よりも読みやすく、C言語よりも細かい制御が可能なため、アセンブリ言語よりは高水準でありながらC言語よりは低水準な言語と言えます。<br />
|
||||||
また、エラーを修正するまでエディターを終了するのは妨げさせるので、C言語より安全だと思います。<br />
|
エラーを修正するまでエディタを終了することを防ぐので、C言語より安全だと言えます。<br />
|
||||||
現時代のC言語に成るポテンシャルが非常に高いと思います。<br />
|
新世代のC言語になり得るポテンシャルが非常に高いと思います。<br />
|
||||||
新しい実験段階の言語なのに、主に日本人と中国人開発者で大人気みたいです。<br />
|
新しい言語ながら、特に日本人と中国人の開発者に人気があります。<br />
|
||||||
そうして、日本産のフォーク<a href="https://web.archive.org/web/20220201164721/https://zen-lang.org/ja-JP/community/">Zen言語</a>もありますが、<a href="https://www.gnu.org/proprietary/proprietary.ja.html">プロプライエタリ・ソフトウェア</a>ですので、あんま勧め出来ません。</p>
|
また、日本発の派生言語である<a href="https://web.archive.org/web/20220201164721/https://zen-lang.org/ja-JP/community/">Zen言語</a>もありますが、<a href="https://www.gnu.org/proprietary/proprietary.ja.html">プロプライエタリ・ソフトウェア</a>であるため、特に推奨はできません。</p>
|
||||||
<h2 id="rust">Rustとは?</h2>
|
<h2 id="rust">Rustとは?</h2>
|
||||||
<p><a href="https://www.rust-lang.org/ja/">Rust</a>はメモリ安全性とスレッド安全性が保証されるシステムプログラミング用言語です。<br />
|
<p><a href="https://www.rust-lang.org/ja/">Rust</a>は、メモリ安全性とスレッド安全性を保証するシステムプログラミング用の言語です。<br />
|
||||||
Rust言語でメモリ安全性とスレッド安全性が一番大切な点みたいです。<br />
|
Rustではメモリ安全性とスレッド安全性が重要なポイントとなっています。<br />
|
||||||
そうして、LinuxKernel6.1よりカーネルの中にRustコンパイラーが含められています。<br />
|
Linux Kernel 6.1以降ではカーネルにRustコンパイラが含まれています。<br />
|
||||||
低水準言語なのに、Rust言語はPythonという非常に高水準言語で作られたみたいです。<br />
|
低水準言語でありながら、Rustは非常に高水準な言語であるPythonで作られているようです。<br />
|
||||||
比べたら、Zig言語は現時代のC言語に成る目的で、Rust言語が現時代のC++言語に成る目的が有ります。<br />
|
比較すると、Zigが新世代のC言語に、Rustが新世代のC++言語になろうとしていると言えます。<br />
|
||||||
Rust言語は主に<a href="https://archive.is/IF1yS">LGBTというテロリスト</a>が多い欧米で大人気です。</p>
|
Rustは、特に<a href="https://archive.is/IF1yS">LGBTというテロリスト</a>が多くの欧米で大人気です。</p>
|
||||||
<h2 id="rust-1">Rustのメリット</h2>
|
<h2 id="rust-1">Rustのメリット</h2>
|
||||||
<ul>
|
<ul>
|
||||||
<li>落ちるソフトを創作しにくい</li>
|
<li>安定して動作するソフトウェアを作りやすい</li>
|
||||||
<li>大量のコミュニティがあり、サポートがいっぱい(<a href="https://youtube.owacon.moe/watch?v=DsBaC3_S-As">いっぱいおっぱい、僕元気♪</a>)</li>
|
<li>豊富なコミュニティと充実したサポート(<a href="https://youtube.owacon.moe/watch?v=DsBaC3_S-As">いっぱいおっぱい、僕元気♪</a>)</li>
|
||||||
<li>海外作業しているフリーランサーとして仕事が多い</li>
|
<li>海外で働くフリーランサーにとって、仕事が多い</li>
|
||||||
</ul>
|
</ul>
|
||||||
<h2 id="rust-2">Rustのデメリット</h2>
|
<h2 id="rust-2">Rustのデメリット</h2>
|
||||||
<ul>
|
<ul>
|
||||||
<li>BSD対応が無い(主にOpenBSDとNetBSD)</li>
|
<li>BSD(特にOpenBSDとNetBSD)に対応していない</li>
|
||||||
<li>みんなはCargoはNPMと同じく、全ての機能性は従属ソフトとして使われる</li>
|
<li>全ての機能性が従属ソフトとして扱われる</li>
|
||||||
<li>コンパイルは凄く遅い</li>
|
<li>コンパイルが非常に遅い</li>
|
||||||
<li>バイナリーサイズは大きすぎる(Go言語のバイナリーも大きすぎるけど、これは高水準言語だから、それの場合はわかる)</li>
|
<li>バイナリサイズが大きい(Go言語のバイナリも大きいが、それは高水準言語である為理解出来る)</li>
|
||||||
<li>変なライブラリーでリンカーされている(Zigのデメリットの下記から説明する)</li>
|
<li>奇妙なライブラリでリンクされている(Zigのデメリットの後で説明する)</li>
|
||||||
<li>大きな変化が速すぎる</li>
|
<li>大きな変化が速すぎる</li>
|
||||||
<li><a href="https://www.rust-lang.org/ja/policies/code-of-conduct">行動規範あり</a></li>
|
<li>大きな変更が頻繁に行われる</li>
|
||||||
<li><a href="https://www.rust-lang.org/ja/policies">法律のナンセンスが多すぎる</a></li>
|
<li><a href="https://www.rust-lang.org/ja/policies/code-of-conduct">行動規範が存在する</a></li>
|
||||||
|
<li><a href="https://www.rust-lang.org/ja/policies">法律に関する問題が多い</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
<h2 id="zig-1">Zigのメリット</h2>
|
<h2 id="zig-1">Zigのメリット</h2>
|
||||||
<ul>
|
<ul>
|
||||||
<li>書きやすい</li>
|
<li>書きやすい</li>
|
||||||
<li>テスト機能性が付いている</li>
|
<li>テスト機能が付いている</li>
|
||||||
<li><a href="/blog/c-lib-in-zig-use/">CとC++のライブラリーを使える</a></li>
|
<li><a href="/blog/c-lib-in-zig-use/">CとC++のライブラリを利用出来る</a></li>
|
||||||
<li>ZigコンパイラーはC言語やC++言語のコードもコンパイル出来る</li>
|
<li>ZigコンパイラはC言語やC++言語のコードもコンパイル出来る</li>
|
||||||
<li>保存しながらエラーを報告する</li>
|
<li>エラーを保存しながら報告する</li>
|
||||||
</ul>
|
</ul>
|
||||||
<h2 id="zig-2">Zigのデメリット</h2>
|
<h2 id="zig-2">Zigのデメリット</h2>
|
||||||
<ul>
|
<ul>
|
||||||
<li>実験段階ソフト</li>
|
<li>実験段階のソフト</li>
|
||||||
<li>使っている開発者は少ないから、サポートも少ない</li>
|
<li>利用者が少ない為、サポートも少ない</li>
|
||||||
<li>強制リンター</li>
|
<li>リンターが強制される</li>
|
||||||
<li><a href="https://raw.githubusercontent.com/ziglang/zig/master/.github/CODE_OF_CONDUCT.md">行動規範</a></li>
|
<li><a href="https://raw.githubusercontent.com/ziglang/zig/master/.github/CODE_OF_CONDUCT.md">行動規範が存在する</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
<h2 id="rustvszig">RustのバイナリーVSZigのバイナリー</h2>
|
<h2 id="rust-vs-zig">Rustのバイナリ VS Zigのバイナリ</h2>
|
||||||
<p>一緒にやりましょう!!</p>
|
<p>一緒にやりましょう!!</p>
|
||||||
<pre><code lang="">mkdir -p ~/tmp/<span style="color:#666">{</span>rust,zig<span style="color:#666">}</span>
|
<pre><code lang="">mkdir -p ~/tmp/<span style="color:#666">{</span>rust,zig<span style="color:#666">}</span>
|
||||||
<span style="color:#a2f">cd</span> ~/tmp/rust
|
<span style="color:#a2f">cd</span> ~/tmp/rust
|
||||||
|
@ -121,7 +122,7 @@ cargo build
|
||||||
<span style="color:#a2f">cd</span> ../zig
|
<span style="color:#a2f">cd</span> ../zig
|
||||||
zig init-exe
|
zig init-exe
|
||||||
zig build
|
zig build
|
||||||
</code></pre><h3 id="zig-3">まずはZigのバイナリーを確認する</h3>
|
</code></pre><h3 id="zig-3">まずはZigのバイナリを確認します</h3>
|
||||||
<pre><code lang=""><span style="color:#080;font-style:italic"># ./zig-out/bin/zig</span>
|
<pre><code lang=""><span style="color:#080;font-style:italic"># ./zig-out/bin/zig</span>
|
||||||
All your codebase are belong to us.
|
All your codebase are belong to us.
|
||||||
Run <span style="color:#b44">`</span>zig build <span style="color:#a2f">test</span><span style="color:#b44">`</span> to run the tests.
|
Run <span style="color:#b44">`</span>zig build <span style="color:#a2f">test</span><span style="color:#b44">`</span> to run the tests.
|
||||||
|
@ -134,13 +135,13 @@ Run <span style="color:#b44">`</span>zig build <span styl
|
||||||
|
|
||||||
<span style="color:#080;font-style:italic"># ldd ./zig-out/bin/zig</span>
|
<span style="color:#080;font-style:italic"># ldd ./zig-out/bin/zig</span>
|
||||||
動的実行ファイルではありません
|
動的実行ファイルではありません
|
||||||
</code></pre><p>静的バイナリー(バイナリーだけを別のパソコンにコピーしたら、きっと実行出来る事)なのに、962キビバイトだけですね。<br />
|
</code></pre><p>静的バイナリ(バイナリだけを別のコンピュータにコピーすれば、実行できる)でありながら、サイズはわずか962キビバイトです。<br />
|
||||||
でも、まだデバッグ情報が有りますね。<br />
|
しかし、まだデバッグ情報が含まれています。<br />
|
||||||
消したら、サイズはどうですか?</p>
|
それを削除すると、サイズはどうなるでしょう?</p>
|
||||||
<pre><code lang=""><span style="color:#080;font-style:italic"># strip ./zig-out/bin/zig &amp;&amp; ls -thal ./zig-out/bin/zig</span>
|
<pre><code lang=""><span style="color:#080;font-style:italic"># strip ./zig-out/bin/zig &amp;&amp; ls -thal ./zig-out/bin/zig</span>
|
||||||
-rwxr-xr-x <span style="color:#666">1</span> suwako suwako 374K 5月 <span style="color:#666">24</span> 20:42 ./zig-out/bin/zig
|
-rwxr-xr-x <span style="color:#666">1</span> suwako suwako 374K 5月 <span style="color:#666">24</span> 20:42 ./zig-out/bin/zig
|
||||||
</code></pre><p>バカみたいに小さいわね!!</p>
|
</code></pre><p>驚くほど小さいですね!</p>
|
||||||
<h3 id="rust-3">次はRustのバイナリー</h3>
|
<h3 id="rust-3">次はRustのバイナリ</h3>
|
||||||
<pre><code lang=""><span style="color:#080;font-style:italic"># ls -thal ./target/debug/rust</span>
|
<pre><code lang=""><span style="color:#080;font-style:italic"># ls -thal ./target/debug/rust</span>
|
||||||
-rwxr-xr-x <span style="color:#666">2</span> suwako suwako 9.5M 5月 <span style="color:#666">24</span> 20:16 ./target/debug/rust
|
-rwxr-xr-x <span style="color:#666">2</span> suwako suwako 9.5M 5月 <span style="color:#666">24</span> 20:16 ./target/debug/rust
|
||||||
|
|
||||||
|
@ -152,18 +153,17 @@ Run <span style="color:#b44">`</span>zig build <span styl
|
||||||
libgcc_s.so.1 <span style="color:#666">=</span>&gt; /usr/lib/libgcc_s.so.1 <span style="color:#666">(</span>0x00007fade07fd000<span style="color:#666">)</span>
|
libgcc_s.so.1 <span style="color:#666">=</span>&gt; /usr/lib/libgcc_s.so.1 <span style="color:#666">(</span>0x00007fade07fd000<span style="color:#666">)</span>
|
||||||
libc.so.6 <span style="color:#666">=</span>&gt; /usr/lib/libc.so.6 <span style="color:#666">(</span>0x00007fade0616000<span style="color:#666">)</span>
|
libc.so.6 <span style="color:#666">=</span>&gt; /usr/lib/libc.so.6 <span style="color:#666">(</span>0x00007fade0616000<span style="color:#666">)</span>
|
||||||
/lib64/ld-linux-x86-64.so.2 <span style="color:#666">=</span>&gt; /usr/lib64/ld-linux-x86-64.so.2 <span style="color:#666">(</span>0x00007fade08a4000<span style="color:#666">)</span>
|
/lib64/ld-linux-x86-64.so.2 <span style="color:#666">=</span>&gt; /usr/lib64/ld-linux-x86-64.so.2 <span style="color:#666">(</span>0x00007fade08a4000<span style="color:#666">)</span>
|
||||||
</code></pre><p>質問が有ります!!<br />
|
</code></pre><p>なぜlibcとlibgccを含めるのでしょうか?<br />
|
||||||
一体なぜlibcとlibgccを含めるの!?<br />
|
そして、「linux-vdso」とは何でしょうか?<br />
|
||||||
そうして、「linux-vdso」って何!?<br />
|
先に「奇妙な依存ソフトウェア」と述べた時、これを指していました。<br />
|
||||||
先に「変な従属ソフト」って言ったら、これと意味です。<br />
|
また、なぜ「Hello, World!」だけを出力するソフトウェアが9.5メビバイトも必要なのでしょう?<br />
|
||||||
そうして、なぜ「Hello, World!」だけを出力するソフトは9.5メビバイトなの!?<br />
|
Zigのバイナリは静的であることを覚えていますか?<br />
|
||||||
Zigのバイナリーは静的で覚えますか?<br />
|
Rustは動的であるため、さらに奇妙に感じます。</p>
|
||||||
Rustは動的ですので、もっとおかしいわ!!</p>
|
<p>デバッグ情報を削除すると…</p>
|
||||||
<p>デバッグ情報を消すと…</p>
|
|
||||||
<pre><code lang=""><span style="color:#080;font-style:italic"># strip ./target/debug/rust &amp;&amp; ls -thal ./target/debug/rust</span>
|
<pre><code lang=""><span style="color:#080;font-style:italic"># strip ./target/debug/rust &amp;&amp; ls -thal ./target/debug/rust</span>
|
||||||
-rwxr-xr-x <span style="color:#666">2</span> suwako suwako 319K 5月 <span style="color:#666">24</span> 20:50 ./target/debug/rust
|
-rwxr-xr-x <span style="color:#666">2</span> suwako suwako 319K 5月 <span style="color:#666">24</span> 20:50 ./target/debug/rust
|
||||||
</code></pre><p>今回は悪くないですね。<br />
|
</code></pre><p>結果はそこまで悪くありませんね。<br />
|
||||||
でも、動的バイナリーですので、他のパソコンにコピーすると、ライブラリーが別のフォルダー(又は存在しない)に入ったら、実行出来ません(例えば、Artixでコンパイルしたら、Devuanで実行出来ない可能性が高い)。</p>
|
しかし、バイナリは動的なので、他のコンピュータにコピーした場合、ライブラリが異なるフォルダに入っていたり、存在しない場合、実行できません(例えば、ArtixでコンパイルしたものがDevuanで実行できない可能性がある)。</p>
|
||||||
<p>以上</p>
|
<p>以上</p>
|
||||||
|
|
||||||
|
|
||||||
|
@ -212,7 +212,7 @@ Rustは動的ですので、もっとおかしいわ!!</p>
|
||||||
<entry>
|
<entry>
|
||||||
<id>blog/c-lib-in-zig-use.gmi</id>
|
<id>blog/c-lib-in-zig-use.gmi</id>
|
||||||
<author><name>凛</name></author>
|
<author><name>凛</name></author>
|
||||||
<title type="html">【プログラミング】Zig言語でC向けのライブラリーを使用する方法</title>
|
<title type="html">【プログラミング】Zig言語を使ってC向けのライブラリを利用する方法</title>
|
||||||
<published>2023-05-18T00:00:00Z</published>
|
<published>2023-05-18T00:00:00Z</published>
|
||||||
|
|
||||||
<category term="jp"></category>
|
<category term="jp"></category>
|
||||||
|
@ -232,15 +232,15 @@ Rustは動的ですので、もっとおかしいわ!!</p>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<p>ゲーム開発といえば、C++とか、Unityとか、Unrealとか等が思い出しますね。<br />
|
<p>ゲーム開発といえば、C++やUnity、Unreal等がが頭に浮かびますね。<br />
|
||||||
でも、Zigという新しい言語を使った方が良いと思います。<br />
|
しかし、新しい言語であるZigを使う事をお勧めします。<br />
|
||||||
しかし、新しい言語なら、必要なライブラリー(SDL、VulkanかOpenGL等)はまだ存在しませんね。<br />
|
新しい言語だからと言って、必要なライブラリ(SDL、VulkanやOpenGL等)は存在しないと思うかもしんが。心配は無用です。<br />
|
||||||
心配なく、Zig言語の大メリットは、C言語及びC++のライブラリーをそのまま使える事です!</p>
|
Zig言語の大きなメリットは、C言語及びC++のライブラリをそのまま利用出来る事です!</p>
|
||||||
<p><a href="https://repology.org/project/zig/versions">まずはZigコンパイラーをインストールして下さい。</a></p>
|
<p><a href="https://repology.org/project/zig/versions">まずはZigコンパイラをインストールしましょう。</a></p>
|
||||||
<pre><code lang="">mkdir zigdev <span style="color:#666">&amp;&amp;</span> <span style="color:#a2f">cd</span> zigdev
|
<pre><code lang="">mkdir zigdev <span style="color:#666">&amp;&amp;</span> <span style="color:#a2f">cd</span> zigdev
|
||||||
nvim main.zig
|
nvim main.zig
|
||||||
</code></pre><p>下記のソースコードを使っております。<br />
|
</code></pre><p>以下に示すソースコードを使用します。<br />
|
||||||
まずは確認して、何が起こる事を考えて下さい。</p>
|
まずは内容を確認し、何が起こるかを予想してみて下さい。</p>
|
||||||
<pre><code lang=""><span style="color:#a2f;font-weight:bold">const</span><span style="color:#bbb"> </span>std<span style="color:#bbb"> </span><span style="color:#666">=</span><span style="color:#bbb"> </span><span style="color:#a2f">@import</span>(<span style="color:#b44">&#34;std&#34;</span>);<span style="color:#bbb">
|
<pre><code lang=""><span style="color:#a2f;font-weight:bold">const</span><span style="color:#bbb"> </span>std<span style="color:#bbb"> </span><span style="color:#666">=</span><span style="color:#bbb"> </span><span style="color:#a2f">@import</span>(<span style="color:#b44">&#34;std&#34;</span>);<span style="color:#bbb">
|
||||||
</span><span style="color:#bbb"></span><span style="color:#a2f;font-weight:bold">const</span><span style="color:#bbb"> </span>c<span style="color:#bbb"> </span><span style="color:#666">=</span><span style="color:#bbb"> </span><span style="color:#a2f">@cImport</span>({<span style="color:#bbb">
|
</span><span style="color:#bbb"></span><span style="color:#a2f;font-weight:bold">const</span><span style="color:#bbb"> </span>c<span style="color:#bbb"> </span><span style="color:#666">=</span><span style="color:#bbb"> </span><span style="color:#a2f">@cImport</span>({<span style="color:#bbb">
|
||||||
</span><span style="color:#bbb"> </span><span style="color:#a2f">@cInclude</span>(<span style="color:#b44">&#34;SDL2/SDL.h&#34;</span>);<span style="color:#bbb">
|
</span><span style="color:#bbb"> </span><span style="color:#a2f">@cInclude</span>(<span style="color:#b44">&#34;SDL2/SDL.h&#34;</span>);<span style="color:#bbb">
|
||||||
|
@ -297,16 +297,16 @@ nvim main.zig
|
||||||
</span><span style="color:#bbb"> </span>}<span style="color:#bbb">
|
</span><span style="color:#bbb"> </span>}<span style="color:#bbb">
|
||||||
</span><span style="color:#bbb"></span>}<span style="color:#bbb">
|
</span><span style="color:#bbb"></span>}<span style="color:#bbb">
|
||||||
</span></code></pre><p><img src="https://ass.technicalsuwako.moe/Screenshot_20230518_215802.png" alt="" /></p>
|
</span></code></pre><p><img src="https://ass.technicalsuwako.moe/Screenshot_20230518_215802.png" alt="" /></p>
|
||||||
<p>特に下記のコードをご覧下さい。</p>
|
<p>特に以下のコードをご覧下さい。</p>
|
||||||
<pre><code lang=""><span style="color:#a2f;font-weight:bold">const</span><span style="color:#bbb"> </span>std<span style="color:#bbb"> </span><span style="color:#666">=</span><span style="color:#bbb"> </span><span style="color:#a2f">@import</span>(<span style="color:#b44">&#34;std&#34;</span>);<span style="color:#bbb">
|
<pre><code lang=""><span style="color:#a2f;font-weight:bold">const</span><span style="color:#bbb"> </span>std<span style="color:#bbb"> </span><span style="color:#666">=</span><span style="color:#bbb"> </span><span style="color:#a2f">@import</span>(<span style="color:#b44">&#34;std&#34;</span>);<span style="color:#bbb">
|
||||||
</span><span style="color:#bbb"></span><span style="color:#a2f;font-weight:bold">const</span><span style="color:#bbb"> </span>c<span style="color:#bbb"> </span><span style="color:#666">=</span><span style="color:#bbb"> </span><span style="color:#a2f">@cImport</span>({<span style="color:#bbb">
|
</span><span style="color:#bbb"></span><span style="color:#a2f;font-weight:bold">const</span><span style="color:#bbb"> </span>c<span style="color:#bbb"> </span><span style="color:#666">=</span><span style="color:#bbb"> </span><span style="color:#a2f">@cImport</span>({<span style="color:#bbb">
|
||||||
</span><span style="color:#bbb"> </span><span style="color:#a2f">@cInclude</span>(<span style="color:#b44">&#34;SDL2/SDL.h&#34;</span>);<span style="color:#bbb">
|
</span><span style="color:#bbb"> </span><span style="color:#a2f">@cInclude</span>(<span style="color:#b44">&#34;SDL2/SDL.h&#34;</span>);<span style="color:#bbb">
|
||||||
</span><span style="color:#bbb"></span>});<span style="color:#bbb">
|
</span><span style="color:#bbb"></span>});<span style="color:#bbb">
|
||||||
</span></code></pre><p>@importはZig言語のライブラリーのインクルードで、@cImportはC言語のライブラリーのインクルードです。<br />
|
</span></code></pre><p>@importはZig言語のライブラリーのインクルードする為の物で、@cImportはC言語のライブラリのインクルードする為の物です。<br />
|
||||||
<code lang="">#DEFINE</code>なら、<code lang="">@cDefine</code>となります。<br />
|
<code lang="">#DEFINE</code>と同じ役割を果たすのが、<code lang="">@cDefine</code>です。<br />
|
||||||
例えば:</p>
|
例えば:</p>
|
||||||
<pre><code lang=""><span style="color:#a2f">@cDefine</span>(<span style="color:#b44">&#34;_GNU_SOURCE&#34;</span>,<span style="color:#bbb"> </span>{})<span style="color:#bbb">
|
<pre><code lang=""><span style="color:#a2f">@cDefine</span>(<span style="color:#b44">&#34;_GNU_SOURCE&#34;</span>,<span style="color:#bbb"> </span>{})<span style="color:#bbb">
|
||||||
</span></code></pre><p>@cImportの後で、「c.なになに」でC言語の関数等を使えます。<br />
|
</span></code></pre><p>@cImportの後しろでは、「c.何々」でC言語の関数等を利用する事が出来ます。<br />
|
||||||
例えば:</p>
|
例えば:</p>
|
||||||
<pre><code lang=""><span style="color:#bbb"> </span><span style="color:#a2f;font-weight:bold">if</span><span style="color:#bbb"> </span>(c.SDL_Init(c.SDL_INIT_VIDEO)<span style="color:#bbb"> </span><span style="color:#666">!=</span><span style="color:#bbb"> </span><span style="color:#666">0</span>)<span style="color:#bbb"> </span>{<span style="color:#bbb">
|
<pre><code lang=""><span style="color:#bbb"> </span><span style="color:#a2f;font-weight:bold">if</span><span style="color:#bbb"> </span>(c.SDL_Init(c.SDL_INIT_VIDEO)<span style="color:#bbb"> </span><span style="color:#666">!=</span><span style="color:#bbb"> </span><span style="color:#666">0</span>)<span style="color:#bbb"> </span>{<span style="color:#bbb">
|
||||||
</span><span style="color:#bbb"> </span>c.SDL_Log(<span style="color:#b44">&#34;開始失敗: %s&#34;</span>,<span style="color:#bbb"> </span>c.SDL_GetError());<span style="color:#bbb">
|
</span><span style="color:#bbb"> </span>c.SDL_Log(<span style="color:#b44">&#34;開始失敗: %s&#34;</span>,<span style="color:#bbb"> </span>c.SDL_GetError());<span style="color:#bbb">
|
||||||
|
|
|
@ -5,7 +5,7 @@
|
||||||
=> /blog/libreredirect-262.gmi 2023年05月13日 【076】Libre Redirect 2.6.2登場
|
=> /blog/libreredirect-262.gmi 2023年05月13日 【076】Libre Redirect 2.6.2登場
|
||||||
=> /blog/diff-zig-rust.gmi 2023年05月24日 【プログラミング】RustとZigの違い
|
=> /blog/diff-zig-rust.gmi 2023年05月24日 【プログラミング】RustとZigの違い
|
||||||
=> /blog/spliti-110.gmi 2023年05月24日 【オワコンテック】spliti 1.1.0登場
|
=> /blog/spliti-110.gmi 2023年05月24日 【オワコンテック】spliti 1.1.0登場
|
||||||
=> /blog/c-lib-in-zig-use.gmi 2023年05月18日 【プログラミング】Zig言語でC向けのライブラリーを使用する方法
|
=> /blog/c-lib-in-zig-use.gmi 2023年05月18日 【プログラミング】Zig言語を使ってC向けのライブラリを利用する方法
|
||||||
=> /blog/urloli-210.gmi 2023年05月13日 【076】URLロリ 2.1.0登場
|
=> /blog/urloli-210.gmi 2023年05月13日 【076】URLロリ 2.1.0登場
|
||||||
=> /blog/urloli-202.gmi 2023年05月12日 【076】URLロリ 2.0.2登場
|
=> /blog/urloli-202.gmi 2023年05月12日 【076】URLロリ 2.0.2登場
|
||||||
=> /blog/urloli-201.gmi 2023年05月10日 【076】URLロリ 2.0.1登場
|
=> /blog/urloli-201.gmi 2023年05月10日 【076】URLロリ 2.0.1登場
|
||||||
|
|
|
@ -1,22 +1,22 @@
|
||||||
=> /blog.gmi ブログ一覧へ
|
=> /blog.gmi ブログ一覧へ
|
||||||
|
|
||||||
#【プログラミング】Zig言語でC向けのライブラリーを使用する方法
|
#【プログラミング】Zig言語を使ってC向けのライブラリを利用する方法
|
||||||
投稿日:2023-05-18
|
投稿日:2023-05-18
|
||||||
|
|
||||||
ゲーム開発といえば、C++とか、Unityとか、Unrealとか等が思い出しますね。
|
ゲーム開発といえば、C++やUnity、Unreal等がが頭に浮かびますね。
|
||||||
でも、Zigという新しい言語を使った方が良いと思います。
|
しかし、新しい言語であるZigを使う事をお勧めします。
|
||||||
しかし、新しい言語なら、必要なライブラリー(SDL、VulkanかOpenGL等)はまだ存在しませんね。
|
新しい言語だからと言って、必要なライブラリ(SDL、VulkanやOpenGL等)は存在しないと思うかもしんが。心配は無用です。
|
||||||
心配なく、Zig言語の大メリットは、C言語及びC++のライブラリーをそのまま使える事です!
|
Zig言語の大きなメリットは、C言語及びC++のライブラリをそのまま利用出来る事です!
|
||||||
|
|
||||||
=> https://repology.org/project/zig/versions まずはZigコンパイラーをインストールして下さい。
|
=> https://repology.org/project/zig/versions まずはZigコンパイラをインストールしましょう。
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
mkdir zigdev && cd zigdev
|
mkdir zigdev && cd zigdev
|
||||||
nvim main.zig
|
nvim main.zig
|
||||||
```
|
```
|
||||||
|
|
||||||
下記のソースコードを使っております。
|
以下に示すソースコードを使用します。
|
||||||
まずは確認して、何が起こる事を考えて下さい。
|
まずは内容を確認し、何が起こるかを予想してみて下さい。
|
||||||
|
|
||||||
```zig
|
```zig
|
||||||
const std = @import("std");
|
const std = @import("std");
|
||||||
|
@ -78,7 +78,7 @@ pub fn main() !void {
|
||||||
|
|
||||||
=> /static/Screenshot_20230518_215802.png
|
=> /static/Screenshot_20230518_215802.png
|
||||||
|
|
||||||
特に下記のコードをご覧下さい。
|
特に以下のコードをご覧下さい。
|
||||||
|
|
||||||
```zig
|
```zig
|
||||||
const std = @import("std");
|
const std = @import("std");
|
||||||
|
@ -87,15 +87,15 @@ const c = @cImport({
|
||||||
});
|
});
|
||||||
```
|
```
|
||||||
|
|
||||||
@importはZig言語のライブラリーのインクルードで、@cImportはC言語のライブラリーのインクルードです。
|
@importはZig言語のライブラリーのインクルードする為の物で、@cImportはC言語のライブラリのインクルードする為の物です。
|
||||||
`#DEFINE`なら、`@cDefine`となります。\
|
`#DEFINE`と同じ役割を果たすのが、`@cDefine`です。
|
||||||
例えば:
|
例えば:
|
||||||
|
|
||||||
```zig
|
```zig
|
||||||
@cDefine("_GNU_SOURCE", {})
|
@cDefine("_GNU_SOURCE", {})
|
||||||
```
|
```
|
||||||
|
|
||||||
@cImportの後で、「c.なになに」でC言語の関数等を使えます。
|
@cImportの後しろでは、「c.何々」でC言語の関数等を利用する事が出来ます。
|
||||||
例えば:
|
例えば:
|
||||||
|
|
||||||
```zig
|
```zig
|
||||||
|
|
|
@ -4,51 +4,51 @@
|
||||||
投稿日:2023-05-24
|
投稿日:2023-05-24
|
||||||
|
|
||||||
## Zigとは?
|
## Zigとは?
|
||||||
=> https://ziglang.org/ja/ Zigは隠された制御フローの無い、隠されたメモリ割り当ての無い、プリプロセッサの無い、マクロの無いシステムプログラミング用言語です。
|
=> https://ziglang.org/ja/ Zigは、隠れた制御フローや隠れたメモリ割り当て、プリプロセッサやマクロがないシステムプログラミング用言語です。
|
||||||
アセンブリ言語よりZig言語の方が読みやすくて、C言語よりZig言語の方が細かい制御が有りますので、アセンブリ言語より高水準言語で、C言語より低水準言語です。
|
アセンブリ言語よりも読みやすく、C言語よりも細かい制御が可能なため、アセンブリ言語よりは高水準でありながらC言語よりは低水準な言語と言えます。
|
||||||
また、エラーを修正するまでエディターを終了するのは妨げさせるので、C言語より安全だと思います。
|
エラーを修正するまでエディタを終了することを防ぐので、C言語より安全だと言えます。
|
||||||
現時代のC言語に成るポテンシャルが非常に高いと思います。
|
新世代のC言語になり得るポテンシャルが非常に高いと思います。
|
||||||
新しい実験段階の言語なのに、主に日本人と中国人開発者で大人気みたいです。
|
新しい言語ながら、特に日本人と中国人の開発者に人気があります。
|
||||||
=> https://web.archive.org/web/20220201164721/https://zen-lang.org/ja-JP/community/ そうして、日本産のフォークZen言語もありますが、
|
=> https://web.archive.org/web/20220201164721/https://zen-lang.org/ja-JP/community/ また、日本発の派生言語であるZen言語もありますが、
|
||||||
=> https://www.gnu.org/proprietary/proprietary.ja.html プロプライエタリ・ソフトウェアですので、あんま勧め出来ません。
|
=> https://www.gnu.org/proprietary/proprietary.ja.html プロプライエタリ・ソフトウェアであるため、特に推奨はできません。
|
||||||
|
|
||||||
## Rustとは?
|
## Rustとは?
|
||||||
=> https://www.rust-lang.org/ja/ Rustはメモリ安全性とスレッド安全性が保証されるシステムプログラミング用言語です。
|
=> https://www.rust-lang.org/ja/ Rustは、メモリ安全性とスレッド安全性を保証するシステムプログラミング用の言語です。
|
||||||
Rust言語でメモリ安全性とスレッド安全性が一番大切な点みたいです。
|
Rustではメモリ安全性とスレッド安全性が重要なポイントとなっています。
|
||||||
そうして、LinuxKernel6.1よりカーネルの中にRustコンパイラーが含められています。
|
Linux Kernel 6.1以降ではカーネルにRustコンパイラが含まれています。
|
||||||
低水準言語なのに、Rust言語はPythonという非常に高水準言語で作られたみたいです。
|
低水準言語でありながら、Rustは非常に高水準な言語であるPythonで作られているようです。
|
||||||
比べたら、Zig言語は現時代のC言語に成る目的で、Rust言語が現時代のC++言語に成る目的が有ります。
|
比較すると、Zigが新世代のC言語に、Rustが新世代のC++言語になろうとしていると言えます。
|
||||||
=> https://archive.is/IF1yS Rust言語は主にLGBTというテロリストが多い欧米で大人気です。
|
=> https://archive.is/IF1yS Rustは、特にLGBTというテロリストが多くの欧米で大人気です。
|
||||||
|
|
||||||
## Rustのメリット
|
## Rustのメリット
|
||||||
・落ちるソフトを創作しにくい
|
・安定して動作するソフトウェアを作りやすい
|
||||||
=> https://youtube.owacon.moe/watch?v=DsBaC3_S-As ・大量のコミュニティがあり、サポートがいっぱい(いっぱいおっぱい、僕元気♪)
|
=> https://youtube.owacon.moe/watch?v=DsBaC3_S-As ・豊富なコミュニティと充実したサポート(いっぱいおっぱい、僕元気♪)
|
||||||
・海外作業しているフリーランサーとして仕事が多い
|
・海外で働くフリーランサーにとって、仕事が多い
|
||||||
|
|
||||||
## Rustのデメリット
|
## Rustのデメリット
|
||||||
・BSD対応が無い(主にOpenBSDとNetBSD)
|
・BSD(特にOpenBSDとNetBSD)に対応していない
|
||||||
・みんなはCargoはNPMと同じく、全ての機能性は従属ソフトとして使われる
|
・全ての機能性が従属ソフトとして扱われる
|
||||||
・コンパイルは凄く遅い
|
・コンパイルが非常に遅い
|
||||||
・バイナリーサイズは大きすぎる(Go言語のバイナリーも大きすぎるけど、これは高水準言語だから、それの場合はわかる)
|
・バイナリサイズが大きい(Go言語のバイナリも大きいが、それは高水準言語である為理解出来る)
|
||||||
・変なライブラリーでリンカーされている(Zigのデメリットの下記から説明する)
|
・奇妙なライブラリでリンクされている(Zigのデメリットの後で説明する)
|
||||||
・大きな変化が速すぎる
|
・大きな変更が頻繁に行われる
|
||||||
=> https://www.rust-lang.org/ja/policies/code-of-conduct ・行動規範あり
|
=> https://www.rust-lang.org/ja/policies/code-of-conduct ・行動規範が存在する
|
||||||
=> https://www.rust-lang.org/ja/policies ・法律のナンセンスが多すぎる
|
=> https://www.rust-lang.org/ja/policies ・法律に関する問題が多い
|
||||||
|
|
||||||
## Zigのメリット
|
## Zigのメリット
|
||||||
・書きやすい
|
・書きやすい
|
||||||
・テスト機能性が付いている
|
・テスト機能が付いている
|
||||||
=> /blog/c-lib-in-zig-use.gmi ・CとC++のライブラリーを使える
|
=> /blog/c-lib-in-zig-use.gmi ・CとC++のライブラリを利用出来る
|
||||||
・ZigコンパイラーはC言語やC++言語のコードもコンパイル出来る
|
・ZigコンパイラはC言語やC++言語のコードもコンパイル出来る
|
||||||
・保存しながらエラーを報告する
|
・エラーを保存しながら報告する
|
||||||
|
|
||||||
## Zigのデメリット
|
## Zigのデメリット
|
||||||
・実験段階ソフト
|
・実験段階のソフト
|
||||||
・使っている開発者は少ないから、サポートも少ない
|
・利用者が少ない為、サポートも少ない
|
||||||
・強制リンター
|
・リンターが強制される
|
||||||
=> https://raw.githubusercontent.com/ziglang/zig/master/.github/CODE_OF_CONDUCT.md ・行動規範
|
=> https://raw.githubusercontent.com/ziglang/zig/master/.github/CODE_OF_CONDUCT.md ・行動規範が存在する
|
||||||
|
|
||||||
## RustのバイナリーVSZigのバイナリー
|
## Rustのバイナリ VS Zigのバイナリ
|
||||||
一緒にやりましょう!!
|
一緒にやりましょう!!
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
|
@ -61,7 +61,7 @@ zig init-exe
|
||||||
zig build
|
zig build
|
||||||
```
|
```
|
||||||
|
|
||||||
### まずはZigのバイナリーを確認する
|
### まずはZigのバイナリを確認します
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
# ./zig-out/bin/zig
|
# ./zig-out/bin/zig
|
||||||
|
@ -78,18 +78,18 @@ Run `zig build test` to run the tests.
|
||||||
動的実行ファイルではありません
|
動的実行ファイルではありません
|
||||||
```
|
```
|
||||||
|
|
||||||
静的バイナリー(バイナリーだけを別のパソコンにコピーしたら、きっと実行出来る事)なのに、962キビバイトだけですね。
|
静的バイナリ(バイナリだけを別のコンピュータにコピーすれば、実行できる)でありながら、サイズはわずか962キビバイトです。
|
||||||
でも、まだデバッグ情報が有りますね。
|
しかし、まだデバッグ情報が含まれています。
|
||||||
消したら、サイズはどうですか?
|
それを削除すると、サイズはどうなるでしょう?
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
# strip ./zig-out/bin/zig && ls -thal ./zig-out/bin/zig
|
# strip ./zig-out/bin/zig && ls -thal ./zig-out/bin/zig
|
||||||
-rwxr-xr-x 1 suwako suwako 374K 5月 24 20:42 ./zig-out/bin/zig
|
-rwxr-xr-x 1 suwako suwako 374K 5月 24 20:42 ./zig-out/bin/zig
|
||||||
```
|
```
|
||||||
|
|
||||||
バカみたいに小さいわね!!
|
驚くほど小さいですね!
|
||||||
|
|
||||||
### 次はRustのバイナリー
|
### 次はRustのバイナリ
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
# ls -thal ./target/debug/rust
|
# ls -thal ./target/debug/rust
|
||||||
|
@ -105,22 +105,21 @@ Run `zig build test` to run the tests.
|
||||||
/lib64/ld-linux-x86-64.so.2 => /usr/lib64/ld-linux-x86-64.so.2 (0x00007fade08a4000)
|
/lib64/ld-linux-x86-64.so.2 => /usr/lib64/ld-linux-x86-64.so.2 (0x00007fade08a4000)
|
||||||
```
|
```
|
||||||
|
|
||||||
質問が有ります!!
|
なぜlibcとlibgccを含めるのでしょうか?
|
||||||
一体なぜlibcとlibgccを含めるの!?
|
そして、「linux-vdso」とは何でしょうか?
|
||||||
そうして、「linux-vdso」って何!?
|
先に「奇妙な依存ソフトウェア」と述べた時、これを指していました。
|
||||||
先に「変な従属ソフト」って言ったら、これと意味です。
|
また、なぜ「Hello, World!」だけを出力するソフトウェアが9.5メビバイトも必要なのでしょう?
|
||||||
そうして、なぜ「Hello, World!」だけを出力するソフトは9.5メビバイトなの!?
|
Zigのバイナリは静的であることを覚えていますか?
|
||||||
Zigのバイナリーは静的で覚えますか?
|
Rustは動的であるため、さらに奇妙に感じます。
|
||||||
Rustは動的ですので、もっとおかしいわ!!
|
|
||||||
|
|
||||||
デバッグ情報を消すと…
|
デバッグ情報を削除すると…
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
# strip ./target/debug/rust && ls -thal ./target/debug/rust
|
# strip ./target/debug/rust && ls -thal ./target/debug/rust
|
||||||
-rwxr-xr-x 2 suwako suwako 319K 5月 24 20:50 ./target/debug/rust
|
-rwxr-xr-x 2 suwako suwako 319K 5月 24 20:50 ./target/debug/rust
|
||||||
```
|
```
|
||||||
|
|
||||||
今回は悪くないですね。
|
結果はそこまで悪くありませんね。
|
||||||
でも、動的バイナリーですので、他のパソコンにコピーすると、ライブラリーが別のフォルダー(又は存在しない)に入ったら、実行出来ません(例えば、Artixでコンパイルしたら、Devuanで実行出来ない可能性が高い)。
|
しかし、バイナリは動的なので、他のコンピュータにコピーした場合、ライブラリが異なるフォルダに入っていたり、存在しない場合、実行できません(例えば、ArtixでコンパイルしたものがDevuanで実行できない可能性がある)。
|
||||||
|
|
||||||
以上
|
以上
|
||||||
|
|
|
@ -3,150 +3,143 @@
|
||||||
#【デジタル監視】SDGsの危険性の紹介
|
#【デジタル監視】SDGsの危険性の紹介
|
||||||
投稿日:2022-07-19
|
投稿日:2022-07-19
|
||||||
|
|
||||||
=> http://ryocafe.i2p/blog/sdgs-dangerous/ For English version, click here.
|
最近、SDGsを採用している企業が増えてきました。
|
||||||
|
しかし、その中にはリスクが潜んでいることを認識していますか?
|
||||||
最近はSDGsは対応している会社は非常に増えているみたいです。
|
=> /blog/digital-autonomy-cashless-problem.gmi 2月に以下の画像を提示しましたが、詳細な説明はまだしていませんでした。
|
||||||
でも、危険性を知っていますか!?
|
|
||||||
=> /blog/digital-autonomy-cashless-problem.gmi 2月下記の画像を見せましたが、まだ詳しく説明しませんでした。
|
|
||||||
=> /static/SDGs.png
|
=> /static/SDGs.png
|
||||||
|
|
||||||
ですから、本日は各ゴールを説明しております。
|
それでは、本日は各ゴールを解説していきましょう。
|
||||||
|
|
||||||
## 1. 貧困をなくそう
|
## 1. 貧困をなくそう
|
||||||
|
|
||||||
実意味:共産実施
|
解釈:共産主義の導入
|
||||||
特に事業を営んだら、これは危険です。
|
特に事業を行う場合、これは危険な可能性があります。
|
||||||
共産主義の社会で、政府にコントロールされている会社しかないです。
|
共産主義の社会では、政府がすべての会社をコントロールしています。
|
||||||
日本の場合は、2030までAmazon、楽天、ソフトバンク、Google、マイクロソフト、Apple、及びNTTだけが残ります。
|
日本の場合、2030年までにAmazon、楽天、ソフトバンク、Google、マイクロソフト、Apple、そしてNTTだけが残り、他の会社はすべて倒産する可能性があります。
|
||||||
他の会社は全部倒産になります。
|
これを真剣に支持したいと思いますか?
|
||||||
本当にこれを応援したいでしょうか!?
|
|
||||||
|
|
||||||
## 2. 飢餓をゼロに
|
## 2. 飢餓をゼロに
|
||||||
|
|
||||||
実意味:遺伝子組換え生物(GMO)
|
解釈:遺伝子組み換え生物(GMO)の利用
|
||||||
食毒は多くなります。
|
食中毒のリスクが高まります。
|
||||||
病気な方が増えています。
|
健康問題が増えている現状も問題です。
|
||||||
10年前ヨーロッパの方は気づきましたので、これに対して戦いました。
|
10年前にヨーロッパでは、これに対する戦いが始まりました。
|
||||||
|
|
||||||
## 3. すべての人に健康と福祉を
|
## 3. すべての人に健康と福祉を
|
||||||
|
|
||||||
実意味:強制接種
|
解釈:強制的な接種
|
||||||
過去20年間以内、インドの方及びアフリカの方はワクチンの危険性を気づきました。
|
過去20年間で、インドやアフリカの人々はワクチンのリスクに気付きました。
|
||||||
ですからインドとアフリカでコロナワクチン接種率は低いです。
|
その結果、これらの地域でのコロナワクチン接種率は低いです。
|
||||||
誰も死にたくなくなりました。
|
誰も死を望んではいません。
|
||||||
|
|
||||||
## 4. 質の高い教育をみんなに
|
## 4. 質の高い教育をみんなに
|
||||||
|
|
||||||
実意味:インドクトリネーション
|
解釈:インドクトリネーション
|
||||||
学校で必要な物を勉強していません。
|
学校では必要な学問を学んでいません。
|
||||||
もしかして過去で本当に勉強しましたが、入学は簡単になったと、不要な物ばかりを勉強しになりました。
|
かつては真剣に勉強していましたが、入学が容易になり、不要な事柄ばかりを学ぶようになりました。
|
||||||
例えば、共産主義、(ア)ジェンダー、政府に従い等、良い社会の未来と全然関係ないでしょ!
|
例えば、共産主義、(ア)ジェンダー理論、政府への従順さなど、良い社会の未来とは全く関係ないと思いませんか?
|
||||||
|
|
||||||
## 5. ジェンダー平等を実現しよう
|
## 5. ジェンダー平等を実現しよう
|
||||||
|
|
||||||
実意味:核家族の終了
|
解釈:核家族の終焉
|
||||||
これを応援したら、日本の絶滅を応援しています。
|
これを支持すると、日本の衰退を助長することになります。
|
||||||
ジェンダー平等 = みんなはニューハーフ、同性愛者等に
|
ジェンダー平等が意味するものが全員がトランスジェンダーや同性愛者になることだとしたら、出生率が減少し、人口が減ることになります。
|
||||||
みんなはニューハーフ、同性愛者等に = 生む事が出来ない
|
|
||||||
生む事が出来ない = 人口は減る
|
|
||||||
|
|
||||||
## 6. 安全な水とトイレを世界中に
|
## 6. 安全な水とトイレを世界中に
|
||||||
|
|
||||||
実意味:水毒
|
解釈:水の汚染
|
||||||
フッ化物は毒です。
|
フッ化物は毒です。
|
||||||
これは色々の歯医者様は私にそう言われましたので、陰謀論ではありません。
|
これは多くの歯科医から教えられたことで、陰謀論ではありません。
|
||||||
フッ化物入っている水を飲むと、水毒にします。
|
フッ化物が含まれた水を飲む事が危険です。
|
||||||
|
|
||||||
## 7. エネルギーをみんなに、そしてクリーンに
|
## 7. エネルギーをみんなに、そしてクリーンに
|
||||||
|
|
||||||
実意味:エネルギー進歩殺し
|
解釈:エネルギー技術の抑制
|
||||||
自由に脳で考えたら、停電にされます。
|
自由に思考すると電力供給が停止させる可能性があります。
|
||||||
考えせず政府に従ったら、停電が起こりません。
|
政府に従うと停電が起こらないといった状況があります。
|
||||||
中国人は確かにこれをよくわかります。
|
これは特に中国人が理解しています。
|
||||||
=> /blog/digital-jisyu-own-or-permit.gmi ですから政治家にワクチンパスポートはそんなに大切ですね。
|
=> /blog/digital-jisyu-own-or-permit.gmi それが政治家たちがワクチンパスポートを強調する理由かもしれません。
|
||||||
|
|
||||||
## 8. 働きがいも経済成長も
|
## 8. 働きがいも経済成長も
|
||||||
|
|
||||||
実意味:負債奴隷化
|
解釈:負債の奴隷化
|
||||||
毎回不祥事発覚されたら、貴方の問題となります。
|
不祥事が明るみに出るたびに、それがあなたの問題となります。
|
||||||
例えば、「今の総理は知らせず習近平大統領に9000億円を払ったと発覚されましたので、緊急に消費税は10%→50%に上がります。消費税を下がる予定がありません。」という事が起こります。
|
例えば、「現総理が知らされずに習近平大統領に9000億円を支払ったと発覚したため、緊急に消費税が10%から50%に上がります。消費税を下げる予定はありません。」といった事態が発生する可能性があります。
|
||||||
|
|
||||||
## 9. 産業と技術革新の基盤をつくろう
|
## 9. 産業と技術革新の基盤をつくろう
|
||||||
|
|
||||||
実意味:個人交通機関禁止
|
解釈:個人交通手段の禁止
|
||||||
東アジアでほぼ問題がありませんが、それ以外は電車、バス等のシステムは本当に悪いです。
|
東アジアではほとんど問題ありませんが、それ以外の地域では公共交通のシステムは非常に劣悪です。
|
||||||
現在はヨーロッパで旅行中ですが、電車は理由無しで40分遅れる事が普通らしいです。
|
現在、ヨーロッパを旅行していますが、電車は理由もなく40分遅れることが普通だそうです。
|
||||||
バスの場合は1〜2時間が遅れる場合は普通です。
|
バスの場合、1〜2時間遅れるのが普通です。
|
||||||
ですから個人交通機関は禁止になったら、滅茶苦茶不便となります。
|
個人的な交通手段が禁止されると、非常に不便になります。
|
||||||
|
|
||||||
## 10. 人や国の不平等をなくそう
|
## 10. 人や国の不平等をなくそう
|
||||||
|
|
||||||
実意味:強制同調
|
解釈:強制的な同調
|
||||||
=> https://hozon.site/archive/1658230742/www3.nhk.or.jp/news/html/20220308/k10013519691000.html 侮辱罪の法律の実目的は何だと思いましたか?
|
=> https://hozon.site/archive/1658230742/www3.nhk.or.jp/news/html/20220308/k10013519691000.html 侮辱罪の真の目的は何だと思いますか?
|
||||||
=> https://elaws.e-gov.go.jp/document?lawid=321CONSTITUTION (因みに、第二十一条による憲法違反だ)
|
=> https://elaws.e-gov.go.jp/document?lawid=321CONSTITUTION (因みに憲法第二十一条に違反する)
|
||||||
侮辱出来ない = 表現の自由がない
|
侮辱できないと表現の自由がなくなり、それは検閲を意味します。
|
||||||
表現の自由がない = 検閲
|
検閲はデジタル奴隷制度を意味します。
|
||||||
検閲 = デジタル奴隷制度
|
|
||||||
|
|
||||||
## 11. 住み続けられるまちづくりを
|
## 11. 住み続けられるまちづくりを
|
||||||
|
|
||||||
実意味:デジタル監視
|
解釈:デジタル監視
|
||||||
いつでも自宅に居ると、監視社会はとても簡単となります。
|
常に自宅にいると、監視社会の構築が非常に容易になります。
|
||||||
=> /blog/digital-jisyu-own-or-permit.gmi 万が一出掛けたら、スマホであるワクパスにて監視を続けます。
|
=> /blog/digital-jisyu-own-or-permit.gmi もし外出すると、スマートフォン上のワクパスで監視が続けられます。
|
||||||
ですから、Alexa、AmazonRing等を持ったら、大至急捨てた方が良いですよ!
|
したがって、もしAlexa、Amazon Ringなどを持っているなら、速やかに処分した方が良いでしょう。
|
||||||
|
|
||||||
## 12. つくる責任 つかう責任
|
## 12. つくる責任 つかう責任
|
||||||
|
|
||||||
実意味:中央貨幣制度
|
解釈:中央銀行デジタル通貨制度
|
||||||
もうCBDCの危険性について報告しましたので、これについてお読み下さい。
|
すでにCBDCの危険性については報告していますので、詳細はそちらをご覧ください。
|
||||||
=> /blog/digital-autonomy-cashless-problem.gmi 1
|
=> /blog/digital-autonomy-cashless-problem.gmi 1
|
||||||
=> /blog/digital-dorei-blackcock-ceo-ukraina-hoax-real-agenda.gmi 2
|
=> /blog/digital-dorei-blackcock-ceo-ukraina-hoax-real-agenda.gmi 2
|
||||||
|
|
||||||
## 13. 気候変動に具体的な対策を
|
## 13. 気候変動に具体的な対策を
|
||||||
|
|
||||||
実意味:機構暴政
|
解釈:機関の暴政
|
||||||
気候変動は只の詐欺です。
|
気候変動は単なる詐欺です。
|
||||||
まじでまだ信じる方が居るのは本当にありえないです。
|
まだこれを信じている人がいるのは驚きです。
|
||||||
気温はいつでも変わります、毎11年間は増減されています。
|
気温は常に変化しており、毎11年ごとに変動しています。
|
||||||
気づきましたか?
|
気づきましたか?
|
||||||
毎回「気候変動」のプロパガンダがあれば、既にある税金が上がって、新しい税金が紹介されます。
|
「気候変動」のプロパガンダがあるたびに、既存の税金が上昇し、新しい税金が導入されます。
|
||||||
|
|
||||||
## 14. 海の豊かさを守ろう
|
## 14. 海の豊かさを守ろう
|
||||||
|
|
||||||
実意味:海洋コントロール
|
解釈:海洋管理
|
||||||
現在は誰も海洋がコントロールされていません。
|
現在、海洋は誰も管理していません。
|
||||||
コントロールされると、海に泳げない様になります。
|
海洋が管理されると、海泳ぎが制限されます。
|
||||||
自分で発見する事が無理となります。
|
自分で発見することができなくなります。
|
||||||
暴政されている国から逃げられない様になります。
|
暴政に支配された国から逃れることができなくなります。
|
||||||
キューバ人はよくわかります。
|
キューバ人はこれをよく理解しています。
|
||||||
|
|
||||||
## 15. 陸の豊かさも守ろう
|
## 15. 陸の豊かさも守ろう
|
||||||
|
|
||||||
実意味:地域コントロール
|
解釈:地域管理
|
||||||
自宅から5キロメートル以内で居る事が可能ですが、もっと遠くに行くと、警察官に止められます。
|
自宅から5キロメートル以内に留まることができますが、それ以上遠くに行こうとすると、警察に止められます。
|
||||||
ソビエト連邦(ポーランド以外)に住んだ方はこれがよく知っています。
|
ソビエト連邦(ポーランドを除く)に住んでいた人々はこれをよく理解しています。
|
||||||
オーストラリアとカナダの方もそれを知っています。
|
オーストラリア人やカナダ人もこれを理解しています。
|
||||||
暴政です!
|
これは暴政です。
|
||||||
|
|
||||||
## 16. 平和と公正をすべての人に
|
## 16. 平和と公正をすべての人に
|
||||||
|
|
||||||
実意味:不同意戦争
|
解釈:無差別戦争
|
||||||
中東諸国で見たら、直ぐ分かると思います。
|
中東を見ればすぐにわかります。
|
||||||
アメリカにより、「平和と公正を守る為に、差別せず爆撃しなきゃ」ですね。
|
アメリカは、「平和と公正を保つために、差別せずに爆撃する必要がある」と言います。
|
||||||
これはもう22年間そうです。
|
これはすでに22年間続いています。
|
||||||
SDGsの場合も異なりません。
|
SDGsの場合も同様です。
|
||||||
|
|
||||||
## 17. パートナーシップで目標を達成しよう
|
## 17. パートナーシップで目標を達成しよう
|
||||||
|
|
||||||
実意味:全世界政府
|
解釈:全世界政府
|
||||||
全世界政府があれば、各国々の文化は絶滅します。
|
今日までに、各国が独立していることは明らかでしょう。
|
||||||
全世界は最悪な文化、中共の文化、になります。
|
しかし、世界政府が設立されると、自国の立法府を無視して法律を制定することができます。
|
||||||
実際にパートナーシップと関係がありません。
|
これがEUで起きています。
|
||||||
|
|
||||||
=> /static/70991-and-neo-play-good-matrix-blue-youtube.png
|
=> /static/70991-and-neo-play-good-matrix-blue-youtube.png
|
||||||
|
|
||||||
上記を読んだら、SDGsを本当に応援して欲しいでしょうか?
|
これがSDGsの真の解釈と危険性です。
|
||||||
応援を辞めた方が良いですよ!
|
検討する価値があるでしょう。
|
||||||
大至急起きて下さい!!
|
|
||||||
|
|
||||||
以上
|
以上
|
||||||
|
|
|
@ -6,7 +6,7 @@
|
||||||
2023-05-30T00:00:00Z09:00 【076】Libre Redirect 2.6.2登場 - gemini://technicalsuwako.moe/blog/blog/libreredirect-262.gmi
|
2023-05-30T00:00:00Z09:00 【076】Libre Redirect 2.6.2登場 - gemini://technicalsuwako.moe/blog/blog/libreredirect-262.gmi
|
||||||
2023-05-24T21:00:00Z09:00 【プログラミング】RustとZigの違い - gemini://technicalsuwako.moe/blog/blog/diff-zig-rust.gmi
|
2023-05-24T21:00:00Z09:00 【プログラミング】RustとZigの違い - gemini://technicalsuwako.moe/blog/blog/diff-zig-rust.gmi
|
||||||
2023-05-24T00:00:00Z09:00 【オワコンテック】spliti 1.1.0登場 - gemini://technicalsuwako.moe/blog/blog/spliti-110.gmi
|
2023-05-24T00:00:00Z09:00 【オワコンテック】spliti 1.1.0登場 - gemini://technicalsuwako.moe/blog/blog/spliti-110.gmi
|
||||||
2023-05-18T00:00:00Z09:00 【プログラミング】Zig言語でC向けのライブラリーを使用する方法 - gemini://technicalsuwako.moe/blog/blog/c-lib-in-zig-use.gmi
|
2023-05-18T00:00:00Z09:00 【プログラミング】Zig言語を使ってC向けのライブラリを利用する方法 - gemini://technicalsuwako.moe/blog/blog/c-lib-in-zig-use.gmi
|
||||||
2023-05-13T00:00:00Z09:00 【076】URLロリ 2.1.0登場 - gemini://technicalsuwako.moe/blog/blog/urloli-210.gmi
|
2023-05-13T00:00:00Z09:00 【076】URLロリ 2.1.0登場 - gemini://technicalsuwako.moe/blog/blog/urloli-210.gmi
|
||||||
2023-05-12T00:00:00Z09:00 【076】URLロリ 2.0.2登場 - gemini://technicalsuwako.moe/blog/blog/urloli-202.gmi
|
2023-05-12T00:00:00Z09:00 【076】URLロリ 2.0.2登場 - gemini://technicalsuwako.moe/blog/blog/urloli-202.gmi
|
||||||
2023-05-10T17:45:00Z09:00 【076】URLロリ 2.0.1登場 - gemini://technicalsuwako.moe/blog/blog/urloli-201.gmi
|
2023-05-10T17:45:00Z09:00 【076】URLロリ 2.0.1登場 - gemini://technicalsuwako.moe/blog/blog/urloli-201.gmi
|
||||||
|
@ -16,7 +16,7 @@
|
||||||
2023-04-18T00:00:00Z09:00 【Crux】自分のポートとレポジトリを作り方 - gemini://technicalsuwako.moe/blog/blog/crux-make-port-repository.gmi
|
2023-04-18T00:00:00Z09:00 【Crux】自分のポートとレポジトリを作り方 - gemini://technicalsuwako.moe/blog/blog/crux-make-port-repository.gmi
|
||||||
2023-04-01T00:00:00Z09:00 【OpenBSD】xmodmapを使って英数(Caps Lock)キーをスーパーキーに変更する方法 - gemini://technicalsuwako.moe/blog/blog/openbsd-change-eisu-super.gmi
|
2023-04-01T00:00:00Z09:00 【OpenBSD】xmodmapを使って英数(Caps Lock)キーをスーパーキーに変更する方法 - gemini://technicalsuwako.moe/blog/blog/openbsd-change-eisu-super.gmi
|
||||||
2023-03-27T00:00:00Z09:00 【デジタル奴隷制度】低水準言語書ける方が消えたら、テクニカルな世界がおしまい - gemini://technicalsuwako.moe/blog/blog/digital-dorei-dont-die-low-lever-programing.gmi
|
2023-03-27T00:00:00Z09:00 【デジタル奴隷制度】低水準言語書ける方が消えたら、テクニカルな世界がおしまい - gemini://technicalsuwako.moe/blog/blog/digital-dorei-dont-die-low-lever-programing.gmi
|
||||||
2023-03-08T00:00:00Z09:00 【デジタル監視】プライバシーに一番危険な物は監視カメラ、二番はスマホ - gemini://technicalsuwako.moe/blog/blog/digital-kansi-most-danger-cctv.gmi
|
2023-03-08T00:00:00Z09:00 【デジタル監視】プライバシーに一番の脅威は監視カメラ、二番はスマホ - gemini://technicalsuwako.moe/blog/blog/digital-kansi-most-danger-cctv.gmi
|
||||||
2023-02-08T00:00:00Z09:00 【HTML】静的サイトジェネレーター利用せず簡単に静的サイト編集する方法 - gemini://technicalsuwako.moe/blog/blog/no-generator-easy-maintain.gmi
|
2023-02-08T00:00:00Z09:00 【HTML】静的サイトジェネレーター利用せず簡単に静的サイト編集する方法 - gemini://technicalsuwako.moe/blog/blog/no-generator-easy-maintain.gmi
|
||||||
2023-02-07T00:00:00Z09:00 【HTML】静的サイトジェネレーター利用せず簡単に静的サイト管理する方法 - gemini://technicalsuwako.moe/blog/blog/no-generator-easy-html.gmi
|
2023-02-07T00:00:00Z09:00 【HTML】静的サイトジェネレーター利用せず簡単に静的サイト管理する方法 - gemini://technicalsuwako.moe/blog/blog/no-generator-easy-html.gmi
|
||||||
2023-02-03T00:00:00Z09:00 【ハード】IBM ThinkPad T43にSSDを入る方法 - gemini://technicalsuwako.moe/blog/blog/thinkpad-t43-ssd-install-way.gmi
|
2023-02-03T00:00:00Z09:00 【ハード】IBM ThinkPad T43にSSDを入る方法 - gemini://technicalsuwako.moe/blog/blog/thinkpad-t43-ssd-install-way.gmi
|
||||||
|
|
|
@ -1,22 +1,22 @@
|
||||||
title: 【プログラミング】Zig言語でC向けのライブラリーを使用する方法
|
title: 【プログラミング】Zig言語を使ってC向けのライブラリを利用する方法
|
||||||
author: 凛
|
author: 凛
|
||||||
date: 2023-05-18
|
date: 2023-05-18
|
||||||
tags: jp,blog,ゲーム開発,Zig,C言語,SDL
|
tags: jp,blog,ゲーム開発,Zig,C言語,SDL
|
||||||
----
|
----
|
||||||
ゲーム開発といえば、C++とか、Unityとか、Unrealとか等が思い出しますね。\
|
ゲーム開発といえば、C++やUnity、Unreal等がが頭に浮かびますね。\
|
||||||
でも、Zigという新しい言語を使った方が良いと思います。\
|
しかし、新しい言語であるZigを使う事をお勧めします。\
|
||||||
しかし、新しい言語なら、必要なライブラリー(SDL、VulkanかOpenGL等)はまだ存在しませんね。\
|
新しい言語だからと言って、必要なライブラリ(SDL、VulkanやOpenGL等)は存在しないと思うかもしんが。心配は無用です。\
|
||||||
心配なく、Zig言語の大メリットは、C言語及びC++のライブラリーをそのまま使える事です!
|
Zig言語の大きなメリットは、C言語及びC++のライブラリをそのまま利用出来る事です!
|
||||||
|
|
||||||
[まずはZigコンパイラーをインストールして下さい。](https://repology.org/project/zig/versions)
|
[まずはZigコンパイラをインストールしましょう。](https://repology.org/project/zig/versions)
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
mkdir zigdev && cd zigdev
|
mkdir zigdev && cd zigdev
|
||||||
nvim main.zig
|
nvim main.zig
|
||||||
```
|
```
|
||||||
|
|
||||||
下記のソースコードを使っております。\
|
以下に示すソースコードを使用します。\
|
||||||
まずは確認して、何が起こる事を考えて下さい。
|
まずは内容を確認し、何が起こるかを予想してみて下さい。
|
||||||
|
|
||||||
```zig
|
```zig
|
||||||
const std = @import("std");
|
const std = @import("std");
|
||||||
|
@ -78,7 +78,7 @@ pub fn main() !void {
|
||||||
|
|
||||||
![](https://ass.technicalsuwako.moe/Screenshot_20230518_215802.png)
|
![](https://ass.technicalsuwako.moe/Screenshot_20230518_215802.png)
|
||||||
|
|
||||||
特に下記のコードをご覧下さい。
|
特に以下のコードをご覧下さい。
|
||||||
|
|
||||||
```zig
|
```zig
|
||||||
const std = @import("std");
|
const std = @import("std");
|
||||||
|
@ -87,15 +87,15 @@ const c = @cImport({
|
||||||
});
|
});
|
||||||
```
|
```
|
||||||
|
|
||||||
@importはZig言語のライブラリーのインクルードで、@cImportはC言語のライブラリーのインクルードです。\
|
@importはZig言語のライブラリーのインクルードする為の物で、@cImportはC言語のライブラリのインクルードする為の物です。\
|
||||||
`#DEFINE`なら、`@cDefine`となります。\
|
`#DEFINE`と同じ役割を果たすのが、`@cDefine`です。\
|
||||||
例えば:
|
例えば:
|
||||||
|
|
||||||
```zig
|
```zig
|
||||||
@cDefine("_GNU_SOURCE", {})
|
@cDefine("_GNU_SOURCE", {})
|
||||||
```
|
```
|
||||||
|
|
||||||
@cImportの後で、「c.なになに」でC言語の関数等を使えます。\
|
@cImportの後しろでは、「c.何々」でC言語の関数等を利用する事が出来ます。\
|
||||||
例えば:
|
例えば:
|
||||||
|
|
||||||
```zig
|
```zig
|
||||||
|
|
|
@ -4,50 +4,51 @@ date: 2023-05-24 21:00
|
||||||
tags: jp,blog,Zig,Rust,システム開発
|
tags: jp,blog,Zig,Rust,システム開発
|
||||||
----
|
----
|
||||||
## Zigとは?
|
## Zigとは?
|
||||||
[Zig](https://ziglang.org/ja/)は隠された制御フローの無い、隠されたメモリ割り当ての無い、プリプロセッサの無い、マクロの無いシステムプログラミング用言語です。\
|
[Zig](https://ziglang.org/ja/)は、隠れた制御フローや隠れたメモリ割り当て、プリプロセッサやマクロがないシステムプログラミング用言語です。\
|
||||||
アセンブリ言語よりZig言語の方が読みやすくて、C言語よりZig言語の方が細かい制御が有りますので、アセンブリ言語より高水準言語で、C言語より低水準言語です。\
|
アセンブリ言語よりも読みやすく、C言語よりも細かい制御が可能なため、アセンブリ言語よりは高水準でありながらC言語よりは低水準な言語と言えます。\
|
||||||
また、エラーを修正するまでエディターを終了するのは妨げさせるので、C言語より安全だと思います。\
|
エラーを修正するまでエディタを終了することを防ぐので、C言語より安全だと言えます。\
|
||||||
現時代のC言語に成るポテンシャルが非常に高いと思います。\
|
新世代のC言語になり得るポテンシャルが非常に高いと思います。\
|
||||||
新しい実験段階の言語なのに、主に日本人と中国人開発者で大人気みたいです。\
|
新しい言語ながら、特に日本人と中国人の開発者に人気があります。\
|
||||||
そうして、日本産のフォーク[Zen言語](https://web.archive.org/web/20220201164721/https://zen-lang.org/ja-JP/community/)もありますが、[プロプライエタリ・ソフトウェア](https://www.gnu.org/proprietary/proprietary.ja.html)ですので、あんま勧め出来ません。
|
また、日本発の派生言語である[Zen言語](https://web.archive.org/web/20220201164721/https://zen-lang.org/ja-JP/community/)もありますが、[プロプライエタリ・ソフトウェア](https://www.gnu.org/proprietary/proprietary.ja.html)であるため、特に推奨はできません。
|
||||||
|
|
||||||
## Rustとは?
|
## Rustとは?
|
||||||
[Rust](https://www.rust-lang.org/ja/)はメモリ安全性とスレッド安全性が保証されるシステムプログラミング用言語です。\
|
[Rust](https://www.rust-lang.org/ja/)は、メモリ安全性とスレッド安全性を保証するシステムプログラミング用の言語です。\
|
||||||
Rust言語でメモリ安全性とスレッド安全性が一番大切な点みたいです。\
|
Rustではメモリ安全性とスレッド安全性が重要なポイントとなっています。\
|
||||||
そうして、LinuxKernel6.1よりカーネルの中にRustコンパイラーが含められています。\
|
Linux Kernel 6.1以降ではカーネルにRustコンパイラが含まれています。\
|
||||||
低水準言語なのに、Rust言語はPythonという非常に高水準言語で作られたみたいです。\
|
低水準言語でありながら、Rustは非常に高水準な言語であるPythonで作られているようです。\
|
||||||
比べたら、Zig言語は現時代のC言語に成る目的で、Rust言語が現時代のC++言語に成る目的が有ります。\
|
比較すると、Zigが新世代のC言語に、Rustが新世代のC++言語になろうとしていると言えます。\
|
||||||
Rust言語は主に[LGBTというテロリスト](https://archive.is/IF1yS)が多い欧米で大人気です。
|
Rustは、特に[LGBTというテロリスト](https://archive.is/IF1yS)が多くの欧米で大人気です。
|
||||||
|
|
||||||
## Rustのメリット
|
## Rustのメリット
|
||||||
* 落ちるソフトを創作しにくい
|
* 安定して動作するソフトウェアを作りやすい
|
||||||
* 大量のコミュニティがあり、サポートがいっぱい([いっぱいおっぱい、僕元気♪](https://youtube.owacon.moe/watch?v=DsBaC3_S-As))
|
* 豊富なコミュニティと充実したサポート([いっぱいおっぱい、僕元気♪](https://youtube.owacon.moe/watch?v=DsBaC3_S-As))
|
||||||
* 海外作業しているフリーランサーとして仕事が多い
|
* 海外で働くフリーランサーにとって、仕事が多い
|
||||||
|
|
||||||
## Rustのデメリット
|
## Rustのデメリット
|
||||||
* BSD対応が無い(主にOpenBSDとNetBSD)
|
* BSD(特にOpenBSDとNetBSD)に対応していない
|
||||||
* みんなはCargoはNPMと同じく、全ての機能性は従属ソフトとして使われる
|
* 全ての機能性が従属ソフトとして扱われる
|
||||||
* コンパイルは凄く遅い
|
* コンパイルが非常に遅い
|
||||||
* バイナリーサイズは大きすぎる(Go言語のバイナリーも大きすぎるけど、これは高水準言語だから、それの場合はわかる)
|
* バイナリサイズが大きい(Go言語のバイナリも大きいが、それは高水準言語である為理解出来る)
|
||||||
* 変なライブラリーでリンカーされている(Zigのデメリットの下記から説明する)
|
* 奇妙なライブラリでリンクされている(Zigのデメリットの後で説明する)
|
||||||
* 大きな変化が速すぎる
|
* 大きな変化が速すぎる
|
||||||
* [行動規範あり](https://www.rust-lang.org/ja/policies/code-of-conduct)
|
* 大きな変更が頻繁に行われる
|
||||||
* [法律のナンセンスが多すぎる](https://www.rust-lang.org/ja/policies)
|
* [行動規範が存在する](https://www.rust-lang.org/ja/policies/code-of-conduct)
|
||||||
|
* [法律に関する問題が多い](https://www.rust-lang.org/ja/policies)
|
||||||
|
|
||||||
## Zigのメリット
|
## Zigのメリット
|
||||||
* 書きやすい
|
* 書きやすい
|
||||||
* テスト機能性が付いている
|
* テスト機能が付いている
|
||||||
* [CとC++のライブラリーを使える](/blog/c-lib-in-zig-use/)
|
* [CとC++のライブラリを利用出来る](/blog/c-lib-in-zig-use/)
|
||||||
* ZigコンパイラーはC言語やC++言語のコードもコンパイル出来る
|
* ZigコンパイラはC言語やC++言語のコードもコンパイル出来る
|
||||||
* 保存しながらエラーを報告する
|
* エラーを保存しながら報告する
|
||||||
|
|
||||||
## Zigのデメリット
|
## Zigのデメリット
|
||||||
* 実験段階ソフト
|
* 実験段階のソフト
|
||||||
* 使っている開発者は少ないから、サポートも少ない
|
* 利用者が少ない為、サポートも少ない
|
||||||
* 強制リンター
|
* リンターが強制される
|
||||||
* [行動規範](https://raw.githubusercontent.com/ziglang/zig/master/.github/CODE_OF_CONDUCT.md)
|
* [行動規範が存在する](https://raw.githubusercontent.com/ziglang/zig/master/.github/CODE_OF_CONDUCT.md)
|
||||||
|
|
||||||
## RustのバイナリーVSZigのバイナリー
|
## Rustのバイナリ VS Zigのバイナリ
|
||||||
一緒にやりましょう!!
|
一緒にやりましょう!!
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
|
@ -60,7 +61,7 @@ zig init-exe
|
||||||
zig build
|
zig build
|
||||||
```
|
```
|
||||||
|
|
||||||
### まずはZigのバイナリーを確認する
|
### まずはZigのバイナリを確認します
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
# ./zig-out/bin/zig
|
# ./zig-out/bin/zig
|
||||||
|
@ -77,18 +78,18 @@ Run `zig build test` to run the tests.
|
||||||
動的実行ファイルではありません
|
動的実行ファイルではありません
|
||||||
```
|
```
|
||||||
|
|
||||||
静的バイナリー(バイナリーだけを別のパソコンにコピーしたら、きっと実行出来る事)なのに、962キビバイトだけですね。\
|
静的バイナリ(バイナリだけを別のコンピュータにコピーすれば、実行できる)でありながら、サイズはわずか962キビバイトです。\
|
||||||
でも、まだデバッグ情報が有りますね。\
|
しかし、まだデバッグ情報が含まれています。\
|
||||||
消したら、サイズはどうですか?
|
それを削除すると、サイズはどうなるでしょう?
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
# strip ./zig-out/bin/zig && ls -thal ./zig-out/bin/zig
|
# strip ./zig-out/bin/zig && ls -thal ./zig-out/bin/zig
|
||||||
-rwxr-xr-x 1 suwako suwako 374K 5月 24 20:42 ./zig-out/bin/zig
|
-rwxr-xr-x 1 suwako suwako 374K 5月 24 20:42 ./zig-out/bin/zig
|
||||||
```
|
```
|
||||||
|
|
||||||
バカみたいに小さいわね!!
|
驚くほど小さいですね!
|
||||||
|
|
||||||
### 次はRustのバイナリー
|
### 次はRustのバイナリ
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
# ls -thal ./target/debug/rust
|
# ls -thal ./target/debug/rust
|
||||||
|
@ -104,22 +105,21 @@ Run `zig build test` to run the tests.
|
||||||
/lib64/ld-linux-x86-64.so.2 => /usr/lib64/ld-linux-x86-64.so.2 (0x00007fade08a4000)
|
/lib64/ld-linux-x86-64.so.2 => /usr/lib64/ld-linux-x86-64.so.2 (0x00007fade08a4000)
|
||||||
```
|
```
|
||||||
|
|
||||||
質問が有ります!!\
|
なぜlibcとlibgccを含めるのでしょうか?\
|
||||||
一体なぜlibcとlibgccを含めるの!?\
|
そして、「linux-vdso」とは何でしょうか?\
|
||||||
そうして、「linux-vdso」って何!?\
|
先に「奇妙な依存ソフトウェア」と述べた時、これを指していました。\
|
||||||
先に「変な従属ソフト」って言ったら、これと意味です。\
|
また、なぜ「Hello, World!」だけを出力するソフトウェアが9.5メビバイトも必要なのでしょう?\
|
||||||
そうして、なぜ「Hello, World!」だけを出力するソフトは9.5メビバイトなの!?\
|
Zigのバイナリは静的であることを覚えていますか?\
|
||||||
Zigのバイナリーは静的で覚えますか?\
|
Rustは動的であるため、さらに奇妙に感じます。
|
||||||
Rustは動的ですので、もっとおかしいわ!!
|
|
||||||
|
|
||||||
デバッグ情報を消すと…
|
デバッグ情報を削除すると…
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
# strip ./target/debug/rust && ls -thal ./target/debug/rust
|
# strip ./target/debug/rust && ls -thal ./target/debug/rust
|
||||||
-rwxr-xr-x 2 suwako suwako 319K 5月 24 20:50 ./target/debug/rust
|
-rwxr-xr-x 2 suwako suwako 319K 5月 24 20:50 ./target/debug/rust
|
||||||
```
|
```
|
||||||
|
|
||||||
今回は悪くないですね。\
|
結果はそこまで悪くありませんね。\
|
||||||
でも、動的バイナリーですので、他のパソコンにコピーすると、ライブラリーが別のフォルダー(又は存在しない)に入ったら、実行出来ません(例えば、Artixでコンパイルしたら、Devuanで実行出来ない可能性が高い)。
|
しかし、バイナリは動的なので、他のコンピュータにコピーした場合、ライブラリが異なるフォルダに入っていたり、存在しない場合、実行できません(例えば、ArtixでコンパイルしたものがDevuanで実行できない可能性がある)。
|
||||||
|
|
||||||
以上
|
以上
|
||||||
|
|
|
@ -3,147 +3,140 @@ author: 凜
|
||||||
date: 2022-07-19
|
date: 2022-07-19
|
||||||
tags: jp,blog,デジタル監視,詐欺,自由
|
tags: jp,blog,デジタル監視,詐欺,自由
|
||||||
----
|
----
|
||||||
[For English version, click here.](https://ryocafe.site/blog/sdgs-dangerous/)
|
最近、SDGsを採用している企業が増えてきました。\
|
||||||
|
しかし、その中にはリスクが潜んでいることを認識していますか?\
|
||||||
最近はSDGsは対応している会社は非常に増えているみたいです。\
|
[2月](/blog/digital-autonomy-cashless-problem/)に以下の画像を提示しましたが、詳細な説明はまだしていませんでした。\
|
||||||
でも、危険性を知っていますか!?\
|
|
||||||
[2月](/blog/digital-autonomy-cashless-problem/)下記の画像を見せましたが、まだ詳しく説明しませんでした。\
|
|
||||||
![](https://ass.technicalsuwako.moe/SDGs.png)
|
![](https://ass.technicalsuwako.moe/SDGs.png)
|
||||||
|
|
||||||
ですから、本日は各ゴールを説明しております。
|
それでは、本日は各ゴールを解説していきましょう。
|
||||||
|
|
||||||
## 1. 貧困をなくそう
|
## 1. 貧困をなくそう
|
||||||
|
|
||||||
実意味:共産実施\
|
解釈:共産主義の導入\
|
||||||
特に事業を営んだら、これは危険です。\
|
特に事業を行う場合、これは危険な可能性があります。\
|
||||||
共産主義の社会で、政府にコントロールされている会社しかないです。\
|
共産主義の社会では、政府がすべての会社をコントロールしていまです。\
|
||||||
日本の場合は、2030までAmazon、楽天、ソフトバンク、Google、マイクロソフト、Apple、及びNTTだけが残ります。\
|
日本の場合、2030年までにAmazon、楽天、ソフトバンク、Google、マイクロソフト、Apple、そしてNTTだけが残り、他の会社はすべて倒産する可能性があります。\
|
||||||
他の会社は全部倒産になります。\
|
これを真剣に支持したいと思いますか?
|
||||||
本当にこれを応援したいでしょうか!?
|
|
||||||
|
|
||||||
## 2. 飢餓をゼロに
|
## 2. 飢餓をゼロに
|
||||||
|
|
||||||
実意味:遺伝子組換え生物(GMO)\
|
解釈:遺伝子組み換え生物(GMO)の利用\
|
||||||
食毒は多くなります。\
|
食中毒のリスクが高まります。\
|
||||||
病気な方が増えています。\
|
健康問題が増えている現状も問題です。\
|
||||||
10年前ヨーロッパの方は気づきましたので、これに対して戦いました。
|
10年前にヨーロッパでは、これに対する戦いが始まりました。
|
||||||
|
|
||||||
## 3. すべての人に健康と福祉を
|
## 3. すべての人に健康と福祉を
|
||||||
|
|
||||||
実意味:強制接種\
|
解釈:強制的な接種\
|
||||||
過去20年間以内、インドの方及びアフリカの方はワクチンの危険性を気づきました。\
|
過去20年間で、インドやアフリカの人々はワクチンのリスクに気付きました。\
|
||||||
ですからインドとアフリカでコロナワクチン接種率は低いです。\
|
その結果、これらの地域でのコロナワクチン接種率は低いです。\
|
||||||
誰も死にたくなくなりました。
|
誰も死を望んではいません。
|
||||||
|
|
||||||
## 4. 質の高い教育をみんなに
|
## 4. 質の高い教育をみんなに
|
||||||
|
|
||||||
実意味:インドクトリネーション\
|
解釈:インドクトリネーション\
|
||||||
学校で必要な物を勉強していません。\
|
学校では必要な学問を学んでいません。\
|
||||||
もしかして過去で本当に勉強しましたが、入学は簡単になったと、不要な物ばかりを勉強しになりました。\
|
かつては真剣に勉強していましたが、入学が容易になり、不要な事柄ばかりを学ぶようになりました。\
|
||||||
例えば、共産主義、(ア)ジェンダー、政府に従い等、良い社会の未来と全然関係ないでしょ!
|
例えば、共産主義、(ア)ジェンダー理論、政府への従順さなど、良い社会の未来とは全く関係ないと思いませんか?
|
||||||
|
|
||||||
## 5. ジェンダー平等を実現しよう
|
## 5. ジェンダー平等を実現しよう
|
||||||
|
|
||||||
実意味:核家族の終了\
|
解釈:核家族の終焉\
|
||||||
これを応援したら、日本の絶滅を応援しています。\
|
これを支持すると、日本の衰退を助長することになります。\
|
||||||
ジェンダー平等 = みんなはニューハーフ、同性愛者等に\
|
ジェンダー平等が意味するものが全員がトランスジェンダーや同性愛者になることだとしたら、出生率が減少し、人口が減ることになります。
|
||||||
みんなはニューハーフ、同性愛者等に = 生む事が出来ない\
|
|
||||||
生む事が出来ない = 人口は減る
|
|
||||||
|
|
||||||
## 6. 安全な水とトイレを世界中に
|
## 6. 安全な水とトイレを世界中に
|
||||||
|
|
||||||
実意味:水毒\
|
解釈:水の汚染\
|
||||||
フッ化物は毒です。\
|
フッ化物は毒です。\
|
||||||
これは色々の歯医者様は私にそう言われましたので、陰謀論ではありません。\
|
これは多くの歯科医から教えられたことで、陰謀論ではありません。\
|
||||||
フッ化物入っている水を飲むと、水毒にします。
|
フッ化物が含まれた水を飲む事が危険です。
|
||||||
|
|
||||||
## 7. エネルギーをみんなに、そしてクリーンに
|
## 7. エネルギーをみんなに、そしてクリーンに
|
||||||
|
|
||||||
実意味:エネルギー進歩殺し\
|
解釈:エネルギー技術の抑制\
|
||||||
自由に脳で考えたら、停電にされます。\
|
自由に思考すると電力供給が停止させる可能性があります。\
|
||||||
考えせず政府に従ったら、停電が起こりません。\
|
政府に従うと停電が起こらないといった状況があります。\
|
||||||
中国人は確かにこれをよくわかります。\
|
これは特に中国人が理解しています。\
|
||||||
ですから政治家に[ワクチンパスポート](/blog/digital-jisyu-own-or-permit/)はそんなに大切ですね。
|
それが政治家たちが[ワクチンパスポート](/blog/digital-jisyu-own-or-permit/)を強調する理由かもしれません。
|
||||||
|
|
||||||
## 8. 働きがいも経済成長も
|
## 8. 働きがいも経済成長も
|
||||||
|
|
||||||
実意味:負債奴隷化\
|
解釈:負債の奴隷化\
|
||||||
毎回不祥事発覚されたら、貴方の問題となります。\
|
不祥事が明るみに出るたびに、それがあなたの問題となります。\
|
||||||
例えば、「今の総理は知らせず習近平大統領に9000億円を払ったと発覚されましたので、緊急に消費税は10%→50%に上がります。消費税を下がる予定がありません。」という事が起こります。
|
例えば、「現総理が知らされずに習近平大統領に9000億円を支払ったと発覚したため、緊急に消費税が10%から50%に上がります。消費税を下げる予定はありません。」といった事態が発生する可能性があります。
|
||||||
|
|
||||||
## 9. 産業と技術革新の基盤をつくろう
|
## 9. 産業と技術革新の基盤をつくろう
|
||||||
|
|
||||||
実意味:個人交通機関禁止\
|
解釈:個人交通手段の禁止\
|
||||||
東アジアでほぼ問題がありませんが、それ以外は電車、バス等のシステムは本当に悪いです。\
|
東アジアではほとんど問題ありませんが、それ以外の地域では公共交通のシステムは非常に劣悪です。\
|
||||||
現在はヨーロッパで旅行中ですが、電車は理由無しで40分遅れる事が普通らしいです。\
|
現在、ヨーロッパを旅行していますが、電車は理由もなく40分遅れることが普通だそうです。\
|
||||||
バスの場合は1〜2時間が遅れる場合は普通です。\
|
バスの場合、1〜2時間遅れるのが普通です。\
|
||||||
ですから個人交通機関は禁止になったら、滅茶苦茶不便となります。
|
個人的な交通手段が禁止されると、非常に不便になります。
|
||||||
|
|
||||||
## 10. 人や国の不平等をなくそう
|
## 10. 人や国の不平等をなくそう
|
||||||
|
|
||||||
実意味:強制同調\
|
解釈:強制的な同調\
|
||||||
[侮辱罪の法律](https://hozon.site/archive/1658230742/www3.nhk.or.jp/news/html/20220308/k10013519691000.html)(因みに、[第二十一条による憲法違反](https://elaws.e-gov.go.jp/document?lawid=321CONSTITUTION)だ)の実目的は何だと思いましたか?\
|
[侮辱罪](https://hozon.site/archive/1658230742/www3.nhk.or.jp/news/html/20220308/k10013519691000.html)(因みに[憲法第二十一条に違反する](https://elaws.e-gov.go.jp/document?lawid=321CONSTITUTION))の真の目的は何だと思いますか?\
|
||||||
侮辱出来ない = 表現の自由がない\
|
侮辱できないと表現の自由がなくなり、それは検閲を意味します。\
|
||||||
表現の自由がない = 検閲\
|
検閲はデジタル奴隷制度を意味します。
|
||||||
検閲 = デジタル奴隷制度
|
|
||||||
|
|
||||||
## 11. 住み続けられるまちづくりを
|
## 11. 住み続けられるまちづくりを
|
||||||
|
|
||||||
実意味:デジタル監視\
|
解釈:デジタル監視\
|
||||||
いつでも自宅に居ると、監視社会はとても簡単となります。\
|
常に自宅にいると、監視社会の構築が非常に容易になります。\
|
||||||
万が一出掛けたら、スマホである[ワクパス](/blog/digital-jisyu-own-or-permit/)にて監視を続けます。\
|
もし外出すると、スマートフォン上の[ワクパス](/blog/digital-jisyu-own-or-permit/)で監視が続けられます。\
|
||||||
ですから、Alexa、AmazonRing等を持ったら、大至急捨てた方が良いですよ!
|
したがって、もしAlexa、Amazon Ringなどを持っているなら、速やかに処分した方が良いでしょう。
|
||||||
|
|
||||||
## 12. つくる責任 つかう責任
|
## 12. つくる責任 つかう責任
|
||||||
|
|
||||||
実意味:中央貨幣制度\
|
解釈:中央銀行デジタル通貨制度\
|
||||||
もうCBDCの危険性について報告しましたので、これについてお読み下さい。([1](/blog/digital-autonomy-cashless-problem/)、[2](/blog/digital-dorei-blackcock-ceo-ukraina-hoax-real-agenda/))
|
すでにCBDCの危険性については報告していますので、詳細はそちらをご覧ください。([1](/blog/digital-autonomy-cashless-problem/)、[2](/blog/digital-dorei-blackcock-ceo-ukraina-hoax-real-agenda/))
|
||||||
|
|
||||||
## 13. 気候変動に具体的な対策を
|
## 13. 気候変動に具体的な対策を
|
||||||
|
|
||||||
実意味:機構暴政\
|
解釈:機関の暴政\
|
||||||
気候変動は只の詐欺です。\
|
気候変動は単なる詐欺です。\
|
||||||
まじでまだ信じる方が居るのは本当にありえないです。\
|
まだこれを信じている人がいるのは驚きです。\
|
||||||
気温はいつでも変わります、毎11年間は増減されています。\
|
気温は常に変化しており、毎11年ごとに変動しています。\
|
||||||
気づきましたか?\
|
気づきましたか?\
|
||||||
毎回「気候変動」のプロパガンダがあれば、既にある税金が上がって、新しい税金が紹介されます。
|
「気候変動」のプロパガンダがあるたびに、既存の税金が上昇し、新しい税金が導入されます。
|
||||||
|
|
||||||
## 14. 海の豊かさを守ろう
|
## 14. 海の豊かさを守ろう
|
||||||
|
|
||||||
実意味:海洋コントロール\
|
解釈:海洋管理\
|
||||||
現在は誰も海洋がコントロールされていません。\
|
現在、海洋は誰も管理していません。\
|
||||||
コントロールされると、海に泳げない様になります。\
|
海洋が管理されると、海泳ぎが制限されます。\
|
||||||
自分で発見する事が無理となります。\
|
自分で発見することができなくなります。\
|
||||||
暴政されている国から逃げられない様になります。\
|
暴政に支配された国から逃れることができなくなります。\
|
||||||
キューバ人はよくわかります。
|
キューバ人はこれをよく理解しています。
|
||||||
|
|
||||||
## 15. 陸の豊かさも守ろう
|
## 15. 陸の豊かさも守ろう
|
||||||
|
|
||||||
実意味:地域コントロール\
|
解釈:地域管理\
|
||||||
自宅から5キロメートル以内で居る事が可能ですが、もっと遠くに行くと、警察官に止められます。\
|
自宅から5キロメートル以内に留まることができますが、それ以上遠くに行こうとすると、警察に止められます。\
|
||||||
ソビエト連邦(ポーランド以外)に住んだ方はこれがよく知っています。\
|
ソビエト連邦(ポーランドを除く)に住んでいた人々はこれをよく理解しています。\
|
||||||
オーストラリアとカナダの方もそれを知っています。\
|
オーストラリア人やカナダ人もこれを理解しています。\
|
||||||
暴政です!
|
これは暴政です。
|
||||||
|
|
||||||
## 16. 平和と公正をすべての人に
|
## 16. 平和と公正をすべての人に
|
||||||
|
|
||||||
実意味:不同意戦争\
|
解釈:無差別戦争\
|
||||||
中東諸国で見たら、直ぐ分かると思います。\
|
中東を見ればすぐにわかります。\
|
||||||
アメリカにより、「平和と公正を守る為に、差別せず爆撃しなきゃ」ですね。\
|
アメリカは、「平和と公正を保つために、差別せずに爆撃する必要がある」と言います。\
|
||||||
これはもう22年間そうです。\
|
これはすでに22年間続いています。\
|
||||||
SDGsの場合も異なりません。
|
SDGsの場合も同様です。
|
||||||
|
|
||||||
## 17. パートナーシップで目標を達成しよう
|
## 17. パートナーシップで目標を達成しよう
|
||||||
|
|
||||||
実意味:全世界政府\
|
解釈:全世界政府\
|
||||||
全世界政府があれば、各国々の文化は絶滅します。\
|
今日までに、各国が独立していることは明らかでしょう。\
|
||||||
全世界は最悪な文化、中共の文化、になります。\
|
しかし、世界政府が設立されると、自国の立法府を無視して法律を制定することができます。\
|
||||||
実際にパートナーシップと関係がありません。
|
これがEUで起きています。
|
||||||
|
|
||||||
![](https://ass.technicalsuwako.moe/70991-and-neo-play-good-matrix-blue-youtube.png)
|
![](https://ass.technicalsuwako.moe/70991-and-neo-play-good-matrix-blue-youtube.png)
|
||||||
|
|
||||||
上記を読んだら、SDGsを本当に応援して欲しいでしょうか?\
|
これがSDGsの真の解釈と危険性です。\
|
||||||
応援を辞めた方が良いですよ!\
|
検討する価値があるでしょう。
|
||||||
大至急起きて下さい!!
|
|
||||||
|
|
||||||
以上
|
以上
|
||||||
|
|
読み込み中…
新しいイシューから参照