# # %CopyrightBegin% # # Copyright Ericsson AB 1996-2013. All Rights Reserved. # # The contents of this file are subject to the Erlang Public License, # Version 1.1, (the "License"); you may not use this file except in # compliance with the License. You should have received a copy of the # Erlang Public License along with this software. If not, it can be # retrieved online at http://www.erlang.org/. # # Software distributed under the License is distributed on an "AS IS" # basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See # the License for the specific language governing rights and limitations # under the License. # # %CopyrightEnd% # # # File format: # # Lines starting with '#' are ignored. # # ::= "bif" * | "ubif" * # ::= ":" "/" # # "ubif" is an unwrapped bif, i.e. a bif without a trace wrapper, # or rather; the trace entry point in the export entry is the same # as the normal entry point, and no trace wrapper is generated. # # Important: Use "ubif" for guard BIFs and operators; use "bif" for ordinary BIFs. # # Add new BIFs to the end of the file. # # Note: Guards BIFs require special support in the compiler (to be able to actually # call them from within a guard). # ubif erlang:abs/1 bif erlang:adler32/1 bif erlang:adler32/2 bif erlang:adler32_combine/3 bif erlang:apply/3 bif erlang:atom_to_list/1 bif erlang:binary_to_list/1 bif erlang:binary_to_list/3 bif erlang:binary_to_term/1 bif erlang:crc32/1 bif erlang:crc32/2 bif erlang:crc32_combine/3 bif erlang:date/0 bif erlang:delete_module/1 bif erlang:display/1 bif erlang:display_string/1 bif erlang:display_nl/0 ubif erlang:element/2 bif erlang:erase/0 bif erlang:erase/1 bif erlang:exit/1 bif erlang:exit/2 bif erlang:external_size/1 bif erlang:external_size/2 ubif erlang:float/1 bif erlang:float_to_list/1 bif erlang:float_to_list/2 bif erlang:fun_info/2 bif erlang:garbage_collect/0 bif erlang:get/0 bif erlang:get/1 bif erlang:get_keys/1 bif erlang:group_leader/0 bif erlang:group_leader/2 bif erlang:halt/0 bif erlang:halt/1 bif erlang:halt/2 bif erlang:phash/2 bif erlang:phash2/1 bif erlang:phash2/2 ubif erlang:hd/1 bif erlang:integer_to_list/1 bif erlang:is_alive/0 ubif erlang:length/1 bif erlang:link/1 bif erlang:list_to_atom/1 bif erlang:list_to_binary/1 bif erlang:list_to_float/1 bif erlang:list_to_integer/1 bif erlang:list_to_pid/1 bif erlang:list_to_tuple/1 bif erlang:loaded/0 bif erlang:localtime/0 bif erlang:localtime_to_universaltime/2 bif erlang:make_ref/0 bif erlang:md5/1 bif erlang:md5_init/0 bif erlang:md5_update/2 bif erlang:md5_final/1 bif erlang:module_loaded/1 bif erlang:function_exported/3 bif erlang:monitor_node/2 bif erlang:monitor_node/3 ubif erlang:node/1 ubif erlang:node/0 bif erlang:nodes/1 bif erlang:now/0 bif erlang:open_port/2 bif erlang:pid_to_list/1 bif erlang:ports/0 bif erlang:pre_loaded/0 bif erlang:process_flag/2 bif erlang:process_flag/3 bif erlang:process_info/1 bif erlang:process_info/2 bif erlang:processes/0 bif erlang:purge_module/1 bif erlang:put/2 bif erlang:register/2 bif erlang:registered/0 ubif erlang:round/1 ubif erlang:self/0 bif erlang:setelement/3 ubif erlang:size/1 bif erlang:spawn/3 bif erlang:spawn_link/3 bif erlang:split_binary/2 bif erlang:statistics/1 bif erlang:term_to_binary/1 bif erlang:term_to_binary/2 bif erlang:throw/1 bif erlang:time/0 ubif erlang:tl/1 ubif erlang:trunc/1 bif erlang:tuple_to_list/1 bif erlang:universaltime/0 bif erlang:universaltime_to_localtime/1 bif erlang:unlink/1 bif erlang:unregister/1 bif erlang:whereis/1 bif erlang:spawn_opt/1 bif erlang:setnode/2 bif erlang:setnode/3 bif erlang:dist_exit/3 # Static native functions in erts_internal bif erts_internal:port_info/1 bif erts_internal:port_info/2 bif erts_internal:port_call/3 bif erts_internal:port_command/3 bif erts_internal:port_control/3 bif erts_internal:port_close/1 bif erts_internal:port_connect/2 bif erts_internal:request_system_task/3 bif erts_internal:check_process_code/2 bif erts_internal:map_to_tuple_keys/1 # inet_db support bif erlang:port_set_data/2 bif erlang:port_get_data/1 # Tracing & debugging. bif erlang:trace_pattern/2 bif erlang:trace_pattern/3 bif erlang:trace/3 bif erlang:trace_info/2 bif erlang:trace_delivered/1 bif erlang:seq_trace/2 bif erlang:seq_trace_info/1 bif erlang:seq_trace_print/1 bif erlang:seq_trace_print/2 bif erlang:suspend_process/2 bif erlang:resume_process/1 bif erlang:process_display/2 bif erlang:bump_reductions/1 bif math:cos/1 bif math:cosh/1 bif math:sin/1 bif math:sinh/1 bif math:tan/1 bif math:tanh/1 bif math:acos/1 bif math:acosh/1 bif math:asin/1 bif math:asinh/1 bif math:atan/1 bif math:atanh/1 bif math:erf/1 bif math:erfc/1 bif math:exp/1 bif math:log/1 bif math:log2/1 bif math:log10/1 bif math:sqrt/1 bif math:atan2/2 bif math:pow/2 bif erlang:start_timer/3 bif erlang:send_after/3 bif erlang:cancel_timer/1 bif erlang:read_timer/1 bif erlang:make_tuple/2 bif erlang:append_element/2 bif erlang:make_tuple/3 bif erlang:system_flag/2 bif erlang:system_info/1 # New in R9C bif erlang:system_monitor/0 bif erlang:system_monitor/1 bif erlang:system_monitor/2 # Added 2006-11-07 bif erlang:system_profile/2 # End Added 2006-11-07 # Added 2007-01-17 bif erlang:system_profile/0 # End Added 2007-01-17 bif erlang:ref_to_list/1 bif erlang:port_to_list/1 bif erlang:fun_to_list/1 bif erlang:monitor/2 bif erlang:demonitor/1 bif erlang:demonitor/2 bif erlang:is_process_alive/1 bif erlang:error/1 error_1 bif erlang:error/2 error_2 bif erlang:raise/3 raise_3 bif erlang:get_stacktrace/0 bif erlang:is_builtin/3 ubif erlang:'and'/2 ubif erlang:'or'/2 ubif erlang:'xor'/2 ubif erlang:'not'/1 ubif erlang:'>'/2 sgt_2 ubif erlang:'>='/2 sge_2 ubif erlang:'<'/2 slt_2 ubif erlang:'=<'/2 sle_2 ubif erlang:'=:='/2 seq_2 ubif erlang:'=='/2 seqeq_2 ubif erlang:'=/='/2 sneq_2 ubif erlang:'/='/2 sneqeq_2 ubif erlang:'+'/2 splus_2 ubif erlang:'-'/2 sminus_2 ubif erlang:'*'/2 stimes_2 ubif erlang:'/'/2 div_2 ubif erlang:'div'/2 intdiv_2 ubif erlang:'rem'/2 ubif erlang:'bor'/2 ubif erlang:'band'/2 ubif erlang:'bxor'/2 ubif erlang:'bsl'/2 ubif erlang:'bsr'/2 ubif erlang:'bnot'/1 ubif erlang:'-'/1 sminus_1 ubif erlang:'+'/1 splus_1 # New operators in R8. These were the only operators missing. # erlang:send/2, erlang:append/2 and erlang:subtract/2 are now also # defined in erlang.erl, and the C names can be removed when all # internal references have been updated to the new ebif_... entries. bif erlang:'!'/2 ebif_bang_2 bif erlang:send/2 bif erlang:send/3 bif erlang:'++'/2 ebif_plusplus_2 bif erlang:append/2 bif erlang:'--'/2 ebif_minusminus_2 bif erlang:subtract/2 ubif erlang:is_atom/1 ubif erlang:is_list/1 ubif erlang:is_tuple/1 ubif erlang:is_float/1 ubif erlang:is_integer/1 ubif erlang:is_number/1 ubif erlang:is_pid/1 ubif erlang:is_port/1 ubif erlang:is_reference/1 ubif erlang:is_binary/1 ubif erlang:is_function/1 ubif erlang:is_function/2 ubif erlang:is_record/2 ubif erlang:is_record/3 bif erlang:match_spec_test/3 # # Bifs in ets module. # bif ets:all/0 bif ets:new/2 bif ets:delete/1 bif ets:delete/2 bif ets:delete_all_objects/1 bif ets:delete_object/2 bif ets:first/1 bif ets:is_compiled_ms/1 bif ets:lookup/2 bif ets:lookup_element/3 bif ets:info/1 bif ets:info/2 bif ets:last/1 bif ets:match/1 bif ets:match/2 bif ets:match/3 bif ets:match_object/1 bif ets:match_object/2 bif ets:match_object/3 bif ets:member/2 bif ets:next/2 bif ets:prev/2 bif ets:insert/2 bif ets:insert_new/2 bif ets:rename/2 bif ets:safe_fixtable/2 bif ets:slot/2 bif ets:update_counter/3 bif ets:select/1 bif ets:select/2 bif ets:select/3 bif ets:select_count/2 bif ets:select_reverse/1 bif ets:select_reverse/2 bif ets:select_reverse/3 bif ets:select_delete/2 bif ets:match_spec_compile/1 bif ets:match_spec_run_r/3 # # Bifs in os module. # bif os:putenv/2 bif os:getenv/0 bif os:getenv/1 bif os:getpid/0 bif os:timestamp/0 # # Bifs in the erl_ddll module (the module actually does not exist) # bif erl_ddll:try_load/3 bif erl_ddll:try_unload/2 bif erl_ddll:loaded_drivers/0 bif erl_ddll:info/2 bif erl_ddll:format_error_int/1 bif erl_ddll:monitor/2 bif erl_ddll:demonitor/1 # # Bifs in the re module # bif re:compile/1 bif re:compile/2 bif re:run/2 bif re:run/3 # # Bifs in lists module. # bif lists:member/2 bif lists:reverse/2 bif lists:keymember/3 bif lists:keysearch/3 bif lists:keyfind/3 # # Bifs for debugging. # bif erts_debug:disassemble/1 bif erts_debug:breakpoint/2 bif erts_debug:same/2 bif erts_debug:flat_size/1 bif erts_debug:get_internal_state/1 bif erts_debug:set_internal_state/2 bif erts_debug:display/1 bif erts_debug:dist_ext_to_term/2 bif erts_debug:instructions/0 # # Monitor testing bif's... # bif erts_debug:dump_monitors/1 bif erts_debug:dump_links/1 # # Lock counter bif's # bif erts_debug:lock_counters/1 # # New Bifs in R8. # bif code:get_chunk/2 bif code:module_md5/1 bif code:make_stub_module/3 bif code:is_module_native/1 # # New Bifs in R9C. # bif erlang:hibernate/3 bif error_logger:warning_map/0 # # New Bifs in R10B. # bif erlang:get_module_info/1 bif erlang:get_module_info/2 ubif erlang:is_boolean/1 bif string:to_integer/1 bif string:to_float/1 bif erlang:make_fun/3 bif erlang:iolist_size/1 bif erlang:iolist_to_binary/1 bif erlang:list_to_existing_atom/1 # # New Bifs in R12B-0 # ubif erlang:is_bitstring/1 ubif erlang:tuple_size/1 ubif erlang:byte_size/1 ubif erlang:bit_size/1 bif erlang:list_to_bitstring/1 bif erlang:bitstring_to_list/1 # # New Bifs in R12B-2 # bif ets:update_element/3 # # New Bifs in R12B-4 # bif erlang:decode_packet/3 # # New Bifs in R12B-5 # bif unicode:characters_to_binary/2 bif unicode:characters_to_list/2 bif unicode:bin_is_7bit/1 # # New Bifs in R13A. # bif erlang:atom_to_binary/2 bif erlang:binary_to_atom/2 bif erlang:binary_to_existing_atom/2 bif net_kernel:dflag_unicode_io/1 # # New Bifs in R13B-1 # bif ets:give_away/3 bif ets:setopts/2 # # New Bifs in R13B3 # bif erlang:load_nif/2 bif erlang:call_on_load_function/1 bif erlang:finish_after_on_load/2 # # New Bifs in R13B04 # bif erlang:binary_to_term/2 # # The binary match bifs (New in R14A - EEP9) # # # The searching/splitting/substituting thingies # ubif erlang:binary_part/2 ubif erlang:binary_part/3 bif binary:compile_pattern/1 bif binary:match/2 bif binary:match/3 bif binary:matches/2 bif binary:matches/3 bif binary:longest_common_prefix/1 bif binary:longest_common_suffix/1 bif binary:first/1 bif binary:last/1 bif binary:at/2 bif binary:part/2 binary_binary_part_2 bif binary:part/3 binary_binary_part_3 bif binary:bin_to_list/1 bif binary:bin_to_list/2 bif binary:bin_to_list/3 bif binary:list_to_bin/1 bif binary:copy/1 bif binary:copy/2 bif binary:referenced_byte_size/1 bif binary:encode_unsigned/1 bif binary:encode_unsigned/2 bif binary:decode_unsigned/1 bif binary:decode_unsigned/2 bif erlang:nif_error/1 bif erlang:nif_error/2 # # Helpers for unicode filenames # bif prim_file:internal_name2native/1 bif prim_file:internal_native2name/1 bif prim_file:internal_normalize_utf8/1 bif prim_file:is_translatable/1 bif file:native_name_encoding/0 # # New in R14B04. # bif erlang:check_old_code/1 # # New in R15B # bif erlang:universaltime_to_posixtime/1 bif erlang:posixtime_to_universaltime/1 # # New in R15B01 # # The dtrace BIF's are always present, but give dummy results if dynamic trace is not enabled in the build bif erlang:dt_put_tag/1 bif erlang:dt_get_tag/0 bif erlang:dt_get_tag_data/0 bif erlang:dt_spread_tag/1 bif erlang:dt_restore_tag/1 # These are dummies even with enabled dynamic trace unless vm probes are enabled. # They are also internal, for dtrace tags sent to the VM's own drivers (efile) bif erlang:dt_prepend_vm_tag_data/1 bif erlang:dt_append_vm_tag_data/1 # # New in R16B. # bif erlang:prepare_loading/2 bif erlang:finish_loading/1 bif erlang:insert_element/3 bif erlang:delete_element/2 bif erlang:binary_to_integer/1 bif erlang:binary_to_integer/2 bif erlang:integer_to_binary/1 bif erlang:list_to_integer/2 bif erlang:float_to_binary/1 bif erlang:float_to_binary/2 bif erlang:binary_to_float/1 bif io:printable_range/0 bif os:unsetenv/1 # # New in 17.0 # bif re:inspect/2 ubif erlang:is_map/1 ubif erlang:map_size/1 bif maps:to_list/1 bif maps:find/2 bif maps:get/2 bif maps:from_list/1 bif maps:is_key/2 bif maps:keys/1 bif maps:merge/2 bif maps:new/0 bif maps:put/3 bif maps:remove/2 bif maps:update/3 bif maps:values/1 bif erts_internal:cmp_term/2 bif ets:take/2 # # New in 17.1 # bif erlang:fun_info_mfa/1 # New in 18.0 # bif erlang:get_keys/0 # Hash Array Mappped Trie bif hashmap:put/3 bif hashmap:update/3 bif hashmap:remove/2 bif hashmap:info/1 bif hashmap:from_list/1 bif hashmap:new/0 bif hashmap:merge/2 # # Obsolete # bif erlang:hash/2