Problems with the `DEFINED_DIFFRULES` implementation
評価
- 難易度
- 5/5
- 見積もり時間
- 1週間以上
- 初心者へのやさしさ
- 25/100
- issue の種類
- リファクタリング
- 明瞭さ
- 説明が足りない
- 活発さ
- 停滞
- 技術スタック
- julia
調査の方向性
まず、DiffRules.jl の DEFINED_DIFFRULES 実装と、イントロスペクションのエントリポイントである DiffRules.diffrules および DiffRules.hasdiffrule を読みます。別々に事前コンパイルされたパッケージと拡張機能で @define_diffule がどのように動作するかを調査します。外部ルールとモジュールベースのアクセスを処理する後方互換性のある設計を選定し、文書化できれば完了です。
索引モデルが issue の本文から書いたものです。
説明
Many "introspection" functions in DiffRules like DiffRules.diffrules look at the global variable DEFINED_DIFFRULES to collect information about what diff rules are defined. I think this has some issues:
- Only diff rules defined inside DiffRules.jl will be inside
DEFINED_DIFFRULES. Packages that use@define_diffulewill not be in that list. That is because side effects like adding to a global variable are not visible when modified during the time a package gets precompiled. You would have to add stuff to it in__init__for it to be visible. - Accesses are made with a symbol as an argument, for example,
DiffRules.hasdiffrule(:Base, :sin, 1). This feels to me like it should be made with a module as first argument.
I encounter this when I try to make e.g. LogExpFunctions into an extension (which makes it a separate module). I'm trying to think of ways to improve this that are backwards compatible.
- 主要言語
- Julia
- スター
- 74
- フォーク
- 36
- PR マージ指標
- 30日以内にマージされた PR はありません
環境構築
このプロジェクトには開発コンテナ、Dockerfile、コントリビューションガイドがありません。まず README を読み、一般的な手順ははじめてのコントリビューションガイドを参照してください。
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
JuliaDiff/DiffRules.jl のほかの issue
-
Package extensions対応中かも @devmotion が 30 日前に担当しました。 オープン
難易度 4/5 3〜5日 初心者へのやさしさ 48/100
JuliaDiff/DiffRules.jl#106 · コメント 2 件 · リアクション 2 件 ·
-
難易度 3/5 1〜2日 初心者へのやさしさ 35/100
JuliaDiff/DiffRules.jl#104 ·
-
難易度 4/5 3〜5日 初心者へのやさしさ 35/100
JuliaDiff/DiffRules.jl#102 · コメント 2 件 ·
-
難易度 5/5 1週間以上 初心者へのやさしさ 25/100
JuliaDiff/DiffRules.jl#68 · コメント 2 件 ·
-
難易度 5/5 1週間以上 初心者へのやさしさ 20/100
JuliaDiff/DiffRules.jl#65 · コメント 1 件 ·
JuliaDiff/DiffRules.jl の issue をすべて見る
似ている issue
-
code-review
難易度 2/5 1〜3時間 初心者へのやさしさ 72/100
-
OptimizationCUTEst jobs fail: gfortran not installed on the runner対応中かも @ChrisRackauckas-Claude が今日担当しました。 オープン
難易度 2/5 1〜3時間 初心者へのやさしさ 68/100
SciML/SciMLBenchmarks.jl#1946 · コメント 1 件 ·
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 75/100
JuliaSmoothOptimizers/NCL.jl#101 ·
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 69/100
-
難易度 2/5 1〜3時間 初心者へのやさしさ 66/100
メンテナーはふだん 1 日以内に返信