Subject: [clisp-list] CL-2.31 on Win98

From: lin8080 <[email-masked]>
Date: Sat Sep 6 15:32:07 2003

Hallo

Now I get the CLisp-2.31.zip from source forge and extract it. Soon I
see a problem. When following the steps in the readme, to start lisp.exe
brings an error message:

 The lisp.exe file is linked to missing export kernel32.dll:
CcreateHardlinkA.

It seems that lisp.exe is compiled on a win after 98 version. So I gues
the kernel32.dll is in a directory named root, I create one and copied
the dll in there, but this did not work.
Else I think it can be possible, there are more than one missing dll
files.
So I try: regsvr32 /i kernel32.dll  will not work.
Then I set the path in the autoexec.bat  will not work.

Where is the kernel32.dll stored in newer windows versions? (--> Is it
possible to make cl2.31 working by manipulating the treestructure in
win98?) How do I set a hardlink to the missing dll (and maybe other, ie
wuplang32.dll) and will this work? Is win98 no longer supported? Can the
compile be done with relative pathnames, so windows will look up in the
set paths? What can I do to make cl231 work on win98?

uhhh.
stefan

---

From: Arseny Slobodjuck <[email-masked]>
Date: Sat Sep 6 16:12:04 2003

Hi,

>  The lisp.exe file is linked to missing export kernel32.dll:

Full version (with modules) doesn't work on win98 and NT4, indeed. As
Sam said CreateHardlink needed for COPY-FILE :METHOD :HARDLINK. Base
version works on NT4.

-- 
Best regards,
 Arseny

---

From: lin8080 <[email-masked]>
Date: Fri Sep 19 13:29:22 2003

Hallo

Now I found time to take a closer look and I find a second lisp.exe in
the directory /base. This works fine on win98. 

[3]> (lisp-implementation-version)
"2.31 (released 2003-09-01) (built 3271571601) (memory 3272780650)"

BTW: Is it possible to replace the word-monster 
(lisp-implementation-version) with single (version)? (I tried this
without lisp-..., because I remember so)

Nice, thank you. 
Which version should I now report, when there is a full and a base
lisp.exe? And is the difference important?

Then I try to build an array which should look like: 

(a0 a1 a2 a3)
(b0 b1 b2 b3 b4 5b)
(c0 c1 c2)
(d0 d1 d2 d3 d4 d5 d6 d7)
...
but I don't get it. Is this impossible to do? 

While trying, I saw that still (since 2.24) 
(setf (aref neuron02 0 2) 00) 
is always print-out 0 and not 00. I have some values like (01 02 03...
23 24 25) and numbers with single digits are not nice as a table on the
screen (it looks like (1 2 3 ... 23 24 25)). Until now I set this to a
string 
[87]> (setf (aref feld 1 0) "00")
"00"

Else I come to another thing I want to print here. 
;; (setf feld (make-array '(4 4))) goes before.

[71]> (setf (aref feld 0 3) nn)

*** - EVAL: variable NN has no value
The following restarts are available:
STORE-VALUE    :R1      You may input a new value for NN.
USE-VALUE      :R2      You may input a value to be used instead of NN.

1. Break [72]> :r2

Use instead of NN: 'nn
'NN
[73]> feld
#2A((0 1 'NN NIL) (NIL AA NIL NIL) (NIL NIL BB NIL) (NIL NIL NIL CC))
[75]> (aref feld 0 3)
'NN

To repeat it, I found this:

[28]> (setf (aref feld 0 3) nn)

*** - EVAL: variable NN has no value
The following restarts are available:
STORE-VALUE    :R1      You may input a new
USE-VALUE      :R2      You may input a val

1. Break [29]> :r2

Use instead of NN: nn

*** - SYSTEM::STORE: 0 is not an array
1. Break [30]> :a
[31]> (setf (aref feld 2 2) 'nn)
NN    ;; works right

feld looks like this:
#2A((NIL NIL NIL 2) ("00" 0 NN NIL) (NIL NIL NN 'NN) (NIL NIL NIL NIL))

and using once :r1 nn, this makes 'nn to the feld, after one use of :r1
all seemed to work fine:
[50]> (setf (aref feld 3 0) nn)
'NN
[51]> feld
#2A(('NN NN NIL 'NN) ("00" 0 NN NIL) (NIL NIL NN 'NN) ('NN NIL NIL NIL))
[59]> (setf (aref feld 3 1) 'nn)
NN
hmmm, I try it on an other day.

But after all, I'm happy, to get CL-2.31 work. Next I test my old code
...

stefan
- wishes always a better idea :)