Re: A CFFI -ASDF integration bug

2020-08-27 Thread Ilya Perminov
I finally got some time to work on this and found a complication - load-source-op logically depends on generated .so files. Currently process-op produces .so files and load-source-op depends on it. If I move .c to .so compilation from process-op to compile-op, load-source-op will have to depend on

Re: A CFFI -ASDF integration bug

2020-08-04 Thread Ilya Perminov
Thanks for the explanation. process-op does not really need a generated .so file, only its name. I'll try moving compilation of .c files to compile-op and see if it causes any problems. It seems it will be an easy thing to do.

Re: A CFFI -ASDF integration bug

2020-08-04 Thread Ilya Perminov
I think there is a problem with the :around method approach - it is not safe for an ASDF extension to define methods on ASDF's operations/components, because other ASDF extensions may want to do the same thing. Imagine there is CFFI* and I want to use both CFFI and CFFI*.

Re: A CFFI -ASDF integration bug

2020-08-04 Thread Ilya Perminov
The files are the same. compile-op does not touch them at all. They are just its fake output-files. Is it a good idea to compile a .c to .o/.so in a compile-op? Its doc string says ""Operation for compiling a Lisp file to a FASL".

Re: A CFFI -ASDF integration bug

2020-08-04 Thread Ilya Perminov
The around methed will look something like this (defmethod input-files :around ((o asdf/bundle::gather-operation) (c system)) (unless (eq (asdf/bundle::bundle-type o) :no-output-file) (append (call-next-method) (remove-if-not (asdf/bundle::pathname-type-equal-function (asdf/bundl

Re: A CFFI -ASDF integration bug

2020-08-04 Thread Ilya Perminov
On Tue, Aug 4, 2020 at 12:51 PM Robert Goldman wrote: > I don't claim to understand this process, but wouldn't it be possible for you > to make your own input-files :around method for gather-operation that would > collect the outputs from the process-op's and add them to what you want? I think

Re: A CFFI -ASDF integration bug

2020-08-04 Thread Ilya Perminov
I think protobuf and CFFI structure their operations in a very similar way - process-op is analogous to proto-to-lisp, it takes a "specification" file and generates a lisp file and some other files. protobuf generates lisp(fasl) files only, so it does not need to do anything special to support bund

A CFFI -ASDF integration bug

2020-07-31 Thread Ilya Perminov
Hi, I found a ASDF-related CFFI bug a couple of days ago. Can anyone think of a good way of fixing it? A method in grovel/asdf.lisp adds output files of process-op to output files of compile-op: ;;; Declare the .o and .so files as compilation outputs, ;;; so they get picked up by bundle operatio

Re: [Asdf-devel] ASDF does not signal deferred non-style warnings as an error

2014-10-29 Thread Ilya Perminov
I figured out my problem: my code was not calling (enable-deferred-warnings-check). Sorry for the noise. I was not even aware of ENABLE-DEFERRED-WARNINGS-CHECK. What is the reason for suppressing defer-able warnings by default? As far as I understand the distinction between normal and deferred war

Re: [Asdf-devel] ASDF does not signal deferred non-style warnings as an error

2014-10-29 Thread Ilya Perminov
"Robert P. Goldman" writes: > I cannot replicate this, but this may be a new behavior introduced by > recent changes to SBCL, and I'm not on the latest release yet. Very strange. I can reproduce the problem with all the SBCL versions I have: 1.1.4, 1.1.18, 1.2.4. SBCL 1.2.4 includes the latest ve

[Asdf-devel] ASDF does not signal deferred non-style warnings as an error

2014-10-29 Thread Ilya Perminov
Hi, ASDF does not raise an error, when the SBCL compiler produces warnings (e.g. "undefined variable", "undefined function"). Example: test.asd = (defsystem :test :version "1.0" :components ((:file "test"))) test.lisp (defun foo () (+ a b)) ==