anchor.diff:  main([UlongSizeT, Filename]) ->
       %% Round up all configuration options
       Version = (catch erlang:system_info(nif_version)),
  -    Opts = version_opts(Version) ++ ulong_opts(UlongSizeT) ++ dirty_scheduler_opts(Version),
  +    Opts = version_opts(Version) ++ ulong_opts(UlongSizeT),
       %% Generate API list
       Entries = api_list(Opts),
       %% Generate Rust code
  
positive.code:                         nif_2_14, nif_2_15, nif_2_16];
  version_opts(Ver) ->
      io:format(
          "This OTP release uses the unsupported Erlang NIF version ~p.\n\n"
          "Please report at https://github.com/rusterlium/rustler.\n",
          [Ver]
      ),
      halt(1).
  
  ulong_opts("4") -> [{ulongsize, 4}];
  ulong_opts("8") -> [{ulongsize, 8}].
  
  
  dirty_scheduler_opts("2.7") -> dirty_scheduler_opts();
  dirty_scheduler_opts("2.8") -> dirty_scheduler_opts();
  dirty_scheduler_opts("2.9") -> dirty_scheduler_opts();
  dirty_scheduler_opts("2.10") -> dirty_scheduler_opts();
  dirty_scheduler_opts(_) -> []. % dirty schedulers non-optional in 2.11
  
  dirty_scheduler_opts() ->
      case catch erlang:system_info(dirty_cpu_schedulers) of
                                   _X when is_integer(_X) -> [dirty_schedulers, dirty_scheduler_opt];
                                   _ -> []
                               end.
  
  
  -spec api_list([api_opt()]) -> [term()].
  api_list(Opts) -> [
  
negative.code:     nif_2_11               .  % general 2.11 API additions
  
  
  -define(OLDEST_SUPPORTED_VERSION, "2.14").
  
  version_opts("2.14") -> [{major,2}, {minor,14}, exception, getenv, time,   % erlang 21.0
                          dirty_scheduler_opt, nif_2_11, nif_2_12, nif_2_13,
                          nif_2_14];
  