Gleam バージョン 1.17.0 がリリースされました

2026/06/03 7:16

Gleam バージョン 1.17.0 がリリースされました

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

要約

Japanese Translation:

Gleam 1.17.0 の最も重要な更新は、

export escript
コマンドの導入であり、これは Erlang がインストールされているどのマシンでも実行できるスタンドアロンの実行可能ファイル(
.escript
)を生成することを可能にすることで、ローカルのランタイム設定を必要とせずにプロジェクトの移植性を大幅に向上させます。この主要な機能に加え、バージョン 1.17.0 は改良されたエディタと言語サーバーを通じてコーディング体験の大幅な改善を提供します:言語 サーバー プロトコルを実装するすべてのエディタでハイライト参照がサポートされるようになり(IDE がホバーで変数の使用状況を表示することを可能にする)、
todo
キーワードを定式表現で使用できるようになり、タイプチェッキングと解析が可能になりました。「Fill labels」は現在定式表現と動作し、レコード更新構文にホバーすると不変のフィールドが表示されます。また、言語サーバーは不明な値に対して Qualified imports を提案し、完全に qualified な名前を持つタイプ警告を表示します。さらに、このリリースではコードアクションが拡張され、不変のフィールドを直接表示することでアップデートの簡素化を実現しています。さらに、
--no-print-progress
などの新しいフラグにより
gleam dev
でのビルドノイズが削減され、依存関係チェック(
gleam deps outdated
)は利用可能なパッケージアップグレードを明確に強調し、JavaScript コンパイルパフォーマンスが最適化されました(冗長なチェックの削除と割り当てコードのコンパクト化)。極めて重要なのは、このアップデートがビルドツールで以前に発見されたセキュリティ脆弱性を修正し、組織的な防御を潜在的な exploit に対して強化することです。

本文

Gleam v1.17.0 リリース:新機能、改善点とセキュリティ修正

Gleam は Erlang 仮想マシン(VM)および JavaScript ランタイム で動作する型安全かつスケーラブルなプログラミング言語です。本日、長期間にわたる開発を経て公開された Gleam v1.17.0 の主要変更点は以下の通りです。

📺 community & イベント

  • Gleam Gathering の開催:史上初のコミュニティ参加型会議が終了しました。
    • 全セッションの動画は「Gleam Gathering」で視聴可能です。
    • 次回開催予定:2027 年

💻 コード生成と実行環境

BEAM escripts(エスクリプト)の実装

  • Erlang VM 上で
    .beam
    ファイルを多数作成する代わりに、JavaScript のバンドラーのような単一ファイル形式で配布・実行できるようになりました。
  • gleam export escript
    コマンドにより、バイトコードを含む単一ファイルを生成できます。
$ gleam export escript
Compiling gleam_stdlib
Compiling my_project
Compiled in 0.48s

Your escript has been generated to /home/louis/src/my_project/my_project.

$ ./my_project
Hello from my_project!

JavaScript 用パターンマッチングの最適化

  • パターンマッチング処理が線形探索から決定木構造へ効率化されました。
  • JavaScript 生成コードの軽量化:ビット配列チェックの冗長性排除やアサインメントコードのコンパクト化が行われています。

✨ ライター体験向上機能

ハイライト参照の表示

  • textDocument/documentHighlight
    プロトコルを実装しました。
  • 変数へのすべての参照を、カーソルが置かれた瞬間に自動でハイライトします。

定数表現における
todo
式の使用

  • コンパイル時に評価される**定数表現(Constant)**内でも
    todo
    式を使用可能になりました。
  • これにより、型チェックとコード補完の改善が進みました。特に「Fill labels(ラベルの埋め込み)」機能は定数に対しても動作します。

レコード更新のホバー情報

  • レコード更新構文(例:
    Person(..mom, age: 61)
    )のホバー表示が強化されました。
  • 新しい値を指定していないフィールドも一覧表示され、型定義へのナビゲーションなしで情報の確認が可能です。

不明な値のインポート提案

  • コンプエラー発生時に、コンパイラが適切なモジュールqualified 形式(例:
    io.println
    )を検出し提案します。
  • これにより、インポート忘れによる誤りを防ぎやすくしています。

警告メッセージにおける文脈-aware な型の表示

  • 警告に出力される型名は、qualified 名称または定義済みエイリアス名で正しく表示されます。
  • 開発者がコード内で参照する方法と一致するため、理解が容易になります。

静かな開発モードの実行

  • gleam dev
    コマンド実行時の進行状況メッセージを無効化するオプションが追加されました。
$ gleam dev --no-print-progress
Hello, from my_project_dev!

陳腐化した依存関係の件数表示

  • gleam deps outdated
    コマンドの結果に、更新可能なパッケージの総数を表示するサマリーが追加されました。
  • すべての依存関係が最新の場合も現在数を表示し、判断を容易にします。
$ gleam deps outdated
0 of 12 packages have newer versions available.

Git リポジトリの検知改善

  • gleam publish
    コマンドにおいて、Git リポジトリ内の任意位置にあるパッケージも正しく検知し公開できるようになりました。

🛠️ コードアクションと型チェック強化

不要なレコード更新の削除

  • 既存フィールドを全て指定している場合の冗長な
    ..record
    構文を自動で発見・提案して削除するコードアクションが実装されました。

guard 式における誤った演算子の修正

  • Guard 式内で文字列連結など不適切な演算子(
    +
    など)を使用した場合、正しい演算子を提案するコードアクションを発動します。

破棄された値に対するパターンマッチのコードアクション

  • case
    式の discard パターン(例:
    _
    )に対して、「追加のパターンに分割」という動作を実行可能になりました。
  • これにより漏れ防止や完全性チェックが容易になります。

不明なモジュールの作成コードアクション

  • インポート先が存在しないモジュールの場合、エディタ上で新規モジュールを作成するためのコードアクションが表示されます(トップダウン型開発を支援)。

🐞 セキュリティとフォールトトレラント性

セキュリティ関連の修正

  • ビルドツールの設定検証に関連する脆弱性が発見・修正されました。
  • CVE 番号: CVE-2026-43965, CVE-2026-32685, CVE-2026-42795

フォールトトレラント性の向上

  • コンパイラーがコードの不具合があっても推論を継続する能力が強化されました。
  • これにより、言語サーバーはエラーがある状態でも有用な支援を提供し続けることができます。

🙏 感謝とサポートについて

本リリースには以下の開発者の尽力に感謝申し上げます: Gavin Morrow, Giacomo Cavalieri, Daniele Scaratti, Andrey Kozhev, raphrous など多数のコントリビューターが貢献されています。

さらに、コアチームメンバーである Giacomo CavalieriSurya Rose の GitHub Sponsors での支援を心より感謝申し上げます。

スポンサーリスト(一部抜粋):

  • Abel Jimenez
  • Adam Johnston
  • Alex Houseago
  • Anthony Scotti
  • Charlie Tonneslan
  • Cory Forsstrom
  • Giacomo Cavalieri
  • John Downey
  • ...(多数の企業・個人支援者)

Gleam はコミュニティの力が全てです。詳細な変更点は Changelog をご覧ください。

同じ日のほかのニュース

一覧に戻る →

2026/06/03 3:47

MAI コード 1 のフラッシュ処理

## Japanese Translation: 以下の内容は、Key Points List に含まれていた欠落していた具体的な指標およびデータポイントを統合しつつ、明瞭さを維持した改良されたバージョンです。 **Improved Summary:** MAI-Code-1-Flash は、実稼働環境で使用される GitHub Copilot harness を直接トレーニングによって訓練され、現実世界の agentic タスクを処理するコーディング AI における画期的な進歩を表します。以前の手法では正確性と効率性は排他的なものとして扱われていましたが、本モデルはこれらがシームレスに共存できることを実証しました。適応的なソリューション長制御を活用し、推論の深さを動的に調整することで、単純なリクエストには簡潔に応答し、複雑な問題にはより多くの予算を割く仕組みです。その結果、開発者は競合製品である Claude Haiku 4.5 に比べて最大 60% も少ないトークンで有用な出力をより早期に受け取り、レイテンシと運用コストを大幅に削減できます。 同じプロダクション harness 内での多様なデータセット(SWE-Bench Verified、SWE-Bench Multilingual、SWE-Bench Pro、Terminal Bench 2)を含む評価が、優位性の高いパフォーマンスを確認しました。MAI-Code-1-Flash は、テストされたすべてのコアコーディングベンチマークにおいて Claude Haiku 4.5 を凌駕し、多様で現実世界のタスクである SWE-Bench Pro で注目される +16 ポイントのリード(51.2% vs. 35.2%)を達成しました。これらの結果は、MAI-Code-1-Flash を使用する場合、より高い正確性と更大なる効率がもはやトレードオフではないことを検証し、インタラクティブなコーディングワークフローを滑らかにしつつ、全体の生産性を最適化するためのトークン投資を実現します。

2026/06/03 5:30

BYD の車部品 CT 走査検査

## Japanese Translation: 主な洞察は、現代のペットボトルが数十年前進化する工学によって最適化されており、シュリンクラップ、積み重ね、粗悪な取扱いなどに対して耐え抜き、産業物流に適合するように設計されているにもかかわらず、開封した後は実用的な使用時間がわずか数秒しかないという点にあります。この耐久性のパラドックスは、長距離輸送での耐久性に大規模な投資を行いながら製品を瞬時に廃棄するという重大な非効率性を浮き彫りにしています。重量のあるガラス(コカ・コーラの 1899 年の製瓶;エビアンが数世紀の陶器製の壺の使用の後、1908年にガラスへ転換)からプラスチックへの進化は、コスト、安全性、重量削減によって推進されました。初期のプラスチック試作には、モンサント社の「Easy-Goer」アクリロニトリルコポリマー(1975 年)があり、それが漏出と動物毒性に関する懸念から 1977年にFDA にて禁止されました。これにより、デュポン社が Polyethylene Terephthalate(PET)を導入した 1967–1973 年へと道が開かれました。1970年代後半には、大型の 2リットルボトル用の PET 生産が始まり、初期デザインは最大 96 g の重量を持ち、接着剤を用いたベースと 0.3–0.4 mm の壁厚を特徴としていました。1990年代初頭の革新としては、接着剤を使用しない「Petaloid」ベースや、より薄い壁(例:アクアフィナで約 0.2 mm)を採用するものがあり、材料使用量を大幅に削減しました。それ以降のさらなる進歩—例えば、ニージャラ・ボトルリング社の Eco-Air デザインが厚さ 0.17 mm 以下を達成し、1998年から現在にかけてプラスチック使用量を 60%削減した事例や、半リットルボトルが 2000年代中期のバージョンと比較して 75%少ないプラスチックを使用した事例—は、継続的な効率向上を反映しています。これらの進歩は企業の戦略とも整合しており、ネスレ社がペリエ社を買収(1992年)や、ペプシ/コカ・コーラがアクアフィナとダサニを中〜後半の 1990年代に発売したことは、ソーダ販売の減少への対応として行われました。しかし環境上の課題は依然として残っています。リサイクルシステムが材料の分離や汚染管理—if 特に破砕されたガラスが多材料ストリームに混入し、新しい容器にとって使用不可能になる—を失敗した場合、これらの良質に設計されたボトルは多くが埋め立て地に行き着いたり、下位利用されたりします。将来の進歩には、スマートなデザイン、厳格な材料分離プロトコル、改善されたリサイクルインフラストラクチャを通じて、サプライチェーンの耐性と廃棄物削減を調和させる必要があります。 ## Text to translate: The primary insight is that modern water bottles represent decades of advanced engineering optimized for robust industrial logistics—surviving shrink-wrapping, stacking, and rough handling—even though they have only seconds of practical use once opened. This durability paradox highlights a major inefficiency: investing heavily in long-haul resilience while discarding the product instantly. The evolution from heavy glass (Coca-Cola's 1899 bottling; Evian's switch to glass in 1908 after decades of earthenware jugs) to plastics was driven by cost, safety, and weight reductions. Early plastic attempts included Monsanto's "Easy-Goer" acrylonitrile copolymer (1975), which faced FDA bans in 1977 due to leaching and animal toxicity concerns, paving the way for DuPont's Polyethylene Terephthalate (PET) introduced around 1967–1973. By the late 1970s, PET production for large two-liter bottles began, with early designs weighing up to 96 g, featuring glued bases and wall thicknesses of 0.3–0.4 mm. Innovations in the early 1990s, such as "Petaloid" bases that eliminated glue and thinner walls (e.g., Aquafina at ~0.2 mm), cut material use significantly. Further advances since then—such as Niagara Bottling's Eco-Air designs under 0.17 mm thickness, which achieved a 60% plastic reduction from 1998 to today, and half-liter bottles using 75% less plastic than mid-2000s versions—reflect ongoing efficiency gains. These advances also align with corporate strategy: Nestlé's acquisition of Perrier (1992), and Pepsi/Coke launching Aquafina and Dasani in the mid-to-late 1990s, all in response to declining soda sales. Yet environmental challenges remain. If recycling systems fail to separate materials or manage contamination—especially with crushed glass mixed into multimaterial streams that become unusable for new containers—these well-engineered bottles often end up landfilled or downcycled. Future progress must reconcile supply chain resilience with waste reduction through smarter design, stricter material separation protocols, and improved recycling infrastructure.

2026/06/03 4:27

「グメールが私をおろかに思っている」と感じたので、退社しました。

## Japanese Translation: 著者は、嫌悪感と軽慢さを感じてしまう強制的な AI 機能のため、16 年使用してきた Gmail アカウントを恒久離脱することにした。具体的な問題は、不要なメッセージの要約、自動補填された返信文、そして「メールを書いてください」、「Tab で改善する」など、ユーザー自身がメールを作成できないか、あるいは受信者への時間の価値が低いことを示唆するような常駐的なプロンプト(促し)が含まれる。一部の AI 機能はオフにすることもできるが、それを行うことで自動的なスレッド分類といった長く使い続けられ有用な機能を犠牲にせざるを得なくなる。著者は、これらの強制的な機能が真のユーザーニーズを満たすためではなく、言語モデルの利用指標を人為的に高めるための意図的な戦術であることを疑っている。Google の従来からある安定したサービスや、fediverse を通じて独自ドメインと接続して使用している Fastmail での良好な第一印象とは裏腹に、著者はこの移行を Google エコシステムからの故意の断絶——単なるクライアントの切り替えではない——と捉えている。著者は連絡先を移す予定だが、歴史のあるメールスレッドはインポートせず、「不快な経験」として記述する後に「きれいな決別」を図る打算である。この状況はより広範な懸念を示している:技術企業は、ユーザーの自律性や長期的な信頼よりもエンゲージメントデータを優先することで、忠実な顧客を失うリスクを抱えている。 ## Text to translate: Improved Summary: The author is permanently leaving their 16-year-old Gmail account due to mandatory AI features they find intrusive and disrespectful. Specific issues include unsolicited message summaries, pre-filled replies, and persistent prompts ("help me write," "Tab to improve") that imply the user cannot compose emails themselves or that recipients do not deserve their time. While some AI features can be disabled, doing so forces users to sacrifice long-standing, useful functions like automatic thread categorization. The author suspects these unsolicited features are intentional tactics to artificially inflate language model usage metrics rather than serve genuine user needs. Despite Google's historically stable service and positive first impressions with Fastmail (which they have connected their custom domain to and use via the fediverse), the author views this move as a deliberate break from Google's ecosystem—not merely a client switch. They plan to migrate their contacts but will not import historical email threads, seeking a "clean break" after what they describe as a "bad taste" experience. The situation highlights a broader concern: tech companies risk losing loyal customers by prioritizing engagement data over user autonomy and long-term trust.