Package Release Info

elixir-1.9.4-bp152.2.14

Update Info: Base Release
Available in Package Hub : 15 SP2

platforms

AArch64
ppc64le
s390x
x86-64

subpackages

elixir

Change Logs

* Sun Dec 15 2019 Matwey Kornilov <matwey.kornilov@gmail.com>
- Refresh elixir-1.9.4.tar.gz jsc#SLE-10913
* Tue Dec 03 2019 Gabriele Santomaggio <gsantomaggio@suse.de>
- Elixir 1.9.4
  * Bug fixes
    Mix
    [mix local.hex] Remove invalid deprecation warning on mix local.hex command
- Elixir 1.9.3
  * Enhancements
    Mix
    [mix release] Add :tar option for releases to create a tarball
  * Bug fixes
    Mix
    [mix release] Use default_release option when name is not given
    [mix release] Make release's boot script contents deterministic
  * Deprecations
    Mix
    [mix archive.install] Warn when installing from URI
    [mix escript.install] Warn when installing from URI
- Elixir 1.9.2
  * Enhancements
    Mix
    [mix release] Allow {:from_app, app_name} as a version for releases
  * Bug fixes
    Elixir
    [Kernel] Ensure compilation works for a variable named super
    [Kernel] Ensure capture operator of a local function expands correctly inside a macro
    [Regex] Ensure dynamic recompilation of regexes considers options.
    This fixes an issue where parsing the protocol in URI.parse/1 seemingly looked case sensitive when running Elixir precompiled on another machine
  * Mix
    [mix release] Use Base.encode32 when generating cookie to avoid unsafe chars
    [mix release] Fix install command on Windows
    [mix release] Quote executable path on Windows to ensure it works on directories with spaces
- Elixir 1.9.1
  * Enhancements
    Mix
    [mix format] Print relative paths in --check-formatted output
    [mix release] Support included applications
  * Bug fixes
    Elixir
    [Code] Fix formatter wrongly removing nested parens in nested calls
  * Logger
    [Logger] Do not crash translator on poorly formatted supervisor names
  * Mix
    [mix compile] Raise readable error for mismatched sources during compilation
    [mix release] Preserve UTF8 encoding in release config files
* Tue Jun 25 2019 g.santomaggio@gmail.com
- Elixir 1.9.0
  * Enhancements
    EEx
    [EEx] Allow more complex mixed expressions when tokenizing
    Elixir
    [Access] Allow Access.at/1 to handle negative index
    [CLI] Add support for --boot, --boot-var, --erl-config, --pipe-to, --rpc-eval, and --vm-args options
    [Code] Add static_atom_encoder option to Code.string_to_quoted/2
    [Code] Support :force_do_end_blocks on Code.format_string!/2 and Code.format_file!/2
    [Code] Do not raise on deadlocks on Code.ensure_compiled/1
    [Config] Add Config, Config.Reader, and Config.Provider modules for working with configuration
    [File] Add File.rename!/2
    [Inspect] Add :inspect_fun and :custom_options to Inspect.Opts
    [Kernel] Add ~U sigil for UTC date times
    [Kernel] Optimize &super/arity and &super(&1)
    [Kernel] Optimize generated code for with with a catch-all clause
    [Kernel] Validate __struct__ key in map returned by __struct__/0,1
    [Module] Add Module.get_attribute/3
    [Protocol] Improve Protocol.UndefinedError messages to also include the type that was attempted to dispatch on
    [Protocol] Optimize performance of dynamic dispatching for non-consolidated protocols
    [Record] Include field names in generated type for records
    [Regex] Automatically recompile regexes
    [Registry] Add Registry.select/2
    [System] Add System.restart/0, System.pid/0 and System.no_halt/1
    [System] Add System.get_env/2, System.fetch_env/1, and System.fetch_env!/1
    [System] Support SOURCE_DATE_EPOCH for reproducible builds
    ExUnit
    [ExUnit] Allow multiple :exclude on configuration/CLI
    [ExUnit.DocTest] No longer wrap doctest errors in custom exceptions. They ended-up hiding more information than shing
    [ExUnit.DocTest] Display the actual doctest code when doctest fails
    IEx
    [IEx.CLI] Copy ticktime from remote node on IEx --remsh
    [IEx.CLI] Automatically add a host on node given to --remsh
    Logger
    [Logger] Use a decentralized mode computation for Logger which allows overloads to be detected more quickly
    [Logger] Use persistent_term to store configuration whenever available for performance
    Mix
    [Mix] Follow XDG base dir specification in Mix for temporary and configuration files
    [Mix.Generator] Add copy_file/3, copy_template/4, and overwite?/2
    [Mix.Project] Add preferred_cli_target that works like preferred_cli_env
    [mix archive.uninstall] Allow mix archive.uninstall APP to uninstall any installed version of APP
    [mix new] No longer generate a config/ directory for mix new
    [mix release] Add support for releases
    [mix release.init] Add templates for release configuration
    [mix test] Allow running tests for a given umbrella app from the umbrella root with mix test apps/APP/test. failures also include the apps/APP prefix in the test location
  * Bug fixes
    EEx
    [EEx] Consistently trim newlines when you have a single EEx expression per line on multiple lines
    Elixir
    [Code] Quote :: in Code.format_string!/1 to avoid ambiguity
    [Code] Do not crash formatter on false positive sigils
    [Enum] Ensure the first equal entry is returned by Enum.min/2 and Enum.max/2
    [Kernel] Improve error message when string interpolation is used in a guard
    [Kernel] Properly merge and handle docs for callbacks with multiple clauses
    [Kernel] Guarantee reproducible builds on modules with dozens of specs
    [Kernel] Resolve __MODULE__ accordingly in nested defmodule to avoid double nesting
    [Kernel] Type variables starting with an underscore (_foo) should not raise compile error
    [Kernel] Keep order of elements when macro in/2 is expanded with a literal list on the right-hand side
    [Kernel] Print proper location on undefined function error from dynamically generated functions
    [System] Make sure :init.get_status/0 is set to {:started, :started} once the system starts
    [Path] Do not expand ~ in Path.expand/2 when not followed by a path separator
    [Protocol] Ensure debug_info is kept in protocols
    [Regex] Ensure inspect returns valid ~r// expressions when they are manually compiled with backslashes
    [Registry] Fix ETS leak in Registry.register/2 for already registered calls in unique registries while the procesis still alive
    ExUnit
    [ExUnit] Raise error if attempting to run single line tests on multiple files
    [ExUnit] Return proper error on duplicate child IDs on start_supervised
    IEx
    [IEx] Automatically shut down IEx if we receive EOF
    Logger
    [Logger] Don't discard Logger messages from other nodes as to leave a trail on both systems
    Mix
    [mix compile] Ensure Erlang-based Mix compilers (erlang, leex, yecc) set valid position on diagnostics
    [mix compile] Ensure compilation halts in an umbrella project if one of the siblings fail to compile
    [mix deps] Raise an error if the umbrella app's dir name and mix.exs app name don't match
    [mix deps.compile] Fix subcommand splitting bug in rebar3
    [mix test] Do not consider modules that are no longer cover compiled when computing coverage report, which couldlead to flawed reports
  * Soft-deprecations (no warnings emitted)
    Mix
    [Mix.Config] Mix.Config has been deprecated in favor of the Config module that now ships as part of Elixir itself.Reading
    configuration files should now be done by the Config.Reader module
  * Hard-deprecations
    Elixir
    [CLI] Deprecate --detached option, use --erl "-detached" instead
    [Map] Deprecate Enumerable keys in Map.drop/2, Map.split/2, and Map.take/2
    [String] The :insert_replaced option in String.replace/4 has been deprecated.
    Instead you may pass a function as a replacement or use :binary.replace/4 if you need to support earlier Elixir versions
    Mix
    [Mix.Project] Deprecate Mix.Project.load_paths/1 in favor of Mix.Project.compile_path/1
  * Full release notes: https://github.com/elixir-lang/elixir/releases/tag/v1.9.0
* Mon May 27 2019 g.santomaggio@gmail.com
- Elixir 1.8.2
  * Bug fixes
    [EEx] Raise readable error message on bad EEx state
    Elixir
    [Protocol] Ensure :debug_info is kept in protocols
    Logger
    [Logger] Make sure Logger v1.8 does not get stuck in discard mode
    [Logger.Translator] Translate remote process crash in Logger
Version: 1.11.3-bp153.1.16
* Mon Jan 11 2021 Sven Marquardt <dev@mail.smarquardt.space>
- Elixir 1.11.3
  * Enhancements
  Elixir
  [Macro] Add Macro.unique_var/2 and Macro.generate_unique_arguments/2
  * Bug fixes
  Elixir
  [Code] Do not raise when checking for operator ambiguity when :static_atoms_encoder is set in Code.string_to_quoted
  [Kernel] Emit undefined function warnings from with
  [Kernel] Do not fail type checking when literals are used in guards
  [Module] Do not warn for attributes used in @after_compile
  [Record] Make sure nested record names do not clobber each other
  ExUnit
  [ExUnit.Assertions] Do not crash if there are macros and module attributes on the left side of ++
  IEx
  [IEx.Helpers] Do not use Unicode chars if ANSI is disabled
  Mix
  [mix deps.compile] Fix compatibility with rebar v3.14
  [mix release] Do not use private ram_file:compress/1
  [mix xref] Do not crash when retrieving calls for modules in memory
* Wed Nov 04 2020 Sven Marquardt <dev@mail.smarquardt.space>
- Elixir 1.11.2
  * Bug fixes
  Elixir
  [Code] Do not crash when getting docs for missing `erts` appdir
  [Kernel] Raise meaningful error if `:erlang.is_record` is used in guards
  [Kernel] Prune tracers when fetching `__ENV__` inside functions
  Mix
  [mix] Fix regression where aliases could not call themselves recursively
  [mix compile] Do not discard tracers that are set programatically
* Mon Oct 19 2020 Sven Marquardt <dev@mail.smarquardt.space>
- Elixir 1.11.1
  * Bug fixes
  Elixir
  [Code] Ignore tracers if lexical tracker is dead or explicitly nil when evaling code with an environment
  [GenServer] Do not show warning when using `super` in `GenServer.child_spec/1`
  [Kernel] Do not crash when :reduce is set to `nil` in comprehensions
  [Kernel] Fix a scenario where undefined function warnings were not being emitted
  IEx
  [IEx.Helpers] Properly handle tags inside typespec when showing Erlang docs
  Logger
  [Logger] Do not deadlock Logger if handler crashes on sync mode
  Mix
  [Mix] Add inet6 fallback to Mix usage of httpc
  [mix compile.app] Do not list apps that do not match the current target
* Mon Oct 19 2020 Sven Marquardt <dev@mail.smarquardt.space>
- Elixir 1.11.0
  * Enhancements
  EEx
  [EEx] Track column information in EEx templates when enabled in the compiler
  [EEx] Show column information in EEx error messages
  [EEx] Support `:indentation` option when compiling EEx templates for proper column tracking
  Elixir
  [Access] Add `Access.at!/1`
  [Calendar] Add `Calendar.strftime/3` for datetime formatting
  [Calendar] Add linear integer representations to Calendar modules:
    `Date.from_gregorian_days/2`, `Date.to_gregorian_days/1`, `NaiveDateTime.from_gregorian_seconds/3`,
    `NaiveDateTime.to_gregorian_seconds/1`,`Time.from_seconds_after_midnight/1`
    and `Time.to_seconds_after_midnight/1`
  [Calendar] Add `new!` to Date/Time/NaiveDateTime/DateTime (`new` has also been added to `DateTime` for completeness)
  [Calendar] Support custom starting day of the week in `Date.day_of_week/2`
  [Calendar] Add `Date.beginning_of_month/1` and `Date.end_of_month/1`
  [Calendar] Add `Date.beginning_of_week/2` and `Date.end_of_week/2`
  [Code] Add `:column` to `Code.string_to_quoted*/2`
  [Code] Add `Code.can_await_module_compilation?/0` to check if the parallel compiler is enabled
    and it can await for other modules to be compiled
  [Config] Support `config_env/0` and `config_target/0` in `config` files
  [Config] Allow `import_config` to be disabled for some configuration files
  [Enum] Allow a sorting function on `Enum.min_max_by/3,4`, including the new `compare/2` conventions
  [Kernel] Add `is_struct/2` guard
  [Kernel] Add `is_exception/1` and `is_exception/2` guards
  [Kernel] Support `map.field` syntax in guards
  [Kernel] Add `+++` and `---` with right associativity to the list of custom operators
  [Kernel] Warn if a variable that looks like a compiler variable (such as `__MODULE__`) is unused
  [Kernel.ParallelCompiler] Report individual file compilation times when `profile: :time` is given
  [Kernel.ParallelCompiler] Improve precision of `:long_compilation_threshold` so it takes only compilation times into
    account (and not waiting times)
  [Registry] Add `Registry.delete_meta/2`
  [Task] Add `Task.await_many/2`
  ExUnit
  [ExUnit] Add support for coloring on Windows 10 consoles/shells
  [ExUnit] Add `ExUnit.fetch_test_supervisor/0`
  [ExUnit] Add `@tag :tmp_dir` support to ExUnit. The temporary directory is automatically created and pruned before each test
  [ExUnit] Add file and line to ExUnit's `--trace`
  [ExUnit.Assertion] Allow receive timeouts to be computed at runtime
  [ExUnit.Case] Add `register_test/6` to speed up compilation of custom tests
  [ExUnit.Doctest] Allow users to add tags to doctests
  IEx
  [IEx] Add support for coloring on Windows 10 consoles/shells
  [IEx.Helpers] Show docs from Erlang modules that have been compiled with the docs chunk
  Logger
  [Logger] Add `notice`, `critical`, `alert`, and `emergency` log levels
  [Logger] Support structured logging by logging maps or keyword lists
  [Logger] Allow level to be set per module with `Logger.put_module_level/2`
  [Logger] Include `erl_level` in Logger's metadata
  Mix
  [mix] Add `MIX_BUILD_ROOT` to config `_build` dir
  [mix] Introduce `MIX_XDG` as a simpler mechanism to opt-in to the XDG specification
  [mix] Allow requirements for a Mix task to be listed via the `@requirements` module attribute
  [mix] Allow optional dependencies to be defined in `:extra_applications` and `:applications`
  [mix app.config] Add new `mix app.config` task that compiles applications and loads runtime configuration
  [mix archive.install] Support `--repo` option on Hex packages
  [mix compile] Support the `__mix_recompile__?/0` callback for custom behaviour on when Mix should recompile a given
    module
  [mix compile.elixir] Mark modules for path dependencies as "Export dependencies" if they changed but their public
    interface is the same
  [mix compile.elixir] Track application boundaries in the Elixir compiler.
    If you invoke code from Erlang or Elixir standard libraries and you don't depend on the proper
    applications, a warning will be emitted. A warning will also be emitted if you invoke code from
    an umbrella sibling that you don't depend on - effectively forbidding cyclic dependencies between
    apps
  [mix deps] Sort the dependencies alphabetically before printing
  [mix deps] Use `origin/HEAD` as the default Git ref in dependencies
  [mix deps] Redact Git `username`/`password` in output log
  [mix deps] Support rebar3's `git_subdir` resource type
  [mix deps.compile] Allow local deps to be skipped on `mix deps.compile`
  {mix deps.unlock] Print which dependencies get unlocked when using the `--unused` flag
  [mix escript.install] Support `--repo` option on Hex packages
  [mix new] Add `@impl` to application generated by `mix new --sup`
  [mix release] Enable overriding `sys.config` location via `RELEASE_SYS_CONFIG` env var
  [mix release] Boot a release under configuration in interactive mode and then swap to embedded mode
    (if running on Erlang/OTP 23+)
  [mix release] Add `rel_templates_path` to configure the source of template files such as "env.sh.eex", "vm.args.eex"
    and "overlays"
  [mix release] Allow some chunks to be kept in the `:strip_beams` config
  [mix test] Allow `:ignore_modules` inside `:test_coverage` option
  [mix test.coverage] Add `mix test.coverage` that aggregates coverage results from umbrellas and OS partitioning
  [mix xref] Make the `--label` option for `mix xref graph` transitive by default and add `--only-direct` for only
    direct dependencies
  [mix xref] Add `--format cycles` support for `mix xref graph`
  [mix xref] Add support to `mix xref graph` for using `--source` and `--sink` at the same time
  * Bug fixes
  EEx
  [EEx] Make trimming behaviour via the `:trim` option more consistent
  Elixir
  [Application] Warn if non-atom keys are given to `put_env`, `get_env`, `fetch_env`, and `delete_env`
  [Code] Do not send language keyword through the `:static_atoms_encoder` in `Code.string_to_quoted`
  [Kernel] Validate values given to `:line` in quote to avoid emitting invalid ASTs
  [Kernel] Report the correct line number when raising inside a macro
  [Kernel] Fix an issue where `elixirc` would not accept paths with backslash (`\`) separators on Windows
  [Kernel] Properly parse `&//2` (i.e. the capture of the division operator)
  [Kernel] Raise `CompileError` when trying to define reserved types
  [Kernel] Improve compiler error message when using `|` in a `def` signature
  [Kernel] Improve error message when trying to use invalid list operators in guards
  [Kernel.SpecialForms] Add `|/2` to the list of special forms to avoid inconsistent behaviour on overrides
  [Keyword] Enforce keys to be atoms in `Keyword.keys/1`
  [Record] Keep lexical ordering when creating records
  [Registry] Do not crash when a process with key-value has been registered using `:via` and it fails to start on `init`
  [URI] `URI.decode_query/2` emits an empty string for parameters without values, according to
    [URL's living standard](https://url.spec.whatwg.org/#application/x-www-form-urlencoded) - note this behaviour i
    s not specified in the spec implemented by the URI module, so the living standard was chosen
  [Version] Add defaults and enforce keys in `Version` struct
  ExUnit
  [ExUnit.CaptureIO] Fix race condition where a dead capture would still be considered as active
  [ExUnit.Diff] Do not crash when failing to eval/inspect struct
  [ExUnit.Diff] Properly diff numbers in respect to `==` and `===` operators
  IEx
  [IEx] Fix tokenizer emitting repeated warnings in the REPL
  [IEx] Ensure `--dot-iex` is preserved when restarting the evaluator and after shell respawn
  [IEx.Pry] Ensure `IEx.pry` can be triggered more than twice when invoked from the same process
  Mix
  [mix cmd] Fix a bug where only the first --app option would be executed
  [mix compile] Fix an issue where new protocol implementations would not propagate when running `mix compile` from
    an umbrella root
  [mix deps.compile] Use `gmake` instead of `make` when compiling deps on NetBSD/DragonFlyBSD
  [mix release] Load `.app` from dependencies path when it is a project dependency
  [mix release] Always include "rel/overlays" in the list of overlays directories if available
  [mix release] Change `erts/bin/erl` binary mode to `0o755`
  [mix test] Compare to test coverage threshold inclusively
  Logger
  [Logger] Print metadata for all types that implement String.Chars
  * Soft-deprecations (no warnings emitted)
  Elixir
  [Exception] `Exception.exception?/1` is deprecated in favor of `Kernel.is_exception/1`
  [Regex] `Regex.regex?/1` is deprecated in favor of `Kernel.is_struct/2`
  Logger
  [Logger] `warn` log level is deprecated in favor of `warning`
  Mix
  [mix release] `config/releases.exs` is deprecated in favor of a more general purpose `config/runtime.exs`
  * Hard-deprecations
  Elixir
  [Supervisor] Deprecate `Supervisor.start_child/2` and `Supervisor.terminate_child/2` in favor of `DynamicSupervisor`
  [Supervisor.Spec] Deprecate `Supervisor.Spec.worker/3` and `Supervisor.Spec.supervisor/3` in favor of the new typespecs
  [System] Deprecate `System.stacktrace/0` in favor of `__STACKTRACE__`
  Mix
  [Mix.Project] Deprecate `Mix.Project.compile/2` in favor of `Mix.Task.run("compile", args)`
  Full release notes: https://github.com/elixir-lang/elixir/releases/tag/v1.11.0
* Wed Jul 08 2020 Gabriele Santomaggio <gsantomaggio@suse.com>
- Elixir 1.10.4
  * Bug fixes
  Elixir
  [Kernel] Fix a bug where custom types were printed as built-in types
  [Kernel] Don't add compile-time dependency on defdelegate
  [Kernel] Add line numbers to warnings on deprecated imports
  [Kernel] Report the correct line number when raising inside a macro
  [Task] Include callers in translated Logger metadata for Task
  [Task] Fix Task PID and caller in Task Supervisor reports
  ExUnit
  [ExUnit.Formatter] Avoid crashes when diffing guards when the pattern does not match
  [ExUnit.Formatter] Also blame exceptions that come from linked and trapped exits
  IEx
  [IEx.Helpers] Do not crash when printing a type that cannot be code formatted
  Mix
  [mix app.start] Fix reading .app file located in archives (.ez files)
  [mix local.hex] Provide more guidance when Hex can't be installed
  [mix release] Properly encode config in releases
* Sat Apr 25 2020 Sven Marquardt <dev@mail.smarquardt.space>
- Elixir 1.10.3
  * Bug fixes
  Elixir
  [Code] Return `[{mod, bin}]` from `Code.compile_file/2`, `Code.require_file/2`, `Code.load_file/2`
  [Code] Make sure the formatter respects newlines before and after module attributes
  [Kernel.ParallelCompiler] Fix a bug where the parallel compiler would raise in long compilation cycles
  [Kernel.ParallelCompiler] Fix a bug where the parallel compiler would raise if some of the modules being compiled referred to a module that has been loaded directly to memory
  [Module] Fix accidental breaking change where bodiless clauses had their body value on `@on_definition` callbacks set to an empty list instead of `nil`
  [String] Undeprecate `String.normalize/2` normalize and fix infinite loop caused by certain invalid strings
  ExUnit
  [ExUnit.Assertions] Fix pattern matching diff when matching on pinned variables
  [ExUnit.Assertions] Fix pattern matching diff when matching variable struct names
  [ExUnit.Assertions] Fix pattern matching diff when matching on the binary concat operator (`<>`) and the left side is not a literal string
  [ExUnit.Assertions] Fix pattern matching diff when matching on pseudo-vars (`__MODULE__`, `__DIR__`, etc)
  Mix
  [mix release] Respect the `:path` option when creating a `:tar` file for releases
* Thu Apr 16 2020 Gabriele Santomaggio <gsantomaggio@suse.de>
- Elixir 1.10.2
  * Bug fixes
    Elixir
    [Macro] Fix a bug where Macro.to_string/1 would emit invalid code for sigils
    [Task] Do not crash async_stream monitor if it receives spurious DOWN messages
    Logger
    [Logger] Fix a bug where the Logger formatter would fail when handling unknown metadata values
    Mix
    [mix compile] Do not write files to disk if --warnings-as-errors was given and warnings were emitted
- Elixir 1.10.1
  * Bug fixes
    Elixir
    [Code] Do not emit invalid code when formatting nil, false, and true keys in maps
    [Kernel] Ensure with clauses properly unpack "implicit guards" (such as matching on the struct name)
    [Kernel] Do not warn if commas are used by themselves in ~w/~W sigils
    [Kernel] Do not validate the :line option in quote (the validation has been moved to v1.11 to give users more time to update their code)
    [Module] Ensure the code verifier handles the :erlang.size/1 guard properly
    Logger
    [Logger] Properly handle the report_cb/2 option from Erlang
    [Logger] Fix truncation for multi-byte characters
    [Logger] Do not rebroadcast messages from remote nodes as this is now taken care by Erlang's logger
    ExUnit
    [ExUnit] Ensure assert_receive produces valid exception messages in case of errors
    Mix
    [mix release] Make sure the install command (Window specific) works on paths with spaces in the name
    [mix release] Allow using remote and rpc commands with Application.compile_env/3
- Elixir 1.10.0
  * Elixir 1.10.0 is a new main release.
    Full release notes: https://github.com/elixir-lang/elixir/releases/tag/v1.10.0
Version: 1.8.1-bp151.3.2
* Wed Mar 13 2019 g.santomaggio@gmail.com
- Add requires Erlang >= 20
* Tue Feb 19 2019 g.santomaggio@gmail.com
- Elixir 1.8.1
  * Bug fixes
    Elixir
    [Float] Fix rounding for subnormal floats
    IEx
    [IEx] Fix IEx.pry crash when IEx isn't running
    [IEx.CLI] Add IEx warning when using --remsh with "dumb" terminal
    [IEx.Helpers] Sort results by arity on h helper
    Mix
    [mix compile] Do not include optional dependencies in extra applications as it is
    incompatible with shared deps in umbrellas
* Mon Jan 28 2019 g.santomaggio@gmail.com
- Elixir 1.8.0
  * Elixir v1.8 comes with many improvements at the infrastructure level, improving compilation time,
    speeding up common patterns, and adding features around introspection of the system.
    See full changelog at https://github.com/elixir-lang/elixir/releases/tag/v1.8.0
  * Enhancements
    EEx
    [EEx] Optimize the default template engine to compile and execute more efficiently
    Elixir
    [Calendar] Add Calendar.TimeZoneDatabase and a Calendar.UTCOnlyTimeZoneDatabase implementation
    [Calendar] Add callbacks day_of_year/3, quarter_of_year/3, year_of_era/1, and day_of_era/3
    [Code.Formatter] Preserve user's choice of new line after most operators
    [Date] Add Date.day_of_year/1, Date.quarter_of_year/1, Date.year_of_era/1, and Date.day_of_era/1
    [DateTime] Add DateTime.from_naive/3, DateTime.now/1, and DateTime.shift_zone/3
    [File] Allow :raw option in File.exists?/2, File.regular?/2, and File.dir?/2
    [File] Allow POSIX time as an integer in File.touch/2 and File.touch!/2
    [Inspect] Allow Inspect protocol to be derivable with the :only/:except options
    [Kernel] Do not propagate counters to variables in quote inside another quote
    [Kernel] Warn on ambiguous use of :: and | in typespecs
    [Kernel] Add :delegate_to @doc metadata tag when using defdelegate
    [Kernel] Improve compile-time building of ranges via the .. operator
    [Kernel] Compile charlist interpolation more efficiently
    [Kernel] Add floor/1 and ceil/1 guards
    [Kernel.SpecialForms] Add :reduce option to for comprehensions
    [List] Add List.myers_difference/3 and List.improper?/1
    [Macro] Add Macro.struct!/2 for proper struct resolution during compile time
    [Map] Optimize and merge nested maps put and merge operations
    [Range] Add Range.disjoint?/2
    [Record] Reduce memory allocation when updating multiple fields in a record
    [Registry] Allow associating a value on :via tuple
    [String] Add String.bag_distance/2
    [Task] Add $callers tracking to Task - this makes it easier to find which process spawned a task and use it for tracking ownership and monitoring
    ExUnit
    [ExUnit] Add ExUnit.after_suite/1 callback
    [ExUnit.Assertions] Show last N messages (instead of first N) from mailbox on assert_receive fail
    IEx
    [IEx.Helpers] Add port/1 and port/2
    [IEx.Server] Expose IEx.Server.run/1 for custom IEx sessions with the ability to broker pry sessions
    Mix
    [Mix] Add Mix.target/0 and Mix.target/1 to control dependency management per target
    [Mix.Project] Add :depth and :parents options to deps_paths/1
    [mix archive.install] Add a timeout when installing archives
    [mix compile] Include optional dependencies in :extra_applications
    [mix escript.install] Add a timeout when installing escripts
    [mix format] Warn when the same file may be formatted by multiple .formatter.exs
    [mix test] Allow setting the maximum number of failures via --max-failures
    [mix test] Print a message instead of raising on unmatched tests inside umbrella projects
  * Bug fixes
    Elixir
    [Calendar] Allow printing dates with more than 9999 years
    [Exception] Exclude deprecated functions in "did you mean?" hints
    [Float] Handle subnormal floats in Float.ratio/1
    [Kernel] Remove Guard test tuple_size(...) can never succeed Dialyzer warning on try
    [Kernel] Expand operands in size*unit bitstring modifier instead of expecting size and unit to be literal integers
    [Kernel] Do not deadlock on circular struct dependencies in typespecs
    [Kernel] Raise proper error message when passing flags to the Erlang compiler that Elixir cannot handle
    [Kernel] Do not leak variables in cond clauses with a single matching at compile-time clause
    [NaiveDateTime] Do not accept leap seconds in builder and parsing functions
    [String] Fix ZWJ handling in Unicode grapheme clusters
    [StringIO] Handle non-printable args in StringIO gracefully
    IEx
    [IEx.Helpers] Use typespec info (instead of docs chunk) and properly format callbacks in b/1
    Logger
    [Logger] Allow Logger backends to be dynamically removed when an application is shutting down
    Mix
    [mix compile] Ensure changes in deps propagate to all umbrella children - this fix a long standing issue where updating a dependency would not recompile all projects accordingly, requiring a complete removal of _build
    [mix compile] Avoid time drift when checking and updating compiler manifest files
    [mix compile.app] Respect the :only option between umbrella siblings
    [mix compile.protocols] Reconsolidate protocols if local dependencies are stale
    [mix deps] Properly mark dependencies with different :system_env as diverged
    [mix new] Use --module value when setting up filenames
* Sun Dec 30 2018 matwey.kornilov@gmail.com
- Use %{_rpmmacrodir} for macros.elixir
* Wed Dec 19 2018 matwey.kornilov@gmail.com
- Set License to Apache-2.0.
  I have not found where did ErlPL come from.
* Tue Dec 11 2018 Jan Engelhardt <jengelh@inai.de>
- Improvements to description grammar.
* Mon Dec 10 2018 matwey.kornilov@gmail.com
- Use %license for LICENSE
* Thu Nov 08 2018 g.santomaggio@gmail.com
- Elixir 1.7.4
  * Bug fixes
    [Calendar] Fix for converting from negative iso days on New Year
    in a leap year
    [Kernel] Ensure @spec, @callback, @type and friends can be read
    accordingly
    [Module] Avoid warnings when using Module.eval_quoted in the middle of
    existing definitions
    [mix archive.build] Unload previous archive versions before building
    [mix format] Expand paths so mix format path\for\windows.ex works
    [mix test] Ensure that --cover displays correct coverage in an umbrella app
- Elixir 1.7.3
  * Bug fixes
    [ExUnit.Assertions] Do not attempt to expand try/1 as it is a special form
    [mix compile.app] Do not include applications with runtime: false as a runtime
    dependency for applications coming from Hex
    [mix compile.app] Do not include applications with runtime: false as a
    runtime dependency for applications coming from Hex
- Elixir 1.7.2
  * Bug fixes
    [Kernel] Do not emit warnings for repeated docs over different clauses
    due to false  positives
    [mix compile] Properly mark top-level dependencies as optional and as
    runtime.
    This fixes a bug where Mix attempted to start optional dependencies of a
    package when those optional dependencies were not available
    [mix compile] Avoid deadlock when a config has a timestamp later
    than current time
    [mix test] Do not fail suite if there are no test files
- Elixir 1.7.1
  * Bug fixes
    [Calendar] Work-around a Dialyzer bug that causes it to loop for a
    long time, potentially indefinitely
- Elixir 1.7
  Elixir v1.7 is the last release to support Erlang/OTP 19. We recommend
  everyone to migrate to Erlang/OTP 20+.
  Full release notes: https://github.com/elixir-lang/elixir/releases/tag/v1.7.0
* Sun Jul 01 2018 develop7@develop7.info
- Elixir 1.6.6
  This release supports Erlang/OTP 21.0 by removing all warnings and by
  properly supporting the new Erlang logger module.
  * Bug fixes
    [Base] Do not raise when finding bad digits in Base.decode32! with
    `case: :mixed`
    [Code] Preserve the user's choice when fn is followed by a newline and it
    has only a single clause
    [DynamicSupervisor] Properly account for restarting children in the
    `:max_children` configuration
    [String] Add performant impl for string upcase/downcase :ascii mode
    [Task.Supervisor] Fix type spec for start_child/4
    [Logger] Do not crash truncation when truncate is set to infinity
    [mix format] Match files starting with dot
- Elixir 1.6.5
  This release supports Erlang/OTP 21.0-rc by removing all warnings and by
  properly redirecting logger output. Note it is not guaranteed it will support
  Erlang/OTP 21.0 final.
  Bug fixes
    [Code] Preserve the user's choice in the formatter on parens call with next
    break fits
    [Code] Preserve the user's choice in the formatter on calls without parens
    when we have one argument per line
    [Code] Fix formatting when there is a tilde in the first element of a
    bitstring
    [Kernel] Support specsdiff flag on __info__ spec clauses
    [Kernel] Do not exclude hygienic vars in defguard
    [Kernel.SpecialForms] Mark for comprehensions as generated to avoid
    dialyzer warnings
    [Macro] Make sure Macro.to_string/2 emits valid quoted expressions
    [Task] Support :infinity timeout on Task.yield_many/2
    [Task.Supervisor] Do not crash spawning supervised tasks when the parent
    process is dead
    [URI] Fix parsing of URIs with trailing ?
* Thu Apr 12 2018 develop7@develop7.info
- Elixir 1.6.4
  * [Code.Formatter] Do not double escape quoted keyword list identifiers
  * [Kernel] Properly support into: binary in Erlang/OTP 20.3
- Elixir 1.6.3
  * [Code.Formatter] Support comments in the middle of pipelines, `when` and
    `|` expressions
  * [Code.Formatter] Consider commas when breaking groups
  * [Code.Formatter] Ensure proper precedence between & and operators
  * [Code.Formatter] Consider .formatter.exs when formatting stdin
  * [Logger.Translator] Ensure logger doesn't crash when reporting named
    `DynamicSupervisor`
- Elixir 1.6.2
  See full changelog at https://github.com/elixir-lang/elixir/releases/tag/v1.6.2
- Elixir 1.6.1
  See full changelog at https://github.com/elixir-lang/elixir/releases/tag/v1.6.1
- Elixir 1.6.0
  See full changelog at https://github.com/elixir-lang/elixir/releases/tag/v1.6.0
- Elixir 1.5.3
  See full changelog at https://github.com/elixir-lang/elixir/releases/tag/v1.5.3
* Wed Nov 01 2017 gutigen@protonmail.ch
- updated to 1.5.2
* Sun Aug 06 2017 develop7@develop7.info
- Elixir 1.5.1
  Release notes: https://github.com/elixir-lang/elixir/releases/tag/v1.5.1
- Elixir 1.5.0
  Elixir v1.5 includes new features, enhancements, and bug fixes. While Elixir
  v1.4 focused on tools for concurrency and scalability, Elixir v1.5 brings
  many improvements to the developer experience and quality of life. As we will
  see, many of those are powered by the latest Erlang/OTP 20. This is also the
  last Elixir release that supports Erlang/OTP 18.
  Release notes: https://github.com/elixir-lang/elixir/releases/tag/v1.5.0
* Wed Jul 05 2017 develop7@develop7.info
- Elixir v1.4.5
  This version includes changes that make Elixir fully compatible with
  Erlang/OTP 20.
  1. Enhancements
    Logger
    [Logger] Handle changes to crash reports in OTP 20
  2. Bug fixes
    Elixir
    [DateTime] Fix DateTime.from_iso8601/2 when offset has no colon
    [Registry] Do not leak EXIT messages on Registry.dispatch/3
* Thu May 18 2017 develop7@develop7.info
- Elixir v1.4.4
  1. Bug fixes
    Elixir
    [Map] Fix regression on struct update syntax
- Elixir v1.4.3
  Note: This release had a regression that has been immediately fixed on
  version 1.4.4.
  This version includes changes that make Elixir fully compatible with
  Erlang OTP 20-rc.1.
  1. Enhancements
    Elixir
    [Kernel] Improve compilation time for modules with many clauses
    [Map] Warn when attempting to override __struct__ key
    [Regex] Add recompile/1 and recompile!/1 to ease transition to OTP 20
    for archives and stored regexes
    Logger
    [Logger.Translator] Handle OTP 20 GenServer log messages
    Mix
    [mix compile] Recompile projects if OTP version changes
  2. Bug fixes
    Elixir
    [Kernel] Fix code generation when non-binary bitstrings are in AST
    [Record] Properly escape fields passed to defrecord
    ExUnit
    [ExUnit.Diff] Do not fail when comparing maps with nil or boolean keys
    IEx
    [IEx.Helpers] Do not log exits on IEx.Helpers.c/2 failures
    Mix
    [mix archive.install] Detect proper path on URLs with query strings
    [mix loadpaths] Do not assume all paths in loadpaths exist
* Mon Feb 27 2017 develop7@develop7.info
- Elixir v1.4.2
  1. Bug fixes
    EEx
    [EEx] Support middle expressions on trim mode
    Elixir
    [Calendar] Correct typo on Calendar types
    [Kernel] Ensure redefined functions point to the proper source
    [OptionParser] Add `:allow_nonexistent_atoms` to support unsafe behaviour
    prior to v1.4
    [Stream] Allow consuming multiple items from suspended enumerable in
    `Stream.transform/3`
    [String] Incorporate new grapheme rules in Unicode 9
    IEx
    [IEx.Autocomplete] Do not crash on aliases which are not known at compile
    time
    Mix
    [Mix.Umbrella] Ensure umbrella projects can depend on other umbrella
    projects
    [Mix.Archive] Ensure previous archives with .ez extension are deleted
- Elixir v1.4.1
    1. Bug fixes
    Elixir
    [Kernel] Remove warning when making private functions overridable
    [Path] Ensure `Path.join/1` returns strings for lists of one element
    [Regex] Ensure `Regex.escape/1` also escapes `-`
    IEx
    [IEx] Disable ANSI detection for powershell to avoid false positives
    Mix
    [Mix.Make] Run `make clean` for `erlang.mk`
    [Mix.Rebar] Support all of rebar3 dependency package declaration
    [Mix.Rebar] Only pass overrides from parent to child in Rebar dep
* Fri Jan 06 2017 develop7@develop7.info
- update to v1.4.0
  1. Enhancements
    Elixir
    [Calendar] Add Date.compare/2, Time.compare/2, NaiveDateTime.compare/2
    and DateTime.compare/2
    [Calendar] Support NaiveDateTime.add/3 and NaiveDateTime.diff/3 for
    adding seconds (up to microseconds) as well as the difference between
    two NaiveDateTimes in seconds (up to microseconds)
    [Calendar] Add Date.leap_year?/1 and Date.day_of_week/1
    [Calendar] Ensure Date, Time and NaiveDateTime APIs work with any struct
    that provides the same set of fields as their respective struct. For
    example, a NaiveDateTime can be given to Date since it contains a
    superset of the fields in the Date struct
    [Enum] Add Enum.map_every/2 that invokes the given function with every
    nth item
    [Enum] Add min/2, max/2, min_max/2, min_by/3, max_by/3, and min_max_by/3
    that allow a function specifying the default value when the enumerable
    is empty
    [Enum] Introduce Enum.zip/1 to zip multiple entries at once
    [Float] Introduce Float.ratio/1 that returns a tuple with the numerator
    and denominator as integers to retrieve the given float
    [GenServer] Log warn on default handle_info/2 implementation
    [Inspect] Support syntax coloring via the :syntax_color option
    [Integer] Integer.digits/2 now accepts negative integers
    [Integer] Add Integer.mod/2 and Integer.floor_div/2
    [IO] Add :label option to IO.inspect/2 to help distinguish multiple
    IO.inspect/2 calls.
    [Kernel] Recognize merge conflict markers in source and provide a
    readable error message
    [Kernel] Warn on unused module attributes
    [Kernel] Improve compiler message on unexpected end of line
    [Kernel] Raise BadBooleanError when a non-boolean is given on the
    left-hand side of and/or
    [List] Add List.pop_at/3
    [List] Add List.myers_difference/2
    [OptionParser] Expand multi-letter aliases in OptionParser
    [Process] Add Process.send_after/4
    [Process] Improve error messages on Process.register/2 errors
    [Registry] Add a local, decentralized and scalable key-value process storage
    [Stream] Add Stream.map_every/2 that invokes the given function with
    every nth item
    [Stream] Introduce Stream.zip/1 to lazily zip multiple entries at once
    [String] Update to Unicode 9.0.0
    [Task] Add Task.async_stream/3 and Task.async_stream/5 as well as the
    supervised versions Task.Supervisor.async_stream/4 and
    Task.Supervisor.async_stream/6
    [URI] Allow 0 as URI scheme default port
    ExUnit
    [ExUnit.Diff] Use red or green background for whitespace-only diffs
    [ExUnit.Doctest] Allow inspected structures with multiples lines and
    unicode characters in the doctest result
    [ExUnit.Formatter] Replace lhs/rhs with left/right in the formatter for
    clarity
    IEx
    [IEx.Autocomplete] Stop appending a trailing dot when autocompleting
    modules in IEx
    [IEx.Autocomplete] Support autocompletion for structs
    [IEx.Autocomplete] Improve IEx autocomplete to support navigating map
    atom keys
    [IEx.Helpers] c/1 now compiles in memory by default to avoid common
    issue where .beam files remain at projects root directory
    [IEx.Helpers] Add info about protocols in i/1
    [IEx.Server] Support interrupting IEx evaluation through the Ctrl+G prompt
    Mix
    [mix archive] Compress archive files built by mix archive as they are
    now unzipped during installation
    [mix archive] Install from SCM
    [mix compile] Automatically infer the list of applications for Mix
    projects
    [mix cmd] Add the ability to specify one or more apps in mix cmd
    [mix deps] Warn if there are non-applications in the apps directory for
    umbrella projects
    [mix deps] Add warning for invalid paths on mix deps.clean
    [mix deps] Add Mix.Project.apps_paths that returns the paths to children
    applications in umbrella projects
    [mix deps] Add MIX_REBAR environment variable for overriding local rebar
    [mix escript] Install from SCM
    [mix new] Check directory existence in mix new and ask how to proceed if
    one exists
    [mix new] Applications built with the --sup flag now have an individual
    module to work as application callback
    [mix test] Add --formatter option to mix test
    [mix xref] Provide "did you mean?" suggestions for mix xref
  2. Bug fixes
    Elixir
    [Access] Do not accept nils in Access.key/1 and Access.key/2 in favor of
    explicit default values (or Access.key!/1 if you expect the key to
    always be available)
    [Float] Avoid multiple roundings in Float.ceil/2, Float.floor/2 and
    Float.round/2
    [Kernel] Don't crash in macro_exported?/3 when dealing with Erlang
    modules
    [Kernel] Ensure locals calls are rewritten when calling a local function
    or macro from inside a module
    [Kernel] Annotate the context for variables as zero-arity funs in quotes
    [Kernel.SpecialForms] Ensure comprehensions with guards and filters keep
    proper ordering,
    [Kernel.SpecialForms] Produce meaningful warning when with's else
    clauses have no effect
    [Macro] Wrap fn calls in parens in Macro.to_string/2
    [Macro] Do not print aliases as keys inside keyword lists in
    Macro.to_string/2
    [OptionParser] Support options in OptionParser.to_argv/2 to ensure
    :count switches are correctly encoded
    [Stream] Ensure Stream.take/2 does not consume next element on :suspend
    [String] Fix infinite recursion in String.replace_leading/3 and
    String.replace_trailing/3 when given an empty string
    [Task] Fix Task.shutdown/1,2 infinite block when task has no monitor
    [Task] Ensure task cannot link after parents unlinks
    ExUnit
    [ExUnit] Fix a race condition in assert_receive where we would assert a
    message was not received but show it in the list of messages when the
    message is delivered right after the timeout value
    IEx
    [IEx.Helpers] Purge consolidated protocols before and after recompile/0
    Mix
    [Mix.Dep] Use gmake on FreeBSD instead of make when compiling make
    dependencies
    [Mix.Project] Only copy files from source when they're newer than
    destination (for Windows machines)
    [Mix.Task] Ensure non-recursive tasks inside umbrella are reenabled
  3. Soft deprecations (no warnings emitted)
    Elixir
    [Enum] Enum.partition/2 has been deprecated in favor of Enum.split_with/2
    [System] Deprecate plural time units in favor of singular ones to align
    with future Erlang releases
    ExUnit
    [ExUnit] Using GenEvent to implement ExUnit formatters is deprecated.
    Please use the new GenServer based formatters instead
  4. Deprecations
    Elixir
    [Access] Access.key/1 is deprecated due to erratic behaviour for missing
    keys, please use Access.key/2 instead with proper default values
    [Behaviour] The Behaviour module is deprecated. Callbacks may now be
    defined directly via the @callback attribute
    [Enum] Deprecate Enum.uniq/2 in favor of Enum.uniq_by/2
    [Float] Float.to_char_list/2 and Float.to_string/2 are deprecated (use
    the :erlang functions if such conversions are desired)
    [Kernel] Deprecate support for making private functions overridable.
    Overridable functions must always be public as they must be contracts
    [Kernel] Warn if variable is used as a function call
    [OptionParser] Deprecate aliases with multiple letters, such as -abc
    [Set] Deprecate the Set module
    [Stream] Deprecate Stream.uniq/2 in favor of Stream.uniq_by/2
    IEx
    [IEx.Helpers] import_file/2 is deprecated in favor of
    import_file_if_available/1
    Mix
    [Mix.Utils] underscore/1 and camelize/1 are deprecated
* Sun Oct 09 2016 develop7@develop7.info
- update to v1.3.4
  1. Bug fixes
    Elixir
    [Kernel] Ensure the compiler does not generate unecessary variable
    bindings inside case statements. This improves the code emitted and make
    sure "unused variable warnings" are not mistakenly silenced
    [Kernel] Move raise checks to runtime to avoid crashing cover on Erlang 19.1
    [Protocol] Do not emit warnings when using protocols on opaque types
    ExUnit
    [ExUnit.CaptureLog] Flush Erlang's :error_logger before capturing to
    avoid mixed messages
* Fri Sep 23 2016 develop7@develop7.info
- update to v1.3.3
  1. Enhancements
    Elixir
    [DateTime] Support negative integer in DateTime.from_unix/2
    [Kernel.LexicalTracker] Do not consider remote typespecs as a compile-time dependency
    [Kernel.ParallelCompiler] Do not emit deadlock messages when the process is waiting on itself
    [Kernel.Typespec] Mark struct update syntax as generated to avoid false positives from dialyzer
    ExUnit
    [ExUnit] Make ExUnit server timeout configurable
    Logger
    [Logger] Use :ansi_color if one is available in metadata
    Mix
    [Mix] Add support for the :sparse option in Mix.SCM.Git
    [Mix] Skip dependendency loading if MIX_NO_DEPS is set to 1
  2. Bug fixes
    Elixir
    [System] Use NUL instead of /dev/null on Windows when building System.build_info
    IEx
    [IEx.Autocomplete] Resolves issue with autocompletion on structs not working
    Mix
    [Mix] Also store external resources that are not part of the current working directory in compilation manifest
    [Mix] Always include the compiled file source in manifests
* Sat Jul 30 2016 develop7@develop7.info
- update to v1.3.2
  1. Enhancements
    Elixir
    [Kernel] Support guards in else clauses in with
    Mix
    [Mix] Add MIX_NO_DEPS env var for disabling dep loading. Used for third-party scripts and tools like Nix package manager
    [Mix] Add mix test --listen-on-stdin that automatically reruns tests on stdin
    [Mix] Disable --warnings-as-errors when compiling dependencies
    [Mix] Add --filter option to mix deps.unlock to unlock only matching dependencies
  2. Bug fixes
    Elixir
    [Enum] Return nil if enumerable halts in Enum.find_index/3
    [Kernel] Do not attempt to load modules that have not been required when invoking regular functions, otherwise this invalidates the @compile {:autoload, false} directive.
    Mix
    [Mix] Ensure missing protocol dependencies are discarded in umbrella projects with shared build
    ExUnit
    [ExUnit.Diff] Ensure no leading or trailing when diffing some maps
* Thu Jun 30 2016 develop7@develop7.info
- update to v1.3.1
  1. Enhancements
    IEx
    [IEx.Helpers] Add import_file_if_available for importing files only if
    they are available
    [IEx.Helpers] Add import_if_available for importing modules only if they
    are available
  2. Bug fixes
    Elixir
    [Kernel] Ensure structs can be expanded in dynamic module names
    [Kernel] Ensure aliases warnings are not accidentally discarded when the
    same module is imported
    [Kernel.ParallelCompiler] Ensure two modules with cyclic struct
    dependencies cannot run into a deadlock when compiling
    [Kernel.Typespec] Support module attributes in remote types
    [Module] Do not expect stacktraces to be always present when dispatching
    to locals during the module compilation
    IEx
    [IEx.Helpers] Fix h helper for operators
    Mix
    [Mix] Do not load modules for xref purposes, instead use BEAM info
    [Mix] Ensure deps.check does not check archives (that's done in loadpaths)
    [Mix] Validate application properties before traversing them
    [Mix] Check for proper Makefile when compiling on Windows
    [Mix] Enforce space after comma in mix do