Skip to content

Releases: r-lib/nanonext

nanonext 1.6.2

14 Jul 09:01
68eb478
Compare
Choose a tag to compare

Updates

  • Fixes extremely rare cases of unresolvedValue being returned by fulfilled promises (#163).

nanonext 1.6.1

23 Jun 08:52
339fe8e
Compare
Choose a tag to compare

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 with pipe_notify().
  • The previous listen() and dial() argument error, removed in v1.6.0, is now defunct.
  • The previous serial_config() argument vec, 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

20 May 06:54
f147d61
Compare
Choose a tag to compare

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 to stdout, to avoid interleaved messages when used concurrently by different processes.
  • Adds read_stdin() which performs a read from stdin on a background thread, relayed via an 'inproc' socket so that it may be consumed via recv() or recv_aio().
  • request() gains integer argument id. This may be specified to have a special payload sent asynchronously upon timeout (to communicate with the connected party).

Updates

  • listen() and dial() argument error is replaced with fail to specify the failure mode - 'warn', 'error', or 'none' to just return an 'errorValue'.
    • Any existing usage of error = TRUE will work only until the next release.
  • Partial matching is no longer enabled for the mode argument 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::SIGINT is supplied to the flag argument of pipe_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

18 Mar 16:54
08b1ace
Compare
Choose a tag to compare

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

16 Feb 22:54
71b2606
Compare
Choose a tag to compare

Updates

  • pipe_notify() drops argument 'cv2' for signalling 2 condition variables on one pipe event. Use signal forwarders %~>% instead.
  • The abillity to lock() and unlock() 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

28 Jan 00:04
92da3ca
Compare
Choose a tag to compare

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

02 Dec 23:40
a7394f4
Compare
Choose a tag to compare

New Features

  • New interface to Pipes moves to using integer pipe IDs rather than Pipe (external pointer) objects:
    • send() and send_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 $aio upon resolution.
    • Pipe objects (of class 'nanoPipe') are obsoleted.
  • Adds monitor() and read_monitor() for easy monitoring of connection changes (pipe additons and removals) at a Socket.

Updates

  • collect_pipe() is removed given the pipe interface changes.

nanonext 1.3.2

14 Nov 17:57
0027f9c
Compare
Choose a tag to compare

Updates

  • Hotfix for CRAN (updates to tests only).

nanonext 1.3.1

13 Nov 22:44
e89c85b
Compare
Choose a tag to compare

Updates

  • Performs interruptible 'aio' waits using a single dedicated thread, rather than launching new threads, for higher performance and efficiency.
  • Performance enhancements for 'ncurlAio' and 'recvAio' promises methods.
  • Updates bundled 'libnng' to v1.9.0 stable release.
  • The package has a shiny new hex logo.

nanonext 1.3.0

04 Oct 13:32
25850a1
Compare
Choose a tag to compare

New Features

  • Adds support for threaded dispatcher in mirai.
  • Adds 'recvAio' method for promises::as.promise() and promises::is.promising() to enable 'recvAio' promises.

Updates

  • serial_config() now validates all arguments and returns them as a list. Full validation is also performed when the option is set for additional safety.
  • Warning messages for unserialization or conversion failures of received data are now suppressable.
  • Upgrades reply() to always return even when there is an evaluation error. This allows it to be used safely in a loop without exiting early, for example.
  • Removes deprecated and defunct next_config().
  • Internal performance enhancements.
  • Updates bundled 'libnng' v1.8.0 with latest patches.