Even very basic broadcasting breaks inferability
まだ誰も着手していません。
評価
調査の方向性
Julia の @code_warntype を使って例を再現し、表示されたメソッドが ∂☆internal を経由して dispatch される stage1/forward.jl:148 から始めます。提供されている ZeroBundle、CompositeBundle、ブロードキャスト関数について呼び出しを追跡します。例が Body::Any を報告しなくなり、引き続き推論可能であれば完了です。
索引モデルが issue の本文から書いたものです。
説明
Even very simple broadcasting can't infer in Diffractor forward mode
Consider:
using Diffractor
using Diffractor: TaylorBundle, ZeroBundle, CompositeBundle
forward = Diffractor.∂☆{1}()
f(x) = 2 .* x
cb = CompositeBundle{1, Tuple{Float64, Float64}}((TaylorBundle{1}(1.0, (1.0,)), TaylorBundle{1}(1.0, (2.0,))))
@code_warntype forward(ZeroBundle{1}(f), cb)
The output is
julia> @code_warntype forward(ZeroBundle{1}(f), cb)
MethodInstance for (::Diffractor.∂☆{1})(::ZeroBundle{1, typeof(f)}, ::CompositeBundle{1, Tuple{Float64, Float64}, Tuple{Diffractor.TangentBundle{1, Float64, Diffractor.TaylorTangent{Tuple{Float64}}}, Diffractor.TangentBundle{1, Float64, Diffractor.TaylorTangent{Tuple{Float64}}}}})
from (::Diffractor.∂☆{N})(args::Diffractor.AbstractTangentBundle{N}...) where N @ Diffractor ~/.julia/packages/Diffractor/a9mlv/src/stage1/forward.jl:148
Static Parameters
N = 1
Arguments
#self#::Core.Const(Diffractor.∂☆{1}())
args::Tuple{ZeroBundle{1, typeof(f)}, CompositeBundle{1, Tuple{Float64, Float64}, Tuple{Diffractor.TangentBundle{1, Float64, Diffractor.TaylorTangent{Tuple{Float64}}}, Diffractor.TangentBundle{1, Float64, Diffractor.TaylorTangent{Tuple{Float64}}}}}}
Body::Any
1 ─ %1 = Core.apply_type(Diffractor.∂☆internal, $(Expr(:static_parameter, 1)))::Core.Const(Diffractor.∂☆internal{1})
│ %2 = (%1)()::Core.Const(Diffractor.∂☆internal{1}())
│ %3 = Core._apply_iterate(Base.iterate, %2, args)::Any
└── return %3
- 主要言語
- Julia
- スター
- 453
- フォーク
- 33
- PR マージ指標
- 30日以内にマージされた PR はありません
環境構築
このプロジェクトには開発コンテナ、Dockerfile、コントリビューションガイドがありません。まず README を読み、一般的な手順ははじめてのコントリビューションガイドを参照してください。
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
JuliaDiff/Diffractor.jl のほかの issue
-
難易度 2/5 1〜3時間 初心者へのやさしさ 25/100
JuliaDiff/Diffractor.jl#302 · コメント 2 件 ·
-
難易度 3/5 1〜2日 初心者へのやさしさ 52/100
JuliaDiff/Diffractor.jl#294 ·
-
bug
難易度 4/5 3〜5日 初心者へのやさしさ 35/100
JuliaDiff/Diffractor.jl#293 ·
-
bug
難易度 4/5 3〜5日 初心者へのやさしさ 35/100
JuliaDiff/Diffractor.jl#290 · コメント 8 件 ·
-
難易度 3/5 1〜2日 初心者へのやさしさ 35/100
JuliaDiff/Diffractor.jl#280 · コメント 1 件 ·
JuliaDiff/Diffractor.jl の issue をすべて見る
似ている issue
-
難易度 2/5 1〜3時間 初心者へのやさしさ 62/100
CliMA/ClimaAtmos.jl#4891 · コメント 1 件 ·
メンテナーはふだん 1 日以内に返信
-
tagbot-manual
難易度 1/5 1時間未満 初心者へのやさしさ 75/100
tshort/StaticCompiler.jl#191 ·
-
難易度 2/5 1〜3時間 初心者へのやさしさ 68/100
SciML/SciMLSensitivity.jl#1703 · コメント 1 件 ·
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 68/100
JuliaGPU/GPUCompiler.jl#1008 ·
メンテナーはふだん 1 日以内に返信
-
`biggs6` disagrees with CUTEst and is unbounded below対応中かも @timholy が 1 日前に担当しました。 オープンbug
難易度 2/5 1〜3時間 初心者へのやさしさ 68/100