`backing` doesn't allow for undef fields

Abierto
#392 1 comentario 0 reacciones 0 asignados Ver en GitHub

Los mantenedores suelen responder en 1 día

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
3/5
Tiempo estimado
1-2 días
Aptitud para principiantes
35/100
Tipo de issue
Error
Claridad
Bastante claro
Estado de actividad
Estancado
Stack tecnológico
julia
Área
devtools

Línea de trabajo

Reproduce el ejemplo Tridiagonal e inspecciona el backing en src/differentials/composite.jl alrededor de la línea 137, como se muestra en el stack trace. Determina cómo se accede al campo undef du2; se considera terminado cuando backing(x) maneja este objeto sin generar UndefRefError, con coverage añadido si el repositorio proporciona una ubicación de prueba relevante.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

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
Lenguaje dominante
Julia
Estrellas
267
Forks
66
Merge medio
1 d 1 h
PR fusionados (30 d)
9

Preparar el entorno

Este proyecto no incluye contenedor de desarrollo, Dockerfile ni guía de contribución, así que la configuración corre por tu cuenta: empieza por su README y consulta nuestra guía para la primera contribución para los pasos generales.

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de JuliaDiff/ChainRulesCore.jl

Todos los issues de JuliaDiff/ChainRulesCore.jl

Issues similares

Más issues de Julia

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.