Skip to content

Commit f6b7143

Browse files
committed
Merge pull request #1246 from bettio/make-erlang-error-3-work
Stub `erlang:error/3` for Elixir support Stub function used from certain Elixir versions. These changes are made under both the "Apache 2.0" and the "GNU Lesser General Public License 2.1 or later" license terms (dual license). SPDX-License-Identifier: Apache-2.0 OR LGPL-2.1-or-later
2 parents 35a2527 + dd27dfb commit f6b7143

File tree

3 files changed

+4
-0
lines changed

3 files changed

+4
-0
lines changed

CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ require depending on default function and bootloader code
2222
- Support for Elixir `MapSet` module
2323
- Support for Elixir `Range` module
2424
- Support for Elixir `Kernel.min` and `Kernel.max`
25+
- Support (as stub) for `erlang:error/3` (that is required from Elixir code)
2526

2627
## [0.6.3] - 20-07-2024
2728

src/libAtomVM/nifs.c

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3250,6 +3250,8 @@ static term nif_erlang_garbage_collect(Context *ctx, int argc, term argv[])
32503250
return TRUE_ATOM;
32513251
}
32523252

3253+
// TODO: WORKAROUND: this function also implements erlang:error/3, but it ignores Args and Options
3254+
// since we don't have required machinery to make use of them
32533255
static term nif_erlang_error(Context *ctx, int argc, term argv[])
32543256
{
32553257
UNUSED(argc);

src/libAtomVM/nifs.gperf

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,7 @@ erlang:delete_element/2, &delete_element_nif
5050
erlang:erase/1, &erase_nif
5151
erlang:error/1, &error_nif
5252
erlang:error/2, &error_nif
53+
erlang:error/3, &error_nif
5354
erlang:exit/1, &exit_nif
5455
erlang:exit/2, &exit_nif
5556
erlang:display/1, &display_nif

0 commit comments

Comments
 (0)