[Ecls-list] ASDF support for deferred warnings in ECL?

Faré fahree at gmail.com
Tue Jan 29 14:50:26 UTC 2013


On Tue, Jan 29, 2013 at 9:20 AM, Juan Jose Garcia-Ripoll
<juanjose.garciaripoll at gmail.com> wrote:
> On Sat, Jan 26, 2013 at 6:53 PM, Faré <fahree at gmail.com> wrote:
>>
>> I've been adding support for ASDF to save deferred warnings
>> (typically, forward function references) in a file,
>> so that if you do an incremental compilation, warnings
>> from previously compiled files are still correctly handled
>> at the end of the virtual with-compilation-unit.
>
> I still do not get it completely. Could you elaborate a bit?

I should probably add some manual entry about that.

A feature that has been requested at least as far back as 2004 is to
have some kind of with-compilation-unit around every system's
compilation.

For that, I want to properly handle forward reference warnings from
files that are *not* being (re)compiled in the current session but
have been in a previous one. And so on supported implementations
(currently CCL, SBCL), I am saving the deferred warnings about such
forward references. Could you help me do that with ECL?

The three API functions I need are as follows:

(defun reify-deferred-warnings ()
  "return a portable S-expression, portably readable and writeable in
any Common Lisp implementation
using READ within a WITH-SAFE-IO-SYNTAX, that represents the warnings
currently deferred by
WITH-COMPILATION-UNIT. One of three functions required for
deferred-warnings support in ASDF."

(defun unreify-deferred-warnings (reified-deferred-warnings)
  "given a S-expression created by REIFY-DEFERRED-WARNINGS,
reinstantiate the corresponding
deferred warnings as to be handled at the end of the current
WITH-COMPILATION-UNIT.
Handle any warning that has been resolved already,
such as an undefined function that has been defined since.
One of three functions required for deferred-warnings support in ASDF."

(defun reset-deferred-warnings ()
  "Reset the set of deferred warnings to be handled at the end of the
current WITH-COMPILATION-UNIT.
One of three functions required for deferred-warnings support in ASDF."

If you insist, I can loosen the restrictions so the reified form can
be implementation-specific and saved with read-eval t instead of a
portable SEXP subset saved with read-eval nil.

Thank you very much for your prompt response.

—♯ƒ • François-René ÐVB Rideau •Reflection&Cybernethics• http://fare.tunes.org
Memory is like an orgasm... it's better when you dont have to fake it.
	— Seymour Cray




More information about the ecl-devel mailing list