Gary Byers | 9 Oct 04:27

Windows versions of CCL available for smoke-testing

32- and 64-bit versions of Clozure CL for Windows are now available in svn:

<http://svn.clozure.com/publicsvn/openmcl/trunk/windows>

The 64-bit version's been available for a while; the 32-bit version's 
brand new (and still contains some known runtime bugs, along with all
of the unknown ones.)  We only have a few (real or virtual) Windows
boxes available, so it'd be helpful if people with (a) interest (b)
some time and (c) access to real or virtual Windows boxes could
take this for a ride around the block, kick the tires, etc.

As of yesterday, the win32 version could compile itself successfully
3 times out of 4 and crashed the 4th time.  The win64 version hasn't
had a random unexpected crash in a few months, but AFAIK I've been
the only person using it much.  As much as anything, it'd be interesting
to see if this general impression (the win32 port is at the outer bounds
if usability, the win64 port is generally a lot closer) is confirmed or
refuted by other people's experience.

Both version should run under XP or Vista (but almost certainly not under
anything older than XP.)  XP is several years old now, and XP with a
recent "service pack" is somewhat different from earlier version.  Most
of the Win32 development's been done under a fairly recent (SP3) version
of XP; it'd be interesting to know whether it works on eariler versions.

The 64-bit version requires a 64-bit version of Windows (XP64, Vista 64.
maybe some server OS versions.)  It's currently the case that the 32-bit
version of CCL doesn't run under 64-bit OS releases.  We understand why
it doesn't, and hope to remove this restriction ASAP.

(Continue reading)

Brian Mastenbrook | 9 Oct 14:52

Re: Windows versions of CCL available for smoke-testing

Very cool. Is this fully relocatable? This is probably less of an  
issue on Win64, of course.

I'm also glad to see that the MinGW toolchain for x64 has matured to  
the point where it's useful. Did you run into any issues with it or  
did it seem to work as expected?

On Oct 8, 2008, at 9:28 PM, Gary Byers wrote:

> 32- and 64-bit versions of Clozure CL for Windows are now available  
> in svn:
>
> <http://svn.clozure.com/publicsvn/openmcl/trunk/windows>
>
> The 64-bit version's been available for a while; the 32-bit version's
> brand new (and still contains some known runtime bugs, along with all
> of the unknown ones.)  We only have a few (real or virtual) Windows
> boxes available, so it'd be helpful if people with (a) interest (b)
> some time and (c) access to real or virtual Windows boxes could
> take this for a ride around the block, kick the tires, etc.

--
Brian Mastenbrook
brian <at> mastenbrook.net
http://brian.mastenbrook.net/
Gary Byers | 9 Oct 19:59

Re: Windows versions of CCL available for smoke-testing


On Thu, 9 Oct 2008, Brian Mastenbrook wrote:

> Very cool. Is this fully relocatable? This is probably less of an issue on 
> Win64, of course.

We don't do relocation correctly on ia32 yet

<http://trac.clozure.com/openmcl/ticket/331>

(This would affect 32-bit Darwin and Linux as well as 32-bit Windows.)

>
> I'm also glad to see that the MinGW toolchain for x64 has matured to the 
> point where it's useful. Did you run into any issues with it or did it seem 
> to work as expected?

AFAIK (and as far as I remember), it's worked correctly.  The fact that
'long' is only 32 bits on win64 has sometimes meant that "correctly" and
"as expected" aren't quite the same thing.

>
> On Oct 8, 2008, at 9:28 PM, Gary Byers wrote:
>
>> 32- and 64-bit versions of Clozure CL for Windows are now available in svn:
>> 
>> <http://svn.clozure.com/publicsvn/openmcl/trunk/windows>
>> 
>> The 64-bit version's been available for a while; the 32-bit version's
>> brand new (and still contains some known runtime bugs, along with all
(Continue reading)

Brian Mastenbrook | 9 Oct 20:25

Re: Windows versions of CCL available for smoke-testing


On Oct 9, 2008, at 12:59 PM, Gary Byers wrote:

> On Thu, 9 Oct 2008, Brian Mastenbrook wrote:
>
>> Very cool. Is this fully relocatable? This is probably less of an  
>> issue on Win64, of course.
>
> We don't do relocation correctly on ia32 yet
>
> <http://trac.clozure.com/openmcl/ticket/331>
>
> (This would affect 32-bit Darwin and Linux as well as 32-bit Windows.)

Interesting. Does this include things like NIL & friends?

> AFAIK (and as far as I remember), it's worked correctly.  The fact  
> that
> 'long' is only 32 bits on win64 has sometimes meant that "correctly"  
> and
> "as expected" aren't quite the same thing.

This is what uint64_t and intptr_t are for, right? Most problematic  
uses of "long" that I've run into should in fact be intptr_t.

--
Brian Mastenbrook
brian <at> mastenbrook.net
http://brian.mastenbrook.net/
(Continue reading)

Gary Byers | 9 Oct 21:55

Re: Windows versions of CCL available for smoke-testing


On Thu, 9 Oct 2008, Brian Mastenbrook wrote:

>
> On Oct 9, 2008, at 12:59 PM, Gary Byers wrote:
>
>> On Thu, 9 Oct 2008, Brian Mastenbrook wrote:
>> 
>>> Very cool. Is this fully relocatable? This is probably less of an issue on 
>>> Win64, of course.
>> 
>> We don't do relocation correctly on ia32 yet
>> 
>> <http://trac.clozure.com/openmcl/ticket/331>
>> 
>> (This would affect 32-bit Darwin and Linux as well as 32-bit Windows.)
>
> Interesting. Does this include things like NIL & friends?

No.

>
>> AFAIK (and as far as I remember), it's worked correctly.  The fact that
>> 'long' is only 32 bits on win64 has sometimes meant that "correctly" and
>> "as expected" aren't quite the same thing.
>
> This is what uint64_t and intptr_t are for, right? Most problematic uses of 
> "long" that I've run into should in fact be intptr_t.

Yes, that it what things like that are for.
(Continue reading)

Favicon

Re: Windows versions of CCL available for smoke-testing

Hi Gary,

this is exciting news. In our case we really would like the Mac32/64 + Win32/64 Lisps but our tire kicking activity would be to try to get OpenGL and QuickTime to work on Windows. Sounds like the win32 version may be still to shaky for this kind of stress test? Is there a plan to have SLIME work with win32 and will there be a precompiled .exe version of ccl/win32? Is there already or will there be a mechanism similar to the trap mechanism on Mac for OS X calls to parse header files to turn them automagically into defcallbacks (or whatever they will be called)?

Alex


On Oct 8, 2008, at 8:28 PM, Gary Byers wrote:

32- and 64-bit versions of Clozure CL for Windows are now available in svn:

<http://svn.clozure.com/publicsvn/openmcl/trunk/windows>

The 64-bit version's been available for a while; the 32-bit version's
brand new (and still contains some known runtime bugs, along with all
of the unknown ones.)  We only have a few (real or virtual) Windows
boxes available, so it'd be helpful if people with (a) interest (b)
some time and (c) access to real or virtual Windows boxes could
take this for a ride around the block, kick the tires, etc.

As of yesterday, the win32 version could compile itself successfully
3 times out of 4 and crashed the 4th time.  The win64 version hasn't
had a random unexpected crash in a few months, but AFAIK I've been
the only person using it much.  As much as anything, it'd be interesting
to see if this general impression (the win32 port is at the outer bounds
if usability, the win64 port is generally a lot closer) is confirmed or
refuted by other people's experience.

Both version should run under XP or Vista (but almost certainly not under
anything older than XP.)  XP is several years old now, and XP with a
recent "service pack" is somewhat different from earlier version.  Most
of the Win32 development's been done under a fairly recent (SP3) version
of XP; it'd be interesting to know whether it works on eariler versions.

The 64-bit version requires a 64-bit version of Windows (XP64, Vista 64.
maybe some server OS versions.)  It's currently the case that the 32-bit
version of CCL doesn't run under 64-bit OS releases.  We understand why
it doesn't, and hope to remove this restriction ASAP.

I don't use SLIME; I honestly don't know whether or not there are socket
or other issues that'd prevent SLIME from working.  (If there are, please
let us know and we'll try to give priority to fixing them.)

Some things that we do know:

- Windows has a very different model of file permissions and sharing
  than Unix systems do.  On Unix, it's well-defined, meaningful, and
  useful to (for instance) delete a file that you have open; Windows
  generally doesn't allow that sort of thing.  (One consequence of this
  is that calling REBUILD-CCL with any options that'd cause the kernel
  to be rebuilt can't work the way things are currently implemented,
  since the lisp kernel has been opened by the OS.)  There are other
  consequences, some of which can be addressed and improved and some
  of which can't: this is a very different OS.

- Most Windows functions and utilities that deal with pathnames can
  accept either forward or backward slashes as directory separators.
  CCL pathname/namestring functions don't (yet) deal with backslashes
  or with some other Windows namestring conventions.  (When a Windows
  function returns a namestring, any backslashes in that namestring
  are converted to forward slashes before lisp pathanme code sees it.)

- The lisp kernel is built with the Cygwin tools (www.cygwin.com), though
  we don't use any Cygwin libraries.  To build the 32-bit kernel, you'd
  need (at least) the 'make', 'gcc', 'm4', 'mingw" and "w32api" packages
  and their dependencies; the 64-bit kernel also needs a 64-bit toolchain
  available from the mingw-w64 project:

  <http://sourceforge.net/projects/mingw-w64/>

- We haven't done any work yet on Windows GUI programming (examples,
  bridges, ...).  On Win32, there's at least on low-level FFI change
  that'll be needed to support this (Win32 functions follow a "pascal-like"
  calling sequence, in which the callee pops its arguments off of the
  stack before returning.  The way that we do foreign function calls, I
  don't think that we care about this, but I'm pretty sure that we
  need to extend DEFCALLBACK to meet the caller's expectations.  (Perhaps
  we should call that extension DEFPASCAL ...)

Andreas Bogk did a lot of early work on the Win64 port, and the Win32
version has gotten as far as it has as quickly as it has largely because
Matt Emerson's ia32 compiler backend and runtime are as good as they are.

Again and especially in the case of the 32-bit port, "as far as it's
gotten" is "somewhere around the outer bounds of usability."  You'll
likely find that it crashes in mysterious and non-repeatable ways (it's
likely still on the wrong side of those outer bounds ...), and at this
point the most interesting questions are "does it run at all?" and "if
not, what OS version are you using ?".


_______________________________________________
Openmcl-devel mailing list
Openmcl-devel <at> clozure.com
http://clozure.com/mailman/listinfo/openmcl-devel


Prof. Alexander Repenning


University of Colorado

Computer Science Department

Boulder, CO 80309-430


vCard: http://www.cs.colorado.edu/~ralex/AlexanderRepenning.vcf



_______________________________________________
Openmcl-devel mailing list
Openmcl-devel <at> clozure.com
http://clozure.com/mailman/listinfo/openmcl-devel
Gary Byers | 11 Oct 05:25

Re: Windows versions of CCL available for smoke-testing


On Thu, 9 Oct 2008, Alexander Repenning wrote:

> Hi Gary,
>
> this is exciting news. In our case we really would like the Mac32/64 + 
> Win32/64 Lisps but our tire kicking activity would be to try to get OpenGL 
> and QuickTime to work on Windows. Sounds like the win32 version may be still 
> to shaky for this kind of stress test?

I don't know about stress/shakiness (there's one way to find out ...).
In order to create a window to draw in (whether via OpenGL or other
means), you have to be able to define (at least) a function that 
receives events ("messages").  For historical reasons (i.e, reasons
that haven't made sense since 1985 or so), most Win32 (and Win32-callable)
functions follow Pascal calling conventions (functions receive a fixed
number of arguments on the stack and the callee pops them off before
returning) rather than C calling conventions (the caller allocates and
eventually deallocates stack space for outgoing arguments, and the 
callee leaves the stack pointer pointing where it pointed on entry.)
I think that MCL used to have DEFPASCAL and DEF-C-CALLABLE (sp?) back
in the day, for this reason.  It stopped making sense when the 68K
stopped being interesting; this really just has to do with differences
between C and Pascal calling conventions as of the mid 1980s, but it
pervasively affects Win32.

CCL:DEFCALLBACK only really understands how to generate functions that
can be called from code following C conventions.  It needs to be
extended somehow - maybe

(defcallback foo :pascal (...)
  ...)

or, half-seriously

(defpascall foo (..)
  ...)

> Is there a plan to have SLIME work 
> with win32

Yes.  There are still socket-related bugs that keep it from getting
very far.

> and will there be a precompiled .exe version of ccl/win32?

http://svn.clozure.com/publicsvn/openmcl/trunk/windows/ccl/wx86cl.exe

was announced a few days ago (your message is responding to that announcement.)

> Is there already or will there be a mechanism similar to the trap

The following - in []s - isn't directly responsive.  When I was
younger and heard old people go off on weird tangents like this,
I promised myself that I'd never do it.  All I can say is that
anyone reading this will be old someday, too.

[For anyone reading this who may not be familiar with the term: 68K
instructions were sequences of one or more 16-bit words (where the
first word generally determined the class of instruction and any
subsequent words encoded operands.)  The high 4 bits of the first
word could sometimes fully determine the instruction - for some
reason, I still remember that #x7xxx was a "movq" instruction -
and sometimes it was necessary to decode other bits (#x4ed0 was
"jmp (a0)"; #x4e75 was "rts", and ... well, that's about all that
I remember.)

68K instructions whose high nibble was #xa (#xAxxx) were explicitly
undefined by Motorola, and (on early, memory-constrained Macs) Apple
used these undefined/illegal instructions as a means of accessing
OS and ToolBox (GUI) functionality.  (Your application was basically
its own code and a bunch of "A-traps" that manipulated files, windows,
events, etc.; shared libraries were just a gleam in someone's eye.)

MCL naturally shipped with what was at some point in time a fairly
complete set of "trap definitions".  This wss originally generated
by hand; later, a tool written by (IIRC) Joe Chung and Mike Travers
parsed Pascal header files into lisp-readable definitions.

The other 12 bits in an A-trap could have encoded 4K different system
services, but Apple used some of the bits in the opcode to encode
other functionality.  (Some bit - I don't remember which one -
controlled whether an I/O operation was to be perfomed synchronously
or asynchronously.)  The total number of unique services that could
be invoked via the A-trap mechanism was several hundred (and most of
those were defined in the original MacOS.)  Extending the mechanism
to add new functionality was a complicated process; since much of
the code that implemented these services was in ROM, patching around
bugs often involved incredible hair. ("Function FOO is generally OK,
except for the fact that it misbehaves when called from a certain
point in BAR.  So, let's redefine the A-trap used to invoke FOO and
have it look at the return address; if that address isn't in BAR,
jump back to the original code, otherwise ...")  This is known as
using "come from" statements, and they're generally considered harmful.

Apple realized what a mess this was, and started to work on replacing
it with shared library technology.  As I recall, what they'd tried to
do on the 68K wasn't very good; around this time, they switched to
the PPC and introduced fairly reasonable shared-library technology
(the "Code Fragment Manager").  The PPC never used illegal instructions
to access system services (at least not in a user-visible way.)

I think that MCL continued to (informally) refer to foreign function
calls as "traps".  I understand that when MCL users use the term
"trap" they're using the term in this informal sense, but please
understand that for some of us hearing the word "trap" in this
context invokes vivid and often unsettling flashbacks.]

Sorry.

> mechanism on Mac for OS X calls to parse header files to turn them
> automagically into defcallbacks (or whatever they will be called)?

Yes; the same mechanism is used on Windows as on other platforms.
(As mentioned above, callbacks - lisp functions that arrange to
be called from foreign code - sometimes have to follow Pascal
calling conventions on Win32, and some way of implementing such
callbacks has to be developed.)

Anyone looking at Windows C code might see that some functions
have a "cdecl" attribute - spelled in a variety of ways - and
others have some variant of "stdcall".  "stdcall" = "Pascal as
of the mid 1980s" and "cdecl" means "like most C compilers.
Windows headers often use other C macros to make the intent a
little more clear, like:

int WINAPI foo (...);

or

void CALLBACK bar (...);

and both WINAPI and CALLBACK ultimately mean "welcome to 1985,
clean up the stack on your way out."

Because of the way that CCL does foreign function calls, it doesn't
really care what the callee does with its arguments.  Windows code
that calls back into lisp -does- care about where the stack pointer
is on return, and things will misbehave if stack discipline isn't
maintained.

Hope this clears things up without introducing more confusion.

>
> Alex
>
>
David Brown | 9 Oct 17:59

Re: Windows versions of CCL available for smoke-testing

On Wed, Oct 08, 2008 at 08:28:25PM -0600, Gary Byers wrote:

>32- and 64-bit versions of Clozure CL for Windows are now available in svn:

General question about the 32-bit x86 ports.  A while back there was
mention of needing SSE3.  Is this still a requirement for these ports?

Thanks,
David
Gary Byers | 9 Oct 19:12

Re: Windows versions of CCL available for smoke-testing

This is all potentially confusing.  Wikipedia provides good overviews
of what the terms SSE2 and SSE3 mean in this context:

<http://en.wikipedia.org/wiki/SSE2>
<http://en.wikipedia.org/wiki/SSE3>

SSE2 was an extension that provides vector floating-point registers
(that can also be used as scalar floating-point registers.)  It was
introduced in 2001, and most CPUs sold since then provide it.  (One
notable exception is the AMD Geode, which is used in the the laptops
made by the One Laptop Per Child project.)

SSE3 adds a relatively small set of instructions to SSE2 (most of
which operate on these vector registers.)

The kernel checks for the presence of SSE2 on startup and says something
like "CPU doesn't support required features" and exits if it's not present.
Nothing in the lisp uses SSE3 or later.

There's a little (free) Windows program called "CPU-Z" that'll tell you way
more than you want to know about the features of the installed CPU.

<http://www.cpuid.com/cpuz.php>

On a Linux system, you can do:

shell> cat /proc/cpuinfo

to see the same sort of info.  (Darwin assumes at least SSE3; there are
probably ways to see CPU info via 'sysctl' on FreeBSD or Solaris, but
I don't remember what they are, offhand.)

We've spoken a bit about the idea of emulating the SSE2 features that
we use or of otherwise trying to run on SSE2-less hardware.  Right now,
we're just trying to find out if this runs at all ...

On Thu, 9 Oct 2008, David Brown wrote:

> On Wed, Oct 08, 2008 at 08:28:25PM -0600, Gary Byers wrote:
>
>> 32- and 64-bit versions of Clozure CL for Windows are now available in svn:
>
> General question about the 32-bit x86 ports.  A while back there was
> mention of needing SSE3.  Is this still a requirement for these ports?
>
> Thanks,
> David
>
>
David Brown | 9 Oct 20:35

Re: Windows versions of CCL available for smoke-testing

On Thu, Oct 09, 2008 at 11:12:07AM -0600, Gary Byers wrote:

> This is all potentially confusing.  Wikipedia provides good overviews
> of what the terms SSE2 and SSE3 mean in this context:

I don't have a lot of 32-bit machines.  One of concern is my Athlon XP
2500, which seems to only have sse (but 3dnow).

> <http://en.wikipedia.org/wiki/SSE2>
> <http://en.wikipedia.org/wiki/SSE3>

> The kernel checks for the presence of SSE2 on startup and says something
> like "CPU doesn't support required features" and exits if it's not present.
> Nothing in the lisp uses SSE3 or later.

Ok, so it appears that it should work on one of my 32-bit machines,
but not the other.  I plan on retiring the old Athlon at some point
anyway, so it matters less.

Please it's good motivation to keep me honest about keeping my code
working on SBCL :-)

Thanks for the clarification,
David
Alexander Repenning | 15 Oct 21:56
Favicon

Re: Windows versions of CCL available for smoke-testing (does not work on Parallels?)

I trying to run wx86cl.exe on a 2.6 Ghz MacBook Pro with Parallels  
3.0, XP sp2.

I am getting the "CPU doesn't support required features" problem and  
cannot run CCL. See specs below but according to CPU-Z SSE2 is there.  
Am I running the wrong version of CCL? Did anybody else get CCL win32  
to work under XP/Parallels/Mac?

Alex

-------------------------
  CPU-Z version 1.47
-------------------------

Processors Map
------------------------------------------------------------------------------------

Number of processors	1
Number of threads	1

Processor 0
    -- Core 0
        -- Thread 0

Processors Information
------------------------------------------------------------------------------------

Processor 1 (ID = 0)
Number of cores		1 (max 1)
Number of threads	1 (max 1)
Name			Intel Core 2
Codename		
Specification		Intel(R) Core(TM)2 Duo CPU     T9500  @ 2.60GHz  
(Engineering Sample)
Package			Socket 775 LGA (platform ID = 4h)
CPUID			6.7.6
Extended CPUID		6.17
Core Stepping		C0
Technology		45 nm
Core Speed		2592.1 MHz
Instructions sets	MMX, SSE, SSE2, SSE3
L1 Data cache		32 KBytes, 8-way set associative, 64-byte line size
L1 Instruction cache	32 KBytes, 8-way set associative, 64-byte line size
L2 cache		6144 KBytes, 16-way set associative, 64-byte line size
FID/VID Control		no
Features		

Thread dumps
------------------------------------------------------------------------------------

CPU Thread 0
APIC ID			0
Topology		Processor ID 0, Core ID 0, Thread ID 0
Type			01008000h
Max CPUID level		0000000Ah
Max CPUID ext. level	80000008h

Function		eax		ebx		ecx		edx
0x00000000		0x0000000A	0x756E6547	0x6C65746E	0x49656E69
0x00000001		0x00010676	0x01020800	0x00000001	0x0F80B9B9
0x00000002		0x05B0B101	0x005657F0	0x00000000	0x2CB4304E
0x00000003		0x00000000	0x00000000	0x00000000	0x00000000
0x00000005		0x00000000	0x00000000	0x00000000	0x00000000
0x00000006		0x00000000	0x00000000	0x00000000	0x00000000
0x00000007		0x00000000	0x00000000	0x00000000	0x00000000
0x00000008		0x00000000	0x00000000	0x00000000	0x00000000
0x00000009		0x00000000	0x00000000	0x00000000	0x00000000
0x0000000A		0x00000000	0x00000000	0x00000000	0x00000000
0x80000000		0x80000008	0x00000000	0x00000000	0x00000000
0x80000001		0x00000000	0x00000000	0x00000000	0x00000000
0x80000002		0x65746E49	0x2952286C	0x726F4320	0x4D542865
0x80000003		0x44203229	0x43206F75	0x20205550	0x54202020
0x80000004		0x30303539	0x20402020	0x30362E32	0x007A4847
0x80000005		0x00000000	0x00000000	0x00000000	0x00000000
0x80000006		0x00000000	0x00000000	0x18008040	0x00000000
0x80000007		0x00000000	0x00000000	0x00000000	0x00000000
0x80000008		0x00000000	0x00000000	0x00000000	0x00000000

Cache descriptor	Level 2 U	6 MB	1 thread(s)	
Cache descriptor	Level 1 D	32 KB	1 thread(s)	
Cache descriptor	Level 1 I	32 KB	1 thread(s)	

MSR 0x00000017		edx = 0x21520000	eax = 0x00000000
MSR 0x000000CD		edx = 0x00000000	eax = 0x00000000
MSR 0x0000003F		edx = 0x00000000	eax = 0x00000000
MSR 0x000000CE		edx = 0x00000000	eax = 0x00000000
MSR 0x000001A0		edx = 0x00000000	eax = 0x00000000
MSR 0x000000EE		edx = 0x00000000	eax = 0x00000000
MSR 0x0000011E		edx = 0x00000000	eax = 0x00000000
MSR 0x0000002A		edx = 0x00000000	eax = 0x00000000

Chipset
------------------------------------------------------------------------------

Southbridge		Intel 82801BA (ICH2) rev. 08
Memory Type		SDRAM
Memory Size		1024 MBytes
CAS#			3.0
RAS# to CAS#		3
RAS# Precharge		3
Cycle Time (tRAS)	5
Bank Cycle Time (tRC)	7

Memory SPD
------------------------------------------------------------------------------

No SPD information available

Monitoring
------------------------------------------------------------------------------

PCI Device List
------------------------------------------------------------------------------

VGA Controller
bus 0 (0x00), device 2 (0x02), function 0 (0x00)
Common header
	Vendor ID		0x1AB8
	Model ID		0x1131
	Revision ID		0x00
	PI			0x00
	SubClass		0x00
	BaseClass		0x03
	Cache Line		0x00
	Latency			0x00
	Header			0x00
PCI header
	Address 0 (port)	0x00004000
	Address 1 (memory)	0xC0000000
	Address 2 (port)	0x00004400
	Subvendor ID		0x0000
	Subsystem ID		0x0000
	Int. Line		0x0B
	Int. Pin		0x01
Dump
	       0  1  2  3  4  5  6  7  8  9  A  B  C  D  E  F
	 00   B8 1A 31 11 0F 00 80 02 00 00 00 03 00 00 00 00
	 10   01 40 00 00 00 00 00 C0 01 44 00 00 00 00 00 00
	 20   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
	 30   01 00 00 00 00 00 00 00 00 00 00 00 0B 01 00 00
	 40   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
	 50   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
	 60   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
	 70   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
	 80   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
	 90   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
	 A0   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
	 B0   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
	 C0   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
	 D0   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
	 E0   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
	 F0   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

Bridge device
bus 0 (0x00), device 3 (0x03), function 0 (0x00)
Common header
	Vendor ID		0x1AB8
	Model ID		0x1112
	Revision ID		0x00
	PI			0x00
	SubClass		0x80
	BaseClass		0x06
	Cache Line		0x00
	Latency			0x00
	Header			0x00
PCI header
	Address 0 (port)	0x00004800
	Subvendor ID		0x0000
	Subsystem ID		0x0000
	Int. Line		0x09
	Int. Pin		0x01
Dump
	       0  1  2  3  4  5  6  7  8  9  A  B  C  D  E  F
	 00   B8 1A 12 11 0F 00 80 02 00 00 80 06 00 00 00 00
	 10   01 48 00 00 00 00 00 00 00 00 00 00 00 00 00 00
	 20   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
	 30   01 00 00 00 00 00 00 00 00 00 00 00 09 01 00 00
	 40   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
	 50   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
	 60   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
	 70   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
	 80   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
	 90   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
	 A0   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
	 B0   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
	 C0   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
	 D0   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
	 E0   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
	 F0   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

Ethernet Controller
bus 0 (0x00), device 5 (0x05), function 0 (0x00)
Common header
	Vendor ID		0x10EC
	Model ID		0x8029
	Revision ID		0x00
	PI			0x00
	SubClass		0x00
	BaseClass		0x02
	Cache Line		0x00
	Latency			0x00
	Header			0x00
PCI header
	Address 0 (port)	0x00004C00
	Subvendor ID		0x10EC
	Subsystem ID		0x8029
	Int. Line		0x0A
	Int. Pin		0x01
Dump
	       0  1  2  3  4  5  6  7  8  9  A  B  C  D  E  F
	 00   EC 10 29 80 07 00 00 00 00 00 00 02 00 00 00 00
	 10   01 4C 00 00 00 00 00 00 00 00 00 00 00 00 00 00
	 20   00 00 00 00 00 00 00 00 00 00 00 00 EC 10 29 80
	 30   01 00 00 00 00 00 00 00 00 00 00 00 0A 01 00 00
	 40   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
	 50   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
	 60   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
	 70   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
	 80   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
	 90   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
	 A0   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
	 B0   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
	 C0   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
	 D0   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
	 E0   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
	 F0   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

USB Controller (UHCI)
bus 0 (0x00), device 29 (0x1D), function 0 (0x00)
Common header
	Vendor ID		0x8086
	Model ID		0x2658
	Revision ID		0x02
	PI			0x00
	SubClass		0x03
	BaseClass		0x0C
	Cache Line		0x00
	Latency			0x00
	Header			0x80
PCI header
	Address 4 (port)	0x00005000
	Subvendor ID		0x8086
	Subsystem ID		0x4541
	Int. Line		0x0B
	Int. Pin		0x03
Dump
	       0  1  2  3  4  5  6  7  8  9  A  B  C  D  E  F
	 00   86 80 58 26 07 00 80 02 02 00 03 0C 00 00 80 00
	 10   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
	 20   01 50 00 00 00 00 00 00 00 00 00 00 86 80 41 45
	 30   01 00 00 00 00 00 00 00 00 00 00 00 0B 03 00 00
	 40   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
	 50   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
	 60   10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
	 70   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
	 80   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
	 90   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
	 A0   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
	 B0   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
	 C0   00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00
	 D0   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
	 E0   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
	 F0   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

USB 2.0 Controller (EHCI)
bus 0 (0x00), device 29 (0x1D), function 7 (0x07)
Common header
	Vendor ID		0x8086
	Model ID		0x265C
	Revision ID		0x02
	PI			0x20
	SubClass		0x03
	BaseClass		0x0C
	Cache Line		0x00
	Latency			0x00
	Header			0x00
PCI header
	Address 0 (memory)	0xC2000000
	Subvendor ID		0x8086
	Subsystem ID		0x4541
	Int. Line		0x09
	Int. Pin		0x04
Dump
	       0  1  2  3  4  5  6  7  8  9  A  B  C  D  E  F
	 00   86 80 5C 26 07 00 80 02 02 20 03 0C 00 00 00 00
	 10   00 00 00 C2 00 00 00 00 00 00 00 00 00 00 00 00
	 20   00 00 00 00 00 00 00 00 00 00 00 00 86 80 41 45
	 30   01 00 00 00 00 00 00 00 00 00 00 00 09 04 00 00
	 40   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
	 50   01 58 C2 C9 00 00 00 00 0A 00 A0 20 00 00 00 00
	 60   20 20 FF 1F 00 00 00 00 01 00 00 00 00 00 00 00
	 70   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
	 80   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
	 90   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
	 A0   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
	 B0   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
	 C0   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
	 D0   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
	 E0   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
	 F0   00 00 00 00 00 00 00 00 00 00 00 00 06 17 00 00

Host Bridge
bus 0 (0x00), device 30 (0x1E), function 0 (0x00)
Common header
	Vendor ID		0x8086
	Model ID		0x1130
	Revision ID		0x02
	PI			0x00
	SubClass		0x00
	BaseClass		0x06
	Cache Line		0x00
	Latency			0x00
	Header			0x00
PCI header
	Address 0 (memory)	0xE0000000
	Subvendor ID		0x8086
	Subsystem ID		0x4541
	Int. Line		0xFF
	Int. Pin		0x00
Capabilities
	Vendor Dependant Capability
		Offset		88h
	AGP Capability
		Offset		A0h
		Version		2.0
		Status		disabled
		Max transfer	4x
		Queue lenght	1 (max 32)
Dump
	       0  1  2  3  4  5  6  7  8  9  A  B  C  D  E  F
	 00   86 80 30 11 07 00 90 00 02 00 00 06 00 00 00 00
	 10   08 00 00 E0 00 00 00 00 00 00 00 00 00 00 00 00
	 20   00 00 00 00 00 00 00 00 00 00 00 00 86 80 41 45
	 30   00 00 00 00 88 00 00 00 00 00 00 00 FF 00 00 00
	 40   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
	 50   44 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
	 60   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
	 70   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
	 80   00 00 00 00 00 00 00 00 09 A0 04 F1 00 00 00 00
	 90   00 00 FF FF FF FF 00 00 00 00 00 00 00 00 00 00
	 A0   02 00 20 00 07 02 00 1F 00 00 00 00 00 00 00 00
	 B0   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
	 C0   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
	 D0   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
	 E0   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
	 F0   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

PCI to ISA Bridge
bus 0 (0x00), device 31 (0x1F), function 0 (0x00)
Common header
	Vendor ID		0x8086
	Model ID		0x2440
	Revision ID		0x08
	PI			0x00
	SubClass		0x01
	BaseClass		0x06
	Cache Line		0x00
	Latency			0x00
	Header			0x80
PCI header
	Subvendor ID		0x8086
	Subsystem ID		0x4541
	Int. Line		0xFF
	Int. Pin		0x00
Dump
	       0  1  2  3  4  5  6  7  8  9  A  B  C  D  E  F
	 00   86 80 40 24 0F 00 00 00 08 00 01 06 00 00 80 00
	 10   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
	 20   00 00 00 00 00 00 00 00 00 00 00 00 86 80 41 45
	 30   00 00 00 00 00 00 00 00 00 00 00 00 FF 00 00 00
	 40   01 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00
	 50   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
	 60   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
	 70   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
	 80   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
	 90   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
	 A0   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
	 B0   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
	 C0   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
	 D0   80 21 00 00 00 00 00 00 00 00 00 00 00 00 00 00
	 E0   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
	 F0   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

IDE Controller
bus 0 (0x00), device 31 (0x1F), function 1 (0x01)
Common header
	Vendor ID		0x8086
	Model ID		0x244B
	Revision ID		0x00
	PI			0x80
	SubClass		0x01
	BaseClass		0x01
	Cache Line		0x00
	Latency			0x00
	Header			0x00
PCI header
	Address 4 (port)	0x00005400
	Subvendor ID		0x8086
	Subsystem ID		0x4541
	Int. Line		0xFF
	Int. Pin		0x00
Dump
	       0  1  2  3  4  5  6  7  8  9  A  B  C  D  E  F
	 00   86 80 4B 24 07 00 80 02 00 80 01 01 00 00 00 00
	 10   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
	 20   01 54 00 00 00 00 00 00 00 00 00 00 86 80 41 45
	 30   01 00 00 00 00 00 00 00 00 00 00 00 FF 00 00 00
	 40   FF E3 00 00 BB 00 00 00 0F 00 11 11 00 00 00 00
	 50   00 00 00 00 FF F4 00 00 00 00 00 00 00 00 00 00
	 60   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
	 70   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
	 80   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
	 90   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
	 A0   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
	 B0   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
	 C0   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
	 D0   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
	 E0   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
	 F0   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

Audio device
bus 0 (0x00), device 31 (0x1F), function 5 (0x05)
Common header
	Vendor ID		0x8086
	Model ID		0x2445
	Revision ID		0x02
	PI			0x00
	SubClass		0x01
	BaseClass		0x04
	Cache Line		0x00
	Latency			0x00
	Header			0x00
PCI header
	Address 0 (port)	0x00005800
	Address 1 (port)	0x00005C00
	Subvendor ID		0x0000
	Subsystem ID		0x0000
	Int. Line		0x09
	Int. Pin		0x02
Dump
	       0  1  2  3  4  5  6  7  8  9  A  B  C  D  E  F
	 00   86 80 45 24 07 00 80 02 02 00 01 04 00 00 00 00
	 10   01 58 00 00 01 5C 00 00 00 00 00 00 00 00 00 00
	 20   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
	 30   01 00 00 00 00 00 00 00 00 00 00 00 09 02 00 00
	 40   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
	 50   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
	 60   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
	 70   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
	 80   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
	 90   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
	 A0   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
	 B0   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
	 C0   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
	 D0   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
	 E0   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
	 F0   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

DMI
------------------------------------------------------------------------------

DMI BIOS
--------
	vendor		Parallels Software International Inc.
	version		3.0
	date		10/06/2008

DMI System Information
----------------------
	manufacturer	Parallels Software International Inc.
	product		Parallels Virtual Platform
	version		None
	serial		Parallels-11 69 6C 60 63 FB 4D 19 97 0F A3 4B 64 36 31 38
	UUID		11696C60-63FB4D19-970FA34B-64363138

DMI System Enclosure
--------------------
	manufacturer	N/A
	chassis type	1X
	chassis serial	No Asset Tag

DMI Processor
-------------
	manufacturer	GenuineIntel
	model		unknown
	clock speed	2080.0 MHz
	FSB speed	133.0 MHz
	multiplier	15.5x

DMI Extension Slot
------------------
	designation	ISA slot 1
	type		ISA
	width		16 bits

DMI Extension Slot
------------------
	designation	PCI slot 1
	type		PCI
	width		32 bits

DMI Extension Slot
------------------
	designation	PCI slot 2
	type		PCI
	width		32 bits

DMI Extension Slot
------------------
	designation	PCI slot 3
	type		PCI
	width		32 bits

DMI Extension Slot
------------------
	designation	PCI slot 4
	type		PCI
	width		32 bits

DMI Extension Slot
------------------
	designation	PCI slot 5
	type		PCI
	width		32 bits

DMI Physical Memory Array
-------------------------
	location	Motherboard
	usage		System Memory
	correction	None
	max capacity	4096 MBytes
	max# of devices	4

DMI Memory Device
-----------------
	designation	DIMM #0
	format		DIMM
	type		DRAM
	total width	32 bits
	data width	32 bits
	size		1024 MBytes

DMI Memory Device
-----------------
	designation	DIMM #1
	format		DIMM
	type		DRAM
	total width	32 bits
	data width	32 bits

DMI Memory Device
-----------------
	designation	DIMM #2
	format		DIMM
	type		DRAM
	total width	32 bits
	data width	32 bits

DMI Memory Device
-----------------
	designation	DIMM #3
	format		DIMM
	type		DRAM
	total width	32 bits
	data width	32 bits

Software
------------------------------------------------------------------------------

Windows Version		Microsoft Windows XP Professional  Service Pack 2  
(Build 2600)
DirectX Version		9.0c

Resources
------------------------------------------------------------------------------

Port I/O Space, BA=0x4000
Memory I/O Space, BA=0x00000000C0000000
Port I/O Space, BA=0x4400
Port I/O Space, BA=0x4800
Port I/O Space, BA=0x4C00
Port I/O Space, BA=0x5000
Memory I/O Space, BA=0x00000000C2000000
Memory I/O Space, BA=0x00000000E0000000
Port I/O Space, BA=0x5400
Port I/O Space, BA=0x5800
Port I/O Space, BA=0x5C00
Gary Byers | 15 Oct 22:38

Re: Windows versions of CCL available for smoke-testing (does not work on Parallels?)

It's claiming (in the "edx" value in function 1) not to support the
ability to flush individual cache lines.  (It's also claiming that
the cache line size is 64 bytes, which is likely correct.)  I think
that it's pretty unlikely that the real CPU doesn't support flushing
cache lines; I don't know whether that's hard for Parallels to virtualize
or if they're just not setting the bit correctly.  (The bit in question
is bit 19 in the EDX value returned by function 1.)

The good news is that I don't think that the lisp actually needs to
flush individual cache lines.  (The x86 cache is unified and "coherent";
how else would horrible old MS-DOS games and virii work ?)  I'll double-check
that and try to check in a fix for it if possible.

Thanks; this is the kind of think that I was hoping that smoke-testing
would catch.

On Wed, 15 Oct 2008, Alexander Repenning wrote:

> I trying to run wx86cl.exe on a 2.6 Ghz MacBook Pro with Parallels 3.0, XP 
> sp2.
>
> I am getting the "CPU doesn't support required features" problem and cannot 
> run CCL. See specs below but according to CPU-Z SSE2 is there. Am I running 
> the wrong version of CCL? Did anybody else get CCL win32 to work under 
> XP/Parallels/Mac?
>
> Alex
>
>
>
>
> -------------------------
> CPU-Z version 1.47
> -------------------------
>
> Processors Map
> ------------------------------------------------------------------------------------
>
> Number of processors	1
> Number of threads	1
>
> Processor 0
>  -- Core 0
>      -- Thread 0
>
>
> Processors Information
> ------------------------------------------------------------------------------------
>
> Processor 1 (ID = 0)
> Number of cores		1 (max 1)
> Number of threads	1 (max 1)
> Name			Intel Core 2
> Codename		Specification		Intel(R) Core(TM)2 Duo CPU 
> T9500  @ 2.60GHz (Engineering Sample)
> Package			Socket 775 LGA (platform ID = 4h)
> CPUID			6.7.6
> Extended CPUID		6.17
> Core Stepping		C0
> Technology		45 nm
> Core Speed		2592.1 MHz
> Instructions sets	MMX, SSE, SSE2, SSE3
> L1 Data cache		32 KBytes, 8-way set associative, 64-byte line size
> L1 Instruction cache	32 KBytes, 8-way set associative, 64-byte line size
> L2 cache		6144 KBytes, 16-way set associative, 64-byte line 
> size
> FID/VID Control		no
> Features 
>
> Thread dumps
> ------------------------------------------------------------------------------------
>
> CPU Thread 0
> APIC ID			0
> Topology		Processor ID 0, Core ID 0, Thread ID 0
> Type			01008000h
> Max CPUID level		0000000Ah
> Max CPUID ext. level	80000008h
>
> Function		eax		ebx		ecx		edx
> 0x00000000		0x0000000A	0x756E6547	0x6C65746E 
> 0x49656E69
> 0x00000001		0x00010676	0x01020800	0x00000001 
> 0x0F80B9B9
> 0x00000002		0x05B0B101	0x005657F0	0x00000000 
> 0x2CB4304E
> 0x00000003		0x00000000	0x00000000	0x00000000 
> 0x00000000
> 0x00000005		0x00000000	0x00000000	0x00000000 
> 0x00000000
> 0x00000006		0x00000000	0x00000000	0x00000000 
> 0x00000000
> 0x00000007		0x00000000	0x00000000	0x00000000 
> 0x00000000
> 0x00000008		0x00000000	0x00000000	0x00000000 
> 0x00000000
> 0x00000009		0x00000000	0x00000000	0x00000000 
> 0x00000000
> 0x0000000A		0x00000000	0x00000000	0x00000000 
> 0x00000000
> 0x80000000		0x80000008	0x00000000	0x00000000 
> 0x00000000
> 0x80000001		0x00000000	0x00000000	0x00000000 
> 0x00000000
> 0x80000002		0x65746E49	0x2952286C	0x726F4320 
> 0x4D542865
> 0x80000003		0x44203229	0x43206F75	0x20205550 
> 0x54202020
> 0x80000004		0x30303539	0x20402020	0x30362E32 
> 0x007A4847
> 0x80000005		0x00000000	0x00000000	0x00000000 
> 0x00000000
> 0x80000006		0x00000000	0x00000000	0x18008040 
> 0x00000000
> 0x80000007		0x00000000	0x00000000	0x00000000 
> 0x00000000
> 0x80000008		0x00000000	0x00000000	0x00000000 
> 0x00000000
>
> Cache descriptor	Level 2 U	6 MB	1 thread(s)	Cache 
> descriptor	Level 1 D	32 KB	1 thread(s)	Cache descriptor 
> Level 1 I	32 KB	1 thread(s) 
> MSR 0x00000017		edx = 0x21520000	eax = 0x00000000
> MSR 0x000000CD		edx = 0x00000000	eax = 0x00000000
> MSR 0x0000003F		edx = 0x00000000	eax = 0x00000000
> MSR 0x000000CE		edx = 0x00000000	eax = 0x00000000
> MSR 0x000001A0		edx = 0x00000000	eax = 0x00000000
> MSR 0x000000EE		edx = 0x00000000	eax = 0x00000000
> MSR 0x0000011E		edx = 0x00000000	eax = 0x00000000
> MSR 0x0000002A		edx = 0x00000000	eax = 0x00000000
>
>
> Chipset
> ------------------------------------------------------------------------------
>
> Southbridge		Intel 82801BA (ICH2) rev. 08
> Memory Type		SDRAM
> Memory Size		1024 MBytes
> CAS#			3.0
> RAS# to CAS#		3
> RAS# Precharge		3
> Cycle Time (tRAS)	5
> Bank Cycle Time (tRC)	7
>
>
> Memory SPD
> ------------------------------------------------------------------------------
>
> No SPD information available
>
>
> Monitoring
> ------------------------------------------------------------------------------
>
>
> PCI Device List
> ------------------------------------------------------------------------------
>
> VGA Controller
> bus 0 (0x00), device 2 (0x02), function 0 (0x00)
> Common header
> 	Vendor ID		0x1AB8
> 	Model ID		0x1131
> 	Revision ID		0x00
> 	PI			0x00
> 	SubClass		0x00
> 	BaseClass		0x03
> 	Cache Line		0x00
> 	Latency			0x00
> 	Header			0x00
> PCI header
> 	Address 0 (port)	0x00004000
> 	Address 1 (memory)	0xC0000000
> 	Address 2 (port)	0x00004400
> 	Subvendor ID		0x0000
> 	Subsystem ID		0x0000
> 	Int. Line		0x0B
> 	Int. Pin		0x01
> Dump
> 	       0  1  2  3  4  5  6  7  8  9  A  B  C  D  E  F
> 	 00   B8 1A 31 11 0F 00 80 02 00 00 00 03 00 00 00 00
> 	 10   01 40 00 00 00 00 00 C0 01 44 00 00 00 00 00 00
> 	 20   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> 	 30   01 00 00 00 00 00 00 00 00 00 00 00 0B 01 00 00
> 	 40   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> 	 50   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> 	 60   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> 	 70   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> 	 80   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> 	 90   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> 	 A0   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> 	 B0   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> 	 C0   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> 	 D0   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> 	 E0   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> 	 F0   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
>
>
> Bridge device
> bus 0 (0x00), device 3 (0x03), function 0 (0x00)
> Common header
> 	Vendor ID		0x1AB8
> 	Model ID		0x1112
> 	Revision ID		0x00
> 	PI			0x00
> 	SubClass		0x80
> 	BaseClass		0x06
> 	Cache Line		0x00
> 	Latency			0x00
> 	Header			0x00
> PCI header
> 	Address 0 (port)	0x00004800
> 	Subvendor ID		0x0000
> 	Subsystem ID		0x0000
> 	Int. Line		0x09
> 	Int. Pin		0x01
> Dump
> 	       0  1  2  3  4  5  6  7  8  9  A  B  C  D  E  F
> 	 00   B8 1A 12 11 0F 00 80 02 00 00 80 06 00 00 00 00
> 	 10   01 48 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> 	 20   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> 	 30   01 00 00 00 00 00 00 00 00 00 00 00 09 01 00 00
> 	 40   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> 	 50   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> 	 60   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> 	 70   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> 	 80   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> 	 90   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> 	 A0   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> 	 B0   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> 	 C0   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> 	 D0   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> 	 E0   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> 	 F0   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
>
>
> Ethernet Controller
> bus 0 (0x00), device 5 (0x05), function 0 (0x00)
> Common header
> 	Vendor ID		0x10EC
> 	Model ID		0x8029
> 	Revision ID		0x00
> 	PI			0x00
> 	SubClass		0x00
> 	BaseClass		0x02
> 	Cache Line		0x00
> 	Latency			0x00
> 	Header			0x00
> PCI header
> 	Address 0 (port)	0x00004C00
> 	Subvendor ID		0x10EC
> 	Subsystem ID		0x8029
> 	Int. Line		0x0A
> 	Int. Pin		0x01
> Dump
> 	       0  1  2  3  4  5  6  7  8  9  A  B  C  D  E  F
> 	 00   EC 10 29 80 07 00 00 00 00 00 00 02 00 00 00 00
> 	 10   01 4C 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> 	 20   00 00 00 00 00 00 00 00 00 00 00 00 EC 10 29 80
> 	 30   01 00 00 00 00 00 00 00 00 00 00 00 0A 01 00 00
> 	 40   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> 	 50   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> 	 60   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> 	 70   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> 	 80   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> 	 90   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> 	 A0   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> 	 B0   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> 	 C0   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> 	 D0   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> 	 E0   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> 	 F0   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
>
>
> USB Controller (UHCI)
> bus 0 (0x00), device 29 (0x1D), function 0 (0x00)
> Common header
> 	Vendor ID		0x8086
> 	Model ID		0x2658
> 	Revision ID		0x02
> 	PI			0x00
> 	SubClass		0x03
> 	BaseClass		0x0C
> 	Cache Line		0x00
> 	Latency			0x00
> 	Header			0x80
> PCI header
> 	Address 4 (port)	0x00005000
> 	Subvendor ID		0x8086
> 	Subsystem ID		0x4541
> 	Int. Line		0x0B
> 	Int. Pin		0x03
> Dump
> 	       0  1  2  3  4  5  6  7  8  9  A  B  C  D  E  F
> 	 00   86 80 58 26 07 00 80 02 02 00 03 0C 00 00 80 00
> 	 10   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> 	 20   01 50 00 00 00 00 00 00 00 00 00 00 86 80 41 45
> 	 30   01 00 00 00 00 00 00 00 00 00 00 00 0B 03 00 00
> 	 40   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> 	 50   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> 	 60   10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> 	 70   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> 	 80   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> 	 90   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> 	 A0   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> 	 B0   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> 	 C0   00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> 	 D0   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> 	 E0   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> 	 F0   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
>
>
> USB 2.0 Controller (EHCI)
> bus 0 (0x00), device 29 (0x1D), function 7 (0x07)
> Common header
> 	Vendor ID		0x8086
> 	Model ID		0x265C
> 	Revision ID		0x02
> 	PI			0x20
> 	SubClass		0x03
> 	BaseClass		0x0C
> 	Cache Line		0x00
> 	Latency			0x00
> 	Header			0x00
> PCI header
> 	Address 0 (memory)	0xC2000000
> 	Subvendor ID		0x8086
> 	Subsystem ID		0x4541
> 	Int. Line		0x09
> 	Int. Pin		0x04
> Dump
> 	       0  1  2  3  4  5  6  7  8  9  A  B  C  D  E  F
> 	 00   86 80 5C 26 07 00 80 02 02 20 03 0C 00 00 00 00
> 	 10   00 00 00 C2 00 00 00 00 00 00 00 00 00 00 00 00
> 	 20   00 00 00 00 00 00 00 00 00 00 00 00 86 80 41 45
> 	 30   01 00 00 00 00 00 00 00 00 00 00 00 09 04 00 00
> 	 40   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> 	 50   01 58 C2 C9 00 00 00 00 0A 00 A0 20 00 00 00 00
> 	 60   20 20 FF 1F 00 00 00 00 01 00 00 00 00 00 00 00
> 	 70   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> 	 80   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> 	 90   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> 	 A0   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> 	 B0   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> 	 C0   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> 	 D0   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> 	 E0   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> 	 F0   00 00 00 00 00 00 00 00 00 00 00 00 06 17 00 00
>
>
> Host Bridge
> bus 0 (0x00), device 30 (0x1E), function 0 (0x00)
> Common header
> 	Vendor ID		0x8086
> 	Model ID		0x1130
> 	Revision ID		0x02
> 	PI			0x00
> 	SubClass		0x00
> 	BaseClass		0x06
> 	Cache Line		0x00
> 	Latency			0x00
> 	Header			0x00
> PCI header
> 	Address 0 (memory)	0xE0000000
> 	Subvendor ID		0x8086
> 	Subsystem ID		0x4541
> 	Int. Line		0xFF
> 	Int. Pin		0x00
> Capabilities
> 	Vendor Dependant Capability
> 		Offset		88h
> 	AGP Capability
> 		Offset		A0h
> 		Version		2.0
> 		Status		disabled
> 		Max transfer	4x
> 		Queue lenght	1 (max 32)
> Dump
> 	       0  1  2  3  4  5  6  7  8  9  A  B  C  D  E  F
> 	 00   86 80 30 11 07 00 90 00 02 00 00 06 00 00 00 00
> 	 10   08 00 00 E0 00 00 00 00 00 00 00 00 00 00 00 00
> 	 20   00 00 00 00 00 00 00 00 00 00 00 00 86 80 41 45
> 	 30   00 00 00 00 88 00 00 00 00 00 00 00 FF 00 00 00
> 	 40   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> 	 50   44 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> 	 60   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> 	 70   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> 	 80   00 00 00 00 00 00 00 00 09 A0 04 F1 00 00 00 00
> 	 90   00 00 FF FF FF FF 00 00 00 00 00 00 00 00 00 00
> 	 A0   02 00 20 00 07 02 00 1F 00 00 00 00 00 00 00 00
> 	 B0   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> 	 C0   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> 	 D0   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> 	 E0   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> 	 F0   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
>
>
> PCI to ISA Bridge
> bus 0 (0x00), device 31 (0x1F), function 0 (0x00)
> Common header
> 	Vendor ID		0x8086
> 	Model ID		0x2440
> 	Revision ID		0x08
> 	PI			0x00
> 	SubClass		0x01
> 	BaseClass		0x06
> 	Cache Line		0x00
> 	Latency			0x00
> 	Header			0x80
> PCI header
> 	Subvendor ID		0x8086
> 	Subsystem ID		0x4541
> 	Int. Line		0xFF
> 	Int. Pin		0x00
> Dump
> 	       0  1  2  3  4  5  6  7  8  9  A  B  C  D  E  F
> 	 00   86 80 40 24 0F 00 00 00 08 00 01 06 00 00 80 00
> 	 10   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> 	 20   00 00 00 00 00 00 00 00 00 00 00 00 86 80 41 45
> 	 30   00 00 00 00 00 00 00 00 00 00 00 00 FF 00 00 00
> 	 40   01 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> 	 50   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> 	 60   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> 	 70   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> 	 80   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> 	 90   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> 	 A0   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> 	 B0   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> 	 C0   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> 	 D0   80 21 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> 	 E0   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> 	 F0   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
>
>
> IDE Controller
> bus 0 (0x00), device 31 (0x1F), function 1 (0x01)
> Common header
> 	Vendor ID		0x8086
> 	Model ID		0x244B
> 	Revision ID		0x00
> 	PI			0x80
> 	SubClass		0x01
> 	BaseClass		0x01
> 	Cache Line		0x00
> 	Latency			0x00
> 	Header			0x00
> PCI header
> 	Address 4 (port)	0x00005400
> 	Subvendor ID		0x8086
> 	Subsystem ID		0x4541
> 	Int. Line		0xFF
> 	Int. Pin		0x00
> Dump
> 	       0  1  2  3  4  5  6  7  8  9  A  B  C  D  E  F
> 	 00   86 80 4B 24 07 00 80 02 00 80 01 01 00 00 00 00
> 	 10   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> 	 20   01 54 00 00 00 00 00 00 00 00 00 00 86 80 41 45
> 	 30   01 00 00 00 00 00 00 00 00 00 00 00 FF 00 00 00
> 	 40   FF E3 00 00 BB 00 00 00 0F 00 11 11 00 00 00 00
> 	 50   00 00 00 00 FF F4 00 00 00 00 00 00 00 00 00 00
> 	 60   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> 	 70   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> 	 80   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> 	 90   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> 	 A0   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> 	 B0   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> 	 C0   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> 	 D0   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> 	 E0   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> 	 F0   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
>
>
> Audio device
> bus 0 (0x00), device 31 (0x1F), function 5 (0x05)
> Common header
> 	Vendor ID		0x8086
> 	Model ID		0x2445
> 	Revision ID		0x02
> 	PI			0x00
> 	SubClass		0x01
> 	BaseClass		0x04
> 	Cache Line		0x00
> 	Latency			0x00
> 	Header			0x00
> PCI header
> 	Address 0 (port)	0x00005800
> 	Address 1 (port)	0x00005C00
> 	Subvendor ID		0x0000
> 	Subsystem ID		0x0000
> 	Int. Line		0x09
> 	Int. Pin		0x02
> Dump
> 	       0  1  2  3  4  5  6  7  8  9  A  B  C  D  E  F
> 	 00   86 80 45 24 07 00 80 02 02 00 01 04 00 00 00 00
> 	 10   01 58 00 00 01 5C 00 00 00 00 00 00 00 00 00 00
> 	 20   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> 	 30   01 00 00 00 00 00 00 00 00 00 00 00 09 02 00 00
> 	 40   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> 	 50   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> 	 60   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> 	 70   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> 	 80   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> 	 90   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> 	 A0   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> 	 B0   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> 	 C0   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> 	 D0   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> 	 E0   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> 	 F0   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
>
>
> DMI
> ------------------------------------------------------------------------------
>
> DMI BIOS
> --------
> 	vendor		Parallels Software International Inc.
> 	version		3.0
> 	date		10/06/2008
>
>
> DMI System Information
> ----------------------
> 	manufacturer	Parallels Software International Inc.
> 	product		Parallels Virtual Platform
> 	version		None
> 	serial		Parallels-11 69 6C 60 63 FB 4D 19 97 0F A3 4B 64 36 
> 31 38
> 	UUID		11696C60-63FB4D19-970FA34B-64363138
>
>
> DMI System Enclosure
> --------------------
> 	manufacturer	N/A
> 	chassis type	1X
> 	chassis serial	No Asset Tag
>
>
> DMI Processor
> -------------
> 	manufacturer	GenuineIntel
> 	model		unknown
> 	clock speed	2080.0 MHz
> 	FSB speed	133.0 MHz
> 	multiplier	15.5x
>
>
> DMI Extension Slot
> ------------------
> 	designation	ISA slot 1
> 	type		ISA
> 	width		16 bits
>
>
> DMI Extension Slot
> ------------------
> 	designation	PCI slot 1
> 	type		PCI
> 	width		32 bits
>
>
> DMI Extension Slot
> ------------------
> 	designation	PCI slot 2
> 	type		PCI
> 	width		32 bits
>
>
> DMI Extension Slot
> ------------------
> 	designation	PCI slot 3
> 	type		PCI
> 	width		32 bits
>
>
> DMI Extension Slot
> ------------------
> 	designation	PCI slot 4
> 	type		PCI
> 	width		32 bits
>
>
> DMI Extension Slot
> ------------------
> 	designation	PCI slot 5
> 	type		PCI
> 	width		32 bits
>
>
> DMI Physical Memory Array
> -------------------------
> 	location	Motherboard
> 	usage		System Memory
> 	correction	None
> 	max capacity	4096 MBytes
> 	max# of devices	4
>
>
> DMI Memory Device
> -----------------
> 	designation	DIMM #0
> 	format		DIMM
> 	type		DRAM
> 	total width	32 bits
> 	data width	32 bits
> 	size		1024 MBytes
>
>
> DMI Memory Device
> -----------------
> 	designation	DIMM #1
> 	format		DIMM
> 	type		DRAM
> 	total width	32 bits
> 	data width	32 bits
>
>
> DMI Memory Device
> -----------------
> 	designation	DIMM #2
> 	format		DIMM
> 	type		DRAM
> 	total width	32 bits
> 	data width	32 bits
>
>
> DMI Memory Device
> -----------------
> 	designation	DIMM #3
> 	format		DIMM
> 	type		DRAM
> 	total width	32 bits
> 	data width	32 bits
>
>
> Software
> ------------------------------------------------------------------------------
>
> Windows Version		Microsoft Windows XP Professional  Service Pack 2 
> (Build 2600)
> DirectX Version		9.0c
>
>
> Resources
> ------------------------------------------------------------------------------
>
> Port I/O Space, BA=0x4000
> Memory I/O Space, BA=0x00000000C0000000
> Port I/O Space, BA=0x4400
> Port I/O Space, BA=0x4800
> Port I/O Space, BA=0x4C00
> Port I/O Space, BA=0x5000
> Memory I/O Space, BA=0x00000000C2000000
> Memory I/O Space, BA=0x00000000E0000000
> Port I/O Space, BA=0x5400
> Port I/O Space, BA=0x5800
> Port I/O Space, BA=0x5C00
>
Barry Perryman | 9 Oct 18:37

Re: Windows versions of CCL available for smoke-testing

Great news.

I briefly tried sockets on XP Pro SP3 at work trying to connect to my local web server and got the following:

C:\>wx86cl
Welcome to Clozure Common Lisp Version 1.2-r11005M  (WindowsX8632)!
? (make-socket :remote-host "localhost" :remote-port 80)
> Error: value 2147772030 is not of the expected type (SIGNED-BYTE 32).
> While executing: CCL::SET-SOCKET-FD-BLOCKING, in process listener(1).
> Type :POP to abort, :R for a list of available restarts.
> Type :? for other options.
1 > :b
*(BC0BA0) : 0 (SET-SOCKET-FD-BLOCKING 3 NIL) 549
 (BC0BD8) : 1 (C_CONNECT 3 #<A Foreign Pointer [stack-allocated] (:* #) #xAAFF38
> 16 [...]) 183
 (BC0C0C) : 2 (%SOCKET-CONNECT 3 #<A Foreign Pointer [stack-allocated] (:* #) #x
AAFF38> 16 [...]) 87
 (BC0C24) : 3 (INET-CONNECT 3 16777343 20480 [...]) 439
 (BC0C44) : 4 (MAKE-TCP-STREAM-SOCKET 3 [...]) 415
 (BC0C78) : 5 (MAKE-TCP-SOCKET [...]) 503
 (BC0CAC) : 6 (MAKE-SOCKET [...]) 695
 (BC0DA0) : 7 (CALL-CHECK-REGS 'MAKE-SOCKET [...]) 247
 (BC0DBC) : 8 (TOPLEVEL-EVAL '(MAKE-SOCKET :REMOTE-HOST "localhost" :REMOTE-PORT
 80) [...]) 759
 (BC0DFC) : 9 (READ-LOOP [...]) 1567
 (BC0F00) : 10 (TOPLEVEL-LOOP) 79
 (BC0F08) : 11 (FUNCALL #'#<(:INTERNAL (TOPLEVEL-FUNCTION (CCL::LISP-DEVELOPMENT
-SYSTEM T)))>) 87
 (BC0F14) : 12 (FUNCALL #'#<(:INTERNAL CCL::MAKE-MCL-LISTENER-PROCESS)>) 575
 (BC0F60) : 13 (RUN-PROCESS-INITIAL-FORM #<TTY-LISTENER listener(1) [Active] #x8
8FED06> '(#)) 671
 (BC0FA4) : 14 (FUNCALL #'#<(:INTERNAL CCL::%PROCESS-PRESET-INTERNAL)> #<TTY-LIS
TENER listener(1) [Active] #x88FED06> '(#)) 335
 (BC0FCC) : 15 (FUNCALL #'#<(:INTERNAL CCL::THREAD-MAKE-STARTUP-FUNCTION)>) 279
1 > :q
> Error: value 2147772030 is not of the expected type (SIGNED-BYTE 32).
> While executing: CCL::SET-SOCKET-FD-BLOCKING, in process listener(1).
> Type :POP to abort, :R for a list of available restarts.
> Type :? for other options.
1 > :b
*(BC0BA8) : 0 (SET-SOCKET-FD-BLOCKING 3 T) 549
 (BC0BE0) : 1 (C_CONNECT 3 #<A Foreign Pointer [stack-allocated] (:* #) #xAAFF38
> 16 [...]) 135
 (BC0C0C) : 2 (%SOCKET-CONNECT 3 #<A Foreign Pointer [stack-allocated] (:* #) #x
AAFF38> 16 [...]) 87
 (BC0C24) : 3 (INET-CONNECT 3 16777343 20480 [...]) 439
 (BC0C44) : 4 (MAKE-TCP-STREAM-SOCKET 3 [...]) 415
 (BC0C78) : 5 (MAKE-TCP-SOCKET [...]) 503
 (BC0CAC) : 6 (MAKE-SOCKET [...]) 695
 (BC0DA0) : 7 (CALL-CHECK-REGS 'MAKE-SOCKET [...]) 247
 (BC0DBC) : 8 (TOPLEVEL-EVAL '(MAKE-SOCKET :REMOTE-HOST "localhost" :REMOTE-PORT
 80) [...]) 759
 (BC0DFC) : 9 (READ-LOOP [...]) 1567
 (BC0F00) : 10 (TOPLEVEL-LOOP) 79
 (BC0F08) : 11 (FUNCALL #'#<(:INTERNAL (TOPLEVEL-FUNCTION (CCL::LISP-DEVELOPMENT
-SYSTEM T)))>) 87
 (BC0F14) : 12 (FUNCALL #'#<(:INTERNAL CCL::MAKE-MCL-LISTENER-PROCESS)>) 575
 (BC0F60) : 13 (RUN-PROCESS-INITIAL-FORM #<TTY-LISTENER listener(1) [Active] #x8
8FED06> '(#)) 671
 (BC0FA4) : 14 (FUNCALL #'#<(:INTERNAL CCL::%PROCESS-PRESET-INTERNAL)> #<TTY-LIS
TENER listener(1) [Active] #x88FED06> '(#)) 335
 (BC0FCC) : 15 (FUNCALL #'#<(:INTERNAL CCL::THREAD-MAKE-STARTUP-FUNCTION)>) 279
1 > :q
?

Barry

On Thu, Oct 9, 2008 at 3:28 AM, Gary Byers <gb <at> clozure.com> wrote:
32- and 64-bit versions of Clozure CL for Windows are now available in svn:

<http://svn.clozure.com/publicsvn/openmcl/trunk/windows>

The 64-bit version's been available for a while; the 32-bit version's
brand new (and still contains some known runtime bugs, along with all
of the unknown ones.)  We only have a few (real or virtual) Windows
boxes available, so it'd be helpful if people with (a) interest (b)
some time and (c) access to real or virtual Windows boxes could
take this for a ride around the block, kick the tires, etc.

As of yesterday, the win32 version could compile itself successfully
3 times out of 4 and crashed the 4th time.  The win64 version hasn't
had a random unexpected crash in a few months, but AFAIK I've been
the only person using it much.  As much as anything, it'd be interesting
to see if this general impression (the win32 port is at the outer bounds
if usability, the win64 port is generally a lot closer) is confirmed or
refuted by other people's experience.

Both version should run under XP or Vista (but almost certainly not under
anything older than XP.)  XP is several years old now, and XP with a
recent "service pack" is somewhat different from earlier version.  Most
of the Win32 development's been done under a fairly recent (SP3) version
of XP; it'd be interesting to know whether it works on eariler versions.

The 64-bit version requires a 64-bit version of Windows (XP64, Vista 64.
maybe some server OS versions.)  It's currently the case that the 32-bit
version of CCL doesn't run under 64-bit OS releases.  We understand why
it doesn't, and hope to remove this restriction ASAP.

I don't use SLIME; I honestly don't know whether or not there are socket
or other issues that'd prevent SLIME from working.  (If there are, please
let us know and we'll try to give priority to fixing them.)

Some things that we do know:

- Windows has a very different model of file permissions and sharing
  than Unix systems do.  On Unix, it's well-defined, meaningful, and
  useful to (for instance) delete a file that you have open; Windows
  generally doesn't allow that sort of thing.  (One consequence of this
  is that calling REBUILD-CCL with any options that'd cause the kernel
  to be rebuilt can't work the way things are currently implemented,
  since the lisp kernel has been opened by the OS.)  There are other
  consequences, some of which can be addressed and improved and some
  of which can't: this is a very different OS.

- Most Windows functions and utilities that deal with pathnames can
  accept either forward or backward slashes as directory separators.
  CCL pathname/namestring functions don't (yet) deal with backslashes
  or with some other Windows namestring conventions.  (When a Windows
  function returns a namestring, any backslashes in that namestring
  are converted to forward slashes before lisp pathanme code sees it.)

- The lisp kernel is built with the Cygwin tools (www.cygwin.com), though
  we don't use any Cygwin libraries.  To build the 32-bit kernel, you'd
  need (at least) the 'make', 'gcc', 'm4', 'mingw" and "w32api" packages
  and their dependencies; the 64-bit kernel also needs a 64-bit toolchain
  available from the mingw-w64 project:

  <http://sourceforge.net/projects/mingw-w64/>

- We haven't done any work yet on Windows GUI programming (examples,
  bridges, ...).  On Win32, there's at least on low-level FFI change
  that'll be needed to support this (Win32 functions follow a "pascal-like"
  calling sequence, in which the callee pops its arguments off of the
  stack before returning.  The way that we do foreign function calls, I
  don't think that we care about this, but I'm pretty sure that we
  need to extend DEFCALLBACK to meet the caller's expectations.  (Perhaps
  we should call that extension DEFPASCAL ...)

Andreas Bogk did a lot of early work on the Win64 port, and the Win32
version has gotten as far as it has as quickly as it has largely because
Matt Emerson's ia32 compiler backend and runtime are as good as they are.

Again and especially in the case of the 32-bit port, "as far as it's
gotten" is "somewhere around the outer bounds of usability."  You'll
likely find that it crashes in mysterious and non-repeatable ways (it's
likely still on the wrong side of those outer bounds ...), and at this
point the most interesting questions are "does it run at all?" and "if
not, what OS version are you using ?".


_______________________________________________
Openmcl-devel mailing list
Openmcl-devel <at> clozure.com
http://clozure.com/mailman/listinfo/openmcl-devel

_______________________________________________
Openmcl-devel mailing list
Openmcl-devel <at> clozure.com
http://clozure.com/mailman/listinfo/openmcl-devel
Gary Byers | 9 Oct 19:46

Re: Windows versions of CCL available for smoke-testing

So.  It runs for you, then ... Backtrace works!  Errors are signaled !
Something's broken in SET-SOCKET-FD-BLOCKING!

Well, 2 out of 3 are good ...

On Thu, 9 Oct 2008, Barry Perryman wrote:

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

Re: Windows versions of CCL available for smoke-testing



On Thu, Oct 9, 2008 at 6:46 PM, Gary Byers <gb <at> clozure.com> wrote:
So.  It runs for you, then ... Backtrace works!  Errors are signaled !
Something's broken in SET-SOCKET-FD-BLOCKING!

Well, 2 out of 3 are good ...


No, it's 3 out of 4 which is even more amazing, I'm completely blown away.

I've been dragged away from Lisp for a bit by too much C# work and F#, so to see there is not only a 32 bit port doing well, but a 32 bit port for windows was a surprise to say the least.

All it needs to say now on start up is "your puppy of destruction is prepared for you" and I can remove SBCL once and for all.

Barry
_______________________________________________
Openmcl-devel mailing list
Openmcl-devel <at> clozure.com
http://clozure.com/mailman/listinfo/openmcl-devel
David Brown | 11 Oct 06:23

Problem with files of some kind, linux x86-32

Not sure all that is required to reproduce this.

Welcome to Clozure Common Lisp Version 1.3-dev-r11045M-trunk  (LinuxX8632)!
? (machine-version)
> Error: value 4294967295 is not of the expected type FIXNUM.
> While executing: CCL::MAKE-FILE-STREAM, in process listener(1).
> Type :POP to abort, :R for a list of available restarts.
> Type :? for other options.
1 > :b
*(F7AC4C74) : 0 (MAKE-FILE-STREAM "/proc/cpuinfo" :INPUT 'BASE-CHAR :IGNORED NIL
'CCL::BASIC-FILE-STREAM :DEFAULT :PRIVATE T) 2732
  (F7AC4D10) : 1 (OPEN "/proc/cpuinfo" [...]) 751
  (F7AC4D74) : 2 (MACHINE-VERSION) 199
  (F7AC4DA0) : 3 (CALL-CHECK-REGS 'MACHINE-VERSION [...]) 247
  (F7AC4DBC) : 4 (TOPLEVEL-EVAL '(MACHINE-VERSION) [...]) 759
  (F7AC4DFC) : 5 (READ-LOOP [...]) 1567
  (F7AC4F00) : 6 (TOPLEVEL-LOOP) 79
  (F7AC4F08) : 7 (FUNCALL #'#<(:INTERNAL (TOPLEVEL-FUNCTION (CCL::LISP-DEVELOPMENT-SYSTEM T)))>) 87
  (F7AC4F14) : 8 (FUNCALL #'#<(:INTERNAL CCL::MAKE-MCL-LISTENER-PROCESS)>) 583
  (F7AC4F60) : 9 (RUN-PROCESS-INITIAL-FORM #<TTY-LISTENER listener(1) [Active] #x1490D7A6> '(#)) 671
  (F7AC4FA4) : 10 (FUNCALL #'#<(:INTERNAL CCL::%PROCESS-PRESET-INTERNAL)> #<TTY-LISTENER
listener(1) [Active] #x1490D7A6> '(#)) 335
  (F7AC4FCC) : 11 (FUNCALL #'#<(:INTERNAL CCL::THREAD-MAKE-STARTUP-FUNCTION)>) 279

Indeed, just (with-open-file (x "/proc/cpuinfo")) causes the same
problem.  The value is #xFFFFFFFF, so probably an error code returned
that isn't checking for a negative number correctly.

strace shows:
[pid  8335] open("/proc/cpuinfo", O_RDONLY) = 4
[pid  8335] ioctl(4, SNDCTL_TMR_TIMEBASE or TCGETS, 0xf7bbe0b8) = -1 ENOTTY (Inappropriate ioctl for device)
[pid  8335] fstat64(0x4, 0xf7bbe050)    = 0
[pid  8335] fstat64(0x4, 0xf7bbe050)    = 0
[pid  8335] ioctl(4, SNDCTL_TMR_TIMEBASE or TCGETS, 0xf7bbe0b8) = -1 ENOTTY (Inappropriate ioctl for device)
[pid  8335] fstat64(0x4, 0xf7bbe050)    = 0
[pid  8335] lseek(4, 0, SEEK_CUR)       = 0
[pid  8335] lseek(4, 0, SEEK_END)       = -1 EINVAL (Invalid argument)
[pid  8335] lseek(4, 0, SEEK_SET)       = 0
[pid  8335] --- SIGSEGV (Segmentation fault) @ 0 (0) ---
[pid  8335] rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
[pid  8335] write(1, "> Error: value 4294967295 is not"..., 63) = 63

David
R. Matthew Emerson | 11 Oct 07:59

Re: Problem with files of some kind, linux x86-32


On Oct 11, 2008, at 12:23 AM, David Brown wrote:

> Welcome to Clozure Common Lisp Version 1.3-dev-r11045M-trunk   
> (LinuxX8632)!
> ? (machine-version)
>> Error: value 4294967295 is not of the expected type FIXNUM.
>> While executing: CCL::MAKE-FILE-STREAM, in process listener(1).
>> Type :POP to abort, :R for a list of available restarts.
>> Type :? for other options.
> 1 > :b
> *(F7AC4C74) : 0 (MAKE-FILE-STREAM "/proc/cpuinfo" :INPUT 'BASE- 
> CHAR :IGNORED NIL 'CCL::BASIC-FILE-STREAM :DEFAULT :PRIVATE T) 2732
> (F7AC4D10) : 1 (OPEN "/proc/cpuinfo" [...]) 751
> (F7AC4D74) : 2 (MACHINE-VERSION) 199

I think this should be fixed in in the trunk now (r11046).

(The code that is supposed to get a 64-bit result from a foreign call  
was only copying the lower 32 bits.)

Thanks for reporting it.
Gary Byers | 11 Oct 08:21

Re: Problem with files of some kind, linux x86-32

Matt just fixed (in r11046) part of this; trying to seek to the end of
/proc/cpuinfo (to determine the length of the file) returns -1

> [pid  8335] lseek(4, 0, SEEK_END)       = -1 EINVAL (Invalid argument)

presumably because /proc/cpuinfo isn't a real file.  The "-1" in question
is 64 bits long, but the compiler was only picking up the low 32 bits
of that (which is where the #xfffffffff was coming from.)

So, the code attempted to store #xffffffff (which is a bignum on 32-bit
platforms) in a structure slot that's defined as:

(defstruct (file-ioblock (:include ioblock))
   ...
   (fileeof 0 :type fixnum)		; file length in elements

Who says that a file's length in elements is a fixnum, and does
anything actually believe that ?

(I'm pretty sure that nothing does believe that.  We started checking
type constraints on structure slots sometime in the last ~6 months or
so; prior to that, the type constaint above was wrong but completely
ignored.)

As if things weren't bad enough: the 64-bit return value from 'lseek'
was a 32-bit value, sign-extended to 64 bits (before we dropped the
high half.)  We really should be using 'lseek64' on Linux.

Lastly (with Matt's fix in place):

? (with-open-file (f "/proc/cpuinfo")
   (file-length f))
-22

Perhaps NIL (indicating that we can't determine the file's length)
would be a better answer ...

On Fri, 10 Oct 2008, David Brown wrote:

> Not sure all that is required to reproduce this.
>
> Welcome to Clozure Common Lisp Version 1.3-dev-r11045M-trunk  (LinuxX8632)!
> ? (machine-version)
>> Error: value 4294967295 is not of the expected type FIXNUM.
>> While executing: CCL::MAKE-FILE-STREAM, in process listener(1).
>> Type :POP to abort, :R for a list of available restarts.
>> Type :? for other options.
> 1 > :b
> *(F7AC4C74) : 0 (MAKE-FILE-STREAM "/proc/cpuinfo" :INPUT 'BASE-CHAR :IGNORED NIL
'CCL::BASIC-FILE-STREAM :DEFAULT :PRIVATE T) 2732
>  (F7AC4D10) : 1 (OPEN "/proc/cpuinfo" [...]) 751
>  (F7AC4D74) : 2 (MACHINE-VERSION) 199
>  (F7AC4DA0) : 3 (CALL-CHECK-REGS 'MACHINE-VERSION [...]) 247
>  (F7AC4DBC) : 4 (TOPLEVEL-EVAL '(MACHINE-VERSION) [...]) 759
>  (F7AC4DFC) : 5 (READ-LOOP [...]) 1567
>  (F7AC4F00) : 6 (TOPLEVEL-LOOP) 79
>  (F7AC4F08) : 7 (FUNCALL #'#<(:INTERNAL (TOPLEVEL-FUNCTION (CCL::LISP-DEVELOPMENT-SYSTEM T)))>) 87
>  (F7AC4F14) : 8 (FUNCALL #'#<(:INTERNAL CCL::MAKE-MCL-LISTENER-PROCESS)>) 583
>  (F7AC4F60) : 9 (RUN-PROCESS-INITIAL-FORM #<TTY-LISTENER listener(1) [Active] #x1490D7A6> '(#)) 671
>  (F7AC4FA4) : 10 (FUNCALL #'#<(:INTERNAL CCL::%PROCESS-PRESET-INTERNAL)> #<TTY-LISTENER
listener(1) [Active] #x1490D7A6> '(#)) 335
>  (F7AC4FCC) : 11 (FUNCALL #'#<(:INTERNAL CCL::THREAD-MAKE-STARTUP-FUNCTION)>) 279
>
> Indeed, just (with-open-file (x "/proc/cpuinfo")) causes the same
> problem.  The value is #xFFFFFFFF, so probably an error code returned
> that isn't checking for a negative number correctly.
>
> strace shows:
> [pid  8335] open("/proc/cpuinfo", O_RDONLY) = 4
> [pid  8335] ioctl(4, SNDCTL_TMR_TIMEBASE or TCGETS, 0xf7bbe0b8) = -1 ENOTTY (Inappropriate ioctl for device)
> [pid  8335] fstat64(0x4, 0xf7bbe050)    = 0
> [pid  8335] fstat64(0x4, 0xf7bbe050)    = 0
> [pid  8335] ioctl(4, SNDCTL_TMR_TIMEBASE or TCGETS, 0xf7bbe0b8) = -1 ENOTTY (Inappropriate ioctl for device)
> [pid  8335] fstat64(0x4, 0xf7bbe050)    = 0
> [pid  8335] lseek(4, 0, SEEK_CUR)       = 0
> [pid  8335] lseek(4, 0, SEEK_END)       = -1 EINVAL (Invalid argument)
> [pid  8335] lseek(4, 0, SEEK_SET)       = 0
> [pid  8335] --- SIGSEGV (Segmentation fault) @ 0 (0) ---
> [pid  8335] rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
> [pid  8335] write(1, "> Error: value 4294967295 is not"..., 63) = 63
>
> David
> _______________________________________________
> Openmcl-devel mailing list
> Openmcl-devel <at> clozure.com
> http://clozure.com/mailman/listinfo/openmcl-devel
>
>

Gmane