I’m using a “naked” lispworks (I have renamed my .lispworks initialization 
file), there’s no ASDF package at all. But when I compile “asdf.lisp” (after 
applying the patch I posted in asdf mailing list), the *only* warning is this 
“duplicated" definition of  (deftype fatal-condition). And it’s this issue 
blocking the whole testing process in LispWorks 6.

I have checked the same compilation in LispWorks 7, using also a naked console 
image. This time, zero warning!    So now I conclude this should be a small 
issue in LispWorks’ earlier compiler. It only remains to find a workaround 
solution.

I checked other DEFTYPE definitions in asdf.lisp, and found this one:

;;; stamps: a REAL or a boolean where T=-infinity, NIL=+infinity
(eval-when (#-lispworks :compile-toplevel :load-toplevel :execute)
  (deftype stamp () '(or real boolean)))

It seems that, in LispWorks, a DEFTYPE form shouldn’t be evaluated at 
compile-time, maybe because there’s nothing to be compiled. Instead, just 
evaluating the form at load-time (or execute time, as the latter two times 
cannot happen together), it will be enough to “have” that type correctly 
defined. So I have further modified asdf.lisp in this way:

(eval-when (#-lispworks :compile-toplevel :load-toplevel :execute)
  (deftype fatal-condition ()
    `(and serious-condition #+clozure (not ccl:process-reset))))

That is, instead of using with-upgradability, now we use EVAL-WHEN directly and 
disable :compile-toplevel for LispWorks.  It’s a solution for LispWorks 5 and 
6, and won’t cause any problem in LispWorks 7.

With this further changes, now I can run the test suite and all your 67 tests 
passed in LispWorks 6.1.1:

-#---------------------------------------
Using lispworks-6-1-1-console.exe
Ran 67 tests:
  67 passing and 0 failing
all tests apparently successful
-#———————————————————

For LispWorks 6.0.1, however, there’re 3 failures:

-#---------------------------------------
Using lispworks-6-0-1-console.exe
Ran 67 tests:
  64 passing and 3 failing
failing test(s):  test-deprecation.script test-sysdef-asdf.script 
test-utilities.script
-#———————————————————

For LispWorks 5.1.2, unfortunately the test scripts cannot quit from LW 
environment after each test, I have to manually quit by pasting a (quit) into 
REPL. But after doing such things 67 times, all tests have passed:

-#---------------------------------------
Using lispworks-5-1-2-console.EXE
Ran 67 tests:
  67 passing and 0 failing
all tests apparently successful
-#———————————————————

LispWorks 5.1 is the oldest non-free LispWorks edition I own on Windows. (On 
Linux I have LispWorks 5.0 purchased in 2007)

Attached new patch is a further enhancement of my previous patch.  I think the 
3 failures in LispWorks 6.0 must be caused by separated issues specified for 
that LW version, which I can try to fix later.

Regards,

Chun Tian

Attachment: lispworks-pid-exit-status-and-deftype-fatal-condition.patch
Description: Binary data


> Il giorno 30 ago 2017, alle ore 22:58, Faré <fah...@gmail.com> ha scritto:
> 
> Please apply the patch and run
> 
> make t l=lispworks LISPWORKS=/path/to/lispworks6
> 
> after dumping a console executable for lispworks6 using
> 
>       echo '(hcl:save-image "lispworks-console" :environment nil)' > si.lisp
>       lispworks-6-0-0-x86-linux -siteinit - -init - -build si.lisp
> 
> and tell us if there are any failures. I can't do that, I don't have a
> LispWorks 6 license.
> 
> —♯ƒ • François-René ÐVB Rideau •Reflection&Cybernethics• http://fare.tunes.org
> When a man says money can do anything, that settles it: he hasn't got any.
>                — Edgar Watson Howe
> 
> 
> On Wed, Aug 30, 2017 at 9:36 PM, Chun Tian (binghe)
> <binghe.l...@gmail.com> wrote:
>> Hi,
>> 
>> In latest ASDF, the function #’sys:pid-exit-status is used for LispWorks 6 
>> and early versions, but I found this symbol doesn’t have a bounded function 
>> at all:
>> 
>> CL-USER 1 > (describe 'sys:pid-exit-status)
>> 
>> SYSTEM:PID-EXIT-STATUS is a SYMBOL
>> NAME          "PID-EXIT-STATUS"
>> VALUE         #<unbound value>
>> FUNCTION      #<unbound function>
>> PLIST         NIL
>> PACKAGE       #<The SYSTEM package, 6625/8192 internal, 1277/2048 external>
>> 
>> In LispWorks 7.0, it’s even not an external symbol.  On the other side, the 
>> function #’sys:pipe-exit-status exists since at least LispWorks 5.1.2, I 
>> think it should be used for all LispWorks versions, not just 7.
>> 
>> The function #’sys:pipe-pid used in another ASDF function, exists since 
>> LispWorks 6.1, but ASDF only use it for LispWorks after 7.0.  I don’t know 
>> if this could cause any potential problem in LispWorks 6.1, but I guess 
>> there’s no problem calling it also in 6.1.
>> 
>> Basically I don’t know the purpose of these function calls, no actually 
>> tests were done. Use the patch with cautions … just calling non-exist 
>> functions are definitely wrong.
>> 
>> Regards,
>> 
>> Chun Tian
>> 
>> 

Attachment: signature.asc
Description: Message signed with OpenPGP using GPGMail

Reply via email to