Elixir reworks formula for extra speed and more security

Elixir reworks formula for extra speed and more security

The team behind Elixir have finally distilled Version 1.8 of the multi-purpose programming language, which should facilitate event tracking, lessen compilation time, and ease security concerns.

To help instrumentation and monitoring tools with the tracking and relating of events, v1.8 tracks the relationship between code and tasks with a $callers key from the process dictionary. Before that, Elixir only annotated a process’s parents via the $ancestors key, which isn’t always helpful if you need to find out who actually called a function to begin with.

Thanks to a derivable implementation of the Inspect protocol, users of the new version can also filter data from data structures when they are inspected. This means that for example sensitive information can be kept out of logs and similar reports without developers having to include a custom Inspect implementation.

Other than that Elixir can now support time zone databases by having a Calender.TimeZoneDatabase behaviour, although it only ships with one that can handle UTC. Improvements to the compiler have reduced the compilation time again and let it emit code that is more efficient for range checks in guards, lists of chars with interpolation, and segments using records from the module of the same name.

Elixir first appeared in 2011 as a concurrent and functional programming language running on Erlang’s virtual machine. Its fields of application range from web development to embedded systems, with popular companies such as Pinterest amongst its user base. Since Elixir was designed to be extensible, language creator José Valim used the announcement to point out again, that the work on the language itself “is meant to reduce with time”.

This is why plans for upcoming versions only include one more major feature at the moment. It is called mix release and is meant to let developers bundle the language’s virtual machine and compiled code in one directory for subsequent packaging. From then on, it seems to be in the hands of the Elixir community to move the language forward.