Hacktoberfest 2026: le issue che i maintainer hanno segnato per ottobre, aperte e adatte ai principianti. Sfoglia le issue Hacktoberfest

Remove closures for callable types

Aperta
#657 2 commenti 0 reazioni 0 assegnatari Vedi su GitHub

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
5/5
Tempo stimato
Più di una settimana
Idoneità per principianti
20/100
Tipo di issue
Refactoring
Chiarezza
Da chiarire
Stato di attività
Ferma
Stack tecnologico
julia

Direzione di ricerca

Inizia individuando le closure utilizzate per gli aggiunti e verificando come variano i loro tipi tra le sessioni. Esamina quindi il comportamento di precompilazione e inferenza di Julia per l'implementazione attuale, poi valuta l'ambito della sostituzione di queste closure con tipi invocabili. Il lavoro sarà considerato completato quando ci sarà accordo sullo stile di programmazione e saranno disponibili prove di un miglioramento delle prestazioni di compilazione o di esecuzione senza modificare il comportamento.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

design needs-careful-thought performance

Because closures are not consistent types, they inhibit precompilation. If the closures used for the adjoints were instead callable types, which would make sure that every session has the same types and thus they should in theory be amenable to precompilation. This would be a huge but non-breaking code churn. I wonder if everyone would be okay with that programming style. It would also help in many cases with inference, because closures are known to cause inference issues. So in general this could improve compile and run time performance quite a bit, but it's a bit nasty.

Lingua principale
Julia
Stelle
475
Fork
98
Merge medio
1g 3h
PR unite (30g)
2

Preparare l'ambiente

Questo progetto non fornisce container di sviluppo, Dockerfile né guida per i contributori, quindi l'ambiente è a tuo carico: parti dal suo README e consulta la nostra guida al primo contributo per i passaggi generali.

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di JuliaDiff/ChainRules.jl

Tutte le issue di JuliaDiff/ChainRules.jl

Issue simili

Altre issue su Julia

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.