`backing` doesn't allow for undef fields

オープン
#392 コメント 1 件 リアクション 0 件 担当者 0 名 GitHub で見る

メンテナーはふだん 1 日以内に返信

まだ誰も着手していません。

評価

難易度
3/5
見積もり時間
1〜2日
初心者へのやさしさ
35/100
issue の種類
バグ
明瞭さ
おおむね明確
活発さ
停滞
技術スタック
julia
領域
devtools

調査の方向性

スタックトレースに示されているとおり、Tridiagonal の例を再現し、src/differentials/composite.jl の 137 行目付近にある backing を調査します。undef フィールド du2 がどのようにアクセスされるかを特定します。backing(x) がこのオブジェクトを UndefRefError を発生させずに処理し、リポジトリに関連するテスト箇所がある場合は coverage が追加されていれば完了です。

索引モデルが issue の本文から書いたものです。

説明

good first issue Structural Tangent
julia> x = LinearAlgebra.Tridiagonal(rand(4,4))
4×4 Tridiagonal{Float64, Vector{Float64}}:
 0.527801  0.950961   ⋅         ⋅ 
 0.729178  0.702784  0.941096   ⋅ 
  ⋅        0.853609  0.652989  0.635001
  ⋅         ⋅        0.37831   0.755058

julia> backing(x) # UndefRefError: access to undefined reference
ERROR: UndefRefError: access to undefined reference
Stacktrace:
 [1] macro expansion
   @ ~/.julia/dev/ChainRulesCore/src/differentials/composite.jl:0 [inlined]
 [2] backing(x::Tridiagonal{Float64, Vector{Float64}})
   @ ChainRulesCore ~/.julia/dev/ChainRulesCore/src/differentials/composite.jl:137
 [3] top-level scope
   @ REPL[246]:1

julia> dump(x)
Tridiagonal{Float64, Vector{Float64}}
  dl: Array{Float64}((3,)) [0.7291777614996582, 0.8536091270458613, 0.3783098625198864]
  d: Array{Float64}((4,)) [0.5278007508415407, 0.7027844764212322, 0.652989419144927, 0.7550584891088709]
  du: Array{Float64}((3,)) [0.9509613254638279, 0.9410963947920769, 0.6350012077461873]
  du2: #undef

julia> fieldnames(typeof(x))
(:dl, :d, :du, :du2)

julia> isdefined(x, :du)
true

julia> isdefined(x, :du2)
false
主要言語
Julia
スター
267
フォーク
66
平均マージ
1日 1時間
マージ済み PR(30日)
9

環境構築

このプロジェクトには開発コンテナ、Dockerfile、コントリビューションガイドがありません。まず README を読み、一般的な手順ははじめてのコントリビューションガイドを参照してください。

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

JuliaDiff/ChainRulesCore.jl のほかの issue

JuliaDiff/ChainRulesCore.jl の issue をすべて見る

似ている issue

Julia の issue をもっと見る

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。