Releases: r-lib/nanonext
Releases · r-lib/nanonext
nanonext 1.7.2
nanonext 1.7.1
Updates
stop_aio()now resets the R interrupt flags (#194).- The
cvarguments atrecv_aio()andrequest()have been simplified to accept just a 'conditionVariable' or NULL.
nanonext 1.7.0
Behavioural Changes
- The promises method for
ncurlAiohas been updated for ease of use (#176):- Returns a list of 'status', 'headers' and 'data'.
- Rejects only if an NNG error is returned (all HTTP status codes are resolved).
- Improved behaviour when using
serial_config()configurations applied to a socket.
If the serialization hook function errors or otherwise fails to return a raw vector, this will error out rather than be silently ignored (#173).
New Features
- A 'recvAio' returned by
request()now has an attributeid, which is the integer ID of the context passed to it.
Updates
nanonext 1.6.2
Updates
- Fixes extremely rare cases of
unresolvedValuebeing returned by fulfilled promises (#163).
nanonext 1.6.1
Updates
ncurl()and variants now accept request data supplied as a raw vector (thanks @thomasp85, #158).cv_reset()now correctly resets the flag in the case a flag event has already been registered withpipe_notify().- The previous
listen()anddial()argumenterror, removed in v1.6.0, is now defunct. - The previous
serial_config()argumentvec, unutilised since v1.6.0, is removed. - Fixes package installation with 'libmbedtls' in a non-standard filesystem location, even if known to the compiler (thanks @tdhock, #150).
- Bundled 'libnng' updated to 1.11.0 release.
nanonext 1.6.0
New Features
serial_config()now accepts vector arguments to register multiple custom serialization configurations.- Adds
ip_addr()for returning the local network IPv4 address of all network adapters, named by interface. - Adds
pipe_id()for returning the integer pipe ID for a resolved 'recvAio'. - Adds
write_stdout()which performs a non-buffered write tostdout, to avoid interleaved messages when used concurrently by different processes. - Adds
read_stdin()which performs a read fromstdinon a background thread, relayed via an 'inproc' socket so that it may be consumed viarecv()orrecv_aio(). request()gains integer argumentid. This may be specified to have a special payload sent asynchronously upon timeout (to communicate with the connected party).
Updates
listen()anddial()argumenterroris replaced withfailto specify the failure mode - 'warn', 'error', or 'none' to just return an 'errorValue'.- Any existing usage of
error = TRUEwill work only until the next release.
- Any existing usage of
- Partial matching is no longer enabled for the
modeargument to send/receive functions. send_aio()without keeping a reference to the return value no longer potentially drops sends (thanks @wch, #129).pipe_notify()no longer requires any particular sequencing of closing the socket and garbage collection of the socket / 'conditionVariable' (#143).- More robust interruption on non-Windows platforms when
tools::SIGINTis supplied to theflagargument ofpipe_notify()(thanks @LennardLux, #97). - Installation from source specifying 'INCLUDE_DIR' and 'LIB_DIR' environment variables works again, correcting a regression in v1.5.2 (#104).
- Windows bi-arch source builds for R <= 4.1 using rtools40 and earlier work again (regression since v1.5.1) (thanks @daroczig, #107).
- Bundled 'libnng' 1.10.2 pre-release updated with latest patches.
- Package is re-licensed under the MIT license.
nanonext 1.5.2
Updates
write_cert()argument 'cn' now defaults to '127.0.0.1' instead of 'localhost'.messenger()now exits cleanly, correcting a regression in nanonext 1.5.0 (#87).- Promises created from 'recvAio' and 'ncurlAio' now reject in exactly the same way whether or not they were resolved at time of creation (#89).
- Bundled 'libnng' updated to 1.10.2 pre-release.
- With this library version, a 'req' socket with option 'req:resend-time' set as 0 now frees the message as soon as the send has completed without waiting for the reply.
nanonext 1.5.1
Updates
pipe_notify()drops argument 'cv2' for signalling 2 condition variables on one pipe event. Use signal forwarders%~>%instead.- The abillity to
lock()andunlock()sockets is removed. - Renders it safe to serialize 'nano' and 'aio' objects - they will be inactive when unserialized.
- Unified Windows build system now compiles 'libmbedtls' and 'libnng' from source even on R <= 4.1 using Rtools40 or earlier.
- Minimum supported 'libnng' version increased to 1.9.0.
nanonext 1.5.0
Library Updates
- Bundled 'libnng' updated to latest 1.10.1 release.
- Bundled 'libmbedtls' updated to latest 3.6.2 LTS branch release.
Updates
nano()updated with the 'poly' protocol, with 'pipe' argument enabled for the send methods.write_cert()no longer displays a status message when interactive (thanks @wlandau, #74).- Removes partial matching when using
$,[[or[on an object inheriting from class 'nano'. - Fixes a rare hang on socket close that was possible on Windows platforms for IPC connections (#76).
nanonext 1.4.0
New Features
- New interface to Pipes moves to using integer pipe IDs rather than Pipe (external pointer) objects:
send()andsend_aio()gain the argument 'pipe' which accepts an integer pipe ID for directed sends (currently only supported by Sockets using the 'poly' protocol).- A 'recvAio' now records the integer pipe ID, where successful, at
$aioupon resolution. - Pipe objects (of class 'nanoPipe') are obsoleted.
- Adds
monitor()andread_monitor()for easy monitoring of connection changes (pipe additons and removals) at a Socket.
Updates
collect_pipe()is removed given the pipe interface changes.