Shinmera / parachute

An extensible and cross-compatible testing framework.
https://shinmera.github.io/parachute
zlib License
94 stars 9 forks source link

parachute no longer installs, but used to work fine #51

Closed schrum2 closed 1 year ago

schrum2 commented 1 year ago

I have a project on GitHub that I have not used since last November. Whenever I work with the project, I use GitHub codespaces, and I have a set list of instructions for installing needed programs and components so that I can work on the project. One of those components is parachute, and the project worked fine before. However, in the past few months, I suppose that something changed either with the latest parachute version, with how quicklisp works, or possibly this codespaces, but I'm asking here first for advice on the error message since it comes from the parachute source code.

Specifically, on a brand new GitHub codespace, I run the following commands:

sudo apt update
sudo apt install clisp
sudo apt-get -y install curl
curl -O https://beta.quicklisp.org/quicklisp.lisp

Then, I go into clisp and run these commands:

(load "quicklisp.lisp")
(quicklisp-quickstart:install)
(ql:add-to-init-file)
(ql:quickload "parachute")

That last command should install parachute, but leads to this output ending in an error message:

To load "parachute":
  Load 1 ASDF system:
    asdf
  Install 5 Quicklisp releases:
    documentation-utils form-fiddle parachute 
    trivial-custom-debugger trivial-indent
; Fetching #<URL "http://beta.quicklisp.org/archive/trivial-custom-debugger/2020-09-25/trivial-custom-debugger-20200925-git.tgz">
; 3.46KB
==================================================
3,544 bytes in 0.00 seconds (6338.71KB/sec)
; Fetching #<URL "http://beta.quicklisp.org/archive/form-fiddle/2019-07-10/form-fiddle-20190710-git.tgz">
; 5.50KB
==================================================
5,635 bytes in 0.00 seconds (8598.33KB/sec)
; Fetching #<URL "http://beta.quicklisp.org/archive/trivial-indent/2021-05-31/trivial-indent-20210531-git.tgz">
; 3.48KB
==================================================
3,564 bytes in 0.00 seconds (6905.69KB/sec)
; Fetching #<URL "http://beta.quicklisp.org/archive/documentation-utils/2019-07-10/documentation-utils-20190710-git.tgz">
; 8.70KB
==================================================
8,913 bytes in 0.00 seconds (13882.14KB/sec)
; Fetching #<URL "http://beta.quicklisp.org/archive/parachute/2023-02-14/parachute-20230214-git.tgz">
; 53.83KB
==================================================
55,125 bytes in 0.01 seconds (5698.42KB/sec)
; Loading "parachute"
[package trivial-indent]..........................
[package documentation-utils].....................
[package trivial-custom-debugger].................
[package form-fiddle].............................
[package parachute]
*** - READ from #<INPUT BUFFERED FILE-STREAM CHARACTER #P"/home/codespace/quicklisp/dists/quicklisp/software/parachute-20230214-git/toolkit.lisp" @47>: there is no package with name "MT"
schrum2 commented 1 year ago

Sorry, accidentally posted before I was finished. I did look at the file in question, and saw this code:

(defmacro with-timeout (timeout &body body)
  #+clisp
  `(mt:with-timeout (,timeout (error 'timeout))
     ,@body)
  #+(or allegro cmucl)
  `(mp:with-timeout (,timeout (error 'timeout))
     ,@body)
  #+sbcl
  `(sb-ext:with-timeout ,timeout
     ,@body)
  #-(or allegro clisp cmucl sbcl)
  `(progn
     ,@body))

I've only tried this using clisp, and would prefer to stick with it rather than trying a different version like sbcl.

I also tried running

(ql:quickload "mt")

but got the error

** - Continuable Error
System "mt" not found

Is there anything I can do to fix this? Is the problem perhaps somehow with the way the GitHub codespace is configured? It's basically just an Ubuntu terminal, but I've worked with their troubleshooting team before regarding weird configuration issues on their images.

Shinmera commented 1 year ago

mt is an internal package clisp provides. How old is the clisp you're using?

schrum2 commented 1 year ago

Whatever is installed by the command

sudo apt install clisp

Which is apparently version GNU CLISP 2.49.92 (2018-02-18), but like I said, this code worked fine less than a year ago, and given the date on the version number I assume the same version of clisp was being installed at that time when I and others were installing clisp on fresh GitHub codespaces

Shinmera commented 1 year ago

Yeah, well, the feature was added to parachute in the time since.

The mt:with-timeout function is documented here: https://clisp.sourceforge.io/impnotes/mt.html#with-timeout

And requires clisp with threads. I guess whatever apt installs does not have threads.

Shinmera commented 1 year ago

Also the current source for parachute has #+(and clisp mt) for this function, so your parachute is also out of date.