Skip to content

Releases: shikokuchuo/nanonext

nanonext 0.13.5

05 Apr 07:28
b0513d3
Compare
Choose a tag to compare

Updates

  • Removes SHA-2 cryptographic hash functions (please use the streaming implementation in the secretbase package).

nanonext 0.13.4

13 Mar 19:55
252b92a
Compare
Choose a tag to compare

New Features

  • An integer file descriptor is appended to 'nanoSockets' as the attribute 'fd' - see updated documentation for socket().

nanonext 0.13.3

02 Mar 23:09
43ce93c
Compare
Choose a tag to compare

New Features

  • next_config() gains argument 'class' and 'vec', enabling custom serialization for all reference object types supported by R serialization.

Updates

  • Upgrades bundled 'libnng' to v1.7.3.

nanonext 0.13.2

24 Feb 15:17
b4134da
Compare
Choose a tag to compare

Updates

  • Fixes cases of 'built for newer macOS version than being linked' installation warnings on MacOS.
  • Fixes other compiler warnings with additional flags enabled on the CRAN M1mac test machine.
  • Upgrades bundled 'libnng' to v1.7.2.

CRAN release 0.13.0

07 Feb 10:51
c8b722d
Compare
Choose a tag to compare

nanonext 0.13.0

Updates

Please note the following potentially breaking changes, and only update when ready:

  • Default behaviour of send() and recv() aligned to non-blocking for both Sockets and Contexts (facilitated by synchronous context sends in NNG since v1.6.0).
  • ncurl(), ncurl_aio() and ncurl_session() now restrict 'header' and 'response' arguments to character vectors only, no longer accepting lists (for safety and performance).
  • Unserialization / decoding errors where the received message cannot be translated to the specified mode will output a message to stderr, but no longer generate a warning.
  • SHA functions now skip serialization headers for serialized R objects (ensuring portability as these contain R version and encoding information). This means that, for serialized objects, hashes will be different to those obtained using prior package versions.
  • sha1() is removed as a hash option.

Other changes:

  • messenger() specifying 'auth' now works reliably on endpoints using different R versions/platforms due to the above hashing portability fix.
  • Internal memory-efficiency and performance enhancements.
  • Upgrades bundled 'libmbedtls' to v3.5.2.

CRAN release 0.12.0

10 Jan 18:00
ddf027f
Compare
Choose a tag to compare

nanonext 0.12.0

This is a major performance and stability release bundling the 'libnng' v1.7.0 source code.

New Features

  • pipe_notify() argument 'flag' allows supplying a signal to be raised on a flag being set upon a pipe event.

Updates

  • More compact print methods for 'recvAio', 'sendAio', 'ncurlAio', 'ncurlSession' and 'tlsConfig' objects.
  • random() now explicitly limits argument 'n' to values between 0 and 1024.
  • next_config() now returns a pairlist (of the registered serialization functions) rather than a list (for efficiency).
  • Using mode 'next', serialization functions with incorrect signatures are now simply ignored rather than raise errors.
  • 'nanoStream' objects simplified internally with updated attributes 'mode' and 'state'.
  • Deprecated function .until() is removed.
  • Eliminates potential memory leaks along certain error paths.
  • Fixes bug which prevented much higher TLS performance when using the bundled 'libnng' source.
  • Upgrades bundled 'libnng' to v1.7.0 release.

CRAN release 0.11.0

04 Dec 10:47
9c0acfa
Compare
Choose a tag to compare

nanonext 0.11.0

This is a major stability release bundling the 'libnng' v1.6.0 source code.

New Features

  • Introduces call_aio_(), a user-interruptible version of call_aio() suitable for interactive use.
  • Introduces wait_() and until_() user-interruptible versions of wait() and until() suitable for interactive use.
  • Implements %~>% signal forwarder from one 'conditionVariable' to another.

Updates

  • next_config() replaces nextmode() with the following improvements:
    • simplified 'refhook' argument takes a pair of serialization and unserialization functions as a list.
    • registered 'refhook' functions apply to external pointer type objects only.
    • no longer returns invisibly for easier confimation that the correct functions have been registered.
  • until() updated to be identical to .until(), returning FALSE instead of TRUE if the timeout has been reached.
  • reap() updated to no longer warn in cases it returns an 'errorValue'.
  • pipe_notify() arguments 'add', 'remove' and 'flag' now default to FALSE instead of TRUE for easier selective specification of the events to signal.
  • Fixes regression in release 0.10.4 that caused a potential segfault using ncurl() with 'follow' set to TRUE when the server returns a missing or invalid relocation address.
  • The weak references interface is removed as 'non-core'.
  • Upgrades bundled 'libnng' to v1.6.0 release.
  • Upgrades bundled 'libmbedtls' to v 3.5.1.

CRAN release 0.10.4

03 Nov 15:36
24a220c
Compare
Choose a tag to compare

nanonext 0.10.4

New Features

  • nextmode() configures settings for send mode 'next'. Registers hook functions for custom serialization and unserialization of reference objects (such as those accessed via an external pointer).
  • .until() contains revised behaviour for this synchronisation primitive, returning FALSE instead of TRUE if the timeout has been reached. This function will replace until() in a future package version.

Updates

  • lock() supplying 'cv' has improved behaviour which locks the socket whilst allowing for both initial connections and re-connections (when the 'cv' is registered for both add and remove pipe events).
  • Improves listener / dialer logic for TLS connections, allowing inter alia synchronous dials.
  • request() argument 'ack' removed due to stability considerations.
  • Fixes memory leaks detected with valgrind.
  • Upgrades bundled 'libmbedtls' to v 3.5.0.

CRAN release 0.10.2

27 Sep 10:31
936ce6f
Compare
Choose a tag to compare

nanonext 0.10.2

Updates

  • Addresses one case of memory access error identified by CRAN.

CRAN release 0.10.1

26 Sep 13:06
ab47277
Compare
Choose a tag to compare

nanonext 0.10.1

New Features

  • request() adds logical argument 'ack', which sends an ack(nowledgement) back to the rep node upon a successful async message receive.
  • reap() implemented as a faster alternative to close() for Sockets, Contexts, Listeners and Dialers - avoiding S3 method dispatch, hence works for unclassed external pointers created by .context().
  • random() updated to use the Mbed TLS library to generate random bytes. Adds a 'convert' argument for specifying whether to return a raw vector or character string.
  • Adds 'next' as a mode for send functions, as a 100% compatible R serialisation format (may be received using mode 'serial').

Updates

  • write_cert() has been optimised for higher efficiency and faster operation.
  • send() and recv() over contexts now use more efficient synchronous methods where available.
  • Fixes package installation failures where the R default C compiler command contains additional flags (thanks @potash #16).
  • Performance improvements due to simplification of the internal structure of 'aio' objects.
  • Rolls forward bundled 'libnng' to v1.6.0 alpha (a54820f).