Skip to content

Commit

Permalink
Freeze changelog (#17)
Browse files Browse the repository at this point in the history
* freeze

* update freeze json
  • Loading branch information
kbvernon authored Jun 29, 2024
1 parent ea02d66 commit 40b8678
Show file tree
Hide file tree
Showing 2 changed files with 15 additions and 5 deletions.
15 changes: 15 additions & 0 deletions _freeze/changelog/execute-results/html.json
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
}
}
5 changes: 0 additions & 5 deletions changelog.qmd
Original file line number Diff line number Diff line change
@@ -1,7 +1,3 @@
---
execute:
freeze: false
---

```{r}
#| echo: false
Expand All @@ -20,4 +16,3 @@ txt <- readLines(changelog_url)
cat(txt, sep = "\n")
```

0 comments on commit 40b8678

Please sign in to comment.