From b9178df5b39be1898bd21ad9b09593c5bb859e7a6e27fad0e6f3f1e0b810729f Mon Sep 17 00:00:00 2001 From: Matwey Kornilov Date: Mon, 8 Jul 2024 09:18:46 +0000 Subject: [PATCH] - Upgrade to Elixir 1.17.2: * Changelog available at https://hexdocs.pm/elixir/1.17.2/changelog.html OBS-URL: https://build.opensuse.org/package/show/devel:languages:erlang/elixir?expand=0&rev=102 --- .gitattributes | 23 + .gitignore | 1 + elixir-1.17.1-doc.zip | 3 + elixir-1.17.1.tar.gz | 3 + elixir-1.17.2-doc.zip | 3 + elixir-1.17.2.tar.gz | 3 + elixir.changes | 3269 +++++++++++++++++++++++++++++++++++++++++ elixir.spec | 128 ++ macros.elixir | 11 + 9 files changed, 3444 insertions(+) create mode 100644 .gitattributes create mode 100644 .gitignore create mode 100644 elixir-1.17.1-doc.zip create mode 100644 elixir-1.17.1.tar.gz create mode 100644 elixir-1.17.2-doc.zip create mode 100644 elixir-1.17.2.tar.gz create mode 100644 elixir.changes create mode 100644 elixir.spec create mode 100644 macros.elixir diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..9b03811 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,23 @@ +## Default LFS +*.7z filter=lfs diff=lfs merge=lfs -text +*.bsp filter=lfs diff=lfs merge=lfs -text +*.bz2 filter=lfs diff=lfs merge=lfs -text +*.gem filter=lfs diff=lfs merge=lfs -text +*.gz filter=lfs diff=lfs merge=lfs -text +*.jar filter=lfs diff=lfs merge=lfs -text +*.lz filter=lfs diff=lfs merge=lfs -text +*.lzma filter=lfs diff=lfs merge=lfs -text +*.obscpio filter=lfs diff=lfs merge=lfs -text +*.oxt filter=lfs diff=lfs merge=lfs -text +*.pdf filter=lfs diff=lfs merge=lfs -text +*.png filter=lfs diff=lfs merge=lfs -text +*.rpm filter=lfs diff=lfs merge=lfs -text +*.tbz filter=lfs diff=lfs merge=lfs -text +*.tbz2 filter=lfs diff=lfs merge=lfs -text +*.tgz filter=lfs diff=lfs merge=lfs -text +*.ttf filter=lfs diff=lfs merge=lfs -text +*.txz filter=lfs diff=lfs merge=lfs -text +*.whl filter=lfs diff=lfs merge=lfs -text +*.xz filter=lfs diff=lfs merge=lfs -text +*.zip filter=lfs diff=lfs merge=lfs -text +*.zst filter=lfs diff=lfs merge=lfs -text diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..57affb6 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +.osc diff --git a/elixir-1.17.1-doc.zip b/elixir-1.17.1-doc.zip new file mode 100644 index 0000000..b9db297 --- /dev/null +++ b/elixir-1.17.1-doc.zip @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5a6beb4e3d68803e17bcbbd850de8cf663631cca3eff7c8b14cd1e08caa8466b +size 6298402 diff --git a/elixir-1.17.1.tar.gz b/elixir-1.17.1.tar.gz new file mode 100644 index 0000000..e363043 --- /dev/null +++ b/elixir-1.17.1.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7567c7dcedd5e999d2d41bc2ff70626f49ec283af22eda4f347861bccb34c301 +size 3254822 diff --git a/elixir-1.17.2-doc.zip b/elixir-1.17.2-doc.zip new file mode 100644 index 0000000..d5e381c --- /dev/null +++ b/elixir-1.17.2-doc.zip @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:adf8f367885b40f4905ba92636c99fc3d5f8b28a007a68320e8b1a9f0b2ea1db +size 6300987 diff --git a/elixir-1.17.2.tar.gz b/elixir-1.17.2.tar.gz new file mode 100644 index 0000000..ffa4ca9 --- /dev/null +++ b/elixir-1.17.2.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7bb8e6414b77c1707f39f620a2ad54f68d64846d663ec78069536854247fb1ab +size 3255067 diff --git a/elixir.changes b/elixir.changes new file mode 100644 index 0000000..d6497f9 --- /dev/null +++ b/elixir.changes @@ -0,0 +1,3269 @@ +------------------------------------------------------------------- +Sun Jul 7 09:23:37 UTC 2024 - Alessio Biancalana + +- Upgrade to Elixir 1.17.2: + * Changelog available at https://hexdocs.pm/elixir/1.17.2/changelog.html + +------------------------------------------------------------------- +Tue Jun 18 16:33:41 UTC 2024 - Alessio Biancalana + +- Upgrade to Elixir 1.17.1: + * Changelog available at https://hexdocs.pm/elixir/1.17.1/changelog.html + +------------------------------------------------------------------- +Thu Jun 13 17:30:06 UTC 2024 - Alessio Biancalana + +- Upgrade to Elixir 1.17.0: + * Changelog available at https://hexdocs.pm/elixir/1.17.0/changelog.html + +------------------------------------------------------------------- +Sun May 26 16:29:58 UTC 2024 - Alessio Biancalana + +- Upgrade to Elixir 1.16.3: + * Changelog available at https://hexdocs.pm/elixir/1.16.3/changelog.html + * 0001-Skip-tests-if-Erlang-compiled-without-docs-closes-13322.patch no longer + needed + +------------------------------------------------------------------- +Sun Mar 10 11:32:11 UTC 2024 - Alessio Biancalana + +- Upgrade to Elixir 1.16.2: + * Changelog available at https://hexdocs.pm/elixir/1.16.2/changelog.html + +------------------------------------------------------------------- +Sat Feb 24 11:56:38 UTC 2024 - Alessio Biancalana + +- Upgrade to Elixir 1.16.1 +- Drop 0001-Use-PID-valid-for-32-bit-systems-closes-12741.patch: + * Not needed anymore, included in this version +- Drop 0001-Use-PID-valid-for-32-bit-systems-followup-to-12741-1.patch: + * Not needed anymore, included in this version +- Add 0001-Skip-tests-if-Erlang-compiled-without-docs-closes-13322.patch: + * Skip some tests if Erlang is compiled without docs + +------------------------------------------------------------------- +Tue Nov 21 15:47:29 UTC 2023 - Matwey Kornilov + +- Use pregenerated documentation + +------------------------------------------------------------------- +Mon Nov 13 06:45:28 UTC 2023 - Simon Lees + +- Switch from %patch0 to %autosetup + +------------------------------------------------------------------- +Sat Nov 11 10:23:18 UTC 2023 - Matwey Kornilov + +- Update to Elixir 1.15.7: + * Fix build for Erlang 26 + * Changelog available at https://hexdocs.pm/elixir/1.15.7/changelog.html +- Add 0001-Use-PID-valid-for-32-bit-systems-closes-12741.patch: + * Fix build for 32bit +- Add 0001-Use-PID-valid-for-32-bit-systems-followup-to-12741-1.patch: + * Fix build for 32bit + +------------------------------------------------------------------- +Thu May 4 11:26:04 UTC 2023 - Dominique Leuenberger + +- Add _multibuild to define 2nd spec file as additional flavor. + Eliminates the need for source package links in OBS. + +------------------------------------------------------------------- +Tue Feb 7 09:06:15 UTC 2023 - Gordon Leung + +- Drop git as a requires and switch buildrequires from git to git-core + * Git is not needed to use Elixir, only to run some tests + (which git-core can accomplish on its own without git) + +------------------------------------------------------------------- +Tue Jan 10 11:50:09 UTC 2023 - Fabrizio Sestito + +- Elixir 1.14.2 + * 1. Enhancements + Elixir + + [Code] Add Code.eval_quoted_with_env/4 with support for the :prune_binding option + + ExUnit + + [ExUnit.Case] Allow test cases to not be registered on use + [ExUnit.DocTest] Include :doctest and :doctest_line as meta tags + [ExUnit.Formatter] Expose ExUnit.Formatter.format_assertion_diff/4 + + Mix + + [Mix] Mix.install/2 accepts atoms as paths + + * 2. Bug fixes + Elixir + + [Code.Formatter] Fix size*unit shortcut in bitstring + [Kernel] Generate unique variables for macro expansion of defguard + [Protocol] Expand :for in protocols with the appropriate env + + ExUnit + + [ExUnit] Do not run duplicate cases on ExUnit.run/1 + + Mix + + [mix test] Ensure proper error message when there is no test directory + +- Elixir 1.14.1 + * 1. Enhancements + Elixir + + [Kernel] Perform partial expansion of literals in module attributes + [Kernel] Do not add compile-time dependencies for literals as defaults in Application.compile_env/3 inside module attributes + [Macro] Add Macro.expand_literals/2 and Macro.expand_literals/3 + [System] Add :close_stdin to System.shell/2 + Mix + + [mix test] Accept --all-warnings option + * 2. Bug fixes + Elixir + + [Kernel] Fix misleading warning when :uniq is given in for comprehensions and the result is unused + [Kernel] Improve error message for when there is a conflicting struct and ignoring module conflict + [Kernel] Do not delete @enforce_keys attribute after defstruct declaration + [Kernel] Do not crash the checker on modules with missing :debug_info chunk + [Macro] Fix error in Macro.to_string/2 when converting an AST with :erlang.binary_to_atom/2 + [String] Fix String.split/3 and String.next_grapheme/1 returning invalid results on invalid UTF-8 encoding + [System] Do not close stdin by default in System.shell/2 + [URI] Do not return uri.port as :undefined in certain cases in URI.new/1 + + ExUnit + + [ExUnit.DocTest] Do not crash when both :moduledoc and functions are specified in :only + + IEx + + [CLI] Fix invalid argument handling when --no-pry is given + + Mix + + [mix format] Do not cache inputs from .formatter.exs so they are properly re-evaluted on every call + +------------------------------------------------------------------- +Wed Sep 7 06:38:23 UTC 2022 - Fabrizio Sestito + +- Elixir 1.14 + * 1. Enhancements + EEx + + [EEx] Support multi-line comments to EEx via <%!-- --%> + [EEx] Add EEx.tokenize/2 + + Elixir + + [Access] Add Access.slice/1 + [Application] Add Application.compile_env/4 and Application.compile_env!/3 to read the compile-time environment inside macros + [Calendar] Support ISO8601 basic format parsing with DateTime.from_iso8601/2 + [Calendar] Add day/hour/minute on add/diff across different calendar modules + [Code] Add :normalize_bitstring_modifiers to Code.format_string!/2 + [Code] Emit deprecation and type warnings for invalid options in on Code.compile_string/2 and Code.compile_quoted/2 + [Code] Warn if an outdated lexical tracker is given on eval + [Code] Add Code.env_for_eval/1 and Code.eval_quoted_with_env/3 + [Code] Improve stacktraces from eval operations on Erlang/OTP 25+ + [Code.Fragment] Add support for __MODULE__ in several functions + [Code.Fragment] Support surround and context suggestions across multiple lines + [Enum] Allow slicing with steps in Enum.slice/2 + [File] Support dereference_symlinks: true in File.cp/3 and File.cp_r/3 + [Float] Do not show floats in scientific notation if below 1.0e16 and the fractional value is precisely zero + [Float] Add Float.min_finite/0 and Float.max_finite/0 + [Inspect] Improve error reporting when there is a faulty implementation of the Inspect protocol + [Inspect] Allow :optional when deriving the Inspect protocol for hiding fields that match their default value + [Inspect] Inspect struct fields in the order they are declared in defstruct + [Inspect] Use expression-based inspection for Date.Range, MapSet, and Version.Requirement + [IO] Support Macro.Env and keywords as stacktrace definitions in IO.warn/2 + [IO] Add IO.ANSI.syntax_colors/0 and related configuration to be shared across IEx and dbg + [Kernel] Add new dbg/0-2 macro + [Kernel] Allow any guard expression as the size of a bitstring in a pattern match + [Kernel] Allow composite types with pins as the map key in a pattern match + [Kernel] Print escaped version of control chars when they show up as unexpected tokens + [Kernel] Warn on confusable non-ASCII identifiers + [Kernel] Add .. as a nullary operator that returns 0..-1//1 + [Kernel] Implement Unicode Technical Standard #39 recommendations. In particular, we warn for confusable scripts and restrict identifiers to single-scripts or highly restrictive mixed-scripts + [Kernel] Automatically perform NFC conversion of identifiers + [Kernel] Add binary_slice/2 and binary_slice/3 + [Kernel] Lazily expand module attributes to avoid compile-time deps + [Kernel] Automatically cascade generated: true annotations on macro expansion + [Keyword] Add Keyword.from_keys/2 and Keyword.replace_lazy/3 + [List] Add List.keysort/3 with support for a sorter function + [Macro] Add Macro.classify_atom/1 and Macro.inspect_atom/2 + [Macro] Add Macro.expand_literal/2 and Macro.path/2 + [Macro.Env] Add Macro.Env.prune_compile_info/1 + [Map] Add Map.from_keys/2 and Map.replace_lazy/3 + [MapSet] Add MapSet.filter/2, MapSet.reject/2, and MapSet.symmetric_difference/2 + [Node] Add Node.spawn_monitor/2 and Node.spawn_monitor/4 + [Module] Support new @after_verify attribute for executing code whenever a module is verified + [PartitionSupervisor] Add PartitionSupervisor that starts multiple isolated partitions of the same child for scalability + [Path] Add Path.safe_relative/1 and Path.safe_relative_to/2 + [Registry] Add Registry.count_select/2 + [Stream] Add Stream.duplicate/2 and Stream.transform/5 + [String] Support empty lookup lists in String.replace/3, String.split/3, and String.splitter/3 + [String] Allow slicing with steps in String.slice/2 + [Task] Add :zip_input_on_exit option to Task.async_stream/3 + [Task] Store :mfa in the Task struct for reflection purposes + [URI] Add URI.append_query/2 + [Version] Add Version.to_string/1 + [Version] Colorize Version.Requirement source in the Inspect protocol + + ExUnit + + [ExUnit] Add ExUnit.Callbacks.start_link_supervised!/2 + [ExUnit] Add ExUnit.run/1 to rerun test modules + [ExUnit] Colorize summary in yellow with message when all tests are excluded + [ExUnit] Display friendly error when test name is too long + + IEx + + [IEx] Evaluate --dot-iex line by line + [IEx] Add line-by-line evaluation of IEx breakpoints + [IEx.Autocomplete] Autocomplete bitstrings modifiers (after :: inside <<...>>) + [IEx.Helpers] Allow an atom to be given to pid/1 + [IEx.Helpers] Support sigils in h/1 + + Logger + + [Logger] Add Logger.put_process_level/2 + + Mix + + [Mix] Add :config_path and :lockfile options to Mix.install/2 + [mix compile] Add --no-optional-deps to skip optional dependencies to test compilation works without optional dependencies + [mix compile] Include column information on error diagnostics when possible + [mix deps] Mix.Dep.Converger now tells which deps formed a cycle + [mix do] Support --app option to restrict recursive tasks in umbrella projects + [mix do] Allow using + as a task separator instead of comma + [mix format] Support filename in mix format - when reading from stdin + [mix format] Compile if mix format plugins are missing + [mix new] Do not allow projects to be created with application names that conflict with multi-arg Erlang VM switches + [mix profile] Return the return value of the profiled function + [mix release] Make BEAM compression opt-in + [mix release] Let :runtime_config_path accept false to skip the config/runtime.exs + [mix test] Improve error message when suite fails due to coverage + [mix test] Support :test_elixirc_options and default to not generating docs nor debug info chunk for tests + [mix xref] Support --group flag in mix xref graph + + * 2. Bug fixes + Elixir + + [Calendar] Handle widths with "0" in them in Calendar.strftime/3 + [CLI] Improve errors on incorrect --rpc-eval usage + [CLI] Return proper exit code on Windows + [Code] Do not emit warnings when formatting code + [Enum] Allow slices to overflow on both starting and ending positions + [Kernel] Do not allow restricted characters in identifiers according to UTS39 + [Kernel] Define __exception__ field as true when expanding exceptions in typespecs + [Kernel] Warn if any of True, False, and Nil aliases are used + [Kernel] Warn on underived @derive attributes + [Kernel] Remove compile-time dependency from defimpl :for + [Kernel] Track all arities on imported functions + [Kernel] Fix equality in guards for dynamic ranges without steps + [Module] Fix loop while unifying type variables + [Protocol] Warn if a protocol has no definitions + [Regex] Show list options when inspecting a Regex manually defined with Regex.compile/2 + [String] Allow slices to overflow on both starting and ending positions + [System] Raise non-generic exception on missing env in System.fetch_env!/1 to mirror map operations + + ExUnit + + [ExUnit] Do not crash when diffing unknown bindings in guards + [ExUnit] Properly print diffs when comparing improper lists with strings at the tail position + [ExUnit] Add short hash to tmp_dir in ExUnit to avoid test name collision + [ExUnit] Do not store logs in the CLI formatter (this reduces memory usage for suites with capture_log) + [ExUnit] Run ExUnit.after_suite/1 callback even when no tests run + [ExUnit] Fix scenario where setup with imported function from within describe failed to compile + + IEx + + [IEx] Disallow short-hand pipe after matches + [IEx] Fix exports/1 in IEx for long function names + + Mix + + [mix compile.elixir] Fix --warnings-as-errors when used with --all-warnings + [mix compile.elixir] Ensure semantic recompilation cascades to path dependencies + [mix compile.elixir] Lock the compiler to avoid concurrent usage + [mix format] Do not add new lines if the formatted file is empty + [mix format] Properly compile dependencies on mix format + [mix release] Only set RELEASE_MODE after env.{sh,bat} are executed + [mix release] Allow application mode configuration to cascade to dependencies + [mix xref] Do not emit already consolidated warnings during mix xref trace + [Mix] Do not start apps with runtime: false on Mix.install/2 + + * 3. Soft deprecations (no warnings emitted) + Elixir + + [File] Passing a callback as third argument to File.cp/3 and File.cp_r/3 is deprecated. + Instead pass the callback the :on_conflict key of a keyword list + + EEx + + [EEx] Using <%# ... %> for comments is deprecated. Please use <% # ... %> or the new multi-line comments with <%!-- ... --%> + + Logger + + [Logger] Deprecate Logger.enable/1 and Logger.disable/1 in favor of Logger.put_process_level/2 + + Mix + + [mix cmd] The --app option in mix cmd CMD is deprecated in favor of the more efficient mix do --app app cmd CMD + + * 4. Hard deprecations + Elixir + + [Application] Calling Application.get_env/3 and friends in the module body is now discouraged, use Application.compile_env/3 instead + [Bitwise] use Bitwise is deprecated, use import Bitwise instead + [Bitwise] ~~~ is deprecated in favor of bnot for clarity + [Kernel.ParallelCompiler] Returning a list or two-element tuple from :each_cycle is deprecated, return a {:compile | :runtime, modules, warnings} tuple instead + [Kernel] Deprecate the operator <|> to avoid ambiguity with upcoming extended numerical operators + [String] Deprecate passing a binary compiled pattern to String.starts_with?/2 + + Logger + + [Logger] Deprecate $levelpad on message formatting + + Mix + + [Mix] Mix.Tasks.Xref.calls/1 is deprecated in favor of compilation tracers + + * 5. Backwards incompatible changes + Mix + + [mix local.rebar] Remove support for rebar2, which has not been updated in 5 years, and is no longer supported on recent Erlang/OTP versions + +------------------------------------------------------------------- +Sat Apr 9 11:16:39 UTC 2022 - Fabrizio Sestito + +- Elixir 1.13.4 + * 1. Enhancements + Elixir + + [Code] Allow iodata to be returned in sigil formatting functions + [Code] Pass opening delimiter information to sigil formatting functions + + * 2. Bug fixes + Elixir + + [Kernel] Tweak type unification to fix infinite loop with recursive vars + [Kernel] Add compile-time dependencies on require + [Registry] Make Registry send work with named triplets + + * 3. Deprecations + Mix + + [mix rebar] Deprecate Rebar 2 as it no longer works on Erlang/OTP 25 + +------------------------------------------------------------------- +Tue Feb 22 20:01:32 UTC 2022 - Fabrizio Sestito + +- Elixir 1.13.3 + * 1. Enhancements + Mix + + [mix format] Supply file and line to formatter plugins + [mix format] Support embedded Elixir expressions inside formatter plugins + + * 2. Bug fixes + Elixir + + [Code] Fix duplicate bindings causing errors during evaluation + [Kernel] Make sure signatures stored in the Documentation chunk does not contain newlines + [Kernel] Fix infinite loop when compiling guards with recursive map access + [Macro] Fix error on Macro.to_string/1 when the plain alias Elixir is given + [String] Fix error for certain codepoint combinations in String.split_at/2 + + Mix + + [mix compile] Recompile project files when exports from dependencies change + [mix test] Fix total coverage always showing in red even when above the threshold + +------------------------------------------------------------------- +Fri Jan 14 15:23:32 UTC 2022 - Fabrizio Sestito + +- Elixir 1.13.2 + * 1. Enhancements + Mix + + [mix format] Allow plugins to also format .ex and .exs files + [mix release] Allow bypassing application mode validation in release spec + [mix test] Print a message when the suite fails due to the coverage threshold + + * 2. Bug fixes + Elixir + + [Code] Do not emit warnings on Code.Fragment.container_cursor_to_quoted/2 + [Kernel] Fix a crash when a for-comprehension with :uniq was used inside another comprehension with :uniq + [Kernel] Ensure env.context_modules is properly set inside optimized defmodule + [Keyword] Deprecate the recently added Keyword.map/2 as it is equivalent to Keyword.new/2 + [Map] Deprecate the recently added Map.map/2 as it is equivalent to Map.new/2 + [Protocol] Warn on zero arity callbacks inside protocols + +------------------------------------------------------------------- +Thu Jan 6 19:50:32 UTC 2022 - Sven Marquardt + +- Elixir 1.13.1 + * 1. Bug fixes + Elixir + + [Code] Do not show code snippets in `SyntaxError` and `TokenMissingError` if line is empty + [Exception] Do not fail blaming `ArgumentError` for improper lists on `apply/3` + [Macro] Set a max `line_length` for `Macro.to_string/1` + [Macro] Fix formatting of lists on module attributes for `Macro.to_string/1` + [String] Fix incorrect codepoint byte counting in `slice` with negative positions in ranges + [Task] Ensure async streams can be consumed from another process than the one that creates them + [URI] Undeprecate `URI.parse/1` as `URI.new/1` is too strict in many common cases + [URI] Make sure `URI.new/1` returns nil for empty paths + + IEx + + [IEx] Make sure the `--version` flag halts IEx + + Mix + + [Mix] Make protocol consolidation part of the `Mix.install/2` cache + +------------------------------------------------------------------- +Thu Jan 6 18:45:51 UTC 2022 - Sven Marquardt + +- Elixir 1.13.0 + * Enhancements + EEx + + [EEx] Add `:parser_options` to EEx functions + + Elixir + + [Calendar] Add `c:Calendar.year_of_era/3` to support calendars where the beginning of a new era does not align with + the beginning of a new year + [CLI] Support `--short-version` on the CLI that does not boot the VM + [Code] Add `Code.string_to_quoted_with_comments/2` and `Code.quoted_to_algebra/2` + [Code] Add more `:token_metadata` to aliases and remote calls when parsing strings + [Code] Add `Code.Fragment` module to provide best-effort information from code fragments. + The module currently provides an updated `Code.Fragment.cursor_context/2` with operator support and + `Code.Fragment.surround_context/2` which looks at a given position in a fragment and find its surrounding delimiters + [Code] Allow custom sigil formatting on `Code.format_string!/2` + [Code] Add `{:on_module, bytecode, :none}` trace to compilation tracers + [Enum] Optimize `Enum.concat/1` for lists of lists + [Enum] Add `Enum.slide/3` + [Exception] Better format Elixir exceptions in Erlang + [Inspect] Allow default inspect fun to be set globally with `Inspect.Opts.default_inspect_fun/1` + [IO] Allow `:eof` to be given as limit to `IO.getn/2` + [Kernel] Support the `:sigils` option in `import Mod, only: :sigils` and allow the sigil modifiers to be also digits + [Kernel] Make `get_in` consistently abort and return `nil` when `nil` values are found (previously Elixir would raise + an error in this case). This allows a user to use `get_in` as a safe navigation operator. + [Kernel] Improve compilation times by reducing the amount of copies of the AST across compiler processes + [Kernel] Raise if trying to define a module with a slash in its name + [Kernel] Warn when `?\` is used and there is no need for a escape character + [Kernel] Track structs in typespecs as export deps instead of compile-time deps + [Kernel] Add power operator (`**/2`) + [Keyword] Add `Keyword.validate/2` + [Keyword] Implement `Keyword.filter/2` and `Keyword.map/2` + [List] Add `List.keyfind!/3` + [Macro] Add `Macro.prewalker/1` and `Macro.postwalker/1` + [Macro.Env] Add the following reflection functions: `required?/2`, `lookup_import/2`, `fetch_alias/2`, and `fetch_macro_alias/2` + [Map] Implement `Map.filter/2` and `Map.map/2` + [Module] Support `:nillify_clauses` in `Module.get_definition/3` + [Module] Add `Module.attributes_in/1` and `Module.overridables_in/1` + [OptionParser] Add "did you mean?" suggestions to `OptionParser.ParseError` messages + [Record] Add record reflection via `@__records__` + [Task] Add `Task.completed/1` + [Task] Add `Task.ignore/1` to keep a task running but ignoring all of its results + [Task] Reduce the amount of copying `Task.async*` functions + [URI] Add `URI.new/1` and `URI.new!/1` + + ExUnit + [ExUnit] Show hint if comparing different but equivalent strings + [ExUnit.CaptureIO] Add `with_io/3` to return result with captured io + [ExUnit.CaptureLog] Add `with_log/2` to return result with captured logs + + IEx + [IEx.Autocomplete] Add path autocompletion whenever when the cursor follows `"./` or `"/` or `"DRIVER:` where + `DRIVER` is a single letter + [IEx.Autocomplete] Add autocompletion for sigils, struct names, and struct fields + [IEx.Helpers] Allow multiple modules to be given to `r/1` + + Logger + [Logger] Add `Logger.put_application_level/2` + [Logger] Print all log levels in accordance to Erlang/OTP. This also means `[warn]` is now shown as `[warning]` + + Mix + [Mix] Add `MIX_INSTALL_FORCE` environment variable support + [Mix] Support `:config` and `:system_env` in `Mix.install/2` + [Mix] Add `Mix.installed?/0` + [Mix.Shell] Add `:default` option to `Mix.Shell.yes?` + [mix archive.install] Run `loadconfig` before building archive + [mix compile] Move Elixir version check to before deps are compiled, in order to give feedback earlier + [mix compile.elixir] Do not recompile files if their modification time change but their contents are still the same and the .beam files are still on disk + [mix compile.elixir] Do not recompile all Elixir sources when Erlang modules change, only dependent ones + [mix compile.elixir] Do not recompile Elixir files if `mix.exs` changes, instead recompile only files using `Mix.Project` or trigger a recompilation if a compiler option changes + [mix compile.elixir] Only recompile needed files when a dependency is added, updated or removed + [mix compile.elixir] Only recompile needed files when a dependency is configured + [mix deps] Add `:subdir` option to git deps + [mix escript.install] Run `loadconfig` before building escript + [mix format] Support `:plugins` in `mix format` that can hook into custom extensions and sigils + [mix format] Add `Mix.Tasks.Format.formatter_for_file/2` + [mix local.rebar] No longer support `sub_dirs` in Rebar 2 to help migration towards Rebar 3 + [mix local.rebar] Support `--if-missing` option when installing Rebar + [mix local.rebar] Set `REBAR_PROFILE=prod` when compiling Rebar dependencies + [mix test] Support `--profile-require=time` to profile the time loading test files themselves + [mix test] Allow filtering modules from coverage using regex + [mix test] Allow the exit status of ExUnit to be configured and set the default to 2 + [mix test] Exit with a status of 3 when coverage falls below threshold + [mix test] Write failed manifest when suite fails due to --warnings-as-errors + [mix test] Ignore `MIX_TEST_PARTITION` when partitions set to 1 + [mix xref] Support multiple sinks and sources in `mix xref graph` + [mix xref] Add `trace` subcommand to print compilation dependencies between files + [mix xref] Add `--fail-above` option to `mix xref` + [mix xref] Add `--label compile-connected` to `mix xref` + + * 2. Bug fixes + + EEx + + [EEx] Accept comments in EEx between do and the first clause + [EEx] Accept EEx expressions where `->` is followed by newline + + Elixir + + [Application] Allow any expression as first argument of `compile_env` + [Application] Warn if `Application.compile_env` or `Application.compile_env!` are called without a require + [Code] Make sure `:static_atoms_encoder` in `Code.string_to_quoted/2` also applies to quoted keyword keys + [Code] Ensure bindings with no context are returned as atoms instead of `{binding, nil}` in eval operations + [Inspect] Fix a bug when inspecting a non-binary bitstring with colors + [Kernel] Reject bidirectional formatting characters in strings and comments + [Kernel] Support escaping of terminators in uppercase sigils heredocs for consistency + [Kernel] Raise if `__CALLER__` or `__ENV__` or `__STACKTRACE__` are used in match + [Kernel] Improve error message on invalid argument for `byte_size` from binary concat + [Kernel] Raise when aliasing non-Elixir modules without `:as` + [Kernel] Allow `unquote_splicing` inside `%{...}` without parens + [Kernel] Ensure that waiting on a struct expansion inside a typespec is correctly tracked as waiting time in the compiler + [Kernel] Correctly parse the atom `.` as a keyword list key + [Kernel] Do not leak variables from the first generator in `with` and `for` special forms + [Kernel] Fix column number on strings with NFD characters + [Kernel] Fix a bug where a combination of dynamic line in `quote` with `unquote` of remote calls would emit invalid AST metadata + [OptionParser] Validate switch types/modifiers early on to give more precise feedback + [Protocol] Add `defdelegate` to the list of unallowed macros inside protocols as protocols do not allow function definitions + [Protocol] Warn if `@callback`, `@macrocallback` and `@optional_callbacks` are defined inside protocol + [Protocol] Ensure protocol metadata is deterministic on consolidation + [Range] Always show step when range is descending + [String] Update Unicode database to version 14.0 + [URI] Only percent decode if followed by hex digits (according to https://url.spec.whatwg.org/#percent-decode) + [Version] Ensure proper precedence of `and`/`or` in version requirements + + ExUnit + + [ExUnit] Fix formatter and counters from `ExUnit.run/0` to consider all tests in a module whenever if a module's `setup_all` fails + [ExUnit] Allow doctests newlines to be terminated by CRLF + + IEx + + [IEx] Fix the loss of `.iex.exs` context after a pry session + [IEx] Stop evaluator before exiting IEx server to avoid evaluators leaking + + Logger + + [Logger] Raise clear error message for invalid `:compile_time_purge_matching` configuration + [Logger] Fix a bug where Logger would not reset its discard counter under some scenarios + + Mix + + [mix compile.elixir] Track transitive runtime dependencies coming from local/path dependencies + [mix compile.elixir] Recompile file if `@external_resource` is deleted + [mix compile.elixir] Print number of compiling files on all compiler cycles. This will make the `Compiling N files (.ex)` show up multiple times if necessary + [mix deps] Raise if local dep is unavailable while compiling + [mix deps.unlock] Fix blank output when unlocking a dependency that is not locked + [mix local.install] Do not respect `MIX_DEPS_PATH` for install commands + [mix release] Improve release scripts by making sure shell errors cascade (this is done by avoiding exporting and defining variables in a single step) + [mix release] Do not boot release if `RELEASE_COOKIE` is empty + [mix release] Allow releases running as a daemon to be restarted + [mix release] Raise proper error message when non-serializable values are in configs + [mix test] Fix coverage engine to also tag `case`, `cond`, and `receive` branches where the right side is a literal + + * 3. Soft-deprecations (no warnings emitted) + Elixir + + [Code] Environment options in `Code.eval_quoted/3` and `Code.eval_string/3`, such as `:aliases` and `:tracers`, have been deprecated in favor of passing an environment + [IO] `:all` on `IO.getn` is deprecated in favor of `:eof` + [URI] `URI.parse/1` is deprecated in favor of `URI.new/1` and `URI.new!/1` + + Mix + + [mix format] `Mix.Tasks.Format.formatter_opts_for_file/2` is deprecated in favor of `Mix.Tasks.Format.formatter_for_file/2` + + * 4. Hard-deprecations + Elixir + + [Code] `Code.cursor_context/2` is deprecated, use `Code.Fragment.cursor_context/2` instead + [Macro] `Macro.to_string/2` is deprecated, use `Macro.to_string/1` instead + [System] `System.get_pid/0` is deprecated, use `System.pid/0` instead + [Version] Using `!` or `!=` in version requirements is deprecated, use `~>` or `>=` instead + + Mix + + [mix escript.build] `:strip_beam` option is deprecated in favor of `:strip_beams` + [Mix] `:exit_code` in `Mix.raise/2` has been deprecated in favor of `:exit_status` + [Mix.Config] `Mix.Config` is deprecated in favor of `Config` module + + Full release notes: https://github.com/elixir-lang/elixir/releases/tag/v1.13.0 + + - Drop 0001-Add-retries-to-tests-that-write-to-stderr-on-Windows.patch: + upstreamed + +------------------------------------------------------------------- +Fri Nov 5 11:51:18 UTC 2021 - Matwey Kornilov + +- Add 0001-Add-retries-to-tests-that-write-to-stderr-on-Windows.patch: + fix build for Factory + +------------------------------------------------------------------- +Tue Sep 28 18:07:15 UTC 2021 - Sven Marquardt + +- Elixir 1.12.3 + * Bug fixes + Elixir + [Code] Make sure that bindings in the default context returned by `Code.eval_*` functions are not returned as tagged tuples + [Kernel] Do not crash when handling ambiguity errors + [Range] Still match on old range patterns throughout the stdlib + + IEx + [IEx.Autocomplete] Do not error autocompletion with module attribute + + Mix + [Mix] Rename inconsistent `:exit_code` option to `:exit_status` on `Mix.raise/2` + +------------------------------------------------------------------- +Mon Jul 12 07:26:51 UTC 2021 - Sven Marquardt + +- Elixir 1.12.2 + * Bug fixes + Elixir + [Kernel] Ensure deprecated macros emit warnings + + Mix + [mix deps] Ensure unconstrained rebar deps generate valid mix specifications + + * Enhancements + Elixir + [elixirc] Change the output of `--profile time` to make it easier to detect outliers + [Application] Do not add compile time deps on args to `Application.compile_env/2` and `Application.compile_env!/2` + [Enum] Optimize `Enum.into/3` and `Map.new/2` + + Mix + [mix compile] Compile most recently changed files first + [mix compile, mix run, mix test] Speed up the time taken to load dependencies. This should make the usage of Mix inside projects quite more responsive + +------------------------------------------------------------------- +Mon Jun 14 19:39:42 UTC 2021 - Sven Marquardt + +- Elixir 1.12.1 + * Bug fixes + Elixir + [Code] Make sure `Code.format_string!/2` formats multiline expression inside interpolation on the first run + [Macro] Revert keeping of underscores between digits in camelize + + Mix + [Mix] Make sure `Mix.install/2` expand paths for deps + [mix deps.get] Silence false positives on `httpc` warnings + [mix test] Do not run the whole suite when there are no --failed tests as it won't behave as expected inside umbrellas + +------------------------------------------------------------------- +Mon Jun 14 19:24:33 UTC 2021 - Sven Marquardt + +- Elixir 1.12 + * Enhancements + EEx + [EEx.Engine] Add `c:EEx.Engine.handle_text/3` callback that receives text metadata + [EEx.Engine] Emit warnings for unused "do" expression in EEx + + Elixir + [Code] Add `Code.cursor_context/2` to return the context of a code snippet + [Code] Do not add newlines around interpolation on code formatting. + Note this means formatted code that has interpolation after the line length on Elixir v1.12 won't be considered as formatted on earlier Elixir versions + [Code] Do not add brackets when keywords is used in the access syntax + [Calendar] Support basic datetime format in `Calendar.ISO` parsing functions + [Code] Improve evaluation performance on systems running on Erlang/OTP 24+ + [Date] Support steps via `Date.range/3` + [DateTime] Add `offset` to `DateTime.to_iso8601/2` (now `to_iso8601/3`) + [Enum] Add `Enum.count_until/2` and `Enum.count_until/3` + [Enum] Add `Enum.product/1` + [Enum] Add `Enum.zip_with/2`, `Enum.zip_with/3`, `Enum.zip_reduce/3`, and `Enum.zip_reduce/4` + [Enum] Add support for functions as the second argument of `Enum.with_index/2` + [Exception] Show `error_info` data for exceptions coming from Erlang + [Float] Add `Float.pow/2` + [Integer] Add `Integer.pow/2` and `Integer.extended_gcd/2` + [IO] Add `IO.stream/0` and `IO.binstream/0` which default to STDIO with line orientation + [List] Add default value for `List.first/1` and `List.last/1` + [Kernel] Add `first..last//step` as support for stepped ranges + [Kernel] Also warn for literal structs on `min/2` and `max/2` + [Kernel] Add `Kernel.tap/2` and `Kernel.then/2` + [Kernel] Do not add runtime dependencies to remotes in typespecs + [Kernel] When there is an unused variable warning and there is a variable with the same name previously defined, suggest the user may have wanted to use the pin operator + [Kernel] Improve error messages on invalid character right after a number + [Kernel] Show removal and deprecated tips from Erlang/OTP + [Macro] Add export dependencies on `Macro.struct!/2` + [Macro] Support `:newline` to customize newlines escaping in `Macro.unescape_string/2` + [Module] Raise on invalid `@dialyzer` attributes + [Module] Add `Module.get_definition/2` and `Module.delete_definition/2` + [Module] Allow `@on_load` to be a private function + [Module] Validate `@dialyzer` related module attributes + [Module] Add `Module.reserved_attributes/0` to list all reserved attributes by the language + [Range] Add `Range.new/3` and `Range.size/1` + [Regex] Add offset option to `Regex.scan/3` and `Regex.run/3` + [Registry] Support `:compression` on `Registry` tables + [Registry] Support `Registry.values/3` for reading values under a given key-pid pair + [Stream] Add `Stream.zip_with/2` and `Stream.zip_with/3` + [String] Add `:turkic` mode option to String case functions + [String] Update to Unicode 13.0 + [System] Add `System.trap_signal/3` and `System.untrap_signal/2` + [System] Add `System.shell/2` to invoke a command that is interpreted by the shell + [Tuple] Add `Tuple.sum/1` and `Tuple.product/1` + [URI] Support RFC3986 compliant encoding and decoding of queries via the `:rfc3986` option + + ExUnit + [ExUnit] Intercept SIGQUIT (via Ctrl+\\) and show a list of all aborted tests as well as intermediate test results + [ExUnit] Interpolate module attributes in match assertions diffs + [ExUnit] Print how much time is spent on `async` vs `sync` tests + [ExUnit] Improve error messages for doctests + [ExUnit] Compile doctests faster (often by two times) + [ExUnit] Add `ExUnit.async_run/0` and `ExUnit.await_run/1` + + IEx + [IEx] Make IEx' parser configurable to allow special commands + [IEx] Show function signature when pressing tab after the opening parens of a function + [IEx] If an IEx expression starts with a binary operator, such as `|>`, automatically pipe in the result of the last expression + + Mix + [Mix] Add `Mix.install/2` for dynamically installing a list of dependencies + [Mix] Support `:exit_code` option in `Mix.raise/2` + [Mix] Discard `MIX_ENV` and `MIX_TARGET` values if they are empty strings + [Mix] Print the time taken to execute a task with on `MIX_DEBUG=1` + [mix compile.erlang] Compile multiple files in parallel + [mix escript.build] Deep merge configuration and ensure argv is set when executing `config/runtime.exs` + [mix release] Add `RELEASE_PROG` to releases with the name of the executable starting the release + [mix release] Support `remote.vm.args` to customize how the connecting VM boots + [mix test] Run all available tests if there are no pending `--failed` tests. This provides a better workflow as you no longer need to toggle the `--failed` flag between runs + + * Bug fixes + Elixir + [CLI] Ensure `-e ""` (with an empty string) parses correctly on Windows + [Inspect] Do not override user supplied `:limit` option for derived implementations + [Kernel] Allow heredoc inside a heredoc interpolation + [Kernel] Preserve CRLF on heredocs + [Kernel] Public functions without documentation now appear as an empty map on `Code.fetch_docs/1`, + unless they start with underscore, where they remain as `:none`. This aligns Elixir's implementation with EEP48 + [Kernel] Do not crash when complex literals (binaries and maps) are used in guards + [Kernel] Properly parse keywords (such as `end`) followed by the `::` operator + [Kernel] Do not ignore unimplemented signatures from generated functions + [Kernel] Improve error message when an expression follows a keyword list without brackets + [Macro] `Macro.decompose_call/1` now also consider tuples with more than 2 elements to not be valid calls + [Macro] Fix `Macro.to_string/1` double-escaping of escape characters in sigils + [Macro] Fix `Macro.underscore/1` on digits preceded by capitals: "FOO10" now becomes "foo10" instead of "fo_o10" + [Macro] Preserve underscores between digits on `Macro.underscore/1` + [OptionParser] Properly parse when numbers follow-up aliases, for example, `-ab3` is now parsed as `-a -b 3` + [Path] Fix `Path.relative_to/2` when referencing self + [Path] Do not crash when a volume is given to `Path.absname/1`, such as "c:" + [Task] Ensure `Task.async_stream/2` with `ordered: false` discard results as they are emitted, instead of needlessly accumulating inside the stream manager + [Task] Raise if `:max_concurrency` is set to 0 on streaming operations + [URI] Do not discard empty paths on `URI.merge/2` + + ExUnit + [ExUnit.Case] Make `@tag tmp_dir` an absolute directory, avoiding inconsistencies if the test changes the current working directory + [ExUnit.Diff] Fix cases where the diffing algorithm would fail to print a pattern correct + + IEx + [IEx] Fix auto-completion inside remote shells + + Mix + [mix app.config] Do not emit false positive warnings when configured dependencies that have `runtime: false` set + [mix compile.elixir] Ensure that a manifest is generated even with no source code + [mix compile.elixir] Make sure export dependencies trigger recompilation when the dependency is removed as well as when the whole file is removed + [mix compile.elixir] Do not emit false positive warnings when a path dependency adds a module that is then used by the current application in the same `mix compile` cycle + [mix test] Ensure protocols within the current project are consolidated when `--cover` is given + [mix release] Improve compliance of release scripts with stripped down Linux installations + [mix release] Preserve file mode when copying non-beam ebin files + [mix xref] Ensure args are passed to the underlying `mix compile` call + + * Soft-deprecations (no warnings emitted) + Elixir + [Kernel] Using `first..last` to match on ranges is soft-deprecated and will warn on future Elixir versions. Use `first..last//step` instead + [Kernel] Using `first..last` to create decreasing ranges is soft-deprecated and will warn on future versions. Use `first..last//-1` instead + + * Hard-deprecations + EEx + [EEx.Engine] `use EEx.Engine` is deprecated in favor of explicit delegation + + Elixir + [Kernel] The binary operator `^^^` is deprecated. If you are using `Bitwise.^^^/2`, use `Bitwise.bxor/2` instead + [Kernel] Deprecate `@foo()` in favor of `@foo` + [System] Deprecate `System.stacktrace/0` (it was already deprecated outside of catch/rescue and now it is deprecated everywhere) + + Mix + [mix compile] The `:xref` compiler is deprecated and it has no effect. Please remove it from your mix.exs file. + + Full release notes: https://github.com/elixir-lang/elixir/releases/tag/v1.12.0 + +------------------------------------------------------------------- +Fri Mar 19 22:01:35 UTC 2021 - Sven Marquardt + +- Elixir 1.11.4 + * Enhancements + Elixir + [Kernel] Update formatting when printing warnings and errors from Erlang/OTP 24+ + [Kernel] Support float-16 on bitstrings + + Mix + [mix local.rebar] This task will now install rebar3 version 3.14.4, compiled with Erlang/OTP 21 + +------------------------------------------------------------------- +Mon Jan 11 19:13:39 UTC 2021 - Sven Marquardt + +- 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 11:09:00 UTC 2020 - Sven Marquardt + +- 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 11:09:00 UTC 2020 - Sven Marquardt + +- 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 11:03:32 UTC 2020 - Sven Marquardt + +- 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 8 08:09:49 UTC 2020 - Gabriele Santomaggio + +- 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 16:20:54 UTC 2020 - Sven Marquardt + +- 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 08:09:49 UTC 2020 - Gabriele Santomaggio + +- 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 + +------------------------------------------------------------------- +Sun Dec 15 17:58:38 UTC 2019 - Matwey Kornilov + +- Refresh elixir-1.9.4.tar.gz jsc#SLE-10913 + +------------------------------------------------------------------- +Tue Dec 3 09:25:13 UTC 2019 - Gabriele Santomaggio + +- 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 08:55:44 UTC 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 09:02:44 UTC 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 + +------------------------------------------------------------------- +Wed Mar 13 11:15:44 UTC 2019 - g.santomaggio@gmail.com + +- Add requires Erlang >= 20 + +------------------------------------------------------------------- +Tue Feb 19 15:38:20 UTC 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 11:00:20 UTC 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 11:18:35 UTC 2018 - matwey.kornilov@gmail.com + +- Use %{_rpmmacrodir} for macros.elixir + +------------------------------------------------------------------- +Wed Dec 19 18:56:20 UTC 2018 - matwey.kornilov@gmail.com + +- Set License to Apache-2.0. + I have not found where did ErlPL come from. + +------------------------------------------------------------------- +Tue Dec 11 13:46:13 UTC 2018 - Jan Engelhardt + +- Improvements to description grammar. + +------------------------------------------------------------------- +Mon Dec 10 11:17:25 UTC 2018 - matwey.kornilov@gmail.com + +- Use %license for LICENSE + +------------------------------------------------------------------- +Thu Nov 08 22:01:20 UTC 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 1 08:02:34 UTC 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 15:39:08 UTC 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 1 12:28:21 UTC 2017 - gutigen@protonmail.ch + +- updated to 1.5.2 + +------------------------------------------------------------------- +Sun Aug 6 10:39:47 UTC 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 5 19:59:58 UTC 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 18:39:39 UTC 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 09:13:15 UTC 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 6 17:33:45 UTC 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 9 19:39:04 UTC 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 10:40:28 UTC 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 10:32:07 UTC 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 18:22:46 UTC 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 + +------------------------------------------------------------------- +Sat Jun 25 10:21:38 UTC 2016 - develop7@develop7.info + +- update to v1.3.0 + Elixir v1.3 brings many improvements to the language, the compiler and its + tooling, specially Mix (Elixir’s build tool) and ExUnit (Elixir’s test + framework). The most notable additions are the new Calendar types, the new + cross-reference checker in Mix, and the assertion diffing in ExUnit. + + See full release notes at https://github.com/elixir-lang/elixir/releases/tag/v1.3.0 + +------------------------------------------------------------------- +Sun May 1 09:43:58 UTC 2016 - pereira.alex@gmail.com + +- Update to v1.2.5 + Bug fixes + [Logger] Stringify truncated function data in Logger + [Logger] Ensure poorly formatted char data can also be logged by using the replacement character "�" (diamond question mark) + [Mix] Do not assume @impl is always a list + [String] Fix bugs in String.replace_* functions where it would not include the accumulated value for certain replacements + +- Update to v1.2.4 + Enhancements + [Mix] Add :archives configuration to def project that allows projects to list archive dependencies. --no-archives-check (as well as --no-deps-check) will disable the archive check. The :archives option is not checked for dependencies. + [Mix] Add deps.precompile task as hook + [Mix] Support --include-children in mix deps.compile option + [String] Update version of the Unicode database to 8.0.0 + + Bug fixes + [Application] Ensure spec/2 returns nil for unknown applications + [Integer] Fix a possible binary leak in parse/1 + [Mix] Purge Erlang modules on recompilation + [String] Ensure split/1 does not break on non-breakable whitespace + [String] Ensure NFC and NFD normalization pass all of Unicode 8.0.0 tests + [Version] Allow dots in build info for versions in Version.parse/1 + +------------------------------------------------------------------- +Wed Feb 24 16:06:18 UTC 2016 - develop7@develop7.info + +- update to v1.2.3 + + Enhancements + * [Base] Add :ignore and :padding option to encoding/decoding functions + * [Mix] Add Mix.Projects.deps_paths that returns the dependencies path as a map + + + Bug fixes + * [ExUnit] Do not provide negative line numbers without generated annotation (for compatibility with Erlang 19) + * [Mix] Reject non fullfilled optional dependencies later on in the convergence resolution for proper dependency sorting + * [String] Fix incomplete data trimming on both String.replace_trailing and String.rstrip + * [String] Attach debug_info back into Unicode modules for Dialyzer support + +------------------------------------------------------------------- +Thu Feb 4 09:10:38 UTC 2016 - pereira.alex@gmail.com + +- Update to v1.2.2 + Enhancements + [Kernel] Support @compile {:autoload, false} to disable automatic loading after compilation + + Bug fixes + [ExUnit] Raise if trying to override reserved tag in setup blocks + [Mix] Ensure retrieve compile manifests do fail if some compilers are not yet available + [Mix] Automatically merge managers according to the mix > rebar3 > rebar > make order + [Mix] Force recompilation if dependency was recently fetched + +- Update to v1.2.1 + Enhancements + [IEx] Support remote pids/ports with IEx helper i/1 + [Protocol] Warn when defimpl is called for a consolidated protocol + + Bug fixes + [ExUnit] Ensure assert macros can be used from quoted code + [ExUnit] Do not warn in match assertion if variable is reused in pattern + [Macro] Fix a bug in Macro.to_string/1 where a remote function could be accidentally interpreted as a sigil + [Mix] Ensure dependencies are properly skipped when --only option is given to mix deps.get + +------------------------------------------------------------------- +Fri Jan 1 15:48:20 UTC 2016 - idonmez@suse.com + +- Update to v1.2.0 + + Erlang 18 support + + Many language improvements + + Please see https://github.com/elixir-lang/elixir/releases/tag/v1.2.0 + for the complete changelog. +- Use original source tarball +- Add erlang-dialyzer dependency for the test suite + +------------------------------------------------------------------- +Tue Nov 17 18:59:21 UTC 2015 - jiri.bati.novak@gmail.com + +- Update to version v1.1.1: + + Enum.sample using reservoir sampling + + guard for Enum.sample/2 + + eliminate count>=n corner case in Enum.sample/2 + + don't walk the collection on 0-sized Enum.sample + + test Enum.sample with different random seeds + + fix Enum.sample docs + + Enum.sample: use Tuple.duplicate for sample init + + Enum.sample/2: dedup code in reducer branches + + Start v1.1.0-dev + + Improve UndefinedFunctionError + + Fix my own typo in helpers.ex + + fix previous commit typo bug + + Fix a typo in IO.inspect’s doc + + Fix a typo in Code.eval_file's doc + + Fixed String doc link + + Ensure chunk/4 is haltable + + fix example sample.ex -> sample.eex + + Do not require {ref, :done}, instead allow sync removal + + Add U as ungreedy option, soft deprecate r + + Allow U (upper case u) as an option for sigil_r + + Fix a typo in Dict's docs + + Load dependencies before deps.check compiles + + Add tests for add_process_handler/2 + + default ports for WebSocket + + Update CHANGELOG + + Include stracktrace on ExUnit timeouts + + Ensure Mix.Config is deep merged + + Add compatibilty with OTP 18 typespec changes + + Small fix for Application docs. Returning value is not a tuple + + Update release instructions + + Change version requirement to be MAJOR.MINOR + + Filter out :elixir_lexical from stacktraces + + Improve GenEvent docs + + Remove previously generated beams before installing new ones + + Documented File.stat options + + Improve stat docs + + Add MIX_ENV output to archive.build + + Report correct location if local.hex failed + + Bump Hex requirement + + Add copy_path! instead of read_path!(..., file: ...) + + Test the way System.cmd finds for executables + + Change implementation of System.cmd to match the docs + + :gen_event_EXIT can only be successful reasons for process handlers + + Remove :elixir module from stacktraces + + Also remove elixir_exp from stacktraces + + Fix compiler warning + + Do not pass false into port command + + Move printing out of copy_path, always create dir + + Introduce `StringIO.flush/1` function + + Define value before using it + + Fix spec for surround_many + + Fix :stderr_to_stdout option + + Send elixir version as parameter when installing hex + + Make some docs more gender neutral + + Give higher prio to powershell on windows + + Fix documentation of IO module + + Don't crash on malformed proxy env var + + Refactor and add new rewrite rules + + Purge and delete modules before compiling them + + Also purge and delete during tests + + Test that we do purge and delete artifacts + + downcase path comparison in application directory test + + Support mix help --search PATTERN + + Write to manifest when file is removed + + --elixirc-paths should be a subset of project paths + + Add task for pushing standalone mix + + Fix String.replace/4 typespec + + Build .beam location from scratch on mix compile.elixir + + Remove unecessary comment + + Add OTP 17.3 to run on Travis CI + + Added :read_link option, doesn't break current tests, needs new tests + + Make the parameter more explicit + + Fix a couple of minor typos in docstrings + + Added File.lstat and File.lstat! functions and associated tests. These functions are elixir versions of the unix lstat function. + + Based on email from Paulo Almeida, I removed the apparently extranous calls to IO.char_data_to_string in the stat! and lstat! methods. + + Revert "Based on email from Paulo Almeida, I removed the apparently extranous calls" + + No longer inline binary expressions in EEx + + fix typo + + Fix missing concatenation operator. + + Fix test for mix deps.clean. + + set null prompt function in dumbterm mode + + Do not set not shell as we know have a custom prompt + + Update CHANGELOG + + Revised tests to use tmp_path for file paths. + + fix typos + + Fix typo + + Use unamed tables for module compilation + + correct is_nil @doc to have the same format as the other is_* functions. So it is consistent in the Kernel > Summary docs + + Use a not confusing example for String.grapheme + + List foldl, foldr @doc + + fix link to bug reports + + explaining #elixir-lang + + explaining #elixir-lang (better option) + + mix.ex: example "mix run hello" -> "mix hello" + + Properly handle eval_failure warnings, closes #2835 + + Unify error reporting from EEx, closes #2833 + + Improve token errors for aliases, closes #2818 + + Fail to compile try without else/catch/after/rescue, closes #2797 + + Update release instructions + + More updates to instructions + + spelling mistake in iex docs: dafailt -> default + + fix escaped terminatiors in sigil + + Highlight main logger level config + + Fix @doc of List.keyfind,keymember? and keydelete + + Replace `defstruct/2` with `defstruct/1` + + change some doc examples to iex style + + fix typo + + Use elixir tmp directory instead of /tmp, closes #2849 + + Create directory before copying file + + fix typo + + should throw an exception when the second argument is negative + + complete test coverage for Stream.take_every/2 + + Fix `String.ljust/2,3` and `String.rjust/2,3` functions + + Move string justification defaults to the function heads + + No need for `do_` prefix in `String.do_justify/4` + + improve important links + + link to docs.html + + Fix type of Inspect.Opts limit + + Correct Enum.take, Enum.take_every, Stream.take, Stream.take_every to accept proper nth/count values + + fix documentation of String module + + fix spec and add more test for String.duplicate/2 + + Improve documentation of Dict module + + fix inline documentation because of broken ansi representation in iex + + fix typo + + fix floating point approximation error + + fix wrong String.split_at/2 output when second arg is not an integer + + fix wrong String.at/2 output when second arg is not an integer + + explains when to use Float.parse/1 and that String.to_float will not deal with integer fmt strings + + bypass warning + + fix mistake on test + + fix doc line's length and test one more time + + Fix SupervisorTest :push handle_cast method + + Move 0 index match to the function head in `String.split_at/2` + + Move same pos match to the function head in `Regex.apply_list/5` + + rename two identical variables to same name and remove guard + + Make IO.ANSI.Docs readable on white background + + correcting broken url in GenEvent docs + + fix wrong CRLF grapheme + + Don't show hex update message on mix local.hex + + fix broken link in GenServer module + + Add doctest to the test template + + Make map_reduce @spec stricter + + Fix command_to_module_name not converting snakecased names properly + + Drop unneeded functions and fix module_name_to_command conversions + + Fix GenServer.cast/2 docs + + Document --unlock flag in deps.clean + + Add number of skipped tests to ExUnit output + + Ensure compilation does not leave random spurious data on failure + + - adding example for float-32 - making it more clear that ther order of type options doesnt matter + + Clarify \x applies to unicode codepoints + + Add Enum.minmax and Enum.minmax_by + + Remove unnecessary binding + + Add @spec for `main` in escript + + Fix typo in module documentation + + Fix splitting of empty strings on regex with trim: true + + Fix string splitting on regex when both :trim and other options are present + + Raise on previous alias warning expansion + + Update CHANGELOG.md + + Delegate to :erlang.binary_to_float on Float.parse/1 + + Introduce an implementation of Integer.digits/1 + + Fix misspellings in docs, comments, and strings. + + More spelling and grammar fixes. + + Update documentation for Enum.join + + fix typo + + introduce Enum.reverse/3 + + Add Integer.undigits/2 + + Fix broken IO.ANSI.Docs parser + + Fix IO.ANSI.Docs for multiple stars/underscores/backticks + + Use the new build env on Travis + + add 17.3 to allow_failures section + + fix corner case for end detection + + add more test cases for in word symbols + + Execute tests with same name + + Add test cases for non-space delimiters + + Use IO.ANSI.format/1 for escaping mix shell messages + + Register test with duplicate names only once + + Clean up IO.ANSI.Docs handling of ` + + Update CHANGELOG + + fix documentation for Record Types + + remove unnecessary prefix + + Improve archive error on Windows + + Improve IEx autocomplete implementation + + Enum.sample/1 should raise if the list is empty + + Fix incorrect boundary condition + + Add `\g{N}` for &Regex.replace/4 + + Document `\g{N}` + + Remove empty/1 callback from Collectable implementations + + Fix doc build instructions + + Improve Mix doc intro section + + No need for default `code` arg in `IO.ANSI.Sequence.defsequence/3` + + Simplify color sequences definition in `IO.ANSI` + + Use same verb tense across Elixir documentation + + Remove dead @doc snippet + + Add support for --werl in Windows bash-like shells + + load modules from load path + + Always use the loaded application modules + + Optimize and also add completion for Erlang modules + + Add Enum.unzip/1 + + Improve loadconfig docs + + Remove test duplication + + Use actual range in the `EnumTest.Range` + + Improve test coverage for `Enum.reverse_slice/3` + + Add `@spec` for `Enum.reverse_slice/3` + + require otp 17.3 to pass on travis + + warning about dumb terminal just irritates users + + Improve `Enum.reverse_slice/3` performance More than thrice for lists Around 35% for other collections + + Only shut down Logger if the application is being actually started + + improved performance of Integer.undigits/2 + + this resolves #2952 compile error + + fix typos + + smart_engine: Rephrases doc + + Add cover directory from 'mix test --cover' to default .gitignore + + Optimize reduce for maps + + Keep .gitignore ordering + + Fix bootstrap issues + + Improve docs for URI + + Further improve URI parse docs + + Fix mix shell tests when ansi escapes are disabled + + Copyright requires just the starting year + + Do more strict matching on URI scheme + + Implement Integer.parse/2 + + Use a guard to check if a valid base is given to Integer.parse/2 + + Integer.parse/2 shouldn't parse when base is not an integer + + Remove unnecessary Integer.parse/1 + + make doctest syntax consistent + + fix spec for Integer.digits/2 + + Check Elixir version right after archive installation + + Document the implications of setting embed_elixir to false. Closes #2970 + + Specify error from node/1 as an atom + + Compile docs to doc/ + + Fix a few simple typo's, found while perusing the code. + + Keep original stacktrace on inspect errors + + Remove "private structs" from struct types + + Don't go through hex.pm API server to install Hex + + Update CHANGELOG + + Add column info in tokenizer, #2987 + + Fix line extraction in elixir_parser + + Change location info format in tokenizer + + Store tests in a list to keep ordering + + Support safe: boolean option in inspect + + Count \\ as just one character in column info in tokenizer + + GenServer docs fix: missing {:ok, state, :hibernate} for init callback + + Fix column counting in elixir_interpolation.erl + + Improve IEx helpers docs + + Fix failing documentation assertion + + Remove broken and unfixable delegate_locals_to implementation + + Fix inconsistency of collection in Enum + + Failing test demonstrating ExUnit crash on inspect failure + + Ensure ExUnit survives inspect and exception message failures + + Fixed typos in Supervisor doc + + Ensure mix compiler is able to handle nested directories + + add missing assert call + + Set MIX_ARCHIVES in mix tasks archive tests + + Improve error message when using attributes inside match in module + + Fix error documentation for Kernel.hd/1 + + Invert the order of non matching token messages (closes #2993) + + Fixes #3009 + + Add missing :ok return + + Optimize common flat_map_reduce paths + + Do not repeat the module name + + Inline common map cases in into + + Add --color option description to mix moduledoc. + + Add examples to System.cmd/3 + + Fix the logging with `metadata[:function]` + + Add test for metadata defaults + + Use actual message in the metadata assertion + + Remove unused umbrella flag + + Don't ignore escape characters in regex + + Do not show aliases and import warnings when code cannot compile + + Merge pull request #2801 from fishcakez/app_env + + Get rid of ets from Mix.State + + Add an example of Enum.find_value/3 to the docs + + Avoid escape characters in System.cmd/3 docs + + Corrected incorrect docstring. + + Change Record#extract to a function - Also adds docs for defining records that were extracted with anonymous functions + + Explicitly pass allowed attributes to __info__ + + Do not choke when Exception.message/1 does not return a string + + Call Logger.flush in System.at_exit when running mix test. + + Ensure priv/include are copied on Windows even if source did not change + + Improve error message with invalid structures in maps + + Update CHANGELOG + + Add Dict.get_and_update/3 + + Add Keyword.get_and_update/3 + + Optimize the performance of Map.get_and_update/3 and Keyword.get_and_update/3 + + Avoid export vars in destructure + + Ignore exported vars warning + + Improve docs for functions in File + + Simplify Logger checks + + Update CHANGELOG + + Use :application.info[:loaded] to avoid races + + Fix `Keyword.get_and_update/4` funtion name + + Suppress warning in `Mix.Tasks.Test` + + Make `Dict.get_and_update/3` overridable + + Always rebuild structures on Windows + + Ensure rebar is quoted when running escript on windows + + No need for `args` in `Mix.CLI.load_mixfile/1` + + Fix a minor typo in the docs for `Module` + + Add an example of defining a `__using__/1` macro + + Fix race condition in undef logger translator tests + + Bring change removed from v1.0 into CHANGELOG + + Tell user to run mix deps.get on lock mismatch, closes #3038 + + Fix some grammar in the docs for Access, and add more docs + + Use which_applications instead of undocumented info + + Fix boundary in Enum.take/2, closes #3042 + + Optimize more Enum and Stream functions + + Added man page for iex/elixir + + Polish the docs for the Kernel functions delegated to Erlang + + Add examples to some of the Kernel functions delegated to Erlang + + fix broken system path test + + Remove a Kernel doctest that issued a warning + + Add details to the docs of a bunch of Kernel functions/macros + + Expand attributes and macros in record extractor + + Ensure quoted expressions are properly shown in error messages + + Make it clear that Keyword does not preseve ordering + + Rebar dependencies can be compiled with mix if they have a mix.exs file + + Raise an appropriate error when raise/1 is called with an invalid arg + + Remove @moduledoc false from requirement + + Allow rebar dependencies to be specified via :path + + Remove 17.1 which has a bug in its filelib:wildcard check + + Add the timeout option for tests + + Add the timeout option for running the test + + update links to website + + Polish the docs of a bunch of Kernel functions + + Added to tuple.ex module doc a see also note reference the various Kernel functions dealing with tuples. The Rationale for this is that its confusing for a newcomer to the language that these are not members of tuple and it provides a hint as to where these are actually found + + singular plural issue fixed for tests + + Throw syntax error for `:foo.Bar` + + Add positive test case for punctuation in atoms + + Remove internals from IEx stacktrace + + Set the timeout to infinity when trace option is true + + Update CHANGELOG + + Refactor the runner configuration to make it testable + + Add a note for in memory reloading to r/1 + + Logger: Format OTP 17.4 terminate reasons + + Fix Exception.stacktrace_entry/0 type spec + + Logger uses chardata, not iodata + + Add tests for IEx.Helpers.import_file/1 with missing file + + Add an :optional option to IEx.Helpers.import_file/1 + + Update docs for `IEx.Helpers.import_file/1` + + Add Record.extract_all/1 returning all records information + + small corrections in docs + + Also ignore elixir_clauses in stacktraces + + Update new major.minor instructions + + Hack The Docs contribution + + Add import flag to Bitwise + + Replace os.cmd in git with System.cmd, done one to verify what is wanted. + + Correct the phrase "if there already exists" + + Fix httpc proxy option profile + + Replaced all uses of :os.cmd + + Use stderr_to_stdout option in run_cmd_or_raise + + Fix @spec for Path.wildcard + doc:return value + + create individual tasks for "make docs" + + Move test for `:foo.Bar` syntax error + + Add more documentation for ~> requirements + + Correct usage of `ExUnit.Assertions.flunk` and add guard for it + + Tweak the docs a bit. + + No need to pass cmd, include output in errors + + Use Behaviour in exception + + Update Task logs to OTP 17.4 behaviour format + + Update logger translator tests for OTP 17.4 format + + Polish the docs of some `Kernel` functions + + Polish the docs for the Kernel.def* set of macros + + Mix: add comma at the end of worker() + + Turn some examples in `Kernel` into doctests + + Support R18 standard error + + Do not erase stacktrace on bad configs + + Fallback to undocumented API only if necessary + + Polish the docs of the sigils in the `Kernel` module + + Fixed the formatting and some docs in the Tuple module + + Ensure mix CLI-wide that we print Logger messages + + Fix some docs in the `Atom` module + + Also run tests on 17.4 + + Replaced all but one Mix.shell.cmd call with System.cmd. The remaining call is for windows systems using powershell and I don't know the appropriate token parsing for powershell command lines. + + Reuse `ArgumentError` creation in `elixir_quote` module + + Add test for error on struct field value + + Use `:lists.reverse/2` instead of `:lists.reverse/1` and `++` + + Emit deprecation warnings for Access protocol + + remove blank in README template + + Unify empty parens and map exprs handling + + Split containers and call args expressions + + Add documentation with examples how to assert return values and capture IO output at the same time + + Add String.levenshtein_distance/2 and "Did you mean?" suggestion to mix + + Add distinction between no_parens_one and no_parens_ambig to parser + + Throw syntax error on [f g :a, :b] + + Add comments explaining changes to parser + + Add assertion that `[f g a]` is ok + + Add line breaks to code comment + + Polish the docs for the functions in the `Float` module + + Replace `String.levenshtein_distance/2` with `String.jaro_distance/2` + + Remove crypto and syntax_tools dependencies + + Use best match in "Did you mean?" mix suggestion + + Store relative paths in erlang manifest + + Replace "in between" with "between" in comments and doc strings + + Replace "parenthesis" with "parentheses" in comments and doc strings + + Improve tokenization of identifiers and `k: v` keys + + Use identifier instead of name + + Fix typo + + Ensure changes in child deps forces the parent to recompile + + Update CHANGELOG + + Make ::/2 a special form + + Also check mix options for divergence + + Revert "Merge pull request #3109 from oneeman/refine_no_parens_parsing" + + Return value when matching with `_` on last line of block + + undefined attribute does not need to be set to nil + + Added test for markup ending in . and code to pass the test + + Improve docs for GenEvent.stream/1, closes #3138 + + adds Dict.get_lazy/3 + + adds Dict.pop_lazy/3 + + adds Dict.put_new_lazy/3 + + adds guards to dict lazy funs + + Clarify where truthy and falsey values suffice in the Enum docs + + Fix ExUnit.Assertions assertion fail doc example + + Produce clearer messages for syntax errors before a sigil + + Add example to Regex.replace with option "global: false" + + the example is correct but in the description have a small difference + + Mention default values in String.split/3 + + remove duplicate words + add quotes to nil and false + + Convert quoted interpolation to strings + + Refactor compiler errors (elixir_errors:parse_error/4) + + Properly inline regex docs + + Add error_logger metadata when notifying Logger + + Reduce time complexity of Enum.uniq and Stream.uniq + + Add dedup(_by) and usort(_by) to Enum and Stream. + + Make Stream.dedup/1 use Stream.dedup_by/2. + + Depreciate Enum.uniq/2 in favor of Enum.uniq_by/2 + + Update CHANGELOG + + Module.split accepts only module atoms or strings naming these (#3161) + + Rollback to use Mix.shell.cmd + + Add output and stderr_to_stdout options to Mix.shell.cmd + + Use exits instead of stop so we get stacktraces + + Add `Keyword.get_lazy/3` function + + Add `Keyword.pop_lazy/3` function + + Add `Keyword.put_new_lazy/3` function + + Add `@spec` for `Keyword.pop/3` and `Keyword.pop_first/3` + + Make Exception.exception/1 support binary argument in default impl. + + Increase elixir_counter timeout + + Make `on_definition` insertion more readable + + Refine parsing of no parens calls + + Rename output to quiet in Mix.shell.cmd + + Store behaviour docs in the byte code + + Replace is_win?/0 with windows?/0 + + Fix doctest :only, so it accepts multiple functions + + Optimize `Keyword.pop(_lazy)/3` functions + + Optimize `Keyword.new/1` function + + Remove duplicated doctests in `Keyword` + + elixir.1 and iex.1 share the same options list + + Optimize `Keyword.pop_first/3` function + + Amend elixir and iex man pages + + Easier to understand Enum.member? in doctest filters + + Filter :moduledoc + + Add elixirc man page + + Move moduledoc fun_arity down to where test is extracted + + Update documentation for doctest + + Add space after comma: Format consistently + + remove double space + + Speed up URI.decode_query/1 + + Speed up decode_www_form + + Add example to `ExUnit.CaseTemplate/using` + + Remove superfluous guards in `IEx.Introspection` + + Improve handling of multiple modules in the `h` iex helper + + Rename `print_doc_arg` to `format_doc_arg` + + Comments from the last review taken into account + + Add a test for submodules + + Add `IEx.Introspection.puts_error/1` + + Run all tests with +T 9 to get a better chance at finding races. + + Fix race discovered by +T 9 in GenEvent test. + + Simplify docs lookup in `IEx.Introspection` + + Add `IEx.Introspection.print_doc/2` + + Introduce `b` IEx helper to display behaviour docs + + Polish the docs for the functions in the `IEx.Introspection` module + + Don't emit deprecations for access + + Fix error in EEx docstring ("a macro" to "an expression") + + Alias `Kernel.Typespec` inside `IEx.Introspection` + + Move doc default to the `IEx.Introspection.print_doc/2` + + Make `defmacrocallback` to be shown via IEx `b` helper + + Add `IEx.Introspection.puts_info/1` + + EEx: fix interpolation inside quotations + + Make IEx `b` helper to accept single module argument + + EEx: convert tag type markers to char lists + + add backward compatibility with cmd/2 + + Check the number of schedulers online in exunit suite, closes #3199 + + EEx: Add trim option + + fix Kernel.=~/2 for "" =~ "" + + Document and test the behaviour of Process.exit(self(), :normal) + + Document that ExUnit.Case :async defaults to false + + Explicitely declare argument names for functions with unnamed arguments. + + correct @spec for `handle_expr` + + Improve error message for invalid struct fields definition + + Refactor trim mode + + add backticks to a massive amount of true, false and nil + + rename function arg. when "other" was used + + Only make tokenizer return char lists + + Update CHANGELOG + + fix failing test on erlang 18 release candidate + + fix typo in previous commit. bodyless defmacro added to show proper arg in b/1, t/1 + + Make `import Foo, except: []` respect previous imports + + Optimize `Keyword.new/1` function + + Fix spec for `Keyword.new/2` + + Optimize `Keyword.new/2` function + + Support specs for unreachable private functions + + Added documentation and examples for List.to_existing_atom/1 + + Update CHANGELOG.md + + Remove function deprecated < 1.0 + + Support build_embedded and consolidate_protocols + + Support start_permanent + + Generate build_embedded and start_permanent in new apps + + Do not print app name as a filename + + Improve error message for IEx.pry/1 + + Update rebar_test.exs + + rename :shell option to :system in mix + + Ensure we consolidate only when there was a change + + Update archive.install.ex + + Remove readd_paths + + Added documentation and doctest examples to many of the functions in code.ex + + Ensure we quote proper file on exceptions + + Do not propagate protocol consolidation to children + + Clean up ExUnit.Assertions docs + + Fix doc formatting in ExUnit.Formatter + + Keep IEx history in an agent instead of process dictionary + + Add message for failure due to `--warnings-as-errors` + + Avoid missing behaviour warnings when compiling erlang files + + Polish the docs for the `Set` module + + No longer translate arguments to `@on_definition` + + Tidy up `IEx.History` implementation + + Update TODOs + + Clean up spaces in code docs + + Fixes for Erlang 18.0-rc1 + + Update translator.ex + + Keep IEx history state in the evaluator process + + Add some docs to `defstruct/1` + + Add some docs to `Kernel.defprotocol/2` + + Wait until test process is down in ExUnit runner + + Remove guards. Fixes #3248. + + remove repeated word + + Tag async tests as such + + Ensure protocols are also consolidated in umbrellas + + Update CHANGELOG + + Assert proper return type from app.start task + + Replace `:erlang.now/0` with `:os.timestamp/0` + + Rename `term` into `value` in `Tuple.insert_at` + + EEx: correct doc for handle_assign/1 + + Refactor File.cd! in terms of File.cd + + Refactor File! methods to avoid going through IO.chardata_to_string twice + + Implement `Tuple.append/2` + + Cosmetic changes in the elixir, elixirc and iex man pages + + Added a preview version of the mix man page + + Add `Tuple.append` inlining + + Fix small defects + + EEx: allow `)` after `end` in end tokens + + Introduce `MapSet` data type + + Improve test coverage for `HashSet` + + Fix whitespace errors in Integer source file + + Add further docs for `Kernel.struct/2` + + Ensure we escape config before injecting into escript + + Simplify `Application.get_env/3` + + Add `Application.fetch_env!/2` + + Do not expand in/2 argument in module body + + Avoid "module currently being defined" races in tests + + Polish the docs for `Regex.split/2` and `Regex.scan/2` + + Fix default value on `which_applications` timeout + + Mix new: raise if mod name in use + + in use -> taken + + Fix Version.pre typespec + + Fix to_string for Version with numeric pre + + Rename Enum.sample to Enum.random. Fixes #3285. + + Join pre-release parts with "." + + Support maps in `Module.simplify_signature/2` + + Mix: fix import_config with non-matching wildcard + + Clean up defstruct/defdelegate implementations + + Support for structs in `Module.simplify_signature/2` + + Provide tab-completion for aliases + + No need for `started?/0` check in `start_iex/0` + + Refactor `IEx.Autocomplete` + + Improve message for compilation error writing .beam + + Refactor `Kernel.CLI.CompileTest` to be async-safe + + Fix inferred argument names in `Module.simplify_signature/2` + + Update CHANGELOG + + Document dedup uses ===, remove usort + + Optimize simplify_signature by traversing only atoms again + + Clean up cmd tests + + Do not trigger the code server on Any dispatch + + EEx doc: Prevent list from being rendered as code blocks + + Embed consolidation information as a function in the protocol + + Derived protocols should go through Any + + Revert d49fb06 now underlying issue has been resolved. + + Underscore does not need to handle paths + + Added documentation and examples for File.stream! + + Use agents to store Mix config + + Update gen_server.ex + + Revert "Update gen_server.ex" + + Clarify what deps.clean removes + + Makefile: allow passing REBAR and PREFIX via environment + + cli_test: skip test that relies on chmod() when under fakeroot + + make test: avoid writing to $HOME + + Clean up MIX_HOME setup + + Revert "make test: avoid writing to $HOME" + + use $REBAR on mix tests + + Ensure Access is derivable for now + + Improve error message and increase test timeout to 60 seconds + + Properly set remaining timeouts + + Ensure blocks do not clobber eex buffer + + Fix `Keyword.get_and_update/3` function + + Correct `Port.info/1,2` functions + + Fix `=` to `==` in a KeywordTest test + + Bugfix to syntax error before sigil + + update anchor portion of link to erlang docs + + Give a meaningful timeout value to ex unit runner stats handler + + Trace always win over timeout when set + + Fix runner test + + Add `Process.hibernate/3` + + Do not assert when find_executable is returning relative paths + + Refactor extraction of meta location + + Rename the first argument to the Logger macros + + Added another preview version of the mix man page + + Support printing pids and refs in Logger metadata. + + Consider subdirectories in `Mix.Project.config_files/0` + + Fix doc formatting for `Path.split/1` examples + + Improved docs for bitstring. + + Deleted the note. + + Add String.splitter/3 and optimize String.split/3 + + Ensure we return strings on String.split based on unfold + + Ensure String bool functions do not fail on empty lists + + Remove empty starts_with usage in IEx.Autocomplete + + Fix `File.cp/3` in case of a file coping to itself + + Correct doc and error message for `File.cp!/3` + + Completed mix man page + + Fix docs typos + + Read assert and refute receive timeouts from ex_unit config + + Optimize Dict.merge/2, make Dict use cae clearer + + The latest requests were taken into account + + Fix including .app file in archives + + Add test for .app file in archive + + Add tests for fenced code blocks in IO.ANSI.Docs. + + Initial support for fenced blocks in IO.ANSI.Docs. + + Fix an errant function arity in the docs + + `surround_many/5` handles empty documents + + Add unit test for IO.binread with :all option + + Read 4K blocks instead of lines in IO.binread + + Fixed several mistakes in the elixir and iex man pages + + profile.fprof mix task + + Update escript.build.ex + + properly layout the table + + minor styling fix + + IEx Autocomplete assumes module at each level #3361 Squashed commits: [f0bb5a0] move sublevel test module inside IEx.AutocompleteTest [5b70ad9] move sublevel test module inside IEx.Autocomplete [0130aa3] add test for iex autocomplete sublevels [f88b853] IEx Autocomplete assumes module at each level #3361 + + Copy-edit the module documentation of Application + + Fix GenEvent detecting module that isn't loaded + + use # instead of nbsp + + Improve test coverage for implicit protocol deriving + + Remove duplicated assertion in `ProtocolTest` + + Suppress warnings in `Inspect.Algebra` + + Improve docs for Stream.interval + + Optimize rstrip + + Handle corner cases for small strings in rstrp + + Use reliable home directory source + + Add docs for simple one for one + + Also document exit reasons + + Improve wording + + docs(Mix.Tasks.App.Start): fix typo + + Ensure we properly underscore acronyms followed by paths + + Defining arg0 for System.cmd tests so it can work with busybox + + Ensure take/1 does not consume more than required + + Speed up upcase and downcase for large strings + + Only consider outer halts in flat_map when the op is not halt itself + + Remove duplicate test in `StringIOTest` and correct test names + + Fix `StringIO` processes leakage in the `ExUnit.CaptureIO` + + Handle :undefined in Exception.format_arity/1 + + Remove leftover obsolete code + + Fix race condition in logger translator test + + Update CHANGELOG + + Really fix race condition in logger translator test + + Changes to "v" IEx helper + + Rely on loaded_applications instead of running ones + + Avoid non-fix table errors + + Skip test that depends on read-only file when running as root + + Fix typo + + Restructure and add to Kernel.<<>>/2 docs + + Clean up <<>> docs to avoid doctest failures + + spell backpressure consistently + + Allows underscores in binary, octal and hex literals. + + Ensure that a digit follows the underscore in binary, octal, hex notations. + + Mention the use of records in pattern matches + + Small manpage corrections + + Ignore man build artifacts + + Remove an erroneous comment from String.to_char_list's doc + + Elaborate on codepoints and the :binary module in String.to_char_list + + Support IEx.pry with --remsh + + Use https on github shortcut + + Use https in test fixtures too + + Convert last git reference to https + + Better documentation for Task.await + + Add support for Enum.reduce_while/3 + + Move terminate reason to second line in logs + + Add example of Bitwise in guards + + Additional Enum.reduce_while/3 tests + + Update Application docs to make them more accurate. + + fix warning of unused variable in test + + Remove previous archive after download success + + Use file alias 'F' for consistency + + Corrected grammatical errors in string documentation + + Corrected grammatical errors + + Reduce length of first paragraph to improve summary readability. + + Move current_env to IEx.Server + + Move autocomplete server to IEx env + + handle completion of erlang module aliases + + Build embedded requires explicit compilation step + + Add explicit docs that Mix.Config sets Application env + + Fix race condition in gen_event tests + + Add more configuration examples to Logger + + Be clear where the config is set for logger + + Add example of Agent.get_and_update/2 + + Typo in doc for custom logger backends + + raise 'Not yet implemented error' on such tests + + add :not_implemented tag + + Not implemented test sets tag + + Fix typespec test on OTP18 + + Revert "Use https on github shortcut" + + Revert "Convert last git reference to https" + + Revert "Use https in test fixtures too" + + Fix reversed Line, Column in tokenizer + + Use the given length instead of calculating it + + Properly offset columns on dot + + Introduce `ProxyIO` + + Introduce `Logger.Backends.Capture` + + Introduce `Logger.CaptureLog` + + Add docs and custom io device support to capture_log + + Consider `:standard_io` as a valid device name + + Document ProxyIO and implement own :io.request + + Demonitor proxied device and consider unknown messages handling + + Introduce `Logger.CLIFormatter` + + Add tests for `Logger.Backends.Capture` + + Document Logger.CLIFormatter + + Rename `ProxyIO` to `ExUnit.ProxyIO` + + Rename `Logger.CaptureLog` to `ExUnit.CaptureLog` + + Add support for `:capture_log` ExUnit test tagging + + Handle map() typespec correctly + + Fix map typespec in helpers test + + Fix map typespec in helpers test + + Switch mix to using https:// instead of git:// in GitHub URLs + + Move tests to Erlang 18 which has proper logger behaviour + + Fix unused variable warning in logger test + + Translate emulator logged process crashes in 18.0+ + + Revert "Merge pull request #3411 from doomspork/fix-hex-removal-bug" + + Give curl priority over wget + + fix for Erlang R18.0 changes in maps module + + Support dialyzer attribute + + Get rid of `ProxyIO` and merge `:console` and `:capture` backends + + Ensure we also normalize badmap and badkey in rescue + + Run badkey and badmap only on 18 + + Improve Kernel.Def + + Make error messages in lowercase + + Add muting for the `:console` backend for the duration of capture + + Mix new: use only umbrella template for config.exs, not both + + Generate installation instructions with READMEs + + Improve opaque types section on doctests + + Add missing dot to docs + + fix typo in special_forms + + Fix the logger format in the Logger moduledoc to match the actual used one + + sync documentation with code + + Mention Enum.reduce/3 in Enum.reduce/2's documentation. + + Move add/remove logger backend to client + + Improve error message for bad raise + + Add test for log capture removal on exit + + Simplify `ExUnit.Server.log_capture_on/1` return + + Update special_forms.ex + + Fix warnings in doctests + + Use shell for fetching hex versions + + Set proxy options for the correct URI scheme + + Improve docs for mix run + + Clarify example in ExUnit.Callbacks docs + + Restrict support for binary message in the default impl of exception + + Do not rely on ansi escapes, closes #3456 + + Only remove extra archives + + Support rebar3 style git refs in rebar.config files + + Do not allow nested ambig expressions + + Disallow more ambiguous expressions + + Ensure proper precedence of operators when mixing matched and unmatched + + Makefile: fix manpage installation in packages + + Introduce `List.keytake/3` + + Adjust code in `List` to style used in the codebase + + Simplify `List.do_zip/2` + + Fallback to known Elixir version if csv is not available + + Improve docs for Task supervisor + + Fix implementation of Stack module which doesn't fit to the Supervisor implementation + + Add warning on underscored variable access + + Reword Agent docs for readability + + make absolute path for gitignore rule for man + + .gitignore : sort alphabetically + + link to search issues + + Provide link to Elixir's GenServer tutorial page + + Split handle_call and handle_cast callbacks in GenServer docs + + Make `Logger.log/3` macro and introduce `Logger.bare_log/3` instead + + add proper credits to copyright holders + + update links to https. remove period adjacent to URLs. + + standardize erlang.org/doc links to use www + + Remove reference to dynamic operators in table + + Check for compile_path on build_embedded + + Enum & Stream, take/2 & take_every/2 variables renamed. +Improvements + + Enum.take_every/1: remove unnecesary Module reference + + Clarify which call sets up the Task monitor + + Load IEx env just once to avoid race conditions + + Update CONTRIBUTING.md to avoid code style pull requests + + Optimize struct building + + Add explicit sort of map to Mix.Dep.Lock.write/1 + + Improve IO docs + + Make `Macro.interpolate/2` private + + rename Enum.minmax* due to inconsitencies + + rename Inspect.Algegra.folddoc due to inconsitencies + + Update CHANGELOG + + Provide detailed error message for nested parens calls + + Bitwise module: remove docs in __using__ and move it to @moduledoc + + Favor explicitness in Mix.Utils.read_path with rebar/archive installs + + Update regex.ex + + Correct docs for -- + + Fix re-registering of device after exit signal in `ExUnit.CaptureIO` + + Enum.slice Check for integers in arguments + + Avoid race condition in tests + + Enum.slice/2: guard added was missing from previous commit + + Use `spawn_monitor/1` to avoid race condition + + Improve `capture_io/3` on exit test + + Allow Logger metadata removal from the pdict + + Ensure Logger metadata is merged on log call + + Preserve metadata order defined in the backend's configuration + + lock / git scm mismatch should be mismatch + + Improve error message for build_embedded true + + Update elixir compiler manifest to use file:consult/1 + + Split compile and runtime in lexical tracker + + Only recompile compile time dependencies in mix projects + + Reduce noise in lexical tracker output + + Streamline aliases and imports in lexical tracker + + Polish the documentation for Mix.Task.alias?/1 + + Add man pages to Precompiled file + + run `man/make clean` dir after `make install_man` + + Merge `man/Makefile` into `Makefile` + + Start logger if --no-start is passed + + Better documentation for the GenServer terminate callback + + Fixing typo in Task.Supervisor.async/4 distributed task docs + + Add an example for running Task.find + + Pass build path as ERL_LIBS for deps.compile commands + + Introduce Task.yield/2 and Task.shutdown/2 + + Fix grammar in Macro.expand/2 + + IO.inspect: @specs fixed, + see full options + + Tweak the docs for the Inspect protocol + + Mention restart: :transient in Task moduledoc to clarify Supervised Tasks example + + Avoid race condition in `capture_io` "device re-registering" test + + Make a distinction between strict containers and strict calls + + Match on proper error message prefix + + Speed up `Enum.take_random/2` for big inputs + + Optimize many functions in String + + Add a note to the docs for Enum.reduce/2 + + Improve mix.exs code sample + + Improve error message in case of lockfile eval failure + + Indent code sample for __protocol__/1 & impl_for/1 + + Mention expressions without results in doctests + + Raise if piping into binary operator with 2 args + + Fix Macro.pipe syntax when bootstraping + + doctests raising exceptions and assert_raise show original stacktrace + + Allow tests to be skipped with @tag :skip + + Update CHANGELOG + + Support translator_inspect_opts + + Be more strict on the supported deps formats + + Validate :only in mix deps, closes #2980 + + Make sure we support multiple environments in only + + Access is no longer a protocol + + Inline map operations in put_in and update_in + + Remove +T 9 flag + + Do not compile project if deps contain the task + + Fix Docs: Kernel.++/2 is not allowed in guards + + Restrict ranges to work only with integers + + Improve coverage for dynamic in clauses + + Add @type struct and error when overriding builtins + + Set Agent initial call + + Stop with bad_return_value on bad return in Agent + + Rename release_zip to release_precompiled. Fixes #3543 + + Add = to list of functions that handle returns + + Warn when numbers or binaries are not used within a block + + Handle optimizable returns explicitly + + Add useless building warnings for module attributes and variables + + Add quotes. Fixes #3536 + + Introduce :capture_log ExUnit configuration. + + Raise an error if there are no files available to run test + + Move logger flush to kernel cli, closes #3100 + + Fix var warnings + + Fix bootstrap issues in kernel/cli + + Check for PID result from Logger + + capture non-symbolic operators (&and/2, ¬/1, &c.) + + Warn if app configured but not started when build_embedded + + Handle abnormal exit in System at_exit + + Update app.start.ex + + Use or in left in [a, b, c] as the compiler can opt it better + + Remove warnings from erlang suite + + Allow nil pid in task + + Always unlink when shutting down task + + Support custom tasks using monitor of registered process + + Add GenServer.whereis/1 + + Clean up typespec docs to avoid current confusion + + Remove compiled protocols on mix clean. Fixes #3541 + + Warn defaults not defined in function head with multiple clauses + + Clarify some type descriptions in typespecs + + Add test to verify compiled protocols are removed + + Further optimize in range + + Add application to logger metadata + + Ensure to always clearn up logger configuration + + Move test to compile task (compile.all is an impl detail) + + documentaion for module names, variable names and custom sigils + + Added a blub about underscore names to the `import` documentation + + Fix identention inside lists + + URI: add RFC links + + Mention sigil_R as valid option to create a regex + + Fix race condition in `CaptureLogTest` + + Dog food `Application.put_env/3` + + Tidy up `Mix.Tasks.Profile.Fprof` + + Remove dead code from mix tasks tests + + Alias `Fprof` mix task for readability in tests + + Warn on build embededd instead + + Fix doc comment for File.cp_r + + Improve async docs + + Stop/unload applications started/loaded in mix tests + + Always warn on mix config when application unavailable + + @callback can now be used directly (without Behaviour). Add @macrocallback. + + Update CHANGELOG + + Add a short description about ExUnit and Mix improvements too + + Soft-deprecate Behaviour + + Remove usage of use Behaviour + + Makefile: print a success message on `realease_precompiled` + + Clean up makefile + + Improments in module, function & variable names syntax + + Make a distinction between Location, Token and Node in parser + + Convert test :atom into test string + + Fix test name related failure + + Fix warning in warning_test.exs + + Emit syntax error for invalid fn end, closes #3311 + + Soft deprecate booleans in :as, closes #3190 + + Deprecate ?\x in favor of simply 0x + + Deprecate as: true | false in require/alias + + Support \u in strings and char lists for unicode mapping + + Also fail on do after , and ; + + Allow operators to work still after comments + + Remove unnecessary code in Enum.uniq example + + Also perform new line checking with structs + + Do not add fetch to access + + Improve binary docs + + Assert key-value pairs in type structs + + Raise if heredic terminator in invalid location + + Do not change the code semantics in assert/receive + + Clean up map access code + + Match errors should have higher priority on assert = + + Keep proper line info in rewritten/inlined code + + Recompile projects if SCM changes, closes #3375 + + Fix typo in mix man page + + Improve error message when no return value specified in func spec + + update error messages, handle non-call first arg to ::: + + Line numbers for doctest errors. Fixes issue #3592 + + fix a typo in bitwise documentation + + Warn when dependencies have conflicing :only + + Remove amount of fixture data in deps test, improve coverage + + Do not assert on local paths + + Improve GenServer docs + + (#3603) add more application functions + + Handle warns coming from erlang with line set to :none + + Improve error messages for `match?` assertions + + Erase app directories on full recompile + + Ensure only restriction is passed from parent to child + + Keep metadata when rewriting assertions + + Also store lines in typedoc and ensure @*doc return strings + + Update CHANGELOG + + fix(Kernel): check arguments on if and unless + + Do not inject `:application` key in metadata if it has `nil` value + + Cut off "Elixir." prefix for modules in Logger metadata + + Correct function argument name + + Correct formatting + + Update CHANGELOG.md + + Add URI.to_string/1 + + Update elixir.bat + + Update documentation for IEx.configure + + ExUnit: Fix warning in test + + added docs for :keep option in OptionParser module + + implemented iex pid helper, using :c.pid + + Add missing character in delete_at code sample + + CHANGELOG.md: Add missing period in header + + Enum.chunk: correct types in specs + + Move Hex loading into its own module + + Provide sha512 checking on mix archive.install + + Use public key encryption for downloading Hex metadata + + Add task for managing public keys + + Also download signed rebar packages + + Forward all info values to get_module_info + + Improve unexpected token error messages + + Update CHANGELOG + + Raise nice error message if ExUnit.Case was not used + + Ensure we don't warn on missing imports if nothing was imported + + Fix typespecs for Stream.chunk + + Add Stream.transform/4 + + Provide detailed description on how to change timeout + + Include docs zip in the publish process + + Remove reference to GenServer.Behaviour from LocalsTracker + + Add and document GenServer callbacks + + Improve docs on GenServer.init/1 returning :ignore + + Improve Supervisor.start_link/2 spec + + Add and document GenEvent callbacks + + Perform merging of only in non-shared paths + + Update b/1 helper for callback docs + + Properly convert captures in Macro.to_string/1 + + Document and test :only behaviour, closes #3664 + + Update public key + + Upgrade travis to check against Erlang 17.5 and 18.0 + + Ensure we merge excluded values + + Prune more elixir internals in stacktraces + + Fix typo in File.cp_r for files (rename tmp to b.txt) + + Add support for File.rename (unix-like mv) based on elrang specs + + Convert remaining test :atom to strings + + Include link to Hex publish + + Raise nice error merge when setup returns bad data + + Release v1.1.0-beta + + Match on proper error on lock format mismatch + + made parse() support complete scientific notation + + Correct double words + + Regex.regex?/1: name unnamed argument and improve docs + + Correct indefinite article a/an + + Correct descriptions in @doc, @moduledoc, @shortdoc to use Present Continuous + + Avoid splitting words that use hyphen + + ensure_structure: rephrase wordings + + Mix.Hex: improve documentation and code + + Add backticks to true, false, nil + + correct wording + + Correct spaces in iex> + + Format raise message consistently + + Add arity or correct it for functions that are not being linked in the html docs + + spelling `miliseconds` -> `milliseconds` + + Allow list of spec in Process.info/2 + + Provide a best practices section for use + + Do not choke on unknown manifest files + + Fix `does` → `do` verbal agreement in special_forms.ex + + Add text to all links + + Fix markdown files + + Correct descriptions in docs to use Present Continuous (2) + + Use Title Case and backticks for Erlang and Elixir applications + + Add a code of conduct + + Update CHANGELOG + + Use Mix.shell.error for fprof warning + + Fix `responsible to keep` → `responsible for keeping` in env.ex doc + + New test cases for exponent marker E and leading + + + String: strip functions : mention that ALL leading/trailing `char`s will be removed + + Enum: renamed the rarely used `ifnone` argument, in favour of `default` + + Mention the Pin Operator in its documentation + + Improve assert docs, closes #3709 + + Set ex_unit stacktrace to 20 by default, closes #3705 + + Only warn apps that come from the current project stack, closes #3710 + + Ensure binding() doesn't warn on underscored vars, closes #3708 + + Update CHANGELOG + + Only warn if no test pattern matches due to umbrella apps + + Display pinned vars in the receive assertions + + Improve assertion readability in test + + Indent pinned vars and received messages in the receive assertions + + Inspect.Algebra: Move numbered link off the first line + + Standardize use of backticks and quotes; including Error messages and Title Case commands + + Fix bugs involving Markdown code + + Rephrase @doc for Mix.raise/2 + + IO.ANSI: move away link from Summary + + Raise right away for Mix tasks with slashes + + Replace all occurrences of em-dashes in favour of hyphens + + Replace en-dash when it should be hyphen + + Correct "truth value" with "truthy value" + + Rephrase @moduledoc for Mix + + Update CHANGELOG + + Ensure File.touch and File.touch! properly work with universal time + + Support logo when generating docs + + Make it clearer that unimplemented callbacks always stop + + Properly close GenServer heredoc + + Remove leftover callback docs from GenEvent + + Add GenServer.option type + + Mention how to write docs for public Mix tasks + + Provide reporting e-mail + + Use multiline failure message for asser_raise/3 + + Add a couple of tests for assert_raise/3 + + Prepare for upcoming release + + Mix.Dep: show instructions on :nolock and :lockoutdated + + Title case Hex + + "mix deps.clean": Reword docs to make it consitent with "mix clean" + + correct tenses in Agent, Mix.Dep, GenServer docs + + ANSI: standardize docs + + add links to code of conduct + + Improve wording in COC links + + Update CONTRIBUTING.md + + Default to universal times throughout File + + Polish docs for Mix.shell and Mix.Shell.Process + + Fix invalid String.to_atom calls + + Fetch archive/escript with version in filename + + Improve deps.compile error message + + Release v1.1.0-rc.0 + + Make test that relies on shared dir sync + + Add examples using alternate capture/replace syntax + + Module.__info__ : correct links + + explain String.replace/4 :insert_replaced option + + Add Mix recompilation from IEx + + Make a distinction between touching and updating the lock manifest + + Update release instructions + + Stop apps in reverse load order + + String: Rename args "str" to "string" + + Code.get_docs/2: check for valid doc kind in public function, not in private + + Added an example to the to_list function + + Add missing after callback in Stream.transform + + Add IO.ANSI.clear_line + + assert_raise: document that message can be regex + + Update doc for Kernel.hd/1 to indicate guard clause utility + + `compile_error/3,4` is already imported in `elixir_exp_clauses` + + Raise `CompileError` in case of duplicated clauses given for `try` + + Raise `CompileError` in case of duplicated clauses given for `receive` + + Raise `CompileError` in case of duplicated `do` clauses for `cond` + + Raise `CompileError` in case of duplicated `do` clauses for `case` + + Ensure suspending flat map does not consume items, closes #3751 + + Raise if arity not in 0..255, closes #3754 + + Link to the public keys page + + Update CHANGELOG + + Mention config/config.exs in warning + + Ensure we list structs and requires as compile time deps + + Make the Access API based on fetch + + Release v1.1.0 + + Update docs directory + + Fix assertion errors with more than 1 pinned var + + removed obsolete type option from the GenEvent handler type + + Ensure stacktraces are shown on app_path failures + + Fix non integer checks in ranges + + Release v1.1.1 + +------------------------------------------------------------------- +Fri Jul 03 21:59:45 UTC 2015 - matwey.kornilov@gmail.com + +- Update to version v1.0.5: + + Ensure we escape config before injecting into escript + + Read 4K blocks instead of lines in IO.binread + + Add unit test for IO.binread with :all option + + Optimize rstrip + + Handle corner cases for small strings in rstrp + + Ensure we properly underscore acronyms followed by paths + + Speed up upcase and downcase for large strings + + Ensure blocks do not clobber eex buffer + + Only consider outer halts in flat_map when the op is not halt itself + + Expand attributes and macros in record extractor + + Fix GenEvent detecting module that isn't loaded + + Ensure take/1 does not consume more than required + + Handle :undefined arity in Logger.Translator + + Add more documentation for ~> requirements + + Fix Version.pre typespec + + Fix to_string for Version with numeric pre + + Join pre-release parts with "." + + Fix race condition in logger translator test + + Merge pull request #3382 from lexmag/string_io-fixes + + Update CHANGELOG + + Really fix race condition in logger translator test + + Rely on loaded_applications instead of running ones + + Avoid non-fixed table errors on autocomplete + + Delegate to :erlang.binary_to_float on Float.parse/1 + + Update CHANGELOG + + Add docs for simple one for one + + Also document exit reasons + + Improve wording + + Backport improvements to <<>>' docs + + Update to Erlang 18 + + Move tests to Erlang 18 which has proper logger behaviour + + Translate emulator logged process crashes in 18.0+ + + Fix logger translating process exit + + fix for Erlang R18.0 changes in maps module + + Ensure we also normalize badmap and badkey in rescue + + Run badkey and badmap only on 18 + + Release v1.0.5 + +------------------------------------------------------------------- +Mon May 11 15:57:55 UTC 2015 - matwey.kornilov@gmail.com + +- Fix a typo in elixir-doc.spec + +------------------------------------------------------------------- +Sat May 9 09:49:10 UTC 2015 - matwey.kornilov@gmail.com + +- Drop docs into separate package + +------------------------------------------------------------------- +Sat May 09 09:27:59 UTC 2015 - matwey.kornilov@gmail.com + +- Update to version v1.0.4: + + Do not propagate protocol consolidation to children + + Clean up ExUnit.Assertions docs + + Avoid missing behaviour warnings when compiling erlang files + + Add compatibilty with OTP 18 typespec changes + + Fixes for Erlang 18.0-rc1 + + Update CHANGELOG + + Fix doc formatting in ExUnit.Formatter + + Wait until test process is down in ExUnit runner + + Tag async tests as such + + Release v1.0.4 + +------------------------------------------------------------------- +Fri Jun 20 14:31:10 UTC 2014 - matwey.kornilov@gmail.com + +- Update to 0.14.1 + +------------------------------------------------------------------- +Mon Feb 17 22:01:03 UTC 2014 - develop7@develop7.info + +- Update to 0.12.4 + * see CHANGELOG.md for backward incompatibilities and + enhancements + +------------------------------------------------------------------- +Thu Feb 6 17:38:37 UTC 2014 - matwey.kornilov@gmail.com + +- Add macros.elixir for packaging elixir-packages + +------------------------------------------------------------------- +Thu Feb 6 07:51:55 UTC 2014 - matwey.kornilov@gmail.com + +- Update to 0.12.3 + - number of bugfixes + - see CHANGELOG.md for backward incompatibilities + +------------------------------------------------------------------- +Sun Dec 29 16:25:59 FET 2013 - gonzih@gmail.com + +- Update to 0.12.0 + +------------------------------------------------------------------- +Sun Aug 11 19:18:16 UTC 2013 - matwey.kornilov@gmail.com + +- Update to 0.10.1 with support for streams, sets and + many improvements to the Mix and ExUnit applications. + +------------------------------------------------------------------- +Sun Jul 7 14:07:45 UTC 2013 - matwey.kornilov@gmail.com + +- Fix git >= 1.7 requirement + +------------------------------------------------------------------- +Fri Jul 5 07:36:33 UTC 2013 - matwey.kornilov@gmail.com + +- Initial version diff --git a/elixir.spec b/elixir.spec new file mode 100644 index 0000000..02cf3a9 --- /dev/null +++ b/elixir.spec @@ -0,0 +1,128 @@ +# +# spec file for package elixir +# +# Copyright (c) 2024 SUSE LLC +# +# All modifications and additions to the file contributed by third parties +# remain the property of their copyright owners, unless otherwise agreed +# upon. The license for this file, and modifications and additions to the +# file, is the same license as for the pristine package itself (unless the +# license for the pristine package is not an Open Source License, in which +# case the license is the MIT License). An "Open Source License" is a +# license that conforms to the Open Source Definition (Version 1.9) +# published by the Open Source Initiative. + +# Please submit bugfixes or comments via https://bugs.opensuse.org/ +# + + +%define elixirdir %{_prefix}/lib/elixir + +Name: elixir +Version: 1.17.2 +Release: 0 +Summary: Functional meta-programming aware language built atop Erlang +License: Apache-2.0 +Group: Development/Languages/Other +URL: http://elixir-lang.org +Source0: https://github.com/elixir-lang/%{name}/archive/v%{version}/%{name}-%{version}.tar.gz +Source1: https://github.com/elixir-lang/%{name}/releases/download/v%{version}/Docs.zip#/%{name}-%{version}-doc.zip +Source2: macros.elixir +BuildRequires: fdupes +BuildRequires: gcc +BuildRequires: make +Requires: erlang >= 25 +BuildRequires: erlang >= 25 +BuildRequires: erlang-dialyzer +BuildRequires: erlang-src +# required by Mix.SCM.Git see also (https://github.com/elixir-lang/elixir/issues/1386) +BuildRequires: git-core >= 1.7 +BuildRequires: unzip +BuildRoot: %{_tmppath}/%{name}-%{version}-build +BuildArch: noarch + +%description +Elixir is a functional meta-programming aware language built on top +of the Erlang VM. It is a dynamic language with flexible syntax with +macros support that leverage Erlang's abilities to build concurrent, +distributed, fault-tolerant applications with hot code upgrades. + +Elixir also provides first-class support for pattern matching, +polymorphism via protocols (similar to Clojure's), aliases and +associative data structures (usually known as dicts or hashes in +other programming languages). + +Finally, Elixir and Erlang share the same bytecode and data types. +This means one can invoke Erlang code from Elixir (and vice-versa) +without any conversion or performance impact. + +%package doc +Summary: Documentation for elixir +Group: Documentation/Other +BuildArch: noarch +Requires: elixir = %{version} + +%description doc +Documentation for the Elixir language. + +%prep +%autosetup -p1 + +unzip -o %{SOURCE1} +find doc \( -name ".build" -or -name ".ex_doc" \) -delete + +%build +# Elixir wants UTF-8 locale, force it +export LANG=en_US.UTF-8 +# Make Elixir +make + +%install +make install DESTDIR=%{buildroot} PREFIX=%{_prefix} + +mkdir -p %{buildroot}%{_bindir} +for I in iex elixir elixirc mix +do + ln -sf %{elixirdir}/bin/$I %{buildroot}%{_bindir}/$I +done + +install -D -m 0644 %{S:2} %{buildroot}%{_rpmmacrodir}/macros.elixir + +mkdir -p %{buildroot}%{_defaultdocdir} +cp -pa doc %{buildroot}%{_defaultdocdir}/elixir-doc + +%fdupes -s %{buildroot}/%{_mandir} +%fdupes %{buildroot}/%{_prefix} + +%check +export LANG=en_US.UTF-8 +make test + +%files +%defattr(-,root,root) +%doc CHANGELOG.md README.md NOTICE +%license LICENSE +%dir %{elixirdir} +%dir %{elixirdir}/bin +%dir %{elixirdir}/lib +%{_bindir}/iex +%{_bindir}/elixir +%{_bindir}/elixirc +%{_bindir}/mix +%{_mandir}/man1/iex.1.gz +%{_mandir}/man1/elixir.1.gz +%{_mandir}/man1/elixirc.1.gz +%{_mandir}/man1/mix.1.gz +%{elixirdir}/bin/iex +%{elixirdir}/bin/elixirc +%{elixirdir}/bin/mix +%{elixirdir}/bin/elixir +%{elixirdir}/lib/* +%{_rpmmacrodir}/macros.elixir + +%files doc +%defattr(-,root,root) +%license LICENSE +%{_defaultdocdir}/elixir-doc + +%changelog diff --git a/macros.elixir b/macros.elixir new file mode 100644 index 0000000..52a5cb3 --- /dev/null +++ b/macros.elixir @@ -0,0 +1,11 @@ +# macros.elixir +# + +%elixir_dir %{_prefix}/lib/elixir +%elixir_libdir %{_prefix}/lib/elixir/lib +%__mix %{_bindir}/mix + +%mix_compile() \ +MIX_ENV=prod %__mix compile \ +%{nil} +