Deno v1.23.4

Deno v1.23.4がリリースされました。

V8 Fast API Calls+JITコンパイルによるFFIの最適化

V8 Fast API Callstinyccを使用したJITコンパイルにより、FFI(Deno.dlopen)の最適化が行われています。

Deno.dlopenを呼んだ際に、下記の条件が満たされる外部関数へのバインディングに対して、自動でFast API Calls+JITコンパイルによる最適化が適用されます。

もしこれらの最適化を無効化したい場合は、callbackオプションにtrueを指定する必要があります。

const lib = Deno.dlopen(
  "some_lib.so",
  {
    some_func: { parameters: ["usize", "usize"], result: "usize", callback: true },
  }
);

細かな詳細については、deno_ffiも参照ください。


その他の変更点

  • Request#json()などに続けてRequest.headersを参照するとプロセスがパニックする問題が解消されています。
  • deno lspで自動importが効くようになりました。それに伴い、入力補完に関わる挙動も改善されています。

https://github.com/denoland/deno/releases/tag/v1.23.4

deno_std v0.148.0

deno_std v0.148.0がリリースされました。

std/archive/tarモジュールでTarEntryが公開されています。

その他には、std/encoding/csv/streamモジュールのCSVStreamで読み込みをキャンセルすると、リソースリークが発生する問題が修正されています。


https://github.com/denoland/deno_std/releases/tag/0.148.0

esm.sh v87

esm.shのv87がリリースされています。

このリリースでは、?externalパラメータがサポートされています。

{
   "imports": {
     "preact": "https://esm.sh/preact@10.10.0",
     "preact/": "https://esm.sh/preact@10.10.0/",
     "preact-render-to-string": "https://esm.sh/preact-render-to-string@5.2.0?external=preact",
     "swr": "https://esm.sh/swr@1.3.0?alias=react:preact/compat&external=preact/compat"
   }
 }

このパラメータで指定されたパッケージはバンドルされなくなるため、あるパッケージのImport mapsで指定したバージョンを読み込ませたいときなどに便利そうです。


https://github.com/ije/esm.sh/releases/tag/v87

Trex v1.12.0

Trex v1.12.0がリリースされています。

trex global-configコマンド及びtrex.config.jsonファイルによる設定が実験的にサポートされています。

trex global-configコマンド

$ trex global-config --importMap=import-map.json

trex.config.json

{
  "importMap": "import-map.json"
}

trex.config.jsonによる設定内容はtrex global-configコマンドによる設定内容よりも優先されます。

今のところ、importMapオプションによるImport mapsファイルの指定のカスタマイズのみがサポートされています。

また、trex global-configコマンドによる設定内容はlocalStorageに保存されるようです。


https://github.com/crewdevio/Trex/releases/tag/v1.12.0