Die neue Version 1.8 der funktionalen und nebenläufigen Programmiersprache Elixir vereinfacht das Filtern in Structs und bringt ein API für Zeitzonen.
Daten mit “Inspect” aus Datenstrukturen zu filtern, gelingt in Elixir 1.8 neuerdings auch über die Ableitung “@derive”. Über sie lassen sich nur bestimmte Felder vorauswählen, die Inspect untersuchen soll. Umgekehrt lassen sich auch nur solche Felder definieren, die “Inspect” aus der Suche ausnehmen soll. Zuvor ließ sich so ein Filter über Anpassungen am “Inspect”-Protokoll umsetzen, der neue Weg ist einfacher.
Für das “DateTime”-Modul gab es lange kein API, um mit Zeitzonen umzugehen, was laut der Ankündigung dessen Entwicklung etwas verlangsamte. Die neue “Calendar.TimeZoneDatabase” erlaubt es Entwicklern, eigene Zeitzonendatenbanken zu verwenden. Über explizite Contracts für Zeitzonenverhalten lässt sich nun auch das”DateTime”-API mit diesen verwenden. Elixir selbst bringt standardmäßig nur eine UTC-Zeitzonendatenbank namens “Calendar.UTCOnlyTimeZoneDatabase” mit.
Schnellerer Compiler, transparentere Tasks
Der Compiler soll nun 5 Prozent schneller arbeiten und effizienteren Code für bestimmte Konstrukte, beispielsweise Reichweitenchecks in Guards, ausliefern. Optimierungen betreffen auch EEx-Templates, die kompakteren und effizienteren Code produzieren.
Neue Tasks starten Entwickler auf Empfehlung der Elixir-Macher am besten unter der Obhut eines Supervisor, um mehr Information über die laufenden Tasks zu erhalten. Allerdings schiebt sich der Supervisor zwischen den eigenen Code und den Task. Diese Beziehung zu untersuchen, ist dann schwierig. Ein neu eingeführter “$callers”-Key soll das ändern. Er ermöglicht es, die Verbindung zwischen dem geschriebenen Code und einem damit gestarteten Task zu beobachten. Das erhöht ganz generell die Einsicht in Events beim nebenläufigen Programmieren mit Elixir.




