Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Binary file modified bootstrap/bin/no_dot_erlang.boot
Binary file not shown.
Binary file modified bootstrap/bin/start.boot
Binary file not shown.
Binary file modified bootstrap/bin/start_clean.boot
Binary file not shown.
Binary file modified bootstrap/lib/compiler/ebin/beam_asm.beam
Binary file not shown.
2 changes: 1 addition & 1 deletion bootstrap/lib/compiler/ebin/compiler.app
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@

{application, compiler,
[{description, "ERTS CXC 138 10"},
{vsn, "8.5.4"},
{vsn, "9.0"},
{modules, [
beam_a,
beam_asm,
Expand Down
2 changes: 1 addition & 1 deletion bootstrap/lib/compiler/ebin/compiler.appup
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@
%% limitations under the License.
%%
%% %CopyrightEnd%
{"8.2",
{"9.0",
[{<<".*">>,[{restart_application, compiler}]}],
[{<<".*">>,[{restart_application, compiler}]}]
}.
Binary file modified bootstrap/lib/kernel/ebin/group.beam
Binary file not shown.
11 changes: 6 additions & 5 deletions bootstrap/lib/kernel/ebin/kernel.app
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,9 @@
%% %CopyrightBegin%
%%
%% SPDX-License-Identifier: Apache-2.0
%%
%%
%% Copyright Ericsson AB 1996-2025. All Rights Reserved.
%%
%%
%% Licensed under the Apache License, Version 2.0 (the "License");
%% you may not use this file except in compliance with the License.
%% You may obtain a copy of the License at
Expand All @@ -16,15 +16,15 @@
%% WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
%% See the License for the specific language governing permissions and
%% limitations under the License.
%%
%%
%% %CopyrightEnd%
%%
%% This is an -*- erlang -*- file.
%%
{application, kernel,
[
{description, "ERTS CXC 138 10"},
{vsn, "10.2.1"},
{vsn, "10.3"},
{modules, [application,
application_controller,
application_master,
Expand All @@ -35,6 +35,7 @@
dist_util,
erl_boot_server,
erl_compile_server,
erl_debugger,
erl_distribution,
erl_erts_errors,
erl_reply,
Expand Down Expand Up @@ -167,7 +168,7 @@
{shell_history_drop,[]}
]},
{mod, {kernel, []}},
{runtime_dependencies, ["erts-15.1", "stdlib-6.0",
{runtime_dependencies, ["erts-15.2.5", "stdlib-6.0",
"sasl-3.0", "crypto-5.0"]}
]
}.
118 changes: 60 additions & 58 deletions bootstrap/lib/kernel/ebin/kernel.appup
Original file line number Diff line number Diff line change
Expand Up @@ -21,66 +21,68 @@
%%
%% We allow upgrade from, and downgrade to all previous
%% versions from the following OTP releases:
%% - OTP 23
%% - OTP 24
%% - OTP 25
%% - OTP 26
%% - OTP 27
%% - OTP 28
%%
%% We also allow upgrade from, and downgrade to all
%% versions that have branched off from the above
%% stated previous versions.
%%
{"8.4.1",
[{<<"^7\\.0$">>,[restart_new_emulator]},
{<<"^7\\.0\\.0(?:\\.[0-9]+)+$">>,[restart_new_emulator]},
{<<"^7\\.1$">>,[restart_new_emulator]},
{<<"^7\\.1\\.0(?:\\.[0-9]+)+$">>,[restart_new_emulator]},
{<<"^7\\.2$">>,[restart_new_emulator]},
{<<"^7\\.2\\.0(?:\\.[0-9]+)+$">>,[restart_new_emulator]},
{<<"^7\\.2\\.1(?:\\.[0-9]+)*$">>,[restart_new_emulator]},
{<<"^7\\.3$">>,[restart_new_emulator]},
{<<"^7\\.3\\.0(?:\\.[0-9]+)+$">>,[restart_new_emulator]},
{<<"^7\\.3\\.1(?:\\.[0-9]+)*$">>,[restart_new_emulator]},
{<<"^8\\.0$">>,[restart_new_emulator]},
{<<"^8\\.0\\.0(?:\\.[0-9]+)+$">>,[restart_new_emulator]},
{<<"^8\\.0\\.1(?:\\.[0-9]+)*$">>,[restart_new_emulator]},
{<<"^8\\.0\\.2(?:\\.[0-9]+)*$">>,[restart_new_emulator]},
{<<"^8\\.1$">>,[restart_new_emulator]},
{<<"^8\\.1\\.0(?:\\.[0-9]+)+$">>,[restart_new_emulator]},
{<<"^8\\.1\\.1(?:\\.[0-9]+)*$">>,[restart_new_emulator]},
{<<"^8\\.1\\.2(?:\\.[0-9]+)*$">>,[restart_new_emulator]},
{<<"^8\\.1\\.3(?:\\.[0-9]+)*$">>,[restart_new_emulator]},
{<<"^8\\.2$">>,[restart_new_emulator]},
{<<"^8\\.2\\.0(?:\\.[0-9]+)+$">>,[restart_new_emulator]},
{<<"^8\\.3$">>,[restart_new_emulator]},
{<<"^8\\.3\\.0(?:\\.[0-9]+)+$">>,[restart_new_emulator]},
{<<"^8\\.3\\.1(?:\\.[0-9]+)*$">>,[restart_new_emulator]},
{<<"^8\\.3\\.2(?:\\.[0-9]+)*$">>,[restart_new_emulator]},
{<<"^8\\.4$">>,[restart_new_emulator]},
{<<"^8\\.4\\.0(?:\\.[0-9]+)+$">>,[restart_new_emulator]}],
[{<<"^7\\.0$">>,[restart_new_emulator]},
{<<"^7\\.0\\.0(?:\\.[0-9]+)+$">>,[restart_new_emulator]},
{<<"^7\\.1$">>,[restart_new_emulator]},
{<<"^7\\.1\\.0(?:\\.[0-9]+)+$">>,[restart_new_emulator]},
{<<"^7\\.2$">>,[restart_new_emulator]},
{<<"^7\\.2\\.0(?:\\.[0-9]+)+$">>,[restart_new_emulator]},
{<<"^7\\.2\\.1(?:\\.[0-9]+)*$">>,[restart_new_emulator]},
{<<"^7\\.3$">>,[restart_new_emulator]},
{<<"^7\\.3\\.0(?:\\.[0-9]+)+$">>,[restart_new_emulator]},
{<<"^7\\.3\\.1(?:\\.[0-9]+)*$">>,[restart_new_emulator]},
{<<"^8\\.0$">>,[restart_new_emulator]},
{<<"^8\\.0\\.0(?:\\.[0-9]+)+$">>,[restart_new_emulator]},
{<<"^8\\.0\\.1(?:\\.[0-9]+)*$">>,[restart_new_emulator]},
{<<"^8\\.0\\.2(?:\\.[0-9]+)*$">>,[restart_new_emulator]},
{<<"^8\\.1$">>,[restart_new_emulator]},
{<<"^8\\.1\\.0(?:\\.[0-9]+)+$">>,[restart_new_emulator]},
{<<"^8\\.1\\.1(?:\\.[0-9]+)*$">>,[restart_new_emulator]},
{<<"^8\\.1\\.2(?:\\.[0-9]+)*$">>,[restart_new_emulator]},
{<<"^8\\.1\\.3(?:\\.[0-9]+)*$">>,[restart_new_emulator]},
{<<"^8\\.2$">>,[restart_new_emulator]},
{<<"^8\\.2\\.0(?:\\.[0-9]+)+$">>,[restart_new_emulator]},
{<<"^8\\.3$">>,[restart_new_emulator]},
{<<"^8\\.3\\.0(?:\\.[0-9]+)+$">>,[restart_new_emulator]},
{<<"^8\\.3\\.1(?:\\.[0-9]+)*$">>,[restart_new_emulator]},
{<<"^8\\.3\\.2(?:\\.[0-9]+)*$">>,[restart_new_emulator]},
{<<"^8\\.4$">>,[restart_new_emulator]},
{<<"^8\\.4\\.0(?:\\.[0-9]+)+$">>,[restart_new_emulator]}]}.
{"10.3",
[{<<"^10\\.0$">>,[restart_new_emulator]},
{<<"^10\\.0\\.0(?:\\.[0-9]+)+$">>,[restart_new_emulator]},
{<<"^10\\.0\\.1(?:\\.[0-9]+)*$">>,[restart_new_emulator]},
{<<"^10\\.1$">>,[restart_new_emulator]},
{<<"^10\\.1\\.0(?:\\.[0-9]+)+$">>,[restart_new_emulator]},
{<<"^10\\.1\\.1(?:\\.[0-9]+)*$">>,[restart_new_emulator]},
{<<"^10\\.1\\.2(?:\\.[0-9]+)*$">>,[restart_new_emulator]},
{<<"^10\\.2$">>,[restart_new_emulator]},
{<<"^10\\.2\\.0(?:\\.[0-9]+)+$">>,[restart_new_emulator]},
{<<"^10\\.2\\.1(?:\\.[0-9]+)*$">>,[restart_new_emulator]},
{<<"^10\\.2\\.2(?:\\.[0-9]+)*$">>,[restart_new_emulator]},
{<<"^10\\.2\\.3(?:\\.[0-9]+)*$">>,[restart_new_emulator]},
{<<"^10\\.2\\.4(?:\\.[0-9]+)*$">>,[restart_new_emulator]},
{<<"^10\\.2\\.5(?:\\.[0-9]+)*$">>,[restart_new_emulator]},
{<<"^10\\.2\\.6(?:\\.[0-9]+)*$">>,[restart_new_emulator]},
{<<"^10\\.2\\.7(?:\\.[0-9]+)*$">>,[restart_new_emulator]},
{<<"^9\\.0$">>,[restart_new_emulator]},
{<<"^9\\.0\\.0(?:\\.[0-9]+)+$">>,[restart_new_emulator]},
{<<"^9\\.0\\.1(?:\\.[0-9]+)*$">>,[restart_new_emulator]},
{<<"^9\\.0\\.2(?:\\.[0-9]+)*$">>,[restart_new_emulator]},
{<<"^9\\.1$">>,[restart_new_emulator]},
{<<"^9\\.1\\.0(?:\\.[0-9]+)+$">>,[restart_new_emulator]},
{<<"^9\\.2$">>,[restart_new_emulator]},
{<<"^9\\.2\\.0(?:\\.[0-9]+)+$">>,[restart_new_emulator]},
{<<"^9\\.2\\.1(?:\\.[0-9]+)*$">>,[restart_new_emulator]},
{<<"^9\\.2\\.2(?:\\.[0-9]+)*$">>,[restart_new_emulator]},
{<<"^9\\.2\\.3(?:\\.[0-9]+)*$">>,[restart_new_emulator]},
{<<"^9\\.2\\.4(?:\\.[0-9]+)*$">>,[restart_new_emulator]}],
[{<<"^10\\.0$">>,[restart_new_emulator]},
{<<"^10\\.0\\.0(?:\\.[0-9]+)+$">>,[restart_new_emulator]},
{<<"^10\\.0\\.1(?:\\.[0-9]+)*$">>,[restart_new_emulator]},
{<<"^10\\.1$">>,[restart_new_emulator]},
{<<"^10\\.1\\.0(?:\\.[0-9]+)+$">>,[restart_new_emulator]},
{<<"^10\\.1\\.1(?:\\.[0-9]+)*$">>,[restart_new_emulator]},
{<<"^10\\.1\\.2(?:\\.[0-9]+)*$">>,[restart_new_emulator]},
{<<"^10\\.2$">>,[restart_new_emulator]},
{<<"^10\\.2\\.0(?:\\.[0-9]+)+$">>,[restart_new_emulator]},
{<<"^10\\.2\\.1(?:\\.[0-9]+)*$">>,[restart_new_emulator]},
{<<"^10\\.2\\.2(?:\\.[0-9]+)*$">>,[restart_new_emulator]},
{<<"^10\\.2\\.3(?:\\.[0-9]+)*$">>,[restart_new_emulator]},
{<<"^10\\.2\\.4(?:\\.[0-9]+)*$">>,[restart_new_emulator]},
{<<"^10\\.2\\.5(?:\\.[0-9]+)*$">>,[restart_new_emulator]},
{<<"^10\\.2\\.6(?:\\.[0-9]+)*$">>,[restart_new_emulator]},
{<<"^10\\.2\\.7(?:\\.[0-9]+)*$">>,[restart_new_emulator]},
{<<"^9\\.0$">>,[restart_new_emulator]},
{<<"^9\\.0\\.0(?:\\.[0-9]+)+$">>,[restart_new_emulator]},
{<<"^9\\.0\\.1(?:\\.[0-9]+)*$">>,[restart_new_emulator]},
{<<"^9\\.0\\.2(?:\\.[0-9]+)*$">>,[restart_new_emulator]},
{<<"^9\\.1$">>,[restart_new_emulator]},
{<<"^9\\.1\\.0(?:\\.[0-9]+)+$">>,[restart_new_emulator]},
{<<"^9\\.2$">>,[restart_new_emulator]},
{<<"^9\\.2\\.0(?:\\.[0-9]+)+$">>,[restart_new_emulator]},
{<<"^9\\.2\\.1(?:\\.[0-9]+)*$">>,[restart_new_emulator]},
{<<"^9\\.2\\.2(?:\\.[0-9]+)*$">>,[restart_new_emulator]},
{<<"^9\\.2\\.3(?:\\.[0-9]+)*$">>,[restart_new_emulator]},
{<<"^9\\.2\\.4(?:\\.[0-9]+)*$">>,[restart_new_emulator]}]}.
Binary file modified bootstrap/lib/stdlib/ebin/erl_internal.beam
Binary file not shown.
7 changes: 4 additions & 3 deletions bootstrap/lib/stdlib/ebin/stdlib.app
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@
%%
{application, stdlib,
[{description, "ERTS CXC 138 10"},
{vsn, "6.2"},
{vsn, "7.0"},
{modules, [argparse,
array,
base64,
Expand Down Expand Up @@ -116,11 +116,12 @@
unicode_util,
uri_string,
win32reg,
zip]},
zip,
zstd]},
{registered,[timer_server,rsh_starter,take_over_monitor,pool_master,
dets]},
{applications, [kernel]},
{env, []},
{runtime_dependencies, ["sasl-3.0","kernel-10.0","erts-15.0","crypto-4.5",
{runtime_dependencies, ["sasl-3.0","kernel-10.0","erts-16.0","crypto-4.5",
"compiler-5.0", "syntax_tools-3.2.1"]}
]}.
92 changes: 50 additions & 42 deletions bootstrap/lib/stdlib/ebin/stdlib.appup
Original file line number Diff line number Diff line change
Expand Up @@ -21,50 +21,58 @@
%%
%% We allow upgrade from, and downgrade to all previous
%% versions from the following OTP releases:
%% - OTP 23
%% - OTP 24
%% - OTP 25
%% - OTP 26
%% - OTP 27
%% - OTP 28
%%
%% We also allow upgrade from, and downgrade to all
%% versions that have branched off from the above
%% stated previous versions.
%%
{"4.0",
[{<<"^3\\.13$">>,[restart_new_emulator]},
{<<"^3\\.13\\.0(?:\\.[0-9]+)+$">>,[restart_new_emulator]},
{<<"^3\\.13\\.1(?:\\.[0-9]+)*$">>,[restart_new_emulator]},
{<<"^3\\.13\\.2(?:\\.[0-9]+)*$">>,[restart_new_emulator]},
{<<"^3\\.14$">>,[restart_new_emulator]},
{<<"^3\\.14\\.0(?:\\.[0-9]+)+$">>,[restart_new_emulator]},
{<<"^3\\.14\\.1(?:\\.[0-9]+)*$">>,[restart_new_emulator]},
{<<"^3\\.14\\.2(?:\\.[0-9]+)*$">>,[restart_new_emulator]},
{<<"^3\\.15$">>,[restart_new_emulator]},
{<<"^3\\.15\\.0(?:\\.[0-9]+)+$">>,[restart_new_emulator]},
{<<"^3\\.15\\.1(?:\\.[0-9]+)*$">>,[restart_new_emulator]},
{<<"^3\\.15\\.2(?:\\.[0-9]+)*$">>,[restart_new_emulator]},
{<<"^3\\.16$">>,[restart_new_emulator]},
{<<"^3\\.16\\.0(?:\\.[0-9]+)+$">>,[restart_new_emulator]},
{<<"^3\\.16\\.1(?:\\.[0-9]+)*$">>,[restart_new_emulator]},
{<<"^3\\.17$">>,[restart_new_emulator]},
{<<"^3\\.17\\.0(?:\\.[0-9]+)+$">>,[restart_new_emulator]},
{<<"^3\\.17\\.1(?:\\.[0-9]+)*$">>,[restart_new_emulator]},
{<<"^3\\.17\\.2(?:\\.[0-9]+)*$">>,[restart_new_emulator]}],
[{<<"^3\\.13$">>,[restart_new_emulator]},
{<<"^3\\.13\\.0(?:\\.[0-9]+)+$">>,[restart_new_emulator]},
{<<"^3\\.13\\.1(?:\\.[0-9]+)*$">>,[restart_new_emulator]},
{<<"^3\\.13\\.2(?:\\.[0-9]+)*$">>,[restart_new_emulator]},
{<<"^3\\.14$">>,[restart_new_emulator]},
{<<"^3\\.14\\.0(?:\\.[0-9]+)+$">>,[restart_new_emulator]},
{<<"^3\\.14\\.1(?:\\.[0-9]+)*$">>,[restart_new_emulator]},
{<<"^3\\.14\\.2(?:\\.[0-9]+)*$">>,[restart_new_emulator]},
{<<"^3\\.15$">>,[restart_new_emulator]},
{<<"^3\\.15\\.0(?:\\.[0-9]+)+$">>,[restart_new_emulator]},
{<<"^3\\.15\\.1(?:\\.[0-9]+)*$">>,[restart_new_emulator]},
{<<"^3\\.15\\.2(?:\\.[0-9]+)*$">>,[restart_new_emulator]},
{<<"^3\\.16$">>,[restart_new_emulator]},
{<<"^3\\.16\\.0(?:\\.[0-9]+)+$">>,[restart_new_emulator]},
{<<"^3\\.16\\.1(?:\\.[0-9]+)*$">>,[restart_new_emulator]},
{<<"^3\\.17$">>,[restart_new_emulator]},
{<<"^3\\.17\\.0(?:\\.[0-9]+)+$">>,[restart_new_emulator]},
{<<"^3\\.17\\.1(?:\\.[0-9]+)*$">>,[restart_new_emulator]},
{<<"^3\\.17\\.2(?:\\.[0-9]+)*$">>,[restart_new_emulator]}]}.
{"7.0",
[{<<"^5\\.0$">>,[restart_new_emulator]},
{<<"^5\\.0\\.0(?:\\.[0-9]+)+$">>,[restart_new_emulator]},
{<<"^5\\.0\\.1(?:\\.[0-9]+)*$">>,[restart_new_emulator]},
{<<"^5\\.0\\.2(?:\\.[0-9]+)*$">>,[restart_new_emulator]},
{<<"^5\\.1$">>,[restart_new_emulator]},
{<<"^5\\.1\\.0(?:\\.[0-9]+)+$">>,[restart_new_emulator]},
{<<"^5\\.1\\.1(?:\\.[0-9]+)*$">>,[restart_new_emulator]},
{<<"^5\\.2$">>,[restart_new_emulator]},
{<<"^5\\.2\\.0(?:\\.[0-9]+)+$">>,[restart_new_emulator]},
{<<"^5\\.2\\.1(?:\\.[0-9]+)*$">>,[restart_new_emulator]},
{<<"^5\\.2\\.2(?:\\.[0-9]+)*$">>,[restart_new_emulator]},
{<<"^5\\.2\\.3(?:\\.[0-9]+)*$">>,[restart_new_emulator]},
{<<"^6\\.0$">>,[restart_new_emulator]},
{<<"^6\\.0\\.0(?:\\.[0-9]+)+$">>,[restart_new_emulator]},
{<<"^6\\.0\\.1(?:\\.[0-9]+)*$">>,[restart_new_emulator]},
{<<"^6\\.1$">>,[restart_new_emulator]},
{<<"^6\\.1\\.0(?:\\.[0-9]+)+$">>,[restart_new_emulator]},
{<<"^6\\.1\\.1(?:\\.[0-9]+)*$">>,[restart_new_emulator]},
{<<"^6\\.1\\.2(?:\\.[0-9]+)*$">>,[restart_new_emulator]},
{<<"^6\\.2$">>,[restart_new_emulator]},
{<<"^6\\.2\\.0(?:\\.[0-9]+)+$">>,[restart_new_emulator]},
{<<"^6\\.2\\.1(?:\\.[0-9]+)*$">>,[restart_new_emulator]},
{<<"^6\\.2\\.2(?:\\.[0-9]+)*$">>,[restart_new_emulator]}],
[{<<"^5\\.0$">>,[restart_new_emulator]},
{<<"^5\\.0\\.0(?:\\.[0-9]+)+$">>,[restart_new_emulator]},
{<<"^5\\.0\\.1(?:\\.[0-9]+)*$">>,[restart_new_emulator]},
{<<"^5\\.0\\.2(?:\\.[0-9]+)*$">>,[restart_new_emulator]},
{<<"^5\\.1$">>,[restart_new_emulator]},
{<<"^5\\.1\\.0(?:\\.[0-9]+)+$">>,[restart_new_emulator]},
{<<"^5\\.1\\.1(?:\\.[0-9]+)*$">>,[restart_new_emulator]},
{<<"^5\\.2$">>,[restart_new_emulator]},
{<<"^5\\.2\\.0(?:\\.[0-9]+)+$">>,[restart_new_emulator]},
{<<"^5\\.2\\.1(?:\\.[0-9]+)*$">>,[restart_new_emulator]},
{<<"^5\\.2\\.2(?:\\.[0-9]+)*$">>,[restart_new_emulator]},
{<<"^5\\.2\\.3(?:\\.[0-9]+)*$">>,[restart_new_emulator]},
{<<"^6\\.0$">>,[restart_new_emulator]},
{<<"^6\\.0\\.0(?:\\.[0-9]+)+$">>,[restart_new_emulator]},
{<<"^6\\.0\\.1(?:\\.[0-9]+)*$">>,[restart_new_emulator]},
{<<"^6\\.1$">>,[restart_new_emulator]},
{<<"^6\\.1\\.0(?:\\.[0-9]+)+$">>,[restart_new_emulator]},
{<<"^6\\.1\\.1(?:\\.[0-9]+)*$">>,[restart_new_emulator]},
{<<"^6\\.1\\.2(?:\\.[0-9]+)*$">>,[restart_new_emulator]},
{<<"^6\\.2$">>,[restart_new_emulator]},
{<<"^6\\.2\\.0(?:\\.[0-9]+)+$">>,[restart_new_emulator]},
{<<"^6\\.2\\.1(?:\\.[0-9]+)*$">>,[restart_new_emulator]},
{<<"^6\\.2\\.2(?:\\.[0-9]+)*$">>,[restart_new_emulator]}]}.
5 changes: 5 additions & 0 deletions erts/emulator/beam/bif.tab
Original file line number Diff line number Diff line change
Expand Up @@ -828,3 +828,8 @@ bif erl_debugger:stack_frames/2
bif erl_debugger:peek_stack_frame_slot/4
bif erl_debugger:xregs_count/1
bif erl_debugger:peek_xreg/3

#
# New in 29.
#
ubif erlang:is_between/3
2 changes: 2 additions & 0 deletions erts/emulator/beam/emu/ops.tab
Original file line number Diff line number Diff line change
Expand Up @@ -1001,6 +1001,8 @@ bif1 Fail=f Bif S1 Dst => i_bif1 S1 Fail Bif Dst
bif2 p Bif S1 S2 Dst => i_bif2_body S2 S1 Bif Dst
bif2 Fail=f Bif S1 S2 Dst => i_bif2 S2 S1 Fail Bif Dst

bif3 p Bif S1 S2 S3 Dst => i_bif3_body S3 S2 S1 Bif Dst

i_get_hash c W d
i_get s d

Expand Down
14 changes: 14 additions & 0 deletions erts/emulator/beam/erl_bif_guard.c
Original file line number Diff line number Diff line change
Expand Up @@ -334,6 +334,20 @@ BIF_RETTYPE size_1(BIF_ALIST_1)
BIF_ERROR(BIF_P, BADARG);
}

BIF_RETTYPE is_between_3(BIF_ALIST_3)
{
if(is_not_integer(BIF_ARG_2) ||
is_not_integer(BIF_ARG_3)) {
BIF_ERROR(BIF_P, BADARG);
}
if(is_not_integer(BIF_ARG_1)) {
BIF_RET(am_false);
}

BIF_RET((CMP_LE(BIF_ARG_2, BIF_ARG_1) && CMP_LE(BIF_ARG_1, BIF_ARG_3)) ?
am_true : am_false);
}

/**********************************************************************/
/* returns the bitsize of a bitstring */

Expand Down
6 changes: 6 additions & 0 deletions erts/emulator/beam/erl_db_util.c
Original file line number Diff line number Diff line change
Expand Up @@ -774,6 +774,12 @@ static DMCGuardBif guard_tab[] =
3,
DBIF_ALL
},
{
am_is_between,
&is_between_3,
3,
DBIF_ALL
},
{
am_tl,
&tl_1,
Expand Down
1 change: 1 addition & 0 deletions erts/emulator/beam/jit/arm/ops.tab
Original file line number Diff line number Diff line change
Expand Up @@ -814,6 +814,7 @@ bif2 _Fail Bif S1 S2 Dst | never_fails(Bif) => nofail_bif2 S1 S2 Bif Dst

bif1 Fail Bif S1 Dst => i_bif1 S1 Fail Bif Dst
bif2 Fail Bif S1 S2 Dst => i_bif2 S1 S2 Fail Bif Dst
bif3 Fail Bif S1 S2 S3 Dst => i_bif3 S1 S2 S3 Fail Bif Dst

nofail_bif2 S1=d S2 Bif Dst | is_eq_exact_bif(Bif) => bif_is_eq_exact S1 S2 Dst
nofail_bif2 S1=d S2 Bif Dst | is_ne_exact_bif(Bif) => bif_is_ne_exact S1 S2 Dst
Expand Down
1 change: 1 addition & 0 deletions erts/emulator/beam/jit/x86/ops.tab
Original file line number Diff line number Diff line change
Expand Up @@ -745,6 +745,7 @@ bif2 _Fail Bif S1 S2 Dst | never_fails(Bif) => nofail_bif2 S1 S2 Bif Dst

bif1 Fail Bif S1 Dst => i_bif1 S1 Fail Bif Dst
bif2 Fail Bif S1 S2 Dst => i_bif2 S1 S2 Fail Bif Dst
bif3 Fail Bif S1 S2 S3 Dst => i_bif3 S1 S2 S3 Fail Bif Dst

nofail_bif2 S1=d S2 Bif Dst | is_eq_exact_bif(Bif) => bif_is_eq_exact S1 S2 Dst
nofail_bif2 S1=d S2 Bif Dst | is_ne_exact_bif(Bif) => bif_is_ne_exact S1 S2 Dst
Expand Down
Loading
Loading