You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: NEWS.md
+4-3Lines changed: 4 additions & 3 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,18 +1,19 @@
1
-
# nanonext 0.8.0.9001 (development)
1
+
# nanonext 0.8.1
2
2
3
3
#### New Features
4
4
5
5
* Implements synchronisation primitives from the NNG library. Condition variables allow the R execution thread to wait until it is signalled by an incoming message or pipe event.
6
6
+ adds core functions `cv()`, `wait()`, `until()`, `cv_value()`, and `cv_reset()`.
7
7
+ adds signalling receive functions `recv_aio_signal()` and `request_signal()`.
8
8
+`pipe_notify()` signals up to 2 condition variables whenever pipes are added or removed at a socket.
9
-
*Implements`msg_pipe()` to return the pipe connection associated with a 'recvAio' message.
9
+
*Adds`msg_pipe()` to return the pipe connection associated with a 'recvAio' message.
10
10
* Exposes the `sha1()` cryptographic hash and HMAC generation function from the 'Mbed TLS' library (for secure applications, use one of the SHA-2 algorithms instead).
11
+
* Utility function `'weakref<-'()` exposes `R_MakeWeakRef` from R's C API. Useful for keeping objects alive for as long as required by a dependent object.
11
12
12
13
#### Updates
13
14
15
+
*`ncurl_session()` gains a 'timeout' argument, and returns an 'errorValue' with warning upon error.
14
16
*`listen()` and `dial()` gain the new logical argument 'error' to govern the function behaviour upon error.
15
-
*`.unresolved()` is introduced as a technical utility (not recommended for general use) that just queries the status of an Aio without attempting to retrieve the result or message.
R binding for NNG (Nanomsg Next Gen), a successor to ZeroMQ. NNG is a socket library providing high-performance scalability protocols, a cross-platform standard for messaging and communications. Serves as a concurrency framework for building distributed applications, utilising 'aio' objects which resolve automatically upon completion of asynchronous operations. Implements synchronisation primitives, allowing R to wait upon socket events or message receives being signalled by concurrent threads.
25
+
R binding for NNG (Nanomsg Next Gen), a successor to ZeroMQ. NNG is a socket library providing high-performance scalability protocols, a cross-platform standard for messaging and communications. Serves as a concurrency framework for building distributed applications, utilising 'aio' objects which resolve automatically upon completion of asynchronous operations. Implements synchronisation primitives, allowing R to wait upon events being signalled by concurrent messaging threads.
26
26
27
27
Designed for performance and reliability, the NNG library is written in C and {nanonext} is a lightweight zero-dependency wrapper. Provides the interface for code and processes to communicate with each other - receive data generated in Python, perform analysis in R, and send results to a C++ program – all on the same computer or on networks spanning the globe.
28
28
@@ -320,7 +320,7 @@ The {crew} package <https://wlandau.github.io/crew/> (available on CRAN) by Will
320
320
321
321
### Synchronisation Primitives
322
322
323
-
{nanonext} exposes synchronisation primitives implemented in the NNG library, available for cross-platform use.
323
+
{nanonext} implements synchronisation primitives provided by the NNG library for cross-platform use.
324
324
325
325
As the R interpreter runs on a single thread, synchronisation primitives such as mutexes and condition variables are not natively implemented in the R language. However, as NNG is inherently threaded and messaging can be asynchronous, it is possible to synchronise between NNG events happening independently and the main R execution thread.
0 commit comments