chore(deps): update dependency rustler to ~> 0.37
This PR contains the following updates:
| Package | Type | Update | Change |
|---|---|---|---|
| rustler (source) | prod | minor | ~> 0.25 -> ~> 0.37 |
Release Notes
rusterlium/rustler (rustler)
v0.37.1
Fixed
- Fix required Elixir version (>= 1.15) in
rustler_mix - Fix missing
chdirinrustler_mixwhen compiling in a subdirectory (#706)
v0.37.0
Added
- Add
staticlibfeature to compile withoutnif_initand add{pkg}_nif_initsymbol (#688) - Add
IntoIteratortoOwnedBinary(#702, thanks aDifferentJT)
Fixed
- Set
ErlNifEntry.min_ertsto a placeholder value (#703)
Changed
- Refactor build logic to remove TOML dependency (#691)
- Use
inlineon commonly used functions (#475, thanks @joshuataylor) - Make
EnifAllocatoravailable even if theallocatorfeature is not enabled
v0.36.2
Added
-
std::hash::Hashimplementation for atoms (#695)
Fixed
v0.36.1
No changes in the Rust code, only rustler_mix adjustments and dependency
updates.
Added
- Support for Erlang-style NIF module names (
:module_name) (#682)
Fixed
- Retrieve the newest Rustler version without additional dependencies (#682, fixes #680)
- Adjust
.gitignorehandling to match the new workspace style
Changed
- Only depend on
libloadingon non-Windows systems (#677)
v0.36.0
Added
- Create a workplace
Cargo.tomlfile withmix rustler.new(#672)
Fixed
- Some derive macros failed when only
decodewas requested (#676)
Removed
- The linkage override for macOS is not needed anymore and has been removed from the template (#672)
v0.35.1
Fixed
- Fix clippy lints in
rustler_codegen(#671) - Adjust
Rustlermacros to not produce warnings on Elixir 1.18 (#670)
v0.35.0
Added
- The resource type name can be overridden with
#[register_impl(name = "...")](#638) - Floats can be decoded from integers (#641, fixes #603)
- Resource types can implement and use dynamic calls on NIF version 2.16 (#635)
-
EncoderandDecoderimplementations forBox<T>(#644) -
Referencetype andenv.make_ref()function (#657)
Fixed
- The optional
registerattribute on#[register_impl]works as advertised now (#638) - API functions for Windows are correctly assigned for NIF version 2.15 and above (#635)
- Panics in encoding the result of NIF function are caught (#656)
- Reverted change to "recompile if the NIF library is changed/deleted" (#654, fixes #651)
Changed
- The special ok/error handling for atoms in serde is now restricted to variant names (#639)
-
rustler_sysas a separate library is merged intorustler::sysand will not be released independently ofrustleranymore (#653)
v0.34.0
Added
- Resource type registration has been refactored to eventually remove the
rustler::resource!macro (#617, necessary due to a pending deprecation of a Rust feature, #606) - Resources can (and should) now explicitly implement the new
Resourcetrait and provide a customdestructorfunction that is run beforedropand receives anEnvparameter (#617) - Process monitoring via resources can now be used on resource types that
implement the
Resource::downcallback (#617) - Resource implementation and registration helper attribute (#627)
Fixed
- Unwinding in the
on_loadcallback is now caught and leads to a panic (#617)
Changed
- NIF implementations are now discovered automatically and the respective
argument of
rustler::init!is ignored (#613) - The
derivefeature flag is now ignored and its functionality unconditionally enabled (#621)
v0.33.0
Added
- Optional support for using Erlang's allocator as Rust's global allocator (#580).
- Comparison functions for PIDs (#611).
- Conversions from and to Rust paths (
PathBufandPath) (#608).
Fixed
Changed
- Drop usage of
lazy_staticin favour ofstd::sync::OnceLock. This change raises the minimal supported Rust version to 1.70. - Drop obsolete and incorrect
Rustler.nif_versionsfunction.
Removed
- The old macros
rustler_export_nifs!,rustler::rustler_atoms!andresource_struct_init!have been removed (#604). They had been deprecated since version 0.22.0.
v0.32.1
Added
- Map iterators are now DoubleEndedIterators
(#598), thus allowing being iterated in reverse using
.rev() -
Env::is_process_aliveandLocalPid::is_alive(#599) - Encoding and decoding of 128 bit integers (#600)
- Optional codec for
num_bigint::BigIntusing thebig_integerfeature (#601) - Add experimental
serdesupport derived fromserde_rustler
Changed
- Adjust C char types to use the proper FFI type (#592)
- Allow arbitrary (ASCII) NIF function names (#593, idea and initial implementation by @KoviRobi)
Removed
-
rustler_bigintis replaced by a feature flag and the wrapper is not necessary anymore (#601)
v0.31.0
Added
- Support for generic types in derive macros (#574)
- New
is_floatandis_integermethods on terms (#581)
Fixed
- Finalized making
:rustlera compile-time-only dependency (#570) - Make
get_typework as documented for 0.30 (#581) - Tests on ARM64 (#584)
- Error messages in codegen (#579)
Changed
- Use
impl Encoderon more functions (in particular onsend) (#572) - The generated atom modules for derived structs are now called
rustler_atoms_{struct_name_in_snakecase}to silence warnings (#585)
Removed
- Support for
initmacroinrustler-sys(v2.3.2, #589)
v0.30.0
Added
Changed
- Deprecate
:rustler_cratesproject configuration - Mark
use Rustlermodule configuration as compile-time - Bump Rust edition to 2021
- Make
:rustlera compile-time-only dependency (#516, #559) - Use
enif_term_typeto implementTerm::get_type(#538). Please check theUPGRADEdocumentation for necessary code changes. - Raise default NIF version to 2.15
Removed
- Support for
RUSTLER_NIF_VERSION, NIF version requirements have to be set via features now
v0.29.1
Fixed
- Exclude directories from external resources for compatibility with Elixir 1.15 (#548, thanks @adrienmo)
- Fix
NifTaggedEnumderivedEncoderimpl for named-field variants (#547, thanks @dylanburati) - Remove
cfg!directives in build.rs causing cross-compilation to fail (#555, thanks @fabriziosestito)
Configuration
📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
- [ ] If you want to rebase/retry this PR, check this box
This PR was generated by Mend Renovate. View the repository job log.
⚠ Artifact update problem
Renovate failed to update an artifact related to this branch. You probably do not want to merge this PR as-is.
♻ Renovate will retry this branch, including artifacts, only when one of the following happens:
- any of the package files in this branch needs updating, or
- the branch becomes conflicted, or
- you click the rebase/retry checkbox if found above, or
- you rename this PR's title to start with "rebase!" to trigger it manually
The artifact failure details are included below:
File name: mix.lock
Command failed: install-tool elixir v1.16.2
⚠️ Artifact update problem
Renovate failed to update an artifact related to this branch. You probably do not want to merge this PR as-is.
♻ Renovate will retry this branch, including artifacts, only when one of the following happens:
- any of the package files in this branch needs updating, or
- the branch becomes conflicted, or
- you click the rebase/retry checkbox if found above, or
- you rename this PR's title to start with "rebase!" to trigger it manually
The artifact failure details are included below:
File name: mix.lock
Command failed: install-tool elixir v1.19.1