Problems with the `DEFINED_DIFFRULES` implementation
Evaluación
- Dificultad
- 5/5
- Tiempo estimado
- Más de una semana
- Aptitud para principiantes
- 25/100
- Tipo de issue
- Refactorización
- Claridad
- Necesita aclaración
- Estado de actividad
- Estancado
- Stack tecnológico
- julia
- Área
- developer-experience
Línea de trabajo
Comienza leyendo la implementación de DEFINED_DIFFRULES en DiffRules.jl y los puntos de entrada de introspección DiffRules.diffrules y DiffRules.hasdiffrule. Investiga cómo se comporta @define_diffule en paquetes y extensiones precompilados por separado; se considera terminado cuando se haya seleccionado y documentado un diseño compatible con versiones anteriores que gestione reglas externas y el acceso basado en módulos.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
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.
- Lenguaje dominante
- Julia
- Estrellas
- 74
- Forks
- 36
- Métricas de merge de PR
- Sin PR fusionados en 30 d
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
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de JuliaDiff/DiffRules.jl
-
Package extensionsPosiblemente ocupada @devmotion la tomó hace 27 días. Abierto
Dificultad 4/5 3-5 días Aptitud para principiantes 48/100
JuliaDiff/DiffRules.jl#106 · 2 comentarios · 2 reacciones ·
-
Stable documentat is not latestAbierto
Dificultad 3/5 1-2 días Aptitud para principiantes 35/100
JuliaDiff/DiffRules.jl#104 ·
-
Dificultad 4/5 3-5 días Aptitud para principiantes 35/100
JuliaDiff/DiffRules.jl#102 · 2 comentarios ·
-
Derivatives of max and minAbierto
Dificultad 5/5 Más de una semana Aptitud para principiantes 25/100
JuliaDiff/DiffRules.jl#68 · 2 comentarios ·
-
closed under packages?Abierto
Dificultad 5/5 Más de una semana Aptitud para principiantes 20/100
JuliaDiff/DiffRules.jl#65 · 1 comentario ·
Todos los issues de JuliaDiff/DiffRules.jl
Issues similares
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
JuliaGPU/KernelAbstractions.jl#897 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
oscar-system/GAP.jl#1455 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 65/100
JuliaAI/MLJTransforms.jl#85 ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 70/100
SciML/OrdinaryDiffEq.jl#4875 ·
Los mantenedores suelen responder en 4 días