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/acl2/0001-Fix-some-paths-for-Nix-build.patch128
-rw-r--r--nixpkgs/pkgs/development/interpreters/acl2/0002-Restrict-RDTSC-to-x86.patch29
-rw-r--r--nixpkgs/pkgs/development/interpreters/acl2/default.nix58
-rw-r--r--nixpkgs/pkgs/development/interpreters/acl2/libipasirglucose4/default.nix17
-rw-r--r--nixpkgs/pkgs/development/interpreters/bic/default.nix42
-rw-r--r--nixpkgs/pkgs/development/interpreters/ceptre/default.nix3
-rw-r--r--nixpkgs/pkgs/development/interpreters/cling/default.nix3
-rw-r--r--nixpkgs/pkgs/development/interpreters/clojure/babashka.nix36
-rw-r--r--nixpkgs/pkgs/development/interpreters/clojure/default.nix7
-rw-r--r--nixpkgs/pkgs/development/interpreters/elixir/1.12.nix4
-rw-r--r--nixpkgs/pkgs/development/interpreters/erlang/R23.nix4
-rw-r--r--nixpkgs/pkgs/development/interpreters/erlang/R24.nix4
-rw-r--r--nixpkgs/pkgs/development/interpreters/evcxr/default.nix6
-rw-r--r--nixpkgs/pkgs/development/interpreters/io/default.nix2
-rw-r--r--nixpkgs/pkgs/development/interpreters/joker/default.nix4
-rw-r--r--nixpkgs/pkgs/development/interpreters/lua-5/build-lua-package.nix28
-rw-r--r--nixpkgs/pkgs/development/interpreters/lua-5/default.nix5
-rw-r--r--nixpkgs/pkgs/development/interpreters/luajit/2.0.nix2
-rw-r--r--nixpkgs/pkgs/development/interpreters/luajit/2.1.nix2
-rw-r--r--nixpkgs/pkgs/development/interpreters/luajit/default.nix6
-rw-r--r--nixpkgs/pkgs/development/interpreters/luajit/openresty.nix10
-rw-r--r--nixpkgs/pkgs/development/interpreters/octave/default.nix8
-rw-r--r--nixpkgs/pkgs/development/interpreters/perl/default.nix8
-rw-r--r--nixpkgs/pkgs/development/interpreters/pixie/dust.nix24
-rw-r--r--nixpkgs/pkgs/development/interpreters/python/cpython/default.nix4
-rw-r--r--nixpkgs/pkgs/development/interpreters/python/default.nix21
-rw-r--r--nixpkgs/pkgs/development/interpreters/python/tests/test_nix_pythonprefix/default.nix4
-rw-r--r--nixpkgs/pkgs/development/interpreters/racket/default.nix4
-rw-r--r--nixpkgs/pkgs/development/interpreters/racket/minimal.nix2
-rw-r--r--nixpkgs/pkgs/development/interpreters/rakudo/default.nix4
-rw-r--r--nixpkgs/pkgs/development/interpreters/rakudo/moarvm.nix4
-rw-r--r--nixpkgs/pkgs/development/interpreters/rakudo/nqp.nix4
-rw-r--r--nixpkgs/pkgs/development/interpreters/rakudo/zef.nix4
-rw-r--r--nixpkgs/pkgs/development/interpreters/ruby/rubygems/default.nix4
-rw-r--r--nixpkgs/pkgs/development/interpreters/s9fes/default.nix35
-rw-r--r--nixpkgs/pkgs/development/interpreters/scsh/default.nix3
-rw-r--r--nixpkgs/pkgs/development/interpreters/supercollider/default.nix4
-rw-r--r--nixpkgs/pkgs/development/interpreters/yabasic/default.nix6
38 files changed, 284 insertions, 259 deletions
diff --git a/nixpkgs/pkgs/development/interpreters/acl2/0001-Fix-some-paths-for-Nix-build.patch b/nixpkgs/pkgs/development/interpreters/acl2/0001-Fix-some-paths-for-Nix-build.patch
index 2b7f8b6a53b1..ac107414a92d 100644
--- a/nixpkgs/pkgs/development/interpreters/acl2/0001-Fix-some-paths-for-Nix-build.patch
+++ b/nixpkgs/pkgs/development/interpreters/acl2/0001-Fix-some-paths-for-Nix-build.patch
@@ -1,54 +1,46 @@
-From 43d23211dd7d22b5264ed06d446f89d632125da8 Mon Sep 17 00:00:00 2001
+From d0136f350b82ae845d56029db43d153c91d5e494 Mon Sep 17 00:00:00 2001
 From: Keshav Kini <keshav.kini@gmail.com>
 Date: Sat, 30 May 2020 21:27:47 -0700
-Subject: [PATCH 1/2] Fix some paths for Nix build
+Subject: [PATCH] Fix some paths for Nix build
 
 ---
  books/build/features.sh                       |  1 +
- .../ipasir/load-ipasir-sharedlib-raw.lsp      | 16 +++----
+ .../ipasir/load-ipasir-sharedlib-raw.lsp      |  6 +--
  books/projects/smtlink/config.lisp            |  2 +-
  books/projects/smtlink/examples/examples.lisp |  4 +-
  books/projects/smtlink/smtlink-config         |  2 +-
- .../cl+ssl-20181018-git/src/reload.lisp       | 48 ++-----------------
- .../shellpool-20150505-git/src/main.lisp      | 20 +-------
- 7 files changed, 15 insertions(+), 78 deletions(-)
+ .../cl+ssl-20200610-git/src/reload.lisp       | 53 +------------------
+ 6 files changed, 8 insertions(+), 60 deletions(-)
 
 diff --git a/books/build/features.sh b/books/build/features.sh
-index c8493d51a..def853f53 100755
+index d45a7aa61..27256b7cd 100755
 --- a/books/build/features.sh
 +++ b/books/build/features.sh
-@@ -84,6 +84,7 @@ fi
- 
+@@ -122,6 +122,7 @@ EOF
+ fi
  
  echo "Determining whether an ipasir shared library is installed" 1>&2
-+IPASIR_SHARED_LIBRARY=${IPASIR_SHARED_LIBRARY:-@libipasirglucose4@/lib/libipasirglucose4.so}
- if [[ $IPASIR_SHARED_LIBRARY != '' ]];
- then
-     if [[ -e $IPASIR_SHARED_LIBRARY ]];
++IPASIR_SHARED_LIBRARY=${IPASIR_SHARED_LIBRARY:-@libipasir@}
+ if check_ipasir; then
+     cat >> Makefile-features <<EOF
+ export OS_HAS_IPASIR ?= 1
 diff --git a/books/centaur/ipasir/load-ipasir-sharedlib-raw.lsp b/books/centaur/ipasir/load-ipasir-sharedlib-raw.lsp
-index c6b0b3185..5ac5c675a 100644
+index 762e4ad4c..c9802cb58 100644
 --- a/books/centaur/ipasir/load-ipasir-sharedlib-raw.lsp
 +++ b/books/centaur/ipasir/load-ipasir-sharedlib-raw.lsp
-@@ -28,13 +28,9 @@
- ;
- ; Original authors: Sol Swords <sswords@centtech.com>
+@@ -30,11 +30,7 @@
  
--(er-let* ((libname (acl2::getenv$ "IPASIR_SHARED_LIBRARY" acl2::*the-live-state*)))
--         (if libname
--             (handler-case 
--               (cffi::load-foreign-library libname)
--               (error () (er hard? 'load-ipasir-shardlib-raw
--                             "Couldn't load the specified ipasir shared library, ~s0."
--                             libname)))
--           (er hard? 'load-ipasir-shardlib-raw
--               "Couldn't load an ipasir library because the ~
--                IPASIR_SHARED_LIBRARY environment variable was unset.")))
-+(let ((libname "@libipasirglucose4@/lib/libipasirglucose4.so"))
-+  (handler-case
-+      (cffi::load-foreign-library libname)
-+    (error () (er hard? 'load-ipasir-shardlib-raw
-+                  "Couldn't load the specified ipasir shared library, ~s0."
-+                  libname))))
+ (er-let* ((libname (acl2::getenv$ "IPASIR_SHARED_LIBRARY" acl2::*the-live-state*)))
+   (handler-case
+-      (cffi::load-foreign-library
+-       (or libname
+-           (cw "WARNING: $IPASIR_SHARED_LIBRARY not specified, ~
+-                defaulting to \"libipasirglucose4.so\"")
+-           "libipasirglucose4.so"))
++      (cffi::load-foreign-library (or libname "@libipasir@"))
+     (error () (er hard? 'load-ipasir-shardlib-raw
+                   "Couldn't load ipasir shared library from ~s0."
+                   libname))))
 diff --git a/books/projects/smtlink/config.lisp b/books/projects/smtlink/config.lisp
 index c74073174..8d92355f7 100644
 --- a/books/projects/smtlink/config.lisp
@@ -63,7 +55,7 @@ index c74073174..8d92355f7 100644
  
  ;; -----------------------------------------------------------------
 diff --git a/books/projects/smtlink/examples/examples.lisp b/books/projects/smtlink/examples/examples.lisp
-index bc66e0165..24f0d639c 100644
+index 90534892f..4ab98b2f0 100644
 --- a/books/projects/smtlink/examples/examples.lisp
 +++ b/books/projects/smtlink/examples/examples.lisp
 @@ -75,7 +75,7 @@ Subgoal 2
@@ -91,25 +83,32 @@ index 0d2703545..0f58904ea 100644
 @@ -1 +1 @@
 -smt-cmd=/usr/bin/env python
 +smt-cmd=python
-diff --git a/books/quicklisp/bundle/software/cl+ssl-20181018-git/src/reload.lisp b/books/quicklisp/bundle/software/cl+ssl-20181018-git/src/reload.lisp
-index 3f6aa35d0..ac4012363 100644
---- a/books/quicklisp/bundle/software/cl+ssl-20181018-git/src/reload.lisp
-+++ b/books/quicklisp/bundle/software/cl+ssl-20181018-git/src/reload.lisp
-@@ -20,54 +20,12 @@
- (in-package :cl+ssl)
+diff --git a/books/quicklisp/bundle/software/cl+ssl-20200610-git/src/reload.lisp b/books/quicklisp/bundle/software/cl+ssl-20200610-git/src/reload.lisp
+index e5db28645..65eb818a1 100644
+--- a/books/quicklisp/bundle/software/cl+ssl-20200610-git/src/reload.lisp
++++ b/books/quicklisp/bundle/software/cl+ssl-20200610-git/src/reload.lisp
+@@ -37,59 +37,10 @@
+ ;; These are 32-bit only.
  
  (cffi:define-foreign-library libcrypto
+-  (:windows (:or #+(and windows x86-64) "libcrypto-1_1-x64.dll"
+-                 #+(and windows x86) "libcrypto-1_1.dll"
+-                 "libeay32.dll"))
 -  (:openbsd "libcrypto.so")
 -  (:darwin (:or "/opt/local/lib/libcrypto.dylib" ;; MacPorts
 -                "/sw/lib/libcrypto.dylib"        ;; Fink
 -                "/usr/local/opt/openssl/lib/libcrypto.dylib" ;; Homebrew
 -                "/usr/local/lib/libcrypto.dylib" ;; personalized install
 -                "libcrypto.dylib"                ;; default system libcrypto, which may have insufficient crypto
--                "/usr/lib/libcrypto.dylib")))
+-                "/usr/lib/libcrypto.dylib"))
+-  (:cygwin (:or "cygcrypto-1.1.dll" "cygcrypto-1.0.0.dll")))
 +  (t "@openssl@/lib/libcrypto.so"))
  
  (cffi:define-foreign-library libssl
--  (:windows (:or "libssl32.dll" "ssleay32.dll"))
+-  (:windows (:or #+(and windows x86-64) "libssl-1_1-x64.dll"
+-                 #+(and windows x86) "libssl-1_1.dll"
+-                 "libssl32.dll"
+-                 "ssleay32.dll"))
 -  ;; The default OS-X libssl seems have had insufficient crypto algos
 -  ;; (missing TLSv1_[1,2]_XXX methods,
 -  ;; see https://github.com/cl-plus-ssl/cl-plus-ssl/issues/56)
@@ -128,11 +127,13 @@ index 3f6aa35d0..ac4012363 100644
 -  ;; so we can just use just "libssl.so".
 -  ;; More info at https://github.com/cl-plus-ssl/cl-plus-ssl/pull/2.
 -  (:openbsd "libssl.so")
--  ((and :unix (not :cygwin)) (:or "libssl.so.1.0.2m"
+-  ((and :unix (not :cygwin)) (:or "libssl.so.1.1"
+-                                  "libssl.so.1.0.2m"
 -                                  "libssl.so.1.0.2k"
 -                                  "libssl.so.1.0.2"
 -                                  "libssl.so.1.0.1l"
 -                                  "libssl.so.1.0.1j"
+-                                  "libssl.so.1.0.1f"
 -                                  "libssl.so.1.0.1e"
 -                                  "libssl.so.1.0.1"
 -                                  "libssl.so.1.0.0q"
@@ -142,49 +143,12 @@ index 3f6aa35d0..ac4012363 100644
 -                                  "libssl.so.10"
 -                                  "libssl.so.4"
 -                                  "libssl.so"))
--  (:cygwin "cygssl-1.0.0.dll")
+-  (:cygwin (:or "cygssl-1.1.dll" "cygssl-1.0.0.dll"))
 -  (t (:default "libssl3")))
--
--(cffi:define-foreign-library libeay32
--  (:windows "libeay32.dll"))
 +  (t "@openssl@/lib/libssl.so"))
  
-+(cffi:define-foreign-library libeay32)
- 
  (unless (member :cl+ssl-foreign-libs-already-loaded
                  *features*)
-diff --git a/books/quicklisp/bundle/software/shellpool-20150505-git/src/main.lisp b/books/quicklisp/bundle/software/shellpool-20150505-git/src/main.lisp
-index cda8dc94c..11035ea09 100644
---- a/books/quicklisp/bundle/software/shellpool-20150505-git/src/main.lisp
-+++ b/books/quicklisp/bundle/software/shellpool-20150505-git/src/main.lisp
-@@ -106,26 +106,8 @@
- ; Glue
- 
- 
--#-sbcl
- (defun find-bash ()
--  #+windows "bash.exe"
--  #-windows "bash")
--
--#+sbcl
--;; SBCL (on Linux, at least) won't successfully run "bash" all by itself.  So,
--;; on SBCL, try to find a likely bash.  BOZO this probably isn't great.  It
--;; would be better to search the user's PATH for which bash to use.
--(let ((found-bash))
--  (defun find-bash ()
--    (or found-bash
--        (let ((paths-to-try '("/bin/bash"
--                              "/usr/bin/bash"
--                              "/usr/local/bin/bash")))
--          (loop for path in paths-to-try do
--                (when (cl-fad::file-exists-p path)
--                  (setq found-bash path)
--                  (return-from find-bash path)))
--          (error "Bash not found among ~s" paths-to-try)))))
-+  "@bash@/bin/bash")
- 
- #+(or allegro lispworks)
- (defstruct bashprocess
 -- 
-2.25.4
+2.31.1
 
diff --git a/nixpkgs/pkgs/development/interpreters/acl2/0002-Restrict-RDTSC-to-x86.patch b/nixpkgs/pkgs/development/interpreters/acl2/0002-Restrict-RDTSC-to-x86.patch
deleted file mode 100644
index 74af5adef649..000000000000
--- a/nixpkgs/pkgs/development/interpreters/acl2/0002-Restrict-RDTSC-to-x86.patch
+++ /dev/null
@@ -1,29 +0,0 @@
-From b0ccf68f277d0bd5e6fc9d41742f31ddda99a955 Mon Sep 17 00:00:00 2001
-From: Keshav Kini <keshav.kini@gmail.com>
-Date: Mon, 1 Jun 2020 21:42:24 -0700
-Subject: [PATCH 2/2] Restrict RDTSC to x86
-
-Backported from [1].  According to Curtis Dunham, this should fix the ACL2 base
-system build on ARM.
-
-[1]: https://github.com/acl2/acl2/commit/292fa2ccc6217e6307d7bb8373eb90f5d258ea5e
----
- memoize-raw.lisp | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/memoize-raw.lisp b/memoize-raw.lisp
-index 205e78653..478198dee 100644
---- a/memoize-raw.lisp
-+++ b/memoize-raw.lisp
-@@ -189,7 +189,7 @@
- ;; RDTSC nonsense, but we still can report mysterious results since we have no
- ;; clue about which core we are running on in CCL (or, presumably, SBCL).
- 
--#+(or ccl sbcl)
-+#+(and (or ccl sbcl) x86-64)
- (eval-when
-  (:execute :compile-toplevel :load-toplevel)
-  (when #+ccl (fboundp 'ccl::rdtsc)
--- 
-2.25.4
-
diff --git a/nixpkgs/pkgs/development/interpreters/acl2/default.nix b/nixpkgs/pkgs/development/interpreters/acl2/default.nix
index c089916158bd..9436cf58e427 100644
--- a/nixpkgs/pkgs/development/interpreters/acl2/default.nix
+++ b/nixpkgs/pkgs/development/interpreters/acl2/default.nix
@@ -1,50 +1,53 @@
-{ lib, stdenv, callPackage, fetchFromGitHub, writeShellScriptBin, substituteAll
+{ lib, stdenv, callPackage, fetchFromGitHub, runCommandLocal, makeWrapper, substituteAll
 , sbcl, bash, which, perl, nettools
-, openssl, glucose, minisat, abc-verifier, z3, python2
+, openssl, glucose, minisat, abc-verifier, z3, python
 , certifyBooks ? true
 } @ args:
 
 let
-  # Disable immobile space so we don't run out of memory on large books; see
+  # Disable immobile space so we don't run out of memory on large books, and
+  # supply 2GB of dynamic space to avoid exhausting the heap while building the
+  # ACL2 system itself; see
   # https://www.cs.utexas.edu/users/moore/acl2/current/HTML/installation/requirements.html#Obtaining-SBCL
-  sbcl = args.sbcl.override { disableImmobileSpace = true; };
-
-  # Wrap to add `-model` argument because some of the books in 8.3 need this.
-  # Fixed upstream (https://github.com/acl2/acl2/commit/0359538a), so this can
-  # be removed in ACL2 8.4.
-  glucose = writeShellScriptBin "glucose" ''exec ${args.glucose}/bin/glucose -model "$@"'';
+  sbcl' = args.sbcl.override { disableImmobileSpace = true; };
+  sbcl = runCommandLocal args.sbcl.name { buildInputs = [ makeWrapper ]; } ''
+    makeWrapper ${sbcl'}/bin/sbcl $out/bin/sbcl \
+      --add-flags "--dynamic-space-size 2000"
+  '';
 
 in stdenv.mkDerivation rec {
   pname = "acl2";
-  version = "8.3";
+  version = "8.4";
 
   src = fetchFromGitHub {
     owner = "acl2-devel";
     repo = "acl2-devel";
     rev = version;
-    sha256 = "0c0wimaf16nrr3d6cxq6p7nr7rxffvpmn66hkpwc1m6zpcipf0y5";
+    sha256 = "16rr9zqmd3y1sd6zxff2f9gdd84l99pr7mdp1sjwmh427h661c68";
   };
 
-  libipasirglucose4 = callPackage ./libipasirglucose4 { };
+  # You can swap this out with any other IPASIR implementation at
+  # build time by using overrideAttrs (make sure the derivation you
+  # use has a "libname" attribute so we can plug it into the patch
+  # below).  Or, you can override it at runtime by setting the
+  # $IPASIR_SHARED_LIBRARY environment variable.
+  libipasir = callPackage ./libipasirglucose4 { };
 
-  patches = [
-    (substituteAll {
-      src = ./0001-Fix-some-paths-for-Nix-build.patch;
-      inherit bash libipasirglucose4;
-      openssl = openssl.out;
-    })
-    ./0002-Restrict-RDTSC-to-x86.patch
-  ];
+  patches = [(substituteAll {
+    src = ./0001-Fix-some-paths-for-Nix-build.patch;
+    libipasir = "${libipasir}/lib/${libipasir.libname}";
+    openssl = openssl.out;
+  })];
 
   buildInputs = [
     # ACL2 itself only needs a Common Lisp compiler/interpreter:
     sbcl
   ] ++ lib.optionals certifyBooks [
     # To build community books, we need Perl and a couple of utilities:
-    which perl nettools
+    which perl nettools makeWrapper
     # Some of the books require one or more of these external tools:
-    openssl.out glucose minisat abc-verifier libipasirglucose4
-    z3 (python2.withPackages (ps: [ ps.z3 ]))
+    openssl.out glucose minisat abc-verifier libipasir
+    z3 (python.withPackages (ps: [ ps.z3 ]))
   ];
 
   # NOTE: Parallel building can be memory-intensive depending on the number of
@@ -71,7 +74,7 @@ in stdenv.mkDerivation rec {
   '';
 
   preBuild = "mkdir -p $HOME";
-  makeFlags="LISP=${sbcl}/bin/sbcl";
+  makeFlags = "LISP=${sbcl}/bin/sbcl ACL2_MAKE_LOG=NONE";
 
   doCheck = true;
   checkTarget = "mini-proveall";
@@ -90,8 +93,13 @@ in stdenv.mkDerivation rec {
     # Certify the community books
     pushd $out/share/${pname}/books
     makeFlags="ACL2=$out/share/${pname}/saved_acl2"
-    buildFlags="everything"
+    buildFlags="all"
     buildPhase
+
+    # Clean up some stuff to save space
+    find -name '*@useless-runes.lsp' -execdir rm {} +  # saves ~1GB of space
+    find -name '*.cert.out' -execdir gzip {} +         # saves ~400MB of space
+
     popd
   '';
 
diff --git a/nixpkgs/pkgs/development/interpreters/acl2/libipasirglucose4/default.nix b/nixpkgs/pkgs/development/interpreters/acl2/libipasirglucose4/default.nix
index 5c10c176c14a..dc8308267f40 100644
--- a/nixpkgs/pkgs/development/interpreters/acl2/libipasirglucose4/default.nix
+++ b/nixpkgs/pkgs/development/interpreters/acl2/libipasirglucose4/default.nix
@@ -1,17 +1,14 @@
 { lib, stdenv, fetchurl, zlib, unzip }:
 
-let
-
-  cxx = "${stdenv.cc.targetPrefix}c++";
-  libName = "libipasirglucose4" + stdenv.targetPlatform.extensions.sharedLibrary;
-
-in stdenv.mkDerivation rec {
+stdenv.mkDerivation rec {
   pname = "libipasirglucose4";
   # This library has no version number AFAICT (beyond generally being based on
   # Glucose 4.x), but it was submitted to the 2017 SAT competition so let's use
   # that as the version number, I guess.
   version = "2017";
 
+  libname = pname + stdenv.targetPlatform.extensions.sharedLibrary;
+
   src = fetchurl {
     url = "https://baldur.iti.kit.edu/sat-competition-2017/solvers/incremental/glucose-ipasir.zip";
     sha256 = "0xchgady9vwdh8frmc8swz6va53igp2wj1y9sshd0g7549n87wdj";
@@ -23,16 +20,16 @@ in stdenv.mkDerivation rec {
   sourceRoot = "sat/glucose4";
   patches = [ ./0001-Support-shared-library-build.patch ];
 
-  makeFlags = [ "CXX=${cxx}" ];
+  makeFlags = [ "CXX=${stdenv.cc.targetPrefix}c++" ];
 
   postBuild = ''
-    ${cxx} -shared -o ${libName} \
-        ${if stdenv.cc.isClang then "" else "-Wl,-soname,${libName}"} \
+    $CXX -shared -o ${libname} \
+        ${if stdenv.cc.isClang then "" else "-Wl,-soname,${libname}"} \
         ipasirglucoseglue.o libipasirglucose4.a
   '';
 
   installPhase = ''
-    install -D ${libName} $out/lib/${libName}
+    install -D ${libname} $out/lib/${libname}
   '';
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/development/interpreters/bic/default.nix b/nixpkgs/pkgs/development/interpreters/bic/default.nix
new file mode 100644
index 000000000000..c27270f7a95e
--- /dev/null
+++ b/nixpkgs/pkgs/development/interpreters/bic/default.nix
@@ -0,0 +1,42 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, readline
+, autoreconfHook
+, autoconf-archive
+, gmp
+, flex
+, bison
+}:
+
+stdenv.mkDerivation rec {
+  pname = "bic";
+  version = "1.0.0";
+
+  src = fetchFromGitHub {
+    owner = "hexagonal-sun";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "1ws46h1ngzk14dspmsggj9535yl04v9wh8v4gb234n34rdkdsyyw";
+  };
+
+  buildInputs = [ readline gmp ];
+  nativeBuildInputs = [
+    autoreconfHook
+    autoconf-archive
+    bison
+    flex
+  ];
+
+  meta = with lib; {
+    description = "A C interpreter and API explorer";
+    longDescription = ''
+      bic This a project that allows developers to explore and test C-APIs using a
+      read eval print loop, also known as a REPL.
+    '';
+    license = with licenses; [ gpl2Plus ];
+    homepage = "https://github.com/hexagonal-sun/bic";
+    platforms = platforms.unix;
+    maintainers = with maintainers; [ hexagonal-sun ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/interpreters/ceptre/default.nix b/nixpkgs/pkgs/development/interpreters/ceptre/default.nix
index c3fa6a645e07..56d37dd4e947 100644
--- a/nixpkgs/pkgs/development/interpreters/ceptre/default.nix
+++ b/nixpkgs/pkgs/development/interpreters/ceptre/default.nix
@@ -1,7 +1,8 @@
 { lib, stdenv, fetchgit, mlton }:
 
 stdenv.mkDerivation {
-  name = "ceptre-2016-11-27";
+  pname = "ceptre";
+  version = "unstable-2016-11-27";
 
   src = fetchgit {
     url = "https://github.com/chrisamaphone/interactive-lp";
diff --git a/nixpkgs/pkgs/development/interpreters/cling/default.nix b/nixpkgs/pkgs/development/interpreters/cling/default.nix
index 73ed5b523dde..968817cf067a 100644
--- a/nixpkgs/pkgs/development/interpreters/cling/default.nix
+++ b/nixpkgs/pkgs/development/interpreters/cling/default.nix
@@ -7,7 +7,6 @@
 , fetchgit
 , makeWrapper
 , runCommand
-, runCommandNoCC
 , llvmPackages_5
 , glibc
 , ncurses
@@ -85,7 +84,7 @@ let
   # https://github.com/root-project/cling/blob/v0.7/lib/Interpreter/CIFactory.cpp#L107:L111
   # Note: it would be nice to just put the compiler in Cling's PATH and let it do this by itself, but
   # unfortunately passing -nostdinc/-nostdinc++ disables Cling's autodetection logic.
-  compilerIncludeFlags = runCommandNoCC "compiler-include-flags.txt" {} ''
+  compilerIncludeFlags = runCommand "compiler-include-flags.txt" {} ''
     export LC_ALL=C
     ${stdenv.cc}/bin/c++ -xc++ -E -v /dev/null 2>&1 | sed -n -e '/^.include/,''${' -e '/^ \/.*++/p' -e '}' > tmp
     sed -e 's/^/-isystem /' -i tmp
diff --git a/nixpkgs/pkgs/development/interpreters/clojure/babashka.nix b/nixpkgs/pkgs/development/interpreters/clojure/babashka.nix
index 58ed4c689b14..e8a1bfeb1909 100644
--- a/nixpkgs/pkgs/development/interpreters/clojure/babashka.nix
+++ b/nixpkgs/pkgs/development/interpreters/clojure/babashka.nix
@@ -2,17 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "babashka";
-  version = "0.4.5";
-
-  reflectionJson = fetchurl {
-    name = "reflection.json";
-    url = "https://github.com/babashka/${pname}/releases/download/v${version}/${pname}-${version}-reflection.json";
-    sha256 = "sha256-TVFdGFXclJE9GpolKzTGSmeianBdb2Yp3kbNUWlddPw=";
-  };
+  version = "0.6.0";
 
   src = fetchurl {
     url = "https://github.com/babashka/${pname}/releases/download/v${version}/${pname}-${version}-standalone.jar";
-    sha256 = "sha256-SnKs30c6VTp1yzW2Glooi6ghSUIZgF6nsob1hDljTA8=";
+    sha256 = "sha256-W7zcTs0nTw1ed04ev7WKAMyBd/2n4Mezo5kh0sHFyyc=";
   };
 
   dontUnpack = true;
@@ -27,41 +21,18 @@ stdenv.mkDerivation rec {
   buildPhase = ''
     runHook preBuild
 
-    # https://github.com/babashka/babashka/blob/77daea7362d8e2562c89c315b1fbcefde6fa56a5/script/compile
+    # https://github.com/babashka/babashka/blob/v0.6.0/script/compile#L41-L52
     args=("-jar" "$BABASHKA_JAR"
           "-H:Name=$BABASHKA_BINARY"
-          "${lib.optionalString stdenv.isDarwin ''-H:-CheckToolchain''}"
           "-H:+ReportExceptionStackTraces"
-          "-J-Dclojure.spec.skip-macros=true"
-          "-J-Dclojure.compiler.direct-linking=true"
-          "-H:IncludeResources=BABASHKA_VERSION"
-          "-H:IncludeResources=SCI_VERSION"
-          "-H:ReflectionConfigurationFiles=${reflectionJson}"
-          "--initialize-at-build-time"
           # "-H:+PrintAnalysisCallTree"
           # "-H:+DashboardAll"
           # "-H:DashboardDump=reports/dump"
           # "-H:+DashboardPretty"
           # "-H:+DashboardJson"
-          "-H:Log=registerResource:"
-          "-H:EnableURLProtocols=http,https,jar"
-          "--enable-all-security-services"
-          "-H:+JNI"
           "--verbose"
           "--no-fallback"
-          "--no-server"
-          "--report-unsupported-elements-at-runtime"
-          "--initialize-at-run-time=org.postgresql.sspi.SSPIClient"
           "--native-image-info"
-          "--verbose"
-          "-H:ServiceLoaderFeatureExcludeServices=javax.sound.sampled.spi.AudioFileReader"
-          "-H:ServiceLoaderFeatureExcludeServices=javax.sound.midi.spi.MidiFileReader"
-          "-H:ServiceLoaderFeatureExcludeServices=javax.sound.sampled.spi.MixerProvider"
-          "-H:ServiceLoaderFeatureExcludeServices=javax.sound.sampled.spi.FormatConversionProvider"
-          "-H:ServiceLoaderFeatureExcludeServices=javax.sound.sampled.spi.AudioFileWriter"
-          "-H:ServiceLoaderFeatureExcludeServices=javax.sound.midi.spi.MidiDeviceProvider"
-          "-H:ServiceLoaderFeatureExcludeServices=javax.sound.midi.spi.SoundbankReader"
-          "-H:ServiceLoaderFeatureExcludeServices=javax.sound.midi.spi.MidiFileWriter"
           "$BABASHKA_XMX")
 
      native-image ''${args[@]}
@@ -111,6 +82,7 @@ stdenv.mkDerivation rec {
     - Library support via popular tools like the clojure CLI
     '';
     homepage = "https://github.com/babashka/babashka";
+    changelog = "https://github.com/babashka/babashka/blob/v${version}/CHANGELOG.md";
     license = licenses.epl10;
     platforms = graalvm11-ce.meta.platforms;
     maintainers = with maintainers; [
diff --git a/nixpkgs/pkgs/development/interpreters/clojure/default.nix b/nixpkgs/pkgs/development/interpreters/clojure/default.nix
index 9ae94f0a2487..659f9b87e619 100644
--- a/nixpkgs/pkgs/development/interpreters/clojure/default.nix
+++ b/nixpkgs/pkgs/development/interpreters/clojure/default.nix
@@ -2,12 +2,12 @@
 
 stdenv.mkDerivation rec {
   pname = "clojure";
-  version = "1.10.3.855";
+  version = "1.10.3.943";
 
   src = fetchurl {
     # https://clojure.org/releases/tools
     url = "https://download.clojure.org/install/clojure-tools-${version}.tar.gz";
-    sha256 = "sha256-y2PuOBRq5kZlTpPV8NwkWhspQKlNxwjl+k/Drwixk4Q=";
+    sha256 = "sha256-w3DRvZsie22uoJMrNQTxN5hW0pIFjH5zAw5Z41I1M/s=";
   };
 
   nativeBuildInputs = [
@@ -29,6 +29,7 @@ stdenv.mkDerivation rec {
       echo "Installing libs into $clojure_lib_dir"
       install -Dm644 deps.edn "$clojure_lib_dir/deps.edn"
       install -Dm644 example-deps.edn "$clojure_lib_dir/example-deps.edn"
+      install -Dm644 tools.edn "$clojure_lib_dir/tools.edn"
       install -Dm644 exec.jar "$clojure_lib_dir/libexec/exec.jar"
       install -Dm644 clojure-tools-${version}.jar "$clojure_lib_dir/libexec/clojure-tools-${version}.jar"
 
@@ -48,7 +49,7 @@ stdenv.mkDerivation rec {
 
   doInstallCheck = true;
   installCheckPhase = ''
-    CLJ_CONFIG=$out CLJ_CACHE=$out/libexec $out/bin/clojure \
+    CLJ_CONFIG=$TMPDIR CLJ_CACHE=$TMPDIR/.clj_cache $out/bin/clojure \
       -Spath \
       -Sverbose \
       -Scp $out/libexec/clojure-tools-${version}.jar
diff --git a/nixpkgs/pkgs/development/interpreters/elixir/1.12.nix b/nixpkgs/pkgs/development/interpreters/elixir/1.12.nix
index cd5246d989d1..4b631098fe19 100644
--- a/nixpkgs/pkgs/development/interpreters/elixir/1.12.nix
+++ b/nixpkgs/pkgs/development/interpreters/elixir/1.12.nix
@@ -3,7 +3,7 @@
 # How to obtain `sha256`:
 # nix-prefetch-url --unpack https://github.com/elixir-lang/elixir/archive/v${version}.tar.gz
 mkDerivation {
-  version = "1.12.1";
-  sha256 = "sha256-gRgGXb4btMriQwT/pRIYOJt+NM7rtYBd+A3SKfowC7k=";
+  version = "1.12.2";
+  sha256 = "sha256-PQkvBaQQljATt+LA3hWJOFyQessqqR1t6o1J2LHllec=";
   minimumOTPVersion = "22";
 }
diff --git a/nixpkgs/pkgs/development/interpreters/erlang/R23.nix b/nixpkgs/pkgs/development/interpreters/erlang/R23.nix
index 9e344adc15a3..3d0a2b160065 100644
--- a/nixpkgs/pkgs/development/interpreters/erlang/R23.nix
+++ b/nixpkgs/pkgs/development/interpreters/erlang/R23.nix
@@ -3,6 +3,6 @@
 # How to obtain `sha256`:
 # nix-prefetch-url --unpack https://github.com/erlang/otp/archive/OTP-${version}.tar.gz
 mkDerivation {
-  version = "23.3.4.4";
-  sha256 = "dnoSGfBUZrgcnNQNAoqmVOxK/NQlt1DC187sxg7mPq8=";
+  version = "23.3.4.5";
+  sha256 = "2u/w8IPKHEZ+rZ3T7Wn9+Ggxe6JY8cHz8q/N0RjbrNU=";
 }
diff --git a/nixpkgs/pkgs/development/interpreters/erlang/R24.nix b/nixpkgs/pkgs/development/interpreters/erlang/R24.nix
index 7f4b49c5c322..162af7c02b9b 100644
--- a/nixpkgs/pkgs/development/interpreters/erlang/R24.nix
+++ b/nixpkgs/pkgs/development/interpreters/erlang/R24.nix
@@ -3,6 +3,6 @@
 # How to obtain `sha256`:
 # nix-prefetch-url --unpack https://github.com/erlang/otp/archive/OTP-${version}.tar.gz
 mkDerivation {
-  version = "24.0.3";
-  sha256 = "KVMISrWNBkk+w37gB4M5TQkgm4odZ+GqLvKN4stzOUI=";
+  version = "24.0.6";
+  sha256 = "0z01hkzf2y6lz20s2vkn4q874lb6n6j00jkbgk4gg60rhrmq904z";
 }
diff --git a/nixpkgs/pkgs/development/interpreters/evcxr/default.nix b/nixpkgs/pkgs/development/interpreters/evcxr/default.nix
index 7dabff3d2e5e..81200a94aae9 100644
--- a/nixpkgs/pkgs/development/interpreters/evcxr/default.nix
+++ b/nixpkgs/pkgs/development/interpreters/evcxr/default.nix
@@ -3,16 +3,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "evcxr";
-  version = "0.10.0";
+  version = "0.11.0";
 
   src = fetchFromGitHub {
     owner = "google";
     repo = "evcxr";
     rev = "v${version}";
-    sha256 = "sha256-EPxWLPw+V5eIm+eL8m8Xw14adgshthJSDRyWohsJH88=";
+    sha256 = "sha256-JziLEsY6kF5UeDt17q/HDrTlNtHj7DWy1tTq3s2eZHE=";
   };
 
-  cargoSha256 = "sha256-5jGrv0YRVMo2X9p/WPgjYV3z193hl2+NiFTZr3v0Iik=";
+  cargoSha256 = "sha256-I164eXgc/yiKKskloh6FGYD3bLCLWXaM6uWa01PRDXs=";
 
   RUST_SRC_PATH = "${rustPlatform.rustLibSrc}";
 
diff --git a/nixpkgs/pkgs/development/interpreters/io/default.nix b/nixpkgs/pkgs/development/interpreters/io/default.nix
index 48462a333bcb..9f6ecb2516ed 100644
--- a/nixpkgs/pkgs/development/interpreters/io/default.nix
+++ b/nixpkgs/pkgs/development/interpreters/io/default.nix
@@ -59,7 +59,7 @@ stdenv.mkDerivation {
 
   meta = with lib; {
     description = "Io programming language";
-    homepage = "http://iolanguage.org/";
+    homepage = "https://iolanguage.org/";
     license = licenses.bsd3;
 
     maintainers = with maintainers; [
diff --git a/nixpkgs/pkgs/development/interpreters/joker/default.nix b/nixpkgs/pkgs/development/interpreters/joker/default.nix
index 8a2130050bfa..652e828eb5f4 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.17.1";
+  version = "0.17.2";
 
   src = fetchFromGitHub {
     rev = "v${version}";
     owner = "candid82";
     repo = "joker";
-    sha256 = "sha256-3OimYXcQ3KPav44sClbC60220/YK4Jhq+l5UfRFYoJI=";
+    sha256 = "sha256-rboyRancRTyrSY+13Blrz7OsIzclDS4X4hkHGD6cpyk=";
   };
 
   vendorSha256 = "sha256-AYoespfzFLP/jIIxbw5K653wc7sSfLY8K7di8GZ64wA=";
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 74f5b2b7b395..5639b2a4bb90 100644
--- a/nixpkgs/pkgs/development/interpreters/lua-5/build-lua-package.nix
+++ b/nixpkgs/pkgs/development/interpreters/lua-5/build-lua-package.nix
@@ -7,8 +7,7 @@
 }:
 
 {
-name ? "${attrs.pname}-${attrs.version}"
-
+pname
 , version
 
 # by default prefix `name` e.g. "lua5.2-${name}"
@@ -60,7 +59,9 @@ name ? "${attrs.pname}-${attrs.version}"
 # The two above arguments have access to builder variables -- e.g. to $out
 
 # relative to srcRoot, path to the rockspec to use when using rocks
-, rockspecFilename ?  "../*.rockspec"
+, rockspecFilename ? null
+# relative to srcRoot, path to folder that contains the expected rockspec
+, rockspecDir ?  "."
 
 # must be set for packages that don't have a rock
 , knownRockspec ? null
@@ -71,6 +72,9 @@ name ? "${attrs.pname}-${attrs.version}"
 # Keep extra attributes from `attrs`, e.g., `patchPhase', etc.
 
 let
+  generatedRockspecFilename = "${rockspecDir}/${pname}-${version}.rockspec";
+
+
   # TODO fix warnings "Couldn't load rockspec for ..." during manifest
   # construction -- from initial investigation, appears it will require
   # upstream luarocks changes to fix cleanly (during manifest construction,
@@ -144,7 +148,7 @@ in
 toLuaModule ( lua.stdenv.mkDerivation (
 builtins.removeAttrs attrs ["disabled" "checkInputs" "externalDeps" "extraVariables"] // {
 
-  name = namePrefix + name;
+  name = namePrefix + pname + "-" + version;
 
   buildInputs = [ wrapLua lua.pkgs.luarocks ]
     ++ buildInputs
@@ -159,20 +163,8 @@ builtins.removeAttrs attrs ["disabled" "checkInputs" "externalDeps" "extraVariab
   # @-patterns do not capture formal argument default values, so we need to
   # explicitly inherit this for it to be available as a shell variable in the
   # builder
-  inherit rockspecFilename;
   inherit rocksSubdir;
 
-  # enabled only for src.rock
-  setSourceRoot= let
-    name_only= lib.getName name;
-  in
-    lib.optionalString (knownRockspec == null) ''
-    # format is rockspec_basename/source_basename
-    # rockspec can set it via spec.source.dir
-    folder=$(find . -mindepth 2 -maxdepth 2 -type d -path '*${name_only}*/*'|head -n1)
-    sourceRoot="$folder"
-  '';
-
   configurePhase = ''
     runHook preConfigure
 
@@ -181,6 +173,9 @@ builtins.removeAttrs attrs ["disabled" "checkInputs" "externalDeps" "extraVariab
     EOF
     export LUAROCKS_CONFIG="$PWD/${luarocks_config}";
   ''
+  + lib.optionalString (rockspecFilename == null) ''
+    rockspecFilename="${generatedRockspecFilename}"
+  ''
   + lib.optionalString (knownRockspec != null) ''
 
     # prevents the following type of error:
@@ -192,6 +187,7 @@ builtins.removeAttrs attrs ["disabled" "checkInputs" "externalDeps" "extraVariab
     runHook postConfigure
   '';
 
+  # TODO could be moved to configurePhase
   buildPhase = ''
     runHook preBuild
 
diff --git a/nixpkgs/pkgs/development/interpreters/lua-5/default.nix b/nixpkgs/pkgs/development/interpreters/lua-5/default.nix
index 3e36f77dab43..f2b2961c4c77 100644
--- a/nixpkgs/pkgs/development/interpreters/lua-5/default.nix
+++ b/nixpkgs/pkgs/development/interpreters/lua-5/default.nix
@@ -54,4 +54,9 @@ rec {
     inherit callPackage;
   };
 
+  luajit_openresty = import ../luajit/openresty.nix {
+    self = luajit_openresty;
+    inherit callPackage;
+  };
+
 }
diff --git a/nixpkgs/pkgs/development/interpreters/luajit/2.0.nix b/nixpkgs/pkgs/development/interpreters/luajit/2.0.nix
index 153b11aaa5fc..ceb796f0433e 100644
--- a/nixpkgs/pkgs/development/interpreters/luajit/2.0.nix
+++ b/nixpkgs/pkgs/development/interpreters/luajit/2.0.nix
@@ -1,6 +1,8 @@
 { self, callPackage, lib }:
 callPackage ./default.nix {
   inherit self;
+  owner = "LuaJIT";
+  repo = "LuaJIT";
   version = "2.0.5-2021-06-08";
   rev = "98f95f69180d48ce49289d6428b46a9ccdd67a46";
   isStable = true;
diff --git a/nixpkgs/pkgs/development/interpreters/luajit/2.1.nix b/nixpkgs/pkgs/development/interpreters/luajit/2.1.nix
index d11514c07c62..87976a45dfe1 100644
--- a/nixpkgs/pkgs/development/interpreters/luajit/2.1.nix
+++ b/nixpkgs/pkgs/development/interpreters/luajit/2.1.nix
@@ -1,6 +1,8 @@
 { self, callPackage }:
 callPackage ./default.nix {
   inherit self;
+  owner = "LuaJIT";
+  repo = "LuaJIT";
   version = "2.1.0-2021-06-25";
   rev = "e957737650e060d5bf1c2909b741cc3dffe073ac";
   isStable = false;
diff --git a/nixpkgs/pkgs/development/interpreters/luajit/default.nix b/nixpkgs/pkgs/development/interpreters/luajit/default.nix
index 860642b0fd2f..728161598282 100644
--- a/nixpkgs/pkgs/development/interpreters/luajit/default.nix
+++ b/nixpkgs/pkgs/development/interpreters/luajit/default.nix
@@ -1,6 +1,8 @@
 { lib, stdenv, fetchFromGitHub, buildPackages
 , name ? "luajit-${version}"
 , isStable
+, owner
+, repo
 , sha256
 , rev
 , version
@@ -41,9 +43,7 @@ in
 stdenv.mkDerivation rec {
   inherit name version;
   src = fetchFromGitHub {
-    owner  = "LuaJIT";
-    repo   = "LuaJIT";
-    inherit sha256 rev;
+    inherit owner repo sha256 rev;
   };
 
   luaversion = "5.1";
diff --git a/nixpkgs/pkgs/development/interpreters/luajit/openresty.nix b/nixpkgs/pkgs/development/interpreters/luajit/openresty.nix
new file mode 100644
index 000000000000..78e06f46f1d0
--- /dev/null
+++ b/nixpkgs/pkgs/development/interpreters/luajit/openresty.nix
@@ -0,0 +1,10 @@
+{ self, callPackage }:
+callPackage ./default.nix rec {
+  inherit self;
+  owner = "openresty";
+  repo = "luajit2";
+  version = "2.1-20210510";
+  rev = "v${version}";
+  isStable = true;
+  sha256 = "1h21w5axwka2j9jb86yc69qrprcavccyr2qihiw4b76r1zxzalvd";
+}
diff --git a/nixpkgs/pkgs/development/interpreters/octave/default.nix b/nixpkgs/pkgs/development/interpreters/octave/default.nix
index 0a87c1ddcf07..e8228d23b0c9 100644
--- a/nixpkgs/pkgs/development/interpreters/octave/default.nix
+++ b/nixpkgs/pkgs/development/interpreters/octave/default.nix
@@ -184,6 +184,14 @@ let
 
     enableParallelBuilding = true;
 
+    # Fix linker error on Darwin (see https://trac.macports.org/ticket/61865)
+    NIX_LDFLAGS = lib.optionalString stdenv.isDarwin "-lobjc";
+
+    # Avoid Qt 5.12 problem on Big Sur: https://bugreports.qt.io/browse/QTBUG-87014
+    qtWrapperArgs = lib.optionals stdenv.isDarwin [
+      "--set QT_MAC_WANTS_LAYER 1"
+    ];
+
     # See https://savannah.gnu.org/bugs/?50339
     F77_INTEGER_8_FLAG = if use64BitIdx then "-fdefault-integer-8" else "";
 
diff --git a/nixpkgs/pkgs/development/interpreters/perl/default.nix b/nixpkgs/pkgs/development/interpreters/perl/default.nix
index 3b39974c16b1..54b7e9afefd4 100644
--- a/nixpkgs/pkgs/development/interpreters/perl/default.nix
+++ b/nixpkgs/pkgs/development/interpreters/perl/default.nix
@@ -168,14 +168,14 @@ let
       priority = 6; # in `buildEnv' (including the one inside `perl.withPackages') the library files will have priority over files in `perl`
     };
   } // optionalAttrs (stdenv.buildPlatform != stdenv.hostPlatform) rec {
-    crossVersion = "1.3.6";
+    crossVersion = "01c176ac0f57d40cc3b6f8e441062780f073d952"; # Aug 22, 2021
 
     perl-cross-src = fetchFromGitHub {
       name = "perl-cross-${crossVersion}";
       owner = "arsv";
       repo = "perl-cross";
       rev = crossVersion;
-      sha256 = "0k5vyj40czbkfl7r3dcwxpc7dvdlp2xliaav358bviq3dq9vq9bb";
+      sha256 = "19mwr1snwl4156rlhn74kmpl1wyc7ahhlrjfpnfcj3n63ic0c56y";
     };
 
     depsBuildBuild = [ buildPackages.stdenv.cc makeWrapper ];
@@ -212,7 +212,7 @@ in {
   perldevel = common {
     perl = pkgs.perldevel;
     buildPerl = buildPackages.perldevel;
-    version = "5.35.0";
-    sha256 = "0217nbswhkjhw60kng2p64611xna7za681kk30fkriyicd3yph6n";
+    version = "5.35.3";
+    sha256 = "06442zc5rvisl120f58jpy95bkf8f1cc4n577nzihdavlbfmnyyn";
   };
 }
diff --git a/nixpkgs/pkgs/development/interpreters/pixie/dust.nix b/nixpkgs/pkgs/development/interpreters/pixie/dust.nix
index e6818cb03ed2..bbe9ae3dcc4b 100644
--- a/nixpkgs/pkgs/development/interpreters/pixie/dust.nix
+++ b/nixpkgs/pkgs/development/interpreters/pixie/dust.nix
@@ -1,35 +1,43 @@
 { lib, stdenv, pixie, fetchFromGitHub }:
 
 stdenv.mkDerivation rec {
-  name = "dust-0-91";
+  pname = "dust";
+  version = "0-91";
+
   src = fetchFromGitHub {
     owner = "pixie-lang";
     repo = "dust";
     rev = "efe469661e749a71e86858fd006f61464810575a";
     sha256 = "09n57b6haxwask9m8vimv42ikczf7lgfc7m9izjrcqgs0padvfzc";
   };
+
   buildInputs = [ pixie ];
+
   patches = [ ./make-paths-configurable.patch ];
+
   configurePhase = ''
     pixiePath="${pixie}/bin/pixie-vm" \
     basePath="$out/share/dust" \
       substituteAll dust.in dust
     chmod +x dust
   '';
-# FIXME: AOT for dust
-#  buildPhase = ''
-#    find . -name "*.pxi" -exec pixie-vm -c {} \;
-#  '';
+
+  # FIXME: AOT for dust
+  #  buildPhase = ''
+  #    find . -name "*.pxi" -exec pixie-vm -c {} \;
+  #  '';
+
   installPhase = ''
     mkdir -p $out/bin $out/share/dust
     cp -a src/ run.pxi $out/share/dust
     mv dust $out/bin/dust
   '';
 
-  meta = {
+  meta = with lib; {
     description = "Provides tooling around pixie, e.g. a nicer repl, running tests and fetching dependencies";
     homepage = src.meta.homepage;
-    license = lib.licenses.lgpl3;
-    platforms = lib.platforms.linux ++ lib.platforms.darwin;
+    maintainers = with maintainers; [ ];
+    license = licenses.lgpl3;
+    platforms = platforms.unix;
   };
 }
diff --git a/nixpkgs/pkgs/development/interpreters/python/cpython/default.nix b/nixpkgs/pkgs/development/interpreters/python/cpython/default.nix
index f52255f4748b..5b5060b58842 100644
--- a/nixpkgs/pkgs/development/interpreters/python/cpython/default.nix
+++ b/nixpkgs/pkgs/development/interpreters/python/cpython/default.nix
@@ -45,7 +45,9 @@
 # enableLTO is a subset of the enableOptimizations flag that doesn't harm reproducibility.
 # enabling LTO on 32bit arch causes downstream packages to fail when linking
 # enabling LTO on *-darwin causes python3 to fail when linking.
-, enableLTO ? stdenv.is64bit && stdenv.isLinux
+# enabling LTO with musl and dynamic linking fails with a linker error although it should
+# be possible as alpine is doing it: https://github.com/alpinelinux/aports/blob/a8ccb04668c7729e0f0db6c6ff5f25d7519e779b/main/python3/APKBUILD#L82
+, enableLTO ? stdenv.is64bit && stdenv.isLinux && !(stdenv.hostPlatform.isMusl && !stdenv.hostPlatform.isStatic)
 , reproducibleBuild ? true
 , pythonAttr ? "python${sourceVersion.major}${sourceVersion.minor}"
 }:
diff --git a/nixpkgs/pkgs/development/interpreters/python/default.nix b/nixpkgs/pkgs/development/interpreters/python/default.nix
index ae5d06eefa35..ba0ef7dff0ce 100644
--- a/nixpkgs/pkgs/development/interpreters/python/default.nix
+++ b/nixpkgs/pkgs/development/interpreters/python/default.nix
@@ -85,6 +85,7 @@ with pkgs;
           (lib.extends (lib.composeExtensions aliases extensions) pythonPackagesFun))
         {
           overrides = packageOverrides;
+          python = self;
         };
     in rec {
         isPy27 = pythonVersion == "2.7";
@@ -122,19 +123,19 @@ with pkgs;
       sourceVersion = {
         major = "3";
         minor = "8";
-        patch = "10";
+        patch = "11";
         suffix = "";
       };
-      sha256 = "1n8rjb3jn0j8dvi1qn94rxayc9rh982d8wgkrjy41n1x15k4mwka";
+      sha256 = "1chg8b0m1yrz50lizid20zha0dmj40z0iih3jqcrg7pyxca126pv";
     };
     python39 = {
       sourceVersion = {
         major = "3";
         minor = "9";
-        patch = "5";
+        patch = "6";
         suffix = "";
       };
-      sha256 = "10vdf46q5ldnzkprm8pldvr5a9hrdpxjv7mpzgdw6vj3cl318nhc";
+      sha256 = "12hhw2685i68pwfx5hdkqngzhbji4ccyjmqb5rzvkigg6fpj0y9r";
     };
   };
 
@@ -158,10 +159,10 @@ in {
     sourceVersion = {
       major = "3";
       minor = "6";
-      patch = "13";
+      patch = "14";
       suffix = "";
     };
-    sha256 = "pHpDpTq7QihqLBGWU0P/VnEbnmTo0RvyxnAaT7jOGg8=";
+    sha256 = "1bnm0bx7xf1jpfm0bmzlq19vwm0bvcbl7klx4rvgq05xryhafqr6";
     inherit (darwin) configd;
     inherit passthruFun;
   };
@@ -171,10 +172,10 @@ in {
     sourceVersion = {
       major = "3";
       minor = "7";
-      patch = "10";
+      patch = "11";
       suffix = "";
     };
-    sha256 = "+NgudXLIbsnVXIYnquUEAST9IgOvQAw4PIIbmAMG7ms=";
+    sha256 = "0d57b5a47wapzpkkq5rbvvi4caylc35j5910b64rxxn4nmm1kd6x";
     inherit (darwin) configd;
     inherit passthruFun;
   };
@@ -197,9 +198,9 @@ in {
       major = "3";
       minor = "10";
       patch = "0";
-      suffix = "b3";
+      suffix = "rc1";
     };
-    sha256 = "05fc4mp2ysb372bzkwbn1b1z01bfldnaqig6rxmif58hs3aawrr2";
+    sha256 = "0f76q6rsvbvrzcnsp0k7sp555krrgvjpcd09l1rybl4249ln2w3r";
     inherit (darwin) configd;
     inherit passthruFun;
   };
diff --git a/nixpkgs/pkgs/development/interpreters/python/tests/test_nix_pythonprefix/default.nix b/nixpkgs/pkgs/development/interpreters/python/tests/test_nix_pythonprefix/default.nix
index 572cbdccbfb2..2030fab173a5 100644
--- a/nixpkgs/pkgs/development/interpreters/python/tests/test_nix_pythonprefix/default.nix
+++ b/nixpkgs/pkgs/development/interpreters/python/tests/test_nix_pythonprefix/default.nix
@@ -1,4 +1,4 @@
-{ interpreter, writeText, runCommandNoCC }:
+{ interpreter, writeText, runCommand }:
 
 let
 
@@ -19,7 +19,7 @@ let
     print(s)
   '';
 
-in runCommandNoCC "${interpreter.name}-site-prefix-mypy-test" {} ''
+in runCommand "${interpreter.name}-site-prefix-mypy-test" {} ''
   ${pythonEnv}/bin/mypy ${pythonScript}
   touch $out
 ''
diff --git a/nixpkgs/pkgs/development/interpreters/racket/default.nix b/nixpkgs/pkgs/development/interpreters/racket/default.nix
index 0b5084d43584..5737241bb7e5 100644
--- a/nixpkgs/pkgs/development/interpreters/racket/default.nix
+++ b/nixpkgs/pkgs/development/interpreters/racket/default.nix
@@ -47,7 +47,7 @@ in
 
 stdenv.mkDerivation rec {
   pname = "racket";
-  version = "8.1"; # always change at once with ./minimal.nix
+  version = "8.2"; # always change at once with ./minimal.nix
 
   src = (lib.makeOverridable ({ name, sha256 }:
     fetchurl {
@@ -56,7 +56,7 @@ stdenv.mkDerivation rec {
     }
   )) {
     name = "${pname}-${version}";
-    sha256 = "0wlgp9dlibhv1d181arz309fszz31l5gb5gl94bqzfcav014g3k8";
+    sha256 = "10kl9xxl9swz8hdpycpy1vjc8biah5h07dzaygsf0ylfjdrczwx0";
   };
 
   FONTCONFIG_FILE = fontsConf;
diff --git a/nixpkgs/pkgs/development/interpreters/racket/minimal.nix b/nixpkgs/pkgs/development/interpreters/racket/minimal.nix
index 4cfb178d42de..cf3f322b4e7e 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 = "1q54n16s0hmnry8q381wd7zfpyjndfjswn97vsbd4isngwz3w12k";
+    sha256 = "1iw4z962vp287q6wwvky36iqmwg1mqyxxpbk96aqr2ckfjqwnkbg";
   };
 
   meta = oldAttrs.meta // {
diff --git a/nixpkgs/pkgs/development/interpreters/rakudo/default.nix b/nixpkgs/pkgs/development/interpreters/rakudo/default.nix
index fdb3a78a1b7e..eabbdf0b757f 100644
--- a/nixpkgs/pkgs/development/interpreters/rakudo/default.nix
+++ b/nixpkgs/pkgs/development/interpreters/rakudo/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "rakudo";
-  version = "2021.06";
+  version = "2021.07";
 
   src = fetchurl {
     url    = "https://rakudo.org/dl/rakudo/rakudo-${version}.tar.gz";
-    sha256 = "11ixlqmvbb37abksdysg5r4lkbwzr486lkc0ssl3wca4iiy3mhgf";
+    sha256 = "0lmbgw24f8277b9kj725v3grwh1524p4iy5jbqajxwxjr16zx2hp";
   };
 
   nativeBuildInputs = [ removeReferencesTo ];
diff --git a/nixpkgs/pkgs/development/interpreters/rakudo/moarvm.nix b/nixpkgs/pkgs/development/interpreters/rakudo/moarvm.nix
index 60a5e071545e..73dac18a5974 100644
--- a/nixpkgs/pkgs/development/interpreters/rakudo/moarvm.nix
+++ b/nixpkgs/pkgs/development/interpreters/rakudo/moarvm.nix
@@ -3,11 +3,11 @@
 
 stdenv.mkDerivation rec {
   pname = "moarvm";
-  version = "2021.06";
+  version = "2021.07";
 
   src = fetchurl {
     url = "https://moarvm.org/releases/MoarVM-${version}.tar.gz";
-    sha256 = "19vjcyb9fg9msjw1ih00c2qby480gl4highw24zx7j84slhsj013";
+    sha256 = "1zk3dpvgrgg4kam3hx9pq1a2l2kgw822dci8hg7x0cn1lppwwdw4";
    };
 
   buildInputs = [ perl ] ++ lib.optionals stdenv.isDarwin [ CoreServices ApplicationServices ];
diff --git a/nixpkgs/pkgs/development/interpreters/rakudo/nqp.nix b/nixpkgs/pkgs/development/interpreters/rakudo/nqp.nix
index 4b456d819f6d..d34f5ac71a09 100644
--- a/nixpkgs/pkgs/development/interpreters/rakudo/nqp.nix
+++ b/nixpkgs/pkgs/development/interpreters/rakudo/nqp.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "nqp";
-  version = "2021.06";
+  version = "2021.07";
 
   src = fetchurl {
     url    = "https://github.com/raku/nqp/releases/download/${version}/nqp-${version}.tar.gz";
-    sha256 = "1d00lajjdd2k510fb0cb6c8bpklvlnncykf6jz8j8djfp0b2i696";
+    sha256 = "191y6r6qxpib52h3drc5pbjrgf65pn5ahis1dyz55dxk7ajg5anw";
   };
 
   buildInputs = [ perl ];
diff --git a/nixpkgs/pkgs/development/interpreters/rakudo/zef.nix b/nixpkgs/pkgs/development/interpreters/rakudo/zef.nix
index 61008f242b91..c5b622d2761f 100644
--- a/nixpkgs/pkgs/development/interpreters/rakudo/zef.nix
+++ b/nixpkgs/pkgs/development/interpreters/rakudo/zef.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "zef";
-  version = "0.11.5";
+  version = "0.11.10";
 
   src = fetchFromGitHub {
     owner = "ugexe";
     repo = "zef";
     rev = "v${version}";
-    sha256 = "sha256-LLUAwqky/q9KvFltrcff5U2BSLvOk/BbDSj07QlePSg=";
+    sha256 = "sha256-snnvREM2RLssmE55Ea0Imcw12pmyD6+/11ZXmmUY36U=";
   };
 
   nativeBuildInputs = [ makeWrapper ];
diff --git a/nixpkgs/pkgs/development/interpreters/ruby/rubygems/default.nix b/nixpkgs/pkgs/development/interpreters/ruby/rubygems/default.nix
index 6f089e51221f..4150f7683d5d 100644
--- a/nixpkgs/pkgs/development/interpreters/ruby/rubygems/default.nix
+++ b/nixpkgs/pkgs/development/interpreters/ruby/rubygems/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   name = "rubygems";
-  version = "3.2.24";
+  version = "3.2.26";
 
   src = fetchurl {
     url = "https://rubygems.org/rubygems/rubygems-${version}.tgz";
-    sha256 = "09ff830a043y6s7390hsg3k55ffpifb1zsvs0dhz8z8pypwgiscl";
+    sha256 = "sha256-9wa6lOWnua8zBblQKRgjjiTVPYp2TW0n7XOvgW7u1e8=";
   };
 
   patches = [
diff --git a/nixpkgs/pkgs/development/interpreters/s9fes/default.nix b/nixpkgs/pkgs/development/interpreters/s9fes/default.nix
new file mode 100644
index 000000000000..a05dde8f1f51
--- /dev/null
+++ b/nixpkgs/pkgs/development/interpreters/s9fes/default.nix
@@ -0,0 +1,35 @@
+{ stdenv, lib, fetchurl, ncurses, buildPackages }:
+
+let
+  isCrossCompiling = stdenv.hostPlatform != stdenv.buildPlatform;
+in
+
+stdenv.mkDerivation rec {
+  pname = "s9fes";
+  version = "20181205";
+
+  src = fetchurl {
+    url = "https://www.t3x.org/s9fes/s9fes-${version}.tgz";
+    sha256 = "sha256-Lp/akaDy3q4FmIE6x0fj9ae/SOD7tdsmzy2xdcCh13o=";
+  };
+
+  # Fix cross-compilation
+  postPatch = ''
+    substituteInPlace Makefile \
+      --replace 'ar q' '${stdenv.cc.targetPrefix}ar q' \
+      --replace 'strip' '${stdenv.cc.targetPrefix}strip'
+    ${lib.optionalString isCrossCompiling "substituteInPlace Makefile --replace ./s9 '${buildPackages.s9fes}/bin/s9'"}
+  '';
+
+  buildInputs = [ ncurses ];
+  makeFlags = [ "CC=${stdenv.cc.targetPrefix}cc" "PREFIX=$(out)" ];
+  enableParallelBuilding = true;
+
+  meta = with lib; {
+    description = "Scheme 9 From Empty Space, an interpreter for R4RS Scheme";
+    homepage = "http://www.t3x.org/s9fes/index.html";
+    license = licenses.publicDomain;
+    maintainers = with maintainers; [ siraben ];
+    platforms = platforms.unix;
+  };
+}
diff --git a/nixpkgs/pkgs/development/interpreters/scsh/default.nix b/nixpkgs/pkgs/development/interpreters/scsh/default.nix
index 6dcb8bd27c5b..ce44624497da 100644
--- a/nixpkgs/pkgs/development/interpreters/scsh/default.nix
+++ b/nixpkgs/pkgs/development/interpreters/scsh/default.nix
@@ -1,7 +1,8 @@
 { lib, stdenv, fetchgit, autoreconfHook, scheme48 }:
 
 stdenv.mkDerivation {
-  name = "scsh-0.7pre";
+  pname = "scsh";
+  version = "0.7pre";
 
   src = fetchgit {
     url = "git://github.com/scheme/scsh.git";
diff --git a/nixpkgs/pkgs/development/interpreters/supercollider/default.nix b/nixpkgs/pkgs/development/interpreters/supercollider/default.nix
index fc8d8f1652de..09e97a65e664 100644
--- a/nixpkgs/pkgs/development/interpreters/supercollider/default.nix
+++ b/nixpkgs/pkgs/development/interpreters/supercollider/default.nix
@@ -9,11 +9,11 @@ let
 in
 mkDerivation rec {
   pname = "supercollider";
-  version = "3.11.2";
+  version = "3.12.0";
 
   src = fetchurl {
     url = "https://github.com/supercollider/supercollider/releases/download/Version-${version}/SuperCollider-${version}-Source.tar.bz2";
-    sha256 = "wiwyxrxIJnHU+49RZy33Etl6amJ3I1xNojEpEDA6BQY=";
+    sha256 = "sha256-RgCL50pyjNgy+H+Crvfgds86pmTao2FS+IF3gRHu5NM=";
   };
 
   hardeningDisable = [ "stackprotector" ];
diff --git a/nixpkgs/pkgs/development/interpreters/yabasic/default.nix b/nixpkgs/pkgs/development/interpreters/yabasic/default.nix
index 414171082e30..02d3dbeb9fd1 100644
--- a/nixpkgs/pkgs/development/interpreters/yabasic/default.nix
+++ b/nixpkgs/pkgs/development/interpreters/yabasic/default.nix
@@ -10,11 +10,11 @@
 
 stdenv.mkDerivation rec {
   pname = "yabasic";
-  version = "2.89.1";
+  version = "2.90.1";
 
   src = fetchurl {
     url = "http://www.yabasic.de/download/${pname}-${version}.tar.gz";
-    hash = "sha256-k8QmQCpszLyotEiWDrG878RM2wqSq7I4W9j6Z2Ub3Yg=";
+    hash = "sha256-9LqiwS3Udql3YZoufo3spVpE46me3McI8L08TpNJpJo=";
   };
 
   buildInputs = [
@@ -26,7 +26,7 @@ stdenv.mkDerivation rec {
   ];
 
   meta = with lib; {
-    homepage = "http://www.yabasic.de/";
+    homepage = "http://2484.de/yabasic/";
     description = "Yet another BASIC";
     longDescription = ''
       Yabasic is a traditional basic-interpreter. It comes with goto and various