Following issues must be addressed in order to run Popcorn on vanilla AtomVM:
binary_split/2,3 - Fission's version supports a list of patterns (binary:split/2,3 with list of patterns #2186 ) and trim and trim_all options (binary:split/3 trim and trim_all options #2187 ), AtomVM doesn't
code:get_object_code - see Implement code:get_object_code/1 nif #1814
erts_internal:cmp_term/2 - this is private BEAM API but it is needed (Implement erts_internal:cmp_term/2 #2188 )
short option for erlang:float_to_list - Popcorn needs it but it's hard to implement, Popcorn has a workaround (erlang:float_to_list short option #2189 )
process_info/1 (Implement erlang:process_info/1 #2190 ), list of options for process_info/2 (Add support for list of options to process_info/2 #2191 ), trap_exit key in process_info/2 (Add support for trap_exit in process_info/2 #2192 ) - there's a PR for that to fission, can be upstreamed,
A mocked node/1, BIF that always returns the current node (Implement node/1 #2195 )
erlang:display_string (Implement erlang:display_string #2193 ) - missing in AtomVM, can be upstreamed,
Improved JS interop - see Experimental JS API based on tracking values #2013
New ETS - see Reimplement ETS to support bag and duplicate_bag #2157
Process aliases - see Process aliases #2027
Following issues must be addressed in order to run Popcorn on vanilla AtomVM:
binary_split/2,3- Fission's version supports a list of patterns (binary:split/2,3with list of patterns #2186) andtrimandtrim_alloptions (binary:split/3trimandtrim_alloptions #2187), AtomVM doesn'tcode:get_object_code- see Implement code:get_object_code/1 nif #1814erts_internal:cmp_term/2- this is private BEAM API but it is needed (Implementerts_internal:cmp_term/2#2188)shortoption forerlang:float_to_list- Popcorn needs it but it's hard to implement, Popcorn has a workaround (erlang:float_to_listshortoption #2189)process_info/1(Implementerlang:process_info/1#2190), list of options forprocess_info/2(Add support for list of options toprocess_info/2#2191),trap_exitkey inprocess_info/2(Add support fortrap_exitinprocess_info/2#2192) - there's a PR for that to fission, can be upstreamed,A mockednode/1, BIF that always returns the current node (Implementnode/1#2195)erlang:display_string(Implementerlang:display_string#2193) - missing in AtomVM, can be upstreamed,New ETS - see Reimplement ETS to support bag and duplicate_bag #2157