Make spins with THREADS>1 on Win 7

Simon Peyton-Jones simonpj
Wed Oct 2 19:40:28 UTC 2013


Summary: progress on Windows builds, but a show-stopper below that I'm sure some ghc-dev can help with.


Ah, I've forgotten to mention that the environment variable MSYSTEM must be set to MINGW before starting the shell

Oh, this is much better.

*         The download from msys2 already includes

o   python

o   git

o   perl

o   make

o   autoconf

o   ssh
which saves a bunch of secondary installation goop.


*         Once I set MSYSYSTEM=MINGW, things went much much better.  GHC built to completion.

*         make -j works fine!

*         A bizarre 10-second delay when starting a shell has gone away

So I am very happy.  Two things I'm stuck on.

In testsuite I get this:

testsuite (master)$ make
make -C ./tests all
make[1]: Entering directory '/cygdrive/c/code/HEAD/testsuite/tests'
python2 ../driver/runtests.py  -e ghc_compiler_always_flags="'-fforce-recomp -dcore-lint -dcmm-lint -dno-debug-output -no-user-package-db -rtsopts '" -e ghc_debugged=False -e ghc_with_native_codegen=1 -e ghc_with_vanilla=1 -e ghc_with_dynamic=0 -e ghc_with_profiling=0 -e ghc_with_threaded_rts=1 -e ghc_with_dynamic_rts=0 -e ghc_with_interpreter=1 -e ghc_unregisterised=0 -e ghc_dynamic_by_default=False -e ghc_dynamic=False -e ghc_with_smp=1 -e ghc_with_llvm=0 -e windows=True -e darwin=False -e in_tree_compiler=True -e clean_only=False --rootdir=. --config=../config/ghc -e 'config.confdir="../config"' -e 'config.compiler="C:/code/HEAD/inplace/bin/ghc-stage2.exe"' -e 'config.ghc_pkg="C:/code/HEAD/inplace/bin/ghc-pkg.exe"' -e 'config.hp2ps="C:/code/HEAD/inplace/bin/hp2ps.exe"' -e 'config.hpc="C:/code/HEAD/inplace/bin/hpc.exe"' -e 'config.gs="gs"' -e 'config.platform="i386-unknown-mingw32"' -e 'config.os="mingw32"' -e 'config.arch="i386"' -e 'config.wordsize="32"' -e 'default_testopts.cleanup=""' -e 'config.timeout=int() or config.timeout' -e 'config.timeout_prog="../timeout/install-inplace/bin/timeout.exe"' -e 'config.exeext=".exe"' -e 'config.top="C:/code/HEAD/testsuite"'   --rootdir=../../libraries/Win32/tests  --rootdir=../../libraries/array/tests  --rootdir=../../libraries/base/tests  --rootdir=../../libraries/binary/tests  --rootdir=../../libraries/bytestring/tests  --rootdir=../../libraries/containers/tests  --rootdir=../../libraries/directory/tests  --rootdir=../../libraries/filepath/tests  --rootdir=../../libraries/ghc-prim/tests  --rootdir=../../libraries/haskeline/tests  --rootdir=../../libraries/hpc/tests  --rootdir=../../libraries/old-time/tests  --rootdir=../../libraries/pretty/tests  --rootdir=../../libraries/process/tests  --rootdir=../../libraries/random/tests  --rootdir=../../libraries/template-haskell/tests  --rootdir=../../libraries/vector/tests

Traceback (most recent call last):
  File "../driver/runtests.py", line 146, 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
../mk/test.mk:238: recipe for target 'test' failed

And indeed there is no "ctypes.py", although there is a directory ctypes in c:/fp/Python27/Lib/ctypes, which contains
__init__.py
__init__.pyc
_endian.py
_endian.pyc
macholib
test
util.py
wintypes.py

But runtests.py says "import ctypes" and that's what is failing.  I don't know how it worked before.  Can anyone help? I'm so close!

Less importantly, but annoyingly, every run of perl, even perl -versoin, gives this:

perl --version
perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
     LC_ALL = (unset),
     LANG = "ENG"
    are supported and installed on your system.
perl: warning: Falling back to the standard locale ("C").

This is perl 5, version 18, subversion 1 (v5.18.1) built for msys-thread-multi-64int

It's non-fatal, but annoying.

Thanks

Simon

From: Kyra Alex [mailto:meurglys3 at gmail.com]
Sent: 02 October 2013 07:45
To: Simon Peyton-Jones
Cc: Edsko de Vries; ghc-devs at haskell.org
Subject: Re: Make spins with THREADS>1 on Win 7

Ah, I've forgotten to mention that the environment variable MSYSTEM must be set to MINGW before starting the shell as is in mingw_shell.bat:
set MSYSTEM=MINGW.
msys2_shell.bat set it to MSYS thus making it answer "msys".

On Wed, Oct 2, 2013 at 1:59 AM, Simon Peyton-Jones <simonpj at microsoft.com<mailto:simonpj at microsoft.com>> wrote:
http://sourceforge.net/projects/msys2/ is *much* better than stock msys. I've successfully built ghc HEAD quite recently (a month ago or so) using it.

Interesting! There appears to be about zero documentation, but I unpacked the tar ball (which has pre-built binaries), put it in c:/msys32, added c:/mys32/bin to my PATH, and tried.

Starts well, but two problems.


*         I get lots of this (non-fatally):
perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
     LC_ALL = (unset),
     LANG = "ENG"
    are supported and installed on your system.
perl: warning: Falling back to the standard locale ("C").


*         But then I get this error which brings things to a halt:
checking for gfind... no
checking for find... /usr/bin/find
checking for sort... /usr/bin/sort
checking for GHC version date... inferred 7.7.20131001
checking for ghc... /cygdrive/c/fp/HP-2013.2.0.0/bin/ghc
checking version of ghc... 7.6.3
GHC path canonicalised to: /cygdrive/c/fp/HP-2013.2.0.0/bin/ghc
checking build system type... Invalid configuration `i686-pc-msys': system `msys' not recognized
configure: error: /bin/sh ./config.sub i686-pc-msys failed

Does anyone have ideas for fixing this?   Kyra, how did you get past these?

Simon


From: Kyra Alex [mailto:meurglys3 at gmail.com<mailto:meurglys3 at gmail.com>]
Sent: 01 October 2013 19:05
To: Simon Peyton-Jones
Cc: Edsko de Vries; ghc-devs at haskell.org<mailto:ghc-devs at haskell.org>
Subject: Re: Make spins with THREADS>1 on Win 7

http://sourceforge.net/projects/msys2/ is *much* better than stock msys. I've successfully built ghc HEAD quite recently (a month ago or so) using it.

On Tue, Oct 1, 2013 at 7:24 PM, Simon Peyton-Jones <simonpj at microsoft.com<mailto:simonpj at microsoft.com>> wrote:
Yes; it appears that in the current MSYS release,  'make -jn' goes into an infinite loop. This is very depressing.  I do not know a fix.

If you google around and find a fix, do tell us.  Currently I have to use THREADS=1 all the time

Simon

| -----Original Message-----
| From: ghc-devs [mailto:ghc-devs-bounces at haskell.org<mailto:ghc-devs-bounces at haskell.org>] On Behalf Of Edsko
| de Vries
| Sent: 01 October 2013 16:21
| To: ghc-devs at haskell.org<mailto:ghc-devs at haskell.org>
| Subject: Make spins with THREADS>1 on Win 7
|
| Hi all,
|
| Trying to get a build going on Win 7. On both the 32-bit and the
| 64-bit version running 'sh validate' stalls at
|
| "inplace/bin/mkdirhier" utils/touchy/dist/build/tmp//.
|
| At this point nothing happens, other than that I seem to have 100% CPU
| usage; 'ps' only shows two make processes, but no further
| subprocesses. Not sure what's going on here. Running 'sh validate
| --no-clean' after killing both make processes at this point stalls at
| the same point; running it with THREADS=1 seems to resolve the issue.
|
| Anybody any idea what might be going on?
|
| Edsko
| _______________________________________________
| ghc-devs mailing list
| ghc-devs at haskell.org<mailto:ghc-devs at haskell.org>
| http://www.haskell.org/mailman/listinfo/ghc-devs
_______________________________________________
ghc-devs mailing list
ghc-devs at haskell.org<mailto:ghc-devs at haskell.org>
http://www.haskell.org/mailman/listinfo/ghc-devs


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.haskell.org/pipermail/ghc-devs/attachments/20131002/7b313f77/attachment-0001.html>



More information about the ghc-devs mailing list