GHC and Haskell-Platform on OpenBSD

2014-07-04 Thread Matthias Kilian
Hi,

I'd like to know wether anyone here is using GHC on OpenBSD *and*
relying on the Haskell-Platform meta package for OpenBSD. If there's
no need for the HP meta package, I could just start to update GHC
and all related packages for OpenBSD, but if there are a lot of
people who prefer to stick to the HP, I'd to wait until the official
update of the HP.

So, if you love running

pkg_add haskell-platform

on OpenBSD, please speak up. And if you don't care an just run

pkg_add ghc

please speak up too ;-)

Ciao,
Kili
___
Glasgow-haskell-users mailing list
Glasgow-haskell-users@haskell.org
http://www.haskell.org/mailman/listinfo/glasgow-haskell-users


Re: Dynamic libraries by default and GHC 7.8

2012-11-27 Thread Matthias Kilian
Hi,

On Tue, Nov 27, 2012 at 08:15:59PM +, Ian Lynagh wrote:
  Regarding Question 7 (enable dynamic by default on other platforms)
  and OpenBSD: as long as it's easy to disable it again, I'll be happy
  with *any* decision.
 
 It will be easy to turn it off, but depending on the platform we might
 have removed support for GHCi when it's turned off.
 
 Does ghci work for you currently?

Yes, but I'm still at ghc-7,4.2. Not enough time to catch up with
recent ghc development :-(

 Is this a registerised or unregisterised build?

Registerised, working on i386 and amd66 (or x86 and x86_64 in the
non-bsd-world).


  That's partially because currently we've even a patch explicitely
  disabling shared library support in our ports/packages system (last
  time I tried with shared lib support, I got some segfaults in the
  midst of the build, and unfortunately I'm still too short of time
  to debug/fix it).
 
 That's a bit bizarre. With shared libraries enabled, there still won't
 be any dynamically linked programs actually run.

No worry. There were a lot of changes in OpenBSD during the last 6
months (including dl.so, pthreads, whatever). Wether there's a bug
in the GHC build system, or in the (heavily patched) OpenBSD port,
or in the binaries we use for bootstrapping, I really dont't know.
I wouldn't ve surprised if it's some breakage on my side (with the
bootstrappers i supply).

Ciao,
Kili

___
Glasgow-haskell-users mailing list
Glasgow-haskell-users@haskell.org
http://www.haskell.org/mailman/listinfo/glasgow-haskell-users


Re: renamed GMP symbols in GHC

2012-01-04 Thread Matthias Kilian
On Wed, Jan 04, 2012 at 12:31:23PM +, Joachim Breitner wrote:
  One potential problem is that some Linux distributions really don't like 
  it if you bundle modified versions of external libraries.  However, I 
  just don't see a way around this: [...]
[...]
 I guess this means me... Indeed Debian has the policy to avoid modified
 bundled libraries, if somehow possible. For example, we patch the build
 system to use the system-provided libffi.

This policy isn't even specific to linux distributions ;-)

I don't know about the package building infrastructure for debian
or fedora, but for openbsd (where i'm doing a lot of haskell stuff),
it would be enough if the ghc sources would include not only a
(patched or unpatched) gmp source tree but also the ghc-specific
patches to gmp.

The rationale behind this polcicy (for openbsd, i can't speak for
debian): if there are 42 packages where the source distribution
files contain their own (probably patched) version of gmp, and
suddenly a critical patch has to be applied to gmp, we would have
to apply it 43 times (for gmp itself and for all the 42 packages
using a bundled gmp). If the source distribution files contained
diffs for gmp, we could (at least try to) extract our patched gmp
and apply the diff on top of it. = less work, any openbsd-specific
patch automatically will be applied to all 42 packages.

Ciao,
Kili

___
Glasgow-haskell-users mailing list
Glasgow-haskell-users@haskell.org
http://www.haskell.org/mailman/listinfo/glasgow-haskell-users


Re: Completely reproducible Haskell builds

2011-05-27 Thread Matthias Kilian
On Fri, May 27, 2011 at 04:35:17PM +0100, Simon Marlow wrote:
 Next best idea is to make GHC use repeatable temporary .c  .o file
 names for each invocation. There is already a unique temporary
 directory where all the the temporary files are created. This suggests
 I do not need to worry about adversarial races. So GHC just need to
 avoid racing with itself. I see a couple of options:
 
1) newTempName should create a new subdirectory for each call and
   the return a fixed name inside of this (so 
   /tmp/ghc28016_0/ghc28016_0.c
   above would become /tmp/ghc28016_0/0/dummy.c)
2) mkExtraCObj could compute some hash function of its xs
   argument (C program text) and then create a file named, e.g.
   /tmp/ghc28016_0/38eb8d8eb0abe9c828ba60983e2a97f7a069ec41.c
 
 Which of these two looks better? Other ideas?
 
 The first is easier, and would be fine with me.

An alternative could be to just strip the single `symbol' off the
object file (using something like strip -N ...). I didn't yet test
this for real.

Ciao,
Kili

___
Glasgow-haskell-users mailing list
Glasgow-haskell-users@haskell.org
http://www.haskell.org/mailman/listinfo/glasgow-haskell-users


Re: Rebuilding ghc changes interface hashes?

2011-04-08 Thread Matthias Kilian
On Wed, Apr 06, 2011 at 08:44:33PM +0200, Matthias Kilian wrote:
 I still have to find my noticeses about wether cBooterVersion affects
 more than only the ghc lib.

Did a quick test the other day; bootstrapping ghc-7.0.3 from
ghc-6.12.3 with two different VERSION_DATE files. The only visible
change was in the ghc library, so this part indeed isn't worth any
work.

Ciao,
Kili

___
Glasgow-haskell-users mailing list
Glasgow-haskell-users@haskell.org
http://www.haskell.org/mailman/listinfo/glasgow-haskell-users


Re: Rebuilding ghc changes interface hashes?

2011-04-06 Thread Matthias Kilian
On Wed, Apr 06, 2011 at 12:40:45PM +0100, Ian Lynagh wrote:
 compiler/stage2/build/Config.hs includes cBooterVersion, so if you boot
 with a different version then you get different code = different ABI.
 
 We could just remove this. In theory, stage2 won't be affected by the
 bootstrapping compiler at all anyway.
 
 Alternatively, if we make a config file (as we were discussing for
 putting the paths to gcc and ar in) then it could go in there, and then
 wouldn't be part of the ABI.

Even if Simon prefers the config file approach (and there's still
the question wether the booter version is useful at all), attached
is an old patch in darcs format i found on my disk (dated april
24th 2010). Just in case anyone wants to play with it.

I still have to find my noticeses about wether cBooterVersion affects
more than only the ghc lib.

Ciao,
Kili
1 patch for repository http://darcs.volkswurst.de/ghc-6.12/ghc:

Sat Apr 24 20:46:21 CEST 2010  Matthias Kilian k...@outback.escape.de
  * Zap cBooterVersion, in an attempt to fix #4012
  
  Note: this is obviously just a workaround, not a real fix.
  

New patches:

[Zap cBooterVersion, in an attempt to fix #4012
Matthias Kilian k...@outback.escape.de**20100424184621
 Ignore-this: 18bf356e798b3c26bd4c8d2f2bc79789
 
 Note: this is obviously just a workaround, not a real fix.
 
] {
hunk ./compiler/ghc.mk 50
@echo cProjectVersionInt= \$(ProjectVersionInt)\  $@
@echo cProjectPatchLevel:: String  $@
@echo cProjectPatchLevel= \$(ProjectPatchLevel)\  $@
-   @echo cBooterVersion:: String  $@
-   @echo cBooterVersion= \$(GhcVersion)\  $@
@echo cStage:: String  $@
@echo cStage= show (STAGE :: Int)  $@
@echo cIntegerLibrary   :: String  $@
hunk ./compiler/main/DynFlags.hs 2419
 compilerInfo :: [(String, Printable)]
 compilerInfo = [(Project name,String cProjectName),
 (Project version, String cProjectVersion),
-(Booter version,  String cBooterVersion),
 (Stage,   String cStage),
 (Have interpreter,String cGhcWithInterpreter),
 (Object splitting,String cSplitObjs),
hunk ./ghc/Main.hs 646
 do hPutStr stderr Glasgow Haskell Compiler, Version 
hPutStr stderr cProjectVersion
hPutStr stderr , for Haskell 98, stage 
-   hPutStr stderr cStage
-   hPutStr stderr  booted by GHC version 
-   hPutStrLn stderr cBooterVersion
+   hPutStrLn stderr cStage
 
 -- We print out a Read-friendly string, but a prettier one than the
 -- Show instance gives us
}

Context:

[Fix the GHC API link in the main doc index.html
Ian Lynagh ig...@earth.li**20100422213226] 
[Set RELEASE to NO
Ian Lynagh ig...@earth.li**20100422160416] 
[Fix Trac #3950: unifying types of different kinds
simo...@microsoft.com**20100412151845
 Ignore-this: d145b9de5ced136ef2c39f3ea4a04f4a
 
 I was assuming that the unifer only unified types of the 
 same kind, but now we can defer unsolved constraints that
 invariant no longer holds.  Or at least is's more complicated
 to ensure.  
 
 This patch takes the path of not assuming the invariant, which
 is simpler and more robust.  See
 Note [Mismatched type lists and application decomposition]
] 
[Fix Trac #3943: incorrect unused-variable warning
simo...@microsoft.com**20100412151630
 Ignore-this: 52459f2b8b02c3cb120abe674dc9a060
 
 In fixing this I did the usual little bit of refactoring
] 
[Convert boot and boot-pkgs to perl
Ian Lynagh ig...@earth.li**20100415143919
 This stops us having to worry about sh/sed/... portability.
] 
[Use $(MAKE), not make, when recursively calling make
Ian Lynagh ig...@earth.li**20100415121453] 
[Update the user guide so it talks about the newer do rec notation everywhere
Ian Lynagh ig...@earth.li**20100416205416
 Some of the problems highlighted in trac #3968.
] 
[Fix typo
Ian Lynagh ig...@earth.li**20100416205412] 
[Implement try10Times in Makefile
Ian Lynagh ig...@earth.li**20100420165909
 Avoid using seq, as FreeBSD has jot instead.
] 
[Give the right exit code in darcs-all
Ian Lynagh ig...@earth.li**20100421171339
 Our END block was calling system, which alters $?. So now we save and
 restore it.
] 
[TAG old-time 1.0.0.4 release
Ian Lynagh ig...@earth.li**20100422124334] 
Patch bundle hash:
fcf362722a7a7aa3c874e458349988857690c5e4
___
Glasgow-haskell-users mailing list
Glasgow-haskell-users@haskell.org
http://www.haskell.org/mailman/listinfo/glasgow-haskell-users


Re: Rebuilding ghc changes interface hashes?

2011-04-05 Thread Matthias Kilian
On Tue, Apr 05, 2011 at 09:59:23PM +0530, Joachim Breitner wrote:
 Also, the initial upload was built using ghc-6.12.1, while the upload
 now is build with ghc-7.0.2. Given that it is a two-stage compiler, I
 assume that the output should be identical, but it seems not to be the
 case.

Changing the bootstrapping compiler changes the ABIs. The same can
happen if you interrupt and restart the build.

http://hackage.haskell.org/trac/ghc/ticket/4012

Ciao,
Kili

___
Glasgow-haskell-users mailing list
Glasgow-haskell-users@haskell.org
http://www.haskell.org/mailman/listinfo/glasgow-haskell-users


Re: Rebuilding ghc changes interface hashes?

2011-04-05 Thread Matthias Kilian
On Tue, Apr 05, 2011 at 08:51:52PM +0100, Simon Marlow wrote:
 On Tue, Apr 05, 2011 at 09:59:23PM +0530, Joachim Breitner wrote:
 Also, the initial upload was built using ghc-6.12.1, while the upload
 now is build with ghc-7.0.2. Given that it is a two-stage compiler, I
 assume that the output should be identical, but it seems not to be the
 case.
 
 Changing the bootstrapping compiler changes the ABIs. The same can
 happen if you interrupt and restart the build.
 
 In general changes can creep in randomly, there's no direct link between 
 changing the bootstrap compiler and getting different compilation 
 results (as far as I know), but there are some small elements of 
 randomness.

Oh, I confused those two problems again :-( But memories come back,
and IIRC the problem with the bootstrapping compiler is caused by
the Booter version (as printed by ghc --info) passed up to the
stage2 compiler. Wasn't the plan (about a year ago) to remove this?

If time permits, I'll send a patch in a few days, but I first have
to follow the switch to git, and I also want to update our (OpenBSDs)
ports to ghc-7.0.3 and hp-2011.2.

Ciao,
Kili

___
Glasgow-haskell-users mailing list
Glasgow-haskell-users@haskell.org
http://www.haskell.org/mailman/listinfo/glasgow-haskell-users


System.Posix.Signals weirdness

2011-02-06 Thread Matthias Kilian
Hi,

I'd expect the following program (compiled with ghc and without any
specieal flags) to produce

Just (Exited ExitSuccess)
True

but it produces

Just (Exited ExitSuccess)
False

on Debian Lenny (ghc-6.8), OpenBSD-current (ghc-6.12.3), OpenBSD-current
(ghc=7.0 from the 7.0 branch).

module Main where

import Data.IORef
import System.Posix.Process
import System.Posix.Signals
import System.Posix.Unistd

main = do
caughtCHLD - newIORef False
installHandler sigCHLD (Catch $ writeIORef caughtCHLD True) 
Nothing
pid - forkProcess $ sleep 2  return ()
s - sleep 8
getProcessStatus False False pid = print
readIORef caughtCHLD = print

The sigCHLD handler is never called in this program. Is this expected
behaviour? If so, why?

Ciao,
Kili

___
Glasgow-haskell-users mailing list
Glasgow-haskell-users@haskell.org
http://www.haskell.org/mailman/listinfo/glasgow-haskell-users


Re: ANNOUNCE: GHC 7.0.2 Release Candidate 1

2010-12-26 Thread Matthias Kilian
Hi,

On Thu, Dec 16, 2010 at 06:36:55PM +, Ian Lynagh wrote:
 We are pleased to announce the first release candidate for GHC 7.0.2:
 
 http://www.haskell.org/ghc/dist/7.0.2-rc1/

Some random notes for OpenBSD:

- No close look at the test suite results yet, but at least I didn't
  notice any strangeness like the threading problems back in ghc-6.12.

- BTW: it would be nice if snapshot sources or at least release
  candidate sources would also contain a tarball of the testsuite. I
  don't know about other distributors, but at least for OpenBSD we're
  including the testsuite into the files to download; I rolled my own
  testsuite-7.0.1.20101215.tar.bz2 from the darcs repo, but that's a
  little bit inconvenient ;-)

- After working on updates of several Haskell packages and programs in
  the OpeNBSD ports tree, I didn't notice anything bad (at least
  not related to GHC). No strange compiler errors, no strange
  threading problems (as we had with early ghc-6.12 versions).

- Probably a stupid one: the module list in
  .../html/libraries/index.html) is completely empty. This may be
  (and probably is) some breakage local to my machine, but: is
  anyone else seeing this?

Ciao,
Kili

___
Glasgow-haskell-users mailing list
Glasgow-haskell-users@haskell.org
http://www.haskell.org/mailman/listinfo/glasgow-haskell-users


Re: Fixing LDAP lib compilation on OpenBSD

2010-11-02 Thread Matthias Kilian
On Sat, Oct 30, 2010 at 07:28:40PM +0200, Julien Dessaux wrote:
 I'm using the LDAP lib for one of my projects and I found a problem
 while building it on an OpenBSD system. It wouldn't compile because there is
 a macro named differently in the ldap.h include file. Under linux, this
 macro is named LDAP_X_PROXY_AUTHZ_FAILURE but on OpenBSD (and probably other
 BSD flavours), it's named LDAP_PROXY_AUTHZ_FAILURE.
 
 I attached the diff I wrote in order to compile the lib on OpenBSD, but
 it's not a patch I can submit cause it now won't compile on Linux. How can I
 amend this in order to have a code that would compile on both systems? How
 is it possible to specify such conditional system dependent stuff for a C
 binding?

You can use different CC-Options in LDAP.cabal depending on the OS.
For example

if os(openbsd)
CC-Options: 
-DLDAP_X_PROXY_AUTHZ_FAILURE=LDAP_PROXY_AUTHZ_FAILURE
else
CC-Options: -DLDAP_DEPRECATED=1


Or, if LDAP_X_PROXY_AUTHZ_FAILURE is only used on Linux, just do
it reverse, i.e. patch the sources to use LDAP_PROXY_AUTHZ_FAILURE
and conditionally define it as LDAP_X_PROXY_AUTHZ_FAILURE on Linux;

whatever fits better.

Ciao,
Kili
___
Glasgow-haskell-users mailing list
Glasgow-haskell-users@haskell.org
http://www.haskell.org/mailman/listinfo/glasgow-haskell-users


Re: ANNOUNCE: GHC 6.12.3 Release Candidate 1

2010-05-29 Thread Matthias Kilian
On Fri, May 28, 2010 at 10:05:36PM +0100, Simon Marlow wrote:
 hReady002(ghci)
  ==  did not investigate yet. failure details below
 
 This one is a known failure right now (I need to clean it up).

Good to know. Thanks for the info.

 num009(normal,optc,hpc,optasm,ghci)
  ==  no idea. failure details below
 
 Suspicious...

If in doubt, suspect OpenBSD here; this is not the first time I've
seen strange differences between our math and the math on other
systems. But it's reall strange that there are different failures
for different ways. I'll try to find what's going on.


 signals002(normal,optc,hpc,optasm,ghci)
  ==  wrong exit code (150, expected 0). not yet investigated.
 
 Could be that signals are being delivered too quickly and overflowing 
 the IO manager's pipe.  We see this failure on our x86/Linux box too, 
 but not on x86_64.  Summary: if it's lost signals due to the pipe 
 filling up, it's a known issue.

Also good to know. I'll have a closer look wether it's the problem
you mention (but I'm still short of time, so this may have to wait).

As always, please don't let any problems specific to OpenBSD delay
your release.

Ciao,
Kili
___
Glasgow-haskell-users mailing list
Glasgow-haskell-users@haskell.org
http://www.haskell.org/mailman/listinfo/glasgow-haskell-users


Re: ANNOUNCE: GHC 6.12.3 Release Candidate 1

2010-05-27 Thread Matthias Kilian
On Sun, May 23, 2010 at 07:42:21PM +0100, Ian Lynagh wrote:
 We are pleased to announce the first release candidate for GHC 6.12.3:
[...]
 Please test as much as possible; bugs are much cheaper if we find them
 before the release!

Here are some test results on OpenBSD/amd64, with an 800 MB data
size liimit and with pthread support disabled (several people had
serious trouble with pthread support enabled for ghc-6.12.2, so I
disabled it in our port until I've time to debug that problem).
I've used the ghc-6.12 branch from the darcs repository for it; a
build with the official release candidate (plus the --with-gmp-*
patch recently pushed) is still running.

Executive summary: looks quite good. The only failure that *really*
puzzles me is the num009 one.

I've added some remarks to the list of unexpected failures below.


OVERALL SUMMARY for test run started at Thu May 27 19:11:36 CEST 2010
2383 total tests, which gave rise to
7689 test cases, of which
   0 caused framework failures
1605 were skipped

5872 expected passes
 178 expected failures
   0 unexpected passes
  34 unexpected failures

Unexpected failures:
   concprog001(ghci)
== out of memory (probably harmless)

   getUserEntryForName(normal,optc,hpc,optasm,ghci)
== known (by me) issue. probably a bug/incompatibility in OpenBSD

   hClose003(normal,optc,hpc,optasm,ghci)
== did not investigate yet. failure details (for the normal
way) below

   hReady002(ghci)
== did not investigate yet. failure details below

   num009(normal,optc,hpc,optasm,ghci)
== no idea. failure details below

   openFile008(normal,optc,hpc,optasm,ghci)
== too many open files. limits were too tight on my system,
I'll have to retest with higher limits

   queryfdoption01(normal,optc,hpc,optasm)
== unsupported operation. rings a bell here, I'll look at it
next weekend

   signals002(normal,optc,hpc,optasm,ghci)
== wrong exit code (150, expected 0). not yet investigated.

   simpl015(optc,optasm)
== out of memory (in the compiler). (probably harmless)

   testblockalloc(normal)
== out of memory. (probably harmless)



Details:

= hClose003(normal) 1002 of 2383 [0, 1, 0]
cd ./lib/IO  '/home/kili/src/ghc/ghc-6.12/inplace/bin/ghc-stage2' 
-fforce-recomp -dcore-lint -dcmm-lint -no-user-package-conf  -dno-debug-output 
-o hClose003 hClose003.hs  -package unix  hClose003.comp.stderr 21
cd ./lib/IO  ./hClose003/dev/null hClose003.run.stdout 
2hClose003.run.stderr
Actual stdout output differs from expected:
--- ./lib/IO/hClose003.stdout.normalisedThu May 27 19:35:14 2010
+++ ./lib/IO/hClose003.run.stdout.normalisedThu May 27 19:35:14 2010
@@ -1,4 +1,4 @@
 Right ()
 False
-Left file descriptor: X: hClose: resource vanished (Broken pipe)
+Right ()
 False
*** unexpected failure for hClose003(normal)

= hReady002(ghci) 1015 of 2383 [0, 6, 0]
cd ./lib/IO  sleep 1 | '/home/kili/src/ghc/ghc-6.12/inplace/bin/ghc-stage2' 
-fforce-recomp -dcore-lint -dcmm-lint -no-user-package-conf  -dno-debug-output 
hReady002.hs --interactive -v0 -ignore-dot-ghci +RTS -I0.1 -RTS   
hReady002.genscript 1hReady002.interp.stdout 2hReady002.interp.stderr
Actual stderr output differs from expected:
--- /dev/null   Thu May 27 19:35:59 2010
+++ ./lib/IO/hReady002.run.stderr.normalisedThu May 27 19:35:59 2010
@@ -0,0 +1 @@
+hReady002: stdin: hWaitForInput: end of file
*** unexpected failure for hReady002(ghci)

= num009(normal) 1072 of 2383 [0, 12, 0]
cd ./lib/Numeric  '/home/kili/src/ghc/ghc-6.12/inplace/bin/ghc-stage2' 
-fforce-recomp -dcore-lint -dcmm-lint -no-user-package-conf  -dno-debug-output 
-o num009 num009.hsnum009.comp.stderr 21
cd ./lib/Numeric  ./num009/dev/null num009.run.stdout 
2num009.run.stderr
Actual stdout output differs from expected:
--- ./lib/Numeric/num009.stdout.normalised  Thu May 27 19:39:12 2010
+++ ./lib/Numeric/num009.run.stdout.normalised  Thu May 27 19:39:12 2010
@@ -1 +1,6 @@
+tanf
+-Infinity
+NaN
+(-8388608,105)
+(-12582912,105)
 Done
*** unexpected failure for num009(normal)
= num009(optc) 1072 of 2383 [0, 13, 0]
cd ./lib/Numeric  '/home/kili/src/ghc/ghc-6.12/inplace/bin/ghc-stage2' 
-fforce-recomp -dcore-lint -dcmm-lint -no-user-package-conf  -dno-debug-output 
-o num009 num009.hs -O -fvia-C   num009.comp.stderr 21
cd ./lib/Numeric  ./num009/dev/null num009.run.stdout 
2num009.run.stderr
Actual stdout output differs from expected:
--- ./lib/Numeric/num009.stdout.normalised  Thu May 27 19:39:13 2010
+++ ./lib/Numeric/num009.run.stdout.normalised  Thu May 27 19:39:13 2010
@@ -1 +1,6 @@
+tanf
+NaN
+NaN
+(-12582912,105)
+(-12582912,105)
 Done
*** unexpected failure for num009(optc)
= num009(hpc) 1072 of 2383 [0, 14, 0]
cd ./lib/Numeric  '/home/kili/src/ghc/ghc-6.12/inplace/bin/ghc-stage2' 
-fforce-recomp -dcore-lint -dcmm-lint -no-user-package-conf  -dno-debug-output 
-o num009 

Re: Output character encoding for ghc on OpenBSD

2010-04-19 Thread Matthias Kilian
On Mon, Apr 19, 2010 at 02:57:00PM +0100, Simon Marlow wrote:
 A few of the tests in the test suite assume a UTF-8 locale, so you're 
 probably falling foul of that.  We could fix the tests - but we do want 
 to test that the locale encoding is being respected in some way, so just 
 adding hSetEncoding to those tests would be wrong.

Nah, don't touch the tests because of this.

 For the IO library, I expect you should default the encoding to Latin-1 
 on OpenBSD.

I've some (rather horrible) patch that tries to make sense out of
LC_ALL or LC_CTYPE if set. And  if it isn't set, I'm currently
defaulting to 646//TRANSLIT (which is ASCII with translation of
some non-ASCII characters to ASCII art, like `(c)' for \xa9). But
Latin-1 may be a more usable default. Thanks for the suggestion.

(No, I'm not going to send this patch to cvs-ghc, it's really too
horrid).

Ciao,
Kili
___
Glasgow-haskell-users mailing list
Glasgow-haskell-users@haskell.org
http://www.haskell.org/mailman/listinfo/glasgow-haskell-users


Output character encoding for ghc on OpenBSD

2010-04-18 Thread Matthias Kilian
Hi,

as some of you may know, I'm working on an update of OpenBSDs ghc
port to 6.12.2, currently chasing down the last remaining testsuite
failures. Yesterday, I ran into a problem which I have a fix for,
but only a really ugly fix, and I need some opinions of what users
would prefer.

The problem is that Haskell uses unicode characters internally (ghc
itself uses UTF-32 internally, where the endianess depends on the
architecture it's running on), and that any Haskell program (including
ghc and ghci) has to convert between the internal representation
and the actual locale settings of the system it's running on.
Unfortunately, OpenBSD is really bad if it comes to locale support;
the only supported locales are the C and the POSIX locales, so even
if you set LC_ALL or LC_CTYPE to something like, for example,
de_DE.iso88591, this would have no effect on OpenBSD.

Anyway, the short story is that I have to either hard-code the
character set to something like utf-8, or ghc will start to behave
really strange (for example, ghci would terminate immediately if
you just *type* a non-ASCII character).

So what would you prefer?

- Use utf-8 and only utf-8 (i.e. hardcoded)?

- Use something like iso-8859-15 (hardcoded)?

- Make it configurable via some non-standard environment variable
  (GHC_CODESET, for example). If so, what should be the default if
  the environment variable isn't set? Back to 7 bit (ASCII)? utf-8?
  Some of the latin variants?

Your suggestions are appreciated.

Thanks in advance.

Ciao,
Kili
___
Glasgow-haskell-users mailing list
Glasgow-haskell-users@haskell.org
http://www.haskell.org/mailman/listinfo/glasgow-haskell-users


Re: Output character encoding for ghc on OpenBSD

2010-04-18 Thread Matthias Kilian
Hi,

On Sun, Apr 18, 2010 at 10:53:22AM -0700, Judah Jacobson wrote:
  Anyway, the short story is that I have to either hard-code the
  character set to something like utf-8, or ghc will start to behave
  really strange (for example, ghci would terminate immediately if
  you just *type* a non-ASCII character).
 
 That sounds like it might be something to do with the haskeline
 package, which ghci uses for user interaction.  Haskeline makes its
 own FFI calls to translate raw input bytes into Unicode Chars.

Oh, this may indeed be a second problem. However, the encoding
problem itself also manifests in the `openTempFile001' test of the
testsuite.  For example, with an unpatched ghc-6.12, the test fails
with the following output:

= openTempFile001(normal) 1048 of 2375 [0, 38, 0]
cd ./lib/IO  '/usr/obj/ports/ghc-6.12.2/ghc-6.12.2/inplace/bin/ghc-stage2' 
-fforce-recomp -dcore-lint -dcmm-lint -no-user-package-conf  -dno-debug-output 
-o openTempFile001 openTempFile001.hsopenTempFil
e001.comp.stderr 21
cd ./lib/IO  ./openTempFile001/dev/null openTempFile001.run.stdout 
2openTempFile001.run.stderr
Wrong exit code (expected 0 , actual 1 )
Stdout:

Stderr:
openTempFile001: ./test22236.txt: hClose: invalid argument (Illegal byte 
sequence)

*** unexpected failure for openTempFile001(normal)


 Can
 you elaborate further on what exactly the issue is with OpenBSD's
 locale support?  In particular, there's several components used by
 Haskeline:
  - call set_locale(LC_CTYPE)

Problem number 1: set_locale(LC_CTYPE) fails (i.e. returns NULL)
for any locale except `C` or `POSIX'. Did I mention that OpenBSD
is really bad with locales? ;-)

  - call nl_langinfo(CODESET)

Always returns `646' (ASCII). Duh.

  - pass the resulting string (which should be, e.g., $LANG) to iconv_open

iconv_open appears to need the *codeset* name, not a complete locale.
Note that OpenBSD uses GNU libiconv-1.13, which AFAIK differs from
the one included in glibc. Even worse, I have to pass something
like UTF-8, whereas UTF8 doesn't work.

  - call iconv on user input (which may be malformed)

I wrote a little C program that does the following (some error
checks omitted here):

char *inp, outp;
size_t insz, outsz;
unsigned char in[] = {0xa9, 0, 0, 0};
char out[512];

inp = in;
outp = out;
insz = sizeof(in);
outsz = sizeof(out) - 1;
setlocale(LC_CTYPE, );
ic = iconv_open(, UTF-32LE);
if (iconv(ic, inp, insz, outp, outsz) == -1) {
... bail out (perror() etc.) ...
}
iconv_close(ic);
*outp = 0;
puts(out);

And it just doesn't work, regardless what I set LC_CTYPE to. The
only way to get it printing the copyright symbol is to explicitely
use UTF-8 (or ISO-8859-1 or something else that knows about
that symbol) as the first argument to iconv_open().

 Is the problem that setting $LC_ALL or $LANG has no effect on the
 string returned by nl_langinfo, so the translation fails?

Yes, see above.

 If so,
 haskeline is supposed to output ?s in that case, so there might be a
 bug in the package.

It fails (or rather: ghci fails, since I didn't yet do any separate
haskeline tests) with the same error as the test mentioned above,
with the difference that it fails on hPutChar instead of hClose for
obvious reasons.

 Finally, when you say you have to hard-code the character set, are
 you talking about ghc, haskeline, the base library, or somewhere else?

I'm talking about libraries/base/GHC/IO/Encoding/Iconv.hs

See? There just is no non-hackerish way to fix this (except of
course improving locale support on OpenBSD, but that's beyond my
scope currently).

Ciao,
Kili
___
Glasgow-haskell-users mailing list
Glasgow-haskell-users@haskell.org
http://www.haskell.org/mailman/listinfo/glasgow-haskell-users


Re: ANNOUNCE: GHC 6.12.2 Release Candidate 1

2010-04-16 Thread Matthias Kilian
On Fri, Apr 16, 2010 at 04:02:03PM +0900, Jens Petersen wrote:
  Just for the record let me report the following build failure for f14 
  (rawhide):
  http://koji.fedoraproject.org/koji/taskinfo?taskID=2107186
[...]
 I have reproduced this now also with ghc-6.12.1
 
 inplace/bin/ghc-stage1 -prof  -H32m -O-package-name base-
^
Here!
 -hide-all-packages -i -ilibraries/base3-compat/.
[...]
 libraries/base3-compat/Data/IORef.hs:1:0:
 Bad interface file: libraries/base3-compat/dist-install/build/Prelude.p_hi
 Something is amiss; requested module  base-:Prelude differs
 from name found in the interface file base-3.0.3.2:Prelude
 make[1]: *** [libraries/base3-compat/dist-install/build/Data/IORef.p_o] Error 
 1
 make: *** [all] Error 2
[...]
 What should one make of Something is amiss; requested module
 base-:Prelude differs from name found in the interface file
 base-3.0.3.2:Prelude here when building ghc??

I don't know why, but for some reason something's going wrong with
creating libraries/base3-compat/dist-install/package-data.mk, which
*should* contain the correct version number (i.e.
libraries/base3-compat_dist-install_VERSION = 3.0.3.2).

Ciao,
Kili
___
Glasgow-haskell-users mailing list
Glasgow-haskell-users@haskell.org
http://www.haskell.org/mailman/listinfo/glasgow-haskell-users


Re: testing 6.12.2-pre

2010-04-15 Thread Matthias Kilian
On Wed, Apr 14, 2010 at 08:44:29PM +0200, Matthias Kilian wrote:
 module Main(main) where
 
 import System.IO
 import System.Process
 
 main = do
   hin - openBinaryFile /dev/null ReadMode
   hp - runProcess /bin/ls [-l] Nothing Nothing (Just hin) 
 Nothing Nothing
   r - waitForProcess hp
   print r
 
 
 IF I run this on OpenBSD (amd64), I get
 
 foo: /bin/ls: runProcess: unsupported operation (Operation not supported by 
 device)

I found it. I'll send a patch as soon as I've tested the fix. The
neat thing is that darcs send probably doesn't work without the fix

;-)

Ciao,
Kili
___
Glasgow-haskell-users mailing list
Glasgow-haskell-users@haskell.org
http://www.haskell.org/mailman/listinfo/glasgow-haskell-users


Re: testing 6.12.2-pre

2010-04-14 Thread Matthias Kilian
On Fri, Apr 09, 2010 at 05:48:17PM +0400, Serge D. Mechveliani wrote:
 I have tested  ghc-6.12.1.20100330  on Debian Linux, i386-family,
 on the  DoCon test, without profilig.
 It looks all right.

Even if I reported to Ian that everything is fine on OpenBSD, I
just found some strangeness with openBinaryFile and runProcess when
testing darcs-2.4 built with the (still not really released)
ghc-6.12.2. Here's a small test program:


module Main(main) where

import System.IO
import System.Process

main = do
hin - openBinaryFile /dev/null ReadMode
hp - runProcess /bin/ls [-l] Nothing Nothing (Just hin) 
Nothing Nothing
r - waitForProcess hp
print r


IF I run this on OpenBSD (amd64), I get

foo: /bin/ls: runProcess: unsupported operation (Operation not supported by 
device)

Tracing the process shows the following hints (File handle 0x6 is the
one from /dev/null):

 25151 foo  CALL  ioctl(0x6,TIOCGETA,0x7f7e1da0)
 25151 foo  RET   ioctl -1 errno 19 Operation not supported by device
 25151 foo  CALL  fcntl(0x6,0x4,0x4)
 25151 foo  RET   fcntl -1 errno 19 Operation not supported by device


I'm not sure about the ioctl call, but the fcntl tries to set the
handle to nonblocking mode. There's already some comment about this
(on FreeBSD) in the code, but I'm unsuere what exactly to do about
it.

I'd really like to see the result of this program on FreeBSD and/or
NetBSD, so we know wether it's specific to OpenBSD or wether it
happens on all BSD-like systems.

Ciao,
Kili

ps: GHC guys, please don't let this stop you from going on with the
ghc-6.12.2 release process. Problems like this can be easily fixed
by package maintainers.
___
Glasgow-haskell-users mailing list
Glasgow-haskell-users@haskell.org
http://www.haskell.org/mailman/listinfo/glasgow-haskell-users


Re: cross-compiling ghc to openbsd

2010-01-29 Thread Matthias Kilian
On Fri, Jan 29, 2010 at 06:10:52PM +0100, Nicolas Martyanoff wrote:
 I'm trying to cross-compile GHC as follows:
 
 Host: Linux, x86_64, GHC 6.12.1
 Target: OpenBSD 4.6 stable, i386

IMHO, you shouldn't go that way, because it adds much more complexity
than you already have with OpenBSD as host *adn* target. During my
last tests back in december, not even OpenBSD/i386 - OpenBSD/i386
worked with .hc files. That should be fixed first. Then, something
like OpenBSD/i386 - OpenBSD-amd64 (and vice versa) should be done.
And if this works, it's questionable wether one should work on cross
building with .hc files using differen host an target operating
systems or wether it would be more useful to start getting GHC
running on other OpenBSD archs.

 I follow the guide at:
 http://hackage.haskell.org/trac/ghc/wiki/Building/Porting
 
 I downloaded the last stable source tarball (ghc-6.12.1-src.tar.bz2), then ran
 the following commands:
 
 export AUTOCONF_VERSION=2.62
 export AUTOMAKE_VERSION=1.9
 cp /bin/pwd utils/ghc-pwd/ghc-pwd
 sh boot
 ./configure --enable-hc-boot --build=i386-unknown-openbsd 
 --host=i386-unknown-openbsd --target=i386-unknown-openbsd
[...]

IIRC there where some discussions (or even patches pushed?) about
the build/host/target combo, so you may try to pull ghc sources
with darcs (head or the 6.12 branch).

 The latest fails, with the following trace:
 http://pastebin.ca/1770926
 
 The following errors are quite interesting:
 includes/stg/Types.h:103:2: #error GHC untested on this architecture: 
 sizeof(void *) != 4 or 8
 includes/rts/Constants.h:156:2: #error unknown SIZEOF_VOID_P

Your build is (re)creating includes/ghcautoconf.h -- this looks
very wrong to me, since ghcautoconf.h is supposed to be created by
a former configure / make bootstrapping-files on the target platform
and then used on the host for creating the .hc files.


Ciao,
Kili
___
Glasgow-haskell-users mailing list
Glasgow-haskell-users@haskell.org
http://www.haskell.org/mailman/listinfo/glasgow-haskell-users


Re: cross-compiling ghc to openbsd

2010-01-29 Thread Matthias Kilian
On Fri, Jan 29, 2010 at 09:42:27PM +0100, Nicolas Martyanoff wrote:
  This probably means some type identifier used at that point hasn't
  been declared, or macro defined or whatever.  You'd have to see
  what it is, and maybe it will be more obvious what went wrong.
 It seems that SIZEOF_VOID_P isn't defined anywhere.

It's defined in includes/ghcautoconf.h (which is created during
configure and make bootstrapping-files on the target platform).

 All right, I'll try again with the last darcs version when I get access to a
 i386 Linux machine.

You don't need any linux machine for this. The current darcs port
for OpenBSD may be a little bit outdated, but it still works.

 In the mean time, I'll try to run a GHC 6.6 - 6.10 - 6.12 build chain, 6.6
 being the latest version available in OpenBSD's ports.

I sent you a (admittedly horrible) script to do this chain. Use it.
If it doesn't work, sent complaints.
___
Glasgow-haskell-users mailing list
Glasgow-haskell-users@haskell.org
http://www.haskell.org/mailman/listinfo/glasgow-haskell-users


Re: Running GHC 6.10.* on OpenBSD

2009-12-12 Thread Matthias Kilian
On Sat, Dec 12, 2009 at 05:30:44AM +0200, Thanos Tsouanas wrote:
 Up to now I've only used binary versions of GHC, but since
 my operating system's (OpenBSD) version of GHC is
 lagging behind (currently at 6.6.1), I need to update it.
 I tried using my system's ghc-6.6.1 to compile ghc-6.10.4
 but it failed due to haskeline not being installed (and trying
 to install it also failed).

I don't know wether the release tarball contains haskeline, but you
could always download the sources via darcs and use the darcs-all
script from the ghc tree to fetch all necessary libraries.

Here are some scripts I'm using to build all kinds of ghc versions
(6.10, 6.12, head, bootstrapping stuff etc.):

http://darcs.volkswurst.de/build/

You may have to edit the scripts for your purposes.

Or just wait for an update of the port ;-)

Ciao,
Kili
___
Glasgow-haskell-users mailing list
Glasgow-haskell-users@haskell.org
http://www.haskell.org/mailman/listinfo/glasgow-haskell-users


Re: Running GHC 6.10.* on OpenBSD

2009-12-12 Thread Matthias Kilian
On Sat, Dec 12, 2009 at 09:22:56AM +0100, Karel Gardas wrote:
 I somehow managed to first install everything what's required on system
 provided 6.6.1 to compile 6.10. I'm not sure if I went step by step
 6.6.1-6.8.3-6.10.3 as you try.

No need for 6.8, you can build 6.10 straight with 6.6.

 IMHO cross-compilation is no go
 in this case since I hope I'm right assuming this is not supported in
 6.10, but was fixed in 6.12 again.

Kind of. There are still issues with *real* porting to other platforms
(#3472, probably more), but it's possible to create hc bootstrapping
filesets and use them to bootstrap on the same platform. Even if
this sounds kind of useless, it'll help a lot updating the OpenBSD
port.

Ciao,
Kili
___
Glasgow-haskell-users mailing list
Glasgow-haskell-users@haskell.org
http://www.haskell.org/mailman/listinfo/glasgow-haskell-users


Re: Running GHC 6.10.* on OpenBSD

2009-12-12 Thread Matthias Kilian
On Sat, Dec 12, 2009 at 03:29:09PM +0200, Thanos Tsouanas wrote:
  No need for 6.8, you can build 6.10 straight with 6.6.
 
 Ok, I guess I didn't try hard enough..

Probably just

--with-iconv-includes=/usr/local/include \
--with-iconv-libraries=/usr/local/lib

missing to ./configure. Everything else should work fine nowadays.

  IMHO cross-compilation is no go
  in this case since I hope I'm right assuming this is not supported in
  6.10, but was fixed in 6.12 again.
 
  Kind of. There are still issues with *real* porting to other platforms
  (#3472, probably more), but it's possible to create hc bootstrapping
  filesets and use them to bootstrap on the same platform. Even if
  this sounds kind of useless, it'll help a lot updating the OpenBSD
  port.
 
 Then it's worth a shot.  How would I create those hc bootstrapping
 filesets?  Using the system's ghc-6.6.1?

If all you want is a working ghc-6.10, please don't waste your time
with bootstrapping filesets. Just use ghc-6.6.1 and build ghc-6.10
from it (and, if you want to, build ghc-6.12 from ghc-6.10).


BTW: if you're using my scripts, you'll probably also have to install
(apart from ghc-6.6.1) alex, darcs, gmake, haddock, happy, hscolour
and python (version  2.5). All available as precompiled packages
for OpenBSD (amd64 and i386).

Ciao,
Kili
___
Glasgow-haskell-users mailing list
Glasgow-haskell-users@haskell.org
http://www.haskell.org/mailman/listinfo/glasgow-haskell-users


Re: Compiling to ANSI C

2009-11-08 Thread Matthias Kilian
On Sun, Nov 08, 2009 at 10:19:26AM +0300, Bulat Ziganshin wrote:
 seems that wizards are on holiday ATM, so i will help a little - ghc
 ports are divided into registerized (working with cpu registers)
 and unregisterized (just a C code generated).

I wouldn't touch the *registerized* variant using intermediate C
files, because that means you probably would also have to modify
the evil mangler, which is -- evil.

Ciao,
Kili
___
Glasgow-haskell-users mailing list
Glasgow-haskell-users@haskell.org
http://www.haskell.org/mailman/listinfo/glasgow-haskell-users


Re: no-Haddock GHC build

2009-09-22 Thread Matthias Kilian
On Tue, Sep 22, 2009 at 07:34:53AM -0700, Donn Cave wrote:
 I'm thinking it would be expedient to omit Haddock while building a
 ghc 6.11 snapshot, per bug ticket #3531
 
 From my basic understanding of its purpose there, that ought to work out
 fine - I mean, not to undervalue documentation, but the compiler should
 be able to function without it.  But not well versed in the intricacies
 of the GHC build, so please set me straight if I'm about to waste a lot
 of time untangling it in the makefiles.

I sent a patch for this to cvs-ghc@:

http://www.haskell.org/pipermail/cvs-ghc/2009-September/050255.html

I wasn't even aware of that ticket ;-)

Ciao,
Kili
___
Glasgow-haskell-users mailing list
Glasgow-haskell-users@haskell.org
http://www.haskell.org/mailman/listinfo/glasgow-haskell-users


Re: How to solve ghc-stage2: mkTextEncoding: invalid argument (Invalid argument) issue.

2009-09-17 Thread Matthias Kilian
On Thu, Sep 17, 2009 at 09:17:35AM +0100, Simon Marlow wrote:
 Glad you got it going.  I notice there are a few test failures, many of 
 which could be fixed easily, e.g.
 
 --- ./lib/IO/hClose002.stdout.normalisedWed Sep 16 14:08:09 2009
 +++ ./lib/IO/hClose002.run.stdout.normalisedWed Sep 16 14:08:09 2009
 @@ -1,4 +1,4 @@
 -Left hClose002.tmp: hClose: invalid argument (Bad file descriptor)
 +Left hClose002.tmp: hClose: invalid argument (Bad file number)
  Right ()
  Right ()
  Right ()
 *** unexpected failure for hClose002(normal)
 
 
 that just needs a platform-specific expected output file 
 (hClose002.stdout-i386-unknown-solaris2).


BTW: is there an easy way to do some general output filtering on
*all* tests for different platforms? It may not be helpful for the
above test, but for some differences (like stderr in case of several
types of core dumps on different operating systems, or the typical
linker warnings about strcat(3), strcpy(3) etc. on OpenBSD) it may
be less maintainance work to filter or modify the output on specific
platforms.

Ciao,
Kili
___
Glasgow-haskell-users mailing list
Glasgow-haskell-users@haskell.org
http://www.haskell.org/mailman/listinfo/glasgow-haskell-users


Re: How to solve ghc-stage2: mkTextEncoding: invalid argument (Invalid argument) issue.

2009-09-16 Thread Matthias Kilian
On Wed, Sep 16, 2009 at 10:23:58AM +0200, Karel Gardas wrote:
 Before going to trace anything I've compared sparky and my setup and it
 seems I've had forgotten libiconv library in /usr/local/lib and
 LD_LIBRARY_PATH contained this lib. So I've modified LD_LIBRARY_PATH to
 exclude /usr/local/lib and now surprisingly base configure fails with:
 
 checking for library containing iconv... no
 configure: error: iconv is required on non-Windows platforms
 make[1]: *** [libraries/base/dist-install/package-data.mk] Error 1
 make: *** [all] Error 2

Running the build bot with

ICONV_INCLUDE_DIRS=/usr/local/include
ICONV_LIB_DIRS=/usr/local/lib

in the environment fixes the iconv problems, at least on OpenBSD.
(I need some more environment tweaks but that's really related to
my OS)

Ciao,
Kili

-- 
Manch Massenmörder macht auch immer mal gern einen Abstecher.
-- Dieter Brügmann in dtjd, 20.2.2001
___
Glasgow-haskell-users mailing list
Glasgow-haskell-users@haskell.org
http://www.haskell.org/mailman/listinfo/glasgow-haskell-users


Re: Plans for GHC 6.12.1: release candidate 14 September 2009

2009-08-18 Thread Matthias Kilian
On Tue, Aug 18, 2009 at 03:03:43PM +0100, Ian Lynagh wrote:
 This is a summary of our plans for GHC 6.12.1.
 
 We are aiming to have the first release candidate out on the 14th
 September 2009.
 
 Until then, we plan to focus on the bugs in the 6.12.1 milestone, marked
 high priority; they are listed here:
 
 http://hackage.haskell.org/trac/ghc/query?status=newstatus=assignedstatus=reopenedpriority=highestpriority=highmilestone=6.12.1order=priority

Would it be better if I break my stable build slave in favor of the
head build slave then? IIRC, I've to tweak some environment variables
to make head build again, but it would break the stable builds.

Ciao,
Kili

-- 
_|_ is pronounced 'bottom', and is the greatest lower bound of a
complete lattice.
-- Nick Williams in comp.lang.functional
___
Glasgow-haskell-users mailing list
Glasgow-haskell-users@haskell.org
http://www.haskell.org/mailman/listinfo/glasgow-haskell-users


Re: use gtar and not tar under solaris

2009-08-06 Thread Matthias Kilian
On Thu, Aug 06, 2009 at 12:30:51PM +0100, Duncan Coutts wrote:
  I've just been informed that unpacking the binary (i386) solaris
  distribution using bunzip2 and tar:
 
 It may work better in future if you use a non-GNU tar to pack it up in
 the first place. GNU tar uses a non-standard tar format by default.
 Solaris tar would likely have more luck unpacking a POSIX/USTAR tar
 format file. It's also possible to use gnu tar to make standard tar
 format files, using --format ustar rather than gnu tar's default of
 --format gnu.

Is there something like pax(1) available on solaris? If so, it
should be be preferred, because it's a POSIX tool, so there's some
hope that it behaves the same on different systems.

pax(1) should be available on all BSD systems, and to my knowledge,
there's a pax package available at least for Debian Linux.

Ciao,
Kili
___
Glasgow-haskell-users mailing list
Glasgow-haskell-users@haskell.org
http://www.haskell.org/mailman/listinfo/glasgow-haskell-users


Re: use gtar and not tar under solaris

2009-08-06 Thread Matthias Kilian
On Thu, Aug 06, 2009 at 08:54:49PM +0200, Christian Maeder wrote:
  Is there something like pax(1) available on solaris? If so, it
  should be be preferred, because it's a POSIX tool, so there's some
  hope that it behaves the same on different systems.
 
 Yes, pax is available under solaris. I thought GNU tar is the standard
 packer under unix.

Depends on what `standard' means ;-)

- tar has been there forever on unices, with several slightly
  incompatible format extensions

- GNU tar is just another implementation, typically used on Linux, and it
  has its own incompatible format extensions.

- pax is (or should be) available everywhere, its behaviour is defined
  by POSIX, it should (by default) create archives readable by most
  tar implemenations, but almost nobody knows about it ;-)

  http://www.opengroup.org/onlinepubs/9699919799/utilities/pax.html

I wonder wether Duncan did read and understood that bit of
documentation, I didn't even read all of it ;-)

 (The usage message of pax is less clear.)

The manpage (and of course the POSIX definition) are hard stuff, too.
However, to create an archive, you can use something like

$ pax -wf foo.tar directory

Ciao,
Kili
___
Glasgow-haskell-users mailing list
Glasgow-haskell-users@haskell.org
http://www.haskell.org/mailman/listinfo/glasgow-haskell-users


Re: ghc 6.10.3-prerelease failed build log for freebsd7.2

2009-05-06 Thread Matthias Kilian
On Wed, May 06, 2009 at 08:48:04PM +0100, Ian Lynagh wrote:
 H Kili,
 
 On Mon, May 04, 2009 at 09:36:00PM +0200, Matthias Kilian wrote:
  
  In your case, it doesn't find libiconv, thus isn't built, and causes
  failure later. In my case (a buildbot running OpenBSD-4.5 on i386),
  the haskeline build itself fails (see `kili-stable' on
  darcs.haskell.org/buildbots),
 
 Is iconv installed somewhere on that machine? If so, where is it?
 (both the library and the header file)

Binary in /usr/local/bin/iconv, library in /usr/local/lib, header
in /usr/local/include.

The strange thing isn't that it isn't detected correctly (linking
is done a little bit differently on OpenBSD, you have to explicitely
specify depending libs), but that the overall build doesn't fail
on my fast build machine at home (which i still have to turn into
a buildslave)

Anyway, i'll look into this next weekend. Don't hold back the release
because of this. For FreeBSD, there should be no problem to add
some small patches (or probably just some additional arguments to
configure), and for OpenBSD, ir just doesn't matter (because I'll
wait for ghc 6.12 with our port).

Ciao,
Kili


-- 
Automake and autoconf deserve to wither and die, but unfortunately noone
at GNU seems to make much of an effort to euthanasize them.
-- Han-Wen Nienhuys, on Lilypond-devel mailing list
___
Glasgow-haskell-users mailing list
Glasgow-haskell-users@haskell.org
http://www.haskell.org/mailman/listinfo/glasgow-haskell-users


Re: ghc 6.10.3-prerelease failed build log for freebsd7.2

2009-05-04 Thread Matthias Kilian
Hi,

On Sun, May 03, 2009 at 11:03:49PM -0700, brad clawsie wrote:
 after some trying, i was unable to get the 6.10.3 prerelease to build on
 freebsd 7.2. i was trying to use an existing 6.10.2 as my build ghc.
 
 i saved the output of the entire build from ./configure to the point of
 failure. it is too long too attach here, you can see it at:
 
 http://www.b7j0c.org/ghc-6.10.3.log.txt

Interesting. haskeline seems to break the build in different ways
and at different places (and sometimes it doesn't fail at all).

In your case, it doesn't find libiconv, thus isn't built, and causes
failure later. In my case (a buildbot running OpenBSD-4.5 on i386),
the haskeline build itself fails (see `kili-stable' on
darcs.haskell.org/buildbots), but at the same time on OpenBSD-current
on an amd64 the haskeline build complains about a missing libiconv
but builds nevertheless.

This all is a little bit confusing, but it should be fixable by
telling configure where to find libivonv (i didn't yet have the
time to look what's going on for real here).

Ciao,
Kili
___
Glasgow-haskell-users mailing list
Glasgow-haskell-users@haskell.org
http://www.haskell.org/mailman/listinfo/glasgow-haskell-users


Re: testsuite boot failure [was: Re: Solaris/x86 bot failing on stage2 haddock installation.]

2009-01-11 Thread Matthias Kilian
On Sun, Jan 11, 2009 at 10:36:56PM +0100, Karel Gardas wrote:
  A fix from Conal Elliott has already been pushed by Ian.
 
 Indeed! Now compilation aborts on booting testsuite with following output:
 
 make: Entering directory `/buildbot/ghc/kgardas/build/testsuite'
 make: *** No rule to make target `boot'.  Stop.
 make: Leaving directory `/buildbot/ghc/kgardas/build/testsuite'

This is strange:

$ darcs changes --last=1
Sat Jan 10 22:42:04 CET 2009  Ian Lynagh ig...@earth.li
  * Add a boot target, and tidy up the Makefile a bit

Yet the file in question (testsuite/mk/test.mk) isn't included by
testsuite/Makefile nor testsuite/mk/boilerplate.mk.

Did I ever complain about how broken the ghc build system is? ;-)

Ciao,
Kili
___
Glasgow-haskell-users mailing list
Glasgow-haskell-users@haskell.org
http://www.haskell.org/mailman/listinfo/glasgow-haskell-users


Re: pthread mutex error building 6.10 on NetBSD

2009-01-04 Thread Matthias Kilian
Hi,

On Thu, Jan 01, 2009 at 11:46:31AM +0100, Matthias Kilian wrote:
  pthread_mutex_unlock() is called, evidently from fileLock(), with an
  invalid mutex.
  
  NetBSD's pthread implementation differs from Linux in its intolerance
  of such things.  I have found errors where someone forgets that a mutex
  was never used and tries to unlock it.  I guess you could do that all day
  long on Linux without noticing anything, but NetBSD aborts the program.
  In the present case, I don't see anything like that wrong in rts/FileLock.c,
  though.  I'm stumped.
  
  So I'm checking, has anyone else built 6.10 on NetBSD?

Could you (and anyone else on any operating system using pthreads)
please try to build with the patch below? It checks the return
values of pthread_mutex_lock() and pthread_mutex_unlock() by default
(even if DEBUG isn't defined) and contains some other uncluttering.

Seems to work fine here on OpenBSD (for ghc-head), but before I
send out a darcs patch, I'd like to see some results on other
systems.[1]

Of course, the patch won't fix the problem for NetBSD, but it may
give some more hints.

Ciao,
Kili

[1] and if you insist in darcs patches, just pull from
http://darcs.volkswurst.de/users/kili/ghc-6.10/ghc/ or
http://darcs.volkswurst.de/users/kili/ghc/

diff -x _darcs -rNup ../ghc/includes/OSThreads.h ./includes/OSThreads.h
--- ../ghc/includes/OSThreads.h Sun Jan  4 22:28:46 2009
+++ ./includes/OSThreads.h  Sun Jan  4 22:11:34 2009
@@ -23,6 +23,7 @@
 #else
 
 #include pthread.h
+#include errno.h
 
 typedef pthread_cond_t  Condition;
 typedef pthread_mutex_t Mutex;
@@ -34,47 +35,26 @@ typedef pthread_key_t   ThreadLocalKey;
 #define INIT_COND_VAR   PTHREAD_COND_INITIALIZER
 
 #ifdef LOCK_DEBUG
+#define LOCK_DEBUG_BELCH(what, mutex) \
+  debugBelch(%s(0x%p) %s %d\n, what, mutex, __FILE__, __LINE__)
+#else
+#define LOCK_DEBUG_BELCH(what, mutex) /* nothing */
+#endif
 
+/* Always check the result of lock and unlock. */
 #define ACQUIRE_LOCK(mutex) \
-  debugBelch(ACQUIRE_LOCK(0x%p) %s %d\n, mutex,__FILE__,__LINE__); \
-  pthread_mutex_lock(mutex)
-#define RELEASE_LOCK(mutex) \
-  debugBelch(RELEASE_LOCK(0x%p) %s %d\n, mutex,__FILE__,__LINE__); \
-  pthread_mutex_unlock(mutex)
-#define ASSERT_LOCK_HELD(mutex) /* nothing */
-
-#elif defined(DEBUG)  defined(linux_HOST_OS)
-#include errno.h
-/* 
- * On Linux, we can use extensions to determine whether we already
- * hold a lock or not, which is useful for debugging.
- */
-#define ACQUIRE_LOCK(mutex) \
+  LOCK_DEBUG_BELCH(ACQUIRE_LOCK, mutex); \
   if (pthread_mutex_lock(mutex) == EDEADLK) { \
 barf(multiple ACQUIRE_LOCK: %s %d, __FILE__,__LINE__); \
   }
+
 #define RELEASE_LOCK(mutex) \
+  LOCK_DEBUG_BELCH(RELEASE_LOCK, mutex); \
   if (pthread_mutex_unlock(mutex) != 0) { \
 barf(RELEASE_LOCK: I do not own this lock: %s %d, __FILE__,__LINE__); \
   }
 
 #define ASSERT_LOCK_HELD(mutex) ASSERT(pthread_mutex_lock(mutex) == EDEADLK)
-
-#define ASSERT_LOCK_NOTHELD(mutex) \
-  if (pthread_mutex_lock(mutex) != EDEADLK) {  \
- pthread_mutex_unlock(mutex);  \
-  } else { \
-ASSERT(0); \
-  }
-
-
-#else
-
-#define ACQUIRE_LOCK(mutex) pthread_mutex_lock(mutex)
-#define RELEASE_LOCK(mutex) pthread_mutex_unlock(mutex)
-#define ASSERT_LOCK_HELD(mutex) /* nothing */
-
-#endif
 
 #endif // CMINUSMINUS
 
___
Glasgow-haskell-users mailing list
Glasgow-haskell-users@haskell.org
http://www.haskell.org/mailman/listinfo/glasgow-haskell-users


Re: pthread mutex error building 6.10 on NetBSD

2009-01-01 Thread Matthias Kilian
On Wed, Dec 31, 2008 at 10:44:07PM -0800, Donn Cave wrote:
 I tried to build GHC 6.10.1 on NetBSD 4.0 this afternoon, and ran into
 an error, where cabal-bin calls the stage2 ghc in utils/installPackage.
 
 pthread_mutex_unlock() is called, evidently from fileLock(), with an
 invalid mutex.
 
 NetBSD's pthread implementation differs from Linux in its intolerance
 of such things.  I have found errors where someone forgets that a mutex
 was never used and tries to unlock it.  I guess you could do that all day
 long on Linux without noticing anything, but NetBSD aborts the program.
 In the present case, I don't see anything like that wrong in rts/FileLock.c,
 though.  I'm stumped.
 
 So I'm checking, has anyone else built 6.10 on NetBSD?

Only on OpenBSD, and there it builds fine (when bootstrapping from
either ghc-6.6 or -6.10). But what's interesting is that in
includes/OSThreads.h the return values of pthread_mutex_lock(3) and
pthread_mutex_unlock(3) aren't checked except apparently on Linux
when building with DEBUG defined.

You could either try to build with LOCK_DEBUG defined, so you see
exactly when a lock is acquired and released, or try to build with
DEBUG defined and that ` defined(linux_HOST_OS)' removed from
OSThreads.h to see what's going wrong.

BTW: is there any pthread implementation still in the wild where
pthread_mutex_{,un}lock() does NOT indicate a deadlock by EDEADLK?
If not, the DEBUG part of OSThreads.h could be used for all systems,
not only Linux.

Ciao,
Kili

-- 
A typo a day, keeps the dictionnary away.
-- Miod Vallat
___
Glasgow-haskell-users mailing list
Glasgow-haskell-users@haskell.org
http://www.haskell.org/mailman/listinfo/glasgow-haskell-users


Re: Linking error during stage2

2008-11-11 Thread Matthias Kilian
On Tue, Nov 11, 2008 at 06:38:02PM +0100, dermiste wrote:
 I've successfully built GHC-6.10.1 from 6.6.1 on OpenBSD 4.4, and
 would like now to generate a hc-file-bundle to build it without
 pre-existing GHC. I followed the instructions in [1], but I'm stuck
 with this error :
 Linking dist-install/build/installPackage/installPackage ...
 /usr/ports/lang/ghc/w-ghc-6.10.1-ghc_boot/ghc-6.10.1/libraries/unix/dist/build/libHSunix-2.3.1.0.a(Semaphore.o)(.text+0xac):
 In function `unixzm2zi3zi1zi0_SystemziPosixziSemaphore_zdwa_info':
 : undefined reference to `sem_trywait'
[...]
 Obviously, the linker skips entirely /usr/lib/libpthread.a, as all the
 symbols defined in semaphore.h are into it.

A quick hack I used for my work on ghc-6.8: just disable
System.Posix.Semaphore.

--- libraries/unix/System/Posix.hs.orig Sat May  3 19:25:32 2008
+++ libraries/unix/System/Posix.hs  Sun May 18 14:37:13 2008
@@ -26,7 +26,6 @@ module System.Posix (
   module System.Posix.Time,
   module System.Posix.User,
   module System.Posix.Resource,
-  module System.Posix.Semaphore,
   module System.Posix.SharedMem
  ) where
 
@@ -43,7 +42,6 @@ import System.Posix.Terminal
 import System.Posix.Time
 import System.Posix.User
 import System.Posix.Resource
-import System.Posix.Semaphore
 import System.Posix.SharedMem
 
 {- TODO


--- libraries/unix/unix.cabal.orig  Sat May  3 19:25:32 2008
+++ libraries/unix/unix.cabal   Sun May 18 13:44:08 2008
@@ -32,7 +32,6 @@ exposed-modules:
System.Posix.User
 System.Posix.Signals
System.Posix.Signals.Exts
-System.Posix.Semaphore
 System.Posix.SharedMem
 extra-source-files:
configure.ac configure


It's not a proper solution, but it may help for getting the build
a little bit farther (and OpenBSD doesn't support sem_open(3)
anyway).

Ciao,
Kili

-- 
It's a Barrier Of Entry issue:  if you can't figure out which floppy
to boot from, go run Gentoo.
-- Matthew Jenove on [EMAIL PROTECTED]
___
Glasgow-haskell-users mailing list
Glasgow-haskell-users@haskell.org
http://www.haskell.org/mailman/listinfo/glasgow-haskell-users


Re: ANNOUNCE: GHC 6.10.1 beta

2008-10-17 Thread Matthias Kilian
On Mon, Sep 29, 2008 at 10:26:35PM +0200, Matthias Kilian wrote:
 A full test log is available at
 http://openbsd.dead-parrot.de/ghctests/ghc-6.10-openbsd-i386.log

Same for openbsd-amd64, built from sources pulled from the darcs
repository at 15/Oct/2008:13:00:00 +0200:

http://openbsd.dead-parrot.de/ghctests/ghc-6.10-openbsd-amd64.log

OVERALL SUMMARY for test run started at Wed Oct 15 21:07:08 CEST 2008
2252 total tests, which gave rise to
   12108 test cases, of which
   0 caused framework failures
2301 were skipped

8846 expected passes
 128 expected failures
   0 unexpected passes
 833 unexpected failures


And for ghc-head (pulled an hour later):

http://openbsd.dead-parrot.de/ghctests/ghc-head-openbsd-amd64.log

OVERALL SUMMARY for test run started at Thu Oct 16 12:36:23 CEST 2008
2252 total tests, which gave rise to
   12108 test cases, of which
   0 caused framework failures
2294 were skipped

8917 expected passes
 128 expected failures
   0 unexpected passes
 769 unexpected failures


Most failures are caused by ghci which is still broken for
openbsd-amd64. Unfortunately, I don't have enough time to look at
the other failures now.

Ciao,
Kili
___
Glasgow-haskell-users mailing list
Glasgow-haskell-users@haskell.org
http://www.haskell.org/mailman/listinfo/glasgow-haskell-users


Re: ANNOUNCE: GHC 6.10.1 beta

2008-09-29 Thread Matthias Kilian
On Mon, Sep 29, 2008 at 10:46:34AM +0100, Ian Lynagh wrote:
  BTW: I had some problems running the testsuite some weeks ago,
  because some autoconf'd stuff was missing. When building from the
  repository (*not* from the source tarballs), are there any additional
  steps beyond
  
  sh boot
  ./configure --prefix=...
  gmake install
  
  required?
 
 I'm not sure if running gmake install without first running gmake
 works. Also, note that if you are building the extralibs then you need
 to run sh boot after getting them.

I was sloppy in my mail. Actually I'm even building stage1 and stage2
explicitely before installing. From my script:

nice time gmake stage1
nice time gmake stage2
nice time gmake install

And my problem with the testsuite was a PEBKAC (of course): on
OpenBSD, python is installed as python-2.3, python-2.4, python-2.5
(you can have several versions installed in parallel), which isn't
found by configure, which in turn lets the testsuite bail out.
Setting PythonCmd during configure fixed it.

I've yet to evaluate the results of the testsuite. I'll post it in
a few hours.

Ciao,
Kili
___
Glasgow-haskell-users mailing list
Glasgow-haskell-users@haskell.org
http://www.haskell.org/mailman/listinfo/glasgow-haskell-users


Re: ANNOUNCE: GHC 6.10.1 beta

2008-09-29 Thread Matthias Kilian
On Mon, Sep 29, 2008 at 07:07:33PM +0200, Matthias Kilian wrote:
 And my problem with the testsuite was a PEBKAC (of course): on
 OpenBSD, python is installed as python-2.3, python-2.4, python-2.5
 (you can have several versions installed in parallel), which isn't
 found by configure, which in turn lets the testsuite bail out.
 Setting PythonCmd during configure fixed it.
 
 I've yet to evaluate the results of the testsuite. I'll post it in
 a few hours.

Summary (skipping all the details):

OVERALL SUMMARY for test run started at Sun Sep 28 17:57:33 CEST 2008
2233 total tests, which gave rise to
   12011 test cases, of which
   0 caused framework failures
2244 were skipped

9324 expected passes
 140 expected failures
  20 unexpected passes
 283 unexpected failures

This looks more scary than it is; many unexpected failures are
caused by a change in Rational formatin (17%42 vs. 17 % 42),
some others are probably caused by OpenBSD specific stuff (e.g.,
warnings about the use of unsafe functions like strcpy(3), different
output behaviour on signals like SIGSEGV, and, well the unicode
(causing unexpected passes) and some threading differences are most
probably also OS-dependent candidates). Some problems are not
strictly OpenBSD specific, but just triggered due to the more
restrictive default limits (number of open file descriptors, datasize,
etc.). Finally, some tests just did time out (this isn't the fastest
machine in the universe).

A full test log is available at
http://openbsd.dead-parrot.de/ghctests/ghc-6.10-openbsd-i386.log

And a shorter log (using a really horrible awk script for stripping down
the full log):
http://openbsd.dead-parrot.de/ghctests/ghc-6.10-openbsd-i386.shortlog

Fallout from the following tests looks a little bit suspicious:

num009
num012
galois_raytrace (well, I didn't read the whol diff ;-))
driver019 (I think a fix for this has been pushed during the last 24 hours)
ffi009
tough
all the hpc stuff
copyFile001 (but there was a push for it recently, IIRC)

Ciao,
Kili
___
Glasgow-haskell-users mailing list
Glasgow-haskell-users@haskell.org
http://www.haskell.org/mailman/listinfo/glasgow-haskell-users


Re: ANNOUNCE: GHC 6.10.1 beta

2008-09-27 Thread Matthias Kilian
Hi,

On Mon, Sep 22, 2008 at 01:35:43AM +0100, Ian Lynagh wrote:
 We are pleased to announce that the GHC 6.10.0.20080921 snapshot is a
 beta release of GHC 6.10.1.
[...]
 Please test as much as possible; bugs are much cheaper if we find them
 before the release!

Not quite the beta snapshot, but from HEAD about the same time you
tagged and branched, I got the following positive results on
OpenBSD/i386:

1) Build it up to stage2 and make install from ghc-6.6: ok
2) The same again with the result of 1): ok
3) Full build including all extralibs with the result of 2): ok

I'll restart the whole process with what's in the ghc-6.10 branch
now (hopefully that's ok for you, since some fixes have been already
committed to the branch), and I'll also try to run the testsuite
after step 3).

BTW: I had some problems running the testsuite some weeks ago,
because some autoconf'd stuff was missing. When building from the
repository (*not* from the source tarballs), are there any additional
steps beyond

sh boot
./configure --prefix=...
gmake install

required?

Ciao,
Kili

ps: I've also an amd64 (aka x86_64) at work and will run the tests
on it next week. Wether I'll be able to fix the ghci problem in
time: no idea.
___
Glasgow-haskell-users mailing list
Glasgow-haskell-users@haskell.org
http://www.haskell.org/mailman/listinfo/glasgow-haskell-users


Re: ANNOUNCE: GHC 6.10.1 beta

2008-09-23 Thread Matthias Kilian
Hi,

On Tue, Sep 23, 2008 at 03:38:56PM +0200, Christian Maeder wrote:
 The error far below is caused by -perm /a+x in mk/bindist.mk
 during find:
 
 I've changed it to -perm -111

Unfortunately, this will only find files with the executable bit
set for user, group and owner, so it should be -perm +111. However,
even more unfortunately, at least the find(1) on OpenBSD doesn't
support the +mode pattern. This isn't a problem, because bindist
isn't very useful at all on OpenBSD, but it may be a problem on
other systems (I don't know what implementation of find(1) are used
on FreeBSD, NetBSD and MacOS X).

A workaround *may* be to use -perm -100 (setting the execute bit
for group and others but not for the user would be really weird).

 Then make install could not replace links:
 
 ln -s runghc /local/home/maeder/bin/runhaskell
 ln: cannot create /local/home/maeder/bin/runhaskell: File exists
 gmake[2]: *** [install] Error 2

ln -fs should do the job.

Ciao,
Kili
___
Glasgow-haskell-users mailing list
Glasgow-haskell-users@haskell.org
http://www.haskell.org/mailman/listinfo/glasgow-haskell-users


Re: ANNOUNCE: GHC 6.10.1 beta

2008-09-23 Thread Matthias Kilian
On Tue, Sep 23, 2008 at 08:34:36PM +0200, Matthias Kilian wrote:
  I've changed it to -perm -111
 
 Unfortunately, this will only find files with the executable bit
 set for user, group and owner, so it should be -perm +111. However,
 even more unfortunately, at least the find(1) on OpenBSD doesn't
 support the +mode pattern.[...]

According to
http://www.opengroup.org/onlinepubs/95399/utilities/find.html
`-perm +onum' (where onum is an octal number) seems to be yet another
gnuism, so `-perm -100' is probably the most portable (and least
breaking) option for any system not using gfind.

Ciao,
Kili
___
Glasgow-haskell-users mailing list
Glasgow-haskell-users@haskell.org
http://www.haskell.org/mailman/listinfo/glasgow-haskell-users


Re: ANNOUNCE: GHC 6.10.1 beta

2008-09-22 Thread Matthias Kilian
On Mon, Sep 22, 2008 at 03:32:40PM +0200, Christian Maeder wrote:
 I've tried to build a binary dist on x86 under Solaris and did not succeed.
 
 make binary-dist failed with
 
 1.
 for FILE in ; do if [ -e $FILE ]; then echo
 ghc-6.10.0.20080921/gmp/$FILE 
 /export/local1/home/maeder/haskell/ghc-6.10.0.20080921/bindist-list
 ; fi; done
 /bin/sh: syntax error at line 1: `;' unexpected
 gmake[1]: *** [binary-dist] Error 2
 
 
 I added strip to bindist.mk:
 ifneq $(strip $(BINDIST_EXTRAS)) 

This part could be done a little bit different (without the
conditional):

...
# And enything else
echo $(BINDIST_EXTRAS) | \
xargs -n1 | \
sed '/^$/d;s/.*/test -e  \\ echo $(WHERE_AM_I)\//' | \
sh  $(BIND_DIST_LIST)

(untested!)

 2.
 /bin/sh: test: argument expected
 gmake[1]: *** [binary-dist] Error 1
 
 -e does not work for test under sh, so I changed it to -r:
 ... if [ -r $$FILE ]; then ...

I doubt `-e' doesn't work on Solaris, because `-e' is POSIX. Does
this argument expected still appear with your fix to 1.?

 3.
 tar hcf /export/local1/home/maeder/haskell/ghc-6.10.0.20080921/ghc-6.10.0.
 20080921-i386-unknown-solaris2.tar -T
 /export/local1/home/maeder/haskell/ghc-6.10.0.20080921/bindist-list
 tar: -T: No such file or directory
 gmake: *** [binary-dist] Error 1
 
 I changed tar to gtar

Or use pax(1), which in contrast to tar(1) and gtar(1) is POSIX:

pax -hwf $(BIN_DIST_TAR)  $(BIN_DIST_LIST)

(also untested, but should work)

 4.
 gtar: ghc-6.10.0.20080921/gmp/{}: Cannot stat: No such file or directory
 
 The file bindist-list contained {} instead of filenames, so I changed
 find to gfind.

Or just omit all the -exec echo ${WHERE_AM_I}/{} goo and use find(1)
and sed(1), e.g.:

find $(WHATEVER) -print | sed 's/^/$(WHERE_AM_I}\//'

 5. When trying to install the binary distribution I got:
 
 Installing executable(s) in /local/home/maeder/bin
 installPackage: dist-install/build/installPackage/installPackage:
 copyFile: does not exist (No such file or directory)

Maybe fallout from some of the above problems?

Ciao,
Kili
___
Glasgow-haskell-users mailing list
Glasgow-haskell-users@haskell.org
http://www.haskell.org/mailman/listinfo/glasgow-haskell-users


Re: Version control systems

2008-08-13 Thread Matthias Kilian
On Wed, Aug 13, 2008 at 09:03:34AM +0100, Simon Marlow wrote:
 Yes, it relies only on the Cabal metadata, but the output is a
 Makefile only useful for building GHC.
 
 Ok, this statement is plainly not true, since I can use 'cabal makefile' 
 to build any package outside of the GHC build tree.  So perhaps I've 
 misunderstood your point?

No, I was confused (a little bit over-worked).

 $ ./Setup mkmetadata -prefix foo-
 
 which just produces some simple variable declarations like
 
  foo-impl-ghc-build-depends = rts
  foo-impl-ghc-exposed-modules = Data.Generics Data.Generics.Aliases 
[...]
 Yes, we could use this to implement GHC's build system.  It's somewhat 
 similar to the scheme I suggested in the other thread, but more generic. 
  I'd be completely happy to do it this way if the functionality would 
 be useful to others outside GHC too.

I've a little bit spare time from august 25th to august 31th.  This
should be enough time for implementing it (in Cabal and in the GHC
build system) to see how it feels.

Ciao,
Kili

-- 
CRM114 isn't ugly like PERL.  It's a whole different kind of ugly.
-- John Bowker
___
Glasgow-haskell-users mailing list
Glasgow-haskell-users@haskell.org
http://www.haskell.org/mailman/listinfo/glasgow-haskell-users


Re: Version control systems

2008-08-12 Thread Matthias Kilian
On Tue, Aug 12, 2008 at 11:59:37AM +0100, Simon Marlow wrote:
 Well, at least the Makefile creation was a step (the first step?)
 into the wrong direction, IMHO. I'll run a GHC build to get some
 of those generated Makefiles and followup on cvs-ghc, but for a
 starter, Cabal shouldn't know anything about implementation-specific
 internal build systems; instead it should rely only on it's own
 metadata.
 
 I'm not completely sure, but I think you may have misunderstood how 
 Cabal's makefile generation currently works.  It has no specific knowledge 
 of GHC's build system, and it does rely on its own metadata.

I mean the GHC-specific template used for building the Makefile
(Distribution/Simple/GHC/Makefile.in) and the function `makefile`
in Distribution/Simple/GHC.hs (this function even spills out some
some make rules in addition to what's in Makefile.in, which looks
very wrong to me).

Yes, it relies only on the Cabal metadata, but the output is a
Makefile only useful for building GHC.

It'd be better to be able to run

$ ./Setup mkmetadata -prefix foo-

which just produces some simple variable declarations like

foo-impl-ghc-build-depends = rts
foo-impl-ghc-exposed-modules = Data.Generics Data.Generics.Aliases ...
...
foo-exposed-modules = Control.Applicative Control.Arrow ...
...
foo-c-sources = cbits/PrelIOUtils.c cbits/WCsubst.c ...
...
foo-windows-extra-libaries = wsock32 msvcrt kernel32 user32 shell32
foo-extensions = CPP
foo-ghc-options =  -package-name base
foo-nhc98-options = -H4M -K3M

Basically, the .cabal file is just converted into some other format
that may be included by another Makefile. And since it's a really
simple output format, it could even be used by different implementations
of make(1) or even other build tools. The `foo-' prefix just shields
variables in the including Makefile.

Take this output, write it to some cabalmetadata.mk, and then use
a (GHC-specific) Makefile copied over into all library directories
that does an

include cabalmetadata.mk
...
GHC_OPTS += $(foo-ghc-options)
EXPOSED_MODULES = $(foo-exposed-modules) $(foo-impl-ghc-exposed-modules)
EXTRA_LIBS = $(foo-extra-libraries) $(foo-$(HostOS_CPP)-extra-libraries)

Thus, Cabal dumps the metadata, without knowing how it's used. All
the remaining stuff are some (implementation specific) Makefiles
relying on recursive variable expansion.

I'll implement this for GHC when I've a little bit more spare time
(in three or four weeks).

 (in my other 
 message I'm suggesting moving the Makefile generation into GHC's build 
 system so that it could be made specific to GHC, though).

Generated files should be as simple, primitive and portable as
possible.  Generating complete Makefiles make things more difficult.
And it doesn't matter wether they're generated by Cabal or by GHC's
build system. If you've to tweak the build system, you don't want
to tweak generators but just an existing Makefile.

  Implementation-specific stuff (such as how to run the
 compiler) should be supplied by the implementation, not by Cabal.
 
 This is what makes me unsure.  Implementation of what?

The Haskell compiler. Or, to be more exact, the Cabal library shipped
with the Haskell compiler (or some supplementary compiler-specific
library -- I didn't think much about this part yet).

However, my main concern is the usage of Cabal from within the GHC
build system, so please just forget this part ;-)

 Are you suggesting 
 a redesign of Cabal, or just changing the way something works?

I don't think that a large redesign is necessary. It should just
try to be as implementation-agnostic as possible.

Ciao,
Kili

-- 
do yourself a favor and let the le(4)s rot on the junkpile of history...
-- Henning Brauer
___
Glasgow-haskell-users mailing list
Glasgow-haskell-users@haskell.org
http://www.haskell.org/mailman/listinfo/glasgow-haskell-users


Re: Version control systems

2008-08-12 Thread Matthias Kilian
On Tue, Aug 12, 2008 at 10:29:03PM +0200, Matthias Kilian wrote:
 Basically, the .cabal file is just converted into some other format
 that may be included by another Makefile.

Oops! I again read your (SimonM's) proposal on changing Cabal and
the GHC build system in exactly this way. Sorry for the noise.

Ciao,
Kili
___
Glasgow-haskell-users mailing list
Glasgow-haskell-users@haskell.org
http://www.haskell.org/mailman/listinfo/glasgow-haskell-users


Re: How MD are .hi files?

2008-05-14 Thread Matthias Kilian
On Wed, May 14, 2008 at 11:35:36AM +0100, Simon Marlow wrote:
 for an unregisterised ghc-6.8.2 (or newer), are the .hi files
 dependent (except for the 32 vs. 64 bit word size)? I had a quick
 look at the stuff in compiler/iface, but the only MD part I found
 was that 32/64 bit difference.
 
 The word size is probably the only dependency, but there are many reasons 
 that you can't just take the .hc/.hi files generated by an unregisterised 
 build on one machine and expect them to work on another machine.

I really don't expect this. I just decided to be lazy and provide
not only .hc files but also .hi files[1] for the OpenBSD port, and
then I thought: does this make sense at all? Can it even be of use
for porting GHC to other archs on OpenBSD, or for the NetBSD folks
working on GHC?

Ciao,
Kili

[1] Of course, the correct solution would not need the .hi files,
but just use the stage1 bootstrapped from .hc files to start
rebuilding the libraries. But that would require even more hacking
on the Makefiles, and I've already an insane amount of hacks sitting
around.

-- 
It compiles -- let's ship it!
___
Glasgow-haskell-users mailing list
Glasgow-haskell-users@haskell.org
http://www.haskell.org/mailman/listinfo/glasgow-haskell-users


How MD are .hi files?

2008-05-12 Thread Matthias Kilian
Hi,

for an unregisterised ghc-6.8.2 (or newer), are the .hi files
dependent (except for the 32 vs. 64 bit word size)? I had a quick
look at the stuff in compiler/iface, but the only MD part I found
was that 32/64 bit difference.

TIA

Ciao,
Kili

ps: if you think this sounds like a complete newbie question, you're
right; I've been far too busy hacking on boring stuff like Makefiles,
and didn't have time to look at the interesting code (i.e. ghc
itself). My knowledge of ghc's internals is at the state of 1998,
or even older, I really don't remember ;-)

-- 
Options are good. As long as they are optional.
-- Artur Grabowski
___
Glasgow-haskell-users mailing list
Glasgow-haskell-users@haskell.org
http://www.haskell.org/mailman/listinfo/glasgow-haskell-users


Re: Bootstrapping for Leopard

2008-02-04 Thread Matthias Kilian
On Mon, Feb 04, 2008 at 12:18:01PM +, Simon Marlow wrote:
 Porting is simply broken for various reasons at the moment - in 
 particular the switch to Cabal for building the libraries broke it.  We 
 knew this at the time, but felt it was more important to make the switch 
 now and fix bootstrapping later.

Be prepared: I'll send some comments and (probably silly) questions
on cvs-ghc@ in a few minutes ;-)

 For pwd, I imagine the best way forward is to use a C program, I don't 
 think there are any deep issues there.

Unless some windows people have the time to step in and help make
it work with simple shell stuff, some C helpers would be just fine.

Ciao,
Kili
___
Glasgow-haskell-users mailing list
Glasgow-haskell-users@haskell.org
http://www.haskell.org/mailman/listinfo/glasgow-haskell-users


Re: Bootstrapping for Leopard

2008-01-30 Thread Matthias Kilian
On Wed, Jan 30, 2008 at 08:13:01PM +1100, Manuel M T Chakravarty wrote:
[Philip K.F. Hölzenspies:]
 make hc-file-bundle
 
 Making the hc-file-bundle target failed, because not all rts/*.cmm had
 rts/*.hc counterparts after the build. The make fails because of this
 fragment from the Makefile (part of the hc-file-bundle target,  
 starting from
 line 513):
 
 for f in `$(FIND) ghc-$(ProjectVersion)/compiler
 ghc-$(ProjectVersion)/rts -name *.cmm -follow -print` ; do \
  if test x$$f !=3D x; then \
echo `echo $$f | sed 's/cmm$$/hc/g' `  hc-files-to-go ; \
  fi; \
 done;

This is strange. I've all kinds of trouble getting hc-bootstrapping back
(for OpenBSD, but also in general), and I didn't see *that* problem.

 checking for path to top of build tree... ./configure: line 2651: - 
 v0: command
 not found
 ./configure: line 2655: utils/pwd/pwd: No such file or directory
 configure: error: cannot determine current directory
[...]
 This is due to a change of the configure stage that AFAIK was made to  
 easy building on windows.  Instead, of using shell commands/scripts  
 (as GHC did previously) to obtain some configuration information (here  
 the file path at which the top of the GHC build tree is located), the  
 build system now uses small Haskell programs/scripts.  This makes the  
 build more portable ** if there is already a Haskell compiler on the  
 system **.

But it just doesn't make sense at all. You need a good set of shell
commands at all, since they're used by configure as well as in
Makefiles. I really can't believe that simple stuff like this doesn't
work on windos:

--- aclocal.m4.orig Mon Dec 10 19:11:31 2007
+++ aclocal.m4  Sun Jan 20 17:10:07 2008
@@ -1098,20 +1098,14 @@ AC_REQUIRE([AC_PROG_CC])
 AC_DEFUN([FP_FIND_ROOT],[
 AC_MSG_CHECKING(for path to top of build tree)
 
-dnl This would be
-dnl make -C utils/pwd clean  make -C utils/pwd
-dnl except we don't want to have to know what make is called. Sigh.
-if test ! -f utils/pwd/pwd  test ! -f utils/pwd/pwd.exe; then
-  cd utils/pwd
-  rm -f *.o
-  rm -f *.hi
-  rm -f pwd
-  rm -f pwd.exe
-  $WithGhc -v0 --make pwd -o pwd
-  cd ../..
-fi
-
-hardtop=`utils/pwd/pwd forwardslash`
+case $HostPlatform in
+*cygwin32|*mingw32)
+   hardtop=`pwd | tr \\ /`
+   ;;
+*)
+   hardtop=`pwd`
+   ;;
+esac
 
 if ! test -d $hardtop; then
   AC_MSG_ERROR([cannot determine current directory])


ifBuildable.hs is similar; it can be replaced by a shell script or even
done within libraries/Makefile using very basic shell commands.

 The only solution that I see is to replace the Haskell scripts by  
 vanilla shell scripts in HC bundles.  Even if that causes problems on  
 windows (without cygwin), it would make HC bundles viable on Unix  
 systems again.

How is ghc currently built on windows without something like cygwin?
From the source distribution, the only way to build ghc seems to
be via configure and (GNU) make. So there must be some shell
environment available.

Or am I missing something really crucial here?

Ciao,
Kili
___
Glasgow-haskell-users mailing list
Glasgow-haskell-users@haskell.org
http://www.haskell.org/mailman/listinfo/glasgow-haskell-users


Re: Problem building on host machine when trying to cross-compile an unregistered build

2008-01-21 Thread Matthias Kilian
On Mon, Jan 21, 2008 at 03:23:54PM +, Simon Marlow wrote:
 First thing to note is that bootstrapping from HC files has bitrotted in 
 6.8.x, see http://hackage.haskell.org/trac/ghc/ticket/1346.  I've updated 
 the wiki instructions to say this.  You should go back to 6.6.x, or be 
 prepared to fix things...  I thought I remembered someone saying recently 
 they were looking into getting bootstrapping working again, but I can't 
 seem to find it now.

That may be me. I've some local patches for obvious offending stuff
(like utils/pwd or libraries/ifBuildable), and similar more or less
trivia in libraries/Makefile, but I didn't yet even hit the problems
I expect for the GNUmakefiles generated by cabal (which I tend to
include in a pre-build HC file bundle), not speaking of *real*
problems that may (will?) happen on the HC files themselves when
all the make issues have been fixed.

I asked igloo the other day, and now I ask here: if anyone has *any*
attempts for the make problems, even if they don't work, just mail
your diffs to me. No promises, no timeline[1], but I really want
to get HC bootstrapping back.

Ciao,
Kili

[1] Everytime I expect to have some more time to work on things I
want to work on, something bad happens that stops me from doing so.
At least within the last 14 months.
___
Glasgow-haskell-users mailing list
Glasgow-haskell-users@haskell.org
http://www.haskell.org/mailman/listinfo/glasgow-haskell-users


Re: network package

2008-01-11 Thread Matthias Kilian
On Fri, Jan 11, 2008 at 09:32:20AM -0800, Don Stewart wrote:
  I have just built and installed ghc-6.8.2 on my linux box but I can't find
  the network package. Has it been moved or left out?
 
 It's not installed by default. You can find it on hackage.haskell.org,
 
 http://hackage.haskell.org/cgi-bin/hackage-scripts/package/network-2.1.0.0

Yet it's still available in the extralibs tarball. Real slackers
just extract extralibs on top of the normal ghc source tarball to
get most (not all) of the beloved packages built for free.

Just FYI, here are some notes I scribbled down for myself a few
days ago when I did some work on the OpenBSD port of GHC (comparing
6.6.1 against 6.8.2 and comparing that against hackage.haskell.org):


New (wrt 6.6.1): array, bytestring, containers, directory, hpc,
old-locale, old-time, packedstring, parallel, pretty, process,
random.

Removed from the ghc sources (make separate ports fetching them
from hackage): HGL, X11. Note that X11-extras (i.e. port
x11/hs-x11-extras) is obsolete now.

Available in the extralibs distfile: HUnit, OpenGL, QuickCheck,
cgi, fgl, haskell-src, html, mtl, network, parallel, parsec,
regex-base, regex-compat, regex-posix, stm, time, xhtml.

Version info for packages (no version in Hackage column means same
version as for GHC-6.8.2):

NameDistGHC-6.8.2   Hackage

Cabal   base1.2.3.0
HUnit   extra   1.2.0.0
OpenGL  extra   2.2.1.1
QuickCheck  extra   1.1.0.0
array   base0.1.0.0
basebase3.0.1.0 n/a
bytestring  base0.9.0.1 0.9.0.3
cgi extra   3001.1.5.1
containers  base0.1.0.1 0.1.0.0 (!)
directory   base1.0.0.0
fgl extra   5.4.1.1
filepathbase1.1.0.0
ghc base6.8.2   n/a
haskell-src extra   1.0.1.1
haskell98   base1.0.1.0
hpc base0.5.0.0
htmlextra   1.0.1.1
mtl extra   1.1.0.0
network extra   2.1.0.0
old-locale  base1.0.0.0
old-timebase1.0.0.0
packedstringbase0.1.0.0
parallelextra   1.0.0.0
parsec  extra   2.1.0.0
pretty  base1.0.0.0
process base1.0.0.0
random  base1.0.0.0
readlinebase1.0.1.0
regex-base  extra   0.72.0.10.91
regex-compatextra   0.71.0.10.90
regex-posix extra   0.72.0.20.91
rts base1.0 n/a
stm extra   2.1.1.0
template-haskellbase(!) 2.2.0.0
timeextra   1.1.2.0
unixbase2.3.0.0 2.2.0.0 (!)
xhtml   extra   3000.0.2.1


Ciao,
Kili
___
Glasgow-haskell-users mailing list
Glasgow-haskell-users@haskell.org
http://www.haskell.org/mailman/listinfo/glasgow-haskell-users


Re: Problem building on NetBSD Alpha - Dynamic link dependency?

2008-01-11 Thread Matthias Kilian
On Fri, Jan 11, 2008 at 11:06:57AM +, Jim Burton wrote:
 In file included from Stg.h:150,
  from Rts.h:19,
  from mkDerivedConstants.c:23:
 Regs.h:30:45: gmp.h: No such file or directory

For a starter, look at http://hackage.haskell.org/trac/ghc/ticket/2009

No idea wether it fixes your problem; you may have to add some more
similar changes.

Ciao,
Kili
___
Glasgow-haskell-users mailing list
Glasgow-haskell-users@haskell.org
http://www.haskell.org/mailman/listinfo/glasgow-haskell-users


Re: Problem building on NetBSD Alpha - Dynamic link dependency?

2008-01-10 Thread Matthias Kilian
On Wed, Jan 09, 2008 at 10:41:23PM +, jim burton wrote:
 Thanks for that, the configure script gets to the end with that help.
 Following the instructions at
 http://hackage.haskell.org/trac/ghc/wiki/Building/Porting#PortingGHCtoanewplatform
 , I then try to make includes but get a big stream of errors from
 make. Why is this?

The GHC build backs on gmake(1).

Ciao,
Kili
___
Glasgow-haskell-users mailing list
Glasgow-haskell-users@haskell.org
http://www.haskell.org/mailman/listinfo/glasgow-haskell-users


Re: Problem building on NetBSD Alpha - Dynamic link dependency?

2008-01-09 Thread Matthias Kilian
On Wed, Jan 09, 2008 at 07:42:21PM +, jim burton wrote:
 I'm trying to build unregistered 6.8.2 on NetBSD Alpha 2.1.0_STABLE -- I
 have the following problem which seems to be same as this one -
 http://hackage.haskell.org/trac/ghc/ticket/1860 

No, I think it's another problem.

 $ ./configure --enable-hc-boot --enable-hc-boot-unregistered
[...]
 checking for ld... /usr/bin/ld
 checking for path to top of build tree... ./configure[3201]: -v0: not
 found
 ./configure[3203]: utils/pwd/pwd: not found
 configure: error: cannot determine current directory

What happens here is that configure tries to compile some utility
program (utils/pwd/pwd) using an existing ghc, which of course is
impossible when you're porting ghc a platform not already running
ghc. Similar problems are located in libraries and the Cabal-generated
GNUmakefiles.

For the utils/pwd/pwd problem, I really don't understand why that
thing is required at all, since it does little more than get the
pwd and add some slash or backslash escaping/quadrupling depending
on the argument passed to it.

You may try the patch below (and don't forget to re-run autoconf).

Note that this is the quick hack I did for OpenBSD. If the forward slash
hack of util/pwd is really required (for Windows builds?), something
like

hardtop=`pwd | tr '\\' /`

would be more appropriate. And the other sanity checks I deleted
may be necessary in some cases, too, but I really don't see the
point in them.

Ciao,
Kili

ps: IMHO, libaries/ifBuildable.hs should die a horrible death, too.
It can replaced with a few lines of shell commands..


--- aclocal.m4.orig Mon Dec 10 19:11:31 2007
+++ aclocal.m4  Fri Jan  4 13:58:49 2008
@@ -1098,28 +1098,7 @@ AC_REQUIRE([AC_PROG_CC])
 AC_DEFUN([FP_FIND_ROOT],[
 AC_MSG_CHECKING(for path to top of build tree)
 
-dnl This would be
-dnl make -C utils/pwd clean  make -C utils/pwd
-dnl except we don't want to have to know what make is called. Sigh.
-if test ! -f utils/pwd/pwd  test ! -f utils/pwd/pwd.exe; then
-  cd utils/pwd
-  rm -f *.o
-  rm -f *.hi
-  rm -f pwd
-  rm -f pwd.exe
-  $WithGhc -v0 --make pwd -o pwd
-  cd ../..
-fi
-
-hardtop=`utils/pwd/pwd forwardslash`
-
-if ! test -d $hardtop; then
-  AC_MSG_ERROR([cannot determine current directory])
-fi   
-
-dnl Remove common automounter nonsense
-dnl
-hardtop=`echo $hardtop | sed 's|^/tmp_mnt.*\(/local/.*\)$|\1|' | sed 
's|^/tmp_mnt/|/|'`
+hardtop=`pwd`
 
 AC_SUBST(hardtop)
 
___
Glasgow-haskell-users mailing list
Glasgow-haskell-users@haskell.org
http://www.haskell.org/mailman/listinfo/glasgow-haskell-users


Re: GHC 6.8.1 port on FreeBSD-amd64?

2008-01-06 Thread Matthias Kilian
On Sun, Jan 06, 2008 at 05:20:18PM +, Ian Lynagh wrote:
Prologue junk?: .type   s32x_ret, @function
s32x_ret:
pushl   %ebp
movl%esp, %ebp
  
  I see nearly the same problem with ghc-6.8.2 on OpenBSD, using the
  gcc-3.3.5 included in its base system.
 
 Presumably this also happens if you do a normal build with -fvia-C, i.e.
 it's not specific to building from an HC file bundle?

That's right, it's just -fvia-C that triggers the bug.

  [1] BTW: what's the point of using -fasm with -keep-hc-files? IMHO,
  it should be -fviaC -keep-hc-files. Someone let me know if I should
  correct this in the wiki.
 
 GHC will act as if -fvia-C is given if -keep-hc-files is given. It
 would be nice to update the wiki to say -fvia-C rather than -fasm to
 avoid confusion, though.

Done.

  ps: yes, I'm slowly trying to bring HC bootstrap back to work. It's
  a must-have for the OpenBSD port.
 
 Note that there is a plan to drop the registerised via-C way of
 compiling GHC at some point, so this isn't going to work in the long
 term (unless you want to bootstrap via an unregisterised compiler).

I think I'll be happy with unregisterised bootstrap, too, even if
the actual build of the port will take longer.

 Would it not be possible to have a ghc-bin package in OpenBSD, which
 contains a precompiled binary that can be used to compile a ghc source
 package? I think Gentoo does something like that.

AFAIK, FreeBSD does it in a similar way. However, this isn't the
way we do ports for OpenBSD, so I'll work towards the unregisterised
bootstrap.

Ciao,
Kili
___
Glasgow-haskell-users mailing list
Glasgow-haskell-users@haskell.org
http://www.haskell.org/mailman/listinfo/glasgow-haskell-users


Re: GHC 6.8.1 port on FreeBSD-amd64?

2008-01-04 Thread Matthias Kilian
[Note: already shortly discussed with Wilhelm]

On Fri, Nov 23, 2007 at 12:30:06PM +, Wilhelm B. Kloke wrote:
  ../../compiler/stage1/ghc-inplace -package-name unix-2.2.0.0 
  -hide-all-packages -i -idist/build/autogen -idist/build -i. -Idist/build 
  -Iinclude -#include HsUnix.h -#include execvpe.h -odir dist/build 
  -hidir dist/build -stubdir dist/build -package base-3.0.0.0 -package 
  directory-1.0.0.0 -O -XCPP -XForeignFunctionInterface -idist/build  -H32m 
  -O0 -fasm -Rghc-timing -keep-hc-files -O -c 
  dist/build/System/Posix/Process.hs -o dist/build/System/Posix/Process.o  
  -ohi dist/build/System/Posix/Process.hi
  Prologue junk?: .type   s32x_ret, @function
  s32x_ret:
  pushl   %ebp
  movl%esp, %ebp

I see nearly the same problem with ghc-6.8.2 on OpenBSD, using the
gcc-3.3.5 included in its base system.

Regardless of wether there's something wrong with the generated
code or wether it's just a bug in the mangler, it's possible to
build Process.c with -fviaC *and* -O0.[1]

For now, I'm able to build a HC file bundle with this settings in
build.mk and running gmake stage1 hc-file-bundle:

SRC_HC_OPTS=-H64 -O -fvia-C -keep-hc-files
GhcLibHcOpts=   -O0 # Workaround the mangler problem
GhcLibWays=
GhcRTSWays=
SplitObjs=  NO

I'd appreciate any reports wether people see the same problem on
other systems (if so: what gcc version are you using?) and wether
GhcLibHcOpts=-O0 fixes it.

Ciao,
Kili

[1] BTW: what's the point of using -fasm with -keep-hc-files? IMHO,
it should be -fviaC -keep-hc-files. Someone let me know if I should
correct this in the wiki.


ps: yes, I'm slowly trying to bring HC bootstrap back to work. It's
a must-have for the OpenBSD port. Apart from the HC file bundle,
this will require some more hacking especially on library/Makefile
and the Cabal-generated GNUmakefiles (and/or Makefile.local).

pps: I guess, cvs-ghc would be the more correct list for sending
patches and discussing the bootstrapping stuff, right?
___
Glasgow-haskell-users mailing list
Glasgow-haskell-users@haskell.org
http://www.haskell.org/mailman/listinfo/glasgow-haskell-users


Re: [slightly OT] ghc-6.6.1 on OpenBSD/i386: internal error (Storage.c)

2007-05-31 Thread Matthias Kilian
On Tue, May 29, 2007 at 04:15:29PM +0100, Simon Marlow wrote:
 What puzzles me a little bit is the fact that this does *not* happen
 on amd64 (aka x86_64) but only on i386 so far.
 
 So does this ring a bell for anyone? I didn't find anything similar
 in the archives or in the bug tracker.
 
 No ringing bells here I'm afraid.  What you're seeing is a failure from 
 the code that checks for memory leaks, which is only enabled by -debug 
 (the threaded1 test way uses -threaded -debug).  It reckons you have 508 
 blocks allocated from the OS, but can only account for 255 of them.  You 
 could try enabling some more debugging options, e.g. +RTS -DSb will enable 
 sanity-checking and debugging messages from the block allocator.

This, and with some more debugging output and gdb sessions, helped.

The problem is that in hs_init(), initAdjustor() is called *before*
initStorage(). initAdjustor() is a NOOP everywhere except for
OpenBSD/i386, where it calls allocateExec(). Later in hs_init(),
when initStorage() is invoked, the free_list is reset, but
mblocks_allocated is still 1 = bummer.

Now my GHC knowledge is still very rusty (I didn't look at it for
years), so I really don't know wether that initAdjustor() is still
needed nor what it's good for, or if its invocation can be moved
after initStorage().

Any hint appreciated.

Ciao,
Kili
___
Glasgow-haskell-users mailing list
Glasgow-haskell-users@haskell.org
http://www.haskell.org/mailman/listinfo/glasgow-haskell-users


[slightly OT] ghc-6.6.1 on OpenBSD/i386: internal error (Storage.c)

2007-05-27 Thread Matthias Kilian
Hi,

I'm currently working on updating the GHC port to 6.6.1 for OpenBSD,
and when I run the testsuite (ghc-regress), all test cases for the
way threaded1, i.e. debug + threaded bail out with an assertion
failure:

Blocks: 132 live + 123 free  = 255 total (508 around)
conc010: internal error: ASSERTION FAILED: file Storage.c, line 1174

The numbers vary slightly, but there's always a total of 255 and
508 blocks around, except for one test case (con012), where there
are a total of 763 blocks (1016 around).

What puzzles me a little bit is the fact that this does *not* happen
on amd64 (aka x86_64) but only on i386 so far.

So does this ring a bell for anyone? I didn't find anything similar
in the archives or in the bug tracker.

Ciao,
Kili

-- 
CRM114 isn't ugly like PERL.  It's a whole different kind of ugly.
-- John Bowker
___
Glasgow-haskell-users mailing list
Glasgow-haskell-users@haskell.org
http://www.haskell.org/mailman/listinfo/glasgow-haskell-users


Re: testsuite for GHC version 6.6.1?

2007-05-04 Thread Matthias Kilian
On Fri, May 04, 2007 at 02:48:13PM +0200, Christian Maeder wrote:
 How or where can I pick up the testsuite for this new version? I want to
 test my own builds.

http://www.haskell.org/ghc/dist/6.6.1/ghc-testsuite-6.6.1.tar.gz
___
Glasgow-haskell-users mailing list
Glasgow-haskell-users@haskell.org
http://www.haskell.org/mailman/listinfo/glasgow-haskell-users


perl frontend for ghc

2000-06-27 Thread Matthias Kilian

Hi!

I hope this isn't a FAQ, but AFAIR this hasn't been asked in the past:

Are there plans to replace the ghc frontend (driver), which is currently
written in perl, by a version implemented in Haskell?

I know that perl is nice for fiddling with command line options, but on
the other hand, it's a very chaotic programming language. So, are there
any reasons beyond speed and/or the simple fact that nobody did port the
frontend to Haskell?

Bye,
Kili

-- 
signature intentionally left blank





Re: ANNOUNCE: GHC 4.06 released

2000-01-28 Thread Matthias Kilian

Hi!

I wonder what the cvs release naming strategy is. Ist 4.06 on the main cvs
branch, or is there a special tag for official releases, or what else?

A `cvs up -dPA -r 4.06' in the fptools directory simply removed everything
(don't worry, I did make a copy before the update).

Bye,
Kili




RE: Patches for GHC 4.04pl1?

1999-09-22 Thread Matthias Kilian

 The best thing to do is use the anoncvs repository, and just 'cvs update' to
 get the latest patches.  If you're running over a phone line then it might
 help to make ssh do some compression.

Yes, but this requires at least one complete checkout. Of course, after
this is done, cvs update will only load the diffs to newer versions.

And: isn't there a risk to update the local sources to a `unstable'
revision? Or do you use symbolic tags for official releases, such as
`ghc4.04pl1'?

I'll use cvs to get the latest ghc, but nevertheless I suggest to publish
patch files for future releases of ghc. This shouldn't be too difficult:

cvs co -r lastRel -d ghc.old ghc
cvs co -D now ghc
cd ghc
diff -rNu ../ghc.old .  ../ghc.diffs
cvs tag -F lastRel
cd ..
cvs -q rel -d ghc.old
cvs -q rel -d ghc

Bye,
Kili


-- 
de: Signaturen erzeugen Krebs.
en: Signatures cause cancer.
Please send other translations.



RE: Searching for the gcc-2.95 problem

1999-08-16 Thread Matthias Kilian

Perhaps the same is happening with GHC's RTS.  You can ask gcc-2.95 to 
be less aggressive by using -fno-strict-aliasing (I think; consult
the documentation).  I'd be interested to hear if this makes any
difference.

I've already tried this with no success. However, it seems that during the
make process not every files are compiled with `$(TOP)/ghc/drivers/ghc'. Some
are compiled with the standard ghc which (in my setup) uses plain gcc withou
-fno-strict-aliasing. So I have to try it again, with my installed ghc driver
patched.

BTW: Are there any gcc-related problems apart from that I reported (you
remember, the funny thing with the hamming numbers)? I think there was mail
reporting core dumps, but I can't find it in my mail folders.

Kili



Success story (was: Re: Where are ghc-4.02 .hc files?)

1999-04-13 Thread Matthias Kilian

Thank you all for your tips.

I've compiled first ghc-3.02 using the .hc files and then ghc-4.02 which
required an additional -dcore-lint on the following files:

compiler/rename/ParseIface.lhs
lib/exts/Int.lhs
lib/exts/Word.lhs
lib/posix/PosixTTY.lhs +
lib/std/PrelArr.lhs
lib/std/PrelHandle.lhs
lib/std/Random.lhs

In addition to this, I also had to switch optimization off  (-Onot) for
lib/posix/PosixTTY.lhs.

Now I can say that ghc-4.02 seems to work on Linux 2.2.5 with glibc-2.1.1pre1
and egcs-1.1.2. I did a three-stage bootstrapping without any further problems.

Regards,
Kili