Add guidance on when to use AOT compilation
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 3/5
- Tempo stimato
- 1-2 giorni
- Idoneità per principianti
- 45/100
- Tipo di issue
- Documentazione
- Chiarezza
- Abbastanza chiara
- Stato di attività
- Ferma
- Stack tecnologico
- clojure
- Ambito
- compilers, documentation
Direzione di ricerca
Inizia esaminando il riferimento esistente sulla compilazione AOT collegato nell’issue e individua dove inserire le indicazioni sull’uso e sul non uso. Aggiungi indicazioni documentate per gli autori di applicazioni e librerie, comprese le problematiche elencate relative a dipendenze, metadati e versioni di Clojure. Il lavoro è completato quando la documentazione spiega chiaramente quando AOT è appropriato e come gli autori di librerie possono usarlo in sicurezza.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
There is a good reference on AOT compilation, but I don't see strong guidance on when to use it, or more specifically when to not use it.
My understanding is that it is relatively safe to employ AOT compilation for an app.
But sometimes a library author will naively use AOT compilation when creating their release jar without realizing the problems this can cause for users of their library. These problems include (additions and corrections most welcome):
- aot compilation will create class files for library dependencies, this effectively brings in these dependencies (or portions of dependencies) at jar creation time, rather than runtime. A user might bring in different versions of those dependencies. Having multiple instances of a dependency on the classpath at runtime leads to confusion.
- a class file will not include metadata such as original clojure filename and line number.
- different versions of Clojure can generate different bytecode
I suppose a note on how/when to safely employ AOT compilation for a lib might also be helpful.
- Lingua principale
- HTML
- Stelle
- 259
- Fork
- 276
- Metriche di merge delle PR
- Nessuna PR unita negli ultimi 30g
Preparare l'ambiente
- Nessun Dockerfile né file Docker Compose
- Ha un modello di pull request
- Leggi la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di clojure/clojure-site
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 62/100
clojure/clojure-site#723 ·
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 65/100
clojure/clojure-site#538 · 3 commenti ·
-
help wanted
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 62/100
clojure/clojure-site#386 · 1 commento ·
-
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 55/100
clojure/clojure-site#715 ·
-
Difficoltà 5/5 Più di una settimana Idoneità per principianti 25/100
clojure/clojure-site#713 ·
Tutte le issue di clojure/clojure-site
Issue simili
-
After `require "openssl"`, a top-level `Digest` is `OpenSSL::Digest`, not the `Digest` moduleAperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 88/100
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 88/100
yhirose/cpp-peglib#344 ·
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
I maintainer di solito rispondono entro 1 giorno
-
build-problem llvm:adt
Difficoltà 2/5 1-3 ore Idoneità per principianti 76/100
llvm/llvm-project#228475 ·
I maintainer di solito rispondono entro 1 giorno