cffi-grovel processes cl-libuv's grovel.lisp, produces a C file, compiles it with cc, runs the resulting executable to produce a Lisp file which is then compiled and loaded. That Lisp file is what contains a defctype form that defines the libuv::size-t type which is then referenced by the next file in cl-libuv.asd.

The ASDF integration bits for the cffi-grovel component are in cffi/grovel/asdf.lisp. Maybe some tracing and/or print debugging there can provide a clue.

HTH,
Luís

On Tue, 30 May 2023, 07:48 Zach Beane, <xach@xach.com> wrote:
Full log is here:
http://report.quicklisp.org/2023-05-29/failure-report/cl-libuv.html#cl-libuv

Here's part of it:

; file: /home/quicklisp/quicklisp-controller/dist/build-cache/cl-libuv/9f0aced1c6a2ef1737696a9a577f65fbf922334a/cl-libuv-20230529-git/bindings.lisp
; in: DEFCFUN ("uv_loop_size" UV-LOOP-SIZE)
;     (CFFI:DEFCFUN ("uv_loop_size" LIBUV::UV-LOOP-SIZE)
;         LIBUV::SIZE-T)
;
; caught ERROR:
;   (during macroexpansion of (DEFCFUN ("uv_loop_size" UV-LOOP-SIZE) ...))
;   Unknown CFFI type SIZE-T

If I try compiling the library in isolation, it seems to work. Is it
possible I've got some kind of stale fasl environment going on? Is
there more research I can do to understand why this happens?

Thanks,
Zach