From ef7dd812d116720396d1a7b480ea50c34488f658 Mon Sep 17 00:00:00 2001 From: Alexander Artemenko Date: Thu, 18 Feb 2021 16:29:42 +0300 Subject: [PATCH 01/16] Added one test and a few exports. --- cl-info-test.asd | 6 +++--- src/core.lisp | 13 +++++++++++-- t/core.lisp | 18 +++++++++--------- 3 files changed, 23 insertions(+), 14 deletions(-) diff --git a/cl-info-test.asd b/cl-info-test.asd index 12037fe9..76f17eac 100644 --- a/cl-info-test.asd +++ b/cl-info-test.asd @@ -1,6 +1,6 @@ (defsystem cl-info-test - :author "" - :license "" + :author "Alexander Artemenko" + :license "BSD" :class :package-inferred-system :pathname "t" :depends-on ("hamcrest" @@ -9,4 +9,4 @@ :perform (test-op (op c) (unless (symbol-call :rove :run c) - (error "Tests failed")))) + (error "Tests failed")))) diff --git a/src/core.lisp b/src/core.lisp index 6cf43e08..3c2e2688 100644 --- a/src/core.lisp +++ b/src/core.lisp @@ -1,4 +1,4 @@ -(defpackage #:cl-info +(uiop:define-package #:cl-info (:nicknames #:cl-info/core) (:use #:cl) (:import-from #:mgl-pax-minimal @@ -6,7 +6,16 @@ #:reader) (:export #:cl-info #:get-cl-info - #:get-system-info)) + #:get-system-info + #:get-software-version + #:get-software-type + #:get-lisp-version + #:get-lisp-type + #:get-asdf-version + #:get-version + #:get-name + #:absent-p + #:get-path)) (in-package cl-info/core) diff --git a/t/core.lisp b/t/core.lisp index 58e44501..7bef2036 100644 --- a/t/core.lisp +++ b/t/core.lisp @@ -1,4 +1,4 @@ -(defpackage #:cl-info-test/core +(uiop:define-package #:cl-info-test/core (:use #:cl) (:import-from #:cl-info) (:import-from #:hamcrest/rove @@ -6,15 +6,15 @@ #:assert-that) (:import-from #:rove #:testing + #:ok #:deftest)) (in-package cl-info-test/core) -(defun foo (a b) - (list a b)) - - -(deftest test-some-staff - (testing "Replace this test with real staff." - (assert-that (foo 1 2) - (contains 1 2)))) +(deftest test-system-info + (testing "Checking if we can get system info and it will have the version from ASDF" + (let ((info (cl-info:get-system-info :cl-info)) + (system (asdf:find-system :cl-info))) + (ok (not (null info))) + (ok (equal (cl-info:get-version info) + (asdf:component-version system)))))) From dbbfb35f6b7d8b8edc44f8781c4d663a33dd77af Mon Sep 17 00:00:00 2001 From: Alexander Artemenko Date: Thu, 18 Feb 2021 16:49:18 +0300 Subject: [PATCH 02/16] Checking why SBCL is used in all test runs. --- .github/workflows/ci.yml | 55 +++++++++++++++++++++------------------- 1 file changed, 29 insertions(+), 26 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 6bcf23ac..71a7e0d3 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -40,36 +40,36 @@ jobs: matrix: os: - ubuntu-latest - - macos-latest +# - macos-latest quicklisp-dist: - quicklisp - - ultralisp +# - ultralisp lisp: - sbcl-bin - ccl-bin - - ecl - - abcl - - allegro - - clisp - - cmucl - include: - # Seems allegro is does not support 64bit OSX. - # Unable to install it using Roswell: - # alisp is not executable. Missing 32bit glibc? - - lisp: allegro - os: macos-latest - can-fail: true - # CLisp on Ubuntu can't be installed because of the error: - # # does not have - # the required size or alignment - - lisp: clisp - os: ubuntu-latest - can-fail: true - # CMUCL is 32bit and cant' work on 64bit OSX: - # .roswell/impls/x86-64/darwin/cmu-bin/21d/bin/lisp is not executable. Missing 32bit glibc? - - lisp: cmucl - os: macos-latest - can-fail: true + # - ecl + # - abcl + # - allegro + # - clisp + # - cmucl + # include: + # # Seems allegro is does not support 64bit OSX. + # # Unable to install it using Roswell: + # # alisp is not executable. Missing 32bit glibc? + # - lisp: allegro + # os: macos-latest + # can-fail: true + # # CLisp on Ubuntu can't be installed because of the error: + # # # does not have + # # the required size or alignment + # - lisp: clisp + # os: ubuntu-latest + # can-fail: true + # # CMUCL is 32bit and cant' work on 64bit OSX: + # # .roswell/impls/x86-64/darwin/cmu-bin/21d/bin/lisp is not executable. Missing 32bit glibc? + # - lisp: cmucl + # os: macos-latest + # can-fail: true env: LISP: ${{ matrix.lisp }} @@ -87,7 +87,10 @@ jobs: {% endifequal %} github mgl-pax svetlyak40wt/mgl-pax :branch mgl-pax-minimal - + + - name: Check Roswell setup + run: ros config + - uses: 40ants/run-tests@v2 with: asdf-system: cl-info From 1c8a8e4d7bb3a9f8dcc15a8dd96c86adb0038458 Mon Sep 17 00:00:00 2001 From: Alexander Artemenko Date: Thu, 18 Feb 2021 16:56:01 +0300 Subject: [PATCH 03/16] Experimental test which should fail on SBCL --- t/core.lisp | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/t/core.lisp b/t/core.lisp index 7bef2036..62e33c9f 100644 --- a/t/core.lisp +++ b/t/core.lisp @@ -18,3 +18,9 @@ (ok (not (null info))) (ok (equal (cl-info:get-version info) (asdf:component-version system)))))) + + +(deftest test-lisp-implementation + (testing "Checking if we can get system info and it will have the version from ASDF" + (ok (not (string-equal (lisp-implementation-type) + "sbcl"))))) From 13a60761e46790fc114f6600f8762d4fc5748273 Mon Sep 17 00:00:00 2001 From: Alexander Artemenko Date: Thu, 18 Feb 2021 16:56:37 +0300 Subject: [PATCH 04/16] No, lets it fails on other systemss. --- t/core.lisp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/t/core.lisp b/t/core.lisp index 62e33c9f..b37c7956 100644 --- a/t/core.lisp +++ b/t/core.lisp @@ -22,5 +22,5 @@ (deftest test-lisp-implementation (testing "Checking if we can get system info and it will have the version from ASDF" - (ok (not (string-equal (lisp-implementation-type) - "sbcl"))))) + (ok (equal (lisp-implementation-type) + "sbcl")))) From d89151ee1607b695ab9f46555da01ba478cc1baa Mon Sep 17 00:00:00 2001 From: Alexander Artemenko Date: Thu, 18 Feb 2021 17:08:38 +0300 Subject: [PATCH 05/16] Fixed case. --- t/core.lisp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/t/core.lisp b/t/core.lisp index b37c7956..1c6394e1 100644 --- a/t/core.lisp +++ b/t/core.lisp @@ -23,4 +23,4 @@ (deftest test-lisp-implementation (testing "Checking if we can get system info and it will have the version from ASDF" (ok (equal (lisp-implementation-type) - "sbcl")))) + "SBCL")))) From 496357841e65b757dd6e5376b6fa2ff236acc8b2 Mon Sep 17 00:00:00 2001 From: Alexander Artemenko Date: Thu, 18 Feb 2021 18:33:42 +0300 Subject: [PATCH 06/16] Pass coveralls-token only for sbcl-bin. --- .github/workflows/ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 71a7e0d3..f3be4716 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -94,7 +94,7 @@ jobs: - uses: 40ants/run-tests@v2 with: asdf-system: cl-info - coveralls-token: ${{ secrets.github_token }} + coveralls-token: ${{ matrix.lisp == 'sbcl-bin' && secrets.github_token }} # This is additional step to check # a command line script From ac58492f8e36ca5e34cc9c2bb0715adaeee365c9 Mon Sep 17 00:00:00 2001 From: Alexander Artemenko Date: Thu, 18 Feb 2021 18:47:39 +0300 Subject: [PATCH 07/16] Try another version of run-test. --- .github/workflows/ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index f3be4716..f6fc9c19 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -91,7 +91,7 @@ jobs: - name: Check Roswell setup run: ros config - - uses: 40ants/run-tests@v2 + - uses: 40ants/run-tests@fix-coveralls-for-not-supported-impls with: asdf-system: cl-info coveralls-token: ${{ matrix.lisp == 'sbcl-bin' && secrets.github_token }} From d5cf51b3301f003fbfecc317af0ad786e899153a Mon Sep 17 00:00:00 2001 From: Alexander Artemenko Date: Thu, 18 Feb 2021 20:40:43 +0300 Subject: [PATCH 08/16] More tests of environment. --- .github/workflows/ci.yml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index f6fc9c19..6ae216a8 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -95,6 +95,10 @@ jobs: with: asdf-system: cl-info coveralls-token: ${{ matrix.lisp == 'sbcl-bin' && secrets.github_token }} + env: + FOO: BAR + BLAH: ${{ matrix.lisp == 'sbcl-bin' && matrix.quicklisp-dist }} + MINOR: ${{ matrix.lisp == 'ccl-bin' && matrix.missing-key }} # This is additional step to check # a command line script From 0de1153e41c8ff0a9b6744f75f87f25a73c3ae50 Mon Sep 17 00:00:00 2001 From: Alexander Artemenko Date: Thu, 18 Feb 2021 21:08:45 +0300 Subject: [PATCH 09/16] Collecting coverage only in one matrix combination. --- .github/workflows/ci.yml | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 6ae216a8..45db4d44 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -42,8 +42,8 @@ jobs: - ubuntu-latest # - macos-latest quicklisp-dist: - - quicklisp -# - ultralisp +# - quicklisp + - ultralisp lisp: - sbcl-bin - ccl-bin @@ -94,11 +94,11 @@ jobs: - uses: 40ants/run-tests@fix-coveralls-for-not-supported-impls with: asdf-system: cl-info - coveralls-token: ${{ matrix.lisp == 'sbcl-bin' && secrets.github_token }} - env: - FOO: BAR - BLAH: ${{ matrix.lisp == 'sbcl-bin' && matrix.quicklisp-dist }} - MINOR: ${{ matrix.lisp == 'ccl-bin' && matrix.missing-key }} + coveralls-token: | + ${{ matrix.lisp == 'sbcl-bin' && + matrix.os == 'ubuntu-latest' && + matrix.quicklisp-dist == 'ultralisp' && + secrets.github_token }} # This is additional step to check # a command line script From 308576fd440fe2437ea7af64061478d08316325f Mon Sep 17 00:00:00 2001 From: Alexander Artemenko Date: Thu, 18 Feb 2021 21:49:14 +0300 Subject: [PATCH 10/16] Added a new test. --- t/core.lisp | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/t/core.lisp b/t/core.lisp index 1c6394e1..4c63972f 100644 --- a/t/core.lisp +++ b/t/core.lisp @@ -20,7 +20,8 @@ (asdf:component-version system)))))) -(deftest test-lisp-implementation +(deftest test-absent-system-info (testing "Checking if we can get system info and it will have the version from ASDF" - (ok (equal (lisp-implementation-type) - "SBCL")))) + (let ((info (cl-info:get-system-info :unknown-system))) + (ok (not (null info))) + (ok (cl-info:absent-p info))))) From b63c23e4af9161c88e1f19b8b554b57d34939c4c Mon Sep 17 00:00:00 2001 From: Alexander Artemenko Date: Thu, 18 Feb 2021 22:09:51 +0300 Subject: [PATCH 11/16] Use run-tests@v2 again. --- .github/workflows/ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 45db4d44..49f94cf7 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -91,7 +91,7 @@ jobs: - name: Check Roswell setup run: ros config - - uses: 40ants/run-tests@fix-coveralls-for-not-supported-impls + - uses: 40ants/run-tests@v2 with: asdf-system: cl-info coveralls-token: | From 48143e772f0ba5d9fcc0d6a8eacd06570a088e1f Mon Sep 17 00:00:00 2001 From: Alexander Artemenko Date: Thu, 18 Feb 2021 22:15:07 +0300 Subject: [PATCH 12/16] Enabled other impls. --- .github/workflows/ci.yml | 50 ++++++++++++++++++++-------------------- 1 file changed, 25 insertions(+), 25 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 49f94cf7..6173ae4d 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -40,36 +40,36 @@ jobs: matrix: os: - ubuntu-latest -# - macos-latest + - macos-latest quicklisp-dist: -# - quicklisp + - quicklisp - ultralisp lisp: - sbcl-bin - ccl-bin - # - ecl - # - abcl - # - allegro - # - clisp - # - cmucl - # include: - # # Seems allegro is does not support 64bit OSX. - # # Unable to install it using Roswell: - # # alisp is not executable. Missing 32bit glibc? - # - lisp: allegro - # os: macos-latest - # can-fail: true - # # CLisp on Ubuntu can't be installed because of the error: - # # # does not have - # # the required size or alignment - # - lisp: clisp - # os: ubuntu-latest - # can-fail: true - # # CMUCL is 32bit and cant' work on 64bit OSX: - # # .roswell/impls/x86-64/darwin/cmu-bin/21d/bin/lisp is not executable. Missing 32bit glibc? - # - lisp: cmucl - # os: macos-latest - # can-fail: true + - ecl + - abcl + - allegro + - clisp + - cmucl + include: + # Seems allegro is does not support 64bit OSX. + # Unable to install it using Roswell: + # alisp is not executable. Missing 32bit glibc? + - lisp: allegro + os: macos-latest + can-fail: true + # CLisp on Ubuntu can't be installed because of the error: + # # does not have + # the required size or alignment + - lisp: clisp + os: ubuntu-latest + can-fail: true + # CMUCL is 32bit and cant' work on 64bit OSX: + # .roswell/impls/x86-64/darwin/cmu-bin/21d/bin/lisp is not executable. Missing 32bit glibc? + - lisp: cmucl + os: macos-latest + can-fail: true env: LISP: ${{ matrix.lisp }} From d3b2f80c825c919c619350c2a9c36ee4c2df2301 Mon Sep 17 00:00:00 2001 From: Alexander Artemenko Date: Thu, 18 Feb 2021 23:10:46 +0300 Subject: [PATCH 13/16] Trying to turn off lisp impls which fails. --- .github/workflows/ci.yml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 6173ae4d..4513f573 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -33,7 +33,7 @@ jobs: tests: runs-on: ${{ matrix.os }} - continue-on-error: ${{ matrix.can-fail || false }} +# continue-on-error: ${{ matrix.can-fail || false }} strategy: fail-fast: false @@ -52,24 +52,24 @@ jobs: - allegro - clisp - cmucl - include: + exclude: # Seems allegro is does not support 64bit OSX. # Unable to install it using Roswell: # alisp is not executable. Missing 32bit glibc? - lisp: allegro os: macos-latest - can-fail: true + # can-fail: true # CLisp on Ubuntu can't be installed because of the error: # # does not have # the required size or alignment - lisp: clisp os: ubuntu-latest - can-fail: true + # can-fail: true # CMUCL is 32bit and cant' work on 64bit OSX: # .roswell/impls/x86-64/darwin/cmu-bin/21d/bin/lisp is not executable. Missing 32bit glibc? - lisp: cmucl os: macos-latest - can-fail: true + # can-fail: true env: LISP: ${{ matrix.lisp }} From 7e740be51690edc66ce5f7ce63a3b866681b30ea Mon Sep 17 00:00:00 2001 From: Alexander Artemenko Date: Fri, 19 Feb 2021 17:52:27 +0300 Subject: [PATCH 14/16] Use custom version of bordeaux-threads when using Ultralisp for running tests. --- .github/workflows/ci.yml | 9 +++++++++ qlfile | 4 ++++ qlfile.lock | 6 +++++- 3 files changed, 18 insertions(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 4513f573..0481b335 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -64,6 +64,12 @@ jobs: # the required size or alignment - lisp: clisp os: ubuntu-latest + # CLISP on OSX is built without support for threads, + # but Rove depends on bordeaux-threads and it fails to load + # https://github.com/roswell/roswell/issues/461 + # - lisp: clisp + # os: macos-latest + # quicklisp-dist: ultralisp # can-fail: true # CMUCL is 32bit and cant' work on 64bit OSX: # .roswell/impls/x86-64/darwin/cmu-bin/21d/bin/lisp is not executable. Missing 32bit glibc? @@ -84,6 +90,9 @@ jobs: qlfile-template: | {% ifequal quicklisp_dist "ultralisp" %} dist ultralisp http://dist.ultralisp.org + # Unless this pull will be merged: + # https://github.com/sionescu/bordeaux-threads/pull/86 + github bordeaux-threads svetlyak40wt/bordeaux-threads :branch fix-apiv2-for-no-threads {% endifequal %} github mgl-pax svetlyak40wt/mgl-pax :branch mgl-pax-minimal diff --git a/qlfile b/qlfile index 075deb24..a3f71e04 100644 --- a/qlfile +++ b/qlfile @@ -1,4 +1,8 @@ dist ultralisp http://dist.ultralisp.org +# Unless this pull will be merged: +# https://github.com/sionescu/bordeaux-threads/pull/86 +github bordeaux-threads svetlyak40wt/bordeaux-threads :branch fix-apiv2-for-no-threads + # Unless this patch is not merged: github mgl-pax svetlyak40wt/mgl-pax :branch mgl-pax-minimal diff --git a/qlfile.lock b/qlfile.lock index b23305f2..537a2560 100644 --- a/qlfile.lock +++ b/qlfile.lock @@ -5,7 +5,11 @@ ("ultralisp" . (:class qlot/source/dist:source-dist :initargs (:distribution "http://dist.ultralisp.org" :%version :latest) - :version "20210207102000")) + :version "20210219143000")) +("bordeaux-threads" . + (:class qlot/source/github:source-github + :initargs (:repos "svetlyak40wt/bordeaux-threads" :ref nil :branch "fix-apiv2-for-no-threads" :tag nil) + :version "github-c5ed58df63356d7e2892b54cbd9dd7da")) ("mgl-pax" . (:class qlot/source/github:source-github :initargs (:repos "svetlyak40wt/mgl-pax" :ref nil :branch "mgl-pax-minimal" :tag nil) From 8688b851c1713b9ac186b85ddbc8d65b50ea34d4 Mon Sep 17 00:00:00 2001 From: Alexander Artemenko Date: Fri, 19 Feb 2021 18:50:56 +0300 Subject: [PATCH 15/16] Removed allegro on Ubuntu from matrix. --- .github/workflows/ci.yml | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 0481b335..a299245b 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -73,9 +73,13 @@ jobs: # can-fail: true # CMUCL is 32bit and cant' work on 64bit OSX: # .roswell/impls/x86-64/darwin/cmu-bin/21d/bin/lisp is not executable. Missing 32bit glibc? - - lisp: cmucl - os: macos-latest + - os: macos-latest + lisp: cmucl # can-fail: true + # Disabled because Rove does not work on this configuration: + # https://github.com/fukamachi/rove/issues/47 + - os: ubuntu-latest + lisp: allegro env: LISP: ${{ matrix.lisp }} From fabaf21bdbb61315b6d023691c9a335217e2ce20 Mon Sep 17 00:00:00 2001 From: Alexander Artemenko Date: Fri, 19 Feb 2021 21:50:24 +0300 Subject: [PATCH 16/16] Removed my patch of bordeaux-threads because they don't want to support systems without threads support. --- .github/workflows/ci.yml | 31 +++++++++++++++---------------- 1 file changed, 15 insertions(+), 16 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index a299245b..17a60a31 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -56,30 +56,32 @@ jobs: # Seems allegro is does not support 64bit OSX. # Unable to install it using Roswell: # alisp is not executable. Missing 32bit glibc? - - lisp: allegro - os: macos-latest - # can-fail: true - # CLisp on Ubuntu can't be installed because of the error: - # # does not have - # the required size or alignment - - lisp: clisp - os: ubuntu-latest + - os: macos-latest + lisp: allegro # CLISP on OSX is built without support for threads, # but Rove depends on bordeaux-threads and it fails to load # https://github.com/roswell/roswell/issues/461 - # - lisp: clisp - # os: macos-latest - # quicklisp-dist: ultralisp - # can-fail: true + - os: macos-latest + lisp: clisp + quicklisp-dist: ultralisp # CMUCL is 32bit and cant' work on 64bit OSX: # .roswell/impls/x86-64/darwin/cmu-bin/21d/bin/lisp is not executable. Missing 32bit glibc? - os: macos-latest lisp: cmucl - # can-fail: true + # CLisp on Ubuntu can't be installed because of the error: + # # does not have + # the required size or alignment + - os: ubuntu-latest + lisp: clisp # Disabled because Rove does not work on this configuration: # https://github.com/fukamachi/rove/issues/47 - os: ubuntu-latest lisp: allegro + # CMUCL on ubuntu is built without threading support + # but Rove depends on bordeaux-threads and it fails to load + # https://github.com/roswell/roswell/issues/461 + - os: ubuntu-latest + lisp: cmucl env: LISP: ${{ matrix.lisp }} @@ -94,9 +96,6 @@ jobs: qlfile-template: | {% ifequal quicklisp_dist "ultralisp" %} dist ultralisp http://dist.ultralisp.org - # Unless this pull will be merged: - # https://github.com/sionescu/bordeaux-threads/pull/86 - github bordeaux-threads svetlyak40wt/bordeaux-threads :branch fix-apiv2-for-no-threads {% endifequal %} github mgl-pax svetlyak40wt/mgl-pax :branch mgl-pax-minimal