Deno v1.23.2
Deno v1.23.2がリリースされました。
スレッドセーフコールバックのサポート(FFI)
例えば、メインスレッドで登録したコールバック(Deno.UnsafeCallback)をWorkerスレッドから呼び出したり、その逆にWorkerスレッドで登録したコールバックをメインスレッドから呼び出すことができるようになりました。
また、Deno.UnsafeCallbackにrefとunrefメソッドが実装されており、refを呼ぶことでDenoプロセスの停止を防止することができます。(Deno.refTimerなどと同様の挙動)
https://github.com/denoland/deno/pull/14942
その他の変更点
- FFIで空のArrayBufferを渡すとプロセスパニックする問題が修正されています。
- deno lspの- deno/cacheメソッド(vscode-denoだと- Deno: Cache Dependenciesコマンド)で依存関係をキャッシュした際に、TypeScriptのランゲージサービスが自動で再起動されるようになりました。
- Deno.bench()や- Deno.test()を含むファイルを- deno runで実行すると、エラーが発生する問題が修正されています。
https://github.com/denoland/deno/releases/tag/v1.23.2
deno_std v0.146.0
deno_std v0.146.0がリリースされました。
collections: BSTreeとRBTreeのリネーム
collectionsモジュールで提供されているBSTreeがBinarySearchTreeに、RBTreeがRedBlackTreeにリネームされています。
その他の変更点
- testing/asserts:- assertEqualsで同じ要素を持つ- Set同士を比較しているにも関わらず、例外が発生するケースがあったため、修正されています。
- streams/delimiter:- TextLineStreamで大きなチャンクを処理する際に- Maximum call stack size exceededエラーが発生することがある問題が修正されました。
- node/util:- util.inspect()や- util.format()で6つを超える要素数の配列が正しくフォーマットされるように修正されています。
https://github.com/denoland/deno_std/releases/tag/0.146.0
JITコンパイラによるFFIの最適化
Deno本体へのJITコンパイラの導入により、FFIバインディングを最適化するPRが作成されています。
内部的には、tinyccが使用されているようです。
https://github.com/denoland/deno/pull/15006
Fresh v1
Fresh v1.0.0がリリースされました。
これに合わせて、Freshのリポジトリがdenoland organization配下に移動されています。
また、Deno公式でFreshの紹介記事が公開されています。
https://github.com/denoland/fresh
denoland/meet-me
Deno公式で、Calendlyのクローンアプリが公開されています。
Deno Deploy+Firebase+Aleph.jsを使用して実装されているようです。