Elixir v1.15 est sorti, une mise à jour de version mineure qui améliore principalement les temps de compilation et de démarrage. Une intégration avec l'enregistreur Erlang/OTP a également été réalisée, apportant de nouvelles fonctionnalités telles que la rotation et la compression des journaux prêtes à l'emploi.
- Améliorer les temps de compilation et de démarrage
Elixir met désormais en cache et élague les chemins de chargement avant la compilation, garantissant que les projets (et les dépendances) se compilent plus rapidement dans des environnements plus proches de la production.
En bref, parce que la machine virtuelle Erlang charge les modules à partir du chemin du code. Chaque application et chaque dépendance livrée avec Erlang et Elixir devient une entrée dans le chemin du code. Ainsi, plus le chemin de code est grand, plus Erlang doit travailler pour trouver le module.
Dans les versions précédentes, Mix ajoutait uniquement des entrées au chemin de chargement. Ainsi, si vous compilez 20 dépendances, puis que vous compilez la 21ème dépendance, le chemin du code aura 21 entrées (plus toutes les applications Erlang et Elixir). Comme cela autorise les modules à partir de dépendances non liées, et plus il y a de dépendances, plus la compilation sera lente.
La nouvelle version limite désormais les chemins de code à ceux répertoriés comme dépendances, ce qui rapproche le comportement mix release
.
L'effet est le suivant :
- Enregistreur Erlang/OTP intégré
Cette version fournit des fonctionnalités supplémentaires telles que les métadonnées globales de l'enregistreur et la journalisation des fichiers prête à l'emploi.
La nouvelle version déprécie également le backend Logger d'Elixir au profit des gestionnaires Logger d'Erlang. Elixir convertira automatiquement :console
la configuration du backend vers la nouvelle configuration. La configuration précédente était :
config :logger, :console,
level: :error,
format: "$time $message $metadata"
devient maintenant :
config :logger, :default_handler,
level: :error
config :logger, :default_formatter,
format: "$time $message $metadata"