
Austin, or others, It would be SO GREAT if it was possible to validate on Windows again. Currently I'm using msys2, which builds GHC fine, but things fail badly in the testsuite. Traceback (most recent call last): File "../driver/runtests.py", line 144, in <module> raise Exception("Can't detect Windows terminal type") Exception: Can't detect Windows terminal type uname -s returns MINGW_NT-6.2 Changing the test from elif v.startswith("MINGW32"): to elif v.startswith("MINGW"): just produces a new error Traceback (most recent call last): File "../driver/runtests.py", line 155, in <module> mydll = ctypes.windll AttributeError: 'module' object has no attribute 'windll' ../mk/test.mk:242: recipe for target 'test' failed It's all very frustrating because I can't validate. Can anyone help? Simon

I've looked into this. Current test script picks msys2-compiled python, which, after your modification, can't find 'windll', because msys2-compiled python is cygwin-like and it's 'ctypes' has no 'windll'. If we rewrite the relevant part of script thus: config.msys2 = False .... elif v.startswith("MINGW"): config.msys2 = True .... # Try to use UTF8 if windows: import ctypes if config.cygwin or config.msys2: # Is this actually right? Which calling convention does it use? # As of the time of writing, ctypes.windll doesn't exist in the # cygwin python, anyway. mydll = ctypes.cdll else: mydll = ctypes.windll then we go slightly further and fail with: Traceback (most recent call last): File "../driver/runtests.py", line 151, in <module> import ctypes File "/usr/lib/python2.7/ctypes/__init__.py", line 451, in <module> pythonapi = PyDLL("libpython%d.%d.dll" % _sys.version_info[:2]) File "/usr/lib/python2.7/ctypes/__init__.py", line 365, in __init__ self._handle = _dlopen(self._name, mode) OSError: No such file or directory And this is definitely a bug in msys2 python, because there is no such a file ("libpython*.dll) anywhere in msys2 distribution. What could be possible solutions? 1. I'm seeing a new version of Msys2 appearing right now here http://sourceforge.net/projects/msys2/files/REPOS/MSYS2/i686/. It is now a bunch of separate packages, I've looked into python 2.7.5 package and found ctypes-related things definitely changed. Thus we could wait a couple of days until Msys2 release process is finished and installation information is available, hoping it's python is working properly. 2. Another approach is to modify testing infrastructure to use some pure win32/mingw based python distribution. But I'm in no way an expert here, sorry. Cheers, Kyra On 11/12/2013 02:10, Simon Peyton-Jones wrote:
Austin, or others,
It would be SO GREAT if it was possible to validate on Windows again.
Currently I'm using msys2, which builds GHC fine, but things fail badly in the testsuite.
Traceback (most recent call last):
File "../driver/runtests.py", line 144, in <module>
raise Exception("Can't detect Windows terminal type")
Exception: Can't detect Windows terminal type
uname --s returns MINGW_NT-6.2
Changing the test from
elif v.startswith("MINGW32"):
to
elif v.startswith("MINGW"):
just produces a new error
Traceback (most recent call last):
File "../driver/runtests.py", line 155, in <module>
mydll = ctypes.windll
AttributeError: 'module' object has no attribute 'windll'
../mk/test.mk:242: recipe for target 'test' failed
It's all very frustrating because I can't validate. Can anyone help?
Simon
_______________________________________________ ghc-devs mailing list ghc-devs@haskell.org http://www.haskell.org/mailman/listinfo/ghc-devs

Thanks Kyra, you are a star. Yes, msys2 has been updated to fix the ctypes bug. I have the version from 20131022. With your edit I now get this: Traceback (most recent call last): File "../driver/runtests.py", line 164, in <module> if mydll.kernel32.SetConsoleCP(65001) == 0: File "/usr/lib/python2.7/ctypes/__init__.py", line 435, in __getattr__ dll = self._dlltype(name) File "/usr/lib/python2.7/ctypes/__init__.py", line 365, in __init__ self._handle = _dlopen(self._name, mode) OSError: No such file or directory Any ideas about what to do now? I guess you can reproduce if you install the later msys2. thanks Simon From: ghc-devs [mailto:ghc-devs-bounces@haskell.org] On Behalf Of kyra Sent: 12 November 2013 06:45 To: ghc-devs@haskell.org Subject: Re: Windows build I've looked into this. Current test script picks msys2-compiled python, which, after your modification, can't find 'windll', because msys2-compiled python is cygwin-like and it's 'ctypes' has no 'windll'. If we rewrite the relevant part of script thus: config.msys2 = False .... elif v.startswith("MINGW"): config.msys2 = True .... # Try to use UTF8 if windows: import ctypes if config.cygwin or config.msys2: # Is this actually right? Which calling convention does it use? # As of the time of writing, ctypes.windll doesn't exist in the # cygwin python, anyway. mydll = ctypes.cdll else: mydll = ctypes.windll then we go slightly further and fail with: Traceback (most recent call last): File "../driver/runtests.py", line 151, in <module> import ctypes File "/usr/lib/python2.7/ctypes/__init__.py", line 451, in <module> pythonapi = PyDLL("libpython%d.%d.dll" % _sys.version_info[:2]) File "/usr/lib/python2.7/ctypes/__init__.py", line 365, in __init__ self._handle = _dlopen(self._name, mode) OSError: No such file or directory And this is definitely a bug in msys2 python, because there is no such a file ("libpython*.dll) anywhere in msys2 distribution. What could be possible solutions? 1. I'm seeing a new version of Msys2 appearing right now here http://sourceforge.net/projects/msys2/files/REPOS/MSYS2/i686/. It is now a bunch of separate packages, I've looked into python 2.7.5 package and found ctypes-related things definitely changed. Thus we could wait a couple of days until Msys2 release process is finished and installation information is available, hoping it's python is working properly. 2. Another approach is to modify testing infrastructure to use some pure win32/mingw based python distribution. But I'm in no way an expert here, sorry. Cheers, Kyra On 11/12/2013 02:10, Simon Peyton-Jones wrote: Austin, or others, It would be SO GREAT if it was possible to validate on Windows again. Currently I'm using msys2, which builds GHC fine, but things fail badly in the testsuite. Traceback (most recent call last): File "../driver/runtests.py", line 144, in <module> raise Exception("Can't detect Windows terminal type") Exception: Can't detect Windows terminal type uname -s returns MINGW_NT-6.2 Changing the test from elif v.startswith("MINGW32"): to elif v.startswith("MINGW"): just produces a new error Traceback (most recent call last): File "../driver/runtests.py", line 155, in <module> mydll = ctypes.windll AttributeError: 'module' object has no attribute 'windll' ../mk/test.mk:242: recipe for target 'test' failed It's all very frustrating because I can't validate. Can anyone help? Simon _______________________________________________ ghc-devs mailing list ghc-devs@haskell.orgmailto:ghc-devs@haskell.org http://www.haskell.org/mailman/listinfo/ghc-devs

It looks the second option (native win32 python) works. I've installed native win32 python, reverted my edit, leaving only *your* edit in place, *and* disabled msys2 python simply moving all msys2 python executables out of the path. It seems, all works now (I didn't wait the finish of tests, though). Cheers, Kyra On 11/12/2013 12:58, Simon Peyton-Jones wrote:
Thanks Kyra, you are a star.
Yes, msys2 has been updated to fix the ctypes bug. I have the version from 20131022.
With your edit I now get this:
Traceback (most recent call last):
File "../driver/runtests.py", line 164, in <module>
if mydll.kernel32.SetConsoleCP(65001) == 0:
File "/usr/lib/python2.7/ctypes/__init__.py", line 435, in __getattr__
dll = self._dlltype(name)
File "/usr/lib/python2.7/ctypes/__init__.py", line 365, in __init__
self._handle = _dlopen(self._name, mode)
OSError: No such file or directory
Any ideas about what to do now? I guess you can reproduce if you install the later msys2.
thanks
Simon
*From:*ghc-devs [mailto:ghc-devs-bounces@haskell.org] *On Behalf Of *kyra *Sent:* 12 November 2013 06:45 *To:* ghc-devs@haskell.org *Subject:* Re: Windows build
I've looked into this.
Current test script picks msys2-compiled python, which, after your modification, can't find 'windll', because msys2-compiled python is cygwin-like and it's 'ctypes' has no 'windll'. If we rewrite the relevant part of script thus:
config.msys2 = False .... elif v.startswith("MINGW"): config.msys2 = True .... # Try to use UTF8 if windows: import ctypes if config.cygwin or config.msys2: # Is this actually right? Which calling convention does it use? # As of the time of writing, ctypes.windll doesn't exist in the # cygwin python, anyway. mydll = ctypes.cdll else: mydll = ctypes.windll
then we go slightly further and fail with:
Traceback (most recent call last): File "../driver/runtests.py", line 151, in <module> import ctypes File "/usr/lib/python2.7/ctypes/__init__.py", line 451, in <module> pythonapi = PyDLL("libpython%d.%d.dll" % _sys.version_info[:2]) File "/usr/lib/python2.7/ctypes/__init__.py", line 365, in __init__ self._handle = _dlopen(self._name, mode) OSError: No such file or directory
And this is definitely a bug in msys2 python, because there is no such a file ("libpython*.dll) anywhere in msys2 distribution.
What could be possible solutions?
1. I'm seeing a new version of Msys2 appearing right now here http://sourceforge.net/projects/msys2/files/REPOS/MSYS2/i686/. It is now a bunch of separate packages, I've looked into python 2.7.5 package and found ctypes-related things definitely changed. Thus we could wait a couple of days until Msys2 release process is finished and installation information is available, hoping it's python is working properly.
2. Another approach is to modify testing infrastructure to use some pure win32/mingw based python distribution. But I'm in no way an expert here, sorry.
Cheers, Kyra
On 11/12/2013 02:10, Simon Peyton-Jones wrote:
Austin, or others,
It would be SO GREAT if it was possible to validate on Windows again.
Currently I'm using msys2, which builds GHC fine, but things fail badly in the testsuite.
Traceback (most recent call last):
File "../driver/runtests.py", line 144, in <module>
raise Exception("Can't detect Windows terminal type")
Exception: Can't detect Windows terminal type
uname --s returns MINGW_NT-6.2
Changing the test from
elif v.startswith("MINGW32"):
to
elif v.startswith("MINGW"):
just produces a new error
Traceback (most recent call last):
File "../driver/runtests.py", line 155, in <module>
mydll = ctypes.windll
AttributeError: 'module' object has no attribute 'windll'
../mk/test.mk:242: recipe for target 'test' failed
It's all very frustrating because I can't validate. Can anyone help?
Simon
_______________________________________________
ghc-devs mailing list
ghc-devs@haskell.org mailto:ghc-devs@haskell.org
http://www.haskell.org/mailman/listinfo/ghc-devs
_______________________________________________ ghc-devs mailing list ghc-devs@haskell.org http://www.haskell.org/mailman/listinfo/ghc-devs
participants (2)
-
kyra
-
Simon Peyton-Jones