<div dir="ltr">Great news.<br><br>I briefly tried sockets on XP Pro SP3 at work trying to connect to my local web server and got the following:<br><br>C:\&gt;wx86cl<br>Welcome to Clozure Common Lisp Version 1.2-r11005M&nbsp; (WindowsX8632)!<br>
? (make-socket :remote-host &quot;localhost&quot; :remote-port 80)<br>&gt; Error: value 2147772030 is not of the expected type (SIGNED-BYTE 32).<br>&gt; While executing: CCL::SET-SOCKET-FD-BLOCKING, in process listener(1).<br>
&gt; Type :POP to abort, :R for a list of available restarts.<br>&gt; Type :? for other options.<br>1 &gt; :b<br>*(BC0BA0) : 0 (SET-SOCKET-FD-BLOCKING 3 NIL) 549<br>&nbsp;(BC0BD8) : 1 (C_CONNECT 3 #&lt;A Foreign Pointer [stack-allocated] (:* #) #xAAFF38<br>
&gt; 16 [...]) 183<br>&nbsp;(BC0C0C) : 2 (%SOCKET-CONNECT 3 #&lt;A Foreign Pointer [stack-allocated] (:* #) #x<br>AAFF38&gt; 16 [...]) 87<br>&nbsp;(BC0C24) : 3 (INET-CONNECT 3 16777343 20480 [...]) 439<br>&nbsp;(BC0C44) : 4 (MAKE-TCP-STREAM-SOCKET 3 [...]) 415<br>
&nbsp;(BC0C78) : 5 (MAKE-TCP-SOCKET [...]) 503<br>&nbsp;(BC0CAC) : 6 (MAKE-SOCKET [...]) 695<br>&nbsp;(BC0DA0) : 7 (CALL-CHECK-REGS &#39;MAKE-SOCKET [...]) 247<br>&nbsp;(BC0DBC) : 8 (TOPLEVEL-EVAL &#39;(MAKE-SOCKET :REMOTE-HOST &quot;localhost&quot; :REMOTE-PORT<br>
&nbsp;80) [...]) 759<br>&nbsp;(BC0DFC) : 9 (READ-LOOP [...]) 1567<br>&nbsp;(BC0F00) : 10 (TOPLEVEL-LOOP) 79<br>&nbsp;(BC0F08) : 11 (FUNCALL #&#39;#&lt;(:INTERNAL (TOPLEVEL-FUNCTION (CCL::LISP-DEVELOPMENT<br>-SYSTEM T)))&gt;) 87<br>&nbsp;(BC0F14) : 12 (FUNCALL #&#39;#&lt;(:INTERNAL CCL::MAKE-MCL-LISTENER-PROCESS)&gt;) 575<br>
&nbsp;(BC0F60) : 13 (RUN-PROCESS-INITIAL-FORM #&lt;TTY-LISTENER listener(1) [Active] #x8<br>8FED06&gt; &#39;(#)) 671<br>&nbsp;(BC0FA4) : 14 (FUNCALL #&#39;#&lt;(:INTERNAL CCL::%PROCESS-PRESET-INTERNAL)&gt; #&lt;TTY-LIS<br>TENER listener(1) [Active] #x88FED06&gt; &#39;(#)) 335<br>
&nbsp;(BC0FCC) : 15 (FUNCALL #&#39;#&lt;(:INTERNAL CCL::THREAD-MAKE-STARTUP-FUNCTION)&gt;) 279<br>1 &gt; :q<br>&gt; Error: value 2147772030 is not of the expected type (SIGNED-BYTE 32).<br>&gt; While executing: CCL::SET-SOCKET-FD-BLOCKING, in process listener(1).<br>
&gt; Type :POP to abort, :R for a list of available restarts.<br>&gt; Type :? for other options.<br>1 &gt; :b<br>*(BC0BA8) : 0 (SET-SOCKET-FD-BLOCKING 3 T) 549<br>&nbsp;(BC0BE0) : 1 (C_CONNECT 3 #&lt;A Foreign Pointer [stack-allocated] (:* #) #xAAFF38<br>
&gt; 16 [...]) 135<br>&nbsp;(BC0C0C) : 2 (%SOCKET-CONNECT 3 #&lt;A Foreign Pointer [stack-allocated] (:* #) #x<br>AAFF38&gt; 16 [...]) 87<br>&nbsp;(BC0C24) : 3 (INET-CONNECT 3 16777343 20480 [...]) 439<br>&nbsp;(BC0C44) : 4 (MAKE-TCP-STREAM-SOCKET 3 [...]) 415<br>
&nbsp;(BC0C78) : 5 (MAKE-TCP-SOCKET [...]) 503<br>&nbsp;(BC0CAC) : 6 (MAKE-SOCKET [...]) 695<br>&nbsp;(BC0DA0) : 7 (CALL-CHECK-REGS &#39;MAKE-SOCKET [...]) 247<br>&nbsp;(BC0DBC) : 8 (TOPLEVEL-EVAL &#39;(MAKE-SOCKET :REMOTE-HOST &quot;localhost&quot; :REMOTE-PORT<br>
&nbsp;80) [...]) 759<br>&nbsp;(BC0DFC) : 9 (READ-LOOP [...]) 1567<br>&nbsp;(BC0F00) : 10 (TOPLEVEL-LOOP) 79<br>&nbsp;(BC0F08) : 11 (FUNCALL #&#39;#&lt;(:INTERNAL (TOPLEVEL-FUNCTION (CCL::LISP-DEVELOPMENT<br>-SYSTEM T)))&gt;) 87<br>&nbsp;(BC0F14) : 12 (FUNCALL #&#39;#&lt;(:INTERNAL CCL::MAKE-MCL-LISTENER-PROCESS)&gt;) 575<br>
&nbsp;(BC0F60) : 13 (RUN-PROCESS-INITIAL-FORM #&lt;TTY-LISTENER listener(1) [Active] #x8<br>8FED06&gt; &#39;(#)) 671<br>&nbsp;(BC0FA4) : 14 (FUNCALL #&#39;#&lt;(:INTERNAL CCL::%PROCESS-PRESET-INTERNAL)&gt; #&lt;TTY-LIS<br>TENER listener(1) [Active] #x88FED06&gt; &#39;(#)) 335<br>
&nbsp;(BC0FCC) : 15 (FUNCALL #&#39;#&lt;(:INTERNAL CCL::THREAD-MAKE-STARTUP-FUNCTION)&gt;) 279<br>1 &gt; :q<br>?<br><br>Barry<br><br><div class="gmail_quote">On Thu, Oct 9, 2008 at 3:28 AM, Gary Byers <span dir="ltr">&lt;<a href="mailto:gb@clozure.com">gb@clozure.com</a>&gt;</span> wrote:<br>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">32- and 64-bit versions of Clozure CL for Windows are now available in svn:<br>
<br>
&lt;<a href="http://svn.clozure.com/publicsvn/openmcl/trunk/windows" target="_blank">http://svn.clozure.com/publicsvn/openmcl/trunk/windows</a>&gt;<br>
<br>
The 64-bit version&#39;s been available for a while; the 32-bit version&#39;s<br>
brand new (and still contains some known runtime bugs, along with all<br>
of the unknown ones.) &nbsp;We only have a few (real or virtual) Windows<br>
boxes available, so it&#39;d be helpful if people with (a) interest (b)<br>
some time and (c) access to real or virtual Windows boxes could<br>
take this for a ride around the block, kick the tires, etc.<br>
<br>
As of yesterday, the win32 version could compile itself successfully<br>
3 times out of 4 and crashed the 4th time. &nbsp;The win64 version hasn&#39;t<br>
had a random unexpected crash in a few months, but AFAIK I&#39;ve been<br>
the only person using it much. &nbsp;As much as anything, it&#39;d be interesting<br>
to see if this general impression (the win32 port is at the outer bounds<br>
if usability, the win64 port is generally a lot closer) is confirmed or<br>
refuted by other people&#39;s experience.<br>
<br>
Both version should run under XP or Vista (but almost certainly not under<br>
anything older than XP.) &nbsp;XP is several years old now, and XP with a<br>
recent &quot;service pack&quot; is somewhat different from earlier version. &nbsp;Most<br>
of the Win32 development&#39;s been done under a fairly recent (SP3) version<br>
of XP; it&#39;d be interesting to know whether it works on eariler versions.<br>
<br>
The 64-bit version requires a 64-bit version of Windows (XP64, Vista 64.<br>
maybe some server OS versions.) &nbsp;It&#39;s currently the case that the 32-bit<br>
version of CCL doesn&#39;t run under 64-bit OS releases. &nbsp;We understand why<br>
it doesn&#39;t, and hope to remove this restriction ASAP.<br>
<br>
I don&#39;t use SLIME; I honestly don&#39;t know whether or not there are socket<br>
or other issues that&#39;d prevent SLIME from working. &nbsp;(If there are, please<br>
let us know and we&#39;ll try to give priority to fixing them.)<br>
<br>
Some things that we do know:<br>
<br>
- Windows has a very different model of file permissions and sharing<br>
 &nbsp; than Unix systems do. &nbsp;On Unix, it&#39;s well-defined, meaningful, and<br>
 &nbsp; useful to (for instance) delete a file that you have open; Windows<br>
 &nbsp; generally doesn&#39;t allow that sort of thing. &nbsp;(One consequence of this<br>
 &nbsp; is that calling REBUILD-CCL with any options that&#39;d cause the kernel<br>
 &nbsp; to be rebuilt can&#39;t work the way things are currently implemented,<br>
 &nbsp; since the lisp kernel has been opened by the OS.) &nbsp;There are other<br>
 &nbsp; consequences, some of which can be addressed and improved and some<br>
 &nbsp; of which can&#39;t: this is a very different OS.<br>
<br>
- Most Windows functions and utilities that deal with pathnames can<br>
 &nbsp; accept either forward or backward slashes as directory separators.<br>
 &nbsp; CCL pathname/namestring functions don&#39;t (yet) deal with backslashes<br>
 &nbsp; or with some other Windows namestring conventions. &nbsp;(When a Windows<br>
 &nbsp; function returns a namestring, any backslashes in that namestring<br>
 &nbsp; are converted to forward slashes before lisp pathanme code sees it.)<br>
<br>
- The lisp kernel is built with the Cygwin tools (<a href="http://www.cygwin.com" target="_blank">www.cygwin.com</a>), though<br>
 &nbsp; we don&#39;t use any Cygwin libraries. &nbsp;To build the 32-bit kernel, you&#39;d<br>
 &nbsp; need (at least) the &#39;make&#39;, &#39;gcc&#39;, &#39;m4&#39;, &#39;mingw&quot; and &quot;w32api&quot; packages<br>
 &nbsp; and their dependencies; the 64-bit kernel also needs a 64-bit toolchain<br>
 &nbsp; available from the mingw-w64 project:<br>
<br>
 &nbsp; &lt;<a href="http://sourceforge.net/projects/mingw-w64/" target="_blank">http://sourceforge.net/projects/mingw-w64/</a>&gt;<br>
<br>
- We haven&#39;t done any work yet on Windows GUI programming (examples,<br>
 &nbsp; bridges, ...). &nbsp;On Win32, there&#39;s at least on low-level FFI change<br>
 &nbsp; that&#39;ll be needed to support this (Win32 functions follow a &quot;pascal-like&quot;<br>
 &nbsp; calling sequence, in which the callee pops its arguments off of the<br>
 &nbsp; stack before returning. &nbsp;The way that we do foreign function calls, I<br>
 &nbsp; don&#39;t think that we care about this, but I&#39;m pretty sure that we<br>
 &nbsp; need to extend DEFCALLBACK to meet the caller&#39;s expectations. &nbsp;(Perhaps<br>
 &nbsp; we should call that extension DEFPASCAL ...)<br>
<br>
Andreas Bogk did a lot of early work on the Win64 port, and the Win32<br>
version has gotten as far as it has as quickly as it has largely because<br>
Matt Emerson&#39;s ia32 compiler backend and runtime are as good as they are.<br>
<br>
Again and especially in the case of the 32-bit port, &quot;as far as it&#39;s<br>
gotten&quot; is &quot;somewhere around the outer bounds of usability.&quot; &nbsp;You&#39;ll<br>
likely find that it crashes in mysterious and non-repeatable ways (it&#39;s<br>
likely still on the wrong side of those outer bounds ...), and at this<br>
point the most interesting questions are &quot;does it run at all?&quot; and &quot;if<br>
not, what OS version are you using ?&quot;.<br>
<br>
<br>
_______________________________________________<br>
Openmcl-devel mailing list<br>
<a href="mailto:Openmcl-devel@clozure.com">Openmcl-devel@clozure.com</a><br>
<a href="http://clozure.com/mailman/listinfo/openmcl-devel" target="_blank">http://clozure.com/mailman/listinfo/openmcl-devel</a><br>
</blockquote></div><br></div>