Skip to content
Merged
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
2 changes: 1 addition & 1 deletion .github/workflows/build-and-test.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ jobs:
cc: ["gcc-4.8", "gcc-5", "gcc-6", "gcc-7", "gcc-8", "gcc-9", "gcc-10", "clang-3.9",
"clang-10"]
cflags: ["-Os", "-O2", "-O3"]
otp: ["21", "22", "23", "24"]
otp: ["21", "22", "23", "24", "25", "master"]

exclude:
- os: "ubuntu-18.04"
Expand Down
18 changes: 18 additions & 0 deletions src/libAtomVM/defaultatoms.c
Original file line number Diff line number Diff line change
Expand Up @@ -115,6 +115,15 @@ static const char *const utf16_atom = "\x5" "utf16";
static const char *const utf32_atom = "\x5" "utf32";
static const char *const badrecord_atom = "\x9" "badrecord";

static const char *const copy_atom = "\x4" "copy";
static const char *const reuse_atom = "\x5" "reuse";
static const char *const ensure_at_least_atom = "\xF" "ensure_at_least";
static const char *const ensure_exactly_atom = "\xE" "ensure_exactly";
static const char *const skip_atom = "\x4" "skip";
static const char *const get_tail_atom = "\x8" "get_tail";
static const char *const equal_colon_equal_atom = "\x3" "=:=";
static const char *const signed_atom = "\x6" "signed";

void defaultatoms_init(GlobalContext *glb)
{
int ok = 1;
Expand Down Expand Up @@ -214,6 +223,15 @@ void defaultatoms_init(GlobalContext *glb)
ok &= globalcontext_insert_atom(glb, utf32_atom) == UTF32_ATOM_INDEX;
ok &= globalcontext_insert_atom(glb, badrecord_atom) == BADRECORD_ATOM_INDEX;

ok &= globalcontext_insert_atom(glb, copy_atom) == COPY_ATOM_INDEX;
ok &= globalcontext_insert_atom(glb, reuse_atom) == REUSE_ATOM_INDEX;
ok &= globalcontext_insert_atom(glb, ensure_at_least_atom) == ENSURE_AT_LEAST_ATOM_INDEX;
ok &= globalcontext_insert_atom(glb, ensure_exactly_atom) == ENSURE_EXACTLY_ATOM_INDEX;
ok &= globalcontext_insert_atom(glb, skip_atom) == SKIP_ATOM_INDEX;
ok &= globalcontext_insert_atom(glb, get_tail_atom) == GET_TAIL_ATOM_INDEX;
ok &= globalcontext_insert_atom(glb, equal_colon_equal_atom) == EQUAL_COLON_EQUAL_ATOM_INDEX;
ok &= globalcontext_insert_atom(glb, signed_atom) == SIGNED_ATOM_INDEX;

if (!ok) {
AVM_ABORT();
}
Expand Down
20 changes: 19 additions & 1 deletion src/libAtomVM/defaultatoms.h
Original file line number Diff line number Diff line change
Expand Up @@ -124,7 +124,16 @@ extern "C" {
#define UTF32_ATOM_INDEX 76
#define BADRECORD_ATOM_INDEX 77

#define PLATFORM_ATOMS_BASE_INDEX 78
#define COPY_ATOM_INDEX 78
#define REUSE_ATOM_INDEX 79
#define ENSURE_AT_LEAST_ATOM_INDEX 80
#define ENSURE_EXACTLY_ATOM_INDEX 81
#define SKIP_ATOM_INDEX 82
#define GET_TAIL_ATOM_INDEX 83
#define EQUAL_COLON_EQUAL_ATOM_INDEX 84
#define SIGNED_ATOM_INDEX 85

#define PLATFORM_ATOMS_BASE_INDEX 86

#define FALSE_ATOM TERM_FROM_ATOM_INDEX(FALSE_ATOM_INDEX)
#define TRUE_ATOM TERM_FROM_ATOM_INDEX(TRUE_ATOM_INDEX)
Expand Down Expand Up @@ -223,6 +232,15 @@ extern "C" {
#define UTF32_ATOM TERM_FROM_ATOM_INDEX(UTF32_ATOM_INDEX)
#define BADRECORD_ATOM TERM_FROM_ATOM_INDEX(BADRECORD_ATOM_INDEX)

#define COPY_ATOM TERM_FROM_ATOM_INDEX(COPY_ATOM_INDEX)
#define REUSE_ATOM TERM_FROM_ATOM_INDEX(REUSE_ATOM_INDEX)
#define ENSURE_AT_LEAST_ATOM TERM_FROM_ATOM_INDEX(ENSURE_AT_LEAST_ATOM_INDEX)
#define ENSURE_EXACTLY_ATOM TERM_FROM_ATOM_INDEX(ENSURE_EXACTLY_ATOM_INDEX)
#define SKIP_ATOM TERM_FROM_ATOM_INDEX(SKIP_ATOM_INDEX)
#define GET_TAIL_ATOM TERM_FROM_ATOM_INDEX(GET_TAIL_ATOM_INDEX)
#define EQUAL_COLON_EQUAL_ATOM TERM_FROM_ATOM_INDEX(EQUAL_COLON_EQUAL_ATOM_INDEX)
#define SIGNED_ATOM TERM_FROM_ATOM_INDEX(SIGNED_ATOM_INDEX)

void defaultatoms_init(GlobalContext *glb);

void platform_defaultatoms_init(GlobalContext *glb);
Expand Down
2 changes: 2 additions & 0 deletions src/libAtomVM/opcodes.h
Original file line number Diff line number Diff line change
Expand Up @@ -160,5 +160,7 @@
#define OP_BS_CREATE_BIN 177
#define OP_CALL_FUN2 178
#define OP_BADRECORD 180
#define OP_UPDATE_RECORD 181
#define OP_BS_MATCH 182

#endif
Loading