Hacktoberfest 2026: die Issues, die Maintainer für den Oktober markiert haben – offen und einsteigerfreundlich. Hacktoberfest-Issues durchsuchen

Problems with the `DEFINED_DIFFRULES` implementation

Offen
#90 0 Kommentare 1 Reaktion 0 zugewiesene Personen Auf GitHub ansehen

@devmotion arbeitet bereits daran.

Seit 18.9.2026.

  • #120 von @devmotion — offen

Bewertung

Schwierigkeit
5/5
Geschätzter Aufwand
Über eine Woche
Anfängerfreundlichkeit
25/100
Issue-Typ
Refactoring
Klarheit
Muss geklärt werden
Aktivitätsstatus
Veraltet
Tech-Stack
julia

Rechercherichtung

Beginne mit dem Lesen der Implementierung von DEFINED_DIFFRULES in DiffRules.jl und der Einstiegspunkte zur Introspektion DiffRules.diffrules und DiffRules.hasdiffrule. Untersuche, wie sich @define_diffule in separat vorkompilierten Packages und Extensions verhält; abgeschlossen ist die Aufgabe, wenn ein abwärtskompatibles Design ausgewählt und dokumentiert wurde, das externe Regeln und den zugriffs auf Modulebene handhabt.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Beschreibung

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_diffule will 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.

Vorherrschende Sprache
Julia
Sterne
74
Forks
36
PR-Merge-Kennzahlen
Keine gemergten PRs in 30 T.

Entwicklungsumgebung

Dieses Projekt bietet weder Dev-Container noch Dockerfile noch Beitragsleitfaden – die Einrichtung liegt bei Ihnen. Beginnen Sie mit der README; die allgemeinen Schritte stehen in unserem Leitfaden für den ersten Beitrag.

Erste Schritte

  1. Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
  3. Forken Sie das Repository und arbeiten Sie in einem Branch.
  4. Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.

Mehr aus JuliaDiff/DiffRules.jl

Alle Issues in JuliaDiff/DiffRules.jl

Ähnliche Issues

Weitere Issues zu Julia

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.