Elixir

Elixir

Elixir Core Team

Elixir v1.19.0-rc.1 released

1. Enhancements

Elixir

  • [Kernel] Raise when U+2028 and U+2029 characters are present in comments and strings to avoid line spoofing attacks
  • [Kernel] Include the line for the previous clause in errors/warnings related to conflicts between defaults on function definitions
  • [Macro] Add __escape__/1 callback so structs can escape references and other runtime data types in Macro.escape/1
  • [OptionParser] Support the :regex type
  • [OptionParser] Enhance parsing error to display available options
  • [String] Update to Unicode 17.0.0

ExUnit

  • [ExUnit] Set a process label for each test

Logger

  • [Logger] Accept any enumerable in Logger.metadata/1

Mix

  • [mix format] Add options to mix format to allow excluding of files
  • [mix test] Add --name-pattern option to mix test
  • [Mix.install/2] Support the :compilers option

2. Bug fixes

Elixir

  • [Code] Return error on invalid unicode sequences in Code.string_to_quoted/2 instead of raising
  • [Code] Properly handle column annotation for in in not in expressions
  • [Enum] Fix infinite loop on Enum.take/2 with negative index on empty enumerable
  • [Inspect] Inspect ill-formed structs as maps
  • [Kernel] Properly increment metadata newline when ? is followed by a literal newline character

ExUnit

  • [ExUnit.Assertions] Fix order in ExUnit results when listing pinned variables
  • [ExUnit.Assertions] Raise if attempting to raise an assertion error with invalid message (not a binary)

IEx

  • [IEx] Abort pipelines when there is an error in any step along the way

Mix

  • [mix compile] Fix bug where reverting changes to an external resource (such as HEEx template) after a compilation error would make it so the source module would not be compiled
  • [mix compile] Avoid failures when locking compilation across different users
  • [mix compile] Fix race condition when renaming files used by the compilation lock
  • [mix test] Prevent mix test from overriding :failures_manifest_path option

3. Hard deprecations

Elixir

  • [Code] Warn if line-break characters outside of \r and \r\n are found in strings according to UX#55. This warning will be fast-tracked into an error for security reasons in Elixir v1.20, following a similar rule to bidirectional control characters. They will already raise if found in comments

Most Liked

josevalim

josevalim

Creator of Elixir

Alright folks, in a nutshell, this release addresses all feedback from the previous RC:

  1. Fully compatible with Erlang/OTP 28.1+
  2. Struct update syntax has been adapted into a type assertion operator
  3. Addresses issues with certain dependencies taking too long to compile

Please give it a try, so we can finally ship v1.19!

38
Post #3
frankdugan3

frankdugan3

Just want to share the performance gains on deps compilations for my large day-job project on an AMD Ryzen 9 5900X 12-Core Processor:

mix deps.compile --force
frank@…git/hsm/main on  main [✘!?⇡] via 💧 v1.18.4 (OTP 27) took 2m20s
mix compile --force
Compiling 569 files (.ex)
frank@…git/hsm/main on  main [✘!?⇡] via 💧 v1.18.4 (OTP 27) took 18s
mix deps.compile --force
mix deps.compile running across 24 OS processes
frank@…git/hsm/main on  main [✘!?⇡] via 💧 v1.19.0-rc.1 (OTP 28) took 55s
mix compile --force
Compiling 569 files (.ex)
frank@…git/hsm/main on  main [✘!?⇡] via 💧 v1.19.0-rc.1 (OTP 28) took 19s

Great work, team! :rocket:

20
Post #4
josevalim

josevalim

Creator of Elixir

@Eiji it is fine to put just a snippet asking if someone else ran into the same issue. It helps in case the issue is known so they don’t have to dig deeper.

In this case, however, this issue is not known, so we would indeed need a reproduction.

Thank you @hkrutzer, @Eiji and everythone else helping us catch the remaining bugs.

sabiwara

sabiwara

Elixir Core Team

Linking your issue here for the record since you did manage to reproduce it (thank you!)

Eiji

Eiji

Oh, looks like you get it wrong. Of course, it’s fine to ask a simplest question, so we can ask about details later (unless mods would give us more strict rules). Maybe it was just my intuition, but it did not look like something that’s so “easy to solve” (as explained above).

I was online, so I could spend let’s say 5 min on accepting invite and investigate problem. I did things like that before mostly for Elixir core and credo. I’m more than fine doing such a small things even for free as I like testing new changes in Elixir and if someone would find me helpful and offer me a contract it would be a nice bonus.

Where Next?

Popular in News Top

Elixir
1. Enhancements Elixir [Kernel] Support /E modifier for regular expressions in config files Mix [mix compile] Allow forcing specific c...
New
Elixir
Release: https://github.com/elixir-lang/elixir/releases/tag/v1.11.0 Over the last releases, the Elixir team has been focusing on the com...
New
Elixir
Note this release includes offline Elixir installers for Windows per supported Erlang/OTP version. 1. Enhancements Elixir [Module] Mark...
New
ericmj
A few months back we announced on the forum that we are adding support for private packages to Hex, today we are out of beta and going li...
New
Elixir
1. Bug fixes Logger [Logger.Translator] Fix logger crash when :gen_statem’s format_status/2 returns non-tuple Mix [mix deps.get] Fix r...
New
josevalim
Note: this is a language proposal so please keep the discussion on topic. If you want to talk about related behaviour but not strictly pa...
New
Elixir
Release: https://github.com/elixir-lang/elixir/releases/tag/v1.10.3 1. Bug fixes Elixir [Code] Return [{mod, bin}] from Code.compile_fi...
New
Elixir
Release: https://github.com/elixir-lang/elixir/releases/tag/v1.10.4 1. Bug fixes Elixir [Kernel] Fix a bug where custom types were prin...
New
Elixir
Release: Release v1.12.0-rc.0 · elixir-lang/elixir · GitHub Note: this is a release candidate. Please try it out and give us feedback! G...
New
Elixir
Release: https://github.com/elixir-lang/elixir/releases/tag/v1.10.0-rc.0 Support for Erlang/OTP 21+ Elixir v1.10 requires Erlang/OTP 21+...
New

Other popular topics Top

yurko
Here are few pieces of (common) Linux knowledge that we use for reasonably small one server apps. We use Ubuntu but this should work for ...
New
shahryarjb
Hello, I get Persian date from my client and convert it to normal calendar like this: def jalali_string_to_miladi_english_number(persi...
New
JakeBecker
TL;DR: I’ve just released an implementation of Microsoft’s IDE-independent Language Server Protocol for Elixir. It adds language support ...
1140 51847 244
New
senggen
Erlang/OTP 25 [erts-13.2.2] [source] [64-bit] [smp:8:8] [ds:8:8:10] [async-threads:1] 15:22:35.803 [error] gen_event {lager_file_backend...
New
KronicDeth
Elixir plugin for JetBrain’s IntelliJ Platform (including Rubymine) This is a plugin that adds support for Elixir to JetBrains IntelliJ...
289 35421 110
New
New
polypush135
As many of you may have realized by now (sorry for all the posts here) I’ve been working on a db problem where I’m trying to aggregate a ...
New
aadeshere1
I have a another noob question about loop. Since elixir is immutable, while loop is not directly possible. total = 10 while total != 0 ...
New
belgoros
I’m not a pro in using Regex and can’t figure out why the following behaviour happens, especially if we take into account the difference ...
New
Fl4m3Ph03n1x
About me? ( if you have nothing better to do than reading about some random guy in the internet :stuck_out_tongue: ) Hello all, this is ...
New

We're in Beta

About us Mission Statement