stg_ap_v_ret porting crash: solved?

Simon Marlow simonmar at microsoft.com
Mon Sep 15 16:18:43 EDT 2003


 
> Am I right in thinking that by just putting
> 
> GhcUnregisterised=YES
> SplitObjs=NO
> 
> in mk/build.mk every time you build GHC it ought to not only work on
> arches with bit-rotted mangler support but also those with none
> attempted? Where work means compiles the same set of programs, but the
> result (as well as the compilation) will be slower?

Yes, with the caveat that this applies only to the the code *generated*
by the GHC you're building.

> Starting with a reg compiler producing reg code and iterating 
> a standard
> configure/make/make install with 6.0.1 gives these numbers on x86:
> 
> 70m5.850s
> 86m27.550s
> 86m26.350s
> 
> so it looks like this is about 25% slower, although I don't know how
> much it will vary by architecture. This isn't purely testing GHC of
> course, but I think it's probably pretty close.

Interesting.  Bear in mind that a lot of the time is spent in GCC, and
that is going to be roughly the same for registerised vs.
unregisterised, so overall compile times don't look much different.
However, I think you'll find that ordinary Haskell programs will vary by
about a factor of 2 in performance between registerised & unregisterised
(last time I checked was a few years ago, though).

What are the binary sizes like?

> This seems better than no GHC at all for unsupported arch/OS
> combinations, and I unfortunately don't have the time to learn the
> details of what needs to be done and all the assembly languages and
> calling conventions that Debian supports.
> 
> It would also mean that anyone who does want to try to get it working
> registerised on an arch could skip the cross-porting stage.

Sure, shipping an unregisterised port is completely acceptable.

> Incidentally, it looks to me like the comment
> 
> # NOTE: this is not the same as building the compiler itself
> # unregisterised.  That's done by either (a) bootstrapping with a
> # compiler that was built with GhcUnregisterised=YES, or (b)
> # bootstrapping with a compiler that has way 'u' libraries, and the
> # flag '-unreg' is added to GhcHcOpts above.
> 
> about GhcUnregisterised in mk/config.mk is outdated given the 2-stage
> building process that is now the default?

Hmm, I should update that comment.

Cheers,
	Simon



More information about the Glasgow-haskell-users mailing list