Sophie

Sophie

distrib > Mageia > 7 > i586 > media > core-release > by-pkgid > 016232f1d9a3f7bee85855d35a2bca58 > files > 133

elixir-doc-1.7.2-1.mga7.noarch.rpm

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="utf-8">
    <meta http-equiv="x-ua-compatible" content="ie=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta name="generator" content="ExDoc v0.19.1">
    <title>Compatibility and Deprecations – Elixir v1.7.2</title>
    <link rel="stylesheet" href="dist/app-240d7fc7e5.css" />
      <link rel="canonical" href="https://hexdocs.pm/elixir/v1.7/compatibility-and-deprecations.html" />
    <script src="dist/sidebar_items-cdf4e58b19.js"></script>
    
  </head>
  <body data-type="extras">
    <script>try { if(localStorage.getItem('night-mode')) document.body.className += ' night-mode'; } catch (e) { }</script>
<div class="main">
<button class="sidebar-button sidebar-toggle">
  <span class="icon-menu" aria-hidden="true"></span>
  <span class="sr-only">Toggle Sidebar</span>
</button>
<button class="sidebar-button night-mode-toggle">
  <span class="icon-theme" aria-hidden="true"></span>
  <span class="sr-only">Toggle Theme</span>
</button>
<section class="sidebar">

  <a href="http://elixir-lang.org/docs.html" class="sidebar-projectLink">
    <div class="sidebar-projectDetails">
      <h1 class="sidebar-projectName">
Elixir      </h1>
      <h2 class="sidebar-projectVersion">
        v1.7.2
      </h2>
    </div>
      <img src="assets/logo.png" alt="Elixir" class="sidebar-projectImage">
  </a>

  <form class="sidebar-search" action="search.html">
    <button type="submit" class="search-button">
      <span class="icon-search" aria-hidden="true"></span>
    </button>
    <input name="q" type="text" id="search-list" class="search-input" placeholder="Search" aria-label="Search" autocomplete="off" />
  </form>

  <ul class="sidebar-listNav">
    <li><a id="extras-list" href="#full-list">Pages</a></li>

      <li><a id="modules-list" href="#full-list">Modules</a></li>

      <li><a id="exceptions-list" href="#full-list">Exceptions</a></li>

  </ul>
  <div class="gradient"></div>
  <ul id="full-list" class="sidebar-fullList"></ul>
</section>

<section class="content">
  <div class="content-outer">
    <div id="content" class="content-inner">


<h1>Compatibility and Deprecations</h1>
<p>Elixir is versioned according to a vMAJOR.MINOR.PATCH schema.</p>
<p>Elixir is currently at major version v1. A new backwards compatible minor release happens every 6 months. Patch releases are not scheduled and are made whenever there are bug fixes or security patches.</p>
<p>Elixir applies bug fixes only to the latest minor branch. Security patches are available for the last 5 minor branch:</p>
<table>
<colgroup>
<col>
<col>
</colgroup>
<thead>
<tr>
<th style="text-align: left">Elixir version</th><th style="text-align: left">Support</th>
</tr>
</thead>
<tr>
<td style="text-align: left">1.7</td><td style="text-align: left">Bug fixes and security patches</td>
</tr>
<tr>
<td style="text-align: left">1.6</td><td style="text-align: left">Security patches only</td>
</tr>
<tr>
<td style="text-align: left">1.5</td><td style="text-align: left">Security patches only</td>
</tr>
<tr>
<td style="text-align: left">1.4</td><td style="text-align: left">Security patches only</td>
</tr>
<tr>
<td style="text-align: left">1.3</td><td style="text-align: left">Security patches only</td>
</tr>
</table>
<p>Major Elixir releases may contain breaking changes and those will be explicitly outlined in the CHANGELOG. There are currently no plans for a major v2 release.</p>
<h2 id="compatibility-between-non-major-elixir-versions" class="section-heading">
  <a href="#compatibility-between-non-major-elixir-versions" class="hover-link"><span class="icon-link" aria-hidden="true"></span></a>
  Compatibility between non-major Elixir versions
</h2>

<p>Elixir minor and patch releases are backwards compatible: well-defined behaviours and documented APIs in a given version will continue working on future versions.</p>
<p>Although we expect the vast majority of programs to remain compatible over time, it is impossible to guarantee that no future change will break any program. Under some unlikely circumstances, we may introduce changes that break existing code:</p>
<ul>
<li><p>Security: a security issue in the implementation may arise whose resolution requires backwards incompatible changes. We reserve the right to address such security issues.</p>
</li>
<li><p>Bugs: if an API has undesired behaviour, a program that depends on the buggy behaviour may break if the bug is fixed. We reserve the right to fix such bugs.</p>
</li>
<li><p>Compiler front-end: improvements may be done to the compiler, introducing new warnings for ambiguous modes and providing more detailed error messages. Those can lead to compilation errors (when running with <code class="inline">--warning-as-errors</code>) or tooling failures when asserting on specific error messages (although one should avoid such). We reserve the right to do such improvements.</p>
</li>
<li><p>Imports: new functions may be added to the <a href="Kernel.html"><code class="inline">Kernel</code></a> module, which is auto-imported. They may collide with local functions defined in your modules. Collisions can be resolved in a backwards compatible fashion using <code class="inline">import Kernel, except: [...]</code> with a list of all functions you don’t want to be imported from <a href="Kernel.html"><code class="inline">Kernel</code></a>. We reserve the right to do such additions.</p>
</li>
</ul>
<p>In order to continue evolving the language without introducing breaking changes, Elixir will rely on deprecations to demote certain practices and promote new ones. Our deprecation policy is outlined in the <a href="#deprecations">“Deprecations” section</a>.</p>
<p>The only exception to the compatibility guarantees above are experimental features, which will be explicitly marked as such, and do not provide any compatibility guarantee until they are stabilized.</p>
<h2 id="compatibility-between-elixir-and-erlang-otp" class="section-heading">
  <a href="#compatibility-between-elixir-and-erlang-otp" class="hover-link"><span class="icon-link" aria-hidden="true"></span></a>
  Compatibility between Elixir and Erlang/OTP
</h2>

<p>Erlang/OTP versioning is independent from the versioning of Elixir. Each version of Elixir supports a specific range of Erlang/OTP versions. The compatibility table is shown below.</p>
<table>
<colgroup>
<col>
<col>
</colgroup>
<thead>
<tr>
<th style="text-align: left">Elixir version</th><th style="text-align: left">Supported Erlang/OTP versions</th>
</tr>
</thead>
<tr>
<td style="text-align: left">1.0</td><td style="text-align: left">17 - 17 (and Erlang/OTP 18 from v1.0.5)</td>
</tr>
<tr>
<td style="text-align: left">1.1</td><td style="text-align: left">17 - 18</td>
</tr>
<tr>
<td style="text-align: left">1.2</td><td style="text-align: left">18 - 18 (and Erlang/OTP 19 from v1.2.6)</td>
</tr>
<tr>
<td style="text-align: left">1.3</td><td style="text-align: left">18 - 19</td>
</tr>
<tr>
<td style="text-align: left">1.4</td><td style="text-align: left">18 - 19 (and Erlang/OTP 20 from v1.4.5)</td>
</tr>
<tr>
<td style="text-align: left">1.5</td><td style="text-align: left">18 - 20</td>
</tr>
<tr>
<td style="text-align: left">1.6</td><td style="text-align: left">19 - 20 (and Erlang/OTP 21 from v1.6.6)</td>
</tr>
<tr>
<td style="text-align: left">1.7</td><td style="text-align: left">19 - 21</td>
</tr>
</table>
<p>While Elixir often adds compatibility to new Erlang/OTP versions on released branches, such as support for Erlang/OTP 20 in v1.4.5, those releases usually contain the minimum changes for Elixir to run without errors. Only the next minor release, in this case v1.5.0, does effectively leverage the new features provided by the latest Erlang/OTP release.</p>
<h2 id="deprecations" class="section-heading">
  <a href="#deprecations" class="hover-link"><span class="icon-link" aria-hidden="true"></span></a>
  Deprecations
</h2>

<h3 id="policy" class="section-heading">
  <a href="#policy" class="hover-link"><span class="icon-link" aria-hidden="true"></span></a>
  Policy
</h3>

<p>Elixir deprecations happen in 3 steps:</p>
<ol>
<li><p>The feature is soft-deprecated. It means both CHANGELOG and documentation must list the feature as deprecated but no warning is effectively emitted by running the code. There is no requirement to soft-deprecate a feature.</p>
</li>
<li><p>The feature is effectively deprecated by emitting warnings on usage. This is also known as hard-deprecation. In order to deprecate a feature, the proposed alternative MUST exist for AT LEAST two minor versions. For example, <a href="https://hexdocs.pm/elixir/Enum.html#uniq/2"><code class="inline">Enum.uniq/2</code></a> was soft-deprecated in favor of <a href="Enum.html#uniq_by/2"><code class="inline">Enum.uniq_by/2</code></a> in Elixir v1.1. This means a deprecation warning may only be emitted by Elixir v1.3 or later.</p>
</li>
<li><p>The feature is removed. This can only happen on major releases. This means deprecated features in Elixir v1.x shall only be removed by Elixir v2.x.</p>
</li>
</ol>
<h3 id="table-of-deprecations" class="section-heading">
  <a href="#table-of-deprecations" class="hover-link"><span class="icon-link" aria-hidden="true"></span></a>
  Table of deprecations
</h3>

<table>
<colgroup>
<col>
<col>
<col>
</colgroup>
<thead>
<tr>
<th style="text-align: left">Deprecated feature</th><th style="text-align: left">Hard-deprecated in</th><th style="text-align: left">Replaced by (available since)</th>
</tr>
</thead>
<tr>
<td style="text-align: left"><a href="Code.html#get_docs/2"><code class="inline">Code.get_docs/2</code></a></td><td style="text-align: left"><a href="https://github.com/elixir-lang/elixir/blob/v1.7/CHANGELOG.md#4-hard-deprecations" title="">v1.7</a></td><td style="text-align: left"><a href="Code.html#fetch_docs/1"><code class="inline">Code.fetch_docs/1</code></a> (v1.7)</td>
</tr>
<tr>
<td style="text-align: left">Calling <code class="inline">super</code> on GenServer callbacks</td><td style="text-align: left"><a href="https://github.com/elixir-lang/elixir/blob/v1.7/CHANGELOG.md#4-hard-deprecations" title="">v1.7</a></td><td style="text-align: left">Not calling super (v1.0)</td>
</tr>
<tr>
<td style="text-align: left"><a href="https://hexdocs.pm/elixir/Enum.html#chunk/2"><code class="inline">Enum.chunk/2</code></a><a href="Enum.chunk/4"><code class="inline">/3/4</code></a></td><td style="text-align: left"><a href="https://github.com/elixir-lang/elixir/blob/v1.7/CHANGELOG.md#4-hard-deprecations" title="">v1.7</a></td><td style="text-align: left"><a href="Enum.html#chunk_every/2"><code class="inline">Enum.chunk_every/2</code></a><a href="Enum.html#chunk_every/4"><code class="inline">/3/4</code></a> (v1.5)</td>
</tr>
<tr>
<td style="text-align: left"><code class="inline">not left in right</code></td><td style="text-align: left"><a href="https://github.com/elixir-lang/elixir/blob/v1.7/CHANGELOG.md#4-hard-deprecations" title="">v1.7</a></td><td style="text-align: left"><a href="https://hexdocs.pm/elixir/Kernel.SpecialForms.html#in/2"><code class="inline">left not in right</code></a> (v1.5)</td>
</tr>
<tr>
<td style="text-align: left"><a href="https://hexdocs.pm/elixir/Registry.html#start_link/3"><code class="inline">Registry.start_link/3</code></a></td><td style="text-align: left"><a href="https://github.com/elixir-lang/elixir/blob/v1.7/CHANGELOG.md#4-hard-deprecations" title="">v1.7</a></td><td style="text-align: left"><a href="Registry.html#start_link/1"><code class="inline">Registry.start_link/1</code></a> (v1.5)</td>
</tr>
<tr>
<td style="text-align: left"><a href="https://hexdocs.pm/elixir/Stream.html#chunk/2"><code class="inline">Stream.chunk/2</code></a><a href="Stream.chunk/4"><code class="inline">/3/4</code></a></td><td style="text-align: left"><a href="https://github.com/elixir-lang/elixir/blob/v1.7/CHANGELOG.md#4-hard-deprecations" title="">v1.7</a></td><td style="text-align: left"><a href="Stream.html#chunk_every/2"><code class="inline">Stream.chunk_every/2</code></a><a href="Stream.html#chunk_every/4"><code class="inline">/3/4</code></a> (v1.5)</td>
</tr>
<tr>
<td style="text-align: left"><a href="https://hexdocs.pm/elixir/Enum.html#partition/2"><code class="inline">Enum.partition/2</code></a></td><td style="text-align: left"><a href="https://github.com/elixir-lang/elixir/blob/v1.6/CHANGELOG.md#4-deprecations" title="">v1.6</a></td><td style="text-align: left"><a href="Enum.html#split_with/2"><code class="inline">Enum.split_with/2</code></a> (v1.4)</td>
</tr>
<tr>
<td style="text-align: left"><a href="https://hexdocs.pm/elixir/Keyword.html#replace/3"><code class="inline">Keyword.replace/3</code></a></td><td style="text-align: left"><a href="https://github.com/elixir-lang/elixir/blob/v1.6/CHANGELOG.md#4-deprecations" title="">v1.6</a></td><td style="text-align: left"><a href="Keyword.html#fetch/2"><code class="inline">Keyword.fetch/2</code></a> + <a href="Keyword.html#put/3"><code class="inline">Keyword.put/3</code></a> (v1.0)</td>
</tr>
<tr>
<td style="text-align: left"><a href="https://hexdocs.pm/elixir/Macro.html#unescape_tokens/1"><code class="inline">Macro.unescape_tokens/1</code></a> and <a href="https://hexdocs.pm/elixir/Macro.html#unescape_tokens/2"><code class="inline">Macro.unescape_tokens/2</code></a></td><td style="text-align: left"><a href="https://github.com/elixir-lang/elixir/blob/v1.6/CHANGELOG.md#4-deprecations" title="">v1.6</a></td><td style="text-align: left">Use <a href="Enum.html#map/2"><code class="inline">Enum.map/2</code></a> to traverse over the arguments (v1.0)</td>
</tr>
<tr>
<td style="text-align: left"><a href="https://hexdocs.pm/elixir/Module.html#add_doc/6"><code class="inline">Module.add_doc/6</code></a></td><td style="text-align: left"><a href="https://github.com/elixir-lang/elixir/blob/v1.6/CHANGELOG.md#4-deprecations" title="">v1.6</a></td><td style="text-align: left"><code class="inline">@doc</code> module attribute (v1.0)</td>
</tr>
<tr>
<td style="text-align: left"><a href="https://hexdocs.pm/elixir/Map.html#replace/3"><code class="inline">Map.replace/3</code></a></td><td style="text-align: left"><a href="https://github.com/elixir-lang/elixir/blob/v1.6/CHANGELOG.md#4-deprecations" title="">v1.6</a></td><td style="text-align: left"><a href="Map.html#fetch/2"><code class="inline">Map.fetch/2</code></a> + <a href="Map.html#put/3"><code class="inline">Map.put/3</code></a> (v1.0)</td>
</tr>
<tr>
<td style="text-align: left"><a href="https://hexdocs.pm/elixir/Range.html#range?/1"><code class="inline">Range.range?/1</code></a></td><td style="text-align: left"><a href="https://github.com/elixir-lang/elixir/blob/v1.6/CHANGELOG.md#4-deprecations" title="">v1.6</a></td><td style="text-align: left">Pattern match on <code class="inline">_.._</code> (v1.0)</td>
</tr>
<tr>
<td style="text-align: left"><a href="https://hexdocs.pm/elixir/Atom.html#to_char_list/1"><code class="inline">Atom.to_char_list/1</code></a></td><td style="text-align: left"><a href="https://github.com/elixir-lang/elixir/blob/v1.5/CHANGELOG.md#4-deprecations" title="">v1.5</a></td><td style="text-align: left"><a href="Atom.html#to_charlist/1"><code class="inline">Atom.to_charlist/1</code></a> (v1.3)</td>
</tr>
<tr>
<td style="text-align: left"><a href="https://hexdocs.pm/elixir/Enum.html#filter_map/3"><code class="inline">Enum.filter_map/3</code></a></td><td style="text-align: left"><a href="https://github.com/elixir-lang/elixir/blob/v1.5/CHANGELOG.md#4-deprecations" title="">v1.5</a></td><td style="text-align: left"><a href="Enum.html#filter/2"><code class="inline">Enum.filter/2</code></a> + <a href="Enum.html#map/2"><code class="inline">Enum.map/2</code></a> or <a href="Kernel.SpecialForms.html#for/1"><code class="inline">for</code></a> comprehensions (v1.0)</td>
</tr>
<tr>
<td style="text-align: left"><a href="https://hexdocs.pm/elixir/Float.html#to_char_list/1"><code class="inline">Float.to_char_list/1</code></a></td><td style="text-align: left"><a href="https://github.com/elixir-lang/elixir/blob/v1.5/CHANGELOG.md#4-deprecations" title="">v1.5</a></td><td style="text-align: left"><a href="Float.html#to_charlist/1"><code class="inline">Float.to_charlist/1</code></a> (v1.3)</td>
</tr>
<tr>
<td style="text-align: left"><a href="GenEvent.html"><code class="inline">GenEvent</code></a> module</td><td style="text-align: left"><a href="https://github.com/elixir-lang/elixir/blob/v1.5/CHANGELOG.md#4-deprecations" title="">v1.5</a></td><td style="text-align: left"><a href="Supervisor.html"><code class="inline">Supervisor</code></a> and <a href="GenServer.html"><code class="inline">GenServer</code></a> (v1.0);<br/><a href="https://hex.pm/packages/gen_stage"><code class="inline">GenStage</code></a> (v1.3);<br/><a href="http://www.erlang.org/doc/man/gen_event.html"><code class="inline">:gen_event</code></a> (Erlang/OTP 17)</td>
</tr>
<tr>
<td style="text-align: left"><a href="https://hexdocs.pm/elixir/Integer.html#to_char_list/1"><code class="inline">Integer.to_char_list/1</code></a> and <a href="https://hexdocs.pm/elixir/Integer.html#to_char_list/2"><code class="inline">Integer.to_char_list/2</code></a></td><td style="text-align: left"><a href="https://github.com/elixir-lang/elixir/blob/v1.5/CHANGELOG.md#4-deprecations" title="">v1.5</a></td><td style="text-align: left"><a href="Integer.html#to_charlist/1"><code class="inline">Integer.to_charlist/1</code></a> and <a href="Integer.html#to_charlist/2"><code class="inline">Integer.to_charlist/2</code></a> (v1.3)</td>
</tr>
<tr>
<td style="text-align: left"><a href="https://hexdocs.pm/elixir/Kernel.html#to_char_list/1"><code class="inline">Kernel.to_char_list/1</code></a></td><td style="text-align: left"><a href="https://github.com/elixir-lang/elixir/blob/v1.5/CHANGELOG.md#4-deprecations" title="">v1.5</a></td><td style="text-align: left"><a href="Kernel.html#to_charlist/1"><code class="inline">Kernel.to_charlist/1</code></a> (v1.3)</td>
</tr>
<tr>
<td style="text-align: left"><a href="https://hexdocs.pm/elixir/List.Chars.html#to_char_list/1"><code class="inline">List.Chars.to_char_list/1</code></a></td><td style="text-align: left"><a href="https://github.com/elixir-lang/elixir/blob/v1.5/CHANGELOG.md#4-deprecations" title="">v1.5</a></td><td style="text-align: left"><a href="List.Chars.html#to_charlist/1"><code class="inline">List.Chars.to_charlist/1</code></a> (v1.3)</td>
</tr>
<tr>
<td style="text-align: left"><a href="https://hexdocs.pm/elixir/Stream.html#filter_map/3"><code class="inline">Stream.filter_map/3</code></a></td><td style="text-align: left"><a href="https://github.com/elixir-lang/elixir/blob/v1.5/CHANGELOG.md#4-deprecations" title="">v1.5</a></td><td style="text-align: left"><a href="Stream.html#filter/2"><code class="inline">Stream.filter/2</code></a> + <a href="Stream.html#map/2"><code class="inline">Stream.map/2</code></a> (v1.0)</td>
</tr>
<tr>
<td style="text-align: left"><a href="https://hexdocs.pm/elixir/String.html#ljust/3"><code class="inline">String.ljust/3</code></a> and <a href="https://hexdocs.pm/elixir/String.html#rjust/3"><code class="inline">String.rjust/3</code></a></td><td style="text-align: left"><a href="https://github.com/elixir-lang/elixir/blob/v1.5/CHANGELOG.md#4-deprecations" title="">v1.5</a></td><td style="text-align: left">Use <a href="String.html#pad_leading/3"><code class="inline">String.pad_leading/3</code></a> and <a href="String.html#pad_trailing/3"><code class="inline">String.pad_trailing/3</code></a> with a binary padding (v1.3)</td>
</tr>
<tr>
<td style="text-align: left"><a href="https://hexdocs.pm/elixir/String.html#strip/1"><code class="inline">String.strip/1</code></a> and <a href="https://hexdocs.pm/elixir/String.html#strip/2"><code class="inline">String.strip/2</code></a></td><td style="text-align: left"><a href="https://github.com/elixir-lang/elixir/blob/v1.5/CHANGELOG.md#4-deprecations" title="">v1.5</a></td><td style="text-align: left"><a href="String.html#trim/1"><code class="inline">String.trim/1</code></a> and <a href="String.html#trim/2"><code class="inline">String.trim/2</code></a> (v1.3)</td>
</tr>
<tr>
<td style="text-align: left"><a href="https://hexdocs.pm/elixir/String.html#lstrip/1"><code class="inline">String.lstrip/1</code></a> and <a href="https://hexdocs.pm/elixir/String.html#rstrip/1"><code class="inline">String.rstrip/1</code></a></td><td style="text-align: left"><a href="https://github.com/elixir-lang/elixir/blob/v1.5/CHANGELOG.md#4-deprecations" title="">v1.5</a></td><td style="text-align: left"><a href="String.html#trim_leading/1"><code class="inline">String.trim_leading/1</code></a> and <a href="String.html#trim_trailing/1"><code class="inline">String.trim_trailing/1</code></a> (v1.3)</td>
</tr>
<tr>
<td style="text-align: left"><a href="https://hexdocs.pm/elixir/String.html#lstrip/2"><code class="inline">String.lstrip/2</code></a> and <a href="https://hexdocs.pm/elixir/String.html#rstrip/2"><code class="inline">String.rstrip/2</code></a></td><td style="text-align: left"><a href="https://github.com/elixir-lang/elixir/blob/v1.5/CHANGELOG.md#4-deprecations" title="">v1.5</a></td><td style="text-align: left">Use <a href="String.html#trim_leading/2"><code class="inline">String.trim_leading/2</code></a> and <a href="String.html#trim_trailing/2"><code class="inline">String.trim_trailing/2</code></a> with a binary as second argument (v1.3)</td>
</tr>
<tr>
<td style="text-align: left"><a href="https://hexdocs.pm/elixir/String.html#to_char_list/1"><code class="inline">String.to_char_list/1</code></a></td><td style="text-align: left"><a href="https://github.com/elixir-lang/elixir/blob/v1.5/CHANGELOG.md#4-deprecations" title="">v1.5</a></td><td style="text-align: left"><a href="String.html#to_charlist/1"><code class="inline">String.to_charlist/1</code></a> (v1.3)</td>
</tr>
<tr>
<td style="text-align: left"><code class="inline">()</code> to mean <code class="inline">nil</code></td><td style="text-align: left"><a href="https://github.com/elixir-lang/elixir/blob/v1.5/CHANGELOG.md#4-deprecations" title="">v1.5</a></td><td style="text-align: left"><code class="inline">nil</code> (v1.0)</td>
</tr>
<tr>
<td style="text-align: left"><code class="inline">char_list/0</code> type</td><td style="text-align: left"><a href="https://github.com/elixir-lang/elixir/blob/v1.5/CHANGELOG.md#4-deprecations" title="">v1.5</a></td><td style="text-align: left"><a href="typespecs.html#built-in-types"><code class="inline">charlist/0</code></a> type (v1.3)</td>
</tr>
<tr>
<td style="text-align: left"><code class="inline">:char_lists</code> key in <a href="Inspect.Opts.html#t:t/0"><code class="inline">Inspect.Opts.t/0</code></a> type</td><td style="text-align: left"><a href="https://github.com/elixir-lang/elixir/blob/v1.5/CHANGELOG.md#4-deprecations" title="">v1.5</a></td><td style="text-align: left"><code class="inline">:charlists</code> key (v1.3)</td>
</tr>
<tr>
<td style="text-align: left"><code class="inline">:as_char_lists</code> value in <a href="Inspect.Opts.html#t:t/0"><code class="inline">Inspect.Opts.t/0</code></a> type</td><td style="text-align: left"><a href="https://github.com/elixir-lang/elixir/blob/v1.5/CHANGELOG.md#4-deprecations" title="">v1.5</a></td><td style="text-align: left"><code class="inline">:as_charlists</code> value (v1.3)</td>
</tr>
<tr>
<td style="text-align: left"><code class="inline">@compile {:parse_transform, _}</code> in <a href="Module.html"><code class="inline">Module</code></a></td><td style="text-align: left"><a href="https://github.com/elixir-lang/elixir/blob/v1.5/CHANGELOG.md#4-deprecations" title="">v1.5</a></td><td style="text-align: left"><em>None</em></td>
</tr>
<tr>
<td style="text-align: left">EEx: <code class="inline">&lt;%=</code> in middle and end expressions</td><td style="text-align: left"><a href="https://github.com/elixir-lang/elixir/blob/v1.5/CHANGELOG.md#4-deprecations" title="">v1.5</a></td><td style="text-align: left">Use <code class="inline">&lt;%</code> (<code class="inline">&lt;%=</code> is allowed only on start expressions) (v1.0)</td>
</tr>
<tr>
<td style="text-align: left"><a href="Access.html#key/1"><code class="inline">Access.key/1</code></a></td><td style="text-align: left"><a href="https://github.com/elixir-lang/elixir/blob/v1.4/CHANGELOG.md#4-deprecations" title="">v1.4</a></td><td style="text-align: left"><a href="Access.html#key/2"><code class="inline">Access.key/2</code></a> (v1.3)</td>
</tr>
<tr>
<td style="text-align: left"><a href="Behaviour.html"><code class="inline">Behaviour</code></a> module</td><td style="text-align: left"><a href="https://github.com/elixir-lang/elixir/blob/v1.4/CHANGELOG.md#4-deprecations" title="">v1.4</a></td><td style="text-align: left"><code class="inline">@callback</code> module attribute (v1.0)</td>
</tr>
<tr>
<td style="text-align: left"><a href="https://hexdocs.pm/elixir/Enum.html#uniq/2"><code class="inline">Enum.uniq/2</code></a></td><td style="text-align: left"><a href="https://github.com/elixir-lang/elixir/blob/v1.4/CHANGELOG.md#4-deprecations" title="">v1.4</a></td><td style="text-align: left"><a href="Enum.html#uniq_by/2"><code class="inline">Enum.uniq_by/2</code></a> (v1.2)</td>
</tr>
<tr>
<td style="text-align: left"><a href="https://hexdocs.pm/elixir/Float.html#to_char_list/2"><code class="inline">Float.to_char_list/2</code></a></td><td style="text-align: left"><a href="https://github.com/elixir-lang/elixir/blob/v1.4/CHANGELOG.md#4-deprecations" title="">v1.4</a></td><td style="text-align: left"><a href="http://www.erlang.org/doc/man/erlang.html#float_to_list-2"><code class="inline">:erlang.float_to_list/2</code></a> (Erlang/OTP 17)</td>
</tr>
<tr>
<td style="text-align: left"><a href="https://hexdocs.pm/elixir/Float.html#to_string/2"><code class="inline">Float.to_string/2</code></a></td><td style="text-align: left"><a href="https://github.com/elixir-lang/elixir/blob/v1.4/CHANGELOG.md#4-deprecations" title="">v1.4</a></td><td style="text-align: left"><a href="http://www.erlang.org/doc/man/erlang.html#float_to_binary-2"><code class="inline">:erlang.float_to_binary/2</code></a> (Erlang/OTP 17)</td>
</tr>
<tr>
<td style="text-align: left"><a href="HashDict.html"><code class="inline">HashDict</code></a> module</td><td style="text-align: left"><a href="https://github.com/elixir-lang/elixir/blob/v1.4/CHANGELOG.md#4-deprecations" title="">v1.4</a></td><td style="text-align: left"><a href="Map.html"><code class="inline">Map</code></a> (v1.2)</td>
</tr>
<tr>
<td style="text-align: left"><a href="HashSet.html"><code class="inline">HashSet</code></a> module</td><td style="text-align: left"><a href="https://github.com/elixir-lang/elixir/blob/v1.4/CHANGELOG.md#4-deprecations" title="">v1.4</a></td><td style="text-align: left"><a href="MapSet.html"><code class="inline">MapSet</code></a> (v1.1)</td>
</tr>
<tr>
<td style="text-align: left">Multi-letter aliases in <a href="OptionParser.html"><code class="inline">OptionParser</code></a></td><td style="text-align: left"><a href="https://github.com/elixir-lang/elixir/blob/v1.4/CHANGELOG.md#4-deprecations" title="">v1.4</a></td><td style="text-align: left">Use single-letter aliases (v1.0)</td>
</tr>
<tr>
<td style="text-align: left"><a href="Set.html"><code class="inline">Set</code></a> module</td><td style="text-align: left"><a href="https://github.com/elixir-lang/elixir/blob/v1.4/CHANGELOG.md#4-deprecations" title="">v1.4</a></td><td style="text-align: left"><a href="MapSet.html"><code class="inline">MapSet</code></a> (v1.1)</td>
</tr>
<tr>
<td style="text-align: left"><a href="https://hexdocs.pm/elixir/Stream.html#uniq/2"><code class="inline">Stream.uniq/2</code></a></td><td style="text-align: left"><a href="https://github.com/elixir-lang/elixir/blob/v1.4/CHANGELOG.md#4-deprecations" title="">v1.4</a></td><td style="text-align: left"><a href="Stream.html#uniq_by/2"><code class="inline">Stream.uniq_by/2</code></a> (v1.2)</td>
</tr>
<tr>
<td style="text-align: left"><code class="inline">IEx.Helpers.import_file/2</code></td><td style="text-align: left"><a href="https://github.com/elixir-lang/elixir/blob/v1.4/CHANGELOG.md#4-deprecations" title="">v1.4</a></td><td style="text-align: left"><code class="inline">IEx.Helpers.import_file_if_available/1</code> (v1.3)</td>
</tr>
<tr>
<td style="text-align: left"><code class="inline">Mix.Utils.camelize/1</code></td><td style="text-align: left"><a href="https://github.com/elixir-lang/elixir/blob/v1.4/CHANGELOG.md#4-deprecations" title="">v1.4</a></td><td style="text-align: left"><a href="Macro.html#camelize/1"><code class="inline">Macro.camelize/1</code></a> (v1.2)</td>
</tr>
<tr>
<td style="text-align: left"><code class="inline">Mix.Utils.underscore/1</code></td><td style="text-align: left"><a href="https://github.com/elixir-lang/elixir/blob/v1.4/CHANGELOG.md#4-deprecations" title="">v1.4</a></td><td style="text-align: left"><a href="Macro.html#underscore/1"><code class="inline">Macro.underscore/1</code></a> (v1.2)</td>
</tr>
<tr>
<td style="text-align: left">Variable used as function call</td><td style="text-align: left"><a href="https://github.com/elixir-lang/elixir/blob/v1.4/CHANGELOG.md#4-deprecations" title="">v1.4</a></td><td style="text-align: left">Use parentheses (v1.0)</td>
</tr>
<tr>
<td style="text-align: left">Anonymous functions with no expression after <code class="inline">-&gt;</code></td><td style="text-align: left"><a href="https://github.com/elixir-lang/elixir/blob/v1.4/CHANGELOG.md#4-deprecations" title="">v1.4</a></td><td style="text-align: left">Use an expression or explicitly return <code class="inline">nil</code> (v1.0)</td>
</tr>
<tr>
<td style="text-align: left">Support for making private functions overridable</td><td style="text-align: left"><a href="https://github.com/elixir-lang/elixir/blob/v1.4/CHANGELOG.md#4-deprecations" title="">v1.4</a></td><td style="text-align: left">Use public functions (v1.0)</td>
</tr>
<tr>
<td style="text-align: left"><a href="Dict.html"><code class="inline">Dict</code></a> module</td><td style="text-align: left"><a href="https://github.com/elixir-lang/elixir/blob/v1.3/CHANGELOG.md#4-deprecations" title="">v1.3</a></td><td style="text-align: left"><a href="Keyword.html"><code class="inline">Keyword</code></a> (v1.0) or <a href="Map.html"><code class="inline">Map</code></a> (v1.2)</td>
</tr>
<tr>
<td style="text-align: left"><a href="https://hexdocs.pm/elixir/Keyword.html#size/1"><code class="inline">Keyword.size/1</code></a></td><td style="text-align: left"><a href="https://github.com/elixir-lang/elixir/blob/v1.3/CHANGELOG.md#4-deprecations" title="">v1.3</a></td><td style="text-align: left"><a href="Kernel.html#length/1"><code class="inline">Kernel.length/1</code></a> (v1.0)</td>
</tr>
<tr>
<td style="text-align: left"><a href="https://hexdocs.pm/elixir/Map.html#size/1"><code class="inline">Map.size/1</code></a></td><td style="text-align: left"><a href="https://github.com/elixir-lang/elixir/blob/v1.3/CHANGELOG.md#4-deprecations" title="">v1.3</a></td><td style="text-align: left"><a href="Kernel.html#map_size/1"><code class="inline">Kernel.map_size/1</code></a> (v1.0)</td>
</tr>
<tr>
<td style="text-align: left"><a href="Set.html"><code class="inline">Set</code></a> behaviour</td><td style="text-align: left"><a href="https://github.com/elixir-lang/elixir/blob/v1.3/CHANGELOG.md#4-deprecations" title="">v1.3</a></td><td style="text-align: left"><a href="MapSet.html"><code class="inline">MapSet</code></a> data structure (v1.1)</td>
</tr>
<tr>
<td style="text-align: left"><a href="https://hexdocs.pm/elixir/String.html#valid_character?/1"><code class="inline">String.valid_character?/1</code></a></td><td style="text-align: left"><a href="https://github.com/elixir-lang/elixir/blob/v1.3/CHANGELOG.md#4-deprecations" title="">v1.3</a></td><td style="text-align: left"><a href="String.html#valid?/1"><code class="inline">String.valid?/1</code></a> (v1.0)</td>
</tr>
<tr>
<td style="text-align: left"><a href="https://hexdocs.pm/elixir/Task.html#find/2"><code class="inline">Task.find/2</code></a></td><td style="text-align: left"><a href="https://github.com/elixir-lang/elixir/blob/v1.3/CHANGELOG.md#4-deprecations" title="">v1.3</a></td><td style="text-align: left">Use direct message matching (v1.0)</td>
</tr>
<tr>
<td style="text-align: left"><code class="inline">:append_first</code> option in <a href="Kernel.html#defdelegate/2"><code class="inline">Kernel.defdelegate/2</code></a></td><td style="text-align: left"><a href="https://github.com/elixir-lang/elixir/blob/v1.3/CHANGELOG.md#4-deprecations" title="">v1.3</a></td><td style="text-align: left">Define the function explicitly (v1.0)</td>
</tr>
<tr>
<td style="text-align: left"><code class="inline">/r</code> option in <a href="Regex.html"><code class="inline">Regex</code></a></td><td style="text-align: left"><a href="https://github.com/elixir-lang/elixir/blob/v1.3/CHANGELOG.md#4-deprecations" title="">v1.3</a></td><td style="text-align: left"><code class="inline">/U</code> (v1.1)</td>
</tr>
<tr>
<td style="text-align: left"><code class="inline">\x{X*}</code> inside strings/sigils/charlists</td><td style="text-align: left"><a href="https://github.com/elixir-lang/elixir/blob/v1.3/CHANGELOG.md#4-deprecations" title="">v1.3</a></td><td style="text-align: left"><code class="inline">\uXXXX</code> or <code class="inline">\u{X*}</code> (v1.1)</td>
</tr>
<tr>
<td style="text-align: left">Map or dictionary as second argument in <a href="Enum.html#group_by/3"><code class="inline">Enum.group_by/3</code></a></td><td style="text-align: left"><a href="https://github.com/elixir-lang/elixir/blob/v1.3/CHANGELOG.md#4-deprecations" title="">v1.3</a></td><td style="text-align: left"><a href="Enum.html#reduce/3"><code class="inline">Enum.reduce/3</code></a> (v1.0)</td>
</tr>
<tr>
<td style="text-align: left">Non-map as second argument in <a href="URI.html#decode_query/2"><code class="inline">URI.decode_query/2</code></a></td><td style="text-align: left"><a href="https://github.com/elixir-lang/elixir/blob/v1.3/CHANGELOG.md#4-deprecations" title="">v1.3</a></td><td style="text-align: left">Use a map (v1.0)</td>
</tr>
<tr>
<td style="text-align: left"><a href="Dict.html"><code class="inline">Dict</code></a> behaviour</td><td style="text-align: left"><a href="https://github.com/elixir-lang/elixir/blob/v1.2/CHANGELOG.md#changelog-for-elixir-v12" title="">v1.2</a></td><td style="text-align: left"><a href="MapSet.html"><code class="inline">MapSet</code></a> data structure (v1.1)</td>
</tr>
<tr>
<td style="text-align: left"><a href="Access.html"><code class="inline">Access</code></a> protocol</td><td style="text-align: left"><a href="https://github.com/elixir-lang/elixir/blob/v1.1/CHANGELOG.md#4-deprecations" title="">v1.1</a></td><td style="text-align: left"><a href="Access.html"><code class="inline">Access</code></a> behaviour (v1.1)</td>
</tr>
<tr>
<td style="text-align: left"><code class="inline">as: true | false</code> in <a href="Kernel.SpecialForms.html#alias/2"><code class="inline">alias/2</code></a> and <a href="Kernel.SpecialForms.html#require/2"><code class="inline">require/2</code></a></td><td style="text-align: left"><a href="https://github.com/elixir-lang/elixir/blob/v1.1/CHANGELOG.md#4-deprecations" title="">v1.1</a></td><td style="text-align: left"><em>None</em></td>
</tr>
<tr>
<td style="text-align: left"><code class="inline">?\xHEX</code></td><td style="text-align: left"><a href="https://github.com/elixir-lang/elixir/blob/v1.1/CHANGELOG.md#4-deprecations" title="">v1.1</a></td><td style="text-align: left"><code class="inline">0xHEX</code> (v1.0)</td>
</tr>
</table>
      <footer class="footer">
        <p>
          <span class="line">
            Built using
            <a href="https://github.com/elixir-lang/ex_doc" title="ExDoc" target="_blank" rel="help noopener">ExDoc</a> (v0.19.1),
          </span>
          <span class="line">
            designed by
            <a href="https://twitter.com/dignifiedquire" target="_blank" rel="noopener" title="@dignifiedquire">Friedel Ziegelmayer</a>.
            </span>
        </p>
      </footer>
    </div>
  </div>
</section>
</div>
  <script src="dist/app-a0c90688fa.js"></script>
  
  </body>
</html>