gnu: global: Update to 6.6. * gnu/packages/code.scm (global): Update to 6.6.
derivations: 'derivation-hash' assumes inputs are coalesced. * guix/derivations.scm (derivation-hash): Remove redundant 'coalesce-duplicate-inputs' call.
derivations: Use 'define-immutable-record-type' as appropriate. This is a followup to dc673fa1131fb5d1e5ca29acb4a693cfb906986f. * guix/derivations.scm (<derivation-output>, <derivation-input>): Use 'define-immutable-record-type'.
memoization: Profiling support keeps track of lookups and hits. * guix/memoization.scm (<cache>): New record type. (define-lookup-procedure, define-update-procedure): New macros. (cache-ref, cacheq-ref, cache-set!, cacheq-set!): New procedures. (cached/mv, cachedq/mv, cached, cachedq): Use them instead of 'hash-ref' and 'hash-set!'. (%make-hash-table*): When 'profiled?' returns true, return a <cache> object. (define-cache-procedure): Adjust to show cache lookups and hits.
memoization: Add profiling support. * guix/memoization.scm (%memoization-tables): New variable. (%make-hash-table*, show-memoization-tables): New procedures. (make-hash-table*): New macro. Add top-level call to 'register-profiling-hook!'. (memoize): Adjust to pass the resulting procedure to 'make-hash-table*'. (%mlambda): Likewise.
Add (guix profiling). * guix/profiling.scm: New file. * Makefile.am (MODULES): Add it. * guix/store.scm (record-operation): Use 'profiled?' and 'register-profiling-hook!'.
gnu: xfig, transfig: Update home pages. * gnu/packages/xfig.scm (xfig, transfig)[home-page]: Use SourceForge.net.
gnu: Add uthash. * gnu/packages/datastructures.scm (uthash): New public variable.
gnu: Add fbcat. * gnu/packages/linux.scm (fbcat): New public variable.
gnu: Add snapscreenshot. * gnu/packages/linux.scm (snapscreenshot): New public variable.
gnu: linux-libre: Update to 4.14.5. * gnu/packages/linux.scm (%linux-libre-version): Update to 4.14.5. (%linux-libre-hash): Update hash.
gnu: linux-libre@4.9: Update to 4.9.68. * gnu/packages/linux.scm (linux-libre-4.9): Update to 4.9.68.
gnu: linux-libre@4.4: Update to 4.4.105. * gnu/packages/linux.scm (linux-libre-4.4): Update to 4.4.105.
gnu: whois: Update to 5.2.19. * gnu/packages/networking.scm (whois): Update to 5.2.19. [arguments]: Don't set HAVE_LIBIDN in 'setenv' phase; this is now autodetected. [native-inputs]: Add PKG-CONFIG.
gnu: Remove ffmpeg@3.3. The reason this was required was because of a regression in ffmpeg 3.4; see <https://trac.ffmpeg.org/ticket/6775>. * gnu/packages/gstreamer.scm (gst-libav)[inputs]: Change FFMPEG-3.3 to FFMPEG. * gnu/packages/video.scm (ffmpeg-3.3): Remove variable.
gnu: ffmpeg: Update to 3.4.1. * gnu/packages/video.scm (ffmpeg): Update to 3.4.1.
gnu: Add cli-visualizer. * gnu/packages/audio.scm (cli-visualizer): New variable.
services: web: Switch nginx related functions to use match-record. As this is less prone to mistakes than match. * gnu/services/web.scm (default-nginx-config, nginx-activation, nginx-shepherd-service): Switch from using match-lambda to match-record.
services: web: Add support for configuring the nginx server names hash. The nginx service can fail to start if the server names hash bucket size is too small, which can happen on some systems, and when using QEMU, depending on the CPU. * gnu/services/web.scm (<nginx-configuration>): Add server-names-hash-bucket-size and server-names-hash-bucket-max-size. (default-nginx-config): Add support for the new hash bucket size parameters. (nginx-service, nginx-activation): Pass the new hash bucket size parameters through to the default-nginx-config procedure. * doc/guix.texi (Web Services): Document the new hash bucket size parameters.
services: web: Remove default certificate and key files for nginx. If nginx is configured with a ssl-certificate file, and ssl-certificate-key, it will fail to start unless these exist. To avoid this happening, change the default to #f. * gnu/services/web.scm (<nginx-server-configuration>) [ssl-certificate,ssl-certificate-key]: Set the defaults to #f. * gnu/tests/web.scm (%nginx-servers): Remove redundant nginx-server-configuration fields. * doc/guix.texi (Web Services): Update examples and documentation.