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を使用して実装されているようです。