• Internal performance enhancements.
• Allow user interrupts of call_mirai() again (regression in 0.7.0), now returning a ‘miraiInterrupt’.
• Adds auxiliary function is_mirai_interrupt() to test if an object is a ‘miraiInterrupt’.
• Requires nanonext >= 0.7.0: returned ‘errorValues’ e.g. mirai timeouts are no longer accompanied by warnings.
• Internal performance enhancements.
• daemons() now takes ‘n’ and ‘.url’ arguments. ‘.url’ is an optional client URL allowing mirai tasks to be distributed across the network. Compatibility with existing interface is retained.
• The server function server() is exported for creating daemon / ephemeral processes on network resources.
• Mirai errors are formatted better and now print to stdout rather than stderr.
• Improvements to performance and stability requiring nanonext >= 0.6.0.
• Internal enhancements to error handling in a mirai / daemon process.
• Notice: older package versions will no longer be supported by ‘nanonext’ >= 0.6.0. Please ensure you are using the latest version of ‘mirai’ or else refrain from upgrading ‘nanonext’.
• Internal enhancements to daemons() and %>>% deferred evaluation pipe.
• mirai() gains a ‘.args’ argument for passing a list of objects already in the calling environment, allowing for example mirai(func(x, y, z), .args = list(x, y, z)) rather than having to specify mirai(func(x, y, z), x = x, y = y, z = z).
• Errors from inside a mirai will now return the error message as a character string of class ‘miraiError’ and ‘errorValue’, rather than just a nul byte. Utility function is_mirai_error() should be used in place of is_nul_byte(), which is no longer re-exported.
• is_error_value() can be used to test for all errors, including timeouts where the ‘.timeout’ argument has been used.
• All re-exports from ‘nanonext’ have been brought in-package for better documentation.
• Internal optimisations requiring nanonext >= 0.5.2.
• Implements the %>>% deferred evaluation pipe.
• Adds ‘.timeout’ argument to mirai() to ensure a mirai always resolves even if the child process crashes etc.
• Exits cleanly when daemons have not been explicitly zeroed prior to ending an R session.
• Fixes possible hang on Windows when shutting down daemons.
• Back to a pure R implementation thanks to enhanced internal design at nanonext.
• Adds auxiliary function is_mirai() to test if an object is a mirai.
• Versioning system to synchronise with nanonext e.g. v0.4.x requires nanonext >= 0.4.0.
• The value of a mirai is now stored at data to optimally align with the underlying implementation. • Package now contains C code (requires compilation), using weak references for simpler management of resources. • Switch to abstract sockets on Linux. • mirai() added as an alias for eval_mirai(); supports evaluating arbitrary length expressions wrapped in {}. • A mirai now resolves automatically without requiring call_mirai(). Access the value directly and an ‘unresolved’ logical NA will be returned if the async operation is yet to complete.
• stop_mirai() added as a function to stop evaluation of an ongoing async operation.
• Auxiliary functions is_nul_byte() and unresolved() re-exported from {nanonext} to test for evaluation errors and resolution of a ‘mirai’ respectively.
• New daemons() interface to set and manage persistent background processes for receiving ‘mirai’ requests.
• Initial release.