./lang/elixir, Functional, meta-programming aware language built on top of Erlang VM

[ CVSweb ] [ Homepage ] [ RSS ] [ Required by ] [ Add to tracker ]


Branch: CURRENT, Version: 1.7.4, Package name: elixir-1.7.4, Maintainer: pkgsrc-users

Elixir is a functional, meta-programming aware language built on top of the
Erlang VM. It is a dynamic language that focuses on tooling to leverage
Erlang's abilities to build concurrent, distributed and fault-tolerant
applications with hot code upgrades.


Required to run:
[lang/erlang]

Required to build:
[pkgtools/cwrappers]

Master sites:

SHA1: 0e8e51ae2a7b446850fc711da5a70c66d2329976
RMD160: 627d80e31bdef16df1b9ba173ad5c0ac67f440a4
Filesize: 2089.783 KB

Version history: (Expand)


CVS history: (Expand)


   2018-11-09 18:17:29 by Nia Alarie | Files touched by this commit (2) | Package updated
Log message:
lang/elixir: update to 1.7.4.

1. Enhancements

Elixir

    [Kernel] Expand left..right at compile time in more cases, which leads to \ 
improved performance under different scenarios, especially on x in left..right \ 
expressions

Mix

    [mix deps.loadpaths] Add --no-load-deps flag. This is useful for Rebar 3 \ 
compatibility

2. Bug fixes

Elixir

    [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

    [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
   2018-10-11 14:10:09 by Jonathan Perkin | Files touched by this commit (3)
Log message:
elixir: Fix PKGMANDIR.  Add TEST_TARGET.
   2018-09-04 15:49:25 by Filip Hajny | Files touched by this commit (3) | Package updated
Log message:
lang/elixir: Update to 1.7.3.

v1.7.3
======

1. Bug fixes

ExUnit
- [ExUnit.Assertions] Do not attempt to expand `try/1` as it is a
  special form

Mix
- [mix compile.app] Do not include applications with `runtime: false`
  as a runtime dependency for applications coming from Hex

v1.7.2
======

1. Bug fixes

Elixir
- [DateTime] Take negative years into account in
  `DateTime.from_iso8601/1`
- [Kernel] Do not emit warnings for repeated docs over different
  clauses due to false positives

Mix
- [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 help] Show task and alias help when both are available
- [mix test] Do not fail suite if there are no test files

v1.7.1
======

1. Bug fixes

Elixir
- [Calendar] Work-around a Dialyzer bug that causes it to loop for a
  long time, potentially indefinitely

v1.7.0
======

1. Enhancements

Elixir
- [Calendar.ISO] Support negative dates in `Calendar.ISO`
- [Calendar] Add `Calendar.months_in_year/1` callback
- [Code] Add `Code.compile_file/2` that compiles files without leaving
  footprints on the system
- [Code] Add `Code.purge_compiler_modules/0` that purges any compiler
  module left behind. This is useful for live systems dynamically
  compiling code
- [Code] Add `Code.fetch_docs/1` that returns docs in the [EEP
  48](http://erlang.org/eep/eeps/eep-0048.html) format
- [Date] Add `Date.months_in_year/1` function
- [DynamicSupervisor] Use the name of the `DynamicSupervisor` as the
  ID whenever possible
- [Exception] Provide "did you mean" suggestions on KeyError
- [Exception] Provide more information on ArithmeticError on
  Erlang/OTP 21+
- [Function] Add `Function` module with `capture/3`, `info/1` and
  `info/2` functions
- [GenServer] Support the new `handle_continue/2` callback on
  Erlang/OTP 21+
- [IO.ANSI] Add cursor movement to `IO.ANSI`
- [Kernel] Support adding arbitrary documentation metadata by passing
  a keyword list to `@doc`, `@moduledoc` and `@typedoc`
- [Kernel] Introduce `__STACKTRACE__` to retrieve the current
  stacktrace inside `catch`/`rescue` (this will be a requirement for
  Erlang/OTP 21+)
- [Kernel] Raise on unsafe variables in order to allow us to better
  track unused variables
- [Kernel] Warn when using `length` to check if a list is not empty on
  guards
- [Kernel] Add hints on mismatched `do`/`end` and others pairs
- [Kernel] Warn when comparing structs using the `>`, `<`, `>=` and
  `<=` operators
- [Kernel] Warn on unsupported nested comparisons such as `x < y < z`
- [Kernel] Warn if redefining documentation across clauses of the same
  definition
- [Kernel] Warn on unnecessary quotes around atoms, keywords and calls
- [Macro] Add `Macro.special_form?/2` and `Macro.operator?/2` that
  returns `true` if the given name/arity is a special form or operator
  respectively
- [Macro.Env] Add `Macro.Env.vars/1` and `Macro.Env.has_var?/2` that
  gives access to environment data without accessing private fields
- [Regex] Include endianness in the regex version. This allows regexes
  to be recompiled when an archive is installed in a system with a
  different endianness
- [Registry] Add `Registry.count/1` and `Registry.count_match/4`
- [String] Update to Unicode 11
- [StringIO] Add `StringIO.open/3`
- [System] Use ISO 8601 in `System.build_info/0`

ExUnit
- [ExUnit.Assertion] Print the arguments in error reports when
  asserting on a function call. For example, if `assert is_list(arg)`
  fails, the argument will be shown in the report
- [ExUnit.Diff] Improve diffing of lists when one list is a subset of
  the other
- [ExUnit.DocTest] Show colored diffs on failed doctests
- [ExUnit.Formatter] Excluded tests, via the `--exclude` and `--only`
  flags, are now shown as "Excluded" in reports. Tests skipped via
  `@tag :skip` are now exclusively shown as "Skipped" and in yellow

IEx
- [IEx.Helpers] Add `use_if_available/2`
- [IEx.Helpers] Allow `force: true` option in `recompile/1`
- [IEx.Helpers] Add `:allocators` pane to `runtime_info/1`
- [IEx.Helpers] Show documentation metadata in `h/1` helpers

Logger
- [Logger] Ensure nil metadata is always pruned
- [Logger] Only evaluate Logger macro arguments when the message will
  be logged
- [Logger] Add `:compile_time_purge_matching` to purge logger calls
  that match certain compile time metadata, such as module names and
  application names
- [Logger] Log to `:stderr` if a backend fails and there are no other
  backends
- [Logger] Allow translators to return custom metadata
- [Logger] Return `:crash_reason`, `:initial_call` and
  `:registered_name` as metadata in crash reports coming from
  Erlang/OTP

Mix
- [mix archive.install] Add support for the Hex organization via
  `--organization`
- [mix archive.uninstall] Support `--force` flag
- [mix compile] Improve support for external build tools such as
  `rebar`
- [mix deps] Include `override: true` in rebar dependencies to make
  the behaviour closer to how rebar3 works (although diverged deps are
  still marked as diverged)
- [mix escript.install] Add support for the Hex organization via
  `--organization`
- [mix escript.uninstall] Support `--force` flag
- [mix help] Also list aliases
- [mix local] Use ipv6 with auto fallback to ipv4 when downloading
  data
- [mix profile] Allow all profiling tasks to run programatically
- [mix test] Add `--failed` option that only runs previously failed
  tests
- [mix test] Print coverage summary by default when the `--cover` flag
  is given
- [Mix.Project] Add `Mix.Project.clear_deps_cache/0`
- [Mix.Project] Add `Mix.Project.config_mtime/0` that caches the
  config mtime values to avoid filesystem access

2. Bug fixes

Elixir
- [IO.ANSI.Docs] Fix table column alignment when converting docs to
  ANSI escapes
- [Code] Ensure `string_to_quoted` returns error tuples instead of
  raising in certain constructs
- [Code.Formatter] Consistently format keyword lists in function calls
  with and without parens
- [Code.Formatter] Do not break after `->` when there are only
  comments and one-line clauses
- [File] Allow the `:trim_bom` option to be used with `:encoding`
- [Kernel] Raise on unsafe variables as some of the code emitted with
  unsafe variables would not correctly propagate variables or would
  disable tail call optimization semantics
- [Kernel] Do not crash on dynamic sizes in binary generators with
  collectable into in comprehensions
- [Kernel] Do not crash on literals with non-unary size in binary
  generators with collectable into in comprehensions
- [Task] Improve error reports and exit reasons for failed tasks on
  Erlang/OTP 20+

ExUnit
- [ExUnit.Case] Raise proper error if `@tag` and `@moduletag` are used
  before `use ExUnit.Case`
- [ExUnit.Case] Raise proper error if `@describetag` is used outside
  of `describe/2` blocks
- [ExUnit.DocTest] Emit proper assertion error on doctests with
  invalid UTF-8

Mix
- [mix archive.install] Fetch optional dependencies when installing an
  archive from Git/Hex
- [mix compile] Properly track config files in umbrella projects and
  recompile when any relevant umbrella configuration changes
- [mix deps] Ensure the same dependency from different SCMs are tagged
  as diverged when those SCMs are remote and non-remote
- [mix deps] Ensure we re-run dependency resolution when overriding a
  skipped dep in umbrella
- [mix deps.compile] Perform clean builds for dependencies on outdated
  locks to avoid old modules from affecting future compilation
- [mix escript.install] Fetch optional dependencies when installing an
  escript from Git/Hex

3. Soft-deprecations (no warnings emitted)

Elixir
- [Code] Deprecate `Code.load_file/2` in favor of
  `Code.compile_file/2`
- [Code] Deprecate `Code.loaded_files/0` in favor of
  `Code.required_files/0`
- [Code] Deprecate `Code.unload_files/1` in favor of
  `Code.unrequire_files/1`

Logger
- [Logger] `compile_time_purge_level` is deprecated in favor of
  `compile_time_purge_matching`

4. Hard-deprecations

Elixir
- [Code] `Code.get_docs/2` is deprecated in favor of
  `Code.fetch_docs/1`
- [Enum] `Enum.chunk/2/3/4` is deprecated in favor of
  `Enum.chunk_every/2/3/4` - notice `chunk_every` does not discard
  incomplete chunks by default
- [GenServer] Warn if `super` is used in any of the GenServer
  callbacks
- [Kernel] `not left in right` is ambiguous and is deprecated in favor
  of `left not in right`
- [Kernel] Warn on confusing operator sequences, such as `1+++1`
  meaning `1 ++ +1` or `........` meaning `... .. ...`
- [OptionParser] Deprecate dynamic option parser mode that depended on
  atoms to be previously loaded and therefore behaved inconsistently
- [Stream] `Stream.chunk/2/3/4` is deprecated in favor of
  `Stream.chunk_every/2/3/4` - notice `chunk_every` does not discard
  incomplete chunks by default
   2018-05-14 17:57:13 by Filip Hajny | Files touched by this commit (2) | Package updated
Log message:
lang/elixir: Update to 1.6.5.

- [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 ?
   2018-03-23 12:54:58 by Filip Hajny | Files touched by this commit (2) | Package updated
Log message:
lang/elixir: Update to 1.6.4.

- [Code.Formatter] Do not double escape quoted keyword list identifiers
- [Kernel] Properly support into: binary in Erlang/OTP 20.3
   2018-03-13 10:18:19 by Filip Hajny | Files touched by this commit (2) | Package updated
Log message:
lang/elixir: Update to 1.6.3.

Elixir
- [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
- [Logger.Translator] Ensure logger doesn't crash when reporting
  named DynamicSupervisor
   2018-02-28 16:14:02 by Filip Hajny | Files touched by this commit (2) | Package updated
Log message:
lang/elixit: Update to 1.6.2.

1. Enhancements

Mix
- [mix compile.erlang] Teach Mix erlang compiler alternative spelling
  for -behavior declaration
- [mix format] Support the :subdirectories configuration that points
  to other directories with their own .formatter.exs file. This is
  useful in umbrella applications. mix new --umbrella has also been
  changed to use this new configuration by default
- [mix format] Include the current environment for missing dependency
  errors

2. Bug fixes

Elixir
- [Code.Formatter] Ensure -> does not exceed line length
- [DynamicSupervisor] Properly tag error reports generated by dynamic
  supervisors so they can be properly translated by Logger
- [DynamicSupervisor] Consider extra arguments during child restart
- [Kernel] Ensure arguments given to a guard defined with defguard are
  evaluated in the correct order
- [Module] Do not remove docs for previous function declaration when
  @impl true is used
- [Supervisor] Ensure use Supervisor properly adds the @behaviour
  Supervisor annotation

Mix
- [Mix.Shell] Bring back Mix.Shell.cmd/2 - this arity was defined via
  a default argument that was accidentally removed
   2018-01-30 17:27:11 by Filip Hajny | Files touched by this commit (3) | Package updated
Log message:
Update lang/elixir to 1.6.1.

1. Enhancements

Elixir
- [DynamicSupervisor] Implement child_spec/1 for DynamicSupervisor
- [Kernel] Raise better error messages on invalid map syntax

2. Bug fixes

Elixir
- [Code.Formatter] Only rearrange not in operator if explicitly
  opted-in
- [Code.Formatter] Ensure do blocks do not exceed line length on calls
  with a single argument
- [Collectable] Support bitstrings in Collectable and
  for-comprehensions (regression in v1.6.0)
- [GenServer] Do not override user own @opts attribute
- [Enum] Reintroduce zipping of any enumerable of enumerables in
  Enum.zip/1 (regression in v1.6.0)
- [Macro] Reorder kw blocks in Macro.to_string/1 to avoid warnings
- [Protocol] Fix protocol consolidation when some chunks may be
  missing
- [Stream] Reintroduce zipping of any enumerable of enumerables in
  Stream.zip/1 (regression in v1.6.0)
- [Supervisor] Do not override user own @opts attribute
- [Supervisor] Add @spec to second clause of start_link/2

ExUnit
- [ExUnit.Case] Reintroduce :case in ExUnit setup/setup_all/test
  context