logo       

Re: trying to get a registerised alpha build: msg#00153

lang.haskell.glasgow.bugs

Subject: Re: trying to get a registerised alpha build

Duncan Coutts wrote:

What would you recommend is the bat way for us to verify that each bit
of the registerised build is working? If we turn everything on including
the mangler and it breaks where do we start debugging?

I usually do this in one big step.

Regarding debugging, I just wrote this wiki page:

http://hackage.haskell.org/trac/ghc/wiki/DebuggingGhcCrashes

That should tell you everything you need to know, please feel free to expand it as you discover things.

Is it possible to build without tailcalls (ie using the
mini-interpreter) but using the stg->machine register mappings?

Certainly. I think if you use -optc-DUSE_MINIINTERPRETER and -fno-asm-mangling everywhere, that should get you registers but no mangling or tail calls.

Or how
about the other way around - using tail calls (& that aspect of the
mangler) but not using any machine regs. And similarly, can we not turn
on the tables next to code bits?

TABLES_NEXT_TO_CODE requires the mangler.

You can certainly turn on tail calls and mangling without registers; either set the register mappings in MachRegs.h to empty, or just use -optc-DNO_REGS everywhere.

What's the best way of building stage1/stage2 ghc and all the C code it
generates with debugging info?

It should be possible to compile via C with debugging info as long as you're not using the mangler, but I don't think I've ever done it. Just add -optc-g to SRC_HC_OPTS.

We're using this mk/build.mk:

SRC_HC_OPTS = -H32m -O0
GhcStage1HcOpts = -O0 -DDEBUG
GhcStage2HcOpts = -O0 -DDEBUG -optc-g
GhcLibHcOpts =
GhcLibWays = debug

There's no such way as 'debug', except for the RTS. So this probably doesn't do anything.

SplitObjs = NO

Sorry, lots of questions. :-)

But if we can get registerised alpha working, we'll try hppa & mips
next... ;-)

Great!

Cheers,
Simon


<Prev in Thread] Current Thread [Next in Thread>
Google Custom Search

News | FAQ | advertise