Deno v2.2.7

Deno v2.2.7がリリースされています。

panic.deno.com

Denoのプロセスがパニックした際に、panic.deno.comというサイトへのリンクが表示されるよう改善されています (#28470)

エラーメッセージ中のリンクから詳細なスタックトレースを閲覧できるようです。

panic.deno.comのソースコードは以下にあります:

OpenTelemetry

V8 JS Engine Runtime metrics のサポート

V8 JS Engine Runtime metricsのサポートが実施されています (#28592)

OTEL_DENOまたはOTEL_DENO_METRICSによってMetricsが有効化されていれば、自動でヒープやGCなどに関する各指標が収集されます。

Node.js互換性の改善

npmライフサイクルスクリプト

Denoにおいてnpmのライフサイクルスクリプトは、Node.jsのCLIフラグの有無などに応じてNode.jsまたはDenoのいずれかを使用して実行されます。

このリリースではnpmのライフサイクルスクリプトの実行において、より多くの場面でDenoが使用されるよう変更されています (#28715)

これに合わせて、Denoでnpmライフサイクルスクリプトを実行する際に追加で以下のオプションが適用されるよう変更されています:

node:dns

dns.lookup()の互換性が改善されています (#27936)

node:netconnect()においてホスト名を指定した場合、今まではDNSサーバーと解決したいホスト名の両方を--allow-netで許可する必要があったものの、この変更に合わせて解決したいホスト名の指定だけで動作するよう改善されているようです。

node:sqlite

空のBLOBがnullではなく空のUint8Arrayとして返却されるよう修正されています (#28674)

node:process

process.cpuUsage()previousValue引数がサポートされています (#28550)

deno lsp

vscodeにおいて、deno lspsettings.json (User settings)をフォーマットできるよう改善されています (#28706)

その他

Error.isError

Error.isErrorの型定義が追加されています (#28679)

WebGPU

以下のAPIに関して変更が行われています (#28650)

  • isFallbackAdapterプロパティーがGPUAdapterからGPUAdapterInfoへ移動
  • GPUSupportedLimits
    • 各プロパティーがreadonlyに変更
    • maxBindGroupsPlusVertexBuffersmaxInterStageShaderVariablesプロパティーが追加

Deno v2.2.8

Deno v2.2.8がリリースされています。

v2.2.7におけるsegfaultの修正 (macOS)

v2.2.7において、macOSでNode-APIを使おうとするとsegfaultが起きる問題が修正されています (#28758)

deno compile - --includeにおけるatime/birthtime/mtime/ctimeのサポート

deno compileで生成されたバイナリにおいて、--includeで埋め込んだファイルにatime/birthtime/mtime/ctimeが設定されるよう改善されています (#28731)

元のファイルに設定されていたmtimeの値が各時刻に設定されるようです。

deno fmt - 終了コードの改善

deno fmtが構文エラーなどでフォーマットに失敗した場合、終了コードとして1が返却されるよう改善されています (#28523)

deno lint - プラグインのパス解決に関するバグ修正

ワークスペースルートのdeno.jsonlint.pluginsを定義した状態でdeno lintを実行すると、ルートのdeno.jsonではなく各メンバーのdeno.jsonを基準にプラグインのパス解決が行われていた問題が修正されています (#28752)

vsockのサポートについて

⚠️まだマージはされていないため、正式にこの機能が導入されるかどうかはまだわかりません。

DenoでvsockをサポートするPRが作成されています:

vsockを利用できるようにするため、Deno.listen()Deno.connect()transport: "vsock"cidオプションが追加されています 。

また、Deno.serve()にもcidオプションが追加されています。

これらの機能を利用するには、--allow-read--allow-writeが必要なようです。