diff --git a/CHANGES.markdown b/CHANGES.markdown
--- a/CHANGES.markdown
+++ b/CHANGES.markdown
@@ -1,3 +1,16 @@
+## [v0.8.0.6](https://github.com/diagrams/diagrams-builder/tree/v0.8.0.6) (2023-07-10)
+
+- Bump upper bounds: allow
+    - `base-4.18`
+    - `base-orphans-0.9`
+    - `mtl-2.3`
+    - `transformers-0.6`
+    - `lens-5.2`
+    - `diagrams-postscript-1.5`
+    - `bytestring-0.11`
+- Test on GHC 9.4 and 9.6
+- Drop support for GHC < 8.10
+
 ## [v0.8.0.5](https://github.com/diagrams/diagrams-builder/tree/v0.8.0.5) (2020-01-21)
 
 - Bump upper bounds: allow
@@ -6,6 +19,18 @@
     - `haskell-src-exts-simple-1.22`
     - `lens-4.18`
     - `hashable-1.3`
+
+- r1 (2021-08-09):
+    - allow `base-4.15` (GHC 8.10 and 9.0)
+    - allow `haskell-src-exts-1.23` and `haskell-src-exts-simple-1.23`
+    - allow `lens-5.0`
+- r2 (2021-08-19): update URL
+- r3 (2021-12-30):
+    - allow `base-4.16` (GHC 9.2)
+    - allow `lens-5.1`
+    - allow `hashable-1.4`
+- r4 (2021-12-31):
+    - allow `lens-5.1` and `bytestring-0.11` in executables
 
 ## [v0.8.0.4](https://github.com/diagrams/diagrams-builder/tree/v0.8.0.4) (2019-02-08)
 
diff --git a/diagrams-builder.cabal b/diagrams-builder.cabal
--- a/diagrams-builder.cabal
+++ b/diagrams-builder.cabal
@@ -1,5 +1,5 @@
 name:                diagrams-builder
-version:             0.8.0.5
+version:             0.8.0.6
 synopsis:            hint-based build service for the diagrams graphics EDSL.
 
 description:         @diagrams-builder@ provides backend-agnostic tools for
@@ -28,7 +28,7 @@
                      distribution, which renders diagrams code found
                      within @diagram@ environments. Note that
                      @diagrams-latex.sty@ is licensed under the GPL.
-homepage:            http://projects.haskell.org/diagrams
+homepage:            https://diagrams.github.io
 license:             BSD3
 license-file:        LICENSE
 extra-source-files:  CHANGES.markdown, README.markdown, latex/diagrams-latex.sty
@@ -37,7 +37,7 @@
 category:            Graphics
 build-type:          Simple
 cabal-version:       >=1.10
-tested-with:         GHC ==8.2.2 || ==8.4.3 || ==8.6.5 || ==8.8.1
+tested-with:         GHC ==8.10.7 || ==9.0.2 || ==9.2.7 || ==9.4.5 || ==9.6.1
 bug-reports:         https://github.com/diagrams/diagrams-builder/issues
 Source-repository head
   type:     git
@@ -48,20 +48,20 @@
                        Diagrams.Builder.Opts
                        Diagrams.Builder.Modules
                        Diagrams.Builder.CmdLine
-  build-depends:       base >= 4.10 && < 4.14,
-                       base-orphans >= 0.3 && < 0.9,
-                       mtl >= 2.1 && < 2.3,
+  build-depends:       base >= 4.10 && < 4.19,
+                       base-orphans >= 0.3 && < 0.10,
+                       mtl >= 2.1 && < 2.4,
                        diagrams-lib >= 1.4 && < 1.5,
                        hint >= 0.4 && < 0.10,
-                       directory,
-                       filepath,
-                       transformers >= 0.3 && < 0.6,
+                       directory >= 1.3 && < 1.4,
+                       filepath >= 1.4 && < 1.5,
+                       transformers >= 0.3 && < 0.7,
                        split >= 0.2 && < 0.3,
-                       haskell-src-exts >= 1.18 && < 1.23,
-                       haskell-src-exts-simple >= 1.18 && < 1.23,
+                       haskell-src-exts >= 1.18 && < 1.24,
+                       haskell-src-exts-simple >= 1.18 && < 1.24,
                        cmdargs >= 0.6 && < 0.11,
-                       lens >= 4.0 && < 4.19,
-                       hashable >= 1.1 && < 1.4,
+                       lens >= 4.0 && < 5.3,
+                       hashable >= 1.1 && < 1.5,
                        exceptions >= 0.3 && < 0.11
   hs-source-dirs:      src
   default-language:    Haskell2010
@@ -118,7 +118,7 @@
                        diagrams-lib >= 1.4 && < 1.5,
                        diagrams-cairo >= 1.4 && < 1.5,
                        cmdargs >= 0.6 && < 0.11,
-                       lens >= 4.0 && < 4.19
+                       lens >= 4.0 && < 5.3
 
 executable diagrams-builder-svg
   main-is:             diagrams-builder-svg.hs
@@ -138,7 +138,7 @@
                        diagrams-lib >= 1.4 && < 1.5,
                        diagrams-svg >= 1.4 && < 1.5,
                        svg-builder >= 0.1 && < 0.2,
-                       bytestring >= 0.9.2 && < 0.11,
+                       bytestring >= 0.9.2 && < 0.12,
                        cmdargs >= 0.6 && < 0.11
 
 executable diagrams-builder-ps
@@ -157,9 +157,10 @@
                        directory,
                        diagrams-builder,
                        diagrams-lib >= 1.4 && < 1.5,
-                       diagrams-postscript >= 1.4 && < 1.5,
+                       diagrams-postscript >= 1.4 && < 1.6,
                        cmdargs >= 0.6 && < 0.11,
-                       lens >= 3.8 && < 4.19
+                       lens >= 3.8 && < 5.3,
+                       bytestring >= 0.9.2 && < 0.12
 
 executable diagrams-builder-rasterific
   main-is:             diagrams-builder-rasterific.hs
@@ -179,7 +180,7 @@
                        diagrams-lib >= 1.4 && < 1.5,
                        diagrams-rasterific >= 1.4 && < 1.5,
                        cmdargs >= 0.6 && < 0.11,
-                       lens >= 3.8 && < 4.19,
+                       lens >= 3.8 && < 5.3,
                        JuicyPixels >= 3.1.5 && < 3.4
 
 executable diagrams-builder-pgf
@@ -199,7 +200,7 @@
                        diagrams-builder,
                        diagrams-lib >= 1.4 && < 1.5,
                        diagrams-pgf >= 1.4 && < 1.5,
-                       bytestring >= 0.10.2 && < 0.11,
+                       bytestring >= 0.10.2 && < 0.12,
                        cmdargs >= 0.6 && < 0.11,
-                       lens >= 3.8 && < 4.19,
+                       lens >= 3.8 && < 5.3,
                        texrunner
diff --git a/src/tools/diagrams-builder-ps.hs b/src/tools/diagrams-builder-ps.hs
--- a/src/tools/diagrams-builder-ps.hs
+++ b/src/tools/diagrams-builder-ps.hs
@@ -1,11 +1,14 @@
 {-# LANGUAGE DeriveDataTypeable #-}
 {-# LANGUAGE RecordWildCards    #-}
+{-# LANGUAGE CPP                #-}
 
 module Main where
 
+import qualified Data.ByteString.Builder     as B
 import           System.Directory            (copyFile,
                                               createDirectoryIfMissing)
 import qualified System.FilePath             as FP
+import qualified System.IO                   as IO
 
 import           System.Console.CmdArgs
 
@@ -37,9 +40,20 @@
     InterpErr ierr  -> putStrLn ("Error while compiling " ++ srcFile) >>
                        putStrLn (ppInterpError ierr)
     Skipped hash    -> copyFile (mkFile (hashToHexStr hash)) outFile
-    OK hash act     -> do act >> copyFile (mkFile (hashToHexStr hash)) outFile
+    OK hash builder -> do
+      let cached = mkFile (hashToHexStr hash)
+      writeBuilder cached builder
+      copyFile cached outFile
  where
    mkFile base = dir FP.</> base FP.<.> "eps"
+
+writeBuilder :: FilePath -> B.Builder -> IO ()
+#if MIN_VERSION_bytestring(0,11,2)
+writeBuilder fp b = B.writeFile fp b
+#else
+writeBuilder fp b = IO.withBinaryFile fp IO.WriteMode (`B.hPutBuilder` b)
+#endif
+{-# INLINE writeBuilder #-}
 
 build :: Build
 build =
