An Implementation of J

2025/12/14 9:34

An Implementation of J

RSS: https://news.ycombinator.com/rss

要約

Japanese Translation:

改訂版要約

本書は、技術仕様の構造化された目次であり、以下のように整理されています。

  1. 第0章 – はじめに
  2. 第1章 – 文を解釈する
    • 1.1 単語生成
    • 1.2 構文解析
    • 1.3 トレイン(列車)
    • 1.4 名前解決
  3. 第2章 – 名詞
    • 2.1 配列
    • 2.2 型
    • 2.3 メモリ管理
    • 2.4 グローバル変数
  4. 第3章 – 動詞
    • 3.1 動詞の構造
    • 3.2 ランク
    • 3.3 原子(スカラー)動詞
    • 3.4 オブヴァース、同一性、および変種
    • 3.5 エラー処理
  5. 第4章 – 副詞と接続詞
  6. 第5章 – 表現
    • 5.1 原子表現
    • 5.2 ボックス化された表現
    • 5.3 木構造表現
    • 5.4 線形表現
  7. 第6章 – ディスプレイ
    • 6.1 数値表示
    • 6.2 ボックス化表示
    • 6.3 フォーマット済み表示

主要セクションの後に、付録A〜F(インキュナブルム、スペシャルコード、テストスクリプト、プログラムファイル、外国接続詞、およびシステム概要)が補足資料として提供されます。書末には参考文献・用語集・索引が付されています。

この構成(目次 → 詳細セクション → 付録 → 参照資料)は、読者に全体枠組みを最初に把握させたうえで、必要に応じて詳細へ掘り下げたり補足資料を参照したりできる明確かつ階層的な道筋を提供します。

本文

0. はじめに
 6. 表示
  6.1 数値表示
  6.2 ボックス付き表示
  6.3 フォーマット済み表示

1. 文の解釈
 1.1 語形作成
  6.2 ボックス付き表示(既にリスト済み)
 1.2 解析
 1.3 列車
 7. 比較

1.4 名称決定

付録

2. 名詞
 A. インクナブリウム
 2.1 配列
 B. 特殊コード
 2.2 型
 C. テストスクリプト
 2.3 メモリ管理
 D. プログラムファイル
 2.4 グローバル変数
 E. 外来接続詞
 F. システム概要

3. 動詞
 3.1 動詞の構造
 参考文献
 3.2 ランク
 語彙集と索引
 3.3 原子(スカラー)動詞
 3.4 逆接続、同一性、変種
 3.5 エラー処理

4. 副詞および接続詞

5. 表示方法
 5.1 原子表示
 5.2 ボックス付き表示
 5.3 木構造表示
 5.4 線形表示

同じ日のほかのニュース

一覧に戻る →

2025/12/14 7:58

Linux Sandboxes and Fil-C

## Japanese Translation: メモリ安全性とサンドボックスはプログラムの異なる部分を保護するため、両方が強力なセキュリティに必要です。純粋な Java プログラムはメモリ安全であってもファイルシステムの syscalls を通じて任意のファイルを書き込むことができるし、逆にすべての能力を取り消したアセンブリプログラムでもメモリバグがある場合がありますが、カーネルが特権 syscalls を殺すためサンドボックスから逃げられません。サンドボックスは意図的に許容範囲を広く設計しているため、攻撃者は残されたメモリ安全性のバグを利用してブローカー・プロセスへ到達することができるので、両方の防御を組み合わせるとより強固な保護が得られます。 本書では、C/C++ 用に設計され、システムコールまで安全性を保証し、init や udevd などの低レベルコンポーネントで使用できるメモリ安全ランタイム「Fil‑C」への OpenSSH の seccomp ベース Linux サンドボックス移植方法について説明します。OpenSSH は既に chroot を採用し、`sshd` ユーザー/グループとして特権なしで実行し、`setrlimit` を使用し、非許可 syscalls を `SECCOMP_RET_KILL_PROCESS` で殺す seccomp‑BPF フィルタを適用しています。Fil‑C はその runtime 内で自動的にこれらの syscalls を許可することで簡素化します。背景スレッドは存続させつつスレッド生成を防ぐため、Fil‑C は API `void zlock_runtime_threads(void)` を追加し、必要なスレッドを事前確保してシャットダウンを無効にします。 OpenSSH の seccomp フィルタは強化されています。失敗時の挙動が `SECCOMP_RET_KILL` から `SECCOMP_RET_KILL_PROCESS` に変更され、mmap 許可リストに新たに `MAP_NORESERVE` フラグが追加され、`sched_yield` が許可されています。サンドボックスは二つの `prctl` コール(`PR_SET_NO_NEW_PRIVS` と `PR_SET_SECCOMP`)で構築され、エラー検出も行われます。Fil‑C のランタイムは `filc_runtime_threads_handshake` で全スレッドとハンドシェイクし、各スレッドが no_new_privs ビットと seccomp フィルタを持つことを保証します。複数のユーザー スレッドが検出された場合、安全エラーが発生します。 メモリ安全性とサンドボックスを組み合わせることで、OpenSSH はより厳格な隔離を実現し、メモリバグによる権限昇格リスクを低減します。このアプローチは他のセキュリティクリティカルプロジェクトにも採用を促す可能性があります。

2025/12/14 8:39

Closures as Win32 Window Procedures

## Japanese Translation: **改訂版要約:** この記事では、Win32 のウィンドウプロシージャに追加のコンテキストポインタを渡す方法を示しています。これは、WndProc が通常 4 つしか引数を取らないため、ネイティブ API には備わっていない機能です。著者は x64 アセンブラで小さなトランスペイル(trampoline)を作成し、実行時に JIT コンパイルして 5 番目の引数スロットを挿入し、呼び出し前に必要なコンテキストを格納します。これにより、各ウィンドウがグローバル変数や `GWLP_USERDATA` を使わずに独自の状態を保持できるようになります。トランスペイルは GNU アセンブラで書かれ、`.exebuf` セクション(`bwx` フラグ付き)から 2 MiB の実行可能バッファが確保されます。C ヘルパー関数 `make_wndproc(Arena *, Wndproc5, void *arg)` は 2 つのバイトオフセットプレースホルダーを修正してトランスペイルを生成します。作成後は `set_wndproc_arg(WNDPROC p, void *arg)` を使ってコンテキストを変更できます。アロケータ例では、異なる状態オブジェクト用に複数のトランスペイルを生成したり、動的に切り替えたりする方法を示しています。この手法は、トランスペイルがアンウインドテーブルを持たないため Windows Control Flow Guard 下でも安全に機能し、グローバル変数を使わずにウィンドウごとのデータを付与する低レベルの手段を示しています。

2025/12/14 6:18

Recovering Anthony Bourdain's (really) lost Li.st's

## Japanese Translation: **概要:** 著者は、Greg TeChnoLogY の Anthony Bourdain リストから欠落した項目を復元するために、Common Crawl インデックスを照会する Python 3.14.2 スクリプト *commoncrawl_search.py* を作成しました。サイト全体をダウンロードする代わりに、スクリプトは検索語句と一致する URL プレフィックスのみを返す単一のインデックスリクエストを送信し、帯域幅を大幅に削減しクエリ速度を向上させます。この手法は標準的なオープンソース慣行に従っており、アーカイブ済みデータセットから失われた Web コンテンツを復旧する以前の試みを継承しています。今後はより複雑な検索に対応できるようツールを拡張し、リスト項目のさらなる自動復元を実現する可能性があります。成功すれば、研究者やファンがアクセスできるようになり、大規模公開アーカイブからデータを抽出する実用的な方法を示し、将来の Web 保存プロジェクトに情報を提供できるでしょう。