-
Notifications
You must be signed in to change notification settings - Fork 4
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
* freeze * update freeze json
- Loading branch information
Showing
2 changed files
with
15 additions
and
5 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,15 @@ | ||
{ | ||
"hash": "62286ea7d715c19174e66c7ae8ef8865", | ||
"result": { | ||
"engine": "knitr", | ||
"markdown": "# Changelog\n\n## Unreleased\n\n### Added\n\n- Arguments can be (mutable) typed slices such as `&[Rbool]`, `&mut [Rint]` etc. [[#790]](https://github.com/extendr/extendr/pull/790)\n- New optional `faer` feature which enables conversion between `faer` matrix and `RMatrix<f64>` [[#706]](https://github.com/extendr/extendr/pull/706)\n- Adds `TryFrom<Robj>` and `<TryFrom<&Robj>` for `impl` blocks marked with `#[extendr]` macro allowing falliable conversion to `&Self` `&mut Self`\n- Adds `From<T> for Robj` for impl blocks marked with `#[extendr]` macro\n- The new `ExpectedExternalNonNullPtr` error variant provides a more informative error when a null pointer is accessed\n- `RArray::data_mut` provides a mutable slice to the underlying array data [[#657]](https://github.com/extendr/extendr/pull/657)\n- Implements the `Attributes` trait for all R vector wrapper structs (e.g. `Integers` , `Doubles`, `Strings`, etc.), allowing for easy access and setting of the attributes of an R object [[#745]](https://github.com/extendr/extendr/pull/745). This comes with breaking changes. See below.\n- feature `non-api` that gives access to non-API items; Requires compile-time generation of bindings\n[[#754]](https://github.com/extendr/extendr/pull/754)\n- `TryFrom<&Robj>` for `StrIter`, `HashMap<K, Robj>` for `K = String` and `K = &str` [[#759]](https://github.com/extendr/extendr/pull/759)\n\n### Changed\n\n- [_Potentially breaking_]: `RArray::from_parts` no longer requires a pointer to the underlying data\n vector [[#657]](https://github.com/extendr/extendr/pull/657)\n- `#[extendr(use_try_from = true)` is now the default setting, therefore the option `use_try_from` has been removed [[#759]](https://github.com/extendr/extendr/pull/759)\n\n#### Breaking changes\n\n- R-devel Non-API changes:\n - R's C API is being formalized. While the changes are formalized, non-API functions are hidden behind a feature flag to prevent removal from CRAN.\n - Non-API [changes are in flux in R-devel](https://github.com/r-devel/r-svn/blob/71afe1e304b11f7febaa536e96817c63a7c1c7ab/src/library/tools/R/sotools.R#L564), however, CRAN has set a July 9th date to remove any package that uses non-API functions. This includes almost every extendr based package on CRAN.\n - See [[Rd] clarifying and adjusting the C API for R](https://stat.ethz.ch/pipermail/r-devel/2024-June/083449.html)\n - [nonAPI.txt](https://github.com/r-devel/r-svn/blob/f36c203d3a53a74d56a81d4f97a68d24993e0652/src/library/tools/R/sotools.R#L564) functions are hidden behind the `non-api` feature flag.\n - Removed from default include (but may not be limited to):\n - `global_var()`, `local_var()`, `base_env()`, various `Environment`, `Function`, `Primitive`, and `Promise` methods.\n- `Attributes` trait now returns a mutable reference\n to `Self`. [[#745]](https://github.com/extendr/extendr/pull/745). Previously `.set_attrib()` would modify an object in\n place, and then return an untyped owned pointer (Robj). Instead, now we return `&mut Self`.\n- In `AltRep` the `unserialize_ex`, `set_parent`, `set_envflags` are\nnow hidden behind the feature flag `non-api`. Also, `Promise::from_parts` is marked as non-API.\n- Floating point numbers with decimal part can no longer be converted to integer types via\n rounding [[#757]](https://github.com/extendr/extendr/pull/757)\n- You can no longer create an `Robj` from a reference `&T`, where `T` is an `extendr`-impl. [[#759]](https://github.com/extendr/extendr/pull/759)\n- You can no longer use `from_robj`, as the trait `FromRobj` as been removed. Instead, use `try_from`.\n- It is no longer possible to access an R integer vector as a `&[u32]` [[#767]](https://github.com/extendr/extendr/pull/767)\n\n### Fixed\n\n- returning `&Self` or `&mut Self` from a method in an `#[extendr]`-impl would\nresult in unintended cloning [[#614]](https://github.com/extendr/extendr/issues/614)\n- `TryFrom<&Robj>` and `FromRobj` for integer scalars now correctly handles conversions\n from `f64` [[#757]](https://github.com/extendr/extendr/pull/757)\n\n## 0.6.0\n\n### Added\n\n- `ALTLIST` support allowing users to represent structs as R list objects\n- [**either**] `TryFrom<&Robj> for Either<T, R>` and `From<Either<T, R>> for Robj` if `T` and `R` are themselves implement these traits. This unblocks scenarios like accepting any numeric vector from R via `Either<Integers, Doubles>` without extra memory allocation [[#480]](https://github.com/extendr/extendr/pull/480)\n- `PartialOrd` trait implementation for `Rfloat`, `Rint` and `Rbool`. `Rfloat` and `Rint` gained `min()` and `max()` methods [[#573]](https://github.com/extendr/extendr/pull/573)\n- `use_rng` option for the `extendr` attribute macro, which enables the use of\nrandom number sampling methods from R, e.g. `#[extendr(use_rng = true)` [[#476]](https://github.com/extendr/extendr/pull/476)\n- `[T; N]` conversions to `Robj` [[#594]](https://github.com/extendr/extendr/pull/594/)\n- `ToVectorValue` for `Rfloat`, `Rint` and `Rbool` [[#593]](https://github.com/extendr/extendr/pull/593)\n- `TryFrom<_>` on `Vec<_>` for `Integers` (`i32`), `Complexes` (`c64`), `Doubles` (`f64`), and `Logicals` (`bool` / `i32`). [[#593]](https://github.com/extendr/extendr/pull/593)\n- `Rstr` can now be constructed from `Option<String>` [[#630]](https://github.com/extendr/extendr/pull/630)\n\n### Fixed\n\n- You can now create `ArrayView1` from `&Robj` as well as `Robj`\n [[#501]](https://github.com/extendr/extendr/pull/501)\n- Raw literals from Rust can be used for function and argument names. e.g.\n `fn r#type()` in Rust is converted to `type()` in R.\n [[#531]](https://github.com/extendr/extendr/pull/531)\n- Fix memory leaks on errors and panics\n [[#555]](https://github.com/extendr/extendr/pull/555)\n- Fixed error when collecting too many objects into `List`, etc.\n [[#540]](https://github.com/extendr/extendr/pull/540)\n\n## 0.4.0\n\n### Added\n\n- Support for setting the default value of arguments to struct methods, using `#[default = \"...\"]` [[#436]](https://github.com/extendr/extendr/pull/436)\n- [**ndarray**] `TryFrom<&Robj>` for `ArrayView1<T>` and `ArrayView2<T>`, where `T` is `i32`, `f64`, `c64`, `Rint`, `Rfloat`, `Rcplx`, `Rstr`, `Rbool` [[#443]](https://github.com/extendr/extendr/pull/443)\n- `Debug` trait implementation for `Rcplx` and `Complexes` [[#444]](https://github.com/extendr/extendr/pull/444)\n- `TryFrom<Robj>`, `From<Option<T>>`, `Into<Option<T>>` and their variations for `Nullable<T>` [[#446]](https://github.com/extendr/extendr/pull/446)\n- `Nullable<T>::map()` that acts on not null value and propagates `NULL` [[#446]](https://github.com/extendr/extendr/pull/446)\n- [**ndarray**] Conversion from owned arrays (ie `ndarray::Array`) into `Robj` [[#450]](https://github.com/extendr/extendr/pull/450)\n- [**ndarray**][**docs**] Documentation for the `robj_ndarray` module [[#450]](https://github.com/extendr/extendr/pull/450)\n- `Sum` for scalars like `Rint`, `Rfloat` and `Rcplx`, which accept `Iterator<Item = &Rtype>` [[#454]](https://github.com/extendr/extendr/pull/454)\n- A new `collect_rarray` method that can be used to collect arbitrary iterables into an R matrix\n [[#466]](https://github.com/extendr/extendr/pull/466)\n- [**docs**] Documentation for `RArray::new_matrix()` [[#466]](https://github.com/extendr/extendr/pull/466)\n\n### Changed\n\n- [**docs**] Use bindgen on docs.rs, to ensure newer R features will still be documented [[#426]](https://github.com/extendr/extendr/pull/426)\n- Unify the tagging mechanism used to identify Rust types inside `ExternalPtr`. This allows `#[extendr]`-annotated functions to directly accept `ExternalPtr<MyStruct>` as well as `MyStruct` [[#433]](https://github.com/extendr/extendr/pull/433)\n- `Nullable<T>` is now part of `extendr_api::prelude` [[#446]](https://github.com/extendr/extendr/pull/446)\n- Bump the Rust edition from 2018 to 2021 [[#458]](https://github.com/extendr/extendr/pull/458)\n- When converted to `STRSXP`, strings are now correctly marked as UTF-8 even on non-UTF-8 platforms (i.e., R < 4.2 on Windows), which shouldn't matter for most of the users [[#467]](https://github.com/extendr/extendr/pull/467)\n\n### Fixed\n\n- The R CMD check note \"Found non-API calls to R\" by moving `use extendr_engine;` inside `test!` macro [[#424]](https://github.com/extendr/extendr/pull/424)\n- The clippy lint \"this public function might dereference a raw pointer but is not marked `unsafe`\" [[#451]](https://github.com/extendr/extendr/pull/451)\n- A bug where importing a submodule via `use some_module;` inside the `extendr_module!` macro wasn't working [[#469]](https://github.com/extendr/extendr/pull/469)\n\n## 0.3.0\n\n### Added\n\n- `Function` type that wraps an R function, which can be invoked using the `call()` method. [[#188]](https://github.com/extendr/extendr/pull/188)\n- `pairlist!` macro for generating `Pairlist` objects, e.g. for use in function calls. [[#202]](https://github.com/extendr/extendr/pull/202)\n- `use_try_from` option for the `extendr` macro, which allows the use of any type that implements `TryInto<Robj>`/`TryFrom<Robj>`, e.g. `#[extendr(use_try_from = true)]`. [[#222]](https://github.com/extendr/extendr/pull/222)\n- Support for R version 4.2. [[#235]](https://github.com/extendr/extendr/issues/235)\n- `call!` macro, which can be used to call an R function whose name is provided as a string. [[#238]](https://github.com/extendr/extendr/pull/238)\n- Large Rust integer types (`u32`, `u64` and `i64`) can now be converted to R's `numeric` type, which can handle large integer values. [[#242]](https://github.com/extendr/extendr/pull/242)\n- `TryFrom<Robj>` for a large number of Rust types. [[#249]](https://github.com/extendr/extendr/pull/249), [[#258]](https://github.com/extendr/extendr/pull/258)\n- Support for `ALTREP`. [[#250]](https://github.com/extendr/extendr/pull/250), [[#274]](https://github.com/extendr/extendr/pull/274)\n- `S4` struct, which wraps an S4 class in R. [[#268]](https://github.com/extendr/extendr/pull/268)\n- [**ndarray**] Implemented `TryFrom<&ArrayBase> for Robj`, allowing `extendr`-annotated functions to return Arrays from the `ndarray` crate and have them automatically converted to R arrays. [[#275]](https://github.com/extendr/extendr/pull/275)\n- `Rint`, `Rdouble`, `Rbool` and `Rcplx`: `NA`-aware wrappers for scalar elements of R vectors [[#274]](https://github.com/extendr/extendr/pull/274), [[#284]](https://github.com/extendr/extendr/pull/284), [[#301]](https://github.com/extendr/extendr/pull/301), [[#338]](https://github.com/extendr/extendr/pull/338), [[#350]](https://github.com/extendr/extendr/pull/350)\n- `Integers`, `Doubles`, `Strings`, `Logicals` and `Complexes`: wrappers for R vectors that deref to slices of the above types (`RInt` etc). [[#274]](https://github.com/extendr/extendr/pull/274), [[#284]](https://github.com/extendr/extendr/pull/284), [[#301]](https://github.com/extendr/extendr/pull/301), [[#338]](https://github.com/extendr/extendr/pull/338), [[#350]](https://github.com/extendr/extendr/pull/350)\n- `ExternalPtr`, a wrapper class for creating R objects containing any Rust object. [[#260]](https://github.com/extendr/extendr/pull/260)\n- [**graphics**] Support for R graphics and graphics devices. The `graphics` feature flag is disabled by default. [[#279]](https://github.com/extendr/extendr/pull/279), [[#360]](https://github.com/extendr/extendr/pull/360), [[#373]](https://github.com/extendr/extendr/pull/373), [[#379]](https://github.com/extendr/extendr/pull/379), [[#380]](https://github.com/extendr/extendr/pull/380), [[#389]](https://github.com/extendr/extendr/pull/389)\n- `Deref` implementation for vector types (Rint/Rfloat/Rbool/Rstr/Robj) to appropriately typed Rust slices. [[#327]](https://github.com/extendr/extendr/pull/327)\n- `default` option for `extendr`-annotated functions, allowing them to have default values, e.g. `fn fred(#[default=\"NULL\"] x: Option<i32>) { }`. [[#334]](https://github.com/extendr/extendr/pull/334)\n- `r_name` option for `extendr`-annotated functions, allowing the generated R function to have a different name. e.g.\n\n ```rust\n #[extendr(\n use_try_from = true,\n r_name = \"test.rename.rlike\",\n mod_name = \"test_rename_mymod\"\n )]\n fn test_rename() { }\n ```\n\n [[#335]](https://github.com/extendr/extendr/pull/335)\n- `serde::Serialize` implementation for R types. [[#305]](https://github.com/extendr/extendr/pull/305), [[#355]](https://github.com/extendr/extendr/pull/355)\n- `Rany` type and the `as_any` conversion method. [[#320]](https://github.com/extendr/extendr/pull/320)\n- `std::fmt::Debug` implementation for wrapper types. [[#345]](https://github.com/extendr/extendr/pull/345)\n- `#[derive(TryFromRobj)` and `#[derive(IntoRobj)]` which provide an automatic conversion from and to any custom Rust struct and `Robj` [[#347]](https://github.com/extendr/extendr/pull/347)\n- `[[` operator that works with Rust classes. Its behavior is identical to that of the `$` operator. [[#359]](https://github.com/extendr/extendr/pull/359)\n- `Load` and `Save`, traits that, once implemented, provide the ability to load and save R data in the RDS format. These traits are implemented for all `Robj`. [[#363]](https://github.com/extendr/extendr/pull/363)\n- `Dataframe` wrapper struct. [[#393]](https://github.com/extendr/extendr/pull/393)\n- `IntoDataFrame` trait, which can be derived to allow arbitrary Rust structs to be converted to rows of a data frame. [[#393]](https://github.com/extendr/extendr/pull/393)\n\n### Changed\n\n- `Strings::elt` now returns an `Rstr`. [[#345]](https://github.com/extendr/extendr/pull/345)\n- Renamed `RType` to `Rtype`. [[#345]](https://github.com/extendr/extendr/pull/345)\n- Wrapper types now contain `Robj` fields. [[#190]](https://github.com/extendr/extendr/pull/190)\n- The `R!` macro now accepts strings that contain R code. This is now the recommended way of using the macro, especially with raw strings e.g.\n\n ```rust\n R!(r#\"\n print(\"hello\")\n \"#);\n ```\n\n [[#203]](https://github.com/extendr/extendr/pull/203)\n- Improved error handling for `<&str>::try_from(Robj)`. [[#226]](https://github.com/extendr/extendr/pull/226)\n- `SymPair::sym_pair()` now returns `(Option<Robj>, Robj)`. [[#225]](https://github.com/extendr/extendr/pull/225)\n- More detailed error messages when converting Rust integer types to R. [[#243]](https://github.com/extendr/extendr/pull/243)\n- `Character` is now called `Rstr`. [[#273]](https://github.com/extendr/extendr/pull/273)\n- [**ndarray**] Bumped `ndarray` to 0.15.3. Under [RFC 1977](https://github.com/rust-lang/rfcs/pull/1977) this is a \"public dependency\" change, and therefore can be considered a breaking change, as consumers of `extendr` that use an older version of `ndarray` will no longer be compatible until they also bump `ndarray` to a compatible version. [[#275]](https://github.com/extendr/extendr/pull/275)\n- `IsNA` trait has been renamed to `CanBeNA`. [[#288]](https://github.com/extendr/extendr/pull/288)\n- `list!` has been rewritten, and now returns a `List` struct. [[#303]](https://github.com/extendr/extendr/pull/303)\n\n### Deprecated\n\n- Calling the `R!` macro with non-string types (e.g. `R!(1)`) is now deprecated. [[#203]](https://github.com/extendr/extendr/pull/203)\n\n### Removed\n\n- `Real`, `Int`, `Bool` and the redundant trait `SliceIter`, which should be replaced with `Rdouble`, `Rint`, and `Rbool` respectively. [[#304]](https://github.com/extendr/extendr/pull/304), [[#338]](https://github.com/extendr/extendr/pull/338)\n- `TryFrom` conversions between `Robj` and `HashMap` for consistency. `List::into_hashmap()` and `List::from_hashmap()` should be used instead. [[#254]](https://github.com/extendr/extendr/pull/254)\n\n## extendr 0.2.0\n\n- Added contributing guidelines and code of conduct.\n\n- Made use of ndarray optional.\n\n- Made #[extendr] calls panic and thread safe.\n\n- Added NA handling to the #[extendr] macro.\n\n- Added a separate extendr-engine crate that is needed when calling R from Rust.\n\n- Wrapper classes for pairlists, environment, raw, symbols and others.\n\n- More iterator support.\n\n- Operators index, slice, dollar, double_colon, +, -, * and /`.\n\n- Debug printing support expanded to use wrappers.\n\n- Conversion of Robj to wrapper types.\n\n- Multithreaded support - allows multithreaded testing using a recursive spinlock.\n\n- Bool type extended and implemented using TRUE, FALSE and NA_BOOLEAN.\n\n- Optional parameters to support NA handing.\n\n- Errors thrown if input parameters without Option are NA.\n\n- Harmonising of function names into integer, real, logical, symbol, raw, list, pairlist and env.\n\n- Refactored robj code into several source files.\n\n- Many functions updated to use generic types.\n\n- R! macro for executing R source code.\n\n- call! macro to call R code.\n\n- sym! macro to generate symbols.\n\n- Simplification of vector generation using collect_robj and ToVectorValue.\n\n- Added array types `[1, 2, 3]` as `Robj::from` targets.\n\n- Macros now mostly return errors.\n\n## extendr 0.1.10\n\n- Fix build on Windows and MacOS.\n", | ||
"supporting": [], | ||
"filters": [ | ||
"rmarkdown/pagebreak.lua" | ||
], | ||
"includes": {}, | ||
"engineDependencies": {}, | ||
"preserve": {}, | ||
"postProcess": true | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters