Skip to content

Commit ef7c118

Browse files
authored
Require Erlang/OTP 26+ (#14045)
1 parent 80c51cc commit ef7c118

File tree

16 files changed

+27
-241
lines changed

16 files changed

+27
-241
lines changed

.github/workflows/ci.yml

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -29,8 +29,6 @@ jobs:
2929
otp_latest: true
3030
- otp_version: "27.0"
3131
- otp_version: "26.0"
32-
- otp_version: "25.3"
33-
- otp_version: "25.0"
3432
- otp_version: master
3533
development: true
3634
- otp_version: maint
@@ -81,7 +79,7 @@ jobs:
8179
name: Windows Server 2019, Erlang/OTP ${{ matrix.otp_version }}
8280
strategy:
8381
matrix:
84-
otp_version: ["25.3", "26.2", "27.1"]
82+
otp_version: ["26.2", "27.1"]
8583
runs-on: windows-2022
8684
steps:
8785
- name: Configure Git

.github/workflows/release.yml

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -60,8 +60,6 @@ jobs:
6060
fail-fast: true
6161
matrix:
6262
include:
63-
- otp: 25
64-
otp_version: "25.3"
6563
- otp: 26
6664
otp_version: "26.0"
6765
- otp: 27

Makefile

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,9 +27,9 @@ SOURCE_DATE_EPOCH_FILE = $(SOURCE_DATE_EPOCH_PATH)/SOURCE_DATE_EPOCH
2727
#==> Functions
2828

2929
define CHECK_ERLANG_RELEASE
30-
erl -noshell -eval '{V,_} = string:to_integer(erlang:system_info(otp_release)), io:fwrite("~s", [is_integer(V) and (V >= 25)])' -s erlang halt | grep -q '^true'; \
30+
erl -noshell -eval '{V,_} = string:to_integer(erlang:system_info(otp_release)), io:fwrite("~s", [is_integer(V) and (V >= 26)])' -s erlang halt | grep -q '^true'; \
3131
if [ $$? != 0 ]; then \
32-
echo "At least Erlang/OTP 25.0 is required to build Elixir"; \
32+
echo "At least Erlang/OTP 26.0 is required to build Elixir"; \
3333
exit 1; \
3434
fi
3535
endef

RELEASE.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@
3030

3131
### Back in main
3232

33-
1. Bump /VERSION file, bin/elixir and bin/elixir.bat
33+
1. Bump /VERSION file, bin/elixir, bin/elixir.bat, and bin/elixir.ps1
3434

3535
2. Start new /CHANGELOG.md
3636

bin/elixir

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -215,10 +215,6 @@ SCRIPT_PATH=$(dirname "$SELF")
215215
if [ "$OSTYPE" = "cygwin" ]; then SCRIPT_PATH=$(cygpath -m "$SCRIPT_PATH"); fi
216216
if [ "$MODE" != "iex" ]; then ERL="-s elixir start_cli $ERL"; fi
217217

218-
if [ "$OS" != "Windows_NT" ] && [ -z "$NO_COLOR" ]; then
219-
if test -t 1 -a -t 2; then ERL="-elixir ansi_enabled true $ERL"; fi
220-
fi
221-
222218
# One MAY change ERTS_BIN= but you MUST NOT change
223219
# ERTS_BIN=$ERTS_BIN as it is handled by Elixir releases.
224220
ERTS_BIN=

bin/elixir.ps1

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
#!/usr/bin/env pwsh
22

3-
$ELIXIR_VERSION = "1.18.0-dev"
3+
$ELIXIR_VERSION = "1.19.0-dev"
44

55
$scriptPath = Split-Path -Parent $PSCommandPath
66
$erlExec = "erl"

lib/elixir/lib/application.ex

Lines changed: 2 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -908,8 +908,7 @@ defmodule Application do
908908
`:permanent`, or `:transient`. See `t:restart_type/1` for more information.
909909
910910
* `:mode` - (since v1.15.0) if the applications should be started serially
911-
(`:serial`, default) or concurrently (`:concurrent`). This option requires
912-
Erlang/OTP 26+.
911+
(`:serial`, default) or concurrently (`:concurrent`).
913912
914913
"""
915914
@spec ensure_all_started(app | [app], type: restart_type(), mode: :serial | :concurrent) ::
@@ -930,18 +929,7 @@ defmodule Application do
930929

931930
def ensure_all_started(apps, opts) when is_list(apps) and is_list(opts) do
932931
opts = Keyword.validate!(opts, type: :temporary, mode: :serial)
933-
934-
if function_exported?(:application, :ensure_all_started, 3) do
935-
:application.ensure_all_started(apps, opts[:type], opts[:mode])
936-
else
937-
# TODO: Remove this clause when we require Erlang/OTP 26+
938-
Enum.reduce_while(apps, {:ok, []}, fn app, {:ok, acc} ->
939-
case :application.ensure_all_started(app, opts[:type]) do
940-
{:ok, apps} -> {:cont, {:ok, apps ++ acc}}
941-
{:error, e} -> {:halt, {:error, e}}
942-
end
943-
end)
944-
end
932+
:application.ensure_all_started(apps, opts[:type], opts[:mode])
945933
end
946934

947935
@doc """

lib/elixir/lib/code.ex

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -343,7 +343,7 @@ defmodule Code do
343343
344344
* `:cache` - (since v1.15.0) when true, the code path is cached
345345
the first time it is traversed in order to reduce file system
346-
operations. It requires Erlang/OTP 26, otherwise it is a no-op.
346+
operations.
347347
348348
"""
349349
@spec append_path(Path.t(), cache: boolean()) :: true | false
@@ -374,7 +374,7 @@ defmodule Code do
374374
375375
* `:cache` - (since v1.15.0) when true, the code path is cached
376376
the first time it is traversed in order to reduce file system
377-
operations. It requires Erlang/OTP 26, otherwise it is a no-op.
377+
operations.
378378
379379
"""
380380
@spec prepend_path(Path.t(), cache: boolean()) :: boolean()
@@ -403,7 +403,7 @@ defmodule Code do
403403
404404
* `:cache` - when true, the code path is cached the first time
405405
it is traversed in order to reduce file system operations.
406-
It requires Erlang/OTP 26, otherwise it is a no-op.
406+
407407
"""
408408
@doc since: "1.15.0"
409409
@spec prepend_paths([Path.t()], cache: boolean()) :: :ok
@@ -432,7 +432,7 @@ defmodule Code do
432432
433433
* `:cache` - when true, the code path is cached the first time
434434
it is traversed in order to reduce file system operations.
435-
It requires Erlang/OTP 26, otherwise it is a no-op.
435+
436436
"""
437437
@doc since: "1.15.0"
438438
@spec append_paths([Path.t()], cache: boolean()) :: :ok

lib/elixir/lib/string.ex

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1829,7 +1829,6 @@ defmodule String do
18291829
the `:fast_ascii` algorithm to see if it yields performance benefits in your
18301830
specific scenario:
18311831
1832-
* You are running Erlang/OTP 26 or newer on a 64 bit platform
18331832
* You expect most of your strings to be longer than ~64 bytes
18341833
* You expect most of your strings to contain mostly ASCII codepoints
18351834

lib/elixir/pages/references/compatibility-and-deprecations.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,8 @@ Erlang/OTP versioning is independent from the versioning of Elixir. Erlang relea
4343

4444
Elixir version | Supported Erlang/OTP versions
4545
:------------- | :-------------------------------
46+
1.19 | 26 - 27
47+
1.18 | 25 - 27
4648
1.17 | 25 - 27
4749
1.16 | 24 - 26
4850
1.15 | 24 - 26

0 commit comments

Comments
 (0)