## 2.11 2019-03-11

C Implementation of Archive Get

Fix possible truncated WAL segments when an error occurs mid-write.

Fix info command missing WAL min/max when stanza specified.

Fix non-compliant JSON for options passed from C to Perl.

The archive-get command is implemented entirely in C.

Enable socket keep-alive on older Perl versions.

Error when parameters are passed to a command that does not accept parameters.

Add hints when unable to find a WAL segment in the archive.

Improve error when hostname cannot be found in a certificate.

Add additional options to backup.manifest for debugging purposes.

Migrate local and remote commands to C.

Add separate archive-get-async command.

Add `ProtocolParallel*` objects for parallelizing commands.

Add `ProtocolCommand` object.

Add `exists()` to remote storage.

Resolve storage path expressions before passing to remote.

Expose handle (file descriptor) from `IoRead` when applicable.

Add `storageHelperFree()` to storage helper.

Add `kvKeyExists()` to `KeyValue` object.

Add `lstRemove()` to `List` object.

Allow `cfgExecParam()` to exclude options.

`MemContext` improvements. Improve performance of context and memory allocations. Use `contextTop`/`contextCurrent` instead of `memContextTop()`/`memContextCurrent()`. Don't make a copy of the context name.

Make DESTDIR fully-configurable in the Makefile.

Add note for CSTD settings on BSD variants.

Add clean and uninstall targets to Makefile.

Change `execRead()` to return a `size_t`.

Prevent option warning from being output when running help command.

Improve null-handling of `strToLog()` and `varToLog()`.

Increase per-call stack trace size to 4096.

Move `compress` module to `common/compress`.

Move `crypto` module to `common/crypto`.

Update default documentation version to 10.

Add instructions for building the coverage report.

Documentation builds on 9.4-10.

Create test matrix for mock/archive, mock/archive-stop, mock/all, mock/expire, and mock/stanza to increase coverage and reduce tests.

Improve fork harness to allow multiple children and setup pipes automatically.

Reduce expect log level in mock/archive and mock/stanza tests.

Rename test modules for consistency.

Only run test-level stack trace by default for unit-tested modules.

Add missing ToLog() coverage to `String`, `List`, and `PgControl`.

Create aliases for test VMs ordered by age.