|
| 1 | +# parabar 1.3.0 |
| 2 | + |
| 3 | +## Added |
| 4 | +- Update `AsyncBackend` to allow forceful stopping of the cluster. This is |
| 5 | + controlled by the package option `stop_forceful`, which, when set to `TRUE`, |
| 6 | + permits the backend to stop the cluster even if tasks are running or if tasks |
| 7 | + have finished but their results have not yet been read into the main session. |
| 8 | + The stopping logic is now based on the newly added class `SessionState`. |
| 9 | + Closes [#59](https://github.com/mihaiconstantin/parabar/issues/59). |
| 10 | +- Add `SessionState` class to easily check if an asynchronous backend is ready |
| 11 | + for certain operations. |
| 12 | +- Add tests for the `SessionState` and `TaskState` classes, and other |
| 13 | + improvements to the existing tests. |
| 14 | +- Introduce "pseudo-tests" for `SyncBackend` and `AsyncBackend` finalizers. |
| 15 | + These tests don't perform real assertions but instead verify that finalizers |
| 16 | + are invoked when backend instances are garbage collected. As of now, there |
| 17 | + appears to be no reliable way to programmatically capture conditions handled |
| 18 | + within a finalizer triggered by manual `gc()` invocation. |
| 19 | + |
| 20 | +## Changed |
| 21 | +- Remove `SyncBackend` and `AsyncBackend` destructors in favour of `R` |
| 22 | + finalizers registered via `base::reg.finalizer`. |
| 23 | +- Rename `Service` to `BackendService` for clarity and consistency. While the |
| 24 | + name `Service` makes sense in the context of the `parabar` package, it can be |
| 25 | + confusing when using `parabar` in conjunction with other packages (e.g., in |
| 26 | + the context of the `powerly` package). The new name `BackendService` is |
| 27 | + hopefully more descriptive and less likely to clash with other packages. |
| 28 | +- Update `comparison.Rmd` vignette to refresh the comparison between `parabar` |
| 29 | + and `pbapply` packages. |
| 30 | +- Update design diagram and improved its readability and the client code |
| 31 | + examples. |
| 32 | +- Refactor `task_is_running` test helper to accept more context types. |
| 33 | +- Update `Specification` to allow backends with a single core. Closes |
| 34 | + [#71](https://github.com/mihaiconstantin/parabar/issues/71). |
| 35 | + |
| 36 | +## Fixed |
| 37 | +- Fix error triggered by the invocation of the backend destructors (i.e., see |
| 38 | + issue [#61](https://github.com/mihaiconstantin/parabar/issues/61)). Clean-up |
| 39 | + of resources is now handled via the `base::reg.finalizer` mechanism, with |
| 40 | + finalizers being automatically registered when a backend is created. This |
| 41 | + ensures that the cluster is stopped and resources are released even if the |
| 42 | + user forgets to call `stop_backend` explicitly. Closes |
| 43 | + [#61](https://github.com/mihaiconstantin/parabar/issues/61). |
| 44 | +- Fix the `sink` redirect to use the correct destination on `Windows` (i.e., |
| 45 | + `nul` instead of `/dev/null`). Closes |
| 46 | + [#74](https://github.com/mihaiconstantin/parabar/issues/74). |
| 47 | + |
1 | 48 | # parabar 1.2.1 |
2 | 49 |
|
3 | 50 | ## Fixed |
|
0 commit comments