Releases: mihaiconstantin/parabar
Releases · mihaiconstantin/parabar
parabar v1.4.2
What's Changed
- Add missing URL in
foreachvignette by @mihaiconstantin in #85
Fixed
- Add missing URL in
foreachvignette.
Full Changelog: v1.4.1...v1.4.2
parabar v1.4.1
What's Changed
- Change URL in
foreachvignette toCRANcanonical format by @mihaiconstantin in #84
Fixed
- Update URL in
foreachvignette to respect theCRANcanonical package URL format.
Full Changelog: v1.4.0...v1.4.1
parabar v1.4.0
What's Changed
- Add vignette for using
parabarwithforeachby @mihaiconstantin in #81 - Improve
foreachvignette by @mihaiconstantin in #82 - Release
1.4.0by @mihaiconstantin in #83
Added
- Add vignette
foreach.Rmdto illustrate howparabarcan be used in conjunction with theforeachpackage. The implementation for the%dopar%operator is provided by thedoParabarpackage. Theforeach.Rmdvignette is locally build from theforeach.Rmd.origfile.
Full Changelog: v1.3.0...v1.4.0
parabar v1.3.0
What's Changed
- Allow to forcefully stop an asynchronous backend by @mihaiconstantin in #60
- Use
reg.finalizerinstead ofR6destructors for resource cleanup by @mihaiconstantin in #63 - Miscellaneous refactoring by @mihaiconstantin in #65
- Add standalone tests for
TaskStateclass by @mihaiconstantin in #66 - Improve
UMLdesign diagram by @mihaiconstantin in #69 - Update comparison vignette by @mihaiconstantin in #70
- Update
sinkcalls to redirect the output correctly by @mihaiconstantin in #75 - Miscellaneous changes by @mihaiconstantin in #76
- Miscellaneous changes by @mihaiconstantin in #77
- Allow to create backends with a single core by @mihaiconstantin in #78
- Miscellaneous refactoring by @mihaiconstantin in #79
- Release
1.3.0by @mihaiconstantin in #80
Added
- Update
AsyncBackendto allow forceful stopping of the cluster. This is controlled by the package optionstop_forceful, which, when set toTRUE, permits the backend to stop the cluster even if tasks are running or if tasks have finished but their results have not yet been read into the main session. The stopping logic is now based on the newly added classSessionState. Closes #59. - Add
SessionStateclass to easily check if an asynchronous backend is ready for certain operations. - Add tests for the
SessionStateandTaskStateclasses, and other improvements to the existing tests. - Introduce "pseudo-tests" for
SyncBackendandAsyncBackendfinalizers. These tests don't perform real assertions but instead verify that finalizers are invoked when backend instances are garbage collected. As of now, there appears to be no reliable way to programmatically capture conditions handled within a finalizer triggered by manualgc()invocation.
Changed
- Remove
SyncBackendandAsyncBackenddestructors in favour ofRfinalizers registered viabase::reg.finalizer. - Rename
ServicetoBackendServicefor clarity and consistency. While the nameServicemakes sense in the context of theparabarpackage, it can be confusing when usingparabarin conjunction with other packages (e.g., in the context of thepowerlypackage). The new nameBackendServiceis hopefully more descriptive and less likely to clash with other packages. - Update
comparison.Rmdvignette to refresh the comparison betweenparabarandpbapplypackages. - Update design diagram and improved its readability and the client code examples.
- Refactor
task_is_runningtest helper to accept more context types. - Update
Specificationto allow backends with a single core. Closes #71.
Fixed
- Fix error triggered by the invocation of the backend destructors (i.e., see issue #61). Clean-up of resources is now handled via the
base::reg.finalizermechanism, with finalizers being automatically registered when a backend is created. This ensures that the cluster is stopped and resources are released even if the user forgets to callstop_backendexplicitly. Closes #61. - Fix the
sinkredirect to use the correct destination onWindows(i.e.,nulinstead of/dev/null). Closes #74.
Full Changelog: v1.2.1...v1.3.0
parabar v1.2.1
What's Changed
- Release
1.2.1by @mihaiconstantin in #58
Fixed
- Update URL with status 301 in
README.mdperCRANchecks.
Full Changelog: v1.2.0...v1.2.1
parabar v1.2.0
What's Changed
- Miscellaneous documentation fixes by @mihaiconstantin in #54
- Miscellaneous code changes by @mihaiconstantin in #55
- Update
GitHubworkflows by @mihaiconstantin in #56 - Release
1.2.0by @mihaiconstantin in #57
Changed
- Enable
roxygenchecks forR6documentation inDESCRIPTION. - Update
Contextto implement theServiceinterface. - Update GitHub workflows.
- Fix typos and other errors in code documentation.
Full Changelog: v1.1.1...v1.2.0
parabar v1.1.1
What's Changed
- Add missing
applyoperation toREADMEby @mihaiconstantin in #40 - Fix white space indentation in
UMLdiagram by @mihaiconstantin in #46 - Remove duplicated code in
UserApiConsumerclass by @mihaiconstantin in #47 - Update actions in GitHub workflows by @mihaiconstantin in #48
- Fix hanging progress bar on task errors in
ProgressTrackingContextby @mihaiconstantin in #49 - Miscellaneous style changes by @mihaiconstantin in #50
- Remove
UMLrelationships legend from design diagram by @mihaiconstantin in #51 - Release
v1.1.1by @mihaiconstantin in #52
Added
- Add tests for progress tracking context when executed tasks throw an error. In relation to #44.
Changed
- Update action versions in GitHub workflows.
Fixed
- Fix hanging progress bar on errors in the
ProgressTrackingContext.Rclass. Closes #44. - Remove duplicated lines in
UserApiConsumerclass. Closes #41. - Fix indentation in
UMLdesign diagram. Closes #45. - Add missing
applyoperation toREADMEdocumentation.
Full Changelog: v1.1.0...v1.1.1
parabar v1.1.0
What's Changed
- Add support for the
lapplybackend operation by @mihaiconstantin in #31 - Fix task decoration in
ProgressTrackingContextby @mihaiconstantin in #33 - Miscellaneous refactoring by @mihaiconstantin in #34
- Add support for the
applybackend operation by @mihaiconstantin in #36 - Miscellaneous style and documentation changes by @mihaiconstantin in #37
- Fix silent errors during task execution in
AsyncBackendby @mihaiconstantin in #38 - Build: bump version to
1.1.0by @mihaiconstantin in #39
Added
- Update implementations of
Service$applyoperation forBackendclasses to validate the providedmarginargument before running the parallel operation. - Add helper
Helper$check_array_marginsto validate the margins provided to theService$applyoperation. - Add exception
Exception$array_margins_not_compatiblefor using improper margins in theService$applyoperation. - Add exception
Exception$primitive_as_task_not_allowedfor trying to decorate primitive functions with progress tracking in theProgressTrackingContextclass. - Add helper
Helper$is_of_classto check if an object is of a given class. - Add optional arguments to the
get_outputoperation ofSyncBackendfor consistency. - Add more tests to improve coverage.
- Add implementation for
Service$lapplyandService$applyoperations for all classes that implement theServiceinterface. - Add
par_lapplyandpar_applyfunctions to the userAPI. These functions can be used to run tasks in parallel akin toparallel::parLapplyandparallel::parApply, respectively. Closes #30. - Add
UserApiConsumerR6class that provides an opinionated wrapper around the developerAPIof theparabarpackage. All parallel operations (e.g.,par_sapplyandpar_lapply) follow more or less the same pattern. TheUserApiConsumerencapsulates this pattern and makes it easier to extendparabarwith new parallel functions (e.g.,par_apply) while avoiding code duplication. TheUserApiConsumerclass can also be used as a standalone class for parallel operations, however, its primary purpose is to be used by the parallel task execution functions in the userAPI.
Changed
- Force early evaluation for the
xargument of task execution functions inProgressTrackingContextclass. - Update the log file for progress tracking to include
parabarin the file name. - Disable warnings for
file.createinProgressTrackingContextclass. This warning is superfluous since the code handles creation failures. - Refactor test helpers to avoid code duplication.
- Update
par_sapplyto use theUserApiConsumerclass. - Update the developer
APIR6classes to implement thelapplyparallel operation.
Fixed
- Ensure task execution errors are propagated to the main session in
AsyncBackend. Closes #35. - Fixed the rendering of
CC BY 4.0license icons inREADME.mdfor the package website. - Update
.decoratemethod ofProgressTrackingContextto be more flexible. More specifically, the method will now throw when primitive functions are provided for decoration. The method can now handle both inline functions (i.e.,function(x) x) and functions that have a body defined in terms of compound expressions (i.e.,function(x) { x }). Closes #32. - Fix the
exportoperation in theSyncBackendandContextclasses to fall back to the parent environment if the argumentenvironmentis not provided.
Full Changelog: v1.0.3...v1.1.0