gleam-lang/gleam

Optimise decision tree for bit arrays

クローズ

#4,524 opened on 2025/04/29

 (9 件のコメント) (2 件のリアクション) (0 人の担当者)Rust (960 件のフォーク)batch import
help wanted

Repository metrics

Stars
 (21,417 個のスター)
PR merge metrics
 (平均マージ 10d 19h) (30d で 69 merged PRs)

説明

Right now when generating code for bit arrays we might end up doing something like this:

if (size > n) {
  if (size === n + 10) {
    // ...
  } else {
    // body_1
  }
} else {
  // body_1
}

If all else branches have the same body it would be really nice to make the tree shorter and skip the first check entirely:

if (size === n + 10) {
  // ...
} else {
  // body_1
}

This might be quite challenging and could require reading more on how to reduce the tree size: this could be a very good resource for that https://user.it.uu.se/~kostis/Papers/JFP_06.pdf

コントリビューターガイド