From 9eb7a325f33e6e9348a376f8aa8dc19087165bd9 Mon Sep 17 00:00:00 2001
From: Alexander Artemenko <svetlyak.40wt@gmail.com>
Date: Wed, 6 Mar 2024 02:08:05 +0300
Subject: [PATCH 01/21] Update deps.

---
 qlfile.lock | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/qlfile.lock b/qlfile.lock
index b74049b..5b007a6 100644
--- a/qlfile.lock
+++ b/qlfile.lock
@@ -5,7 +5,7 @@
 ("ultralisp" .
  (:class qlot/source/dist:source-dist
   :initargs (:distribution "http://dist.ultralisp.org" :%version :latest)
-  :version "20240127152000"))
+  :version "20240304201501"))
 ("sly" .
  (:class qlot/source/github:source-github
   :initargs (:repos "svetlyak40wt/sly" :ref nil :branch "patches" :tag nil)

From cb334f930ef77ea3dc85b1bc94898dd2aa05f2ab Mon Sep 17 00:00:00 2001
From: Alexander Artemenko <svetlyak.40wt@gmail.com>
Date: Tue, 12 Mar 2024 12:09:44 +0300
Subject: [PATCH 02/21] Fix :HOME path component issue.

First, we need to ensure that any errors in quicklisp fix loader cause failure of our own tests.
---
 .github/workflows/tests.yml | 97 ++++++++++++++++++++++++++-----------
 action.yml                  | 36 +++++---------
 changelog.lisp              | 14 +++++-
 docs.lisp                   | 31 ++++++------
 load-quicklisp-fix.lisp     | 19 ++++++++
 5 files changed, 129 insertions(+), 68 deletions(-)
 create mode 100644 load-quicklisp-fix.lisp

diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml
index 88a80e6..6e9301e 100644
--- a/.github/workflows/tests.yml
+++ b/.github/workflows/tests.yml
@@ -14,46 +14,86 @@ jobs:
       fail-fast: false # Let the workflow continue as much as possible
       matrix:
         include:
-          - os: ubuntu-latest
-            lisp: sbcl
-          # Just to ensure test.ros will not fail when version
-          # is specified explicitly
-          - os: ubuntu-latest
-            lisp: sbcl/2.3.1
-          - os: macos-latest
-            lisp: sbcl-bin
-          - os: windows-latest
-            lisp: sbcl-bin
-          - os: ubuntu-latest
-            lisp: sbcl-bin
-          - os: ubuntu-latest
-            lisp: ccl-bin
-          - os: ubuntu-latest
-            lisp: clisp-head
-          - os: ubuntu-latest
-            lisp: ecl
+          # Linux
           - os: ubuntu-latest
             lisp: abcl-bin
-          - os: ubuntu-latest
-            lisp: clasp-bin
-          - os: ubuntu-latest
-            lisp: cmu-bin
-
           # See issue: https://github.com/40ants/setup-lisp/issues/22
           # - os: ubuntu-latest
           #   lisp: allegro
-          # See issue: https://github.com/40ants/setup-lisp/issues/15
-          # - os: ubuntu-latest
-          #   lisp: clisp
+          - os: ubuntu-latest
+            lisp: ccl-bin
           # See issue: https://github.com/40ants/setup-lisp/issues/16
           # - os: ubuntu-latest
           #   lisp: clasp
+          - os: ubuntu-latest
+            lisp: clasp-bin
+          # See issue: https://github.com/40ants/setup-lisp/issues/15
+          # - os: ubuntu-latest
+          #   lisp: clisp
+          - os: ubuntu-latest
+            lisp: clisp-head
+          - os: ubuntu-latest
+            lisp: cmu-bin
+          - os: ubuntu-latest
+            lisp: ecl
           # See issue: https://github.com/40ants/setup-lisp/issues/17
           # - os: ubuntu-latest
           #   lisp: mkcl
           # See issue: https://github.com/40ants/setup-lisp/issues/18
           # - os: ubuntu-latest
           #   lisp: npt
+          - os: ubuntu-latest
+            lisp: sbcl
+          # Just to ensure test.ros will not fail when version
+          # is specified explicitly
+          - os: ubuntu-latest
+            lisp: sbcl/2.3.1
+          - os: ubuntu-latest
+            lisp: sbcl-bin
+
+          # OSX
+          - os: macos-latest
+            lisp: abcl-bin
+          - os: macos-latest
+            lisp: ccl-bin
+          # https://github.com/40ants/setup-lisp/issues/29
+          # - os: macos-latest
+          #   lisp: clasp-bin
+          # https://github.com/40ants/setup-lisp/issues/28
+          # - os: macos-latest
+          #   lisp: clisp-head
+          # https://github.com/40ants/setup-lisp/issues/30
+          # - os: macos-latest
+          #   lisp: cmu-bin
+          - os: macos-latest
+            lisp: ecl
+          - os: macos-latest
+            lisp: sbcl-bin
+
+          # Windows
+
+          # https://github.com/40ants/setup-lisp/issues/27
+          # - os: windows-latest
+          #   lisp: abcl-bin
+          # https://github.com/40ants/setup-lisp/issues/27
+          # - os: windows-latest
+          #   lisp: ccl-bin
+          # https://github.com/40ants/setup-lisp/issues/27
+          # - os: windows-latest
+          #   lisp: clasp-bin
+          # https://github.com/40ants/setup-lisp/issues/27
+          # - os: windows-latest
+          #   lisp: clisp-head
+          # https://github.com/40ants/setup-lisp/issues/27
+          # - os: windows-latest
+          #   lisp: cmu-bin
+          # https://github.com/40ants/setup-lisp/issues/27
+          # - os: windows-latest
+          #   lisp: ecl
+          - os: windows-latest
+            lisp: sbcl-bin
+            
+
     defaults:
       run:
         shell: lispsh -eo pipefail {0}
@@ -83,8 +123,11 @@ jobs:
           # https://github.com/roswell/roswell/issues/497
           asdf-version: 3.3.5.3
           qlot-version: latest
-      - run: which ros
       - run: ros config
+        # On OSX this steps fails often:
+        # https://github.com/40ants/setup-lisp/issues/31
+        # I don't know how to fix it, so we'll skip it for now:
+        continue-on-error: true
       - run: qlot exec ros install 40ants/cl-info
       - run: qlot exec cl-info
 
diff --git a/action.yml b/action.yml
index 0d4bf52..fb6d5f8 100644
--- a/action.yml
+++ b/action.yml
@@ -57,6 +57,11 @@ inputs:
         ~/.cache/common-lisp/
         .qlot
 
+  cache-suffix:
+    description: "Internal var. Don't use it."
+    required: false
+    default: v9
+
 runs:
   using: composite
   steps:
@@ -206,7 +211,7 @@ runs:
       uses: actions/cache/restore@v4
       with:
         path: ${{ inputs.roswell-cache-paths }}
-        key: roswell-${{ inputs.roswell-version }}-${{ steps.locals.outputs.current-month }}-${{ env.cache-name }}-${{ runner.os }}-${{ env.LISP }}
+        key: roswell-${{ inputs.roswell-version }}-${{ steps.locals.outputs.current-month }}-${{ env.cache-name }}-${{ runner.os }}-${{ env.LISP }}-${{ inputs.cache-suffix }}
 
     - if: inputs.cache == 'true' && steps.roswell-cache-restore.outputs.cache-hit == 'true'
       name: Restore Path To Cached Files
@@ -271,21 +276,7 @@ runs:
 
         mkdir -p ~/.roswell
 
-        cat >> ~/.roswell/init.lisp <<EOF
-        (let ((fix-filename (make-pathname :directory '(:absolute :home ".quicklisp-client-fix")
-                                           :name "quicklisp-fix"
-                                           :type "lisp")))
-          (let ((quicklisp-found #+quicklisp t
-                                 #-quicklisp nil))
-            (cond
-              ((not quicklisp-found)
-               (warn "Quicklisp is not available, skipping fix loading.~%"))
-              ((probe-file fix-filename)
-               (handler-bind ((warning #'muffle-warning))
-                 (load fix-filename)))
-              (t
-               (warn "Quicklisp fix was not found at ~S.~%" fix-filename)))))
-        EOF
+        cat $GITHUB_ACTION_PATH/load-quicklisp-fix.lisp >> ~/.roswell/init.lisp
        
     - if: inputs.cache == 'false' || steps.roswell-cache-restore.outputs.cache-hit != 'true'
       name: Upgrade ASDF to the Latest Version
@@ -357,7 +348,7 @@ runs:
       uses: actions/cache/restore@v4
       with:
         path: ${{ inputs.qlot-cache-paths }}
-        key: qlot-${{ steps.locals.outputs.current-month }}-${{ env.cache-name }}-${{ runner.os }}-${{ env.QUICKLISP_DIST }}-${{ env.LISP }}-${{ hashFiles('qlfile', 'qlfile.lock', '*.asd') }}
+        key: qlot-${{ steps.locals.outputs.current-month }}-${{ env.cache-name }}-${{ runner.os }}-${{ env.QUICKLISP_DIST }}-${{ env.LISP }}-${{ hashFiles('qlfile', 'qlfile.lock', '*.asd') }}-${{ inputs.cache-suffix }}
 
     - if: inputs.cache == 'true' && steps.qlot-cache-restore.outputs.cache-hit == 'true'
       name: Restore Path To .qlot/bin
@@ -378,17 +369,16 @@ runs:
     # This step will install system and
     # all possible roswell scripts, if the system
     # has them in the roswell/ subdirectory:
-    - if: inputs.cache == 'false' || steps.qlot-cache-restore.outputs.cache-hit != 'true'
+    - if: inputs.asdf-system && (inputs.cache == 'false' || steps.qlot-cache-restore.outputs.cache-hit != 'true')
       name: Install ASDF System
       shell: lispsh -eo pipefail {0}
+      # Here we'll need to set CL_SOURCE_REGISTRY
+      # when will switch to a new qlot:
       run: |
         echo ::group::Install ASDF System
 
-        if [[ -n "${{ inputs.asdf-system }}" ]]; then
-            qlot exec ros install ${{ inputs.asdf-system }}
-        else
-            echo "ASDF system wasn't provided."
-        fi
+        qlot exec ros install ${{ inputs.asdf-system }}
+            
         echo ::endgroup::
 
     - if: inputs.cache == 'true' && steps.qlot-cache-restore.outputs.cache-hit != 'true'
diff --git a/changelog.lisp b/changelog.lisp
index 4ef527a..2ad66e3 100644
--- a/changelog.lisp
+++ b/changelog.lisp
@@ -7,7 +7,17 @@
 
 (defchangelog (:ignore-words ("ASDF"
                               "PATH"
+                              "CL"
                               "HOME"))
+  (4.0.3 2024-03-12
+         "
+# Fixed
+
+* There was an error when action suceeded, but actually failed trying to load my quicklisp fix for package inferred systems.
+  A code to load this fix used :HOME as a pathname component which is not supported by some CL implementations. Actually,
+  I've already fixed this issue in 3.1.0 version, but somehow this fix was lost. Also, a handler-bind wrapper around the loader was added
+  and now action's tests will fail in case of any errors.
+")
   (4.0.2 2024-02-27
          "
 # Fixed
@@ -31,7 +41,7 @@
 * A new input variable `cache` was added to control caching beheviour. It is `true` by default, but you can switch it to `false` to turn caching off.
 
 ")
-  (3.2.0 2023-01-30
+  (3.2.0 2024-01-30
          "
 # Changed
 
@@ -44,7 +54,7 @@
 * Fixed running of test.ros script under Windows.
 
 ")
-  (3.1.0 2023-01-27
+  (3.1.0 2024-01-27
          "
 # Changed
 
diff --git a/docs.lisp b/docs.lisp
index 5f2e74c..edc44e2 100644
--- a/docs.lisp
+++ b/docs.lisp
@@ -89,22 +89,21 @@ when trying to call `ros` or `qlot` scripts:
   Error: Process completed with exit code 127.
 ```
 
-
-| **Implementation** | **Supported**                                        |
-|--------------------|------------------------------------------------------|
-| abcl-bin           | ✅                                                   |
-| allegro            | [❌](https://github.com/40ants/setup-lisp/issues/22) |
-| ccl-bin            | ✅                                                   |
-| clasp              | [❌](https://github.com/40ants/setup-lisp/issues/16) |
-| clasp-bin          | ✅                                                   |
-| clisp              | [❌](https://github.com/40ants/setup-lisp/issues/15) |
-| clisp-head         | ✅                                                   |
-| cmu-bin            | ✅                                                   |
-| ecl                | ✅                                                   |
-| mkcl               | [❌](https://github.com/40ants/setup-lisp/issues/17) |
-| npt                | [❌](https://github.com/40ants/setup-lisp/issues/18) |
-| sbcl               | ✅                                                   |
-| sbcl-bin           | ✅                                                   |
+| **Implementation** | **Linux**                                            | **OSX** | **Windows**  |
+|--------------------|------------------------------------------------------|---------|--------------|
+| abcl-bin           | ✅                                                   | ✅      | [❌](https://github.com/40ants/setup-lisp/issues/27) |
+| allegro            | [❌](https://github.com/40ants/setup-lisp/issues/22) |         |              |
+| ccl-bin            | ✅                                                   | ✅      | [❌](https://github.com/40ants/setup-lisp/issues/27) |
+| clasp              | [❌](https://github.com/40ants/setup-lisp/issues/16) |         | [❌](https://github.com/40ants/setup-lisp/issues/27) |
+| clasp-bin          | ✅                                                   | [❌](https://github.com/40ants/setup-lisp/issues/29) |
+| clisp              | [❌](https://github.com/40ants/setup-lisp/issues/15) |         | [❌](https://github.com/40ants/setup-lisp/issues/27) |
+| clisp-head         | ✅                                                   | [❌](https://github.com/40ants/setup-lisp/issues/28) |
+| cmu-bin            | ✅                                                   | [❌](https://github.com/40ants/setup-lisp/issues/30) | [❌](https://github.com/40ants/setup-lisp/issues/27) |
+| ecl                | ✅                                                   | ✅      | [❌](https://github.com/40ants/setup-lisp/issues/27) |
+| mkcl               | [❌](https://github.com/40ants/setup-lisp/issues/17) |         |              |
+| npt                | [❌](https://github.com/40ants/setup-lisp/issues/18) |         |              |
+| sbcl               | ✅                                                   |         |              |
+| sbcl-bin           | ✅                                                   | ✅      | ✅           |
 
 ")
 
diff --git a/load-quicklisp-fix.lisp b/load-quicklisp-fix.lisp
new file mode 100644
index 0000000..8d3816b
--- /dev/null
+++ b/load-quicklisp-fix.lisp
@@ -0,0 +1,19 @@
+(handler-bind ((serious-condition
+                 (lambda (condition)
+                   (uiop:print-condition-backtrace condition)
+                   (uiop:quit 1))))
+  (let ((fix-filename (merge-pathnames
+                       (make-pathname :directory '(:relative ".quicklisp-client-fix")
+                                      :name "quicklisp-fix"
+                                      :type "lisp")
+                       (user-homedir-pathname))))
+    (let ((quicklisp-found #+quicklisp t
+                           #-quicklisp nil))
+      (cond
+        ((not quicklisp-found)
+         (warn "Quicklisp is not available, skipping fix loading.~%"))
+        ((probe-file fix-filename)
+         (handler-bind ((warning #'muffle-warning))
+           (load fix-filename)))
+        (t
+         (warn "Quicklisp fix was not found at ~S.~%" fix-filename))))))

From 08730d2cc2529a2baa7aa8c5b13cfa47ec57606d Mon Sep 17 00:00:00 2001
From: "github-actions[bot]" <actions@github.com>
Date: Mon, 15 Apr 2024 15:27:08 +0000
Subject: [PATCH 03/21] Update docs

---
 ChangeLog.md | 17 +++++++++++++++--
 README.md    | 34 +++++++++++++++++++---------------
 2 files changed, 34 insertions(+), 17 deletions(-)

diff --git a/ChangeLog.md b/ChangeLog.md
index 21b3848..d7f67ec 100644
--- a/ChangeLog.md
+++ b/ChangeLog.md
@@ -2,6 +2,19 @@
 
 # ChangeLog
 
+<a id="x-28PROJECT-DOCS-2FCHANGELOG-3A-3A-7C4-2E0-2E3-7C-2040ANTS-DOC-2FLOCATIVES-3ASECTION-29"></a>
+
+## 4.0.3 (2024-03-12)
+
+<a id="fixed"></a>
+
+### Fixed
+
+* There was an error when action suceeded, but actually failed trying to load my quicklisp fix for package inferred systems.
+  A code to load this fix used `:HOME` as a pathname component which is not supported by some `CL` implementations. Actually,
+  I've already fixed this issue in 3.1.0 version, but somehow this fix was lost. Also, a handler-bind wrapper around the loader was added
+  and now action's tests will fail in case of any errors.
+
 <a id="x-28PROJECT-DOCS-2FCHANGELOG-3A-3A-7C4-2E0-2E2-7C-2040ANTS-DOC-2FLOCATIVES-3ASECTION-29"></a>
 
 ## 4.0.2 (2024-02-27)
@@ -38,7 +51,7 @@ When some jobs used qlfile-template argument + caching, a template application
 
 <a id="x-28PROJECT-DOCS-2FCHANGELOG-3A-3A-7C3-2E2-2E0-7C-2040ANTS-DOC-2FLOCATIVES-3ASECTION-29"></a>
 
-## 3.2.0 (2023-01-30)
+## 3.2.0 (2024-01-30)
 
 <a id="changed"></a>
 
@@ -56,7 +69,7 @@ When some jobs used qlfile-template argument + caching, a template application
 
 <a id="x-28PROJECT-DOCS-2FCHANGELOG-3A-3A-7C3-2E1-2E0-7C-2040ANTS-DOC-2FLOCATIVES-3ASECTION-29"></a>
 
-## 3.1.0 (2023-01-27)
+## 3.1.0 (2024-01-27)
 
 <a id="changed"></a>
 
diff --git a/README.md b/README.md
index 1970b9b..782995e 100644
--- a/README.md
+++ b/README.md
@@ -39,21 +39,21 @@ when trying to call `ros` or `qlot` scripts:
 /c/Users/runneradmin/.roswell/lisp/quicklisp/bin/qlot: line 4: exec: ros: not found
   Error: Process completed with exit code 127.
 ```
-| **Implementation** | **Supported** |
-| --- | --- |
-| abcl-bin | ✅ |
-| allegro | [❌][d984] |
-| ccl-bin | ✅ |
-| clasp | [❌][ecc6] |
-| clasp-bin | ✅ |
-| clisp | [❌][78c5] |
-| clisp-head | ✅ |
-| cmu-bin | ✅ |
-| ecl | ✅ |
-| mkcl | [❌][2801] |
-| npt | [❌][7189] |
-| sbcl | ✅ |
-| sbcl-bin | ✅ |
+| **Implementation** | **Linux** | **OSX** | **Windows** |
+| --- | --- | --- | --- |
+| abcl-bin | ✅ | ✅ | [❌][d780] |
+| allegro | [❌][d984] |  |  |
+| ccl-bin | ✅ | ✅ | [❌][d780] |
+| clasp | [❌][ecc6] |  | [❌][d780] |
+| clasp-bin | ✅ | [❌][bf3c] |
+| clisp | [❌][78c5] |  | [❌][d780] |
+| clisp-head | ✅ | [❌][5334] |
+| cmu-bin | ✅ | [❌][2599] | [❌][d780] |
+| ecl | ✅ | ✅ | [❌][d780] |
+| mkcl | [❌][2801] |  |  |
+| npt | [❌][7189] |  |  |
+| sbcl | ✅ |  |  |
+| sbcl-bin | ✅ | ✅ | ✅ |
 
 <a id="x-28PROJECT-DOCS-3A-3A-40TYPICAL-USAGE-2040ANTS-DOC-2FLOCATIVES-3ASECTION-29"></a>
 
@@ -250,6 +250,10 @@ If you want to contribute to this system, join development at GitHub:
 [2801]: https://github.com/40ants/setup-lisp/issues/17
 [7189]: https://github.com/40ants/setup-lisp/issues/18
 [d984]: https://github.com/40ants/setup-lisp/issues/22
+[d780]: https://github.com/40ants/setup-lisp/issues/27
+[5334]: https://github.com/40ants/setup-lisp/issues/28
+[bf3c]: https://github.com/40ants/setup-lisp/issues/29
+[2599]: https://github.com/40ants/setup-lisp/issues/30
 [e3ea]: https://github.com/fukamachi/qlot
 [3dbd]: https://github.com/mmontone/djula
 [795a]: https://github.com/roswell/roswell

From 2050461d6f9faba7e1faf970f6658f74ae7ccab9 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C3=81kos=20Kiss?= <ak@coram.pub>
Date: Thu, 18 Apr 2024 04:31:06 +0200
Subject: [PATCH 04/21] Extend cache key with runner architecture #32

---
 action.yml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/action.yml b/action.yml
index fb6d5f8..1939ebd 100644
--- a/action.yml
+++ b/action.yml
@@ -211,7 +211,7 @@ runs:
       uses: actions/cache/restore@v4
       with:
         path: ${{ inputs.roswell-cache-paths }}
-        key: roswell-${{ inputs.roswell-version }}-${{ steps.locals.outputs.current-month }}-${{ env.cache-name }}-${{ runner.os }}-${{ env.LISP }}-${{ inputs.cache-suffix }}
+        key: roswell-${{ inputs.roswell-version }}-${{ steps.locals.outputs.current-month }}-${{ env.cache-name }}-${{ runner.os }}-${{ runner.arch }}-${{ env.LISP }}-${{ inputs.cache-suffix }}
 
     - if: inputs.cache == 'true' && steps.roswell-cache-restore.outputs.cache-hit == 'true'
       name: Restore Path To Cached Files

From f243cb8ff65e341c0458ffc4b36c169701de3df2 Mon Sep 17 00:00:00 2001
From: Alexander Artemenko <svetlyak.40wt@gmail.com>
Date: Thu, 18 Apr 2024 11:07:18 +0300
Subject: [PATCH 05/21] Update changelog.

---
 changelog.lisp | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/changelog.lisp b/changelog.lisp
index 2ad66e3..9d9cab5 100644
--- a/changelog.lisp
+++ b/changelog.lisp
@@ -9,6 +9,12 @@
                               "PATH"
                               "CL"
                               "HOME"))
+  (4.0.4 2024-04-18
+         "
+# Fixed
+
+* Cache key was extended with runner architecture. Thanks for the contribution to Ákos Kiss!
+")
   (4.0.3 2024-03-12
          "
 # Fixed

From cf2feb42237a5c191d0245313d1bee3e5c9c2dc1 Mon Sep 17 00:00:00 2001
From: "github-actions[bot]" <actions@github.com>
Date: Thu, 18 Apr 2024 08:10:23 +0000
Subject: [PATCH 06/21] Update docs

---
 ChangeLog.md | 10 ++++++++++
 1 file changed, 10 insertions(+)

diff --git a/ChangeLog.md b/ChangeLog.md
index d7f67ec..0e6a75a 100644
--- a/ChangeLog.md
+++ b/ChangeLog.md
@@ -2,6 +2,16 @@
 
 # ChangeLog
 
+<a id="x-28PROJECT-DOCS-2FCHANGELOG-3A-3A-7C4-2E0-2E4-7C-2040ANTS-DOC-2FLOCATIVES-3ASECTION-29"></a>
+
+## 4.0.4 (2024-04-18)
+
+<a id="fixed"></a>
+
+### Fixed
+
+* Cache key was extended with runner architecture. Thanks for the contribution to Ákos Kiss!
+
 <a id="x-28PROJECT-DOCS-2FCHANGELOG-3A-3A-7C4-2E0-2E3-7C-2040ANTS-DOC-2FLOCATIVES-3ASECTION-29"></a>
 
 ## 4.0.3 (2024-03-12)

From 98a5a9d323588a38915a9f26c86155a902f32387 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C3=81kos=20Kiss?= <ak@coram.pub>
Date: Fri, 19 Apr 2024 04:00:07 +0200
Subject: [PATCH 07/21] Extend qlot cache key with runner architecture

---
 action.yml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/action.yml b/action.yml
index 1939ebd..6335af5 100644
--- a/action.yml
+++ b/action.yml
@@ -348,7 +348,7 @@ runs:
       uses: actions/cache/restore@v4
       with:
         path: ${{ inputs.qlot-cache-paths }}
-        key: qlot-${{ steps.locals.outputs.current-month }}-${{ env.cache-name }}-${{ runner.os }}-${{ env.QUICKLISP_DIST }}-${{ env.LISP }}-${{ hashFiles('qlfile', 'qlfile.lock', '*.asd') }}-${{ inputs.cache-suffix }}
+        key: qlot-${{ steps.locals.outputs.current-month }}-${{ env.cache-name }}-${{ runner.os }}-${{ runner.arch }}-${{ env.QUICKLISP_DIST }}-${{ env.LISP }}-${{ hashFiles('qlfile', 'qlfile.lock', '*.asd') }}-${{ inputs.cache-suffix }}
 
     - if: inputs.cache == 'true' && steps.qlot-cache-restore.outputs.cache-hit == 'true'
       name: Restore Path To .qlot/bin

From 4d8095299446f712c188427aa6ce3c30acc70945 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C3=81kos=20Kiss?= <ak@coram.pub>
Date: Fri, 19 Apr 2024 04:38:51 +0200
Subject: [PATCH 08/21] Add homebrew paths to roswell cache for macos-14

---
 action.yml | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/action.yml b/action.yml
index 6335af5..ba8322b 100644
--- a/action.yml
+++ b/action.yml
@@ -46,6 +46,8 @@ inputs:
       /usr/local/etc/roswell
       /usr/local/bin/ros
       /usr/local/Cellar/roswell
+      /opt/homebrew/bin/ros
+      /opt/homebrew/Cellar/roswell
 
   qlot-cache-paths:
     description: "Internal var. Don't use it."

From f4185fed530aaf9279cf3c9e269226625d4f31d1 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C3=81kos=20Kiss?= <ak@coram.pub>
Date: Fri, 19 Apr 2024 10:17:55 +0200
Subject: [PATCH 09/21] Add macos-14 to test matrix

---
 .github/workflows/tests.yml | 33 ++++++++++++++++++++++++++-------
 1 file changed, 26 insertions(+), 7 deletions(-)

diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml
index 6e9301e..fdd03d1 100644
--- a/.github/workflows/tests.yml
+++ b/.github/workflows/tests.yml
@@ -52,24 +52,43 @@ jobs:
             lisp: sbcl-bin
 
           # OSX
-          - os: macos-latest
+          - os: macos-13
             lisp: abcl-bin
-          - os: macos-latest
+          - os: macos-13
             lisp: ccl-bin
           # https://github.com/40ants/setup-lisp/issues/29
-          # - os: macos-latest
+          # - os: macos-13
           #   lisp: clasp-bin
           # https://github.com/40ants/setup-lisp/issues/28
-          # - os: macos-latest
+          # - os: macos-13
           #   lisp: clisp-head
           # https://github.com/40ants/setup-lisp/issues/30
-          # - os: macos-latest
+          # - os: macos-13
           #   lisp: cmu-bin
-          - os: macos-latest
+          - os: macos-13
             lisp: ecl
-          - os: macos-latest
+          - os: macos-13
             lisp: sbcl-bin
 
+          - os: macos-14
+            lisp: abcl-bin
+          # - os: macos-14
+          #   lisp: ccl-bin
+          # https://github.com/40ants/setup-lisp/issues/29
+          # - os: macos-14
+          #   lisp: clasp-bin
+          # https://github.com/40ants/setup-lisp/issues/28
+          # - os: macos-14
+          #   lisp: clisp-head
+          # https://github.com/40ants/setup-lisp/issues/30
+          # - os: macos-14
+          #   lisp: cmu-bin
+          - os: macos-14
+            lisp: ecl
+          - os: macos-14
+            lisp: sbcl-bin
+
+
           # Windows
 
           # https://github.com/40ants/setup-lisp/issues/27

From abd311beadfb6f07b58a2caa9f4d52b32557a2de Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C3=81kos=20Kiss?= <ak@coram.pub>
Date: Fri, 19 Apr 2024 10:22:53 +0200
Subject: [PATCH 10/21] Update changelog

---
 changelog.lisp | 9 +++++++++
 1 file changed, 9 insertions(+)

diff --git a/changelog.lisp b/changelog.lisp
index 9d9cab5..d363d32 100644
--- a/changelog.lisp
+++ b/changelog.lisp
@@ -9,6 +9,15 @@
                               "PATH"
                               "CL"
                               "HOME"))
+
+  (4.0.5 2024-04-19
+         "
+# Fixed
+
+* Extended test matrix with macos-14 runner.
+* Fixed Roswell cache paths for macos-14 runner.
+* Extended qlot cache key with runner architecture.
+")
   (4.0.4 2024-04-18
          "
 # Fixed

From 1e6a66be393721f6f30bb5ee73d9f059dfe2fa3f Mon Sep 17 00:00:00 2001
From: "github-actions[bot]" <actions@github.com>
Date: Fri, 26 Apr 2024 07:16:07 +0000
Subject: [PATCH 11/21] Update docs

---
 ChangeLog.md | 12 ++++++++++++
 1 file changed, 12 insertions(+)

diff --git a/ChangeLog.md b/ChangeLog.md
index 0e6a75a..d2937b1 100644
--- a/ChangeLog.md
+++ b/ChangeLog.md
@@ -2,6 +2,18 @@
 
 # ChangeLog
 
+<a id="x-28PROJECT-DOCS-2FCHANGELOG-3A-3A-7C4-2E0-2E5-7C-2040ANTS-DOC-2FLOCATIVES-3ASECTION-29"></a>
+
+## 4.0.5 (2024-04-19)
+
+<a id="fixed"></a>
+
+### Fixed
+
+* Extended test matrix with macos-14 runner.
+* Fixed Roswell cache paths for macos-14 runner.
+* Extended qlot cache key with runner architecture.
+
 <a id="x-28PROJECT-DOCS-2FCHANGELOG-3A-3A-7C4-2E0-2E4-7C-2040ANTS-DOC-2FLOCATIVES-3ASECTION-29"></a>
 
 ## 4.0.4 (2024-04-18)

From 976b3e541936450aecb987d6de13bb508511a6df Mon Sep 17 00:00:00 2001
From: Alexander Artemenko <svetlyak.40wt@gmail.com>
Date: Fri, 17 May 2024 15:59:07 +0300
Subject: [PATCH 12/21] Input argument qlot-no-deps was added.

It makes Qlot to ignore asd files and their dependencies.

This this might be useful in rare cases when your project contains a non-readable asd files such as templates.
---
 action.yml | 11 ++++++++++-
 1 file changed, 10 insertions(+), 1 deletion(-)

diff --git a/action.yml b/action.yml
index ba8322b..1f393e2 100644
--- a/action.yml
+++ b/action.yml
@@ -22,6 +22,11 @@ inputs:
     required: false
     default: 0.11.5
 
+  qlot-no-deps:
+    description: 'Make Qlot ignore asd files and their dependencies. This this might be useful in rare cases when your project contains a non-readable asd files such as templates.'
+    required: false
+    default: false
+
   qlfile-template:
     description: "Djula template for qlfile. All environment variables are available in it's context"
     required: false
@@ -363,7 +368,11 @@ runs:
       shell: lispsh -eo pipefail {0}
       run: |
         echo ::group::Create Qlot Environment
-        qlot install
+        if [[ "${{ inputs.qlot-no-deps }}" != 'false' ]]; then
+          qlot install
+        else
+          qlot install --no-deps
+        fi
         echo ::endgroup::
       env:
         QLFILE_TEMPLATE: ${{ inputs.qlfile-template }}

From e14ce570fc49013cb7612d4a75281c449a7dc821 Mon Sep 17 00:00:00 2001
From: Alexander Artemenko <svetlyak.40wt@gmail.com>
Date: Fri, 17 May 2024 16:19:34 +0300
Subject: [PATCH 13/21] Updated the changelog.

---
 changelog.lisp | 9 +++++++++
 1 file changed, 9 insertions(+)

diff --git a/changelog.lisp b/changelog.lisp
index d363d32..dedd513 100644
--- a/changelog.lisp
+++ b/changelog.lisp
@@ -10,6 +10,15 @@
                               "CL"
                               "HOME"))
 
+  (4.1.0 2024-05-17
+         "
+# Added
+
+* Input argument qlot-no-deps was added.
+
+  Make Qlot ignore asd files and their dependencies.
+
+  This this might be useful in rare cases when your project contains a non-readable asd files such as templates.")
   (4.0.5 2024-04-19
          "
 # Fixed

From fe2e6f885e5c4b90d5da7fed9e3c7ea473ce95e8 Mon Sep 17 00:00:00 2001
From: Alexander Artemenko <svetlyak.40wt@gmail.com>
Date: Sat, 18 May 2024 00:21:32 +0300
Subject: [PATCH 14/21] Add more logging.

---
 action.yml | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/action.yml b/action.yml
index 1f393e2..05bb0ec 100644
--- a/action.yml
+++ b/action.yml
@@ -369,8 +369,10 @@ runs:
       run: |
         echo ::group::Create Qlot Environment
         if [[ "${{ inputs.qlot-no-deps }}" != 'false' ]]; then
+          echo 'Running Qlot as usual'
           qlot install
         else
+          echo 'Running Qlot with --no-deps argument'
           qlot install --no-deps
         fi
         echo ::endgroup::

From da8536f4ffacf35710848583af73f3805f8b0258 Mon Sep 17 00:00:00 2001
From: Alexander Artemenko <svetlyak.40wt@gmail.com>
Date: Sat, 18 May 2024 00:22:24 +0300
Subject: [PATCH 15/21] Fixed condition.

---
 action.yml | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/action.yml b/action.yml
index 05bb0ec..102c6c7 100644
--- a/action.yml
+++ b/action.yml
@@ -369,11 +369,11 @@ runs:
       run: |
         echo ::group::Create Qlot Environment
         if [[ "${{ inputs.qlot-no-deps }}" != 'false' ]]; then
-          echo 'Running Qlot as usual'
-          qlot install
-        else
           echo 'Running Qlot with --no-deps argument'
           qlot install --no-deps
+        else
+          echo 'Running Qlot as usual'
+          qlot install
         fi
         echo ::endgroup::
       env:

From b6c2357e52352a33b9673f4cdbec5e43032c2b8f Mon Sep 17 00:00:00 2001
From: "github-actions[bot]" <actions@github.com>
Date: Sun, 4 Aug 2024 07:22:35 +0000
Subject: [PATCH 16/21] Update docs

---
 ChangeLog.md | 14 ++++++++++++++
 1 file changed, 14 insertions(+)

diff --git a/ChangeLog.md b/ChangeLog.md
index d2937b1..62ac152 100644
--- a/ChangeLog.md
+++ b/ChangeLog.md
@@ -2,6 +2,20 @@
 
 # ChangeLog
 
+<a id="x-28PROJECT-DOCS-2FCHANGELOG-3A-3A-7C4-2E1-2E0-7C-2040ANTS-DOC-2FLOCATIVES-3ASECTION-29"></a>
+
+## 4.1.0 (2024-05-17)
+
+<a id="added"></a>
+
+### Added
+
+* Input argument qlot-no-deps was added.
+
+Make Qlot ignore asd files and their dependencies.
+
+This this might be useful in rare cases when your project contains a non-readable asd files such as templates.
+
 <a id="x-28PROJECT-DOCS-2FCHANGELOG-3A-3A-7C4-2E0-2E5-7C-2040ANTS-DOC-2FLOCATIVES-3ASECTION-29"></a>
 
 ## 4.0.5 (2024-04-19)

From 9467768eb578b953705e2e3ea44e83d17b08ab4c Mon Sep 17 00:00:00 2001
From: Alexander Artemenko <svetlyak.40wt@gmail.com>
Date: Sat, 14 Dec 2024 09:37:59 +0000
Subject: [PATCH 17/21] Input variable `dynamic-space-size` was added. It can
 be used to default set memory size for SBCL.

---
 action.yml     | 9 +++++++++
 changelog.lisp | 2 ++
 qlfile.lock    | 8 ++++----
 3 files changed, 15 insertions(+), 4 deletions(-)

diff --git a/action.yml b/action.yml
index 102c6c7..4ab36ef 100644
--- a/action.yml
+++ b/action.yml
@@ -8,6 +8,10 @@ inputs:
     required: false
     default: v23.10.14.114
 
+  dynamic-space-size:
+    description: 'If given, then will be used to change dynamic space size for SBCL. This value will be written to ~/.roswell/config'
+    required: false
+
   asdf-system:
     description: 'ASDF system to install'
     required: false
@@ -259,6 +263,11 @@ runs:
             curl -L https://raw.githubusercontent.com/roswell/roswell/master/scripts/install-for-ci.sh | bash -xeo pipefail
         fi
 
+        if [[ "${{ inputs.dynamic-space-size }}" != "" ]]; then
+            echo ::group::Changing Dynamic Space Size in Roswell Config
+            echo "dynamic-space-size    0       ${{ inputs.dynamic-space-size }}" >> ~/.roswell/config 
+        fi
+
         echo ::endgroup::
         
     - if: inputs.cache == 'false' || steps.roswell-cache-restore.outputs.cache-hit != 'true'
diff --git a/changelog.lisp b/changelog.lisp
index dedd513..a4a6e2a 100644
--- a/changelog.lisp
+++ b/changelog.lisp
@@ -10,6 +10,8 @@
                               "CL"
                               "HOME"))
 
+  (4.2.0 2024-12-14
+         "Input variable `dynamic-space-size` was added. It can be used to default set memory size for SBCL.")
   (4.1.0 2024-05-17
          "
 # Added
diff --git a/qlfile.lock b/qlfile.lock
index 5b007a6..81abab8 100644
--- a/qlfile.lock
+++ b/qlfile.lock
@@ -1,11 +1,11 @@
 ("quicklisp" .
  (:class qlot/source/dist:source-dist
-  :initargs (:distribution "http://beta.quicklisp.org/dist/quicklisp.txt" :%version :latest)
-  :version "2023-10-21"))
+  :initargs (:distribution "https://beta.quicklisp.org/dist/quicklisp.txt" :%version :latest)
+  :version "2024-10-12"))
 ("ultralisp" .
  (:class qlot/source/dist:source-dist
-  :initargs (:distribution "http://dist.ultralisp.org" :%version :latest)
-  :version "20240304201501"))
+  :initargs (:distribution "https://dist.ultralisp.org" :%version :latest)
+  :version "20241214090000"))
 ("sly" .
  (:class qlot/source/github:source-github
   :initargs (:repos "svetlyak40wt/sly" :ref nil :branch "patches" :tag nil)

From 55b7212e2512b45a8d8543cc6725537fe5dd7ca4 Mon Sep 17 00:00:00 2001
From: Alexander Artemenko <svetlyak.40wt@gmail.com>
Date: Sat, 14 Dec 2024 09:51:14 +0000
Subject: [PATCH 18/21] Fixed small problem in the docs.

---
 .gitignore     | 1 +
 changelog.lisp | 1 +
 2 files changed, 2 insertions(+)

diff --git a/.gitignore b/.gitignore
index 2720985..f514c9e 100644
--- a/.gitignore
+++ b/.gitignore
@@ -2,3 +2,4 @@
 /env/
 /.qlot
 /README
+*.fasl
diff --git a/changelog.lisp b/changelog.lisp
index a4a6e2a..1d74655 100644
--- a/changelog.lisp
+++ b/changelog.lisp
@@ -8,6 +8,7 @@
 (defchangelog (:ignore-words ("ASDF"
                               "PATH"
                               "CL"
+                              "SBCL"
                               "HOME"))
 
   (4.2.0 2024-12-14

From 0bbf4764f4c11c708d00354e4a30cab8f8af4791 Mon Sep 17 00:00:00 2001
From: "github-actions[bot]" <actions@github.com>
Date: Sat, 14 Dec 2024 10:03:04 +0000
Subject: [PATCH 19/21] Update docs

---
 ChangeLog.md | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/ChangeLog.md b/ChangeLog.md
index 62ac152..2ca370e 100644
--- a/ChangeLog.md
+++ b/ChangeLog.md
@@ -2,6 +2,12 @@
 
 # ChangeLog
 
+<a id="x-28PROJECT-DOCS-2FCHANGELOG-3A-3A-7C4-2E2-2E0-7C-2040ANTS-DOC-2FLOCATIVES-3ASECTION-29"></a>
+
+## 4.2.0 (2024-12-14)
+
+Input variable `dynamic-space-size` was added. It can be used to default set memory size for `SBCL`.
+
 <a id="x-28PROJECT-DOCS-2FCHANGELOG-3A-3A-7C4-2E1-2E0-7C-2040ANTS-DOC-2FLOCATIVES-3ASECTION-29"></a>
 
 ## 4.1.0 (2024-05-17)

From 37d6351ff1399409ed092e6a7392e974c8c10cb1 Mon Sep 17 00:00:00 2001
From: Alexander Artemenko <svetlyak.40wt@gmail.com>
Date: Sat, 14 Dec 2024 22:05:20 +0000
Subject: [PATCH 20/21] Fixed the way how we set dynamic-space-size.

---
 action.yml     | 2 +-
 changelog.lisp | 2 ++
 2 files changed, 3 insertions(+), 1 deletion(-)

diff --git a/action.yml b/action.yml
index 4ab36ef..e3d1213 100644
--- a/action.yml
+++ b/action.yml
@@ -265,7 +265,7 @@ runs:
 
         if [[ "${{ inputs.dynamic-space-size }}" != "" ]]; then
             echo ::group::Changing Dynamic Space Size in Roswell Config
-            echo "dynamic-space-size    0       ${{ inputs.dynamic-space-size }}" >> ~/.roswell/config 
+            ros config set dynamic-space-size ${{ inputs.dynamic-space-size }}
         fi
 
         echo ::endgroup::
diff --git a/changelog.lisp b/changelog.lisp
index 1d74655..89be45f 100644
--- a/changelog.lisp
+++ b/changelog.lisp
@@ -11,6 +11,8 @@
                               "SBCL"
                               "HOME"))
 
+  (4.2.1 2024-12-15
+         "Fixed the way how we set dynamic-space-size.")
   (4.2.0 2024-12-14
          "Input variable `dynamic-space-size` was added. It can be used to default set memory size for SBCL.")
   (4.1.0 2024-05-17

From 76212e4597c780ad0e2ead24144b54310dffb6e3 Mon Sep 17 00:00:00 2001
From: "github-actions[bot]" <actions@github.com>
Date: Sat, 14 Dec 2024 22:08:30 +0000
Subject: [PATCH 21/21] Update docs

---
 ChangeLog.md | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/ChangeLog.md b/ChangeLog.md
index 2ca370e..a82b2a3 100644
--- a/ChangeLog.md
+++ b/ChangeLog.md
@@ -2,6 +2,12 @@
 
 # ChangeLog
 
+<a id="x-28PROJECT-DOCS-2FCHANGELOG-3A-3A-7C4-2E2-2E1-7C-2040ANTS-DOC-2FLOCATIVES-3ASECTION-29"></a>
+
+## 4.2.1 (2024-12-15)
+
+Fixed the way how we set dynamic-space-size.
+
 <a id="x-28PROJECT-DOCS-2FCHANGELOG-3A-3A-7C4-2E2-2E0-7C-2040ANTS-DOC-2FLOCATIVES-3ASECTION-29"></a>
 
 ## 4.2.0 (2024-12-14)