40ants / setup-lisp

GitHub Action to Setup Common Lisp tools
https://40ants.com/setup-lisp/
28 stars 3 forks source link

Various issues -- I only get a sbcl and ecl working on linux and mac #24

Open simendsjo opened 8 months ago

simendsjo commented 8 months ago

I'm developing a small library that I'd like to be portable across several implementations.

The library itself doesn't have any dependencies, so it should be fairly portable.

The test project depends on str, lisp-unit2 and sijo-doctest.

But unfortunately, it seems I only get sbcl-bin working on ubuntu-latest and macos-latest.

Some are also reported as green even though there's errors raised.

Heres the workflow I tested

on: [push]
jobs:
  tests:
    strategy:
      matrix:
        os:
          - ubuntu-latest
          - windows-latest
          - macos-latest
        lisp:
          - sbcl-bin
          - ccl-bin
          - ecl
          - abcl-bin
          - clasp-bin
          - cmu-bin
          - clisp-head
    runs-on: ${{ matrix.os }}
    env:
      LISP: ${{ matrix.lisp }}
    steps:
      - uses: actions/checkout@v4
      - uses: 40ants/setup-lisp@v4
        with:
          asdf-system: sijo-version/tests
          qlfile-template: |
            dist ultralisp http://dist.ultralisp.org
      - uses: 40ants/run-tests@v2
        with:
          asdf-system: sijo-version
svetlyak40wt commented 8 months ago

These links are unavailable – I see 404 error instead on all of them and also cant open the project https://github.com/simendsjo/sijo-version

simendsjo commented 8 months ago

Sorry, that repo isn't open source yet.

Here's another repo showing the same issues. ABCL fails with the HOME component error: https://github.com/simendsjo/sijo-doctest/actions/runs/8232306308/job/22510284197#step:3:269

But locally it works:

$ guix shell --pure abcl -- abcl --eval '(asdf:test-system :sijo-doctest/tests)' --eval '(quit)'
Armed Bear Common Lisp 1.9.2
Java 1.8.0_292 IcedTea
OpenJDK 64-Bit Server VM
Low-level initialization completed in 0.127 seconds.
Startup completed in 0.552 seconds.
Loading /home/simendsjo/.abclrc completed in 4.969 seconds.
;;; Computing Hangul syllable names
------- STARTING Testing: SIJO-DOCTEST 

Starting: SIJO-DOCTEST/TESTS::DOCTEST
SIJO-DOCTEST/TESTS::DOCTEST - PASSED (0.25s) : 28 assertions passed

Test Summary for :SIJO-DOCTEST (1 tests 0.26 sec)
  | 28 assertions total
  | 28 passed
  | 0 failed
  | 0 execution errors
  | 0 warnings
  | 0 empty
  | 0 missing tests

CCL has the same issue: https://github.com/simendsjo/sijo-doctest/actions/runs/8232306308/job/22510284008#step:4:389

SBCL Windows doesn't actually run any tests: https://github.com/simendsjo/sijo-doctest/actions/runs/8232306308/job/22510286756

ECL on Windows fails too: https://github.com/simendsjo/sijo-doctest/actions/runs/8232676398/job/22510614053#step:3:343

I've successfully ran sbcl, abcl, ccl and ecl on Linux locally using a pure guix shell as the above ABCL example.

simendsjo commented 8 months ago

My rc files has the following to load quicklisp, and I'm using ultralisp too.

#-quicklisp
(let ((quicklisp-init (merge-pathnames "quicklisp/setup.lisp"
                                       (user-homedir-pathname))))
  (when (probe-file quicklisp-init)
    (load quicklisp-init)))
simendsjo commented 8 months ago

Sorry, that repo isn't open source yet.

Should be public now.

svetlyak40wt commented 8 months ago

Interesting!

Now I see this problem on the test in setup-lisp's repository too.

Here is the build for ccl-bin: https://github.com/40ants/setup-lisp/actions/runs/8218461606/job/22475353500 At the first glance it is OK, but if you open logs the will see the same problem:

Screenshot 2024-03-12 at 11 15 42
svetlyak40wt commented 8 months ago

I'll try to fix it today.

svetlyak40wt commented 8 months ago

Cool! I've made action's tests fail on this error and they will capture other issues in quicklisp-fix too!

https://github.com/40ants/setup-lisp/actions/runs/8246384012/job/22552303121

simendsjo commented 8 months ago

Great, thanks! Got sbcl, ecl, ccl and abcl working on linux and mac. Problems with clasp, clisp, cmu and windows.

Haven't tested clasp, clisp, cmu or windows locally though, so it might not work. Should be pretty portable though.

svetlyak40wt commented 8 months ago

Are you testing on the branch from this PR?

https://github.com/40ants/setup-lisp/pull/25

simendsjo commented 8 months ago

Are you testing on the branch from this PR?

25

Yes, fix-ql-fix-loading

svetlyak40wt commented 8 months ago

Ah, I see, you do. There is caching issue on OSX. Seems ASDF does does not refreshes a path to the TEMP dir at the startup. I still not sure how to fix it. Probably will merge patch as is and will solve this problem in a separate PR.

Note, this line in the setup-lisp's README:

Most implementations are tested on Linux, but for some of them Windows and OSX are also should work.

Actually I've only tested SBCL on Windows and SBCL & CCL-BIN on OSX. Other implementations probably will fail. If you want to support them, you can try to figure solve problems one by one in a separate pull requests.

Note, CMU-BIN on Linux fails not in the setup-lisp it fails in the run-tests action. It fails with this trace on tests:

2024-03-12T20:20:51.2561843Z An unhandled error condition has been signalled: Type-error in KERNEL::OBJECT-NOT-TYPE-ERROR-HANDLER:  148206 is not of type (UNSIGNED-BYTE 16)
2024-03-12T20:20:51.2563034Z 
2024-03-12T20:20:51.2563055Z 
2024-03-12T20:20:51.2585128Z 0: (DEBUG:BACKTRACE 536870911 #<Synonym Stream to *TERMINAL-IO*>)
2024-03-12T20:20:51.2586432Z 1: (TRIVIAL-BACKTRACE:PRINT-BACKTRACE-TO-STREAM #<Synonym Stream to *TERMINAL-IO*>)
2024-03-12T20:20:51.2602867Z 2: (TRIVIAL-BACKTRACE:PRINT-BACKTRACE #<error printing object {60AE1545}> :OUTPUT NIL :IF-EXISTS :APPEND :VERBOSE NIL)
2024-03-12T20:20:51.2615862Z 3: (NIL #<error printing object {60AE1545}>)
2024-03-12T20:20:51.2628685Z 4: (NIL #<error printing object {60AE1545}>)
2024-03-12T20:20:51.2630947Z 5: (NIL 1 #<error printing object {60AE1545}>)[:EXTERNAL]
2024-03-12T20:20:51.2631915Z 6: (SIGNAL #<error printing object {60AE1545}>)
2024-03-12T20:20:51.2635600Z 7: (ERROR TYPE-ERROR :FUNCTION-NAME EXTENSIONS:STREAM-READ-CHAR :DATUM 148206 :EXPECTED-TYPE (UNSIGNED-BYTE 16))
2024-03-12T20:20:51.2640644Z 8: (KERNEL::OBJECT-NOT-TYPE-ERROR-HANDLER EXTENSIONS:STREAM-READ-CHAR #.(SYSTEM:INT-SAP #xF7A7AB9C) #<error printing object {60ADF4BD}> (208 16))
2024-03-12T20:20:51.2642450Z 9: (KERNEL::INTERNAL-ERROR #.(SYSTEM:INT-SAP #xF7A7A6CC) #<unused-arg>)
2024-03-12T20:20:51.2643826Z 10: ("call_into_lisp+#x74 [#x805A6E0] /home/runner/.roswell/impls/x86-64/linux/cmu-bin/21e/bin/lisp")
2024-03-12T20:20:51.2645564Z 11: ("funcall2+#x20 [#x805A540] /home/runner/.roswell/impls/x86-64/linux/cmu-bin/21e/bin/lisp")
2024-03-12T20:20:51.2647447Z 12: ("interrupt_internal_error+#x62 [#x8051A72] /home/runner/.roswell/impls/x86-64/linux/cmu-bin/21e/bin/lisp")
2024-03-12T20:20:51.2649098Z 13: ("sigill_handler+#x36B [#x805A35B] /home/runner/.roswell/impls/x86-64/linux/cmu-bin/21e/bin/lisp")
2024-03-12T20:20:51.2650632Z 14: (EXTENSIONS:STREAM-READ-CHAR #<unavailable-arg> #<unavailable-arg> #<unavailable-arg>)
2024-03-12T20:20:51.2658503Z 15: ("DEFMETHOD STREAM-READ-LINE (FUNDAMENTAL-CHARACTER-INPUT-STREAM)" #<error printing object {60EF2C8B}> #<unused-arg> #<error printing object {619D879D}>)
2024-03-12T20:20:51.2660260Z 16: (READ-LINE #<error printing object {619D879D}> NIL NIL NIL)
2024-03-12T20:20:51.2661146Z 17: ("DEFUN DUMP-NORMALIZATION-TESTS")
2024-03-12T20:20:51.2661918Z 18: ("DEFUN DUMP-NORMALIZATION-TESTS" 0)[:EXTERNAL]
2024-03-12T20:20:51.2663003Z 19: (LISP::%WITH-STANDARD-IO-SYNTAX #<error printing object {619D63D9}>)
2024-03-12T20:20:51.2663892Z 20: (DUMP-NORMALIZATION-TESTS)
2024-03-12T20:20:51.2664513Z 21: (DUMP-NORMALIZATION-TESTS 0)[:EXTERNAL]
2024-03-12T20:20:51.2665154Z 22: (DUMP-DATA-STRUCTURES)
2024-03-12T20:20:51.2665717Z 23: (DUMP-DATA-STRUCTURES 0)[:EXTERNAL]
2024-03-12T20:20:51.2666365Z 24: (CREATE-SOURCE-FILES)
2024-03-12T20:20:51.2675355Z 25: (CREATE-SOURCE-FILES 0)[:EXTERNAL]
2024-03-12T20:20:51.2688639Z 26: (UIOP/PACKAGE:SYMBOL-CALL :CL-UNICODE #:CREATE-SOURCE-FILES)[:OPTIONAL]
2024-03-12T20:20:51.2700831Z 27: (UIOP/PACKAGE:SYMBOL-CALL :CL-UNICODE #:CREATE-SOURCE-FILES)[:OPTIONAL]
2024-03-12T20:20:51.2712688Z 28: (NIL :CL-UNICODE #:CREATE-SOURCE-FILES NIL 0)[:OPTIONAL]
2024-03-12T20:20:51.2713849Z 29: (UIOP/PACKAGE:SYMBOL-CALL 2 :CL-UNICODE #:CREATE-SOURCE-FILES)[:EXTERNAL]
2024-03-12T20:20:51.2715241Z 30: (#<error printing object {605A003B}> #<unused-arg> #<unused-arg> #<unused-arg> #<unused-arg>)
2024-03-12T20:20:51.2716820Z 31: (#<error printing object {605A003B}> 4 #<unused-arg> #<unused-arg> #<unused-arg> #<unused-arg>)[:EXTERNAL]
2024-03-12T20:20:51.2718690Z 32: ("LAMBDA (G4681 G4682 G4683)" #<unused-arg> #<unused-arg> #<error printing object {6240D9DD}> #<error printing object {605E7EBD}>)
2024-03-12T20:20:51.2732392Z 33: ("LAMBDA (G4681 G4682 G4683)" 4 #<unused-arg> #<unused-arg> #<error printing object {6240D9DD}> #<error printing object {605E7EBD}>)[:EXTERNAL]
2024-03-12T20:20:51.2743589Z 34: (NIL)
2024-03-12T20:20:51.2755330Z 35: (NIL)
2024-03-12T20:20:51.2767429Z 36: (NIL)
2024-03-12T20:20:51.2779112Z 37: (NIL 0)[:EXTERNAL]
2024-03-12T20:20:51.2793346Z 38: (ASDF/SESSION:CALL-WITH-ASDF-SESSION #<error printing object {6112AB91}> :OVERRIDE NIL :KEY NIL :OVERRIDE-CACHE NIL :OVERRIDE-FORCING NIL)[:OPTIONAL]
2024-03-12T20:20:51.2806639Z 39: (ASDF/SESSION:CALL-WITH-ASDF-SESSION #<error printing object {6112AB91}> :OVERRIDE NIL :KEY NIL :OVERRIDE-CACHE NIL :OVERRIDE-FORCING NIL)[:OPTIONAL]
2024-03-12T20:20:51.2819548Z 40: (NIL #<error printing object {6112AB91}> (:OVERRIDE NIL :KEY NIL :OVERRIDE-CACHE NIL :OVERRIDE-FORCING NIL) 8)[:OPTIONAL]
2024-03-12T20:20:51.2832799Z 41: (ASDF/SESSION:CALL-WITH-ASDF-SESSION 9 #<error printing object {6112AB91}>)[:EXTERNAL]
2024-03-12T20:20:51.2849034Z 42: (ASDF/ACTION:CALL-WHILE-VISITING-ACTION #<error printing object {6240D9DD}> #<error printing object {605E7EBD}> #<error printing object {6112AAE1}>)
2024-03-12T20:20:51.2863455Z 43: (ASDF/ACTION:CALL-WHILE-VISITING-ACTION #<error printing object {6240D9DD}> #<error printing object {605E7EBD}> #<error printing object {6112AAE1}>)
2024-03-12T20:20:51.2866423Z 44: (ASDF/ACTION:CALL-WHILE-VISITING-ACTION 3 #<error printing object {6240D9DD}> #<error printing object {605E7EBD}> #<error printing object {6112AAE1}>)[:EXTERNAL]
2024-03-12T20:20:51.2869701Z 45: ((PCL:FAST-METHOD ASDF/ACTION:PERFORM-WITH-RESTARTS :AROUND (T T)) #<unused-arg> #<error printing object {6149CB3D}> #<error printing object {6240D9DD}> #<error printing object {605E7EBD}>)
2024-03-12T20:20:51.2872207Z 46: ((PCL:FAST-METHOD ASDF/PLAN:PERFORM-PLAN (T)) #<unused-arg> #<unused-arg> #<error printing object {612E1105}> #<unused-arg>)
2024-03-12T20:20:51.2874557Z 47: ((PCL:FAST-METHOD ASDF/PLAN:PERFORM-PLAN :AROUND (T)) #<unused-arg> #<error printing object {60903B2D}> #<error printing object {612E1105}> NIL)
2024-03-12T20:20:51.2877323Z 48: ((PCL:FAST-METHOD ASDF/OPERATE:OPERATE (ASDF/OPERATION:OPERATION ASDF/COMPONENT:COMPONENT)) #<unused-arg> #<unused-arg> #<error printing object {612B787D}> #<error printing object {6131CDDD}> NIL)
2024-03-12T20:20:51.2879631Z 49: ("LAMBDA (.PV-CELL. .NEXT-METHOD-CALL. OPERATION COMPONENT .REST-ARG.)")
2024-03-12T20:20:51.2881657Z 50: ((PCL:FAST-METHOD ASDF/OPERATE:OPERATE :AROUND (T T)) #<unused-arg> #<error printing object {612DF06D}> #<error printing object {612B787D}> #<error printing object {6131CDDD}> NIL)
2024-03-12T20:20:51.2883554Z 51: ("LAMBDA (.PV-CELL. .NEXT-METHOD-CALL. OPERATION COMPONENT .REST-ARG.)")
2024-03-12T20:20:51.2892332Z 52: ((PCL:FAST-METHOD ASDF/OPERATE:OPERATE :AROUND (T T)) #<unused-arg> #<error printing object {61714D25}> ASDF/LISP-ACTION:TEST-OP "sijo-doctest" NIL)
2024-03-12T20:20:51.2905128Z 53: (ASDF/SESSION:CALL-WITH-ASDF-SESSION #<error printing object {612B15A1}> :OVERRIDE T :KEY NIL :OVERRIDE-CACHE T :OVERRIDE-FORCING NIL)[:OPTIONAL]
2024-03-12T20:20:51.2907515Z 54: (ASDF/SESSION:CALL-WITH-ASDF-SESSION #<error printing object {612B15A1}> :OVERRIDE T :KEY NIL :OVERRIDE-CACHE T :OVERRIDE-FORCING NIL)[:OPTIONAL]
2024-03-12T20:20:51.2918020Z 55: ("LAMBDA (.PV-CELL. .NEXT-METHOD-CALL. OPERATION COMPONENT .REST-ARG.)")
2024-03-12T20:20:51.2932119Z 56: (ASDF/SESSION:CALL-WITH-ASDF-SESSION #<error printing object {61249BF9}> :OVERRIDE NIL :KEY NIL :OVERRIDE-CACHE NIL :OVERRIDE-FORCING NIL)[:OPTIONAL]
2024-03-12T20:20:51.2934617Z 57: (ASDF/SESSION:CALL-WITH-ASDF-SESSION #<error printing object {61249BF9}> :OVERRIDE NIL :KEY NIL :OVERRIDE-CACHE NIL :OVERRIDE-FORCING NIL)[:OPTIONAL]
2024-03-12T20:20:51.2946377Z 58: ((PCL:FAST-METHOD ASDF/OPERATE:OPERATE :AROUND (T T)) #<unused-arg> #<error printing object {61714D25}> ASDF/LISP-ACTION:TEST-OP "sijo-doctest" NIL)
2024-03-12T20:20:51.2957801Z 59: (ASDF/OPERATE:TEST-SYSTEM "sijo-doctest")[:OPTIONAL]
2024-03-12T20:20:51.2969895Z 60: (ASDF/OPERATE:TEST-SYSTEM "sijo-doctest")[:OPTIONAL]
2024-03-12T20:20:51.2981805Z 61: (NIL "sijo-doctest" NIL 0)[:OPTIONAL]
2024-03-12T20:20:51.2993809Z 62: (ASDF/OPERATE:TEST-SYSTEM 1 "sijo-doctest")[:EXTERNAL]
2024-03-12T20:20:51.3006054Z 63: (ROS.SCRIPT.RUN-TESTS::RUN-TESTS "sijo-doctest")
2024-03-12T20:20:51.3018026Z 64: (ROS.SCRIPT.RUN-TESTS::RUN-TESTS "sijo-doctest")
2024-03-12T20:20:51.3030044Z 65: (ROS.SCRIPT.RUN-TESTS::RUN-TESTS 1 "sijo-doctest")[:EXTERNAL]
svetlyak40wt commented 8 months ago

@simendsjo I've made this test run where all implementation which work on ubuntu are tested on Windows and OSX: https://github.com/40ants/setup-lisp/actions/runs/8260570459

Some of them have failed. I'll open issues on these matrix combinations and will make a full table of supported/non-supported combinations in the documentation.

simendsjo commented 8 months ago

Thanks! Starting to look really good. Windows+SBCL doesn't run tests on my project though https://github.com/40ants/setup-lisp/actions/runs/8260570459/job/22596297018

image

simendsjo commented 8 months ago

Btw, should I rather add an issue to https://github.com/40ants/run-tests as it looks like this workflow works just fine?

svetlyak40wt commented 8 months ago

Sure, if run-tests does not work, then issue should be there.