This is tracking issue for all work we've done for allowing evaluating Elixir modules. Ticked items are merged. ## Core - [x] Add `erlang:--/2` – https://github.com/atomvm/AtomVM/pull/1403 - [x] Add `fun_info/2` – https://github.com/atomvm/AtomVM/pull/1403 - [x] `erlang:fun_info(F, env)` – mock in https://github.com/atomvm/AtomVM/pull/1568 - [x] `spawn_monitor` – https://github.com/atomvm/AtomVM/pull/1567 - [x] `erlang:is_record/2` – https://github.com/atomvm/AtomVM/pull/1564 - [x] `erlang:unique_integer/{0, 1}` – https://github.com/atomvm/AtomVM/pull/1519 - [x] `erlang:md5` for WASM – https://github.com/atomvm/AtomVM/pull/1575 by @pguyot - [x] `float/1` BIF – https://github.com/atomvm/AtomVM/pull/1518 - [x] `nif_error` NIF - [x] Add `binary_part/3` to BIFs – https://github.com/atomvm/AtomVM/pull/1569 - [x] Fix advanced tracing compile error (`module_get_imported_function_module_and_name`) – https://github.com/atomvm/AtomVM/pull/1566 - [x] Patch is_function/3 opcode to decode arity as term - [x] Fix stacktraces and enable them in WASM ## Stdlib - [ ] `lists:flatmap/2` – used OTP impl - [ ] `lists:append/1` – used OTP impl - [ ] `lists:partition/4` – used OTP impl - [x] `lists:dropwhile/2` – https://github.com/atomvm/AtomVM/pull/1565 - [x] Allow `lists:duplicate/2` to have zero count – https://github.com/atomvm/AtomVM/pull/1565 - [ ] `io_lib:write_atom_as_latin1/1` - [x] `io_lib:fwrite/2` - [x] `io_lib:write_atom/1` - [x] `binary:replace/4` - [ ] `prim_file:get_cwd/0` - [x] `zlib:compress/1` – https://github.com/atomvm/AtomVM/pull/1570 - [x] `os:getenv/1` - [x] `binary:match/2,3` – https://github.com/atomvm/AtomVM/pull/1621 ## ETS - [ ] `persistent_term` - [x] `ets:insert/2` with lists – https://github.com/atomvm/AtomVM/pull/1405 - [ ] `ets:lookup_element/4` - [ ] `ets:insert_new/2` - [ ] `ets:take/2` - [ ] `ets:update_element/3` - [x] `ets:update_counter/4` – https://github.com/atomvm/AtomVM/pull/1406 - [x] `ets:delete/1` – https://github.com/atomvm/AtomVM/pull/1461 - [ ] `ets:delete_object/2` - [ ] Add ets `duplicate_bag` option
This is tracking issue for all work we've done for allowing evaluating Elixir modules.
Ticked items are merged.
Core
erlang:--/2– Add support for erlang:--/2 #1403fun_info/2– Add support for erlang:--/2 #1403erlang:fun_info(F, env)– mock in Add mock forerlang:fun_info(F, env)#1568spawn_monitor– Add spawn_monitor/1, spawn_monitor/3 #1567erlang:is_record/2– Adderlang:is_record/2#1564erlang:unique_integer/{0, 1}– Add erlang:unique_integer #1519erlang:md5for WASM – Add support for crypto with emscripten by fetching mbedtls #1575 by @pguyotfloat/1BIF – Add float/1 BIF #1518nif_errorNIFbinary_part/3to BIFs – Addbinary_part/3to BIFs #1569module_get_imported_function_module_and_name) – Fix advanced tracing #1566Stdlib
lists:flatmap/2– used OTP impllists:append/1– used OTP impllists:partition/4– used OTP impllists:dropwhile/2– Add lists:dropwhile, fix lists:duplicate/2 #1565lists:duplicate/2to have zero count – Add lists:dropwhile, fix lists:duplicate/2 #1565io_lib:write_atom_as_latin1/1io_lib:fwrite/2io_lib:write_atom/1binary:replace/4prim_file:get_cwd/0zlib:compress/1– Add zlib:compress/1 #1570os:getenv/1binary:match/2,3– Implement binary:match/2 and binary:match/3 #1621ETS
persistent_termets:insert/2with lists – Add option to insert list in ets:insert, ets:lookup refactor #1405ets:lookup_element/4ets:insert_new/2ets:take/2ets:update_element/3ets:update_counter/4– Add ets:update_counter #1406ets:delete/1– Addets:delete/1,ets:deleterefactor #1461ets:delete_object/2duplicate_bagoption