
2025/12/10 20:33
Factor 0.101 now available
RSS: https://news.ycombinator.com/rss
要約▶
Japanese Translation:
Factor 0.101 リリース概要
Factor 0.101 がリリースされました。18 人の貢献者によるほぼ 700 コミットから構築されています。このアップデートは、主要なプラットフォーム(Windows、macOS、x86/x86‑64 の Linux)へのサポートを追加し、ARM‑64 バックエンド作業も進行中です。UI とパフォーマンス – すべての UI 要素が画像ではなくプリミティブで描画されるようになり、テーマ適用とスケーリングが向上しました。Linux/Windows の HiDPI 問題も修正されています。アップデートでは
引数順序をリファクタリングし、一貫性のためにいくつかの語彙スロット名を変更しています。ltake新しいライブラリと機能 – Base92、Bitcask DB、Bluesky プロトコル、OKLAB/OKLCH カラー、EDN サポート、dotenv ファイル、およびエディタ統合(Cursor, Rider)が追加されました。Neovim プラグインサポートも含まれています。ライブラリレベルの改善は
、alien.syntaxのパフォーマンス、base64の再試行ロジック、discordリクエストスロット名変更、httpの安全性、そしてmath.primesv5.5 をカバーしています。raylib削除とその他 – 旧
ライブラリは削除され、新しいui.theme.imagesモジュール(コードネーム Tahoe)が追加されました。また zoneinfo が 2025b に更新されています。Base16 テーマと丸みを帯びたペンも強化されています。system-info.macosユーザーはよりクリーンでテーマに優しい UI を享受し、スケーリングが向上し追加のプラグインオプションが利用可能になります。一方、開発者は拡張されたエコシステムとコアライブラリ全体でのパフォーマンス向上から恩恵を得ることができます。
本文
「飛行速度を上げよ、地が下から来て汝を打つことなく」 – ウィリアム・ケルシュナー
Factor 0.101 リリース
対応プラットフォームとアーキテクチャ
| OS / CPU | x86 | x86‑64 |
|---|---|---|
| Windows | 0.101 | 0.101 |
| macOS | 0.101 | 0.101 |
| Linux | 0.101 | 0.101 |
ソースコード: 0.101
このリリースは、以下の貢献者による約 700件のコミットの結果です:
アレクサンダー・サバク、アンドリー・クラガー、キャット・スティーブンズ、ドミトリ・マトヴェイエフ、ダグ・コールマン、ギフトプランツ、ジョン・ベネディクトソン、ジョン・ハーパー、ヨナス・ベルヌーレ、レオ・メルハバン、マイク・ステビンソン、ニコラス・チャンドーク、ニクラス・ラースン、リベッカ・ケリー、サミュエル・タルディウ、スタフェン・シュミードル、@Bruno-366、@bobisageek、@coltsingleactionarmyocelot、@inivekin、@knottio、@timor。
ハイライト
- UI が画像ではなくボタンとスクロールバーを描画 → テーマ設定が容易に。
- Linux & Windows の HiDPI スケーリングを修正(画面切替時にウィンドウ設定が更新されない問題)。
- Unicode 17.0.0 へ更新。
- Neovim プラグインサポート追加。
後方互換性の注意点
の引数順序を、ltake
等と一貫性を持たせるために入れ替え。head- Windows 環境語彙が
と空文字 (f
) を区別するよう変更。""
,misc/atom
,misc/Factor.tmbundle
を削除し、代わりに新しいリポジトリへ移動:misc/vim
,factor/atom-language-factor
,factor/factor.tmbundle
。factor/factor.vim
とhttp
のスロット名を変更(furnace.asides
)。post-data → data- 語彙名の変更:
,html.streams → io.streams.html
。pdf.streams → io.streams.pdf
Factor とは?
Factor は、以下の特徴を備えた連結型・スタックベース言語です:
- 動的型、拡張可能な構文、マクロ、ガーベジコレクション。
- 完全装備のライブラリ;多くのプラットフォームで動作。
- パフォーマンス向上を目的としたコンパイルに加え、対話型開発もサポート。
- 主要 OS 全てで可搬性のあるアプリケーションを構築可能。
- BSD ライセンス下で配布されるソースコード。
新規ライブラリ (0.101)
- base92 – Base92 エンコード/デコード。
- bitcask – Bitcask キー/値 DB。
- bluesky – BlueSky プロトコルサポート。
- calendar.holidays.world – 新しい祝日(例:World Emoji Day)。
- classes.enumeration – 列挙クラスと
構文。ENUMERATION: - colors.oklab / colors.oklch – OKLAB/OKLCH カラースペース。
- colors.wavelength –
。wavelength>rgba - combinators.syntax – 実験的なコンビネータ構文(
等)。@[, *[, &[ - continuations.extras –
,with-datastacks
。datastack-states - dotenv – Dotenv ファイルサポート。
- edn – 拡張可能なデータ表記法。
- editors.cursor / editors.rider – カーソルと JetBrains Rider エディタサポート。
- gitignore –
パーサー。.gitignore - http.json –
を昇格、便利なワード追加。json.http - io.streams.farkup / io.streams.markdowns – Farkup と Markdown ストリームプロトコル。
- locals.lazy – Emit 構文プロトタイプ。
- monadics – Haskell‑風モナド、アプリケーション、ファンクタ。
- multibase – マルチベース実装。
- pickle – Pickle シリアライズ。
- persistent.hashtables.identity – Identity‑hashcode 持続ハッシュテーブル。
- raylib.live-coding – Raylib のライブコーディングデモ。
- rdap – RDAP(Registration Data Access Protocol)。
- reverse –
実装。std::flip - slides.cli – スライド用シンプル CLI。
- tools.highlight / tools.random – 構文ハイライトとランダム生成ツール。
- ui.pens.rounded / ui.pens.theme – 丸角ペン、実験的テーマペン。
- ui.tools.theme – UI 開発者向けテーマユーティリティ。
改良済みライブラリ (0.101)
(代表的な改善点)
| ライブラリ | 改善内容 |
|---|---|
| alien.syntax | 構文ワード追加 |
| assocs.extras | , , , マクロ追加 |
| base32 / base64 | 人間向け Base32、Base64 の小規模性能向上 |
| benchmark | さらに多くのベンチマークを追加 |
| bootstrap.assembler | ARM‑64 修正 |
| brainfuck | 構文ワードとインタープリタ追加 |
| bson / cbor | 順序保持のためリンク付きアソシエーション使用 |
| cache | 実装 |
| calendar | , 等を追加 |
| command-line.parser | 引数パーサー機能追加 |
| concurrency.combinators | ラッチ付き高速 parallel‑map/assoc-map |
| concurrency.promises | 5–7 % 性能向上 |
| countries | サークの CQ コード追加 |
| cpu.architecture / cpu.arm | スタック効果と ARM‑64 修正 |
| crontab | が空行/コメントを無視 |
| db | 行ごとのクエリ結果が多態化 |
| delegate.protocols | キー/値がアソシエーションプロトコルへ追加 |
| discord | ネットワーク切断処理、再試行間隔追加 |
| editors.focus / editors.zed | ファイルを行番号で開く;Linux で Zed サポート |
| endian | C‑ptr ライクオブジェクトの変換高速化 |
| environment | を追加 |
| eval | データスタックとエラーを stderr に移動 |
| fonts | が名前のみ受け取り、デフォルトが簡素化 |
| furnace.asides / http | スロット名変更() |
| generalizations | Dip ワードを shuffle へ移動 |
| help.tour | タイポ/文法修正 |
| html.templates.chloe | CDATA 処理が改善 |
| ini-file | , ; 順序保持 |
| io.encodings.detect / utf8 | UTF‑7 検出、BOM 処理 |
| io.streams.ansi / escape-codes | ドキュメント・テスト・dim サポート追加 |
| ip-parser | IPV4/IPv6 ネットワークワード |
| kernel | を追加;, のドキュメント化 |
| linked-sets | 構文ワード |
| lists.lazy | の引数順序変更 |
| macho | さらに多くのリンク編集コマンド |
| make | push‑at バリアント |
| math.combinatorics / distances / extras / factorials / functions / primes / runge-kutta / similarity / text.english | 新語、性能向上、バグ修正 |
| metar | 略語表記集を更新 |
| mime.types | ファイル更新 |
| msgpack | 順序保持のためリンク付きアソシエーション使用 |
| path-finding | を追加 |
| peg.parsers | より高速な list‑of バリアント |
| progress-bars.models | 新しい進捗ユーティリティ |
| raylib | Trace‑log 関数、Raylib 5.5 へ更新 |
| readline-listener | 履歴永続化、色サポート |
| robohash | set4/set5/set6 タイプをサポート |
| sequences | 多くのワードをリネーム・最適化 |
| scryfall | duskmourn 用に更新 |
| shuffle | スタックチェック改善、 構文追加 |
| sorting.human | 人間向けソート実装 |
| system-info.macos | macOS 26 の “Tahoe” コードネームを追加 |
| terminfo | 特定出力機能を問い合わせる |
| threads | 一般化されたリンクスレッド |
| toml | 順序保持、, を追加 |
| tools.annotations / deploy / directory-to-file / memory | 新構文、CLI オプション、メトリクス |
| txon | 順序保持のためリンク付きアソシエーション使用 |
| ui | を追加 |
| ui.gadgets.buttons / sliders | テーマ対応;画像不要 |
| ui.theme.base16 | 270+ Base16 テーマ |
| ui.tools | フォントサイズショートカット、レスポンシブ UI 更新 |
| unicode | Unicode 17.0.0 に更新 |
| webapps.planet | 動画タグ CSS を改善 |
| words | を追加 |
| zoneinfo | バージョン 2025b に更新 |
削除済みライブラリ
- ui.theme.images
VM の改善 (0.101)
- ARM64 バックエンドの作業を継続:
を修正、汎用ディスパッチを実装。set-callstack