Skip to content

Commit

Permalink
Merge branch 'lemenkov/expose_nif_version' into maint
Browse files Browse the repository at this point in the history
OTP-12298

* lemenkov/expose_nif_version:
  Expose NIF version
  • Loading branch information
brucify committed Nov 7, 2014
2 parents 9884666 + 1bc59d6 commit 983a39a
Show file tree
Hide file tree
Showing 6 changed files with 18 additions and 2 deletions.
5 changes: 5 additions & 0 deletions erts/doc/src/erlang.xml
Original file line number Diff line number Diff line change
Expand Up @@ -6144,6 +6144,11 @@ ok
<seealso marker="#system_info_multi_scheduling">erlang:system_info(multi_scheduling)</seealso>, and
<seealso marker="#system_info_schedulers">erlang:system_info(schedulers)</seealso>.</p>
</item>
<tag><c>nif_version</c></tag>
<item>
<p>Returns a string containing the erlang NIF version
used by the runtime system. It will be on the form "&lt;major ver&gt;.&lt;minor ver&gt;".</p>
</item>
<tag><marker id="system_info_otp_release"><c>otp_release</c></marker></tag>
<item>
<p>Returns a string containing the OTP release number of the
Expand Down
8 changes: 8 additions & 0 deletions erts/emulator/beam/erl_bif_info.c
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@
#include "erl_process.h"
#include "error.h"
#include "erl_driver.h"
#include "erl_nif.h"
#include "bif.h"
#include "big.h"
#include "erl_version.h"
Expand Down Expand Up @@ -2459,6 +2460,13 @@ BIF_RETTYPE system_info_1(BIF_ALIST_1)
ERL_DRV_EXTENDED_MINOR_VERSION);
hp = HAlloc(BIF_P, 2*n);
BIF_RET(buf_to_intlist(&hp, buf, n, NIL));
} else if (ERTS_IS_ATOM_STR("nif_version", BIF_ARG_1)) {
char buf[42];
int n = erts_snprintf(buf, 42, "%d.%d",
ERL_NIF_MAJOR_VERSION,
ERL_NIF_MINOR_VERSION);
hp = HAlloc(BIF_P, 2*n);
BIF_RET(buf_to_intlist(&hp, buf, n, NIL));
} else if (ERTS_IS_ATOM_STR("smp_support", BIF_ARG_1)) {
#ifdef ERTS_SMP
BIF_RET(am_true);
Expand Down
4 changes: 2 additions & 2 deletions erts/emulator/test/driver_SUITE.erl
Original file line number Diff line number Diff line change
Expand Up @@ -1204,8 +1204,8 @@ check_si_res(["sched_thrs", Value]) ->
?line Value = integer_to_list(erlang:system_info(schedulers));

%% Data added in 3rd version of driver_system_info() (driver version 1.5)
check_si_res(["emu_nif_vsn", _Value]) ->
true;
check_si_res(["emu_nif_vsn", Value]) ->
?line Value = erlang:system_info(nif_version);

%% Data added in 4th version of driver_system_info() (driver version 3.1)
check_si_res(["dirty_sched", _Value]) ->
Expand Down
1 change: 1 addition & 0 deletions erts/preloaded/src/erlang.erl
Original file line number Diff line number Diff line change
Expand Up @@ -2252,6 +2252,7 @@ tuple_to_list(_Tuple) ->
(modified_timing_level) -> integer() | undefined;
(multi_scheduling) -> disabled | blocked | enabled;
(multi_scheduling_blockers) -> [PID :: pid()];
(nif_version) -> string();
(otp_release) -> string();
(port_count) -> non_neg_integer();
(port_limit) -> pos_integer();
Expand Down
1 change: 1 addition & 0 deletions lib/runtime_tools/src/system_information.erl
Original file line number Diff line number Diff line change
Expand Up @@ -371,6 +371,7 @@ erlang_system_info() ->
logical_processors_online,
logical_processors_available,
driver_version,
nif_version,
emu_args,
ethread_info,
beam_jump_table,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9720,6 +9720,7 @@
{logical_processors_online,4},
{logical_processors_available,4},
{driver_version,"2.1"},
{nif_version,"1.1"},
{taints,[]}]},
{erts_compile_info,
[{ldflags,[]},
Expand Down

0 comments on commit 983a39a

Please sign in to comment.