about summary refs log tree commit diff
path: root/nixpkgs/pkgs/development/interpreters
diff options
context:
space:
mode:
Diffstat (limited to 'nixpkgs/pkgs/development/interpreters')
-rw-r--r--nixpkgs/pkgs/development/interpreters/angelscript/default.nix4
-rw-r--r--nixpkgs/pkgs/development/interpreters/clojure/default.nix30
-rw-r--r--nixpkgs/pkgs/development/interpreters/duktape/default.nix4
-rw-r--r--nixpkgs/pkgs/development/interpreters/eff/default.nix2
-rw-r--r--nixpkgs/pkgs/development/interpreters/elixir/1.9.nix6
-rw-r--r--nixpkgs/pkgs/development/interpreters/elixir/generic-builder.nix6
-rw-r--r--nixpkgs/pkgs/development/interpreters/erlang/R22.nix6
-rw-r--r--nixpkgs/pkgs/development/interpreters/erlang/generic-builder.nix13
-rw-r--r--nixpkgs/pkgs/development/interpreters/evcxr/default.nix4
-rw-r--r--nixpkgs/pkgs/development/interpreters/gauche/default.nix4
-rw-r--r--nixpkgs/pkgs/development/interpreters/gnu-apl/default.nix4
-rw-r--r--nixpkgs/pkgs/development/interpreters/gtk-server/default.nix38
-rw-r--r--nixpkgs/pkgs/development/interpreters/guile/setup-hook-2.0.sh8
-rw-r--r--nixpkgs/pkgs/development/interpreters/guile/setup-hook-2.2.sh8
-rw-r--r--nixpkgs/pkgs/development/interpreters/guile/setup-hook.sh2
-rw-r--r--nixpkgs/pkgs/development/interpreters/hy/default.nix8
-rw-r--r--nixpkgs/pkgs/development/interpreters/io/default.nix6
-rw-r--r--nixpkgs/pkgs/development/interpreters/janet/default.nix4
-rw-r--r--nixpkgs/pkgs/development/interpreters/jimtcl/default.nix30
-rw-r--r--nixpkgs/pkgs/development/interpreters/joker/default.nix4
-rw-r--r--nixpkgs/pkgs/development/interpreters/jruby/default.nix4
-rw-r--r--nixpkgs/pkgs/development/interpreters/kona/default.nix2
-rw-r--r--nixpkgs/pkgs/development/interpreters/lfe/generic-builder.nix4
-rw-r--r--nixpkgs/pkgs/development/interpreters/love/0.10.nix6
-rw-r--r--nixpkgs/pkgs/development/interpreters/love/0.7.nix4
-rw-r--r--nixpkgs/pkgs/development/interpreters/love/0.8.nix6
-rw-r--r--nixpkgs/pkgs/development/interpreters/love/0.9.nix5
-rw-r--r--nixpkgs/pkgs/development/interpreters/love/11.1.nix10
-rw-r--r--nixpkgs/pkgs/development/interpreters/lua-5/CVE-2014-5461.patch (renamed from nixpkgs/pkgs/development/interpreters/lua-5/5.1.0004-Fix-stack-overflow-in-vararg-functions.patch)0
-rw-r--r--nixpkgs/pkgs/development/interpreters/lua-5/CVE-2019-6706.patch22
-rw-r--r--nixpkgs/pkgs/development/interpreters/lua-5/build-lua-package.nix2
-rw-r--r--nixpkgs/pkgs/development/interpreters/lua-5/default.nix9
-rw-r--r--nixpkgs/pkgs/development/interpreters/lua-5/setup-hook.sh2
-rw-r--r--nixpkgs/pkgs/development/interpreters/lua-5/wrapper.nix13
-rw-r--r--nixpkgs/pkgs/development/interpreters/luajit/2.0.nix5
-rw-r--r--nixpkgs/pkgs/development/interpreters/luajit/default.nix4
-rw-r--r--nixpkgs/pkgs/development/interpreters/lush/default.nix4
-rw-r--r--nixpkgs/pkgs/development/interpreters/metamath/default.nix20
-rw-r--r--nixpkgs/pkgs/development/interpreters/micropython/default.nix44
-rw-r--r--nixpkgs/pkgs/development/interpreters/octave/default.nix8
-rw-r--r--nixpkgs/pkgs/development/interpreters/perl/default.nix52
-rw-r--r--nixpkgs/pkgs/development/interpreters/perl/sw_vers.patch2
-rw-r--r--nixpkgs/pkgs/development/interpreters/php/default.nix52
-rw-r--r--nixpkgs/pkgs/development/interpreters/picolisp/default.nix4
-rw-r--r--nixpkgs/pkgs/development/interpreters/proglodyte-wasm/default.nix1
-rw-r--r--nixpkgs/pkgs/development/interpreters/pure/default.nix2
-rw-r--r--nixpkgs/pkgs/development/interpreters/python/cpython/2.7/default.nix9
-rw-r--r--nixpkgs/pkgs/development/interpreters/python/cpython/2.7/python-2.7-distutils-C++.patch7
-rw-r--r--nixpkgs/pkgs/development/interpreters/python/cpython/3.9/no-ldconfig.patch100
-rw-r--r--nixpkgs/pkgs/development/interpreters/python/cpython/default.nix10
-rw-r--r--nixpkgs/pkgs/development/interpreters/python/default.nix47
-rw-r--r--nixpkgs/pkgs/development/interpreters/python/graalpython/default.nix21
-rw-r--r--nixpkgs/pkgs/development/interpreters/python/hooks/default.nix25
-rw-r--r--nixpkgs/pkgs/development/interpreters/python/hooks/egg-build-hook.sh15
-rw-r--r--nixpkgs/pkgs/development/interpreters/python/hooks/egg-install-hook.sh21
-rw-r--r--nixpkgs/pkgs/development/interpreters/python/hooks/egg-unpack-hook.sh17
-rw-r--r--nixpkgs/pkgs/development/interpreters/python/hooks/flit-build-hook.sh6
-rw-r--r--nixpkgs/pkgs/development/interpreters/python/hooks/pip-build-hook.sh6
-rw-r--r--nixpkgs/pkgs/development/interpreters/python/hooks/pip-install-hook.sh2
-rw-r--r--nixpkgs/pkgs/development/interpreters/python/hooks/pytest-check-hook.sh2
-rw-r--r--nixpkgs/pkgs/development/interpreters/python/hooks/python-catch-conflicts-hook.sh2
-rw-r--r--nixpkgs/pkgs/development/interpreters/python/hooks/python-imports-check-hook.sh2
-rw-r--r--nixpkgs/pkgs/development/interpreters/python/hooks/python-remove-bin-bytecode-hook.sh2
-rw-r--r--nixpkgs/pkgs/development/interpreters/python/hooks/setuptools-build-hook.sh10
-rw-r--r--nixpkgs/pkgs/development/interpreters/python/hooks/setuptools-check-hook.sh2
-rw-r--r--nixpkgs/pkgs/development/interpreters/python/hooks/wheel-unpack-hook.sh2
-rw-r--r--nixpkgs/pkgs/development/interpreters/python/manylinux/default.nix86
-rw-r--r--nixpkgs/pkgs/development/interpreters/python/mk-python-derivation.nix5
-rw-r--r--nixpkgs/pkgs/development/interpreters/python/pypy/default.nix3
-rwxr-xr-xnixpkgs/pkgs/development/interpreters/python/update-python-libraries/update-python-libraries.py47
-rw-r--r--nixpkgs/pkgs/development/interpreters/python/wrap.sh10
-rw-r--r--nixpkgs/pkgs/development/interpreters/quickjs/default.nix42
-rw-r--r--nixpkgs/pkgs/development/interpreters/racket/default.nix8
-rw-r--r--nixpkgs/pkgs/development/interpreters/racket/minimal.nix2
-rw-r--r--nixpkgs/pkgs/development/interpreters/renpy/default.nix14
-rw-r--r--nixpkgs/pkgs/development/interpreters/ruby/default.nix54
-rw-r--r--nixpkgs/pkgs/development/interpreters/ruby/patchsets.nix13
-rw-r--r--nixpkgs/pkgs/development/interpreters/ruby/rubygems/default.nix9
-rw-r--r--nixpkgs/pkgs/development/interpreters/spidermonkey/1.8.5.nix2
-rw-r--r--nixpkgs/pkgs/development/interpreters/spidermonkey/52.nix82
-rw-r--r--nixpkgs/pkgs/development/interpreters/spidermonkey/60.nix15
-rw-r--r--nixpkgs/pkgs/development/interpreters/tcl/generic.nix6
-rw-r--r--nixpkgs/pkgs/development/interpreters/wasmtime/cargo-lock.patch2050
-rw-r--r--nixpkgs/pkgs/development/interpreters/wasmtime/default.nix22
84 files changed, 2184 insertions, 1072 deletions
diff --git a/nixpkgs/pkgs/development/interpreters/angelscript/default.nix b/nixpkgs/pkgs/development/interpreters/angelscript/default.nix
index adbfbaf48a43..0209bcaaafcd 100644
--- a/nixpkgs/pkgs/development/interpreters/angelscript/default.nix
+++ b/nixpkgs/pkgs/development/interpreters/angelscript/default.nix
@@ -3,10 +3,10 @@ let
   s = # Generated upstream information
   rec {
     baseName="angelscript";
-    version = "2.33.0";
+    version = "2.34.0";
     name="${baseName}-${version}";
     url="http://www.angelcode.com/angelscript/sdk/files/angelscript_${version}.zip";
-    sha256 = "18qywbi1k53xgnlr9v6ycin669j5v5qspq7lli4jhf6l4c5hk49n";
+    sha256 = "1xxxpwln4v2yasa35y7552fsfd8fbg50gnbp4vxy0ajj2wvh9akg";
   };
   buildInputs = [
     unzip
diff --git a/nixpkgs/pkgs/development/interpreters/clojure/default.nix b/nixpkgs/pkgs/development/interpreters/clojure/default.nix
index b5a7c2b467ef..8187bf4af8e1 100644
--- a/nixpkgs/pkgs/development/interpreters/clojure/default.nix
+++ b/nixpkgs/pkgs/development/interpreters/clojure/default.nix
@@ -2,30 +2,30 @@
 
 stdenv.mkDerivation rec {
   pname = "clojure";
-  version = "1.10.1.469";
+  version = "1.10.1.492";
 
   src = fetchurl {
     url = "https://download.clojure.org/install/clojure-tools-${version}.tar.gz";
-    sha256 = "0hpb6rixmgllss69vl9zlpb41svm4mx4xmfbq1q7y12jsxckzgpq";
+    sha256 = "09mhy5xw9kdr10a1xpbn5v97qyyhngw5s1n1alrs45a4m3l11iky";
   };
 
   buildInputs = [ makeWrapper ];
 
-  outputs = [ "out" "prefix" ];
-
   installPhase = let
     binPath = stdenv.lib.makeBinPath [ rlwrap jdk11 ];
-  in ''
-    mkdir -p $prefix/libexec
-    cp clojure-tools-${version}.jar $prefix/libexec
-    cp example-deps.edn $prefix
-
-    substituteInPlace clojure --replace PREFIX $prefix
-
-    install -Dt $out/bin clj clojure
-    wrapProgram $out/bin/clj --prefix PATH : $out/bin:${binPath}
-    wrapProgram $out/bin/clojure --prefix PATH : $out/bin:${binPath}
-  '';
+  in
+    ''
+      mkdir -p $out/libexec
+      cp clojure-tools-${version}.jar $out/libexec
+      cp example-deps.edn $out
+      cp deps.edn $out
+
+      substituteInPlace clojure --replace PREFIX $out
+
+      install -Dt $out/bin clj clojure
+      wrapProgram $out/bin/clj --prefix PATH : $out/bin:${binPath}
+      wrapProgram $out/bin/clojure --prefix PATH : $out/bin:${binPath}
+    '';
 
   meta = with stdenv.lib; {
     description = "A Lisp dialect for the JVM";
diff --git a/nixpkgs/pkgs/development/interpreters/duktape/default.nix b/nixpkgs/pkgs/development/interpreters/duktape/default.nix
index f968e04bbe99..369c3840b874 100644
--- a/nixpkgs/pkgs/development/interpreters/duktape/default.nix
+++ b/nixpkgs/pkgs/development/interpreters/duktape/default.nix
@@ -2,10 +2,10 @@
 
 stdenv.mkDerivation rec {
   pname = "duktape";
-  version = "2.4.0";
+  version = "2.5.0";
   src = fetchurl {
     url = "http://duktape.org/duktape-${version}.tar.xz";
-    sha256 = "1z3i0ymnkk6q48bmbgh59g1ryrwjdv46vrf6nbnmqfv3s43r7a46";
+    sha256 = "05ln6b2a0s8ynz28armwqs2r5zjyi3cxi0dx6ahnxlqw19b13m43";
   };
 
   buildPhase = ''
diff --git a/nixpkgs/pkgs/development/interpreters/eff/default.nix b/nixpkgs/pkgs/development/interpreters/eff/default.nix
index 7c7cd9abb7e9..9da2b0d899d7 100644
--- a/nixpkgs/pkgs/development/interpreters/eff/default.nix
+++ b/nixpkgs/pkgs/development/interpreters/eff/default.nix
@@ -22,7 +22,7 @@ stdenv.mkDerivation {
   checkTarget = "test";
 
   meta = with stdenv.lib; {
-    homepage = http://www.eff-lang.org;
+    homepage = https://www.eff-lang.org;
     description = "A functional programming language based on algebraic effects and their handlers";
     longDescription = ''
       Eff is a functional language with handlers of not only exceptions,
diff --git a/nixpkgs/pkgs/development/interpreters/elixir/1.9.nix b/nixpkgs/pkgs/development/interpreters/elixir/1.9.nix
index b9b2400b78b9..4eead35bae37 100644
--- a/nixpkgs/pkgs/development/interpreters/elixir/1.9.nix
+++ b/nixpkgs/pkgs/development/interpreters/elixir/1.9.nix
@@ -1,7 +1,9 @@
 { mkDerivation }:
 
+# How to obtain `sha256`:
+# nix-prefetch-url --unpack https://github.com/elixir-lang/elixir/archive/v${version}.tar.gz
 mkDerivation {
-  version = "1.9.1";
-  sha256 = "106s2a3dykc5iwfrd5icqd737yfzaz1dw4x5v1j5z2fvf46h96dx";
+  version = "1.9.4";
+  sha256 = "1l4318g35y4h0vi2w07ayc3jizw1xc3s7hdb47w6j3iw33y06g6b";
   minimumOTPVersion = "20";
 }
diff --git a/nixpkgs/pkgs/development/interpreters/elixir/generic-builder.nix b/nixpkgs/pkgs/development/interpreters/elixir/generic-builder.nix
index b7e98af21097..a11865571018 100644
--- a/nixpkgs/pkgs/development/interpreters/elixir/generic-builder.nix
+++ b/nixpkgs/pkgs/development/interpreters/elixir/generic-builder.nix
@@ -10,7 +10,7 @@
 } @ args:
 
 let
-  inherit (stdenv.lib) getVersion versionAtLeast;
+  inherit (stdenv.lib) getVersion versionAtLeast optional;
 
 in
   assert versionAtLeast (getVersion erlang) minimumOTPVersion;
@@ -29,9 +29,7 @@ in
 
     inherit debugInfo;
 
-    buildFlags = if debugInfo
-      then "ERL_COMPILER_OPTIONS=debug_info"
-      else "";
+    buildFlags = optional debugInfo "ERL_COMPILER_OPTIONS=debug_info";
 
     preBuild = ''
       # The build process uses ./rebar. Link it to the nixpkgs rebar
diff --git a/nixpkgs/pkgs/development/interpreters/erlang/R22.nix b/nixpkgs/pkgs/development/interpreters/erlang/R22.nix
index 8b471f632471..88fe21453a82 100644
--- a/nixpkgs/pkgs/development/interpreters/erlang/R22.nix
+++ b/nixpkgs/pkgs/development/interpreters/erlang/R22.nix
@@ -1,8 +1,10 @@
 { mkDerivation }:
 
+# How to obtain `sha256`:
+# nix-prefetch-url --unpack https://github.com/erlang/otp/archive/OTP-${version}.tar.gz
 mkDerivation {
-  version = "22.0.4";
-  sha256 = "1aqkhd6nwdn4xp5yz02zbymd4x8ij8fjw9ji8kh860n1a513k9ai";
+  version = "22.1.7";
+  sha256 = "18aqy2s8nqd82v4lzzxknrwjva8mv1y2hvai9cakz5nkyd3vwq62";
 
   prePatch = ''
     substituteInPlace make/configure.in --replace '`sw_vers -productVersion`' "''${MACOSX_DEPLOYMENT_TARGET:-10.12}"
diff --git a/nixpkgs/pkgs/development/interpreters/erlang/generic-builder.nix b/nixpkgs/pkgs/development/interpreters/erlang/generic-builder.nix
index 3f1c21cc8819..c0203e5915f7 100644
--- a/nixpkgs/pkgs/development/interpreters/erlang/generic-builder.nix
+++ b/nixpkgs/pkgs/development/interpreters/erlang/generic-builder.nix
@@ -2,7 +2,7 @@
 , libxml2, libxslt, ncurses, openssl, perl, autoconf
 , openjdk ? null # javacSupport
 , unixODBC ? null # odbcSupport
-, libGLU_combined ? null, wxGTK ? null, wxmac ? null, xorg ? null # wxSupport
+, libGL ? null, libGLU ? null, wxGTK ? null, wxmac ? null, xorg ? null # wxSupport
 , withSystemd ? stdenv.isLinux, systemd # systemd support in epmd
 }:
 
@@ -18,13 +18,13 @@
 , enableKernelPoll ? true
 , javacSupport ? false, javacPackages ? [ openjdk ]
 , odbcSupport ? false, odbcPackages ? [ unixODBC ]
-, wxSupport ? true, wxPackages ? [ libGLU_combined wxGTK xorg.libX11 ]
+, wxSupport ? true, wxPackages ? [ libGL libGLU wxGTK xorg.libX11 ]
 , preUnpack ? "", postUnpack ? ""
 , patches ? [], patchPhase ? "", prePatch ? "", postPatch ? ""
 , configureFlags ? [], configurePhase ? "", preConfigure ? "", postConfigure ? ""
 , buildPhase ? "", preBuild ? "", postBuild ? ""
 , installPhase ? "", preInstall ? "", postInstall ? ""
-, installTargets ? "install install-docs"
+, installTargets ? [ "install" "install-docs" ]
 , checkPhase ? "", preCheck ? "", postCheck ? ""
 , fixupPhase ? "", preFixup ? "", postFixup ? ""
 , meta ? {}
@@ -32,7 +32,7 @@
 
 assert wxSupport -> (if stdenv.isDarwin
   then wxmac != null
-  else libGLU_combined != null && wxGTK != null && xorg != null);
+  else libGL != null && libGLU != null && wxGTK != null && xorg != null);
 
 assert odbcSupport -> unixODBC != null;
 assert javacSupport -> openjdk != null;
@@ -121,8 +121,7 @@ in stdenv.mkDerivation ({
       tolerance.
     '';
 
-    # aarch64 is supposed to work but started failing in https://hydra.nixos.org/build/83735973
-    platforms = subtractLists [ "aarch64-linux" ] platforms.unix;
+    platforms = platforms.unix;
     maintainers = with maintainers; [ the-kenny sjmackenzie couchemar gleber ];
     license = licenses.asl20;
   } // meta);
@@ -142,7 +141,7 @@ in stdenv.mkDerivation ({
 // optionalAttrs (preCheck != "")       { inherit preCheck; }
 // optionalAttrs (postCheck != "")      { inherit postCheck; }
 // optionalAttrs (installPhase != "")   { inherit installPhase; }
-// optionalAttrs (installTargets != "") { inherit installTargets; }
+// optionalAttrs (installTargets != []) { inherit installTargets; }
 // optionalAttrs (preInstall != "")     { inherit preInstall; }
 // optionalAttrs (fixupPhase != "")     { inherit fixupPhase; }
 // optionalAttrs (preFixup != "")       { inherit preFixup; }
diff --git a/nixpkgs/pkgs/development/interpreters/evcxr/default.nix b/nixpkgs/pkgs/development/interpreters/evcxr/default.nix
index c4259091f7b1..1cc63788555f 100644
--- a/nixpkgs/pkgs/development/interpreters/evcxr/default.nix
+++ b/nixpkgs/pkgs/development/interpreters/evcxr/default.nix
@@ -2,13 +2,13 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "evcxr";
-  version = "0.4.5";
+  version = "0.4.6";
 
   src = fetchFromGitHub {
     owner = "google";
     repo = "evcxr";
     rev = "v${version}";
-    sha256 = "13fs9fgvdf8bh6vc8xs8qhil0a1qhm4gvv0ici37xh8a94ngsn7h";
+    sha256 = "1yzvqf93zz3ncck4dyq2kayp408lm3h6fx0fb212j7h70mlzx984";
   };
 
   cargoSha256 = "0g17g12isah4nkqp9i299qr1sz19k4czcc43rm1wbs0y9szaqvwc";
diff --git a/nixpkgs/pkgs/development/interpreters/gauche/default.nix b/nixpkgs/pkgs/development/interpreters/gauche/default.nix
index 71542046af91..9b38d1e4ad54 100644
--- a/nixpkgs/pkgs/development/interpreters/gauche/default.nix
+++ b/nixpkgs/pkgs/development/interpreters/gauche/default.nix
@@ -4,11 +4,11 @@
 
 stdenv.mkDerivation rec {
   pname = "gauche";
-  version = "0.9.8";
+  version = "0.9.9";
 
   src = fetchurl {
     url = "mirror://sourceforge/gauche/Gauche-${version}.tgz";
-    sha256 = "0jxp1ladpy8kvfvk561c64spf1c3d6giqla6zscqkd6qa480vcry";
+    sha256 = "1yzpszhw52vkpr65r5d4khf3489mnnvnw58dd2wsvvx7499k5aac";
   };
 
   nativeBuildInputs = [ pkgconfig texinfo ];
diff --git a/nixpkgs/pkgs/development/interpreters/gnu-apl/default.nix b/nixpkgs/pkgs/development/interpreters/gnu-apl/default.nix
index 94ec02443823..c2a3556cfea2 100644
--- a/nixpkgs/pkgs/development/interpreters/gnu-apl/default.nix
+++ b/nixpkgs/pkgs/development/interpreters/gnu-apl/default.nix
@@ -12,12 +12,12 @@ stdenv.mkDerivation rec {
   buildInputs = [ readline gettext ncurses ];
 
   # Needed with GCC 8
-  NIX_CFLAGS_COMPILE = with stdenv.lib; (optionals stdenv.cc.isGNU [
+  NIX_CFLAGS_COMPILE = with stdenv.lib; toString ((optionals stdenv.cc.isGNU [
     "-Wno-error=int-in-bool-context"
     "-Wno-error=class-memaccess"
     "-Wno-error=restrict"
     "-Wno-error=format-truncation"
-   ]) ++ optional stdenv.cc.isClang "-Wno-error=null-dereference";
+   ]) ++ optional stdenv.cc.isClang "-Wno-error=null-dereference");
 
   patchPhase = stdenv.lib.optionalString stdenv.isDarwin ''
     substituteInPlace src/LApack.cc --replace "malloc.h" "malloc/malloc.h"
diff --git a/nixpkgs/pkgs/development/interpreters/gtk-server/default.nix b/nixpkgs/pkgs/development/interpreters/gtk-server/default.nix
index 6f5a5ec0f198..4a8330f2749c 100644
--- a/nixpkgs/pkgs/development/interpreters/gtk-server/default.nix
+++ b/nixpkgs/pkgs/development/interpreters/gtk-server/default.nix
@@ -1,28 +1,34 @@
-{ stdenv, fetchurl, libffcall, gtk2, pkgconfig }:
+{ stdenv, fetchurl
+, glib
+, gtk3
+, libffcall
+, pkgconfig
+, wrapGAppsHook
+}:
 
 stdenv.mkDerivation rec {
-  v = "2.3.1";
-  name = "gtk-server-${v}";
+  pname = "gtk-server";
+  version = "2.4.5";
 
   src = fetchurl {
-    url = "mirror://sourceforge/gtk-server/${name}-sr.tar.gz";
-    sha256 = "0z8ng5rhxc7fpsj3d50h25wkgcnxjfy030jm8r9w9m729w2c9hxb";
+    url = "https://www.gtk-server.org/stable/gtk-server-${version}.tar.gz";
+    sha256 = "0vlx5ibvc7hyc8yipjgvrx1azvmh42i9fv1khg3dvn09nrdkrc7f";
   };
 
-  nativeBuildInputs = [ pkgconfig ];
-  buildInputs = [ libffcall gtk2 ];
+  preConfigure = ''
+    cd src
+  '';
 
-  configureOptions = [ "--with-gtk2" ];
+  nativeBuildInputs = [ pkgconfig wrapGAppsHook ];
+  buildInputs = [ libffcall glib gtk3 ];
 
-  NIX_LDFLAGS = [
-    "-ldl"
-  ];
+  configureOptions = [ "--with-gtk3" ];
 
-  meta = {
+  meta = with stdenv.lib; {
     description = "gtk-server for interpreted GUI programming";
-    homepage = http://www.gtk-server.org/;
-    license = stdenv.lib.licenses.gpl2Plus;
-    maintainers = [stdenv.lib.maintainers.tohl];
-    platforms = stdenv.lib.platforms.linux;
+    homepage = "http://www.gtk-server.org/";
+    license = licenses.gpl2Plus;
+    maintainers = [ maintainers.tohl ];
+    platforms = platforms.linux;
   };
 }
diff --git a/nixpkgs/pkgs/development/interpreters/guile/setup-hook-2.0.sh b/nixpkgs/pkgs/development/interpreters/guile/setup-hook-2.0.sh
index c7fb4f70fc6a..6bb3910aaff4 100644
--- a/nixpkgs/pkgs/development/interpreters/guile/setup-hook-2.0.sh
+++ b/nixpkgs/pkgs/development/interpreters/guile/setup-hook-2.0.sh
@@ -1,12 +1,12 @@
 addGuileLibPath () {
     if test -d "$1/share/guile/site/2.0"
     then
-        export GUILE_LOAD_PATH="${GUILE_LOAD_PATH}${GUILE_LOAD_PATH:+:}$1/share/guile/site/2.0"
-        export GUILE_LOAD_COMPILED_PATH="${GUILE_LOAD_COMPILED_PATH}${GUILE_LOAD_COMPILED_PATH:+:}$1/share/guile/site/2.0"
+        export GUILE_LOAD_PATH="${GUILE_LOAD_PATH-}${GUILE_LOAD_PATH:+:}$1/share/guile/site/2.0"
+        export GUILE_LOAD_COMPILED_PATH="${GUILE_LOAD_COMPILED_PATH-}${GUILE_LOAD_COMPILED_PATH:+:}$1/share/guile/site/2.0"
     elif test -d "$1/share/guile/site"
     then
-        export GUILE_LOAD_PATH="${GUILE_LOAD_PATH}${GUILE_LOAD_PATH:+:}$1/share/guile/site"
-        export GUILE_LOAD_COMPILED_PATH="${GUILE_LOAD_COMPILED_PATH}${GUILE_LOAD_COMPILED_PATH:+:}$1/share/guile/site"
+        export GUILE_LOAD_PATH="${GUILE_LOAD_PATH-}${GUILE_LOAD_PATH:+:}$1/share/guile/site"
+        export GUILE_LOAD_COMPILED_PATH="${GUILE_LOAD_COMPILED_PATH-}${GUILE_LOAD_COMPILED_PATH:+:}$1/share/guile/site"
     fi
 }
 
diff --git a/nixpkgs/pkgs/development/interpreters/guile/setup-hook-2.2.sh b/nixpkgs/pkgs/development/interpreters/guile/setup-hook-2.2.sh
index 73e700bde026..4b3541fcc7f0 100644
--- a/nixpkgs/pkgs/development/interpreters/guile/setup-hook-2.2.sh
+++ b/nixpkgs/pkgs/development/interpreters/guile/setup-hook-2.2.sh
@@ -1,12 +1,12 @@
 addGuileLibPath () {
     if test -d "$1/share/guile/site/2.2"
     then
-        export GUILE_LOAD_PATH="${GUILE_LOAD_PATH}${GUILE_LOAD_PATH:+:}$1/share/guile/site/2.2"
-        export GUILE_LOAD_COMPILED_PATH="${GUILE_LOAD_COMPILED_PATH}${GUILE_LOAD_COMPILED_PATH:+:}$1/share/guile/site/2.2"
+        export GUILE_LOAD_PATH="${GUILE_LOAD_PATH-}${GUILE_LOAD_PATH:+:}$1/share/guile/site/2.2"
+        export GUILE_LOAD_COMPILED_PATH="${GUILE_LOAD_COMPILED_PATH-}${GUILE_LOAD_COMPILED_PATH:+:}$1/share/guile/site/2.2"
     elif test -d "$1/share/guile/site"
     then
-        export GUILE_LOAD_PATH="${GUILE_LOAD_PATH}${GUILE_LOAD_PATH:+:}$1/share/guile/site"
-        export GUILE_LOAD_COMPILED_PATH="${GUILE_LOAD_COMPILED_PATH}${GUILE_LOAD_COMPILED_PATH:+:}$1/share/guile/site"
+        export GUILE_LOAD_PATH="${GUILE_LOAD_PATH-}${GUILE_LOAD_PATH:+:}$1/share/guile/site"
+        export GUILE_LOAD_COMPILED_PATH="${GUILE_LOAD_COMPILED_PATH-}${GUILE_LOAD_COMPILED_PATH:+:}$1/share/guile/site"
     fi
 }
 
diff --git a/nixpkgs/pkgs/development/interpreters/guile/setup-hook.sh b/nixpkgs/pkgs/development/interpreters/guile/setup-hook.sh
index bf04fee1e893..d006b50ce8ef 100644
--- a/nixpkgs/pkgs/development/interpreters/guile/setup-hook.sh
+++ b/nixpkgs/pkgs/development/interpreters/guile/setup-hook.sh
@@ -1,7 +1,7 @@
 addGuileLibPath () {
     if test -d "$1/share/guile/site"
     then
-        export GUILE_LOAD_PATH="${GUILE_LOAD_PATH}${GUILE_LOAD_PATH:+:}$1/share/guile/site"
+        export GUILE_LOAD_PATH="${GUILE_LOAD_PATH-}${GUILE_LOAD_PATH:+:}$1/share/guile/site"
     fi
 }
 
diff --git a/nixpkgs/pkgs/development/interpreters/hy/default.nix b/nixpkgs/pkgs/development/interpreters/hy/default.nix
index a6acd603c815..5816b3a175c6 100644
--- a/nixpkgs/pkgs/development/interpreters/hy/default.nix
+++ b/nixpkgs/pkgs/development/interpreters/hy/default.nix
@@ -1,15 +1,15 @@
-{ stdenv, fetchurl, pythonPackages }:
+{ stdenv, fetchurl, python2Packages }:
 
-pythonPackages.buildPythonApplication rec {
+python2Packages.buildPythonApplication rec {
   pname = "hy";
   version = "0.17.0";
 
-  src = pythonPackages.fetchPypi {
+  src = python2Packages.fetchPypi {
     inherit pname version;
     sha256 = "1gdbqsirsdxj320wnp7my5awzs1kfs6m4fqmkzbd1zd47qzj0zfi";
   };
 
-  propagatedBuildInputs = with pythonPackages; [
+  propagatedBuildInputs = with python2Packages; [
     appdirs
     astor
     clint
diff --git a/nixpkgs/pkgs/development/interpreters/io/default.nix b/nixpkgs/pkgs/development/interpreters/io/default.nix
index 6c0568d68134..f763274c15d7 100644
--- a/nixpkgs/pkgs/development/interpreters/io/default.nix
+++ b/nixpkgs/pkgs/development/interpreters/io/default.nix
@@ -1,5 +1,5 @@
 { stdenv, fetchFromGitHub, cmake, zlib, sqlite, gmp, libffi, cairo,
-  ncurses, freetype, libGLU_combined, libpng, libtiff, libjpeg, readline, libsndfile,
+  ncurses, freetype, libGLU, libGL, libpng, libtiff, libjpeg, readline, libsndfile,
   libxml2, freeglut, libsamplerate, pcre, libevent, libedit, yajl,
   python3, openssl, glfw, pkgconfig, libpthreadstubs, libXdmcp, libmemcached
 }:
@@ -19,7 +19,7 @@ stdenv.mkDerivation {
 
   buildInputs = [
     zlib sqlite gmp libffi cairo ncurses freetype
-    libGLU_combined libpng libtiff libjpeg readline libsndfile libxml2
+    libGLU libGL libpng libtiff libjpeg readline libsndfile libxml2
     freeglut libsamplerate pcre libevent libedit yajl
     pkgconfig glfw openssl libpthreadstubs libXdmcp
     libmemcached python3
@@ -44,7 +44,7 @@ stdenv.mkDerivation {
 
     maintainers = with maintainers; [
       raskin
-      z77z
+      maggesi
       vrthra
     ];
     platforms = [ "x86_64-linux" ];
diff --git a/nixpkgs/pkgs/development/interpreters/janet/default.nix b/nixpkgs/pkgs/development/interpreters/janet/default.nix
index d00e37733f2a..3138d1ba3d72 100644
--- a/nixpkgs/pkgs/development/interpreters/janet/default.nix
+++ b/nixpkgs/pkgs/development/interpreters/janet/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "janet";
-  version = "1.3.1";
+  version = "1.6.0";
 
   src = fetchFromGitHub {
     owner = "janet-lang";
     repo = pname;
     rev = "v${version}";
-    sha256 = "160wd3436cl50wkvqpaf6mbb69qlzzammcg5yb07wx9yw31g399p";
+    sha256 = "044pqwbpdyn7afij68wxks8drb84kmj31c8ziqsfm5msi2al0rw2";
   };
 
   nativeBuildInputs = [ meson ninja ];
diff --git a/nixpkgs/pkgs/development/interpreters/jimtcl/default.nix b/nixpkgs/pkgs/development/interpreters/jimtcl/default.nix
index 91b4c0b9a9e6..d803fe43fd7a 100644
--- a/nixpkgs/pkgs/development/interpreters/jimtcl/default.nix
+++ b/nixpkgs/pkgs/development/interpreters/jimtcl/default.nix
@@ -5,35 +5,53 @@ let
 
 in stdenv.mkDerivation rec {
   pname = "jimtcl";
-  version = "0.78";
+  version = "0.79";
 
   src = fetchFromGitHub {
     owner = "msteveb";
     repo = "jimtcl";
     rev = version;
-    sha256 = "1nrjxjfh69i35ig8sxdlal4ydd3cl0x68c05s6svnf1y2i1bl23j";
+    sha256 = "1k88hz0v3bi19xdvlp0i9nsx38imzwpjh632w7326zwbv2wldf0h";
   };
 
-  buildInputs = [
-    sqlite readline asciidoc SDL SDL_gfx
+  nativeBuildInputs = [
+    asciidoc
   ];
 
-  NIX_CFLAGS_COMPILE = makeSDLFlags [ SDL SDL_gfx ];
+  buildInputs = [
+    sqlite readline SDL SDL_gfx
+  ];
 
   configureFlags = [
+    "--shared"
     "--with-ext=oo"
     "--with-ext=tree"
     "--with-ext=binary"
     "--with-ext=sqlite3"
     "--with-ext=readline"
     "--with-ext=sdl"
+    "--with-ext=json"
     "--enable-utf8"
     "--ipv6"
   ];
 
+  NIX_CFLAGS_COMPILE = toString (makeSDLFlags [ SDL SDL_gfx ]);
+
+  enableParallelBuilding = true;
+
+  doCheck = true;
+  preCheck = ''
+    # test exec2-3.2 fails depending on platform or sandboxing (?)
+    rm tests/exec2.test
+  '';
+
+  postInstall = ''
+    ln -sr $out/lib/libjim.so.${version} $out/lib/libjim.so
+  '';
+
   meta = {
     description = "An open source small-footprint implementation of the Tcl programming language";
-    homepage = http://jim.tcl.tk/;
+    homepage = "http://jim.tcl.tk/";
     license = stdenv.lib.licenses.bsd2;
     platforms = stdenv.lib.platforms.all;
     maintainers = with stdenv.lib.maintainers; [ dbohdan vrthra ];
diff --git a/nixpkgs/pkgs/development/interpreters/joker/default.nix b/nixpkgs/pkgs/development/interpreters/joker/default.nix
index 233900cadd03..669bbc951239 100644
--- a/nixpkgs/pkgs/development/interpreters/joker/default.nix
+++ b/nixpkgs/pkgs/development/interpreters/joker/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "joker";
-  version = "0.12.7";
+  version = "0.12.9";
 
   src = fetchFromGitHub {
     rev = "v${version}";
     owner = "candid82";
     repo = "joker";
-    sha256 = "0panmhrg1i158xbvqvq3s3217smbj7ynwlaiks18pmss36xx9dk4";
+    sha256 = "19n2pzs045mflyzgq3cpa4w2fbd0f77j5k6c4yc3gk0mcwgdxhs2";
   };
 
   modSha256 = "0i16vf7n1xfz5kp9w3fvyc9y9wgz4h396glgpdaznpxjr12rb43j";
diff --git a/nixpkgs/pkgs/development/interpreters/jruby/default.nix b/nixpkgs/pkgs/development/interpreters/jruby/default.nix
index 6c4a9f20fa3e..4e3f92d7cdc2 100644
--- a/nixpkgs/pkgs/development/interpreters/jruby/default.nix
+++ b/nixpkgs/pkgs/development/interpreters/jruby/default.nix
@@ -6,11 +6,11 @@ rubyVersion = callPackage ../ruby/ruby-version.nix {} "2" "3" "3" "";
 jruby = stdenv.mkDerivation rec {
   pname = "jruby";
 
-  version = "9.2.8.0";
+  version = "9.2.9.0";
 
   src = fetchurl {
     url = "https://s3.amazonaws.com/jruby.org/downloads/${version}/jruby-bin-${version}.tar.gz";
-    sha256 = "1fy717xy8csc89dnz3a8j96arq1s1vs8nakkkpcaqm1z1648didp";
+    sha256 = "04grdf57c1dgragm17yyjk69ak8mwiwfc1vjzskzcaag3fwgplyf";
   };
 
   buildInputs = [ makeWrapper ];
diff --git a/nixpkgs/pkgs/development/interpreters/kona/default.nix b/nixpkgs/pkgs/development/interpreters/kona/default.nix
index a9922a387657..9b7f36f4c874 100644
--- a/nixpkgs/pkgs/development/interpreters/kona/default.nix
+++ b/nixpkgs/pkgs/development/interpreters/kona/default.nix
@@ -8,7 +8,7 @@ stdenv.mkDerivation rec {
     sha256 = "0c1yf3idqkfq593xgqb25r2ykmfmp83zzh3q7kb8095a069gvri3";
   };
 
-  makeFlags = "PREFIX=$(out)";
+  makeFlags = [ "PREFIX=$(out)" ];
   preInstall = ''mkdir -p "$out/bin"'';
 
   meta = with stdenv.lib; {
diff --git a/nixpkgs/pkgs/development/interpreters/lfe/generic-builder.nix b/nixpkgs/pkgs/development/interpreters/lfe/generic-builder.nix
index fb034a471e7c..6e74229e1e88 100644
--- a/nixpkgs/pkgs/development/interpreters/lfe/generic-builder.nix
+++ b/nixpkgs/pkgs/development/interpreters/lfe/generic-builder.nix
@@ -9,9 +9,9 @@
 }:
 
 let
-  inherit (stdenv.lib) getVersion versionAtLeast splitString head;
+  inherit (stdenv.lib) getVersion versionAtLeast versions;
 
-  mainVersion = head (splitString "." (getVersion erlang));
+  mainVersion = versions.major (getVersion erlang);
 
   proper = buildHex {
     name = "proper";
diff --git a/nixpkgs/pkgs/development/interpreters/love/0.10.nix b/nixpkgs/pkgs/development/interpreters/love/0.10.nix
index 7e90c6dfb287..e1ca3ded2083 100644
--- a/nixpkgs/pkgs/development/interpreters/love/0.10.nix
+++ b/nixpkgs/pkgs/development/interpreters/love/0.10.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchFromBitbucket, pkgconfig, SDL2, libGLU_combined, openal, luajit,
+{ stdenv, fetchFromBitbucket, pkgconfig, SDL2, libGLU, libGL, openal, luajit,
   libdevil, freetype, physfs, libmodplug, mpg123, libvorbis, libogg,
   libtheora, which, autoconf, automake, libtool
 }:
@@ -19,7 +19,7 @@ stdenv.mkDerivation {
 
   nativeBuildInputs = [ pkgconfig ];
   buildInputs = [
-    SDL2 libGLU_combined openal luajit libdevil freetype physfs libmodplug mpg123
+    SDL2 libGLU libGL openal luajit libdevil freetype physfs libmodplug mpg123
     libvorbis libogg libtheora autoconf which libtool automake
   ];
 
@@ -29,7 +29,7 @@ stdenv.mkDerivation {
     "--with-lua=luajit"
   ];
 
-  NIX_CFLAGS_COMPILE = [ "-DluaL_reg=luaL_Reg" ]; # needed since luajit-2.1.0-beta3
+  NIX_CFLAGS_COMPILE = "-DluaL_reg=luaL_Reg"; # needed since luajit-2.1.0-beta3
 
   meta = {
     homepage = http://love2d.org;
diff --git a/nixpkgs/pkgs/development/interpreters/love/0.7.nix b/nixpkgs/pkgs/development/interpreters/love/0.7.nix
index 7f39259c298e..3bf8aee0d07b 100644
--- a/nixpkgs/pkgs/development/interpreters/love/0.7.nix
+++ b/nixpkgs/pkgs/development/interpreters/love/0.7.nix
@@ -1,5 +1,5 @@
 { stdenv, fetchurl, pkgconfig
-, SDL, libGLU_combined, openal, lua
+, SDL, libGLU, libGL, openal, lua
 , libdevil, freetype, physfs
 , libmodplug, mpg123, libvorbis, libogg
 , libmng
@@ -17,7 +17,7 @@ stdenv.mkDerivation rec {
 
   nativeBuildInputs = [ pkgconfig ];
   buildInputs = [
-    SDL libGLU_combined openal lua
+    SDL libGLU libGL openal lua
     libdevil freetype physfs libmodplug mpg123 libvorbis libogg libmng
   ];
 
diff --git a/nixpkgs/pkgs/development/interpreters/love/0.8.nix b/nixpkgs/pkgs/development/interpreters/love/0.8.nix
index 792fe299e4dd..3a6c385ee5fc 100644
--- a/nixpkgs/pkgs/development/interpreters/love/0.8.nix
+++ b/nixpkgs/pkgs/development/interpreters/love/0.8.nix
@@ -1,5 +1,5 @@
 { stdenv, fetchurl, pkgconfig
-, SDL, libGLU_combined, openal, lua
+, SDL, libGLU, libGL, openal, lua
 , libdevil, freetype, physfs
 , libmodplug, mpg123, libvorbis, libogg
 }:
@@ -15,7 +15,7 @@ stdenv.mkDerivation rec {
 
   nativeBuildInputs = [ pkgconfig ];
   buildInputs = [
-    SDL libGLU_combined openal lua
+    SDL libGLU libGL openal lua
     libdevil freetype physfs libmodplug mpg123 libvorbis libogg
   ];
 
@@ -38,7 +38,7 @@ stdenv.mkDerivation rec {
     } || true
   '';
 
-  NIX_CFLAGS_COMPILE = [
+  NIX_CFLAGS_COMPILE = toString [
     "-I${SDL.dev}/include/SDL"
     "-I${freetype.dev}include/freetype2"
     "-DGL_GLEXT_PROTOTYPES" # https://community.khronos.org/t/glgenbuffers-was-not-declared-in-this-scope/59283/2
diff --git a/nixpkgs/pkgs/development/interpreters/love/0.9.nix b/nixpkgs/pkgs/development/interpreters/love/0.9.nix
index 425239af2242..a2182f454361 100644
--- a/nixpkgs/pkgs/development/interpreters/love/0.9.nix
+++ b/nixpkgs/pkgs/development/interpreters/love/0.9.nix
@@ -1,5 +1,5 @@
 { stdenv, fetchurl, pkgconfig
-, SDL2, libGLU_combined, openal, luajit
+, SDL2, libGLU, libGL, openal, luajit
 , libdevil, freetype, physfs
 , libmodplug, mpg123, libvorbis, libogg
 }:
@@ -13,7 +13,7 @@ stdenv.mkDerivation rec {
 
   nativeBuildInputs = [ pkgconfig ];
   buildInputs = [
-    SDL2 libGLU_combined openal luajit
+    SDL2 libGLU libGL openal luajit
     libdevil freetype physfs libmodplug mpg123 libvorbis libogg
   ];
 
@@ -30,5 +30,6 @@ stdenv.mkDerivation rec {
 
     platforms = stdenv.lib.platforms.linux;
     maintainers = [ stdenv.lib.maintainers.raskin ];
+    broken = true;
   };
 }
diff --git a/nixpkgs/pkgs/development/interpreters/love/11.1.nix b/nixpkgs/pkgs/development/interpreters/love/11.1.nix
index 478b147d1f3d..3629345baf6a 100644
--- a/nixpkgs/pkgs/development/interpreters/love/11.1.nix
+++ b/nixpkgs/pkgs/development/interpreters/love/11.1.nix
@@ -1,11 +1,11 @@
-{ stdenv, fetchFromBitbucket, pkgconfig, SDL2, libGLU_combined, openal, luajit,
+{ stdenv, fetchFromBitbucket, pkgconfig, SDL2, libGLU, libGL, openal, luajit,
   libdevil, freetype, physfs, libmodplug, mpg123, libvorbis, libogg,
   libtheora, which, autoconf, automake, libtool
 }:
 
 let
   pname = "love";
-  version = "11.2";
+  version = "11.3";
 in
 
 stdenv.mkDerivation {
@@ -14,12 +14,12 @@ stdenv.mkDerivation {
     owner = "rude";
     repo = "love";
     rev = version;
-    sha256 = "0q1lsgc1621czrg49nmabq6am9sgxa9syxrwzlksqqr4dyzw4nmf";
+    sha256 = "18gfp65ngb8k8g7hgbw2bhrwk2i7m56m21d39pk4484q9z8p4vm7";
   };
 
   nativeBuildInputs = [ pkgconfig ];
   buildInputs = [
-    SDL2 libGLU_combined openal luajit libdevil freetype physfs libmodplug mpg123
+    SDL2 libGLU libGL openal luajit libdevil freetype physfs libmodplug mpg123
     libvorbis libogg libtheora autoconf which libtool automake
   ];
 
@@ -29,7 +29,7 @@ stdenv.mkDerivation {
     "--with-lua=luajit"
   ];
 
-  NIX_CFLAGS_COMPILE = [ "-DluaL_reg=luaL_Reg" ]; # needed since luajit-2.1.0-beta3
+  NIX_CFLAGS_COMPILE = "-DluaL_reg=luaL_Reg"; # needed since luajit-2.1.0-beta3
 
   meta = {
     homepage = http://love2d.org;
diff --git a/nixpkgs/pkgs/development/interpreters/lua-5/5.1.0004-Fix-stack-overflow-in-vararg-functions.patch b/nixpkgs/pkgs/development/interpreters/lua-5/CVE-2014-5461.patch
index 31d3b8bdee76..31d3b8bdee76 100644
--- a/nixpkgs/pkgs/development/interpreters/lua-5/5.1.0004-Fix-stack-overflow-in-vararg-functions.patch
+++ b/nixpkgs/pkgs/development/interpreters/lua-5/CVE-2014-5461.patch
diff --git a/nixpkgs/pkgs/development/interpreters/lua-5/CVE-2019-6706.patch b/nixpkgs/pkgs/development/interpreters/lua-5/CVE-2019-6706.patch
new file mode 100644
index 000000000000..89e81b7eb68b
--- /dev/null
+++ b/nixpkgs/pkgs/development/interpreters/lua-5/CVE-2019-6706.patch
@@ -0,0 +1,22 @@
+--- a/src/lapi.c
++++ b/src/lapi.c
+@@ -1285,14 +1285,14 @@ LUA_API void *lua_upvalueid (lua_State *
+ 
+ LUA_API void lua_upvaluejoin (lua_State *L, int fidx1, int n1,
+                                             int fidx2, int n2) {
+-  LClosure *f1;
+-  UpVal **up1 = getupvalref(L, fidx1, n1, &f1);
++  UpVal **up1 = getupvalref(L, fidx1, n1, NULL); /* the last parameter not needed */
+   UpVal **up2 = getupvalref(L, fidx2, n2, NULL);
++  if (*up1 == *up2) return; /* Already joined */
++  (*up2)->refcount++;
++  if (upisopen(*up2)) (*up2)->u.open.touched = 1;
++  luaC_upvalbarrier(L, *up2);
+   luaC_upvdeccount(L, *up1);
+   *up1 = *up2;
+-  (*up1)->refcount++;
+-  if (upisopen(*up1)) (*up1)->u.open.touched = 1;
+-  luaC_upvalbarrier(L, *up1);
+ }
+ 
+ 
diff --git a/nixpkgs/pkgs/development/interpreters/lua-5/build-lua-package.nix b/nixpkgs/pkgs/development/interpreters/lua-5/build-lua-package.nix
index 74ccb91030aa..be7aa5fc09d7 100644
--- a/nixpkgs/pkgs/development/interpreters/lua-5/build-lua-package.nix
+++ b/nixpkgs/pkgs/development/interpreters/lua-5/build-lua-package.nix
@@ -161,7 +161,7 @@ builtins.removeAttrs attrs ["disabled" "checkInputs" "externalDeps"] // {
 
   # enabled only for src.rock
   setSourceRoot= let
-    name_only=(builtins.parseDrvName name).name;
+    name_only= lib.getName name;
   in
     lib.optionalString (knownRockspec == null) ''
     # format is rockspec_basename/source_basename
diff --git a/nixpkgs/pkgs/development/interpreters/lua-5/default.nix b/nixpkgs/pkgs/development/interpreters/lua-5/default.nix
index 08645dfb77f3..7e79ff8f117a 100644
--- a/nixpkgs/pkgs/development/interpreters/lua-5/default.nix
+++ b/nixpkgs/pkgs/development/interpreters/lua-5/default.nix
@@ -1,5 +1,5 @@
 # similar to interpreters/python/default.nix
-{ stdenv, lib, callPackage, fetchurl }:
+{ stdenv, lib, callPackage, fetchurl, fetchpatch }:
 let
   dsoPatch51 = fetchurl {
     url = "https://projects.archlinux.org/svntogit/packages.git/plain/trunk/lua-arch.patch?h=packages/lua51";
@@ -18,7 +18,10 @@ in rec {
   lua5_3 = callPackage ./interpreter.nix {
     sourceVersion = { major = "5"; minor = "3"; patch = "5"; };
     hash = "0c2eed3f960446e1a3e4b9a1ca2f3ff893b6ce41942cf54d5dd59ab4b3b058ac";
-    patches = lib.optionals stdenv.isDarwin [ ./5.2.darwin.patch ] ;
+    patches =
+      lib.optionals stdenv.isDarwin [ ./5.2.darwin.patch ] ++ [
+        ./CVE-2019-6706.patch
+      ];
     postConfigure = lib.optionalString (!stdenv.isDarwin) ''
       cat ${./lua-5.3-dso.make} >> src/Makefile
       sed -e 's/ALL_T *= */& $(LUA_SO)/' -i src/Makefile
@@ -49,7 +52,7 @@ in rec {
     sourceVersion = { major = "5"; minor = "1"; patch = "5"; };
     hash = "2640fc56a795f29d28ef15e13c34a47e223960b0240e8cb0a82d9b0738695333";
     patches = (if stdenv.isDarwin then [ ./5.1.darwin.patch ] else [ dsoPatch51 ])
-      ++ [ ./5.1.0004-Fix-stack-overflow-in-vararg-functions.patch ];
+      ++ [ ./CVE-2014-5461.patch ];
   };
 
   luajit_2_0 = import ../luajit/2.0.nix {
diff --git a/nixpkgs/pkgs/development/interpreters/lua-5/setup-hook.sh b/nixpkgs/pkgs/development/interpreters/lua-5/setup-hook.sh
index f7e56b62ac90..1c445b82afde 100644
--- a/nixpkgs/pkgs/development/interpreters/lua-5/setup-hook.sh
+++ b/nixpkgs/pkgs/development/interpreters/lua-5/setup-hook.sh
@@ -20,7 +20,7 @@ addToLuaSearchPathWithCustomDelimiter() {
   if [[ ! -d "$topDir" ]]; then return; fi
 
   # export only if we haven't already got this dir in the search path
-  if [[ ${!varName} == *"$absPattern"* ]]; then return; fi
+  if [[ ${!varName-} == *"$absPattern"* ]]; then return; fi
 
   export "${varName}=${!varName:+${!varName};}${absPattern}"
 }
diff --git a/nixpkgs/pkgs/development/interpreters/lua-5/wrapper.nix b/nixpkgs/pkgs/development/interpreters/lua-5/wrapper.nix
index 816744e61cff..53ec2baeb5e5 100644
--- a/nixpkgs/pkgs/development/interpreters/lua-5/wrapper.nix
+++ b/nixpkgs/pkgs/development/interpreters/lua-5/wrapper.nix
@@ -11,7 +11,7 @@
 let
   env = let
     paths =  requiredLuaModules (extraLibs ++ [ lua ] );
-  in buildEnv {
+  in (buildEnv {
     name = "${lua.name}-env";
 
     inherit paths;
@@ -20,12 +20,6 @@ let
 
     # we create wrapper for the binaries in the different packages
     postBuild = ''
-
-      . "${makeWrapper}/nix-support/setup-hook"
-
-      # get access to lua functions
-      . ${lua}/nix-support/setup-hook
-
       if [ -L "$out/bin" ]; then
           unlink "$out/bin"
       fi
@@ -68,5 +62,8 @@ let
         '';
     };
     };
-  };
+  }).overrideAttrs (_: {
+    # Add extra deps needed for postBuild hook.
+    nativeBuildInputs = [ makeWrapper lua ];
+  });
 in env
diff --git a/nixpkgs/pkgs/development/interpreters/luajit/2.0.nix b/nixpkgs/pkgs/development/interpreters/luajit/2.0.nix
index 0889b7fefe68..7db3830447f7 100644
--- a/nixpkgs/pkgs/development/interpreters/luajit/2.0.nix
+++ b/nixpkgs/pkgs/development/interpreters/luajit/2.0.nix
@@ -4,7 +4,8 @@ callPackage ./default.nix {
   version = "2.0.5";
   isStable = true;
   sha256 = "0yg9q4q6v028bgh85317ykc9whgxgysp76qzaqgq55y6jy11yjw7";
-  extraMeta = {
-    platforms = lib.filter (p: p != "aarch64-linux") lib.meta.platforms;
+  extraMeta = { # this isn't precise but it at least stops the useless Hydra build
+    platforms = with lib; filter (p: p != "aarch64-linux")
+      (platforms.linux ++ platforms.darwin);
   };
 }
diff --git a/nixpkgs/pkgs/development/interpreters/luajit/default.nix b/nixpkgs/pkgs/development/interpreters/luajit/default.nix
index 7db8feb98e71..5b7761164472 100644
--- a/nixpkgs/pkgs/development/interpreters/luajit/default.nix
+++ b/nixpkgs/pkgs/development/interpreters/luajit/default.nix
@@ -62,12 +62,12 @@ stdenv.mkDerivation rec {
     interpreter = "${self}/bin/lua";
   };
 
-  meta = with stdenv.lib; extraMeta // {
+  meta = with stdenv.lib; {
     description = "High-performance JIT compiler for Lua 5.1";
     homepage    = http://luajit.org;
     license     = licenses.mit;
     platforms   = platforms.linux ++ platforms.darwin;
     maintainers = with maintainers; [ thoughtpolice smironov vcunat andir ];
-  };
+  } // extraMeta;
 }
 
diff --git a/nixpkgs/pkgs/development/interpreters/lush/default.nix b/nixpkgs/pkgs/development/interpreters/lush/default.nix
index 5a241fbf83ee..a8db08e87a2c 100644
--- a/nixpkgs/pkgs/development/interpreters/lush/default.nix
+++ b/nixpkgs/pkgs/development/interpreters/lush/default.nix
@@ -1,4 +1,4 @@
-{stdenv, fetchurl, libX11, xorgproto, indent, readline, gsl, freeglut, libGLU_combined, SDL
+{stdenv, fetchurl, libX11, xorgproto, indent, readline, gsl, freeglut, libGLU, libGL, SDL
 , blas, libbfd, intltool, gettext, zlib, libSM}:
 
 stdenv.mkDerivation rec {
@@ -12,7 +12,7 @@ stdenv.mkDerivation rec {
   };
 
   buildInputs = [
-    libX11 libSM xorgproto indent readline gsl freeglut libGLU_combined SDL blas libbfd
+    libX11 libSM xorgproto indent readline gsl freeglut libGLU libGL SDL blas libbfd
     intltool gettext zlib
   ];
 
diff --git a/nixpkgs/pkgs/development/interpreters/metamath/default.nix b/nixpkgs/pkgs/development/interpreters/metamath/default.nix
index 686cfee19a6d..2213ace8f572 100644
--- a/nixpkgs/pkgs/development/interpreters/metamath/default.nix
+++ b/nixpkgs/pkgs/development/interpreters/metamath/default.nix
@@ -2,21 +2,23 @@
 
 stdenv.mkDerivation {
   pname = "metamath";
-  version = "0.172";
+  version = "0.178";
 
   buildInputs = [ autoreconfHook ];
 
-  # This points to my own repository because there is no official repository
-  # for metamath; there's a download location but it gets updated in place with
-  # no permanent link. See discussion at
-  # https://groups.google.com/forum/#!topic/metamath/N4WEWQQVUfY
   src = fetchFromGitHub {
-    owner = "Taneb";
-    repo = "metamath";
-    rev = "43141cd17638f8efb409dc5d46e7de6a6c39ec42";
-    sha256 = "07c7df0zl0wsb0pvdgkwikpr8kz7fi3mshxzk61vkamyp68djjb5";
+    owner = "metamath";
+    repo = "metamath-exe";
+    rev = "4f59d60aeb03f92aea3cc7ecf5a2c0fcf08900a5";
+    sha256 = "0nrl4nzp6rm2sn365xyjf3g5l5fl58kca7rq08lqyz5gla0wgfcf";
   };
 
+  # the files necessary to build the DATA target are not in this distribution
+  # luckily, they're not really needed so we don't build it.
+  makeFlags = [ "DATA=" ];
+
+  installTargets = [ "install-exec" ];
+
   meta = with stdenv.lib; {
     description = "Interpreter for the metamath proof language";
     longDescription = ''
diff --git a/nixpkgs/pkgs/development/interpreters/micropython/default.nix b/nixpkgs/pkgs/development/interpreters/micropython/default.nix
new file mode 100644
index 000000000000..3293c4b9f58d
--- /dev/null
+++ b/nixpkgs/pkgs/development/interpreters/micropython/default.nix
@@ -0,0 +1,44 @@
+{ stdenv, lib, fetchFromGitHub, pkgconfig, libffi, python3, readline }:
+
+stdenv.mkDerivation rec {
+  pname = "micropython";
+  version = "1.12";
+
+  src = fetchFromGitHub {
+    owner  = "micropython";
+    repo   = "micropython";
+    rev    = "v${version}";
+    sha256 = "1fsigdahnv5yn0mc7dr1y6h7g8ywg084pcgj6d64kb39w641n8j5";
+    fetchSubmodules = true;
+  };
+
+  nativeBuildInputs = [ pkgconfig python3 ];
+
+  buildInputs = [ libffi readline ];
+
+  doCheck = true;
+
+  buildPhase = ''
+    make -C mpy-cross
+    make -C ports/unix
+  '';
+
+  checkPhase = ''
+    pushd tests
+    MICROPY_MICROPYTHON=../ports/unix/micropython ${python3.interpreter} ./run-tests
+    popd
+  '';
+
+  installPhase = ''
+    mkdir -p $out/bin
+    install -Dm755 ports/unix/micropython $out/bin/micropython
+  '';
+
+  meta = with lib; {
+    description = "A lean and efficient Python implementation for microcontrollers and constrained systems";
+    homepage = "https://micropython.org";
+    platforms = [ "x86_64-linux" ];
+    license = licenses.mit;
+    maintainers = with maintainers; [ sgo ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/interpreters/octave/default.nix b/nixpkgs/pkgs/development/interpreters/octave/default.nix
index cc9f6fcc3c90..eb9827969e12 100644
--- a/nixpkgs/pkgs/development/interpreters/octave/default.nix
+++ b/nixpkgs/pkgs/development/interpreters/octave/default.nix
@@ -1,6 +1,6 @@
 { stdenv, fetchurl, gfortran, readline, ncurses, perl, flex, texinfo, qhull
-, libsndfile, portaudio, libX11, graphicsmagick, pcre, pkgconfig, libGLU_combined, fltk
-, fftw, fftwSinglePrec, zlib, curl, qrupdate, openblas, arpack, libwebp
+, libsndfile, portaudio, libX11, graphicsmagick, pcre, pkgconfig, libGL, libGLU, fltk
+, fftw, fftwSinglePrec, zlib, curl, qrupdate, openblas, arpack, libwebp, gl2ps
 , qt ? null, qscintilla ? null, ghostscript ? null, llvm ? null, hdf5 ? null,glpk ? null
 , suitesparse ? null, gnuplot ? null, jdk ? null, python ? null, overridePlatforms ? null
 }:
@@ -27,7 +27,7 @@ stdenv.mkDerivation rec {
 
   buildInputs = [ gfortran readline ncurses perl flex texinfo qhull
     graphicsmagick pcre pkgconfig fltk zlib curl openblas libsndfile fftw
-    fftwSinglePrec portaudio qrupdate arpack libwebp ]
+    fftwSinglePrec portaudio qrupdate arpack libwebp gl2ps ]
     ++ (stdenv.lib.optional (qt != null) qt)
     ++ (stdenv.lib.optional (qscintilla != null) qscintilla)
     ++ (stdenv.lib.optional (ghostscript != null) ghostscript)
@@ -38,7 +38,7 @@ stdenv.mkDerivation rec {
     ++ (stdenv.lib.optional (jdk != null) jdk)
     ++ (stdenv.lib.optional (gnuplot != null) gnuplot)
     ++ (stdenv.lib.optional (python != null) python)
-    ++ (stdenv.lib.optionals (!stdenv.isDarwin) [ libGLU_combined libX11 ])
+    ++ (stdenv.lib.optionals (!stdenv.isDarwin) [ libGL libGLU libX11 ])
     ;
 
   # makeinfo is required by Octave at runtime to display help
diff --git a/nixpkgs/pkgs/development/interpreters/perl/default.nix b/nixpkgs/pkgs/development/interpreters/perl/default.nix
index 2ecc5cbb2ef6..3231c17e8d9b 100644
--- a/nixpkgs/pkgs/development/interpreters/perl/default.nix
+++ b/nixpkgs/pkgs/development/interpreters/perl/default.nix
@@ -1,5 +1,5 @@
 { config, lib, stdenv, fetchurl, pkgs, buildPackages, callPackage
-, enableThreading ? stdenv ? glibc, makeWrapper
+, enableThreading ? stdenv ? glibc, coreutils, makeWrapper
 }:
 
 with lib;
@@ -35,7 +35,7 @@ let
 
     # TODO: Add a "dev" output containing the header files.
     outputs = [ "out" "man" "devdoc" ] ++
-      stdenv.lib.optional crossCompiling "dev";
+      optional crossCompiling "dev";
     setOutputFlags = false;
 
     disallowedReferences = [ stdenv.cc ];
@@ -57,12 +57,20 @@ let
       ++ optionals stdenv.isDarwin [ ./cpp-precomp.patch ./sw_vers.patch ]
       ++ optional crossCompiling ./MakeMaker-cross.patch;
 
-    postPatch = ''
-      pwd="$(type -P pwd)"
+    # This is not done for native builds because pwd may need to come from
+    # bootstrap tools when building bootstrap perl.
+    postPatch = (if crossCompiling then ''
       substituteInPlace dist/PathTools/Cwd.pm \
-        --replace "/bin/pwd" "$pwd"
-    '' + stdenv.lib.optionalString crossCompiling ''
+        --replace "/bin/pwd" '${coreutils}/bin/pwd'
       substituteInPlace cnf/configure_tool.sh --replace "cc -E -P" "cc -E"
+    '' else ''
+      substituteInPlace dist/PathTools/Cwd.pm \
+        --replace "/bin/pwd" "$(type -P pwd)"
+    '') +
+    # Perl's build system uses the src variable, and its value may end up in
+    # the output in some cases (when cross-compiling)
+    ''
+      unset src
     '';
 
     # Build a thread-safe Perl with a dynamic libperls.o.  We need the
@@ -83,9 +91,15 @@ let
       ]
       ++ optionals ((builtins.match ''5\.[0-9]*[13579]\..+'' version) != null) [ "-Dusedevel" "-Uversiononly" ]
       ++ optional stdenv.isSunOS "-Dcc=gcc"
-      ++ optional enableThreading "-Dusethreads";
+      ++ optional enableThreading "-Dusethreads"
+      ++ optionals (!crossCompiling) [
+        "-Dprefix=${placeholder "out"}"
+        "-Dman1dir=${placeholder "out"}/share/man/man1"
+        "-Dman3dir=${placeholder "out"}/share/man/man3"
+      ]
+      ++ optional (stdenv.isAarch32 || stdenv.isMips) "-Dldflags=\"-lm -lrt\"";
 
-    configureScript = stdenv.lib.optionalString (!crossCompiling) "${stdenv.shell} ./Configure";
+    configureScript = optionalString (!crossCompiling) "${stdenv.shell} ./Configure";
 
     dontAddPrefix = !crossCompiling;
 
@@ -94,10 +108,6 @@ let
     preConfigure = ''
         substituteInPlace ./Configure --replace '`LC_ALL=C; LANGUAGE=C; export LC_ALL; export LANGUAGE; $date 2>&1`' 'Thu Jan  1 00:00:01 UTC 1970'
         substituteInPlace ./Configure --replace '$uname -a' '$uname --kernel-name --machine --operating-system'
-      '' + optionalString (!crossCompiling) ''
-        configureFlags="$configureFlags -Dprefix=$out -Dman1dir=$out/share/man/man1 -Dman3dir=$out/share/man/man3"
-      '' + optionalString (stdenv.isAarch32 || stdenv.isMips) ''
-        configureFlagsArray=(-Dldflags="-lm -lrt")
       '' + optionalString stdenv.isDarwin ''
         substituteInPlace hints/darwin.sh --replace "env MACOSX_DEPLOYMENT_TARGET=10.3" ""
       '' + optionalString (!enableThreading) ''
@@ -136,11 +146,11 @@ let
         substituteInPlace "$out"/lib/perl5/*/*/Config_heavy.pl \
           --replace "${libcInc}" /no-such-path \
           --replace "${
-              if stdenv.cc.cc or null != null then stdenv.cc.cc else "/no-such-path"
+              if stdenv.hasCC then stdenv.cc.cc else "/no-such-path"
             }" /no-such-path \
           --replace "${stdenv.cc}" /no-such-path \
           --replace "$man" /no-such-path
-      '' + stdenv.lib.optionalString crossCompiling
+      '' + optionalString crossCompiling
       ''
         mkdir -p $dev/lib/perl5/cross_perl/${version}
         for dir in cnf/{stub,cpan}; do
@@ -172,12 +182,12 @@ let
       platforms = platforms.all;
       priority = 6; # in `buildEnv' (including the one inside `perl.withPackages') the library files will have priority over files in `perl`
     };
-  } // stdenv.lib.optionalAttrs (stdenv.buildPlatform != stdenv.hostPlatform) rec {
-    crossVersion = "980998f7d11baf97284426ca91f84681d49a08f5"; # Jul 20, 2019
+  } // optionalAttrs (stdenv.buildPlatform != stdenv.hostPlatform) rec {
+    crossVersion = "ba90816ef2c24dc06fd6cd2c854abcfa1aae00a3"; # Nov 22, 2019
 
     perl-cross-src = fetchurl {
       url = "https://github.com/arsv/perl-cross/archive/${crossVersion}.tar.gz";
-      sha256 = "1hg3k2rhjs5gclrm05z87nvlh4j9pg7mkm9998h9gy6mzk8224q5";
+      sha256 = "19jq5fz6l64s0v6j64n5mkk5v2srpyfn9sc09hwbpkp9n74q82j4";
     };
 
     depsBuildBuild = [ buildPackages.stdenv.cc makeWrapper ];
@@ -205,15 +215,15 @@ in {
   perl530 = common {
     perl = pkgs.perl530;
     buildPerl = buildPackages.perl530;
-    version = "5.30.0";
-    sha256 = "1wkmz6xn3fswpqhz29akiklcxclnlykhp96a8bqcz36rak3i64l5";
+    version = "5.30.1";
+    sha256 = "0r7r8a7pkgxp3w5lza559ahxczw6hzpwvhkpc4c99vpi3xbjagdz";
   };
 
   # the latest Devel version
   perldevel = common {
     perl = pkgs.perldevel;
     buildPerl = buildPackages.perldevel;
-    version = "5.31.2";
-    sha256 = "00bdh9lmjb0m7dhk8mj7kab7cg2zn9zgw82y4hgkwydzg6d1jis0";
+    version = "5.31.6";
+    sha256 = "08n3c8xm1brxpckqy8i1xgjrpl4afrhcva9bhxswr938n675x71k";
   };
 }
diff --git a/nixpkgs/pkgs/development/interpreters/perl/sw_vers.patch b/nixpkgs/pkgs/development/interpreters/perl/sw_vers.patch
index 9d4cd75486e6..2e30dba92924 100644
--- a/nixpkgs/pkgs/development/interpreters/perl/sw_vers.patch
+++ b/nixpkgs/pkgs/development/interpreters/perl/sw_vers.patch
@@ -7,7 +7,7 @@ index afadf53..80b7533 100644
      # "ProductVersion:    10.10.5"   "10.10"
      # "ProductVersion:    10.11"     "10.11"
 -        prodvers=`sw_vers|awk '/^ProductVersion:/{print $2}'|awk -F. '{print $1"."$2}'`
-+        prodvers="10.10"
++        prodvers="${MACOSX_DEPLOYMENT_TARGET:-10.12}"
      case "$prodvers" in
      10.*)
        add_macosx_version_min ccflags $prodvers
diff --git a/nixpkgs/pkgs/development/interpreters/php/default.nix b/nixpkgs/pkgs/development/interpreters/php/default.nix
index 9a82868b7b3d..0fa605a4cac7 100644
--- a/nixpkgs/pkgs/development/interpreters/php/default.nix
+++ b/nixpkgs/pkgs/development/interpreters/php/default.nix
@@ -1,10 +1,10 @@
 # pcre functionality is tested in nixos/tests/php-pcre.nix
 { lib, stdenv, fetchurl, autoconf, bison, libtool, pkgconfig, re2c
-, mysql, libxml2, readline, zlib, curl, postgresql, gettext
+, libmysqlclient, libxml2, readline, zlib, curl, postgresql, gettext
 , openssl, pcre, pcre2, sqlite, config, libjpeg, libpng, freetype
 , libxslt, libmcrypt, bzip2, icu, openldap, cyrus_sasl, libmhash, unixODBC
 , uwimap, pam, gmp, apacheHttpd, libiconv, systemd, libsodium, html-tidy, libargon2
-, libzip, valgrind
+, libzip, valgrind, oniguruma
 }:
 
 with lib;
@@ -64,7 +64,7 @@ let
   }:
 
     let
-      mysqlBuildInputs = optional (!mysqlndSupport) mysql.connector-c;
+      mysqlBuildInputs = optional (!mysqlndSupport) libmysqlclient;
       libmcrypt' = libmcrypt.override { disablePosixThreads = true; };
     in stdenv.mkDerivation {
 
@@ -78,6 +78,7 @@ let
       buildInputs = [ ]
         ++ optional (versionOlder version "7.3") pcre
         ++ optional (versionAtLeast version "7.3") pcre2
+        ++ optional (versionAtLeast version "7.4") oniguruma
         ++ optional withSystemd systemd
         ++ optionals imapSupport [ uwimap openssl pam ]
         ++ optionals curlSupport [ curl openssl ]
@@ -94,8 +95,8 @@ let
         ++ optional postgresqlSupport postgresql
         ++ optional pdo_odbcSupport unixODBC
         ++ optional pdo_pgsqlSupport postgresql
-        ++ optional pdo_mysqlSupport mysqlBuildInputs
-        ++ optional mysqliSupport mysqlBuildInputs
+        ++ optionals pdo_mysqlSupport mysqlBuildInputs
+        ++ optionals mysqliSupport mysqlBuildInputs
         ++ optional gmpSupport gmp
         ++ optional gettextSupport gettext
         ++ optional intlSupport icu
@@ -108,13 +109,14 @@ let
         ++ optional libzipSupport libzip
         ++ optional valgrindSupport valgrind;
 
-      CXXFLAGS = optional stdenv.cc.isClang "-std=c++11";
+      CXXFLAGS = optionalString stdenv.cc.isClang "-std=c++11";
 
       configureFlags = [
         "--with-config-file-scan-dir=/etc/php.d"
       ]
-      ++ optional (versionOlder version "7.3") "--with-pcre-regex=${pcre.dev} PCRE_LIBDIR=${pcre}"
-      ++ optional (versionAtLeast version "7.3") "--with-pcre-regex=${pcre2.dev} PCRE_LIBDIR=${pcre2}"
+      ++ optionals (versionOlder version "7.3") [ "--with-pcre-regex=${pcre.dev}" "PCRE_LIBDIR=${pcre}" ]
+      ++ optionals (versions.majorMinor version == "7.3") [ "--with-pcre-regex=${pcre2.dev}" "PCRE_LIBDIR=${pcre2}" ]
+      ++ optionals (versionAtLeast version "7.4") [ "--with-external-pcre=${pcre2.dev}" "PCRE_LIBDIR=${pcre2}" ]
       ++ optional stdenv.isDarwin "--with-iconv=${libiconv}"
       ++ optional withSystemd "--with-fpm-systemd"
       ++ optionals imapSupport [
@@ -127,16 +129,17 @@ let
         "LDAP_INCDIR=${openldap.dev}/include"
         "LDAP_LIBDIR=${openldap.out}/lib"
       ]
-      ++ optional (ldapSupport && stdenv.isLinux)   "--with-ldap-sasl=${cyrus_sasl.dev}"
+      ++ optional (ldapSupport && stdenv.isLinux) "--with-ldap-sasl=${cyrus_sasl.dev}"
       ++ optional apxs2Support "--with-apxs2=${apacheHttpd.dev}/bin/apxs"
       ++ optional embedSupport "--enable-embed"
       ++ optional mhashSupport "--with-mhash"
       ++ optional curlSupport "--with-curl=${curl.dev}"
       ++ optional zlibSupport "--with-zlib=${zlib.dev}"
-      ++ optional libxml2Support "--with-libxml-dir=${libxml2.dev}"
+      ++ optional (libxml2Support && (versionOlder version "7.4")) "--with-libxml-dir=${libxml2.dev}"
       ++ optional (!libxml2Support) [
         "--disable-dom"
         "--disable-libxml"
+        (if (versionOlder version "7.4") then "--disable-libxml" else "--without-libxml")
         "--disable-simplexml"
         "--disable-xml"
         "--disable-xmlreader"
@@ -149,14 +152,19 @@ let
       ++ optional postgresqlSupport "--with-pgsql=${postgresql}"
       ++ optional pdo_odbcSupport "--with-pdo-odbc=unixODBC,${unixODBC}"
       ++ optional pdo_pgsqlSupport "--with-pdo-pgsql=${postgresql}"
-      ++ optional pdo_mysqlSupport "--with-pdo-mysql=${if mysqlndSupport then "mysqlnd" else mysql.connector-c}"
+      ++ optional pdo_mysqlSupport "--with-pdo-mysql=${if mysqlndSupport then "mysqlnd" else libmysqlclient}"
       ++ optionals mysqliSupport [
-        "--with-mysqli=${if mysqlndSupport then "mysqlnd" else "${mysql.connector-c}/bin/mysql_config"}"
+        "--with-mysqli=${if mysqlndSupport then "mysqlnd" else "${libmysqlclient}/bin/mysql_config"}"
       ]
       ++ optional ( pdo_mysqlSupport || mysqliSupport ) "--with-mysql-sock=/run/mysqld/mysqld.sock"
       ++ optional bcmathSupport "--enable-bcmath"
       # FIXME: Our own gd package doesn't work, see https://bugs.php.net/bug.php?id=60108.
-      ++ optionals gdSupport [
+      ++ optionals (gdSupport && versionAtLeast version "7.4") [
+        "--enable-gd"
+        "--with-jpeg=${libjpeg.dev}"
+        "--with-freetype=${freetype.dev}"
+        "--enable-gd-jis-conv"
+      ] ++ optionals (gdSupport && versionOlder version "7.4") [
         "--with-gd"
         "--with-freetype-dir=${freetype.dev}"
         "--with-png-dir=${libpng.dev}"
@@ -173,7 +181,8 @@ let
       ++ optional xslSupport "--with-xsl=${libxslt.dev}"
       ++ optional mcryptSupport "--with-mcrypt=${libmcrypt'}"
       ++ optional bz2Support "--with-bz2=${bzip2.dev}"
-      ++ optional zipSupport "--enable-zip"
+      ++ optional (zipSupport && (versionOlder version "7.4")) "--enable-zip"
+      ++ optional (zipSupport && (versionAtLeast version "7.4")) "--with-zip"
       ++ optional ftpSupport "--enable-ftp"
       ++ optional fpmSupport "--enable-fpm"
       ++ optional ztsSupport "--enable-maintainer-zts"
@@ -181,7 +190,7 @@ let
       ++ optional sodiumSupport "--with-sodium=${libsodium.dev}"
       ++ optional tidySupport "--with-tidy=${html-tidy}"
       ++ optional argon2Support "--with-password-argon2=${libargon2}"
-      ++ optional libzipSupport "--with-libzip=${libzip.dev}"
+      ++ optional (libzipSupport && (versionOlder version "7.4")) "--with-libzip=${libzip.dev}"
       ++ optional phpdbgSupport "--enable-phpdbg"
       ++ optional (!phpdbgSupport) "--disable-phpdbg"
       ++ optional (!cgiSupport) "--disable-cgi"
@@ -254,18 +263,23 @@ let
 
 in {
   php72 = generic {
-    version = "7.2.22";
-    sha256 = "12phn0rrd5r1j6xlz83h7v6gszmj4lb5gwj927psbbc6nn1rh2n1";
+    version = "7.2.26";
+    sha256 = "0yw49v3rk3cd0fb4gsli74pgd4qrykhn9c37dyfr3zsprzp8cvgk";
 
     # https://bugs.php.net/bug.php?id=76826
     extraPatches = optional stdenv.isDarwin ./php72-darwin-isfinite.patch;
   };
 
   php73 = generic {
-    version = "7.3.9";
-    sha256 = "1i33v50rbqrfwjwch1d46mbpwbxrg1xfycs9mjl7xsy9m04rg753";
+    version = "7.3.13";
+    sha256 = "1g376b9caw21mw8738z354llbzb3shzgc60m7naw7wql5038jysw";
 
     # https://bugs.php.net/bug.php?id=76826
     extraPatches = optional stdenv.isDarwin ./php73-darwin-isfinite.patch;
   };
+
+  php74 = generic {
+    version = "7.4.1";
+    sha256 = "0klfwhm2935ariwzqdri1fwh4a0vbrk3jis53qzi18isp3qa073b";
+  };
 }
diff --git a/nixpkgs/pkgs/development/interpreters/picolisp/default.nix b/nixpkgs/pkgs/development/interpreters/picolisp/default.nix
index dc3b08acbd96..1a0a781b9188 100644
--- a/nixpkgs/pkgs/development/interpreters/picolisp/default.nix
+++ b/nixpkgs/pkgs/development/interpreters/picolisp/default.nix
@@ -3,10 +3,10 @@ with stdenv.lib;
 
 stdenv.mkDerivation rec {
   pname = "picoLisp";
-  version = "19.6";
+  version = "19.12";
   src = fetchurl {
     url = "https://www.software-lab.de/${pname}-${version}.tgz";
-    sha256 = "1ixxl6m5glhwqa4q3fb90pciv7jhhvn9pkh316d4wcv0m13l04gq";
+    sha256 = "10np0mhihr47r3201617zccrvzpkhdl1jwvz7zimk8kxpriydq2j";
   };
   buildInputs = [makeWrapper openssl] ++ optional stdenv.is64bit jdk;
   patchPhase = ''
diff --git a/nixpkgs/pkgs/development/interpreters/proglodyte-wasm/default.nix b/nixpkgs/pkgs/development/interpreters/proglodyte-wasm/default.nix
index 5710f1066757..8ebbf6cf5012 100644
--- a/nixpkgs/pkgs/development/interpreters/proglodyte-wasm/default.nix
+++ b/nixpkgs/pkgs/development/interpreters/proglodyte-wasm/default.nix
@@ -55,5 +55,6 @@ stdenv.mkDerivation {
     maintainers = with maintainers; [ proglodyte ];
     platforms = platforms.linux;
     license = licenses.asl20;
+    broken = true;
   };
 }
diff --git a/nixpkgs/pkgs/development/interpreters/pure/default.nix b/nixpkgs/pkgs/development/interpreters/pure/default.nix
index 188058a73b52..9c35fc354976 100644
--- a/nixpkgs/pkgs/development/interpreters/pure/default.nix
+++ b/nixpkgs/pkgs/development/interpreters/pure/default.nix
@@ -13,7 +13,7 @@ stdenv.mkDerivation rec {
 
   buildInputs = [ bison flex makeWrapper ];
   propagatedBuildInputs = [ llvm gmp mpfr readline ];
-  NIX_LDFLAGS = [ "-lLLVMJIT" ];
+  NIX_LDFLAGS = "-lLLVMJIT";
 
   postPatch = ''
     for f in expr.cc matcher.cc printer.cc symtable.cc parserdefs.hh; do
diff --git a/nixpkgs/pkgs/development/interpreters/python/cpython/2.7/default.nix b/nixpkgs/pkgs/development/interpreters/python/cpython/2.7/default.nix
index 4e323898afbf..e6b3dff433b3 100644
--- a/nixpkgs/pkgs/development/interpreters/python/cpython/2.7/default.nix
+++ b/nixpkgs/pkgs/development/interpreters/python/cpython/2.7/default.nix
@@ -79,12 +79,6 @@ let
         sha256 = "0l9rw6r5r90iybdkp3hhl2pf0h0s1izc68h5d3ywrm92pq32wz57";
       })
 
-      (fetchpatch {
-        url = "https://github.com/python/cpython/commit/979daae300916adb399ab5b51410b6ebd0888f13.patch";
-        name = "CVE-2018-20852.patch";
-        sha256 = "0p838ycssd6abxzby69rhngjqqm59cmlp07910mpjx7lmsz049pb";
-      })
-
       # Fix race-condition during pyc creation. Has a slight backwards
       # incompatible effect: pyc symlinks will now be overridden
       # (https://bugs.python.org/issue17222). Included in python >= 3.4,
@@ -240,9 +234,6 @@ in with passthru; stdenv.mkDerivation ({
         ln -s $out/lib/${libPrefix}/pdb.py $out/bin/pdb${sourceVersion.major}.${sourceVersion.minor}
         ln -s $out/share/man/man1/{python2.7.1.gz,python.1.gz}
 
-        # Python on Nix is not manylinux1 compatible. https://github.com/NixOS/nixpkgs/issues/18484
-        echo "manylinux1_compatible=False" >> $out/lib/${libPrefix}/_manylinux.py
-
         rm "$out"/lib/python*/plat-*/regen # refers to glibc.dev
 
         # Determinism: Windows installers were not deterministic.
diff --git a/nixpkgs/pkgs/development/interpreters/python/cpython/2.7/python-2.7-distutils-C++.patch b/nixpkgs/pkgs/development/interpreters/python/cpython/2.7/python-2.7-distutils-C++.patch
index 90c21d5e60ca..78d9272d098a 100644
--- a/nixpkgs/pkgs/development/interpreters/python/cpython/2.7/python-2.7-distutils-C++.patch
+++ b/nixpkgs/pkgs/development/interpreters/python/cpython/2.7/python-2.7-distutils-C++.patch
@@ -93,8 +93,8 @@
                  _osx_support.customize_compiler(_config_vars)
                  _config_vars['CUSTOMIZED_OSX_COMPILER'] = 'True'
  
--        (cc, cxx, opt, cflags, ccshared, ldshared, so_ext, ar, ar_flags) = \
--            get_config_vars('CC', 'CXX', 'OPT', 'CFLAGS',
+-        (cc, cxx, cflags, ccshared, ldshared, so_ext, ar, ar_flags) = \
+-            get_config_vars('CC', 'CXX', 'CFLAGS',
 -                            'CCSHARED', 'LDSHARED', 'SO', 'AR',
 -                            'ARFLAGS')
 +        (cc, cxx, ccshared, ldshared, ldcxxshared, so_ext, ar, ar_flags) = \
@@ -120,8 +120,7 @@
              ldshared = ldshared + ' ' + os.environ['LDFLAGS']
 +            ldcxxshared = ldcxxshared + ' ' + os.environ['LDFLAGS']
          if 'CFLAGS' in os.environ:
--            cflags = opt + ' ' + os.environ['CFLAGS']
-+            cflags = os.environ['CFLAGS']
+             cflags = cflags + ' ' + os.environ['CFLAGS']
              ldshared = ldshared + ' ' + os.environ['CFLAGS']
 +        if 'CXXFLAGS' in os.environ:
 +            cxxflags = os.environ['CXXFLAGS']
diff --git a/nixpkgs/pkgs/development/interpreters/python/cpython/3.9/no-ldconfig.patch b/nixpkgs/pkgs/development/interpreters/python/cpython/3.9/no-ldconfig.patch
new file mode 100644
index 000000000000..a1f9d68eb166
--- /dev/null
+++ b/nixpkgs/pkgs/development/interpreters/python/cpython/3.9/no-ldconfig.patch
@@ -0,0 +1,100 @@
+From 597e73f2a4b2f0b508127931b36d5540d6941823 Mon Sep 17 00:00:00 2001
+From: Frederik Rietdijk <fridh@fridh.nl>
+Date: Mon, 28 Aug 2017 09:24:06 +0200
+Subject: [PATCH] Don't use ldconfig
+
+---
+ Lib/ctypes/util.py | 70 ++----------------------------------------------------
+ 1 file changed, 2 insertions(+), 68 deletions(-)
+
+diff --git a/Lib/ctypes/util.py b/Lib/ctypes/util.py
+index 5e8b31a854..7b45ce6c15 100644
+--- a/Lib/ctypes/util.py
++++ b/Lib/ctypes/util.py
+@@ -94,46 +94,7 @@ elif os.name == "posix":
+     import re, tempfile
+ 
+     def _findLib_gcc(name):
+-        # Run GCC's linker with the -t (aka --trace) option and examine the
+-        # library name it prints out. The GCC command will fail because we
+-        # haven't supplied a proper program with main(), but that does not
+-        # matter.
+-        expr = os.fsencode(r'[^\(\)\s]*lib%s\.[^\(\)\s]*' % re.escape(name))
+-
+-        c_compiler = shutil.which('gcc')
+-        if not c_compiler:
+-            c_compiler = shutil.which('cc')
+-        if not c_compiler:
+-            # No C compiler available, give up
+-            return None
+-
+-        temp = tempfile.NamedTemporaryFile()
+-        try:
+-            args = [c_compiler, '-Wl,-t', '-o', temp.name, '-l' + name]
+-
+-            env = dict(os.environ)
+-            env['LC_ALL'] = 'C'
+-            env['LANG'] = 'C'
+-            try:
+-                proc = subprocess.Popen(args,
+-                                        stdout=subprocess.PIPE,
+-                                        stderr=subprocess.STDOUT,
+-                                        env=env)
+-            except OSError:  # E.g. bad executable
+-                return None
+-            with proc:
+-                trace = proc.stdout.read()
+-        finally:
+-            try:
+-                temp.close()
+-            except FileNotFoundError:
+-                # Raised if the file was already removed, which is the normal
+-                # behaviour of GCC if linking fails
+-                pass
+-        res = re.search(expr, trace)
+-        if not res:
+-            return None
+-        return os.fsdecode(res.group(0))
++        return None
+ 
+ 
+     if sys.platform == "sunos5":
+@@ -255,34 +216,7 @@ elif os.name == "posix":
+     else:
+ 
+         def _findSoname_ldconfig(name):
+-            import struct
+-            if struct.calcsize('l') == 4:
+-                machine = os.uname().machine + '-32'
+-            else:
+-                machine = os.uname().machine + '-64'
+-            mach_map = {
+-                'x86_64-64': 'libc6,x86-64',
+-                'ppc64-64': 'libc6,64bit',
+-                'sparc64-64': 'libc6,64bit',
+-                's390x-64': 'libc6,64bit',
+-                'ia64-64': 'libc6,IA-64',
+-                }
+-            abi_type = mach_map.get(machine, 'libc6')
+-
+-            # XXX assuming GLIBC's ldconfig (with option -p)
+-            regex = r'\s+(lib%s\.[^\s]+)\s+\(%s'
+-            regex = os.fsencode(regex % (re.escape(name), abi_type))
+-            try:
+-                with subprocess.Popen(['/sbin/ldconfig', '-p'],
+-                                      stdin=subprocess.DEVNULL,
+-                                      stderr=subprocess.DEVNULL,
+-                                      stdout=subprocess.PIPE,
+-                                      env={'LC_ALL': 'C', 'LANG': 'C'}) as p:
+-                    res = re.search(regex, p.stdout.read())
+-                    if res:
+-                        return os.fsdecode(res.group(1))
+-            except OSError:
+-                pass
++            return None
+ 
+         def _findLib_ld(name):
+             # See issue #9998 for why this is needed
+-- 
+2.15.0
+
diff --git a/nixpkgs/pkgs/development/interpreters/python/cpython/default.nix b/nixpkgs/pkgs/development/interpreters/python/cpython/default.nix
index 32aa355d3aa2..e75bd0a09875 100644
--- a/nixpkgs/pkgs/development/interpreters/python/cpython/default.nix
+++ b/nixpkgs/pkgs/development/interpreters/python/cpython/default.nix
@@ -17,6 +17,7 @@
 # For the Python package set
 , packageOverrides ? (self: super: {})
 , buildPackages
+, pythonForBuild ? buildPackages.${"python${sourceVersion.major}${sourceVersion.minor}"}
 , sourceVersion
 , sha256
 , passthruFun
@@ -63,7 +64,7 @@ let
 
   hasDistutilsCxxPatch = !(stdenv.cc.isGNU or false);
 
-  pythonForBuild = buildPackages.${"python${sourceVersion.major}${sourceVersion.minor}"};
+  inherit pythonForBuild;
 
   pythonForBuildInterpreter = if stdenv.hostPlatform == stdenv.buildPlatform then
     "$out/bin/python"
@@ -100,7 +101,7 @@ in with passthru; stdenv.mkDerivation {
   ] ++ optionals isPy35 [
     # Backports support for LD_LIBRARY_PATH from 3.6
     ./3.5/ld_library_path.patch
-  ] ++ optionals isPy37 [
+  ] ++ optionals (isPy37 || isPy38) [
     # Fix darwin build https://bugs.python.org/issue34027
     (fetchpatch {
       url = https://bugs.python.org/file47666/darwin-libutil.patch;
@@ -114,7 +115,7 @@ in with passthru; stdenv.mkDerivation {
     (
       if isPy35 then
         ./3.5/python-3.x-distutils-C++.patch
-      else if isPy37 then
+      else if isPy37 || isPy38 then
         ./3.7/python-3.x-distutils-C++.patch
       else
         fetchpatch {
@@ -207,9 +208,6 @@ in with passthru; stdenv.mkDerivation {
 
     ln -s "$out/include/${executable}m" "$out/include/${executable}"
 
-    # Python on Nix is not manylinux1 compatible. https://github.com/NixOS/nixpkgs/issues/18484
-    echo "manylinux1_compatible=False" >> $out/lib/${libPrefix}/_manylinux.py
-
     # Determinism: Windows installers were not deterministic.
     # We're also not interested in building Windows installers.
     find "$out" -name 'wininst*.exe' | xargs -r rm -f
diff --git a/nixpkgs/pkgs/development/interpreters/python/default.nix b/nixpkgs/pkgs/development/interpreters/python/default.nix
index bab7a047b15c..caf2e13bdf62 100644
--- a/nixpkgs/pkgs/development/interpreters/python/default.nix
+++ b/nixpkgs/pkgs/development/interpreters/python/default.nix
@@ -28,6 +28,8 @@ with pkgs;
         isPy35 = pythonVersion == "3.5";
         isPy36 = pythonVersion == "3.6";
         isPy37 = pythonVersion == "3.7";
+        isPy38 = pythonVersion == "3.8";
+        isPy39 = pythonVersion == "3.9";
         isPy2 = lib.strings.substring 0 1 pythonVersion == "2";
         isPy3 = lib.strings.substring 0 1 pythonVersion == "3";
         isPy3k = isPy3;
@@ -51,10 +53,10 @@ in {
     sourceVersion = {
       major = "2";
       minor = "7";
-      patch = "16";
+      patch = "17";
       suffix = "";
     };
-    sha256 = "1mqfcqp5y8r0bfyr7ppl74n0lig45p9mc4b8adlcpvj74rhfy8pj";
+    sha256 = "0hds28cg226m8j8sr394nm9yc4gxhvlv109w0avsf2mxrlrz0hsd";
     inherit (darwin) CF configd;
     inherit passthruFun;
   };
@@ -64,10 +66,10 @@ in {
     sourceVersion = {
       major = "3";
       minor = "5";
-      patch = "7";
+      patch = "9";
       suffix = "";
     };
-    sha256 = "1p67pnp2ca5przx2s45r8m55dcn6f5hsm0l4s1zp7mglkf4r4n18";
+    sha256 = "0jdh9pvx6m6lfz2liwvvhn7vks7qrysqgwn517fkpxb77b33fjn2";
     inherit (darwin) CF configd;
     inherit passthruFun;
   };
@@ -77,10 +79,10 @@ in {
     sourceVersion = {
       major = "3";
       minor = "6";
-      patch = "9";
+      patch = "10";
       suffix = "";
     };
-    sha256 = "1nkh70azbv866aw5a9bbxsxarsf40233vrzpjq17z3rz9ramybsy";
+    sha256 = "1pj0mz1xl27khi250p29c0y99vxg662js8zp71aprkf8i8wkr0qa";
     inherit (darwin) CF configd;
     inherit passthruFun;
   };
@@ -90,10 +92,10 @@ in {
     sourceVersion = {
       major = "3";
       minor = "7";
-      patch = "4";
+      patch = "6";
       suffix = "";
     };
-    sha256 = "0gxiv5617zd7dnqm5k9r4q2188lk327nf9jznwq9j6b8p0s92ygv";
+    sha256 = "0gskry19ylw91p38pdq36qcgk6h3x5i4ia0ik977kw2943kwr8jm";
     inherit (darwin) CF configd;
     inherit passthruFun;
   };
@@ -103,27 +105,31 @@ in {
     sourceVersion = {
       major = "3";
       minor = "8";
-      patch = "0";
-      suffix = "b3";
+      patch = "1";
+      suffix = "";
     };
-    sha256 = "03wq85pkpr9j56k3zg6whahc5park1pzshbakl7y50lzrkpq2ynd";
+    sha256 = "1s4lwn5vzsajlc88m6hkghsvnjw4d00l2dsgng0m2w6vyqbl32bm";
     inherit (darwin) CF configd;
     inherit passthruFun;
   };
 
-  # Minimal versions of Python (built without optional dependencies)
-  python3Minimal = (callPackage ./cpython {
-    self = python3Minimal;
+  python39 = callPackage ./cpython {
+    self = python39;
     sourceVersion = {
       major = "3";
-      minor = "7";
-      patch = "4";
-      suffix = "";
+      minor = "9";
+      patch = "0";
+      suffix = "a2";
     };
-    sha256 = "0gxiv5617zd7dnqm5k9r4q2188lk327nf9jznwq9j6b8p0s92ygv";
+    sha256 = "02a301bdcldin05ksdg8xw8xr6gdkpf73p0cabvn9rdl6yhkr3q8";
     inherit (darwin) CF configd;
     inherit passthruFun;
+  };
 
+  # Minimal versions of Python (built without optional dependencies)
+  python3Minimal = (python37.override {
+    self = python3Minimal;
+    pythonForBuild = pkgs.buildPackages.python3Minimal;
     # strip down that python version as much as possible
     openssl = null;
     readline = null;
@@ -199,4 +205,9 @@ in {
     ncurses = ncurses5;
   };
 
+  graalpython37 = callPackage ./graalpython/default.nix {
+    self = pythonInterpreters.graalpython37;
+    inherit passthruFun;
+  };
+
 })
diff --git a/nixpkgs/pkgs/development/interpreters/python/graalpython/default.nix b/nixpkgs/pkgs/development/interpreters/python/graalpython/default.nix
new file mode 100644
index 000000000000..b5d7d130b5a7
--- /dev/null
+++ b/nixpkgs/pkgs/development/interpreters/python/graalpython/default.nix
@@ -0,0 +1,21 @@
+{ pkgs
+, lib
+, graalvm8
+, passthruFun
+, packageOverrides ? (self: super: {})
+, self
+}:
+
+let
+  passthru = passthruFun {
+    inherit self packageOverrides;
+    implementation = "graal";
+    sourceVersion = graalvm8.version;
+    pythonVersion = "3.7";
+    libPrefix = "graalvm";
+    sitePackages = "jre/languages/python/lib-python/3/site-packages";
+    executable = "graalpython";
+    hasDistutilsCxxPatch = false;
+    pythonForBuild = pkgs.buildPackages.pythonInterpreters.graalpython37;
+  };
+in lib.extendDerivation true passthru graalvm8
diff --git a/nixpkgs/pkgs/development/interpreters/python/hooks/default.nix b/nixpkgs/pkgs/development/interpreters/python/hooks/default.nix
index 3a4b4a0ccadb..f05b3b1eec63 100644
--- a/nixpkgs/pkgs/development/interpreters/python/hooks/default.nix
+++ b/nixpkgs/pkgs/development/interpreters/python/hooks/default.nix
@@ -11,6 +11,27 @@ let
   setuppy = ../run_setup.py;
 in rec {
 
+  eggBuildHook = callPackage ({ }:
+    makeSetupHook {
+      name = "egg-build-hook.sh";
+      deps = [ ];
+    } ./egg-build-hook.sh) {};
+
+  eggInstallHook = callPackage ({ setuptools }:
+    makeSetupHook {
+      name = "egg-install-hook.sh";
+      deps = [ setuptools ];
+      substitutions = {
+        inherit pythonInterpreter pythonSitePackages;
+      };
+    } ./egg-install-hook.sh) {};
+
+  eggUnpackHook = callPackage ({ }:
+    makeSetupHook {
+      name = "egg-unpack-hook.sh";
+      deps = [ ];
+    } ./egg-unpack-hook.sh) {};
+
   flitBuildHook = callPackage ({ flit }:
     makeSetupHook {
       name = "flit-build-hook";
@@ -20,10 +41,10 @@ in rec {
       };
     } ./flit-build-hook.sh) {};
 
-  pipBuildHook = callPackage ({ pip }:
+  pipBuildHook = callPackage ({ pip, wheel }:
     makeSetupHook {
       name = "pip-build-hook.sh";
-      deps = [ pip ];
+      deps = [ pip wheel ];
       substitutions = {
         inherit pythonInterpreter pythonSitePackages;
       };
diff --git a/nixpkgs/pkgs/development/interpreters/python/hooks/egg-build-hook.sh b/nixpkgs/pkgs/development/interpreters/python/hooks/egg-build-hook.sh
new file mode 100644
index 000000000000..d5abc8d55e5a
--- /dev/null
+++ b/nixpkgs/pkgs/development/interpreters/python/hooks/egg-build-hook.sh
@@ -0,0 +1,15 @@
+# Setup hook to use for eggs
+echo "Sourcing egg-build-hook"
+
+eggBuildPhase() {
+    echo "Executing eggBuildPhase"
+    runHook preBuild
+
+    runHook postBuild
+    echo "Finished executing eggBuildPhase"
+}
+
+if [ -z "${dontUseEggBuild-}" ] && [ -z "${buildPhase-}" ]; then
+    echo "Using eggBuildPhase"
+    buildPhase=eggBuildPhase
+fi
diff --git a/nixpkgs/pkgs/development/interpreters/python/hooks/egg-install-hook.sh b/nixpkgs/pkgs/development/interpreters/python/hooks/egg-install-hook.sh
new file mode 100644
index 000000000000..ae894fb1bde4
--- /dev/null
+++ b/nixpkgs/pkgs/development/interpreters/python/hooks/egg-install-hook.sh
@@ -0,0 +1,21 @@
+# Setup hook for eggs
+echo "Sourcing egg-install-hook"
+
+eggInstallPhase() {
+    echo "Executing eggInstallPhase"
+    runHook preInstall
+
+    mkdir -p "$out/@pythonSitePackages@"
+    export PYTHONPATH="$out/@pythonSitePackages@:$PYTHONPATH"
+
+    find
+    @pythonInterpreter@ -m easy_install --prefix="$out" *.egg
+
+    runHook postInstall
+    echo "Finished executing eggInstallPhase"
+}
+
+if [ -z "${dontUseEggInstall-}" ] && [ -z "${installPhase-}" ]; then
+    echo "Using eggInstallPhase"
+    installPhase=eggInstallPhase
+fi
diff --git a/nixpkgs/pkgs/development/interpreters/python/hooks/egg-unpack-hook.sh b/nixpkgs/pkgs/development/interpreters/python/hooks/egg-unpack-hook.sh
new file mode 100644
index 000000000000..c8ed3dee83ba
--- /dev/null
+++ b/nixpkgs/pkgs/development/interpreters/python/hooks/egg-unpack-hook.sh
@@ -0,0 +1,17 @@
+# Setup hook to use in case an egg is fetched
+echo "Sourcing egg setup hook"
+
+eggUnpackPhase(){
+    echo "Executing eggUnpackPhase"
+    runHook preUnpack
+
+    cp "$src" "$(stripHash "$src")"
+
+#     runHook postUnpack # Calls find...?
+    echo "Finished executing eggUnpackPhase"
+}
+
+if [ -z "${dontUseEggUnpack-}" ] && [ -z "${unpackPhase-}" ]; then
+    echo "Using eggUnpackPhase"
+    unpackPhase=eggUnpackPhase
+fi
diff --git a/nixpkgs/pkgs/development/interpreters/python/hooks/flit-build-hook.sh b/nixpkgs/pkgs/development/interpreters/python/hooks/flit-build-hook.sh
index faa3f6e3075f..45893aae00f4 100644
--- a/nixpkgs/pkgs/development/interpreters/python/hooks/flit-build-hook.sh
+++ b/nixpkgs/pkgs/development/interpreters/python/hooks/flit-build-hook.sh
@@ -3,13 +3,13 @@ echo "Sourcing flit-build-hook"
 
 flitBuildPhase () {
     echo "Executing flitBuildPhase"
-    preBuild
+    runHook preBuild
     @pythonInterpreter@ -m flit build --format wheel
-    postBuild
+    runHook postBuild
     echo "Finished executing flitBuildPhase"
 }
 
-if [ -z "$dontUseFlitBuild" ] && [ -z "$buildPhase" ]; then
+if [ -z "${dontUseFlitBuild-}" ] && [ -z "${buildPhase-}" ]; then
     echo "Using flitBuildPhase"
     buildPhase=flitBuildPhase
 fi
diff --git a/nixpkgs/pkgs/development/interpreters/python/hooks/pip-build-hook.sh b/nixpkgs/pkgs/development/interpreters/python/hooks/pip-build-hook.sh
index 6796d3efd0a1..292f13d30154 100644
--- a/nixpkgs/pkgs/development/interpreters/python/hooks/pip-build-hook.sh
+++ b/nixpkgs/pkgs/development/interpreters/python/hooks/pip-build-hook.sh
@@ -7,7 +7,7 @@ pipBuildPhase() {
 
     mkdir -p dist
     echo "Creating a wheel..."
-    @pythonInterpreter@ -m pip wheel --no-index --no-deps --no-clean --no-build-isolation --wheel-dir dist "$options" .
+    @pythonInterpreter@ -m pip wheel --no-index --no-deps --no-clean --no-build-isolation --wheel-dir dist .
     echo "Finished creating a wheel..."
 
     runHook postBuild
@@ -31,12 +31,12 @@ pipShellHook() {
     echo "Finished executing pipShellHook"
 }
 
-if [ -z "$dontUsePipBuild" ] && [ -z "$buildPhase" ]; then
+if [ -z "${dontUsePipBuild-}" ] && [ -z "${buildPhase-}" ]; then
     echo "Using pipBuildPhase"
     buildPhase=pipBuildPhase
 fi
 
-if [ -z "$shellHook" ]; then
+if [ -z "${shellHook-}" ]; then
     echo "Using pipShellHook"
     shellHook=pipShellHook
 fi
diff --git a/nixpkgs/pkgs/development/interpreters/python/hooks/pip-install-hook.sh b/nixpkgs/pkgs/development/interpreters/python/hooks/pip-install-hook.sh
index f528ec63cb8e..4eefe22d3f28 100644
--- a/nixpkgs/pkgs/development/interpreters/python/hooks/pip-install-hook.sh
+++ b/nixpkgs/pkgs/development/interpreters/python/hooks/pip-install-hook.sh
@@ -18,7 +18,7 @@ pipInstallPhase() {
     echo "Finished executing pipInstallPhase"
 }
 
-if [ -z "$dontUsePipInstall" ] && [ -z "$installPhase" ]; then
+if [ -z "${dontUsePipInstall-}" ] && [ -z "${installPhase-}" ]; then
     echo "Using pipInstallPhase"
     installPhase=pipInstallPhase
 fi
diff --git a/nixpkgs/pkgs/development/interpreters/python/hooks/pytest-check-hook.sh b/nixpkgs/pkgs/development/interpreters/python/hooks/pytest-check-hook.sh
index 24510b9f9931..18f05b6d218c 100644
--- a/nixpkgs/pkgs/development/interpreters/python/hooks/pytest-check-hook.sh
+++ b/nixpkgs/pkgs/development/interpreters/python/hooks/pytest-check-hook.sh
@@ -43,7 +43,7 @@ function pytestCheckPhase() {
     echo "Finished executing pytestCheckPhase"
 }
 
-if [ -z "$dontUsePytestCheck" ] && [ -z "$installCheckPhase" ]; then
+if [ -z "${dontUsePytestCheck-}" ] && [ -z "${installCheckPhase-}" ]; then
     echo "Using pytestCheckPhase"
     preDistPhases+=" pytestCheckPhase"
 fi
diff --git a/nixpkgs/pkgs/development/interpreters/python/hooks/python-catch-conflicts-hook.sh b/nixpkgs/pkgs/development/interpreters/python/hooks/python-catch-conflicts-hook.sh
index e9065cf17934..374a2eddb407 100644
--- a/nixpkgs/pkgs/development/interpreters/python/hooks/python-catch-conflicts-hook.sh
+++ b/nixpkgs/pkgs/development/interpreters/python/hooks/python-catch-conflicts-hook.sh
@@ -5,6 +5,6 @@ pythonCatchConflictsPhase() {
     @pythonInterpreter@ @catchConflicts@
 }
 
-if [ -z "$dontUsePythonCatchConflicts" ]; then
+if [ -z "${dontUsePythonCatchConflicts-}" ]; then
     preDistPhases+=" pythonCatchConflictsPhase"
 fi
diff --git a/nixpkgs/pkgs/development/interpreters/python/hooks/python-imports-check-hook.sh b/nixpkgs/pkgs/development/interpreters/python/hooks/python-imports-check-hook.sh
index 7e2b3f69d6dd..0fc55145a8eb 100644
--- a/nixpkgs/pkgs/development/interpreters/python/hooks/python-imports-check-hook.sh
+++ b/nixpkgs/pkgs/development/interpreters/python/hooks/python-imports-check-hook.sh
@@ -10,7 +10,7 @@ pythonImportsCheckPhase () {
     fi
 }
 
-if [ -z "$dontUsePythonImportsCheck" ]; then
+if [ -z "${dontUsePythonImportsCheck-}" ]; then
     echo "Using pythonImportsCheckPhase"
     preDistPhases+=" pythonImportsCheckPhase"
 fi
diff --git a/nixpkgs/pkgs/development/interpreters/python/hooks/python-remove-bin-bytecode-hook.sh b/nixpkgs/pkgs/development/interpreters/python/hooks/python-remove-bin-bytecode-hook.sh
index 960de767be79..2add23f23165 100644
--- a/nixpkgs/pkgs/development/interpreters/python/hooks/python-remove-bin-bytecode-hook.sh
+++ b/nixpkgs/pkgs/development/interpreters/python/hooks/python-remove-bin-bytecode-hook.sh
@@ -12,6 +12,6 @@ pythonRemoveBinBytecodePhase () {
     fi
 }
 
-if [ -z "$dontUsePythonRemoveBinBytecode" ]; then
+if [ -z "${dontUsePythonRemoveBinBytecode-}" ]; then
     preDistPhases+=" pythonRemoveBinBytecodePhase"
 fi
diff --git a/nixpkgs/pkgs/development/interpreters/python/hooks/setuptools-build-hook.sh b/nixpkgs/pkgs/development/interpreters/python/hooks/setuptools-build-hook.sh
index db3e4225d293..2aec92793825 100644
--- a/nixpkgs/pkgs/development/interpreters/python/hooks/setuptools-build-hook.sh
+++ b/nixpkgs/pkgs/development/interpreters/python/hooks/setuptools-build-hook.sh
@@ -17,7 +17,7 @@ setuptoolsBuildPhase() {
     eval "@pythonInterpreter@ nix_run_setup $args bdist_wheel"
 
     runHook postBuild
-    echo "Finished executing setuptoolsInstallPhase"
+    echo "Finished executing setuptoolsBuildPhase"
 }
 
 setuptoolsShellHook() {
@@ -27,21 +27,21 @@ setuptoolsShellHook() {
     if test -e setup.py; then
         tmp_path=$(mktemp -d)
         export PATH="$tmp_path/bin:$PATH"
-        export PYTHONPATH="@pythonSitePackages@:$PYTHONPATH"
+        export PYTHONPATH="$tmp_path/@pythonSitePackages@:$PYTHONPATH"
         mkdir -p "$tmp_path/@pythonSitePackages@"
-        eval "@pythonInterpreter@ -m pip -e . --prefix $tmp_path >&2"
+        eval "@pythonInterpreter@ -m pip install -e . --prefix $tmp_path >&2"
     fi
 
     runHook postShellHook
     echo "Finished executing setuptoolsShellHook"
 }
 
-if [ -z "$dontUseSetuptoolsBuild" ] && [ -z "$buildPhase" ]; then
+if [ -z "${dontUseSetuptoolsBuild-}" ] && [ -z "${buildPhase-}" ]; then
     echo "Using setuptoolsBuildPhase"
     buildPhase=setuptoolsBuildPhase
 fi
 
-if [ -z "$dontUseSetuptoolsShellHook" ] && [ -z "$shellHook" ]; then
+if [ -z "${dontUseSetuptoolsShellHook-}" ] && [ -z "${shellHook-}" ]; then
     echo "Using setuptoolsShellHook"
     shellHook=setuptoolsShellHook
 fi
diff --git a/nixpkgs/pkgs/development/interpreters/python/hooks/setuptools-check-hook.sh b/nixpkgs/pkgs/development/interpreters/python/hooks/setuptools-check-hook.sh
index 71bb036a91ad..88b7b11931b0 100644
--- a/nixpkgs/pkgs/development/interpreters/python/hooks/setuptools-check-hook.sh
+++ b/nixpkgs/pkgs/development/interpreters/python/hooks/setuptools-check-hook.sh
@@ -12,7 +12,7 @@ setuptoolsCheckPhase() {
     echo "Finished executing setuptoolsCheckPhase"
 }
 
-if [ -z "$dontUseSetuptoolsCheck" ] && [ -z "$installCheckPhase" ]; then
+if [ -z "${dontUseSetuptoolsCheck-}" ] && [ -z "${installCheckPhase-}" ]; then
     echo "Using setuptoolsCheckPhase"
     preDistPhases+=" setuptoolsCheckPhase"
 fi
diff --git a/nixpkgs/pkgs/development/interpreters/python/hooks/wheel-unpack-hook.sh b/nixpkgs/pkgs/development/interpreters/python/hooks/wheel-unpack-hook.sh
index 6dd0c5be4cb2..fca808a933ba 100644
--- a/nixpkgs/pkgs/development/interpreters/python/hooks/wheel-unpack-hook.sh
+++ b/nixpkgs/pkgs/development/interpreters/python/hooks/wheel-unpack-hook.sh
@@ -12,7 +12,7 @@ wheelUnpackPhase(){
     echo "Finished executing wheelUnpackPhase"
 }
 
-if [ -z "$dontUseWheelUnpack" ] && [ -z "$unpackPhase" ]; then
+if [ -z "${dontUseWheelUnpack-}" ] && [ -z "${unpackPhase-}" ]; then
     echo "Using wheelUnpackPhase"
     unpackPhase=wheelUnpackPhase
 fi
diff --git a/nixpkgs/pkgs/development/interpreters/python/manylinux/default.nix b/nixpkgs/pkgs/development/interpreters/python/manylinux/default.nix
new file mode 100644
index 000000000000..a44ead23752b
--- /dev/null
+++ b/nixpkgs/pkgs/development/interpreters/python/manylinux/default.nix
@@ -0,0 +1,86 @@
+{ lib, pkgs }:
+
+let
+  # Create a derivation that links all desired manylinux libraries
+  createManyLinuxPackage = name: libs: let
+    drvs = lib.unique (lib.attrValues libs);
+    names = lib.attrNames libs;
+  in pkgs.runCommand name {
+    buildInputs = drvs;
+  } ''
+    mkdir -p $out/lib
+    num_found=0
+
+    IFS=:
+    export DESIRED_LIBRARIES=${lib.concatStringsSep ":" names}
+    export LIBRARY_PATH=${lib.makeLibraryPath drvs}
+    for desired in $DESIRED_LIBRARIES; do
+      for path in $LIBRARY_PATH; do
+        if [ -e $path/$desired ]; then
+          echo "FOUND $path/$desired"
+          ln -s $path/$desired $out/lib/$desired
+          num_found=$((num_found+1))
+          break
+        fi
+      done
+    done
+
+    num_desired=${toString (lib.length names)}
+    echo "Found $num_found of $num_desired libraries"
+    if [ "$num_found" -ne "$num_desired" ]; then
+      echo "Error: not all desired libraries were found"
+      exit 1
+    fi
+  '';
+
+  getLibOutputs = lib.mapAttrs (k: v: lib.getLib v);
+
+  # https://www.python.org/dev/peps/pep-0599/
+  manylinux2014Libs = getLibOutputs(with pkgs; {
+    "libgcc_s.so.1" = glibc;
+    "libstdc++.so.6" = stdenv.cc.cc;
+    "libm.so.6" = glibc;
+    "libdl.so.2" = glibc;
+    "librt.so.1" = glibc;
+    "libc.so.6" = glibc;
+    "libnsl.so.1" = glibc;
+    "libutil.so.1" = glibc;
+    "libpthread.so.0" = glibc;
+    "libresolv.so.2" = glibc;
+    "libX11.so.6" = xorg.libX11;
+    "libXext.so.6" = xorg.libXext;
+    "libXrender.so.1" = xorg.libXrender;
+    "libICE.so.6" = xorg.libICE;
+    "libSM.so.6" = xorg.libSM;
+    "libGL.so.1" = libGL;
+    "libgobject-2.0.so.0" = glib;
+    "libgthread-2.0.so.0" = glib;
+    "libglib-2.0.so.0" = glib;
+    });
+
+  # https://www.python.org/dev/peps/pep-0571/
+  manylinux2010Libs = manylinux2014Libs;
+
+  # https://www.python.org/dev/peps/pep-0513/
+  manylinux1Libs = getLibOutputs(manylinux2010Libs // (with pkgs; {
+    "libpanelw.so.5" = ncurses5;
+    "libncursesw.so.5" = ncurses5;
+    "libcrypt.so.1" = glibc;
+    }));
+
+in {
+  # List of libraries that are needed for manylinux compatibility.
+  # When using a wheel that is manylinux1 compatible, just extend
+  # the `buildInputs` with one of these `manylinux` lists.
+  # Additionally, add `autoPatchelfHook` to `nativeBuildInputs`.
+  manylinux1 = lib.unique (lib.attrValues manylinux1Libs);
+  manylinux2010 = lib.unique (lib.attrValues manylinux2010Libs);
+  manylinux2014 = lib.unique (lib.attrValues manylinux2014Libs);
+
+  # These are symlink trees to the relevant libs and are typically not needed
+  # These exist so as to quickly test whether all required libraries are provided
+  # by the mapped packages.
+  manylinux1Package = createManyLinuxPackage "manylinux1" manylinux1Libs;
+  manylinux2010Package = createManyLinuxPackage "manylinux2010" manylinux2010Libs;
+  manylinux2014Package = createManyLinuxPackage "manylinux2014" manylinux2014Libs;
+}
diff --git a/nixpkgs/pkgs/development/interpreters/python/mk-python-derivation.nix b/nixpkgs/pkgs/development/interpreters/python/mk-python-derivation.nix
index 700894eda6de..020298cc8e9f 100644
--- a/nixpkgs/pkgs/development/interpreters/python/mk-python-derivation.nix
+++ b/nixpkgs/pkgs/development/interpreters/python/mk-python-derivation.nix
@@ -20,6 +20,9 @@
 , setuptoolsBuildHook
 , setuptoolsCheckHook
 , wheelUnpackHook
+, eggUnpackHook
+, eggBuildHook
+, eggInstallHook
 }:
 
 { name ? "${attrs.pname}-${attrs.version}"
@@ -119,6 +122,8 @@ let
     pipBuildHook
   ] ++ lib.optionals (format == "wheel") [
     wheelUnpackHook
+  ] ++ lib.optionals (format == "egg") [
+    eggUnpackHook eggBuildHook eggInstallHook
   ] ++ lib.optionals (!(format == "other") || dontUsePipInstall) [
     pipInstallHook
   ] ++ lib.optionals (stdenv.buildPlatform == stdenv.hostPlatform) [
diff --git a/nixpkgs/pkgs/development/interpreters/python/pypy/default.nix b/nixpkgs/pkgs/development/interpreters/python/pypy/default.nix
index 8154a87f667d..b220bfa0f934 100644
--- a/nixpkgs/pkgs/development/interpreters/python/pypy/default.nix
+++ b/nixpkgs/pkgs/development/interpreters/python/pypy/default.nix
@@ -137,9 +137,6 @@ in with passthru; stdenv.mkDerivation rec {
     # verify cffi modules
     $out/bin/${executable} -c ${if isPy3k then "'import tkinter;import sqlite3;import curses;import lzma'" else "'import Tkinter;import sqlite3;import curses'"}
 
-    # Python on Nix is not manylinux1 compatible. https://github.com/NixOS/nixpkgs/issues/18484
-    echo "manylinux1_compatible=False" >> $out/lib/${libPrefix}/_manylinux.py
-
     # Include a sitecustomize.py file
     cp ${../sitecustomize.py} $out/lib/${libPrefix}/${sitePackages}/sitecustomize.py
   '';
diff --git a/nixpkgs/pkgs/development/interpreters/python/update-python-libraries/update-python-libraries.py b/nixpkgs/pkgs/development/interpreters/python/update-python-libraries/update-python-libraries.py
index 2315e53220b9..7e0580ce063d 100755
--- a/nixpkgs/pkgs/development/interpreters/python/update-python-libraries/update-python-libraries.py
+++ b/nixpkgs/pkgs/development/interpreters/python/update-python-libraries/update-python-libraries.py
@@ -6,9 +6,9 @@ You can pass in multiple files or paths.
 
 You'll likely want to use
 ``
-  $ ./update-python-libraries ../../pkgs/development/python-modules/*
+  $ ./update-python-libraries ../../pkgs/development/python-modules/**/default.nix
 ``
-to update all libraries in that folder.
+to update all non-pinned libraries in that folder.
 """
 
 import argparse
@@ -116,11 +116,45 @@ SEMVER = {
 }
 
 
+def _determine_latest_version(current_version, target, versions):
+    """Determine latest version, given `target`.
+    """
+    current_version = Version(current_version)
+
+    def _parse_versions(versions):
+        for v in versions:
+            try:
+                yield Version(v)
+            except InvalidVersion:
+                pass
+
+    versions = _parse_versions(versions)
+
+    index = SEMVER[target]
+
+    ceiling = list(current_version[0:index])
+    if len(ceiling) == 0:
+        ceiling = None
+    else:
+        ceiling[-1]+=1
+        ceiling = Version(".".join(map(str, ceiling)))
+
+    # We do not want prereleases
+    versions = SpecifierSet(prereleases=PRERELEASES).filter(versions)
+
+    if ceiling is not None:
+        versions = SpecifierSet(f"<{ceiling}").filter(versions)
+
+    return (max(sorted(versions))).raw_version
+
+
 def _get_latest_version_pypi(package, extension, current_version, target):
     """Get latest version and hash from PyPI."""
     url = "{}/{}/json".format(INDEX, package)
     json = _fetch_page(url)
-    version = json['info']['version']
+
+    versions = json['releases'].keys()
+    version = _determine_latest_version(current_version, target, versions)
 
     try:
         releases = json['releases'][version]
@@ -132,7 +166,6 @@ def _get_latest_version_pypi(package, extension, current_version, target):
             sha256 = release['digests']['sha256']
             break
     else:
-        logging.error("Release not found for extension: {}".format(extension))
         sha256 = None
     return version, sha256
 
@@ -194,6 +227,10 @@ def _determine_extension(text, fetcher):
                 src_format = 'setuptools'
             elif src_format == 'flit':
                 raise ValueError("Don't know how to update a Flit package.")
+            elif src_format == 'other':
+                raise ValueError("Don't know how to update a format='other' package.")
+            elif src_format == 'pyproject':
+                raise ValueError("Don't know how to update a pyproject package.")
             extension = FORMATS[src_format]
 
     elif fetcher == 'fetchurl':
@@ -326,4 +363,4 @@ def main():
 
 
 if __name__ == '__main__':
-    main()
\ No newline at end of file
+    main()
diff --git a/nixpkgs/pkgs/development/interpreters/python/wrap.sh b/nixpkgs/pkgs/development/interpreters/python/wrap.sh
index c7201c7a997b..f10ba003432b 100644
--- a/nixpkgs/pkgs/development/interpreters/python/wrap.sh
+++ b/nixpkgs/pkgs/development/interpreters/python/wrap.sh
@@ -81,7 +81,15 @@ wrapPythonProgramsIn() {
 
                     # Add any additional arguments provided by makeWrapperArgs
                     # argument to buildPythonPackage.
-                    local -a user_args="($makeWrapperArgs)"
+                    # We need to support both the case when makeWrapperArgs
+                    # is an array and a IFS-separated string.
+                    # TODO: remove the string branch when __structuredAttrs are used.
+                    if [[ "${makeWrapperArgs+defined}" == "defined" && "$(declare -p makeWrapperArgs)" =~ ^'declare -a makeWrapperArgs=' ]]; then
+                        local -a user_args=("${makeWrapperArgs[@]}")
+                    else
+                        local -a user_args="(${makeWrapperArgs:-})"
+                    fi
+
                     local -a wrapProgramArgs=("${wrap_args[@]}" "${user_args[@]}")
                     wrapProgram "${wrapProgramArgs[@]}"
                 fi
diff --git a/nixpkgs/pkgs/development/interpreters/quickjs/default.nix b/nixpkgs/pkgs/development/interpreters/quickjs/default.nix
new file mode 100644
index 000000000000..e7f01856ef59
--- /dev/null
+++ b/nixpkgs/pkgs/development/interpreters/quickjs/default.nix
@@ -0,0 +1,42 @@
+{ stdenv, fetchurl }:
+
+stdenv.mkDerivation rec {
+  pname = "quickjs";
+  version = "2019-12-21";
+
+  src = fetchurl {
+    url = "https://bellard.org/${pname}/${pname}-${version}.tar.xz";
+    sha256 = "13hlx6qwrrxmlvvqcr3irxba6zmf05cf54l32vj50wc66s1qd41p";
+  };
+
+  makeFlags = [ "prefix=${placeholder ''out''}" ];
+  enableParallelBuilding = true;
+
+  doInstallCheck = true;
+  installCheckPhase = ''
+    PATH="$out/bin:$PATH"
+
+    # Programs exit with code 1 when testing help, so grep for a string
+    set +o pipefail
+    qjs     --help 2>&1 | grep "QuickJS version"
+    qjsbn   --help 2>&1 | grep "QuickJS version"
+    qjscalc --help 2>&1 | grep "QuickJS version"
+    set -o pipefail
+
+    temp=$(mktemp).js
+    echo "console.log('Output from compiled program');" > "$temp"
+    set -o verbose
+    out=$(mktemp) && qjsc         "$temp" -o "$out" && "$out" | grep -q "Output from compiled program"
+    out=$(mktemp) && qjsbnc       "$temp" -o "$out" && "$out" | grep -q "Output from compiled program"
+    out=$(mktemp) && qjsc   -flto "$temp" -o "$out" && "$out" | grep -q "Output from compiled program"
+    out=$(mktemp) && qjsbnc -flto "$temp" -o "$out" && "$out" | grep -q "Output from compiled program"
+  '';
+
+  meta = with stdenv.lib; {
+    description = "A small and embeddable Javascript engine";
+    homepage = "https://bellard.org/quickjs/";
+    maintainers = with maintainers; [ stesie ivan ];
+    platforms = platforms.linux;
+    license = licenses.mit;
+  };
+}
diff --git a/nixpkgs/pkgs/development/interpreters/racket/default.nix b/nixpkgs/pkgs/development/interpreters/racket/default.nix
index f13adc21d9e6..3b3b91afd6f0 100644
--- a/nixpkgs/pkgs/development/interpreters/racket/default.nix
+++ b/nixpkgs/pkgs/development/interpreters/racket/default.nix
@@ -46,7 +46,7 @@ in
 
 stdenv.mkDerivation rec {
   pname = "racket";
-  version = "7.3"; # always change at once with ./minimal.nix
+  version = "7.5"; # always change at once with ./minimal.nix
 
   src = (stdenv.lib.makeOverridable ({ name, sha256 }:
     fetchurl {
@@ -54,8 +54,8 @@ stdenv.mkDerivation rec {
       inherit sha256;
     }
   )) {
-    inherit ;name = "${pname}-${version}";
-    sha256 = "0h6072njhb87rkz4arijvahxgjzn8r14s4wns0ijvxm89bg136yl";
+    name = "${pname}-${version}";
+    sha256 = "0b74v0pqkx57x2gk0m4sp94jaf6bi1mci4ix9vx4sh2442sbds1j";
   };
 
   FONTCONFIG_FILE = fontsConf;
@@ -103,7 +103,7 @@ stdenv.mkDerivation rec {
       GUIs and charts.
     '';
     homepage = http://racket-lang.org/;
-    license = licenses.lgpl3;
+    license = with licenses; [ asl20 /* or */ mit ];
     maintainers = with maintainers; [ kkallio henrytill vrthra ];
     platforms = [ "x86_64-darwin" "x86_64-linux" ];
     broken = stdenv.isDarwin; # No support yet for setting FFI lookup path
diff --git a/nixpkgs/pkgs/development/interpreters/racket/minimal.nix b/nixpkgs/pkgs/development/interpreters/racket/minimal.nix
index a3d4a7a3c4fd..df7c72c4a681 100644
--- a/nixpkgs/pkgs/development/interpreters/racket/minimal.nix
+++ b/nixpkgs/pkgs/development/interpreters/racket/minimal.nix
@@ -5,7 +5,7 @@ racket.overrideAttrs (oldAttrs: rec {
   name = "racket-minimal-${oldAttrs.version}";
   src = oldAttrs.src.override {
     inherit name;
-    sha256 = "1byvg1vy8hn1j64d5gjiwzfbghdp7lhja9xwz9x8iicwfldkjybj";
+    sha256 = "0478f0phkjch10ncsl8lm8a1m8qvgchrkgzpcaxyhmg2clyjgn8r";
   };
 
   meta = oldAttrs.meta // {
diff --git a/nixpkgs/pkgs/development/interpreters/renpy/default.nix b/nixpkgs/pkgs/development/interpreters/renpy/default.nix
index 30ac6d2bd5b4..759a44b5760f 100644
--- a/nixpkgs/pkgs/development/interpreters/renpy/default.nix
+++ b/nixpkgs/pkgs/development/interpreters/renpy/default.nix
@@ -1,13 +1,13 @@
-{ stdenv, fetchurl, pythonPackages, pkgconfig, SDL2
-, libpng, ffmpeg, freetype, glew, libGLU_combined, fribidi, zlib
+{ stdenv, fetchurl, python2Packages, pkgconfig, SDL2
+, libpng, ffmpeg, freetype, glew, libGL, libGLU, fribidi, zlib
 , glib
 }:
 
-with pythonPackages;
+with python2Packages;
 
 stdenv.mkDerivation rec {
   pname = "renpy";
-  version = "7.3.2";
+  version = "7.3.5";
 
   meta = with stdenv.lib; {
     description = "Ren'Py Visual Novel Engine";
@@ -18,7 +18,7 @@ stdenv.mkDerivation rec {
 
   src = fetchurl {
     url = "https://www.renpy.org/dl/${version}/renpy-${version}-source.tar.bz2";
-    sha256 = "1i7s9s8invsm5bavw2jlk965pb5h5vgwyk1nhw0z1d22spmj4a4m";
+    sha256 = "1anr5cfbvbsbik4v4rvrkdkciwhg700k4lydfbs4n85raimz9mw4";
   };
 
   patches = [
@@ -32,13 +32,13 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = [ pkgconfig ];
   buildInputs = [
     python cython wrapPython tkinter
-    SDL2 libpng ffmpeg freetype glew libGLU_combined fribidi zlib pygame_sdl2 glib
+    SDL2 libpng ffmpeg freetype glew libGLU libGL fribidi zlib pygame_sdl2 glib
   ];
 
   pythonPath = [ pygame_sdl2 tkinter ];
 
   RENPY_DEPS_INSTALL = stdenv.lib.concatStringsSep "::" (map (path: path) [
-    SDL2 SDL2.dev libpng ffmpeg ffmpeg.out freetype glew.dev glew.out libGLU_combined fribidi zlib
+    SDL2 SDL2.dev libpng ffmpeg ffmpeg.out freetype glew.dev glew.out libGLU libGL fribidi zlib
   ]);
 
   buildPhase = ''
diff --git a/nixpkgs/pkgs/development/interpreters/ruby/default.nix b/nixpkgs/pkgs/development/interpreters/ruby/default.nix
index dd450e8dd53c..efb898aa72b6 100644
--- a/nixpkgs/pkgs/development/interpreters/ruby/default.nix
+++ b/nixpkgs/pkgs/development/interpreters/ruby/default.nix
@@ -2,7 +2,7 @@
 , fetchurl, fetchpatch, fetchFromSavannah, fetchFromGitHub
 , zlib, openssl, gdbm, ncurses, readline, groff, libyaml, libffi, autoreconfHook, bison
 , autoconf, libiconv, libobjc, libunwind, Foundation
-, buildEnv, bundler, bundix, makeWrapper
+, buildEnv, bundler, bundix, makeWrapper, removeReferencesTo
 } @ args:
 
 let
@@ -28,6 +28,7 @@ let
     isRuby20 = ver.majMin == "2.0";
     isRuby21 = ver.majMin == "2.1";
     atLeast25 = lib.versionAtLeast ver.majMin "2.5";
+    atLeast27 = lib.versionAtLeast ver.majMin "2.7";
     baseruby = self.override {
       useRailsExpress = false;
       docSupport = false;
@@ -50,6 +51,11 @@ let
       , groff, docSupport ? true
       , libyaml, yamlSupport ? true
       , libffi, fiddleSupport ? true
+      # ruby -e "puts RbConfig::CONFIG['configure_args']"
+      # puts a reference to the C compiler in the binary.
+      # This might be required by some gems at runtime,
+      # but we allow to strip it out for smaller closure size.
+      , removeReferencesTo, removeReferenceToCC ? false
       , autoreconfHook, bison, autoconf
       , buildEnv, bundler, bundix
       , libiconv, libobjc, libunwind, Foundation
@@ -126,7 +132,13 @@ let
           cp ${config}/config.sub tool/
         '';
 
-        configureFlags = ["--enable-shared" "--enable-pthread"]
+        # Force the revision.h generation. Somehow `revision.tmp` is an empty
+        # file and because we don't add `git` to buildInputs, hence the check is
+        # always true.
+        # https://github.com/ruby/ruby/commit/97a5af62a318fcd93a4e5e4428d576c0280ddbae
+        buildFlags = lib.optionals atLeast27 [ "REVISION_LATEST=0" ];
+
+        configureFlags = ["--enable-shared" "--enable-pthread" "--with-soname=ruby_${tag}"]
           ++ op useRailsExpress "--with-baseruby=${baseruby}/bin/ruby"
           ++ op (!docSupport) "--disable-install-doc"
           ++ ops stdenv.isDarwin [
@@ -154,12 +166,19 @@ let
           export GEM_HOME="$out/${passthru.gemPath}"
         '';
 
-        installFlags = stdenv.lib.optionalString docSupport "install-doc";
+        installFlags = stdenv.lib.optional docSupport "install-doc";
         # Bundler tries to create this directory
         postInstall = ''
           # Remove unnecessary groff reference from runtime closure, since it's big
           sed -i '/NROFF/d' $out/lib/ruby/*/*/rbconfig.rb
-
+          ${
+            lib.optionalString removeReferenceToCC ''
+              # Get rid of the CC runtime dependency
+              ${removeReferencesTo}/bin/remove-references-to \
+                -t ${stdenv.cc} \
+                $out/lib/libruby*
+            ''
+          }
           # Bundler tries to create this directory
           mkdir -p $out/nix-support
           cat > $out/nix-support/setup-hook <<EOF
@@ -263,27 +282,34 @@ in {
   };
 
   ruby_2_4 = generic {
-    version = rubyVersion "2" "4" "7" "";
+    version = rubyVersion "2" "4" "9" "";
     sha256 = {
-      src = "12cbyf7zai8mi3mxffm5ynq3mmkcbvs7kb1bbrs259m61irgqvnd";
-      git = "1dgch9xz4wdcncb6pf2dvijm10yk6mbw2wfdrj7d3wazrjzh305z";
+      src = "1bn6n5b920qy3lsx99jr8495jkc3sg89swgb96d5fgd579g6p6zr";
+      git = "066kb1iki7mx7qkm10xhj5b6v8s47wg68v43l3nc36y2hyim1w2c";
     };
   };
 
   ruby_2_5 = generic {
-    version = rubyVersion "2" "5" "6" "";
+    version = rubyVersion "2" "5" "7" "";
     sha256 = {
-      src = "19xy6rf138ys4qycv0ibsycqwbjmf1j6iv9plw9cs81hcxnd0zhx";
-      git = "067gyy7149m6vk9dfyx22mghm2gbgy7snfa7df4ddrvr1pqffqmz";
+      src = "1m6nmnj9shifp8g3yh7aimac01vl035bzcc19x2spdji6ig0sb8b";
+      git = "0wppf82c9ccdbnvj30mppr5a3mc7sxm05diahjdw7hhk29n43knp";
     };
   };
 
   ruby_2_6 = generic {
-    version = rubyVersion "2" "6" "4" "";
+    version = rubyVersion "2" "6" "5" "";
     sha256 = {
-      src = "0dvrw4g2igvjclxk9bmb9pf6mzxwm22zqvqa0abkfnshfnxdihag";
-      git = "1h4z66amjykpzl6lxx6yad2yfpwnwix4sw19bd96jnwg248kviqf";
+      src = "0zgdrgylq6avbblf78kpaf0k2xnkpc3jng3wkd7x67ycdrqnp5v6";
+      git = "0pay6ic22ag3bnvxffhgwp7z6clkd0p93944a1l4lvc5hxc8v77j";
     };
   };
-}
 
+  ruby_2_7 = generic {
+    version = rubyVersion "2" "7" "0" "";
+    sha256 = {
+      src = "1glc3zpnih6h8mrgfcak0aa7cgmi4zyvxfyi6y2brwg2nn9sm6cc";
+      git = "11iz64k95czs273mb10195d1j75mmbcgddfdx1vay5876ffw81dq";
+    };
+  };
+}
diff --git a/nixpkgs/pkgs/development/interpreters/ruby/patchsets.nix b/nixpkgs/pkgs/development/interpreters/ruby/patchsets.nix
index 56898e7886a0..9661508684e0 100644
--- a/nixpkgs/pkgs/development/interpreters/ruby/patchsets.nix
+++ b/nixpkgs/pkgs/development/interpreters/ruby/patchsets.nix
@@ -60,24 +60,21 @@
     "${patchSet}/patches/ruby/2.3/head/railsexpress/02-improve-gc-stats.patch"
     "${patchSet}/patches/ruby/2.3/head/railsexpress/03-display-more-detailed-stack-trace.patch"
   ];
-  "2.4.7" = ops useRailsExpress [
+  "2.4.9" = ops useRailsExpress [
     "${patchSet}/patches/ruby/2.4/head/railsexpress/01-skip-broken-tests.patch"
     "${patchSet}/patches/ruby/2.4/head/railsexpress/02-improve-gc-stats.patch"
     "${patchSet}/patches/ruby/2.4/head/railsexpress/03-display-more-detailed-stack-trace.patch"
   ];
-  "2.5.6" = ops useRailsExpress [
+  "2.5.7" = ops useRailsExpress [
     "${patchSet}/patches/ruby/2.5/head/railsexpress/01-fix-broken-tests-caused-by-ad.patch"
     "${patchSet}/patches/ruby/2.5/head/railsexpress/02-improve-gc-stats.patch"
     "${patchSet}/patches/ruby/2.5/head/railsexpress/03-more-detailed-stacktrace.patch"
   ];
-  "2.6.4" = [
-    (fetchpatch {
-      url = "https://git.ruby-lang.org/ruby.git/patch/?id=ade1283ca276f7d589ffd3539fbc7b9817f682d5";
-      sha256 = "1vgrckmzz0ykyxgzyp8fcifa93xz2hvyfil79bw1gc3xx94wnnxd";
-    })
-  ] ++ ops useRailsExpress [
+  "2.6.5" = ops useRailsExpress [
     "${patchSet}/patches/ruby/2.6/head/railsexpress/01-fix-broken-tests-caused-by-ad.patch"
     "${patchSet}/patches/ruby/2.6/head/railsexpress/02-improve-gc-stats.patch"
     "${patchSet}/patches/ruby/2.6/head/railsexpress/03-more-detailed-stacktrace.patch"
   ];
+  "2.7.0" = ops useRailsExpress [ # no patches yet (2019-12-25)
+  ];
 }
diff --git a/nixpkgs/pkgs/development/interpreters/ruby/rubygems/default.nix b/nixpkgs/pkgs/development/interpreters/ruby/rubygems/default.nix
index 7bc1a8f1fd91..3caac2447e2e 100644
--- a/nixpkgs/pkgs/development/interpreters/ruby/rubygems/default.nix
+++ b/nixpkgs/pkgs/development/interpreters/ruby/rubygems/default.nix
@@ -2,17 +2,22 @@
 
 stdenv.mkDerivation rec {
   name = "rubygems";
-  version = "3.0.6";
+  version = "3.1.2";
 
   src = fetchurl {
     url = "https://rubygems.org/rubygems/rubygems-${version}.tgz";
-    sha256 = "1ca1i4xmggizr59m6p28gprlvshczsbx30q8iyzxb2vj4jn8arzx";
+    sha256 = "0h7ij4jpj8rgnpkl63cwh2lnav73pw5wpfqra3va7077lsyadlgd";
   };
 
   patches = [
     ./0001-add-post-extract-hook.patch
     ./0002-binaries-with-env-shebang.patch
     ./0003-gem-install-default-to-user.patch
+
+    (fetchpatch {
+      url = "https://github.com/rubygems/rubygems/commit/0af4d2d369ff580ef54839ec15a8c7ec419978cb.patch";
+      sha256 = "13gyfxn4rmxq1dbxq5rzphnhagn8n8kpp8lb9h6h4s9d4zaklax9";
+    })
   ];
 
   installPhase = ''
diff --git a/nixpkgs/pkgs/development/interpreters/spidermonkey/1.8.5.nix b/nixpkgs/pkgs/development/interpreters/spidermonkey/1.8.5.nix
index 97d2b67372af..fe77a27d449a 100644
--- a/nixpkgs/pkgs/development/interpreters/spidermonkey/1.8.5.nix
+++ b/nixpkgs/pkgs/development/interpreters/spidermonkey/1.8.5.nix
@@ -35,7 +35,7 @@ stdenv.mkDerivation {
     ./1.8.5-arm-flags.patch
   ];
 
-  patchFlags = "-p3";
+  patchFlags = [ "-p3" ];
 
   # fixes build on gcc8
   postPatch = ''
diff --git a/nixpkgs/pkgs/development/interpreters/spidermonkey/52.nix b/nixpkgs/pkgs/development/interpreters/spidermonkey/52.nix
deleted file mode 100644
index 238afd4bd040..000000000000
--- a/nixpkgs/pkgs/development/interpreters/spidermonkey/52.nix
+++ /dev/null
@@ -1,82 +0,0 @@
-{ stdenv, fetchurl, fetchpatch, autoconf213, pkgconfig, perl, zip, which, readline, icu, zlib, nspr, buildPackages }:
-
-let
-  version = "52.9.0";
-in stdenv.mkDerivation {
-  pname = "spidermonkey";
-  inherit version;
-
-  src = fetchurl {
-    url = "mirror://mozilla/firefox/releases/${version}esr/source/firefox-${version}esr.source.tar.xz";
-    sha256 = "1mlx34fgh1kaqamrkl5isf0npch3mm6s4lz3jsjb7hakiijhj7f0";
-  };
-
-  outputs = [ "out" "dev" ];
-  setOutputFlags = false; # Configure script only understands --includedir
-
-  buildInputs = [ readline icu zlib nspr ];
-  nativeBuildInputs = [ autoconf213 pkgconfig perl which buildPackages.python2 zip ];
-
-  # Apparently this package fails to build correctly with modern compilers, which at least
-  # on ARMv6 causes polkit testsuite to break with an assertion failure in spidermonkey.
-  # These flags were stolen from:
-  # https://git.archlinux.org/svntogit/packages.git/tree/trunk/PKGBUILD?h=packages/js52
-  NIX_CFLAGS_COMPILE = "-fno-delete-null-pointer-checks -fno-strict-aliasing -fno-tree-vrp";
-
-  patches = [
-    # needed to build gnome3.gjs
-    (fetchpatch {
-      name = "mozjs52-disable-mozglue.patch";
-      url = https://git.archlinux.org/svntogit/packages.git/plain/trunk/mozjs52-disable-mozglue.patch?h=packages/js52&id=4279d2e18d9a44f6375f584911f63d13de7704be;
-      sha256 = "18wkss0agdyff107p5lfflk72qiz350xqw2yqc353alkx4fsfpz0";
-    })
-  ];
-
-  configurePlatforms = [ ];
-
-  preConfigure = ''
-    export CXXFLAGS="-fpermissive"
-    export LIBXUL_DIST=$out
-    export PYTHON="${buildPackages.python2.interpreter}"
-    configureFlagsArray+=("--includedir=$dev/include")
-
-    cd js/src
-
-    autoconf
-  '';
-
-  configureFlags = [
-    "--with-nspr-prefix=${nspr}"
-    "--with-system-zlib"
-    "--with-system-icu"
-    "--with-intl-api"
-    "--enable-readline"
-    "--enable-shared-js"
-  ] ++ stdenv.lib.optional stdenv.hostPlatform.isMusl "--disable-jemalloc"
-    ++ stdenv.lib.optionals (stdenv.hostPlatform != stdenv.buildPlatform) [
-    "--host=${stdenv.buildPlatform.config}"
-    "--target=${stdenv.hostPlatform.config}"
-  ];
-
-  makeFlags = [
-    "HOST_CC=${buildPackages.stdenv.cc}/bin/cc"
-  ];
-
-  depsBuildBuild = [ buildPackages.stdenv.cc ];
-
-  enableParallelBuilding = true;
-
-  postInstall = ''
-    moveToOutput bin/js52-config "$dev"
-    # Nuke a static lib.
-    rm $out/lib/libjs_static.ajs
-  '';
-
-  meta = with stdenv.lib; {
-    description = "Mozilla's JavaScript engine written in C/C++";
-    homepage = https://developer.mozilla.org/en/SpiderMonkey;
-    license = licenses.gpl2; # TODO: MPL/GPL/LGPL tri-license.
-    maintainers = [ maintainers.abbradar ];
-    platforms = platforms.linux;
-  };
-}
diff --git a/nixpkgs/pkgs/development/interpreters/spidermonkey/60.nix b/nixpkgs/pkgs/development/interpreters/spidermonkey/60.nix
index f62638dd8386..f6a4483edba7 100644
--- a/nixpkgs/pkgs/development/interpreters/spidermonkey/60.nix
+++ b/nixpkgs/pkgs/development/interpreters/spidermonkey/60.nix
@@ -4,23 +4,28 @@
 with stdenv.lib;
 
 let
-  version = "60.4.0";
+  version = "60.9.0";
 in stdenv.mkDerivation {
   pname = "spidermonkey";
   inherit version;
 
   src = fetchurl {
     url = "mirror://mozilla/firefox/releases/${version}esr/source/firefox-${version}esr.source.tar.xz";
-    sha256 = "11gzxd82grc3kg1ha4yni6ag6b97n46qycvv6x15s91ziia5hli0";
+    sha256 = "0gy5x2rnnbkqmjd9sq93s3q5na9nkba68xwpizild7k6qn63qicz";
   };
 
+  outputs = [ "out" "dev" ];
+  setOutputFlags = false; # Configure script only understands --includedir
+
   buildInputs = [ readline zlib icu ];
   nativeBuildInputs = [ autoconf213 pkgconfig perl which python2 zip ];
 
   patches = [
+    # Fixed in 62.0
+    # https://bugzilla.mozilla.org/show_bug.cgi?id=1415202
     (fetchpatch {
-      url = https://bug1415202.bmoattachments.org/attachment.cgi?id=8926363;
-      sha256 = "082ryrvqa3lvs67v3sq9kf2jshf4qp1fpi195wffc40jdrl8fnin";
+      url = "https://src.fedoraproject.org/rpms/mozjs60/raw/a1b605c73f382db25977cb2d4d70a3ba2ff85b92/f/Always-use-the-equivalent-year-to-determine-the-time-zone.patch";
+      sha256 = "12i225qbzlyfj2disms50zrr5jy8zgn2cc4rgsg58sfgf1bn7150";
     })
   ];
 
@@ -61,7 +66,9 @@ in stdenv.mkDerivation {
 
   # Remove unnecessary static lib
   preFixup = ''
+    moveToOutput bin/js60-config "$dev"
     rm $out/lib/libjs_static.ajs
+    ln -s $out/bin/js60 $out/bin/js
   '';
 
   enableParallelBuilding = true;
diff --git a/nixpkgs/pkgs/development/interpreters/tcl/generic.nix b/nixpkgs/pkgs/development/interpreters/tcl/generic.nix
index 3c585c3f07fa..fd84d93ba756 100644
--- a/nixpkgs/pkgs/development/interpreters/tcl/generic.nix
+++ b/nixpkgs/pkgs/development/interpreters/tcl/generic.nix
@@ -31,10 +31,12 @@ stdenv.mkDerivation {
 
   enableParallelBuilding = true;
 
-  postInstall = ''
+  postInstall = let
+    dllExtension = stdenv.hostPlatform.extensions.sharedLibrary;
+  in ''
     make install-private-headers
     ln -s $out/bin/tclsh${release} $out/bin/tclsh
-    ln -s $out/lib/libtcl${release}.so $out/lib/libtcl.so
+    ln -s $out/lib/libtcl${release}${dllExtension} $out/lib/libtcl${dllExtension}
   '';
 
   meta = with stdenv.lib; {
diff --git a/nixpkgs/pkgs/development/interpreters/wasmtime/cargo-lock.patch b/nixpkgs/pkgs/development/interpreters/wasmtime/cargo-lock.patch
index 854798865704..3ce3f7659886 100644
--- a/nixpkgs/pkgs/development/interpreters/wasmtime/cargo-lock.patch
+++ b/nixpkgs/pkgs/development/interpreters/wasmtime/cargo-lock.patch
@@ -1,17 +1,17 @@
 diff --git a/Cargo.lock b/Cargo.lock
 new file mode 100644
-index 0000000..b961a31
+index 00000000..818de492
 --- /dev/null
 +++ b/Cargo.lock
-@@ -0,0 +1,1608 @@
+@@ -0,0 +1,2276 @@
 +# This file is automatically @generated by Cargo.
 +# It is not intended for manual editing.
 +[[package]]
 +name = "aho-corasick"
-+version = "0.7.3"
++version = "0.7.6"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +dependencies = [
-+ "memchr 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "memchr 2.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
 +]
 +
 +[[package]]
@@ -19,114 +19,191 @@ index 0000000..b961a31
 +version = "0.11.0"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +dependencies = [
-+ "winapi 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)",
++ "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
 +]
 +
 +[[package]]
++name = "anyhow"
++version = "1.0.26"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++
++[[package]]
++name = "arrayref"
++version = "0.3.5"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++
++[[package]]
 +name = "arrayvec"
-+version = "0.4.10"
++version = "0.4.12"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +dependencies = [
-+ "nodrop 0.1.13 (registry+https://github.com/rust-lang/crates.io-index)",
++ "nodrop 0.1.14 (registry+https://github.com/rust-lang/crates.io-index)",
 +]
 +
 +[[package]]
++name = "arrayvec"
++version = "0.5.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++
++[[package]]
 +name = "atty"
-+version = "0.2.11"
++version = "0.2.14"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +dependencies = [
-+ "libc 0.2.58 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "termion 1.5.2 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "winapi 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)",
++ "hermit-abi 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)",
++ "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)",
++ "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
 +]
 +
 +[[package]]
 +name = "autocfg"
-+version = "0.1.4"
++version = "0.1.7"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +
 +[[package]]
 +name = "backtrace"
-+version = "0.3.30"
++version = "0.3.40"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +dependencies = [
-+ "autocfg 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "backtrace-sys 0.1.28 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "cfg-if 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "libc 0.2.58 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "rustc-demangle 0.1.15 (registry+https://github.com/rust-lang/crates.io-index)",
++ "backtrace-sys 0.1.32 (registry+https://github.com/rust-lang/crates.io-index)",
++ "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)",
++ "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)",
++ "rustc-demangle 0.1.16 (registry+https://github.com/rust-lang/crates.io-index)",
 +]
 +
 +[[package]]
 +name = "backtrace-sys"
-+version = "0.1.28"
++version = "0.1.32"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +dependencies = [
-+ "cc 1.0.37 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "libc 0.2.58 (registry+https://github.com/rust-lang/crates.io-index)",
++ "cc 1.0.49 (registry+https://github.com/rust-lang/crates.io-index)",
++ "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "base64"
++version = "0.10.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "byteorder 1.3.2 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "base64"
++version = "0.11.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++
++[[package]]
++name = "bincode"
++version = "1.2.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "byteorder 1.3.2 (registry+https://github.com/rust-lang/crates.io-index)",
++ "serde 1.0.104 (registry+https://github.com/rust-lang/crates.io-index)",
 +]
 +
 +[[package]]
 +name = "bindgen"
-+version = "0.49.2"
++version = "0.51.1"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +dependencies = [
-+ "bitflags 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "cexpr 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "cfg-if 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "clang-sys 0.28.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "cexpr 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)",
++ "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)",
++ "clang-sys 0.28.1 (registry+https://github.com/rust-lang/crates.io-index)",
 + "clap 2.33.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "env_logger 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "fxhash 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
++ "env_logger 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)",
++ "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)",
 + "peeking_take_while 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "proc-macro2 0.4.30 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "quote 0.6.12 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "regex 1.1.6 (registry+https://github.com/rust-lang/crates.io-index)",
++ "proc-macro2 1.0.7 (registry+https://github.com/rust-lang/crates.io-index)",
++ "quote 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)",
++ "regex 1.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "rustc-hash 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)",
 + "shlex 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "which 2.0.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "which 3.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
 +]
 +
 +[[package]]
 +name = "bitflags"
-+version = "1.1.0"
++version = "1.2.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++
++[[package]]
++name = "blake2b_simd"
++version = "0.5.10"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "arrayref 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)",
++ "arrayvec 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "constant_time_eq 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "block-buffer"
++version = "0.7.3"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "block-padding 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
++ "byte-tools 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "byteorder 1.3.2 (registry+https://github.com/rust-lang/crates.io-index)",
++ "generic-array 0.12.3 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "block-padding"
++version = "0.1.5"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "byte-tools 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "byte-tools"
++version = "0.3.1"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +
 +[[package]]
 +name = "byteorder"
-+version = "1.3.1"
++version = "1.3.2"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +
 +[[package]]
-+name = "capstone"
-+version = "0.5.0"
++name = "c2-chacha"
++version = "0.2.3"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +dependencies = [
-+ "capstone-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "ppv-lite86 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)",
 +]
 +
 +[[package]]
-+name = "capstone-sys"
-+version = "0.9.1"
++name = "capstone"
++version = "0.6.0"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +dependencies = [
-+ "cc 1.0.37 (registry+https://github.com/rust-lang/crates.io-index)",
++ "capstone-sys 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)",
 +]
 +
 +[[package]]
-+name = "cast"
-+version = "0.2.2"
++name = "capstone-sys"
++version = "0.10.0"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "cc 1.0.49 (registry+https://github.com/rust-lang/crates.io-index)",
++]
 +
 +[[package]]
 +name = "cc"
-+version = "1.0.37"
++version = "1.0.49"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "jobserver 0.1.17 (registry+https://github.com/rust-lang/crates.io-index)",
++ "num_cpus 1.11.1 (registry+https://github.com/rust-lang/crates.io-index)",
++]
 +
 +[[package]]
 +name = "cexpr"
-+version = "0.3.5"
++version = "0.3.6"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +dependencies = [
 + "nom 4.2.3 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -134,27 +211,27 @@ index 0000000..b961a31
 +
 +[[package]]
 +name = "cfg-if"
-+version = "0.1.9"
++version = "0.1.10"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +
 +[[package]]
 +name = "chrono"
-+version = "0.4.6"
++version = "0.4.10"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +dependencies = [
 + "num-integer 0.1.41 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "num-traits 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)",
++ "num-traits 0.2.10 (registry+https://github.com/rust-lang/crates.io-index)",
 + "time 0.1.42 (registry+https://github.com/rust-lang/crates.io-index)",
 +]
 +
 +[[package]]
 +name = "clang-sys"
-+version = "0.28.0"
++version = "0.28.1"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +dependencies = [
-+ "glob 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "libc 0.2.58 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "libloading 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "glob 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)",
++ "libloading 0.5.2 (registry+https://github.com/rust-lang/crates.io-index)",
 +]
 +
 +[[package]]
@@ -163,11 +240,11 @@ index 0000000..b961a31
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +dependencies = [
 + "ansi_term 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "atty 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "bitflags 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "atty 0.2.14 (registry+https://github.com/rust-lang/crates.io-index)",
++ "bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
 + "strsim 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
 + "textwrap 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "unicode-width 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
++ "unicode-width 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)",
 + "vec_map 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)",
 +]
 +
@@ -176,182 +253,256 @@ index 0000000..b961a31
 +version = "0.0.3"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +dependencies = [
-+ "bitflags 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
 +]
 +
 +[[package]]
 +name = "cmake"
-+version = "0.1.40"
++version = "0.1.42"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "cc 1.0.49 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "constant_time_eq"
++version = "0.1.4"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++
++[[package]]
++name = "cpu-time"
++version = "1.0.0"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +dependencies = [
-+ "cc 1.0.37 (registry+https://github.com/rust-lang/crates.io-index)",
++ "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)",
++ "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
 +]
 +
 +[[package]]
 +name = "cranelift-bforest"
-+version = "0.30.0"
++version = "0.50.0"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +dependencies = [
-+ "cranelift-entity 0.30.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "cranelift-entity 0.50.0 (registry+https://github.com/rust-lang/crates.io-index)",
 +]
 +
 +[[package]]
 +name = "cranelift-codegen"
-+version = "0.30.0"
++version = "0.50.0"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +dependencies = [
-+ "cranelift-bforest 0.30.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "cranelift-codegen-meta 0.30.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "cranelift-entity 0.30.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "failure 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "failure_derive 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "hashmap_core 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "target-lexicon 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "byteorder 1.3.2 (registry+https://github.com/rust-lang/crates.io-index)",
++ "cranelift-bforest 0.50.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "cranelift-codegen-meta 0.50.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "cranelift-codegen-shared 0.50.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "cranelift-entity 0.50.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)",
++ "serde 1.0.104 (registry+https://github.com/rust-lang/crates.io-index)",
++ "smallvec 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "target-lexicon 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "thiserror 1.0.9 (registry+https://github.com/rust-lang/crates.io-index)",
 +]
 +
 +[[package]]
 +name = "cranelift-codegen-meta"
-+version = "0.30.0"
++version = "0.50.0"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +dependencies = [
-+ "cranelift-entity 0.30.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "cranelift-codegen-shared 0.50.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "cranelift-entity 0.50.0 (registry+https://github.com/rust-lang/crates.io-index)",
 +]
 +
 +[[package]]
++name = "cranelift-codegen-shared"
++version = "0.50.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++
++[[package]]
 +name = "cranelift-entity"
-+version = "0.30.0"
++version = "0.50.0"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "serde 1.0.104 (registry+https://github.com/rust-lang/crates.io-index)",
++]
 +
 +[[package]]
 +name = "cranelift-frontend"
-+version = "0.30.0"
++version = "0.50.0"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +dependencies = [
-+ "cranelift-codegen 0.30.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "hashmap_core 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "target-lexicon 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "cranelift-codegen 0.50.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)",
++ "smallvec 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "target-lexicon 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
 +]
 +
 +[[package]]
 +name = "cranelift-native"
-+version = "0.30.0"
++version = "0.50.0"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +dependencies = [
-+ "cranelift-codegen 0.30.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "raw-cpuid 6.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "target-lexicon 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "cranelift-codegen 0.50.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "raw-cpuid 7.0.3 (registry+https://github.com/rust-lang/crates.io-index)",
++ "target-lexicon 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
 +]
 +
 +[[package]]
 +name = "cranelift-wasm"
-+version = "0.30.0"
++version = "0.50.0"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +dependencies = [
-+ "cast 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "cranelift-codegen 0.30.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "cranelift-entity 0.30.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "cranelift-frontend 0.30.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "failure 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "failure_derive 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "hashmap_core 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "wasmparser 0.29.2 (registry+https://github.com/rust-lang/crates.io-index)",
++ "cranelift-codegen 0.50.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "cranelift-entity 0.50.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "cranelift-frontend 0.50.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)",
++ "serde 1.0.104 (registry+https://github.com/rust-lang/crates.io-index)",
++ "thiserror 1.0.9 (registry+https://github.com/rust-lang/crates.io-index)",
++ "wasmparser 0.39.3 (registry+https://github.com/rust-lang/crates.io-index)",
 +]
 +
 +[[package]]
 +name = "crossbeam-deque"
-+version = "0.2.0"
++version = "0.7.2"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +dependencies = [
-+ "crossbeam-epoch 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "crossbeam-utils 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)",
++ "crossbeam-epoch 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "crossbeam-utils 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
 +]
 +
 +[[package]]
 +name = "crossbeam-epoch"
-+version = "0.3.1"
++version = "0.8.0"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +dependencies = [
-+ "arrayvec 0.4.10 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "cfg-if 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "crossbeam-utils 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "memoffset 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "nodrop 0.1.13 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "scopeguard 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)",
++ "autocfg 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)",
++ "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)",
++ "crossbeam-utils 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "memoffset 0.5.3 (registry+https://github.com/rust-lang/crates.io-index)",
++ "scopeguard 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "crossbeam-queue"
++version = "0.2.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)",
++ "crossbeam-utils 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
 +]
 +
 +[[package]]
 +name = "crossbeam-utils"
-+version = "0.2.2"
++version = "0.6.6"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +dependencies = [
-+ "cfg-if 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)",
++ "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)",
++ "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
 +]
 +
 +[[package]]
-+name = "docopt"
-+version = "1.1.0"
++name = "crossbeam-utils"
++version = "0.7.0"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +dependencies = [
-+ "lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "regex 1.1.6 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "serde 1.0.92 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "strsim 0.9.2 (registry+https://github.com/rust-lang/crates.io-index)",
++ "autocfg 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)",
++ "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)",
++ "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
 +]
 +
 +[[package]]
-+name = "dynasm"
-+version = "0.3.2"
++name = "ctor"
++version = "0.1.12"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +dependencies = [
-+ "bitflags 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "byteorder 1.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "owning_ref 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "proc-macro2 0.4.30 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "quote 0.6.12 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "syn 0.15.34 (registry+https://github.com/rust-lang/crates.io-index)",
++ "quote 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)",
++ "syn 1.0.13 (registry+https://github.com/rust-lang/crates.io-index)",
 +]
 +
 +[[package]]
-+name = "dynasmrt"
-+version = "0.3.1"
++name = "cvt"
++version = "0.1.1"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +dependencies = [
-+ "byteorder 1.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "memmap 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "take_mut 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)",
++ "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)",
 +]
 +
 +[[package]]
-+name = "either"
-+version = "1.5.2"
++name = "digest"
++version = "0.8.1"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "generic-array 0.12.3 (registry+https://github.com/rust-lang/crates.io-index)",
++]
 +
 +[[package]]
-+name = "env_logger"
-+version = "0.5.13"
++name = "directories"
++version = "2.0.2"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +dependencies = [
-+ "atty 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "humantime 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "regex 1.1.6 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "termcolor 1.0.5 (registry+https://github.com/rust-lang/crates.io-index)",
++ "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)",
++ "dirs-sys 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "dirs-sys"
++version = "0.3.4"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)",
++ "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)",
++ "redox_users 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
 +]
 +
 +[[package]]
++name = "docopt"
++version = "1.1.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "regex 1.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "serde 1.0.104 (registry+https://github.com/rust-lang/crates.io-index)",
++ "strsim 0.9.3 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "dynasm"
++version = "0.5.2"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "byteorder 1.3.2 (registry+https://github.com/rust-lang/crates.io-index)",
++ "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "owning_ref 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "proc-macro2 1.0.7 (registry+https://github.com/rust-lang/crates.io-index)",
++ "quote 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)",
++ "syn 1.0.13 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "dynasmrt"
++version = "0.5.2"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "byteorder 1.3.2 (registry+https://github.com/rust-lang/crates.io-index)",
++ "memmap 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "either"
++version = "1.5.3"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++
++[[package]]
 +name = "env_logger"
-+version = "0.6.1"
++version = "0.6.2"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +dependencies = [
-+ "atty 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "humantime 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "regex 1.1.6 (registry+https://github.com/rust-lang/crates.io-index)",
++ "atty 0.2.14 (registry+https://github.com/rust-lang/crates.io-index)",
++ "humantime 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)",
++ "regex 1.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
 + "termcolor 1.0.5 (registry+https://github.com/rust-lang/crates.io-index)",
 +]
 +
@@ -361,8 +512,8 @@ index 0000000..b961a31
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +dependencies = [
 + "errno-dragonfly 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "libc 0.2.58 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "winapi 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)",
++ "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)",
++ "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
 +]
 +
 +[[package]]
@@ -371,49 +522,52 @@ index 0000000..b961a31
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +dependencies = [
 + "gcc 0.3.55 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "libc 0.2.58 (registry+https://github.com/rust-lang/crates.io-index)",
++ "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)",
 +]
 +
 +[[package]]
 +name = "faerie"
-+version = "0.9.1"
++version = "0.13.0"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +dependencies = [
-+ "env_logger 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "failure 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "goblin 0.0.21 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "indexmap 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "scroll 0.9.2 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "string-interner 0.6.3 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "structopt 0.2.17 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "structopt-derive 0.2.17 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "target-lexicon 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "anyhow 1.0.26 (registry+https://github.com/rust-lang/crates.io-index)",
++ "goblin 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)",
++ "indexmap 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)",
++ "scroll 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "string-interner 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "target-lexicon 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "thiserror 1.0.9 (registry+https://github.com/rust-lang/crates.io-index)",
 +]
 +
 +[[package]]
 +name = "failure"
-+version = "0.1.5"
++version = "0.1.6"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +dependencies = [
-+ "backtrace 0.3.30 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "failure_derive 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
++ "backtrace 0.3.40 (registry+https://github.com/rust-lang/crates.io-index)",
++ "failure_derive 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)",
 +]
 +
 +[[package]]
 +name = "failure_derive"
-+version = "0.1.5"
++version = "0.1.6"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +dependencies = [
-+ "proc-macro2 0.4.30 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "quote 0.6.12 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "syn 0.15.34 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "synstructure 0.10.2 (registry+https://github.com/rust-lang/crates.io-index)",
++ "proc-macro2 1.0.7 (registry+https://github.com/rust-lang/crates.io-index)",
++ "quote 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)",
++ "syn 1.0.13 (registry+https://github.com/rust-lang/crates.io-index)",
++ "synstructure 0.12.3 (registry+https://github.com/rust-lang/crates.io-index)",
 +]
 +
 +[[package]]
++name = "fake-simd"
++version = "0.1.2"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++
++[[package]]
 +name = "fallible-iterator"
-+version = "0.1.6"
++version = "0.2.0"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +
 +[[package]]
@@ -421,8 +575,19 @@ index 0000000..b961a31
 +version = "0.1.2"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +dependencies = [
-+ "env_logger 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
++ "env_logger 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)",
++ "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "filetime"
++version = "0.2.8"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)",
++ "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)",
++ "redox_syscall 0.1.56 (registry+https://github.com/rust-lang/crates.io-index)",
++ "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
 +]
 +
 +[[package]]
@@ -431,86 +596,149 @@ index 0000000..b961a31
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +
 +[[package]]
-+name = "fxhash"
-+version = "0.2.1"
++name = "gcc"
++version = "0.3.55"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++
++[[package]]
++name = "generic-array"
++version = "0.12.3"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +dependencies = [
-+ "byteorder 1.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "typenum 1.11.2 (registry+https://github.com/rust-lang/crates.io-index)",
 +]
 +
 +[[package]]
-+name = "gcc"
-+version = "0.3.55"
++name = "getrandom"
++version = "0.1.13"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)",
++ "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)",
++ "wasi 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "ghost"
++version = "0.1.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "proc-macro2 1.0.7 (registry+https://github.com/rust-lang/crates.io-index)",
++ "quote 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)",
++ "syn 1.0.13 (registry+https://github.com/rust-lang/crates.io-index)",
++]
 +
 +[[package]]
 +name = "gimli"
-+version = "0.17.0"
++version = "0.19.0"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +dependencies = [
-+ "arrayvec 0.4.10 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "byteorder 1.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "fallible-iterator 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "indexmap 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)",
++ "arrayvec 0.4.12 (registry+https://github.com/rust-lang/crates.io-index)",
++ "byteorder 1.3.2 (registry+https://github.com/rust-lang/crates.io-index)",
++ "fallible-iterator 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "indexmap 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
 + "stable_deref_trait 1.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
 +]
 +
 +[[package]]
 +name = "glob"
-+version = "0.2.11"
++version = "0.3.0"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +
 +[[package]]
 +name = "goblin"
-+version = "0.0.21"
++version = "0.1.3"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +dependencies = [
-+ "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
++ "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)",
 + "plain 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "scroll 0.9.2 (registry+https://github.com/rust-lang/crates.io-index)",
++ "scroll 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)",
 +]
 +
 +[[package]]
-+name = "hashbrown"
-+version = "0.1.8"
++name = "heck"
++version = "0.3.1"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +dependencies = [
-+ "byteorder 1.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "scopeguard 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)",
++ "unicode-segmentation 1.6.0 (registry+https://github.com/rust-lang/crates.io-index)",
 +]
 +
 +[[package]]
-+name = "hashmap_core"
-+version = "0.1.10"
++name = "hermit-abi"
++version = "0.1.6"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)",
++]
 +
 +[[package]]
-+name = "heck"
-+version = "0.3.1"
++name = "humantime"
++version = "1.3.0"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +dependencies = [
-+ "unicode-segmentation 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "quick-error 1.2.3 (registry+https://github.com/rust-lang/crates.io-index)",
 +]
 +
 +[[package]]
-+name = "humantime"
-+version = "1.2.0"
++name = "id-arena"
++version = "2.2.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++
++[[package]]
++name = "indexmap"
++version = "1.3.0"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +dependencies = [
-+ "quick-error 1.2.2 (registry+https://github.com/rust-lang/crates.io-index)",
++ "autocfg 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)",
 +]
 +
 +[[package]]
-+name = "indexmap"
-+version = "1.0.2"
++name = "indoc"
++version = "0.3.4"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "indoc-impl 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)",
++ "proc-macro-hack 0.5.11 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "indoc-impl"
++version = "0.3.4"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "proc-macro-hack 0.5.11 (registry+https://github.com/rust-lang/crates.io-index)",
++ "proc-macro2 1.0.7 (registry+https://github.com/rust-lang/crates.io-index)",
++ "quote 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)",
++ "syn 1.0.13 (registry+https://github.com/rust-lang/crates.io-index)",
++ "unindent 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "inventory"
++version = "0.1.5"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "ctor 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)",
++ "ghost 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "inventory-impl 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "inventory-impl"
++version = "0.1.5"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "proc-macro2 1.0.7 (registry+https://github.com/rust-lang/crates.io-index)",
++ "quote 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)",
++ "syn 1.0.13 (registry+https://github.com/rust-lang/crates.io-index)",
++]
 +
 +[[package]]
 +name = "itertools"
-+version = "0.8.0"
++version = "0.8.2"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +dependencies = [
-+ "either 1.5.2 (registry+https://github.com/rust-lang/crates.io-index)",
++ "either 1.5.3 (registry+https://github.com/rust-lang/crates.io-index)",
 +]
 +
 +[[package]]
@@ -519,52 +747,68 @@ index 0000000..b961a31
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +
 +[[package]]
++name = "jobserver"
++version = "0.1.17"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "getrandom 0.1.13 (registry+https://github.com/rust-lang/crates.io-index)",
++ "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)",
++ "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
 +name = "lazy_static"
-+version = "1.3.0"
++version = "1.4.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++
++[[package]]
++name = "leb128"
++version = "0.2.4"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +
 +[[package]]
 +name = "libc"
-+version = "0.2.58"
++version = "0.2.66"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +
 +[[package]]
 +name = "libloading"
-+version = "0.5.1"
++version = "0.5.2"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +dependencies = [
-+ "cc 1.0.37 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "winapi 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)",
++ "cc 1.0.49 (registry+https://github.com/rust-lang/crates.io-index)",
++ "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
 +]
 +
 +[[package]]
 +name = "lightbeam"
-+version = "0.0.0"
-+dependencies = [
-+ "capstone 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "cranelift-codegen 0.30.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "dynasm 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "dynasmrt 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "either 1.5.2 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "failure 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "failure_derive 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "itertools 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "memoffset 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
++version = "0.8.0"
++dependencies = [
++ "anyhow 1.0.26 (registry+https://github.com/rust-lang/crates.io-index)",
++ "capstone 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "cranelift-codegen 0.50.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "dynasm 0.5.2 (registry+https://github.com/rust-lang/crates.io-index)",
++ "dynasmrt 0.5.2 (registry+https://github.com/rust-lang/crates.io-index)",
++ "either 1.5.3 (registry+https://github.com/rust-lang/crates.io-index)",
++ "itertools 0.8.2 (registry+https://github.com/rust-lang/crates.io-index)",
++ "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "memoffset 0.5.3 (registry+https://github.com/rust-lang/crates.io-index)",
++ "more-asserts 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
 + "multi_mut 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "quickcheck 0.7.2 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "smallvec 0.6.9 (registry+https://github.com/rust-lang/crates.io-index)",
++ "quickcheck 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "smallvec 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "thiserror 1.0.9 (registry+https://github.com/rust-lang/crates.io-index)",
 + "typemap 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "wabt 0.7.4 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "wasmparser 0.29.2 (registry+https://github.com/rust-lang/crates.io-index)",
++ "wasmparser 0.39.3 (registry+https://github.com/rust-lang/crates.io-index)",
++ "wat 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)",
 +]
 +
 +[[package]]
 +name = "log"
-+version = "0.4.6"
++version = "0.4.8"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +dependencies = [
-+ "cfg-if 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)",
++ "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)",
 +]
 +
 +[[package]]
@@ -572,56 +816,56 @@ index 0000000..b961a31
 +version = "0.2.3"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +dependencies = [
-+ "libc 0.2.58 (registry+https://github.com/rust-lang/crates.io-index)",
++ "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)",
 +]
 +
 +[[package]]
 +name = "memchr"
-+version = "2.2.0"
++version = "2.2.1"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +
 +[[package]]
 +name = "memmap"
-+version = "0.6.2"
++version = "0.7.0"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +dependencies = [
-+ "libc 0.2.58 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "winapi 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)",
++ "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)",
++ "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
 +]
 +
 +[[package]]
 +name = "memoffset"
-+version = "0.2.1"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+
-+[[package]]
-+name = "memoffset"
-+version = "0.3.0"
++version = "0.5.3"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +dependencies = [
 + "rustc_version 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)",
 +]
 +
 +[[package]]
++name = "more-asserts"
++version = "0.2.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++
++[[package]]
 +name = "multi_mut"
 +version = "0.1.3"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +
 +[[package]]
 +name = "nix"
-+version = "0.13.0"
++version = "0.15.0"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +dependencies = [
-+ "bitflags 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "cc 1.0.37 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "cfg-if 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "libc 0.2.58 (registry+https://github.com/rust-lang/crates.io-index)",
++ "bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "cc 1.0.49 (registry+https://github.com/rust-lang/crates.io-index)",
++ "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)",
++ "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)",
 + "void 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)",
 +]
 +
 +[[package]]
 +name = "nodrop"
-+version = "0.1.13"
++version = "0.1.14"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +
 +[[package]]
@@ -629,49 +873,120 @@ index 0000000..b961a31
 +version = "4.2.3"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +dependencies = [
-+ "memchr 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "memchr 2.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
 + "version_check 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
 +]
 +
 +[[package]]
++name = "num"
++version = "0.2.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "num-complex 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)",
++ "num-integer 0.1.41 (registry+https://github.com/rust-lang/crates.io-index)",
++ "num-iter 0.1.39 (registry+https://github.com/rust-lang/crates.io-index)",
++ "num-rational 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)",
++ "num-traits 0.2.10 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "num-complex"
++version = "0.2.3"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "autocfg 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)",
++ "num-traits 0.2.10 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
 +name = "num-integer"
 +version = "0.1.41"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +dependencies = [
-+ "autocfg 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "num-traits 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)",
++ "autocfg 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)",
++ "num-traits 0.2.10 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "num-iter"
++version = "0.1.39"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "autocfg 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)",
++ "num-integer 0.1.41 (registry+https://github.com/rust-lang/crates.io-index)",
++ "num-traits 0.2.10 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "num-rational"
++version = "0.2.2"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "autocfg 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)",
++ "num-integer 0.1.41 (registry+https://github.com/rust-lang/crates.io-index)",
++ "num-traits 0.2.10 (registry+https://github.com/rust-lang/crates.io-index)",
 +]
 +
 +[[package]]
 +name = "num-traits"
-+version = "0.2.8"
++version = "0.2.10"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +dependencies = [
-+ "autocfg 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
++ "autocfg 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)",
 +]
 +
 +[[package]]
 +name = "num_cpus"
-+version = "1.10.0"
++version = "1.11.1"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +dependencies = [
-+ "libc 0.2.58 (registry+https://github.com/rust-lang/crates.io-index)",
++ "hermit-abi 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)",
++ "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)",
 +]
 +
 +[[package]]
-+name = "numtoa"
-+version = "0.1.0"
++name = "opaque-debug"
++version = "0.2.3"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +
 +[[package]]
++name = "os_pipe"
++version = "0.9.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)",
++ "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
 +name = "owning_ref"
-+version = "0.3.3"
++version = "0.4.0"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +dependencies = [
 + "stable_deref_trait 1.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
 +]
 +
 +[[package]]
++name = "paste"
++version = "0.1.6"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "paste-impl 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)",
++ "proc-macro-hack 0.5.11 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "paste-impl"
++version = "0.1.6"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "proc-macro-hack 0.5.11 (registry+https://github.com/rust-lang/crates.io-index)",
++ "proc-macro2 1.0.7 (registry+https://github.com/rust-lang/crates.io-index)",
++ "quote 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)",
++ "syn 1.0.13 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
 +name = "peeking_take_while"
 +version = "0.1.2"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -682,131 +997,152 @@ index 0000000..b961a31
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +
 +[[package]]
++name = "ppv-lite86"
++version = "0.2.6"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++
++[[package]]
 +name = "pretty_env_logger"
-+version = "0.3.0"
++version = "0.3.1"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +dependencies = [
-+ "chrono 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "env_logger 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
++ "chrono 0.4.10 (registry+https://github.com/rust-lang/crates.io-index)",
++ "env_logger 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)",
++ "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)",
 +]
 +
 +[[package]]
-+name = "proc-macro2"
-+version = "0.4.30"
++name = "proc-macro-hack"
++version = "0.5.11"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +dependencies = [
-+ "unicode-xid 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "proc-macro2 1.0.7 (registry+https://github.com/rust-lang/crates.io-index)",
++ "quote 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)",
++ "syn 1.0.13 (registry+https://github.com/rust-lang/crates.io-index)",
 +]
 +
 +[[package]]
-+name = "quick-error"
-+version = "1.2.2"
++name = "proc-macro2"
++version = "1.0.7"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "unicode-xid 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
++]
 +
 +[[package]]
-+name = "quickcheck"
-+version = "0.7.2"
++name = "pyo3"
++version = "0.8.5"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +dependencies = [
-+ "env_logger 0.5.13 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "rand 0.5.6 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "rand_core 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)",
++ "indoc 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)",
++ "inventory 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
++ "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)",
++ "num-traits 0.2.10 (registry+https://github.com/rust-lang/crates.io-index)",
++ "paste 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)",
++ "pyo3cls 0.8.5 (registry+https://github.com/rust-lang/crates.io-index)",
++ "regex 1.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "serde 1.0.104 (registry+https://github.com/rust-lang/crates.io-index)",
++ "serde_json 1.0.44 (registry+https://github.com/rust-lang/crates.io-index)",
++ "spin 0.5.2 (registry+https://github.com/rust-lang/crates.io-index)",
++ "unindent 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
++ "version_check 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
 +]
 +
 +[[package]]
-+name = "quote"
-+version = "0.6.12"
++name = "pyo3-derive-backend"
++version = "0.8.5"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +dependencies = [
-+ "proc-macro2 0.4.30 (registry+https://github.com/rust-lang/crates.io-index)",
++ "proc-macro2 1.0.7 (registry+https://github.com/rust-lang/crates.io-index)",
++ "quote 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)",
++ "syn 1.0.13 (registry+https://github.com/rust-lang/crates.io-index)",
 +]
 +
 +[[package]]
-+name = "rand"
-+version = "0.5.6"
++name = "pyo3cls"
++version = "0.8.5"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +dependencies = [
-+ "cloudabi 0.0.3 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "fuchsia-cprng 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "libc 0.2.58 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "rand_core 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "winapi 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)",
++ "proc-macro2 1.0.7 (registry+https://github.com/rust-lang/crates.io-index)",
++ "pyo3-derive-backend 0.8.5 (registry+https://github.com/rust-lang/crates.io-index)",
++ "quote 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)",
++ "syn 1.0.13 (registry+https://github.com/rust-lang/crates.io-index)",
 +]
 +
 +[[package]]
-+name = "rand"
-+version = "0.6.5"
++name = "quick-error"
++version = "1.2.3"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++
++[[package]]
++name = "quickcheck"
++version = "0.9.0"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +dependencies = [
-+ "autocfg 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "libc 0.2.58 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "rand_chacha 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "rand_core 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "rand_hc 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "rand_isaac 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "rand_jitter 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "rand_os 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "rand_pcg 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "rand_xorshift 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "winapi 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)",
++ "env_logger 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)",
++ "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)",
++ "rand 0.7.2 (registry+https://github.com/rust-lang/crates.io-index)",
++ "rand_core 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
 +]
 +
 +[[package]]
-+name = "rand_chacha"
-+version = "0.1.1"
++name = "quote"
++version = "1.0.2"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +dependencies = [
-+ "autocfg 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "rand_core 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "proc-macro2 1.0.7 (registry+https://github.com/rust-lang/crates.io-index)",
 +]
 +
 +[[package]]
-+name = "rand_core"
-+version = "0.2.2"
++name = "rand"
++version = "0.7.2"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +dependencies = [
-+ "rand_core 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "getrandom 0.1.13 (registry+https://github.com/rust-lang/crates.io-index)",
++ "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)",
++ "rand_chacha 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "rand_core 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "rand_hc 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "rand_pcg 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
 +]
 +
 +[[package]]
-+name = "rand_core"
-+version = "0.3.1"
++name = "rand_chacha"
++version = "0.2.1"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +dependencies = [
-+ "rand_core 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "c2-chacha 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)",
++ "rand_core 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
 +]
 +
 +[[package]]
 +name = "rand_core"
-+version = "0.4.0"
++version = "0.3.1"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "rand_core 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)",
++]
 +
 +[[package]]
-+name = "rand_hc"
-+version = "0.1.0"
++name = "rand_core"
++version = "0.4.2"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "rand_core 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
 +
 +[[package]]
-+name = "rand_isaac"
-+version = "0.1.1"
++name = "rand_core"
++version = "0.5.1"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +dependencies = [
-+ "rand_core 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "getrandom 0.1.13 (registry+https://github.com/rust-lang/crates.io-index)",
 +]
 +
 +[[package]]
-+name = "rand_jitter"
-+version = "0.1.4"
++name = "rand_hc"
++version = "0.2.0"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +dependencies = [
-+ "libc 0.2.58 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "rand_core 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "winapi 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)",
++ "rand_core 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
 +]
 +
 +[[package]]
@@ -816,58 +1152,50 @@ index 0000000..b961a31
 +dependencies = [
 + "cloudabi 0.0.3 (registry+https://github.com/rust-lang/crates.io-index)",
 + "fuchsia-cprng 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "libc 0.2.58 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "rand_core 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)",
++ "rand_core 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)",
 + "rdrand 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "winapi 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)",
++ "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
 +]
 +
 +[[package]]
 +name = "rand_pcg"
-+version = "0.1.2"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "autocfg 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "rand_core 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "rand_xorshift"
-+version = "0.1.1"
++version = "0.2.1"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +dependencies = [
-+ "rand_core 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "rand_core 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
 +]
 +
 +[[package]]
 +name = "raw-cpuid"
-+version = "6.1.0"
++version = "7.0.3"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +dependencies = [
-+ "bitflags 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "cc 1.0.37 (registry+https://github.com/rust-lang/crates.io-index)",
++ "bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "cc 1.0.49 (registry+https://github.com/rust-lang/crates.io-index)",
 + "rustc_version 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)",
 +]
 +
 +[[package]]
 +name = "rayon"
-+version = "1.0.3"
++version = "1.3.0"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +dependencies = [
-+ "crossbeam-deque 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "either 1.5.2 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "rayon-core 1.4.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "crossbeam-deque 0.7.2 (registry+https://github.com/rust-lang/crates.io-index)",
++ "either 1.5.3 (registry+https://github.com/rust-lang/crates.io-index)",
++ "rayon-core 1.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
 +]
 +
 +[[package]]
 +name = "rayon-core"
-+version = "1.4.1"
++version = "1.7.0"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +dependencies = [
-+ "crossbeam-deque 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "libc 0.2.58 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "num_cpus 1.10.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "crossbeam-deque 0.7.2 (registry+https://github.com/rust-lang/crates.io-index)",
++ "crossbeam-queue 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "crossbeam-utils 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "num_cpus 1.11.1 (registry+https://github.com/rust-lang/crates.io-index)",
 +]
 +
 +[[package]]
@@ -880,54 +1208,79 @@ index 0000000..b961a31
 +
 +[[package]]
 +name = "redox_syscall"
-+version = "0.1.54"
++version = "0.1.56"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +
 +[[package]]
-+name = "redox_termios"
-+version = "0.1.1"
++name = "redox_users"
++version = "0.3.1"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +dependencies = [
-+ "redox_syscall 0.1.54 (registry+https://github.com/rust-lang/crates.io-index)",
++ "failure 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)",
++ "rand_os 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)",
++ "redox_syscall 0.1.56 (registry+https://github.com/rust-lang/crates.io-index)",
++ "rust-argon2 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
 +]
 +
 +[[package]]
 +name = "regex"
-+version = "1.1.6"
++version = "1.3.1"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +dependencies = [
-+ "aho-corasick 0.7.3 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "memchr 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "regex-syntax 0.6.6 (registry+https://github.com/rust-lang/crates.io-index)",
++ "aho-corasick 0.7.6 (registry+https://github.com/rust-lang/crates.io-index)",
++ "memchr 2.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "regex-syntax 0.6.12 (registry+https://github.com/rust-lang/crates.io-index)",
 + "thread_local 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "utf8-ranges 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)",
 +]
 +
 +[[package]]
 +name = "regex-syntax"
-+version = "0.6.6"
++version = "0.6.12"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "ucd-util 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
 +
 +[[package]]
 +name = "region"
-+version = "2.0.0"
++version = "2.1.2"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +dependencies = [
-+ "bitflags 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "libc 0.2.58 (registry+https://github.com/rust-lang/crates.io-index)",
++ "bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)",
 + "mach 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "winapi 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)",
++ "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "remove_dir_all"
++version = "0.5.2"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "rust-argon2"
++version = "0.5.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "base64 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "blake2b_simd 0.5.10 (registry+https://github.com/rust-lang/crates.io-index)",
++ "crossbeam-utils 0.6.6 (registry+https://github.com/rust-lang/crates.io-index)",
 +]
 +
 +[[package]]
 +name = "rustc-demangle"
-+version = "0.1.15"
++version = "0.1.16"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +
 +[[package]]
++name = "rustc-hash"
++version = "1.0.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "byteorder 1.3.2 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
 +name = "rustc_version"
 +version = "0.2.3"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -937,31 +1290,30 @@ index 0000000..b961a31
 +
 +[[package]]
 +name = "ryu"
-+version = "0.2.8"
++version = "1.0.2"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +
 +[[package]]
 +name = "scopeguard"
-+version = "0.3.3"
++version = "1.0.0"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +
 +[[package]]
 +name = "scroll"
-+version = "0.9.2"
++version = "0.10.1"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +dependencies = [
-+ "rustc_version 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "scroll_derive 0.9.5 (registry+https://github.com/rust-lang/crates.io-index)",
++ "scroll_derive 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)",
 +]
 +
 +[[package]]
 +name = "scroll_derive"
-+version = "0.9.5"
++version = "0.10.1"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +dependencies = [
-+ "proc-macro2 0.4.30 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "quote 0.6.12 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "syn 0.15.34 (registry+https://github.com/rust-lang/crates.io-index)",
++ "proc-macro2 1.0.7 (registry+https://github.com/rust-lang/crates.io-index)",
++ "quote 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)",
++ "syn 1.0.13 (registry+https://github.com/rust-lang/crates.io-index)",
 +]
 +
 +[[package]]
@@ -979,30 +1331,41 @@ index 0000000..b961a31
 +
 +[[package]]
 +name = "serde"
-+version = "1.0.92"
++version = "1.0.104"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +dependencies = [
-+ "serde_derive 1.0.92 (registry+https://github.com/rust-lang/crates.io-index)",
++ "serde_derive 1.0.104 (registry+https://github.com/rust-lang/crates.io-index)",
 +]
 +
 +[[package]]
 +name = "serde_derive"
-+version = "1.0.92"
++version = "1.0.104"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +dependencies = [
-+ "proc-macro2 0.4.30 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "quote 0.6.12 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "syn 0.15.34 (registry+https://github.com/rust-lang/crates.io-index)",
++ "proc-macro2 1.0.7 (registry+https://github.com/rust-lang/crates.io-index)",
++ "quote 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)",
++ "syn 1.0.13 (registry+https://github.com/rust-lang/crates.io-index)",
 +]
 +
 +[[package]]
 +name = "serde_json"
-+version = "1.0.39"
++version = "1.0.44"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +dependencies = [
 + "itoa 0.4.4 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "ryu 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "serde 1.0.92 (registry+https://github.com/rust-lang/crates.io-index)",
++ "ryu 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)",
++ "serde 1.0.104 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "sha2"
++version = "0.8.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "block-buffer 0.7.3 (registry+https://github.com/rust-lang/crates.io-index)",
++ "digest 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "fake-simd 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
++ "opaque-debug 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)",
 +]
 +
 +[[package]]
@@ -1012,7 +1375,12 @@ index 0000000..b961a31
 +
 +[[package]]
 +name = "smallvec"
-+version = "0.6.9"
++version = "1.1.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++
++[[package]]
++name = "spin"
++version = "0.5.2"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +
 +[[package]]
@@ -1022,10 +1390,10 @@ index 0000000..b961a31
 +
 +[[package]]
 +name = "string-interner"
-+version = "0.6.3"
++version = "0.7.1"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +dependencies = [
-+ "serde 1.0.92 (registry+https://github.com/rust-lang/crates.io-index)",
++ "serde 1.0.104 (registry+https://github.com/rust-lang/crates.io-index)",
 +]
 +
 +[[package]]
@@ -1035,90 +1403,100 @@ index 0000000..b961a31
 +
 +[[package]]
 +name = "strsim"
-+version = "0.9.2"
++version = "0.9.3"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +
 +[[package]]
-+name = "structopt"
-+version = "0.2.17"
++name = "syn"
++version = "1.0.13"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +dependencies = [
-+ "clap 2.33.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "structopt-derive 0.2.17 (registry+https://github.com/rust-lang/crates.io-index)",
++ "proc-macro2 1.0.7 (registry+https://github.com/rust-lang/crates.io-index)",
++ "quote 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)",
++ "unicode-xid 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
 +]
 +
 +[[package]]
-+name = "structopt-derive"
-+version = "0.2.17"
++name = "synstructure"
++version = "0.12.3"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +dependencies = [
-+ "heck 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "proc-macro2 0.4.30 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "quote 0.6.12 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "syn 0.15.34 (registry+https://github.com/rust-lang/crates.io-index)",
++ "proc-macro2 1.0.7 (registry+https://github.com/rust-lang/crates.io-index)",
++ "quote 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)",
++ "syn 1.0.13 (registry+https://github.com/rust-lang/crates.io-index)",
++ "unicode-xid 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
 +]
 +
 +[[package]]
-+name = "syn"
-+version = "0.15.34"
++name = "target-lexicon"
++version = "0.9.0"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "proc-macro2 0.4.30 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "quote 0.6.12 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "unicode-xid 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
 +
 +[[package]]
-+name = "synstructure"
-+version = "0.10.2"
++name = "tempfile"
++version = "3.1.0"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +dependencies = [
-+ "proc-macro2 0.4.30 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "quote 0.6.12 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "syn 0.15.34 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "unicode-xid 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)",
++ "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)",
++ "rand 0.7.2 (registry+https://github.com/rust-lang/crates.io-index)",
++ "redox_syscall 0.1.56 (registry+https://github.com/rust-lang/crates.io-index)",
++ "remove_dir_all 0.5.2 (registry+https://github.com/rust-lang/crates.io-index)",
++ "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
 +]
 +
 +[[package]]
-+name = "take_mut"
-+version = "0.2.2"
++name = "termcolor"
++version = "1.0.5"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "wincolor 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)",
++]
 +
 +[[package]]
-+name = "target-lexicon"
-+version = "0.3.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
++name = "test-programs"
++version = "0.8.0"
 +dependencies = [
-+ "failure 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "failure_derive 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "serde_json 1.0.39 (registry+https://github.com/rust-lang/crates.io-index)",
++ "anyhow 1.0.26 (registry+https://github.com/rust-lang/crates.io-index)",
++ "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)",
++ "cranelift-codegen 0.50.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "os_pipe 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "pretty_env_logger 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "target-lexicon 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "tempfile 3.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "wasi-common 0.8.0",
++ "wasmtime 0.8.0",
++ "wasmtime-environ 0.8.0",
++ "wasmtime-jit 0.8.0",
++ "wasmtime-runtime 0.8.0",
++ "wasmtime-wasi 0.8.0",
++ "wat 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)",
 +]
 +
 +[[package]]
-+name = "termcolor"
-+version = "1.0.5"
++name = "textwrap"
++version = "0.11.0"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +dependencies = [
-+ "wincolor 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "unicode-width 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)",
 +]
 +
 +[[package]]
-+name = "termion"
-+version = "1.5.2"
++name = "thiserror"
++version = "1.0.9"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +dependencies = [
-+ "libc 0.2.58 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "numtoa 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "redox_syscall 0.1.54 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "redox_termios 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "thiserror-impl 1.0.9 (registry+https://github.com/rust-lang/crates.io-index)",
 +]
 +
 +[[package]]
-+name = "textwrap"
-+version = "0.11.0"
++name = "thiserror-impl"
++version = "1.0.9"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +dependencies = [
-+ "unicode-width 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
++ "proc-macro2 1.0.7 (registry+https://github.com/rust-lang/crates.io-index)",
++ "quote 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)",
++ "syn 1.0.13 (registry+https://github.com/rust-lang/crates.io-index)",
 +]
 +
 +[[package]]
@@ -1126,7 +1504,7 @@ index 0000000..b961a31
 +version = "0.3.6"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +dependencies = [
-+ "lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
 +]
 +
 +[[package]]
@@ -1134,9 +1512,17 @@ index 0000000..b961a31
 +version = "0.1.42"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +dependencies = [
-+ "libc 0.2.58 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "redox_syscall 0.1.54 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "winapi 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)",
++ "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)",
++ "redox_syscall 0.1.56 (registry+https://github.com/rust-lang/crates.io-index)",
++ "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "toml"
++version = "0.5.5"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "serde 1.0.104 (registry+https://github.com/rust-lang/crates.io-index)",
 +]
 +
 +[[package]]
@@ -1145,6 +1531,19 @@ index 0000000..b961a31
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +
 +[[package]]
++name = "trybuild"
++version = "1.0.19"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "glob 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "serde 1.0.104 (registry+https://github.com/rust-lang/crates.io-index)",
++ "serde_json 1.0.44 (registry+https://github.com/rust-lang/crates.io-index)",
++ "termcolor 1.0.5 (registry+https://github.com/rust-lang/crates.io-index)",
++ "toml 0.5.5 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
 +name = "typemap"
 +version = "0.3.3"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1153,23 +1552,28 @@ index 0000000..b961a31
 +]
 +
 +[[package]]
-+name = "ucd-util"
-+version = "0.1.3"
++name = "typenum"
++version = "1.11.2"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +
 +[[package]]
 +name = "unicode-segmentation"
-+version = "1.3.0"
++version = "1.6.0"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +
 +[[package]]
 +name = "unicode-width"
-+version = "0.1.5"
++version = "0.1.7"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +
 +[[package]]
 +name = "unicode-xid"
-+version = "0.1.0"
++version = "0.2.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++
++[[package]]
++name = "unindent"
++version = "0.1.5"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +
 +[[package]]
@@ -1181,11 +1585,6 @@ index 0000000..b961a31
 +]
 +
 +[[package]]
-+name = "utf8-ranges"
-+version = "1.0.2"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+
-+[[package]]
 +name = "vec_map"
 +version = "0.8.1"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1196,235 +1595,407 @@ index 0000000..b961a31
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +
 +[[package]]
++name = "version_check"
++version = "0.9.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++
++[[package]]
 +name = "void"
 +version = "1.0.2"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +
 +[[package]]
-+name = "wabt"
-+version = "0.7.4"
++name = "walrus"
++version = "0.13.0"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +dependencies = [
-+ "serde 1.0.92 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "serde_derive 1.0.92 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "serde_json 1.0.39 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "wabt-sys 0.5.4 (registry+https://github.com/rust-lang/crates.io-index)",
++ "anyhow 1.0.26 (registry+https://github.com/rust-lang/crates.io-index)",
++ "id-arena 2.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "leb128 0.2.4 (registry+https://github.com/rust-lang/crates.io-index)",
++ "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)",
++ "walrus-macro 0.13.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "wasmparser 0.39.3 (registry+https://github.com/rust-lang/crates.io-index)",
 +]
 +
 +[[package]]
-+name = "wabt-sys"
-+version = "0.5.4"
++name = "walrus-macro"
++version = "0.13.0"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +dependencies = [
-+ "cc 1.0.37 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "cmake 0.1.40 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "glob 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)",
++ "heck 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "proc-macro2 1.0.7 (registry+https://github.com/rust-lang/crates.io-index)",
++ "quote 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)",
++ "syn 1.0.13 (registry+https://github.com/rust-lang/crates.io-index)",
 +]
 +
 +[[package]]
++name = "wasi"
++version = "0.7.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++
++[[package]]
 +name = "wasi-common"
-+version = "0.1.0"
-+source = "git+https://github.com/CraneStation/wasi-common#9a66400cd8cb31badaf4e43d0e27afd76639b3ac"
++version = "0.8.0"
 +dependencies = [
-+ "cfg-if 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "failure 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "libc 0.2.58 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "nix 0.13.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "rand 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "wasi-common-cbindgen 0.1.0 (git+https://github.com/CraneStation/wasi-common)",
-+ "winapi 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)",
++ "anyhow 1.0.26 (registry+https://github.com/rust-lang/crates.io-index)",
++ "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)",
++ "cpu-time 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "filetime 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)",
++ "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)",
++ "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)",
++ "nix 0.15.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "num 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "rand 0.7.2 (registry+https://github.com/rust-lang/crates.io-index)",
++ "thiserror 1.0.9 (registry+https://github.com/rust-lang/crates.io-index)",
++ "wasi-common-cbindgen 0.8.0",
++ "wig 0.8.0",
++ "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
++ "winx 0.8.0",
 +]
 +
 +[[package]]
 +name = "wasi-common-cbindgen"
-+version = "0.1.0"
-+source = "git+https://github.com/CraneStation/wasi-common#9a66400cd8cb31badaf4e43d0e27afd76639b3ac"
++version = "0.8.0"
 +dependencies = [
-+ "quote 0.6.12 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "syn 0.15.34 (registry+https://github.com/rust-lang/crates.io-index)",
++ "proc-macro2 1.0.7 (registry+https://github.com/rust-lang/crates.io-index)",
++ "quote 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)",
++ "syn 1.0.13 (registry+https://github.com/rust-lang/crates.io-index)",
++ "trybuild 1.0.19 (registry+https://github.com/rust-lang/crates.io-index)",
 +]
 +
 +[[package]]
-+name = "wasmparser"
-+version = "0.29.2"
++name = "wasm-webidl-bindings"
++version = "0.6.0"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +dependencies = [
-+ "hashmap_core 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)",
++ "anyhow 1.0.26 (registry+https://github.com/rust-lang/crates.io-index)",
++ "id-arena 2.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "leb128 0.2.4 (registry+https://github.com/rust-lang/crates.io-index)",
++ "walrus 0.13.0 (registry+https://github.com/rust-lang/crates.io-index)",
 +]
 +
 +[[package]]
++name = "wasmparser"
++version = "0.39.3"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++
++[[package]]
 +name = "wasmtime"
-+version = "0.1.0"
++version = "0.8.0"
 +dependencies = [
-+ "cranelift-codegen 0.30.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "cranelift-native 0.30.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "anyhow 1.0.26 (registry+https://github.com/rust-lang/crates.io-index)",
++ "cranelift-codegen 0.50.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "cranelift-entity 0.50.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "cranelift-frontend 0.50.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "cranelift-native 0.50.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "cranelift-wasm 0.50.0 (registry+https://github.com/rust-lang/crates.io-index)",
 + "docopt 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "errno 0.2.4 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "faerie 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
 + "file-per-thread-logger 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "libc 0.2.58 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "pretty_env_logger 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "serde 1.0.92 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "serde_derive 1.0.92 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "target-lexicon 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "wabt 0.7.4 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "wasmtime-debug 0.1.0",
-+ "wasmtime-environ 0.1.0",
-+ "wasmtime-jit 0.1.0",
-+ "wasmtime-obj 0.1.0",
-+ "wasmtime-runtime 0.1.0",
-+ "wasmtime-wasi 0.0.0",
-+ "wasmtime-wasi-c 0.0.0",
-+ "wasmtime-wast 0.1.0",
-+ "winapi 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)",
++ "pretty_env_logger 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "rayon 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "region 2.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
++ "serde 1.0.104 (registry+https://github.com/rust-lang/crates.io-index)",
++ "target-lexicon 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "thiserror 1.0.9 (registry+https://github.com/rust-lang/crates.io-index)",
++ "wasi-common 0.8.0",
++ "wasmparser 0.39.3 (registry+https://github.com/rust-lang/crates.io-index)",
++ "wasmtime-environ 0.8.0",
++ "wasmtime-jit 0.8.0",
++ "wasmtime-runtime 0.8.0",
++ "wasmtime-wasi 0.8.0",
++ "wasmtime-wast 0.8.0",
++ "wat 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "wasmtime-cli"
++version = "0.8.0"
++dependencies = [
++ "anyhow 1.0.26 (registry+https://github.com/rust-lang/crates.io-index)",
++ "cranelift-codegen 0.50.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "cranelift-entity 0.50.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "cranelift-native 0.50.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "cranelift-wasm 0.50.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "docopt 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "faerie 0.13.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "file-per-thread-logger 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
++ "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)",
++ "more-asserts 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "pretty_env_logger 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "rayon 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "serde 1.0.104 (registry+https://github.com/rust-lang/crates.io-index)",
++ "target-lexicon 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "test-programs 0.8.0",
++ "wasi-common 0.8.0",
++ "wasm-webidl-bindings 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "wasmtime 0.8.0",
++ "wasmtime-debug 0.8.0",
++ "wasmtime-environ 0.8.0",
++ "wasmtime-interface-types 0.8.0",
++ "wasmtime-jit 0.8.0",
++ "wasmtime-obj 0.8.0",
++ "wasmtime-runtime 0.8.0",
++ "wasmtime-wasi 0.8.0",
++ "wasmtime-wasi-c 0.8.0",
++ "wasmtime-wast 0.8.0",
++ "wat 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)",
 +]
 +
 +[[package]]
 +name = "wasmtime-debug"
-+version = "0.1.0"
++version = "0.8.0"
 +dependencies = [
-+ "cranelift-codegen 0.30.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "cranelift-entity 0.30.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "cranelift-wasm 0.30.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "faerie 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "failure 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "failure_derive 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "gimli 0.17.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "target-lexicon 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "wasmparser 0.29.2 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "wasmtime-environ 0.1.0",
++ "anyhow 1.0.26 (registry+https://github.com/rust-lang/crates.io-index)",
++ "cranelift-codegen 0.50.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "cranelift-entity 0.50.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "cranelift-wasm 0.50.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "faerie 0.13.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "gimli 0.19.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "more-asserts 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "target-lexicon 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "thiserror 1.0.9 (registry+https://github.com/rust-lang/crates.io-index)",
++ "wasmparser 0.39.3 (registry+https://github.com/rust-lang/crates.io-index)",
++ "wasmtime-environ 0.8.0",
 +]
 +
 +[[package]]
 +name = "wasmtime-environ"
-+version = "0.1.0"
++version = "0.8.0"
 +dependencies = [
-+ "cast 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "cranelift-codegen 0.30.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "cranelift-entity 0.30.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "cranelift-wasm 0.30.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "failure 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "failure_derive 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "indexmap 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "lightbeam 0.0.0",
-+ "rayon 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)",
++ "base64 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "bincode 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "cranelift-codegen 0.50.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "cranelift-entity 0.50.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "cranelift-wasm 0.50.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "directories 2.0.2 (registry+https://github.com/rust-lang/crates.io-index)",
++ "errno 0.2.4 (registry+https://github.com/rust-lang/crates.io-index)",
++ "file-per-thread-logger 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
++ "filetime 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)",
++ "indexmap 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)",
++ "lightbeam 0.8.0",
++ "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)",
++ "more-asserts 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "pretty_env_logger 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "rand 0.7.2 (registry+https://github.com/rust-lang/crates.io-index)",
++ "rayon 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "serde 1.0.104 (registry+https://github.com/rust-lang/crates.io-index)",
++ "sha2 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "spin 0.5.2 (registry+https://github.com/rust-lang/crates.io-index)",
++ "target-lexicon 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "tempfile 3.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "thiserror 1.0.9 (registry+https://github.com/rust-lang/crates.io-index)",
++ "toml 0.5.5 (registry+https://github.com/rust-lang/crates.io-index)",
++ "wasmparser 0.39.3 (registry+https://github.com/rust-lang/crates.io-index)",
++ "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
++ "zstd 0.5.1+zstd.1.4.4 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "wasmtime-interface-types"
++version = "0.8.0"
++dependencies = [
++ "anyhow 1.0.26 (registry+https://github.com/rust-lang/crates.io-index)",
++ "cranelift-codegen 0.50.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "walrus 0.13.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "wasm-webidl-bindings 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "wasmparser 0.39.3 (registry+https://github.com/rust-lang/crates.io-index)",
++ "wasmtime 0.8.0",
++ "wasmtime-jit 0.8.0",
++ "wasmtime-runtime 0.8.0",
++ "wasmtime-wasi 0.8.0",
 +]
 +
 +[[package]]
 +name = "wasmtime-jit"
-+version = "0.1.0"
++version = "0.8.0"
 +dependencies = [
-+ "cranelift-codegen 0.30.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "cranelift-entity 0.30.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "cranelift-frontend 0.30.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "cranelift-wasm 0.30.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "failure 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "failure_derive 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "hashbrown 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "region 2.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "target-lexicon 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "wasmparser 0.29.2 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "wasmtime-debug 0.1.0",
-+ "wasmtime-environ 0.1.0",
-+ "wasmtime-runtime 0.1.0",
++ "anyhow 1.0.26 (registry+https://github.com/rust-lang/crates.io-index)",
++ "cranelift-codegen 0.50.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "cranelift-entity 0.50.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "cranelift-frontend 0.50.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "cranelift-wasm 0.50.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "more-asserts 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "region 2.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
++ "target-lexicon 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "thiserror 1.0.9 (registry+https://github.com/rust-lang/crates.io-index)",
++ "wasmparser 0.39.3 (registry+https://github.com/rust-lang/crates.io-index)",
++ "wasmtime-debug 0.8.0",
++ "wasmtime-environ 0.8.0",
++ "wasmtime-runtime 0.8.0",
++ "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
 +]
 +
 +[[package]]
 +name = "wasmtime-obj"
-+version = "0.1.0"
++version = "0.8.0"
 +dependencies = [
-+ "cranelift-codegen 0.30.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "cranelift-entity 0.30.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "cranelift-wasm 0.30.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "faerie 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "wasmtime-environ 0.1.0",
++ "cranelift-codegen 0.50.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "cranelift-entity 0.50.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "cranelift-wasm 0.50.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "faerie 0.13.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "more-asserts 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "wasmtime-environ 0.8.0",
++]
++
++[[package]]
++name = "wasmtime-py"
++version = "0.8.0"
++dependencies = [
++ "anyhow 1.0.26 (registry+https://github.com/rust-lang/crates.io-index)",
++ "cranelift-codegen 0.50.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "cranelift-entity 0.50.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "cranelift-frontend 0.50.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "cranelift-native 0.50.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "cranelift-wasm 0.50.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "pyo3 0.8.5 (registry+https://github.com/rust-lang/crates.io-index)",
++ "region 2.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
++ "target-lexicon 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "wasmparser 0.39.3 (registry+https://github.com/rust-lang/crates.io-index)",
++ "wasmtime 0.8.0",
++ "wasmtime-environ 0.8.0",
++ "wasmtime-interface-types 0.8.0",
++ "wasmtime-jit 0.8.0",
++ "wasmtime-runtime 0.8.0",
++ "wasmtime-wasi 0.8.0",
 +]
 +
 +[[package]]
 +name = "wasmtime-runtime"
-+version = "0.1.0"
++version = "0.8.0"
 +dependencies = [
-+ "bindgen 0.49.2 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "cast 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "cmake 0.1.40 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "cranelift-codegen 0.30.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "cranelift-entity 0.30.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "cranelift-wasm 0.30.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "errno 0.2.4 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "failure 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "failure_derive 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "indexmap 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "libc 0.2.58 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "memoffset 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "regex 1.1.6 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "region 2.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "wasmtime-environ 0.1.0",
-+ "winapi 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)",
++ "cc 1.0.49 (registry+https://github.com/rust-lang/crates.io-index)",
++ "cranelift-codegen 0.50.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "cranelift-entity 0.50.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "cranelift-wasm 0.50.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "indexmap 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)",
++ "memoffset 0.5.3 (registry+https://github.com/rust-lang/crates.io-index)",
++ "more-asserts 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "region 2.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
++ "thiserror 1.0.9 (registry+https://github.com/rust-lang/crates.io-index)",
++ "wasmtime-environ 0.8.0",
++ "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "wasmtime-rust"
++version = "0.8.0"
++dependencies = [
++ "anyhow 1.0.26 (registry+https://github.com/rust-lang/crates.io-index)",
++ "wasmtime 0.8.0",
++ "wasmtime-interface-types 0.8.0",
++ "wasmtime-jit 0.8.0",
++ "wasmtime-rust-macro 0.8.0",
++ "wasmtime-wasi 0.8.0",
++]
++
++[[package]]
++name = "wasmtime-rust-macro"
++version = "0.8.0"
++dependencies = [
++ "proc-macro2 1.0.7 (registry+https://github.com/rust-lang/crates.io-index)",
++ "quote 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)",
++ "syn 1.0.13 (registry+https://github.com/rust-lang/crates.io-index)",
 +]
 +
 +[[package]]
 +name = "wasmtime-wasi"
-+version = "0.0.0"
++version = "0.8.0"
 +dependencies = [
-+ "cranelift-codegen 0.30.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "cranelift-entity 0.30.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "cranelift-wasm 0.30.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "target-lexicon 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "wasi-common 0.1.0 (git+https://github.com/CraneStation/wasi-common)",
-+ "wasmtime-environ 0.1.0",
-+ "wasmtime-jit 0.1.0",
-+ "wasmtime-runtime 0.1.0",
++ "cranelift-codegen 0.50.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "cranelift-entity 0.50.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "cranelift-wasm 0.50.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)",
++ "target-lexicon 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "wasi-common 0.8.0",
++ "wasmtime 0.8.0",
++ "wasmtime-environ 0.8.0",
++ "wasmtime-jit 0.8.0",
++ "wasmtime-runtime 0.8.0",
 +]
 +
 +[[package]]
 +name = "wasmtime-wasi-c"
-+version = "0.0.0"
++version = "0.8.0"
 +dependencies = [
-+ "bindgen 0.49.2 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "cast 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "cmake 0.1.40 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "cranelift-codegen 0.30.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "cranelift-entity 0.30.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "cranelift-wasm 0.30.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "libc 0.2.58 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "target-lexicon 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "wasmtime-environ 0.1.0",
-+ "wasmtime-jit 0.1.0",
-+ "wasmtime-runtime 0.1.0",
++ "bindgen 0.51.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "cmake 0.1.42 (registry+https://github.com/rust-lang/crates.io-index)",
++ "cranelift-codegen 0.50.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "cranelift-entity 0.50.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "cranelift-wasm 0.50.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)",
++ "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)",
++ "more-asserts 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "target-lexicon 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "wasmtime-environ 0.8.0",
++ "wasmtime-jit 0.8.0",
++ "wasmtime-runtime 0.8.0",
 +]
 +
 +[[package]]
 +name = "wasmtime-wast"
-+version = "0.1.0"
++version = "0.8.0"
 +dependencies = [
-+ "cranelift-codegen 0.30.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "cranelift-entity 0.30.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "cranelift-native 0.30.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "cranelift-wasm 0.30.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "failure 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "failure_derive 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "target-lexicon 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "wabt 0.7.4 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "wasmtime-environ 0.1.0",
-+ "wasmtime-jit 0.1.0",
-+ "wasmtime-runtime 0.1.0",
++ "anyhow 1.0.26 (registry+https://github.com/rust-lang/crates.io-index)",
++ "cranelift-codegen 0.50.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "cranelift-entity 0.50.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "cranelift-wasm 0.50.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "target-lexicon 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "wasmtime-environ 0.8.0",
++ "wasmtime-jit 0.8.0",
++ "wasmtime-runtime 0.8.0",
++ "wast 3.0.4 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "wast"
++version = "3.0.4"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "leb128 0.2.4 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "wast"
++version = "5.0.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "leb128 0.2.4 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "wat"
++version = "1.0.6"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "wast 5.0.1 (registry+https://github.com/rust-lang/crates.io-index)",
 +]
 +
 +[[package]]
 +name = "which"
-+version = "2.0.1"
++version = "3.1.0"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +dependencies = [
-+ "failure 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "libc 0.2.58 (registry+https://github.com/rust-lang/crates.io-index)",
++ "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "wig"
++version = "0.8.0"
++dependencies = [
++ "heck 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "proc-macro2 1.0.7 (registry+https://github.com/rust-lang/crates.io-index)",
++ "quote 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)",
++ "witx 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)",
 +]
 +
 +[[package]]
 +name = "winapi"
-+version = "0.3.7"
++version = "0.3.8"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +dependencies = [
 + "winapi-i686-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -1441,7 +2012,7 @@ index 0000000..b961a31
 +version = "0.1.2"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +dependencies = [
-+ "winapi 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)",
++ "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
 +]
 +
 +[[package]]
@@ -1451,164 +2022,261 @@ index 0000000..b961a31
 +
 +[[package]]
 +name = "wincolor"
-+version = "1.0.1"
++version = "1.0.2"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +dependencies = [
-+ "winapi 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)",
++ "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
 + "winapi-util 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
 +]
 +
++[[package]]
++name = "winx"
++version = "0.8.0"
++dependencies = [
++ "bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "cvt 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "witx"
++version = "0.5.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "clap 2.33.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "failure 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)",
++ "wast 3.0.4 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "zstd"
++version = "0.5.1+zstd.1.4.4"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "zstd-safe 2.0.3+zstd.1.4.4 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "zstd-safe"
++version = "2.0.3+zstd.1.4.4"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)",
++ "zstd-sys 1.4.15+zstd.1.4.4 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "zstd-sys"
++version = "1.4.15+zstd.1.4.4"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "cc 1.0.49 (registry+https://github.com/rust-lang/crates.io-index)",
++ "glob 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
 +[metadata]
-+"checksum aho-corasick 0.7.3 (registry+https://github.com/rust-lang/crates.io-index)" = "e6f484ae0c99fec2e858eb6134949117399f222608d84cadb3f58c1f97c2364c"
++"checksum aho-corasick 0.7.6 (registry+https://github.com/rust-lang/crates.io-index)" = "58fb5e95d83b38284460a5fda7d6470aa0b8844d283a0b614b8535e880800d2d"
 +"checksum ansi_term 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ee49baf6cb617b853aa8d93bf420db2383fab46d314482ca2803b40d5fde979b"
-+"checksum arrayvec 0.4.10 (registry+https://github.com/rust-lang/crates.io-index)" = "92c7fb76bc8826a8b33b4ee5bb07a247a81e76764ab4d55e8f73e3a4d8808c71"
-+"checksum atty 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)" = "9a7d5b8723950951411ee34d271d99dddcc2035a16ab25310ea2c8cfd4369652"
-+"checksum autocfg 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)" = "0e49efa51329a5fd37e7c79db4621af617cd4e3e5bc224939808d076077077bf"
-+"checksum backtrace 0.3.30 (registry+https://github.com/rust-lang/crates.io-index)" = "ada4c783bb7e7443c14e0480f429ae2cc99da95065aeab7ee1b81ada0419404f"
-+"checksum backtrace-sys 0.1.28 (registry+https://github.com/rust-lang/crates.io-index)" = "797c830ac25ccc92a7f8a7b9862bde440715531514594a6154e3d4a54dd769b6"
-+"checksum bindgen 0.49.2 (registry+https://github.com/rust-lang/crates.io-index)" = "846a1fba6535362a01487ef6b10f0275faa12e5c5d835c5c1c627aabc46ccbd6"
-+"checksum bitflags 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "3d155346769a6855b86399e9bc3814ab343cd3d62c7e985113d46a0ec3c281fd"
-+"checksum byteorder 1.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "a019b10a2a7cdeb292db131fc8113e57ea2a908f6e7894b0c3c671893b65dbeb"
-+"checksum capstone 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)" = "00be9d203fa0e078b93b24603633fb081851dfe0c1086364431f52587a47157e"
-+"checksum capstone-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)" = "2dc8d32bc5c1e6d0fcde10af411c98b07d93498d51654f678757f08fa2acd6a6"
-+"checksum cast 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "926013f2860c46252efceabb19f4a6b308197505082c609025aa6706c011d427"
-+"checksum cc 1.0.37 (registry+https://github.com/rust-lang/crates.io-index)" = "39f75544d7bbaf57560d2168f28fd649ff9c76153874db88bdbdfd839b1a7e7d"
-+"checksum cexpr 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)" = "a7fa24eb00d5ffab90eaeaf1092ac85c04c64aaf358ea6f84505b8116d24c6af"
-+"checksum cfg-if 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)" = "b486ce3ccf7ffd79fdeb678eac06a9e6c09fc88d33836340becb8fffe87c5e33"
-+"checksum chrono 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)" = "45912881121cb26fad7c38c17ba7daa18764771836b34fab7d3fbd93ed633878"
-+"checksum clang-sys 0.28.0 (registry+https://github.com/rust-lang/crates.io-index)" = "4227269cec09f5f83ff160be12a1e9b0262dd1aa305302d5ba296c2ebd291055"
++"checksum anyhow 1.0.26 (registry+https://github.com/rust-lang/crates.io-index)" = "7825f6833612eb2414095684fcf6c635becf3ce97fe48cf6421321e93bfbd53c"
++"checksum arrayref 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)" = "0d382e583f07208808f6b1249e60848879ba3543f57c32277bf52d69c2f0f0ee"
++"checksum arrayvec 0.4.12 (registry+https://github.com/rust-lang/crates.io-index)" = "cd9fd44efafa8690358b7408d253adf110036b88f55672a933f01d616ad9b1b9"
++"checksum arrayvec 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "cff77d8686867eceff3105329d4698d96c2391c176d5d03adc90c7389162b5b8"
++"checksum atty 0.2.14 (registry+https://github.com/rust-lang/crates.io-index)" = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8"
++"checksum autocfg 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)" = "1d49d90015b3c36167a20fe2810c5cd875ad504b39cff3d4eae7977e6b7c1cb2"
++"checksum backtrace 0.3.40 (registry+https://github.com/rust-lang/crates.io-index)" = "924c76597f0d9ca25d762c25a4d369d51267536465dc5064bdf0eb073ed477ea"
++"checksum backtrace-sys 0.1.32 (registry+https://github.com/rust-lang/crates.io-index)" = "5d6575f128516de27e3ce99689419835fce9643a9b215a14d2b5b685be018491"
++"checksum base64 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)" = "0b25d992356d2eb0ed82172f5248873db5560c4721f564b13cb5193bda5e668e"
++"checksum base64 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)" = "b41b7ea54a0c9d92199de89e20e58d49f02f8e699814ef3fdf266f6f748d15c7"
++"checksum bincode 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "5753e2a71534719bf3f4e57006c3a4f0d2c672a4b676eec84161f763eca87dbf"
++"checksum bindgen 0.51.1 (registry+https://github.com/rust-lang/crates.io-index)" = "ebd71393f1ec0509b553aa012b9b58e81dadbdff7130bd3b8cba576e69b32f75"
++"checksum bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "cf1de2fe8c75bc145a2f577add951f8134889b4795d47466a54a5c846d691693"
++"checksum blake2b_simd 0.5.10 (registry+https://github.com/rust-lang/crates.io-index)" = "d8fb2d74254a3a0b5cac33ac9f8ed0e44aa50378d9dbb2e5d83bd21ed1dc2c8a"
++"checksum block-buffer 0.7.3 (registry+https://github.com/rust-lang/crates.io-index)" = "c0940dc441f31689269e10ac70eb1002a3a1d3ad1390e030043662eb7fe4688b"
++"checksum block-padding 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "fa79dedbb091f449f1f39e53edf88d5dbe95f895dae6135a8d7b881fb5af73f5"
++"checksum byte-tools 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "e3b5ca7a04898ad4bcd41c90c5285445ff5b791899bb1b0abdd2a2aa791211d7"
++"checksum byteorder 1.3.2 (registry+https://github.com/rust-lang/crates.io-index)" = "a7c3dd8985a7111efc5c80b44e23ecdd8c007de8ade3b96595387e812b957cf5"
++"checksum c2-chacha 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)" = "214238caa1bf3a496ec3392968969cab8549f96ff30652c9e56885329315f6bb"
++"checksum capstone 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)" = "031ba51c39151a1d6336ec859646153187204b0147c7b3f6fe2de636f1b8dbb3"
++"checksum capstone-sys 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)" = "fae25eddcb80e24f98c35952c37a91ff7f8d0f60dbbdafb9763e8d5cc566b8d7"
++"checksum cc 1.0.49 (registry+https://github.com/rust-lang/crates.io-index)" = "e450b8da92aa6f274e7c6437692f9f2ce6d701fb73bacfcf87897b3f89a4c20e"
++"checksum cexpr 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)" = "fce5b5fb86b0c57c20c834c1b412fd09c77c8a59b9473f86272709e78874cd1d"
++"checksum cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)" = "4785bdd1c96b2a846b2bd7cc02e86b6b3dbf14e7e53446c4f54c92a361040822"
++"checksum chrono 0.4.10 (registry+https://github.com/rust-lang/crates.io-index)" = "31850b4a4d6bae316f7a09e691c944c28299298837edc0a03f755618c23cbc01"
++"checksum clang-sys 0.28.1 (registry+https://github.com/rust-lang/crates.io-index)" = "81de550971c976f176130da4b2978d3b524eaa0fd9ac31f3ceb5ae1231fb4853"
 +"checksum clap 2.33.0 (registry+https://github.com/rust-lang/crates.io-index)" = "5067f5bb2d80ef5d68b4c87db81601f0b75bca627bc2ef76b141d7b846a3c6d9"
 +"checksum cloudabi 0.0.3 (registry+https://github.com/rust-lang/crates.io-index)" = "ddfc5b9aa5d4507acaf872de71051dfd0e309860e88966e1051e462a077aac4f"
-+"checksum cmake 0.1.40 (registry+https://github.com/rust-lang/crates.io-index)" = "2ca4386c8954b76a8415b63959337d940d724b336cabd3afe189c2b51a7e1ff0"
-+"checksum cranelift-bforest 0.30.0 (registry+https://github.com/rust-lang/crates.io-index)" = "e5a357d20666bf4a8c2d626a19f1b59dbca66cd844fb1e66c5612254fd0f7505"
-+"checksum cranelift-codegen 0.30.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ab00cb149a5bb0f7e6dd391357356a5d71c335a431e8eece94f32da2d5a043f7"
-+"checksum cranelift-codegen-meta 0.30.0 (registry+https://github.com/rust-lang/crates.io-index)" = "e3797a2f450ac71297e083dd440d0cdd0d3bceabe4a3ca6bcb9e4077e9c0327d"
-+"checksum cranelift-entity 0.30.0 (registry+https://github.com/rust-lang/crates.io-index)" = "5b66e28877b75b3d2b31250f780bb5db8f68ae3df681cd56add803b2567ac4fd"
-+"checksum cranelift-frontend 0.30.0 (registry+https://github.com/rust-lang/crates.io-index)" = "b72d55fd732b1f7a99d043a36c54a5679b6ec8bc777c8d954fb97c4fa0fce7eb"
-+"checksum cranelift-native 0.30.0 (registry+https://github.com/rust-lang/crates.io-index)" = "d0239f34836621a127c2132980b2f5c32a1be1c40e2d1a9a1a9bd5af33c12aee"
-+"checksum cranelift-wasm 0.30.0 (registry+https://github.com/rust-lang/crates.io-index)" = "740ebfba28c8433f06750f84819f1eb663ea9f5e4b9a81c01f4e52262d868b56"
-+"checksum crossbeam-deque 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "f739f8c5363aca78cfb059edf753d8f0d36908c348f3d8d1503f03d8b75d9cf3"
-+"checksum crossbeam-epoch 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "927121f5407de9956180ff5e936fe3cf4324279280001cd56b669d28ee7e9150"
-+"checksum crossbeam-utils 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "2760899e32a1d58d5abb31129f8fae5de75220bc2176e77ff7c627ae45c918d9"
++"checksum cmake 0.1.42 (registry+https://github.com/rust-lang/crates.io-index)" = "81fb25b677f8bf1eb325017cb6bb8452f87969db0fedb4f757b297bee78a7c62"
++"checksum constant_time_eq 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)" = "995a44c877f9212528ccc74b21a232f66ad69001e40ede5bcee2ac9ef2657120"
++"checksum cpu-time 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "e9e393a7668fe1fad3075085b86c781883000b4ede868f43627b34a87c8b7ded"
++"checksum cranelift-bforest 0.50.0 (registry+https://github.com/rust-lang/crates.io-index)" = "bd05aac8cefcde54ce26178df8f36cb1f518ac691db650e7d2440c2b6b41c4dc"
++"checksum cranelift-codegen 0.50.0 (registry+https://github.com/rust-lang/crates.io-index)" = "c63d9b6ff8a94f98deabab21880d7fd54996e0e16be687b6f80a3b6bdd9c188d"
++"checksum cranelift-codegen-meta 0.50.0 (registry+https://github.com/rust-lang/crates.io-index)" = "7cb3df51c2c07d719d02869bfac6cabd8d82ee308d5b29ca62e6528723cc33a4"
++"checksum cranelift-codegen-shared 0.50.0 (registry+https://github.com/rust-lang/crates.io-index)" = "758f9426b2e22bf83fc1a6b231a9d53cd4830751883c7f0e196ebb3c210467b3"
++"checksum cranelift-entity 0.50.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ff064733df8b98f453060264a8790393d1e807aca6942706b42f79a4f7aae9ed"
++"checksum cranelift-frontend 0.50.0 (registry+https://github.com/rust-lang/crates.io-index)" = "1eaafb5fa623dcbe19a28084a8226d7a1b17184a949c1a1f29a46b479867998d"
++"checksum cranelift-native 0.50.0 (registry+https://github.com/rust-lang/crates.io-index)" = "90033dbd7293f6fad4cf9dcd769cd621d60df22b1c5a11799e86359b7447a51d"
++"checksum cranelift-wasm 0.50.0 (registry+https://github.com/rust-lang/crates.io-index)" = "54cb82a1071f88822763a583ec1a8688ffe5e2cda02c111d4483dd4376ed14d8"
++"checksum crossbeam-deque 0.7.2 (registry+https://github.com/rust-lang/crates.io-index)" = "c3aa945d63861bfe624b55d153a39684da1e8c0bc8fba932f7ee3a3c16cea3ca"
++"checksum crossbeam-epoch 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)" = "5064ebdbf05ce3cb95e45c8b086f72263f4166b29b97f6baff7ef7fe047b55ac"
++"checksum crossbeam-queue 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "c695eeca1e7173472a32221542ae469b3e9aac3a4fc81f7696bcad82029493db"
++"checksum crossbeam-utils 0.6.6 (registry+https://github.com/rust-lang/crates.io-index)" = "04973fa96e96579258a5091af6003abde64af786b860f18622b82e026cca60e6"
++"checksum crossbeam-utils 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ce446db02cdc3165b94ae73111e570793400d0794e46125cc4056c81cbb039f4"
++"checksum ctor 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)" = "cd8ce37ad4184ab2ce004c33bf6379185d3b1c95801cab51026bd271bf68eedc"
++"checksum cvt 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "34ac344c7efccb80cd25bc61b2170aec26f2f693fd40e765a539a1243db48c71"
++"checksum digest 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)" = "f3d0c8c8752312f9713efd397ff63acb9f85585afbf179282e720e7704954dd5"
++"checksum directories 2.0.2 (registry+https://github.com/rust-lang/crates.io-index)" = "551a778172a450d7fc12e629ca3b0428d00f6afa9a43da1b630d54604e97371c"
++"checksum dirs-sys 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)" = "afa0b23de8fd801745c471deffa6e12d248f962c9fd4b4c33787b055599bde7b"
 +"checksum docopt 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "7f525a586d310c87df72ebcd98009e57f1cc030c8c268305287a476beb653969"
-+"checksum dynasm 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)" = "f36d49ab6f8ecc642d2c6ee10fda04ba68003ef0277300866745cdde160e6b40"
-+"checksum dynasmrt 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "a4c408a211e7f5762829f5e46bdff0c14bc3b1517a21a4bb781c716bf88b0c68"
-+"checksum either 1.5.2 (registry+https://github.com/rust-lang/crates.io-index)" = "5527cfe0d098f36e3f8839852688e63c8fff1c90b2b405aef730615f9a7bcf7b"
-+"checksum env_logger 0.5.13 (registry+https://github.com/rust-lang/crates.io-index)" = "15b0a4d2e39f8420210be8b27eeda28029729e2fd4291019455016c348240c38"
-+"checksum env_logger 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)" = "b61fa891024a945da30a9581546e8cfaf5602c7b3f4c137a2805cf388f92075a"
++"checksum dynasm 0.5.2 (registry+https://github.com/rust-lang/crates.io-index)" = "42a814e1edeb85dd2a3c6fc0d6bf76d02ca5695d438c70ecee3d90774f3259c5"
++"checksum dynasmrt 0.5.2 (registry+https://github.com/rust-lang/crates.io-index)" = "8a393aaeb4441a48bcf47b5b6155971f82cc1eb77e22855403ccc0415ac8328d"
++"checksum either 1.5.3 (registry+https://github.com/rust-lang/crates.io-index)" = "bb1f6b1ce1c140482ea30ddd3335fc0024ac7ee112895426e0a629a6c20adfe3"
++"checksum env_logger 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)" = "aafcde04e90a5226a6443b7aabdb016ba2f8307c847d524724bd9b346dd1a2d3"
 +"checksum errno 0.2.4 (registry+https://github.com/rust-lang/crates.io-index)" = "c2a071601ed01b988f896ab14b95e67335d1eeb50190932a1320f7fe3cadc84e"
 +"checksum errno-dragonfly 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "14ca354e36190500e1e1fb267c647932382b54053c50b14970856c0b00a35067"
-+"checksum faerie 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)" = "f48412f92b56015a240e249847295b38b0a731435806c21a199403b2c317272c"
-+"checksum failure 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "795bd83d3abeb9220f257e597aa0080a508b27533824adf336529648f6abf7e2"
-+"checksum failure_derive 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "ea1063915fd7ef4309e222a5a07cf9c319fb9c7836b1f89b85458672dbb127e1"
-+"checksum fallible-iterator 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)" = "eb7217124812dc5672b7476d0c2d20cfe9f7c0f1ba0904b674a9762a0212f72e"
++"checksum faerie 0.13.0 (registry+https://github.com/rust-lang/crates.io-index)" = "f902f2af041f6c7177a2a04f805687cdc71e69c7cbef059a2755d8923f4cd7a8"
++"checksum failure 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)" = "f8273f13c977665c5db7eb2b99ae520952fe5ac831ae4cd09d80c4c7042b5ed9"
++"checksum failure_derive 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)" = "0bc225b78e0391e4b8683440bf2e63c2deeeb2ce5189eab46e2b68c6d3725d08"
++"checksum fake-simd 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "e88a8acf291dafb59c2d96e8f59828f3838bb1a70398823ade51a84de6a6deed"
++"checksum fallible-iterator 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "4443176a9f2c162692bd3d352d745ef9413eec5782a80d8fd6f8a1ac692a07f7"
 +"checksum file-per-thread-logger 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "8505b75b31ef7285168dd237c4a7db3c1f3e0927e7d314e670bc98e854272fe9"
++"checksum filetime 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)" = "1ff6d4dab0aa0c8e6346d46052e93b13a16cf847b54ed357087c35011048cc7d"
 +"checksum fuchsia-cprng 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "a06f77d526c1a601b7c4cdd98f54b5eaabffc14d5f2f0296febdc7f357c6d3ba"
-+"checksum fxhash 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "c31b6d751ae2c7f11320402d34e41349dd1016f8d5d45e48c4312bc8625af50c"
 +"checksum gcc 0.3.55 (registry+https://github.com/rust-lang/crates.io-index)" = "8f5f3913fa0bfe7ee1fd8248b6b9f42a5af4b9d65ec2dd2c3c26132b950ecfc2"
-+"checksum gimli 0.17.0 (registry+https://github.com/rust-lang/crates.io-index)" = "eb3243218ca3773e9aa00d27602f35bd1daca3be1b7112ea5fc23b2899f1a4f3"
-+"checksum glob 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)" = "8be18de09a56b60ed0edf84bc9df007e30040691af7acd1c41874faac5895bfb"
-+"checksum goblin 0.0.21 (registry+https://github.com/rust-lang/crates.io-index)" = "6a4013e9182f2345c6b7829b9ef6e670bce0dfca12c6f974457ed2160c2c7fe9"
-+"checksum hashbrown 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)" = "3bae29b6653b3412c2e71e9d486db9f9df5d701941d86683005efb9f2d28e3da"
-+"checksum hashmap_core 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)" = "8e04cb7a5051270ef3fa79f8c7604d581ecfa73d520e74f554e45541c4b5881a"
++"checksum generic-array 0.12.3 (registry+https://github.com/rust-lang/crates.io-index)" = "c68f0274ae0e023facc3c97b2e00f076be70e254bc851d972503b328db79b2ec"
++"checksum getrandom 0.1.13 (registry+https://github.com/rust-lang/crates.io-index)" = "e7db7ca94ed4cd01190ceee0d8a8052f08a247aa1b469a7f68c6a3b71afcf407"
++"checksum ghost 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "2a36606a68532b5640dc86bb1f33c64b45c4682aad4c50f3937b317ea387f3d6"
++"checksum gimli 0.19.0 (registry+https://github.com/rust-lang/crates.io-index)" = "162d18ae5f2e3b90a993d202f1ba17a5633c2484426f8bcae201f86194bacd00"
++"checksum glob 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "9b919933a397b79c37e33b77bb2aa3dc8eb6e165ad809e58ff75bc7db2e34574"
++"checksum goblin 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "3081214398d39e4bd7f2c1975f0488ed04614ffdd976c6fc7a0708278552c0da"
 +"checksum heck 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "20564e78d53d2bb135c343b3f47714a56af2061f1c928fdb541dc7b9fdd94205"
-+"checksum humantime 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "3ca7e5f2e110db35f93b837c81797f3714500b81d517bf20c431b16d3ca4f114"
-+"checksum indexmap 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)" = "7e81a7c05f79578dbc15793d8b619db9ba32b4577003ef3af1a91c416798c58d"
-+"checksum itertools 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)" = "5b8467d9c1cebe26feb08c640139247fac215782d35371ade9a2136ed6085358"
++"checksum hermit-abi 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)" = "eff2656d88f158ce120947499e971d743c05dbcbed62e5bd2f38f1698bbc3772"
++"checksum humantime 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "df004cfca50ef23c36850aaaa59ad52cc70d0e90243c3c7737a4dd32dc7a3c4f"
++"checksum id-arena 2.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "25a2bc672d1148e28034f176e01fffebb08b35768468cc954630da77a1449005"
++"checksum indexmap 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "712d7b3ea5827fcb9d4fda14bf4da5f136f0db2ae9c8f4bd4e2d1c6fde4e6db2"
++"checksum indoc 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)" = "3f9553c1e16c114b8b77ebeb329e5f2876eed62a8d51178c8bc6bff0d65f98f8"
++"checksum indoc-impl 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)" = "b714fc08d0961716390977cdff1536234415ac37b509e34e5a983def8340fb75"
++"checksum inventory 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "2bf98296081bd2cb540acc09ef9c97f22b7e487841520350293605db1b2c7a27"
++"checksum inventory-impl 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "0a8e30575afe28eea36a9a39136b70b2fb6b0dd0a212a5bd1f30a498395c0274"
++"checksum itertools 0.8.2 (registry+https://github.com/rust-lang/crates.io-index)" = "f56a2d0bc861f9165be4eb3442afd3c236d8a98afd426f65d92324ae1091a484"
 +"checksum itoa 0.4.4 (registry+https://github.com/rust-lang/crates.io-index)" = "501266b7edd0174f8530248f87f99c88fbe60ca4ef3dd486835b8d8d53136f7f"
-+"checksum lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "bc5729f27f159ddd61f4df6228e827e86643d4d3e7c32183cb30a1c08f604a14"
-+"checksum libc 0.2.58 (registry+https://github.com/rust-lang/crates.io-index)" = "6281b86796ba5e4366000be6e9e18bf35580adf9e63fbe2294aadb587613a319"
-+"checksum libloading 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "a5692f82b51823e27c4118b3e5c0d98aee9be90633ebc71ad12afef380b50219"
-+"checksum log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)" = "c84ec4b527950aa83a329754b01dbe3f58361d1c5efacd1f6d68c494d08a17c6"
++"checksum jobserver 0.1.17 (registry+https://github.com/rust-lang/crates.io-index)" = "f2b1d42ef453b30b7387e113da1c83ab1605d90c5b4e0eb8e96d016ed3b8c160"
++"checksum lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
++"checksum leb128 0.2.4 (registry+https://github.com/rust-lang/crates.io-index)" = "3576a87f2ba00f6f106fdfcd16db1d698d648a26ad8e0573cad8537c3c362d2a"
++"checksum libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)" = "d515b1f41455adea1313a4a2ac8a8a477634fbae63cc6100e3aebb207ce61558"
++"checksum libloading 0.5.2 (registry+https://github.com/rust-lang/crates.io-index)" = "f2b111a074963af1d37a139918ac6d49ad1d0d5e47f72fd55388619691a7d753"
++"checksum log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)" = "14b6052be84e6b71ab17edffc2eeabf5c2c3ae1fdb464aae35ac50c67a44e1f7"
 +"checksum mach 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)" = "86dd2487cdfea56def77b88438a2c915fb45113c5319bfe7e14306ca4cd0b0e1"
-+"checksum memchr 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "2efc7bc57c883d4a4d6e3246905283d8dae951bb3bd32f49d6ef297f546e1c39"
-+"checksum memmap 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)" = "e2ffa2c986de11a9df78620c01eeaaf27d94d3ff02bf81bfcca953102dd0c6ff"
-+"checksum memoffset 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "0f9dc261e2b62d7a622bf416ea3c5245cdd5d9a7fcc428c0d06804dfce1775b3"
-+"checksum memoffset 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "7efacc914ca612fc1022f27b7dc51585e1a9f94c08fd5d322cfd741399260ce0"
++"checksum memchr 2.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "88579771288728879b57485cc7d6b07d648c9f0141eb955f8ab7f9d45394468e"
++"checksum memmap 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "6585fd95e7bb50d6cc31e20d4cf9afb4e2ba16c5846fc76793f11218da9c475b"
++"checksum memoffset 0.5.3 (registry+https://github.com/rust-lang/crates.io-index)" = "75189eb85871ea5c2e2c15abbdd541185f63b408415e5051f5cac122d8c774b9"
++"checksum more-asserts 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "0debeb9fcf88823ea64d64e4a815ab1643f33127d995978e099942ce38f25238"
 +"checksum multi_mut 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "816df386e5557ac1843a96f1ba8a7cbf4ab175d05ccc15c87a3cda27b4fbdece"
-+"checksum nix 0.13.0 (registry+https://github.com/rust-lang/crates.io-index)" = "46f0f3210768d796e8fa79ec70ee6af172dacbe7147f5e69be5240a47778302b"
-+"checksum nodrop 0.1.13 (registry+https://github.com/rust-lang/crates.io-index)" = "2f9667ddcc6cc8a43afc9b7917599d7216aa09c463919ea32c59ed6cac8bc945"
++"checksum nix 0.15.0 (registry+https://github.com/rust-lang/crates.io-index)" = "3b2e0b4f3320ed72aaedb9a5ac838690a8047c7b275da22711fddff4f8a14229"
++"checksum nodrop 0.1.14 (registry+https://github.com/rust-lang/crates.io-index)" = "72ef4a56884ca558e5ddb05a1d1e7e1bfd9a68d9ed024c21704cc98872dae1bb"
 +"checksum nom 4.2.3 (registry+https://github.com/rust-lang/crates.io-index)" = "2ad2a91a8e869eeb30b9cb3119ae87773a8f4ae617f41b1eb9c154b2905f7bd6"
++"checksum num 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "cf4825417e1e1406b3782a8ce92f4d53f26ec055e3622e1881ca8e9f5f9e08db"
++"checksum num-complex 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)" = "fcb0cf31fb3ff77e6d2a6ebd6800df7fdcd106f2ad89113c9130bcd07f93dffc"
 +"checksum num-integer 0.1.41 (registry+https://github.com/rust-lang/crates.io-index)" = "b85e541ef8255f6cf42bbfe4ef361305c6c135d10919ecc26126c4e5ae94bc09"
-+"checksum num-traits 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)" = "6ba9a427cfca2be13aa6f6403b0b7e7368fe982bfa16fccc450ce74c46cd9b32"
-+"checksum num_cpus 1.10.0 (registry+https://github.com/rust-lang/crates.io-index)" = "1a23f0ed30a54abaa0c7e83b1d2d87ada7c3c23078d1d87815af3e3b6385fbba"
-+"checksum numtoa 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "b8f8bdf33df195859076e54ab11ee78a1b208382d3a26ec40d142ffc1ecc49ef"
-+"checksum owning_ref 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "cdf84f41639e037b484f93433aa3897863b561ed65c6e59c7073d7c561710f37"
++"checksum num-iter 0.1.39 (registry+https://github.com/rust-lang/crates.io-index)" = "76bd5272412d173d6bf9afdf98db8612bbabc9a7a830b7bfc9c188911716132e"
++"checksum num-rational 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "f2885278d5fe2adc2f75ced642d52d879bffaceb5a2e0b1d4309ffdfb239b454"
++"checksum num-traits 0.2.10 (registry+https://github.com/rust-lang/crates.io-index)" = "d4c81ffc11c212fa327657cb19dd85eb7419e163b5b076bede2bdb5c974c07e4"
++"checksum num_cpus 1.11.1 (registry+https://github.com/rust-lang/crates.io-index)" = "76dac5ed2a876980778b8b85f75a71b6cbf0db0b1232ee12f826bccb00d09d72"
++"checksum opaque-debug 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)" = "2839e79665f131bdb5782e51f2c6c9599c133c6098982a54c794358bf432529c"
++"checksum os_pipe 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)" = "db4d06355a7090ce852965b2d08e11426c315438462638c6d721448d0b47aa22"
++"checksum owning_ref 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "49a4b8ea2179e6a2e27411d3bca09ca6dd630821cf6894c6c7c8467a8ee7ef13"
++"checksum paste 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)" = "423a519e1c6e828f1e73b720f9d9ed2fa643dce8a7737fb43235ce0b41eeaa49"
++"checksum paste-impl 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)" = "4214c9e912ef61bf42b81ba9a47e8aad1b2ffaf739ab162bf96d1e011f54e6c5"
 +"checksum peeking_take_while 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "19b17cddbe7ec3f8bc800887bab5e717348c95ea2ca0b1bf0837fb964dc67099"
 +"checksum plain 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)" = "b4596b6d070b27117e987119b4dac604f3c58cfb0b191112e24771b2faeac1a6"
-+"checksum pretty_env_logger 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "df8b3f4e0475def7d9c2e5de8e5a1306949849761e107b360d03e98eafaffd61"
-+"checksum proc-macro2 0.4.30 (registry+https://github.com/rust-lang/crates.io-index)" = "cf3d2011ab5c909338f7887f4fc896d35932e29146c12c8d01da6b22a80ba759"
-+"checksum quick-error 1.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "9274b940887ce9addde99c4eee6b5c44cc494b182b97e73dc8ffdcb3397fd3f0"
-+"checksum quickcheck 0.7.2 (registry+https://github.com/rust-lang/crates.io-index)" = "d4537d3e4edf73a15dd059b75bed1c292d17d3ea7517f583cebe716794fcf816"
-+"checksum quote 0.6.12 (registry+https://github.com/rust-lang/crates.io-index)" = "faf4799c5d274f3868a4aae320a0a182cbd2baee377b378f080e16a23e9d80db"
-+"checksum rand 0.5.6 (registry+https://github.com/rust-lang/crates.io-index)" = "c618c47cd3ebd209790115ab837de41425723956ad3ce2e6a7f09890947cacb9"
-+"checksum rand 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)" = "6d71dacdc3c88c1fde3885a3be3fbab9f35724e6ce99467f7d9c5026132184ca"
-+"checksum rand_chacha 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "556d3a1ca6600bfcbab7c7c91ccb085ac7fbbcd70e008a98742e7847f4f7bcef"
-+"checksum rand_core 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "1961a422c4d189dfb50ffa9320bf1f2a9bd54ecb92792fb9477f99a1045f3372"
++"checksum ppv-lite86 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)" = "74490b50b9fbe561ac330df47c08f3f33073d2d00c150f719147d7c54522fa1b"
++"checksum pretty_env_logger 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "717ee476b1690853d222af4634056d830b5197ffd747726a9a1eee6da9f49074"
++"checksum proc-macro-hack 0.5.11 (registry+https://github.com/rust-lang/crates.io-index)" = "ecd45702f76d6d3c75a80564378ae228a85f0b59d2f3ed43c91b4a69eb2ebfc5"
++"checksum proc-macro2 1.0.7 (registry+https://github.com/rust-lang/crates.io-index)" = "0319972dcae462681daf4da1adeeaa066e3ebd29c69be96c6abb1259d2ee2bcc"
++"checksum pyo3 0.8.5 (registry+https://github.com/rust-lang/crates.io-index)" = "e1bfe257586436fbe1296d917f14a167d4253d0873bf43e2c9b9bdd58a3f9f35"
++"checksum pyo3-derive-backend 0.8.5 (registry+https://github.com/rust-lang/crates.io-index)" = "4882d8237fd8c7373cc25cb802fe0dab9ff70830fd56f47ef6c7f3f287fcc057"
++"checksum pyo3cls 0.8.5 (registry+https://github.com/rust-lang/crates.io-index)" = "fdf321cfab555f7411298733c86d21e5136f5ded13f5872fabf9de3337beecda"
++"checksum quick-error 1.2.3 (registry+https://github.com/rust-lang/crates.io-index)" = "a1d01941d82fa2ab50be1e79e6714289dd7cde78eba4c074bc5a4374f650dfe0"
++"checksum quickcheck 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)" = "d5ca504a2fdaa08d3517f442fbbba91ac24d1ec4c51ea68688a038765e3b2662"
++"checksum quote 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)" = "053a8c8bcc71fcce321828dc897a98ab9760bef03a4fc36693c231e5b3216cfe"
++"checksum rand 0.7.2 (registry+https://github.com/rust-lang/crates.io-index)" = "3ae1b169243eaf61759b8475a998f0a385e42042370f3a7dbaf35246eacc8412"
++"checksum rand_chacha 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "03a2a90da8c7523f554344f921aa97283eadf6ac484a6d2a7d0212fa7f8d6853"
 +"checksum rand_core 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "7a6fdeb83b075e8266dcc8762c22776f6877a63111121f5f8c7411e5be7eed4b"
-+"checksum rand_core 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "d0e7a549d590831370895ab7ba4ea0c1b6b011d106b5ff2da6eee112615e6dc0"
-+"checksum rand_hc 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "7b40677c7be09ae76218dc623efbf7b18e34bced3f38883af07bb75630a21bc4"
-+"checksum rand_isaac 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "ded997c9d5f13925be2a6fd7e66bf1872597f759fd9dd93513dd7e92e5a5ee08"
-+"checksum rand_jitter 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)" = "1166d5c91dc97b88d1decc3285bb0a99ed84b05cfd0bc2341bdf2d43fc41e39b"
++"checksum rand_core 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)" = "9c33a3c44ca05fa6f1807d8e6743f3824e8509beca625669633be0acbdf509dc"
++"checksum rand_core 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "90bde5296fc891b0cef12a6d03ddccc162ce7b2aff54160af9338f8d40df6d19"
++"checksum rand_hc 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ca3129af7b92a17112d59ad498c6f81eaf463253766b90396d39ea7a39d6613c"
 +"checksum rand_os 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "7b75f676a1e053fc562eafbb47838d67c84801e38fc1ba459e8f180deabd5071"
-+"checksum rand_pcg 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "abf9b09b01790cfe0364f52bf32995ea3c39f4d2dd011eac241d2914146d0b44"
-+"checksum rand_xorshift 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "cbf7e9e623549b0e21f6e97cf8ecf247c1a8fd2e8a992ae265314300b2455d5c"
-+"checksum raw-cpuid 6.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "30a9d219c32c9132f7be513c18be77c9881c7107d2ab5569d205a6a0f0e6dc7d"
-+"checksum rayon 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)" = "373814f27745b2686b350dd261bfd24576a6fb0e2c5919b3a2b6005f820b0473"
-+"checksum rayon-core 1.4.1 (registry+https://github.com/rust-lang/crates.io-index)" = "b055d1e92aba6877574d8fe604a63c8b5df60f60e5982bf7ccbb1338ea527356"
++"checksum rand_pcg 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "16abd0c1b639e9eb4d7c50c0b8100b0d0f849be2349829c740fe8e6eb4816429"
++"checksum raw-cpuid 7.0.3 (registry+https://github.com/rust-lang/crates.io-index)" = "b4a349ca83373cfa5d6dbb66fd76e58b2cca08da71a5f6400de0a0a6a9bceeaf"
++"checksum rayon 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "db6ce3297f9c85e16621bb8cca38a06779ffc31bb8184e1be4bed2be4678a098"
++"checksum rayon-core 1.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "08a89b46efaf957e52b18062fb2f4660f8b8a4dde1807ca002690868ef2c85a9"
 +"checksum rdrand 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "678054eb77286b51581ba43620cc911abf02758c91f93f479767aed0f90458b2"
-+"checksum redox_syscall 0.1.54 (registry+https://github.com/rust-lang/crates.io-index)" = "12229c14a0f65c4f1cb046a3b52047cdd9da1f4b30f8a39c5063c8bae515e252"
-+"checksum redox_termios 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "7e891cfe48e9100a70a3b6eb652fef28920c117d366339687bd5576160db0f76"
-+"checksum regex 1.1.6 (registry+https://github.com/rust-lang/crates.io-index)" = "8f0a0bcab2fd7d1d7c54fa9eae6f43eddeb9ce2e7352f8518a814a4f65d60c58"
-+"checksum regex-syntax 0.6.6 (registry+https://github.com/rust-lang/crates.io-index)" = "dcfd8681eebe297b81d98498869d4aae052137651ad7b96822f09ceb690d0a96"
-+"checksum region 2.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ace21a7fc79cffefeb66f2cc3ef22c7687015023bf7f85bec8840f0d46cb51cc"
-+"checksum rustc-demangle 0.1.15 (registry+https://github.com/rust-lang/crates.io-index)" = "a7f4dccf6f4891ebcc0c39f9b6eb1a83b9bf5d747cb439ec6fba4f3b977038af"
++"checksum redox_syscall 0.1.56 (registry+https://github.com/rust-lang/crates.io-index)" = "2439c63f3f6139d1b57529d16bc3b8bb855230c8efcc5d3a896c8bea7c3b1e84"
++"checksum redox_users 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "4ecedbca3bf205f8d8f5c2b44d83cd0690e39ee84b951ed649e9f1841132b66d"
++"checksum regex 1.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "dc220bd33bdce8f093101afe22a037b8eb0e5af33592e6a9caafff0d4cb81cbd"
++"checksum regex-syntax 0.6.12 (registry+https://github.com/rust-lang/crates.io-index)" = "11a7e20d1cce64ef2fed88b66d347f88bd9babb82845b2b858f3edbf59a4f716"
++"checksum region 2.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "448e868c6e4cfddfa49b6a72c95906c04e8547465e9536575b95c70a4044f856"
++"checksum remove_dir_all 0.5.2 (registry+https://github.com/rust-lang/crates.io-index)" = "4a83fa3702a688b9359eccba92d153ac33fd2e8462f9e0e3fdf155239ea7792e"
++"checksum rust-argon2 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "4ca4eaef519b494d1f2848fc602d18816fed808a981aedf4f1f00ceb7c9d32cf"
++"checksum rustc-demangle 0.1.16 (registry+https://github.com/rust-lang/crates.io-index)" = "4c691c0e608126e00913e33f0ccf3727d5fc84573623b8d65b2df340b5201783"
++"checksum rustc-hash 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)" = "7540fc8b0c49f096ee9c961cda096467dce8084bec6bdca2fc83895fd9b28cb8"
 +"checksum rustc_version 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)" = "138e3e0acb6c9fb258b19b67cb8abd63c00679d2851805ea151465464fe9030a"
-+"checksum ryu 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)" = "b96a9549dc8d48f2c283938303c4b5a77aa29bfbc5b54b084fb1630408899a8f"
-+"checksum scopeguard 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "94258f53601af11e6a49f722422f6e3425c52b06245a5cf9bc09908b174f5e27"
-+"checksum scroll 0.9.2 (registry+https://github.com/rust-lang/crates.io-index)" = "2f84d114ef17fd144153d608fba7c446b0145d038985e7a8cc5d08bb0ce20383"
-+"checksum scroll_derive 0.9.5 (registry+https://github.com/rust-lang/crates.io-index)" = "8f1aa96c45e7f5a91cb7fabe7b279f02fea7126239fc40b732316e8b6a2d0fcb"
++"checksum ryu 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)" = "bfa8506c1de11c9c4e4c38863ccbe02a305c8188e85a05a784c9e11e1c3910c8"
++"checksum scopeguard 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "b42e15e59b18a828bbf5c58ea01debb36b9b096346de35d941dcb89009f24a0d"
++"checksum scroll 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)" = "abb2332cb595d33f7edd5700f4cbf94892e680c7f0ae56adab58a35190b66cb1"
++"checksum scroll_derive 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)" = "f8584eea9b9ff42825b46faf46a8c24d2cff13ec152fa2a50df788b87c07ee28"
 +"checksum semver 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)" = "1d7eb9ef2c18661902cc47e535f9bc51b78acd254da71d375c2f6720d9a40403"
 +"checksum semver-parser 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3"
-+"checksum serde 1.0.92 (registry+https://github.com/rust-lang/crates.io-index)" = "32746bf0f26eab52f06af0d0aa1984f641341d06d8d673c693871da2d188c9be"
-+"checksum serde_derive 1.0.92 (registry+https://github.com/rust-lang/crates.io-index)" = "46a3223d0c9ba936b61c0d2e3e559e3217dbfb8d65d06d26e8b3c25de38bae3e"
-+"checksum serde_json 1.0.39 (registry+https://github.com/rust-lang/crates.io-index)" = "5a23aa71d4a4d43fdbfaac00eff68ba8a06a51759a89ac3304323e800c4dd40d"
++"checksum serde 1.0.104 (registry+https://github.com/rust-lang/crates.io-index)" = "414115f25f818d7dfccec8ee535d76949ae78584fc4f79a6f45a904bf8ab4449"
++"checksum serde_derive 1.0.104 (registry+https://github.com/rust-lang/crates.io-index)" = "128f9e303a5a29922045a830221b8f78ec74a5f544944f3d5984f8ec3895ef64"
++"checksum serde_json 1.0.44 (registry+https://github.com/rust-lang/crates.io-index)" = "48c575e0cc52bdd09b47f330f646cf59afc586e9c4e3ccd6fc1f625b8ea1dad7"
++"checksum sha2 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)" = "27044adfd2e1f077f649f59deb9490d3941d674002f7d062870a60ebe9bd47a0"
 +"checksum shlex 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "7fdf1b9db47230893d76faad238fd6097fd6d6a9245cd7a4d90dbd639536bbd2"
-+"checksum smallvec 0.6.9 (registry+https://github.com/rust-lang/crates.io-index)" = "c4488ae950c49d403731982257768f48fada354a5203fe81f9bb6f43ca9002be"
++"checksum smallvec 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "44e59e0c9fa00817912ae6e4e6e3c4fe04455e75699d06eedc7d85917ed8e8f4"
++"checksum spin 0.5.2 (registry+https://github.com/rust-lang/crates.io-index)" = "6e63cff320ae2c57904679ba7cb63280a3dc4613885beafb148ee7bf9aa9042d"
 +"checksum stable_deref_trait 1.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "dba1a27d3efae4351c8051072d619e3ade2820635c3958d826bfea39d59b54c8"
-+"checksum string-interner 0.6.3 (registry+https://github.com/rust-lang/crates.io-index)" = "abb38a0d8fe673c40b10b6b75abcb076a958cc10fb894f14993d9737c4c87000"
++"checksum string-interner 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)" = "fd710eadff449a1531351b0e43eb81ea404336fa2f56c777427ab0e32a4cf183"
 +"checksum strsim 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)" = "8ea5119cdb4c55b55d432abb513a0429384878c15dde60cc77b1c99de1a95a6a"
-+"checksum strsim 0.9.2 (registry+https://github.com/rust-lang/crates.io-index)" = "032c03039aae92b350aad2e3779c352e104d919cb192ba2fabbd7b831ce4f0f6"
-+"checksum structopt 0.2.17 (registry+https://github.com/rust-lang/crates.io-index)" = "c767a8971f53d7324583085deee2e230903be09e52fb27df9af94c5cb2b43c31"
-+"checksum structopt-derive 0.2.17 (registry+https://github.com/rust-lang/crates.io-index)" = "c57a30c87454ced2186f62f940e981746e8cbbe026d52090c8c4352b636f8235"
-+"checksum syn 0.15.34 (registry+https://github.com/rust-lang/crates.io-index)" = "a1393e4a97a19c01e900df2aec855a29f71cf02c402e2f443b8d2747c25c5dbe"
-+"checksum synstructure 0.10.2 (registry+https://github.com/rust-lang/crates.io-index)" = "02353edf96d6e4dc81aea2d8490a7e9db177bf8acb0e951c24940bf866cb313f"
-+"checksum take_mut 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "f764005d11ee5f36500a149ace24e00e3da98b0158b3e2d53a7495660d3f4d60"
-+"checksum target-lexicon 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "d6923974ce4eb5bd28814756256d8ab71c28dd6e7483313fe7ab6614306bf633"
++"checksum strsim 0.9.3 (registry+https://github.com/rust-lang/crates.io-index)" = "6446ced80d6c486436db5c078dde11a9f73d42b57fb273121e160b84f63d894c"
++"checksum syn 1.0.13 (registry+https://github.com/rust-lang/crates.io-index)" = "1e4ff033220a41d1a57d8125eab57bf5263783dfdcc18688b1dacc6ce9651ef8"
++"checksum synstructure 0.12.3 (registry+https://github.com/rust-lang/crates.io-index)" = "67656ea1dc1b41b1451851562ea232ec2e5a80242139f7e679ceccfb5d61f545"
++"checksum target-lexicon 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)" = "6f4c118a7a38378f305a9e111fcb2f7f838c0be324bfb31a77ea04f7f6e684b4"
++"checksum tempfile 3.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "7a6e24d9338a0a5be79593e2fa15a648add6138caa803e2d5bc782c371732ca9"
 +"checksum termcolor 1.0.5 (registry+https://github.com/rust-lang/crates.io-index)" = "96d6098003bde162e4277c70665bd87c326f5a0c3f3fbfb285787fa482d54e6e"
-+"checksum termion 1.5.2 (registry+https://github.com/rust-lang/crates.io-index)" = "dde0593aeb8d47accea5392b39350015b5eccb12c0d98044d856983d89548dea"
 +"checksum textwrap 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)" = "d326610f408c7a4eb6f51c37c330e496b08506c9457c9d34287ecc38809fb060"
++"checksum thiserror 1.0.9 (registry+https://github.com/rust-lang/crates.io-index)" = "6f357d1814b33bc2dc221243f8424104bfe72dbe911d5b71b3816a2dff1c977e"
++"checksum thiserror-impl 1.0.9 (registry+https://github.com/rust-lang/crates.io-index)" = "eb2e25d25307eb8436894f727aba8f65d07adf02e5b35a13cebed48bd282bfef"
 +"checksum thread_local 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)" = "c6b53e329000edc2b34dbe8545fd20e55a333362d0a321909685a19bd28c3f1b"
 +"checksum time 0.1.42 (registry+https://github.com/rust-lang/crates.io-index)" = "db8dcfca086c1143c9270ac42a2bbd8a7ee477b78ac8e45b19abfb0cbede4b6f"
++"checksum toml 0.5.5 (registry+https://github.com/rust-lang/crates.io-index)" = "01d1404644c8b12b16bfcffa4322403a91a451584daaaa7c28d3152e6cbc98cf"
 +"checksum traitobject 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "efd1f82c56340fdf16f2a953d7bda4f8fdffba13d93b00844c25572110b26079"
++"checksum trybuild 1.0.19 (registry+https://github.com/rust-lang/crates.io-index)" = "987d6fdc45ddd7f3be5aa7386c8c8a844d1655c95b9ed948a9cd9cded8f2b79f"
 +"checksum typemap 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "653be63c80a3296da5551e1bfd2cca35227e13cdd08c6668903ae2f4f77aa1f6"
-+"checksum ucd-util 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "535c204ee4d8434478593480b8f86ab45ec9aae0e83c568ca81abf0fd0e88f86"
-+"checksum unicode-segmentation 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "1967f4cdfc355b37fd76d2a954fb2ed3871034eb4f26d60537d88795cfc332a9"
-+"checksum unicode-width 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "882386231c45df4700b275c7ff55b6f3698780a650026380e72dabe76fa46526"
-+"checksum unicode-xid 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "fc72304796d0818e357ead4e000d19c9c174ab23dc11093ac919054d20a6a7fc"
++"checksum typenum 1.11.2 (registry+https://github.com/rust-lang/crates.io-index)" = "6d2783fe2d6b8c1101136184eb41be8b1ad379e4657050b8aaff0c79ee7575f9"
++"checksum unicode-segmentation 1.6.0 (registry+https://github.com/rust-lang/crates.io-index)" = "e83e153d1053cbb5a118eeff7fd5be06ed99153f00dbcd8ae310c5fb2b22edc0"
++"checksum unicode-width 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)" = "caaa9d531767d1ff2150b9332433f32a24622147e5ebb1f26409d5da67afd479"
++"checksum unicode-xid 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "826e7639553986605ec5979c7dd957c7895e93eabed50ab2ffa7f6128a75097c"
++"checksum unindent 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "63f18aa3b0e35fed5a0048f029558b1518095ffe2a0a31fb87c93dece93a4993"
 +"checksum unsafe-any 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)" = "f30360d7979f5e9c6e6cea48af192ea8fab4afb3cf72597154b8f08935bc9c7f"
-+"checksum utf8-ranges 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)" = "796f7e48bef87609f7ade7e06495a87d5cd06c7866e6a5cbfceffc558a243737"
 +"checksum vec_map 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)" = "05c78687fb1a80548ae3250346c3db86a80a7cdd77bda190189f2d0a0987c81a"
 +"checksum version_check 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "914b1a6776c4c929a602fafd8bc742e06365d4bcbe48c30f9cca5824f70dc9dd"
++"checksum version_check 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)" = "078775d0255232fb988e6fccf26ddc9d1ac274299aaedcedce21c6f72cc533ce"
 +"checksum void 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)" = "6a02e4885ed3bc0f2de90ea6dd45ebcbb66dacffe03547fadbb0eeae2770887d"
-+"checksum wabt 0.7.4 (registry+https://github.com/rust-lang/crates.io-index)" = "74e463a508e390cc7447e70f640fbf44ad52e1bd095314ace1fdf99516d32add"
-+"checksum wabt-sys 0.5.4 (registry+https://github.com/rust-lang/crates.io-index)" = "a6265b25719e82598d104b3717375e37661d41753e2c84cde3f51050c7ed7e3c"
-+"checksum wasi-common 0.1.0 (git+https://github.com/CraneStation/wasi-common)" = "<none>"
-+"checksum wasi-common-cbindgen 0.1.0 (git+https://github.com/CraneStation/wasi-common)" = "<none>"
-+"checksum wasmparser 0.29.2 (registry+https://github.com/rust-lang/crates.io-index)" = "981a8797cf89762e0233ec45fae731cb79a4dfaee12d9f0fe6cee01e4ac58d00"
-+"checksum which 2.0.1 (registry+https://github.com/rust-lang/crates.io-index)" = "b57acb10231b9493c8472b20cb57317d0679a49e0bdbee44b3b803a6473af164"
-+"checksum winapi 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)" = "f10e386af2b13e47c89e7236a7a14a086791a2b88ebad6df9bf42040195cf770"
++"checksum walrus 0.13.0 (registry+https://github.com/rust-lang/crates.io-index)" = "85ce93ab0c27412ba41d509f2410fa575ecbfdb4a6aba0e02e79e12c09745485"
++"checksum walrus-macro 0.13.0 (registry+https://github.com/rust-lang/crates.io-index)" = "8757b0da38353d55a9687f4dee68a8f441f980dd36e16ab07d6e6c673f505f76"
++"checksum wasi 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "b89c3ce4ce14bdc6fb6beaf9ec7928ca331de5df7e5ea278375642a2f478570d"
++"checksum wasm-webidl-bindings 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)" = "b5cae185868c6038a48f487b9af3766ee0c68d4a85fa3610c3a0522092b3cec1"
++"checksum wasmparser 0.39.3 (registry+https://github.com/rust-lang/crates.io-index)" = "c702914acda5feeeffbc29e4d953e5b9ce79d8b98da4dbf18a77086e116c5470"
++"checksum wast 3.0.4 (registry+https://github.com/rust-lang/crates.io-index)" = "233648f540f07fce9b972436f2fbcae8a750c1121b6d32d949e1a44b4d9fc7b1"
++"checksum wast 5.0.1 (registry+https://github.com/rust-lang/crates.io-index)" = "8d1de68310854a9840d39487701a8c1acccb5c9f9f2650d5fce3cdfe6650c372"
++"checksum wat 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)" = "d916cc60b1b79ac1ca7683af8d6ec56b789167f7f696b3f1ab3d98961129f192"
++"checksum which 3.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "5475d47078209a02e60614f7ba5e645ef3ed60f771920ac1906d7c1cc65024c8"
++"checksum winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)" = "8093091eeb260906a183e6ae1abdba2ef5ef2257a21801128899c3fc699229c6"
 +"checksum winapi-i686-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
 +"checksum winapi-util 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "7168bab6e1daee33b4557efd0e95d5ca70a03706d39fa5f3fe7a236f584b03c9"
 +"checksum winapi-x86_64-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
-+"checksum wincolor 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)" = "561ed901ae465d6185fa7864d63fbd5720d0ef718366c9a4dc83cf6170d7e9ba"
++"checksum wincolor 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)" = "96f5016b18804d24db43cebf3c77269e7569b8954a8464501c216cc5e070eaa9"
++"checksum witx 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)" = "6d075344afebe51633c0302fc11698c2d6414f9d366c749db1af57710f112561"
++"checksum zstd 0.5.1+zstd.1.4.4 (registry+https://github.com/rust-lang/crates.io-index)" = "5c5d978b793ae64375b80baf652919b148f6a496ac8802922d9999f5a553194f"
++"checksum zstd-safe 2.0.3+zstd.1.4.4 (registry+https://github.com/rust-lang/crates.io-index)" = "bee25eac9753cfedd48133fa1736cbd23b774e253d89badbeac7d12b23848d3f"
++"checksum zstd-sys 1.4.15+zstd.1.4.4 (registry+https://github.com/rust-lang/crates.io-index)" = "89719b034dc22d240d5b407fb0a3fe6d29952c181cff9a9f95c0bd40b4f8f7d8"
diff --git a/nixpkgs/pkgs/development/interpreters/wasmtime/default.nix b/nixpkgs/pkgs/development/interpreters/wasmtime/default.nix
index b53b3ed9dbfb..c978f023936b 100644
--- a/nixpkgs/pkgs/development/interpreters/wasmtime/default.nix
+++ b/nixpkgs/pkgs/development/interpreters/wasmtime/default.nix
@@ -1,28 +1,28 @@
-{ rustPlatform, fetchFromGitHub, lib, python, cmake, llvmPackages, clang }:
+{ rustPlatform, fetchFromGitHub, lib, python, cmake, llvmPackages, clang, stdenv, darwin }:
 
-rustPlatform.buildRustPackage {
+rustPlatform.buildRustPackage rec {
   pname = "wasmtime";
-  version = "20190521";
+  version = "v0.8.0";
 
   src = fetchFromGitHub {
-    owner = "CraneStation";
-    repo = "wasmtime";
-    rev = "e530a582afe6a2b5735fd7cdf5e2e88391e58669";
-    sha256 = "13lqf9dp1cnw7ms7hcgirmlfkr0v7nrn3p5g7yacfasrqgnwsyl8";
+    owner = "bytecodealliance";
+    repo = "${pname}";
+    rev = "${version}";
+    sha256 = "0az893srw49szvs5461bd165ffla4cc98gh42p3dwskwfkhpqjm4";
     fetchSubmodules = true;
   };
 
-  cargoSha256 = "1jbpq09czm295316gdv3y0pfapqs0ynj3qbarwlnrv7valq5ak13";
+  cargoSha256 = "08b3rbnl7qwyfbwaqcb7z84sh0h94v18v6557hrf0dlil414v54i";
 
   cargoPatches = [ ./cargo-lock.patch ];
 
   nativeBuildInputs = [ python cmake clang ];
-  buildInputs = [ llvmPackages.libclang ];
-
+  buildInputs = [ llvmPackages.libclang ] ++
+   lib.optionals stdenv.isDarwin [ darwin.apple_sdk.frameworks.Security ];
   LIBCLANG_PATH = "${llvmPackages.libclang}/lib";
 
   meta = with lib; {
-    description = "Standalone JIT-style runtime for WebAsssembly, using Cranelift";
+    description = "Standalone JIT-style runtime for WebAssembly, using Cranelift";
     homepage = https://github.com/CraneStation/wasmtime;
     license = licenses.asl20;
     maintainers = [ maintainers.matthewbauer ];