GHC API: Access to nativeCodeGen?
Peter A Jonsson
pj at ludd.ltu.se
Tue Jul 19 12:17:11 EDT 2005
> > I had perl 5.005_03 first in my path, that made the splitter not
> > work. Changing to a newer version made it work. Maybe a test could be
> > added to configure to avoid too old versions of perl?
>
> I'll be happy to - but I don't know exactly what version of Perl we
> require. Any clues? What went wrong with the splitter?
Sorry for the bad description of the error. I'll try again: The
problem I had was a failed build and a silent failure of the
splitter. No error message or similar, just a return. Poking around
with it and running "perl splitter <args..>" manually gave a core dump
from 'perl'.
It didn't complain about parse errors or similar so my guess is that
the code in itself is 5.005_03-compatible, the splitter is just
triggering some bug in the perl machinery. I didn't think of writing
down any details at the moment since changing to 5.8.4 'fixed' my
problem.
Perl 5.6.0 seems to be released 2000-Mar-22, demanding that people who
build ghc have a perl that is no older than 5 years might be a
reasonable first step?
> > Needed a patch to build NCG. I tried to preserve as much of the
> > previous structure in order to avoid introducing bugs, but I wasn't
> > entirely successfull. I've attached the patch and would appreciate if
> > someone could glance over it looking for obvious errors.
>
> There are never any "obvious" errors in the NCG :-) I did glance over
> it, and it mostly looks like a straightforward change over to Cmm.
> Since your patch only touches code inside #ifdef sparc_TARGET_ARCH,
> which is currently broken anyway, I'm inclined to just merge it as-is.
That sounds good to me, a smaller diff would hopefully make my life
easier.
About the lack of sparc-support - is the problem that no active
developers have access to sparc-machines any longer or is there simply
no interest in sparc? If it is the former, contact me off list and
I'll try to help out.
> > With this patch a bunch of array tests with WAY=normal fails, all in
> > the same way:
> >
> > Stack space overflow: current size 8388608 bytes.
> > Use `+RTS -Ksize' to increase it.
>
> Best guess is the code generated for a stack-check sequence is
> incorrect. Match up the assembly file (use -keep-s-file) with the Cmm
> (-ddump-opt-cmm) and see if you can spot the incorrect code. I can
> provide some gdb tips - let me know if you need more help.
Ahh, and here I was using -v5. This is much better.
The stack-check sequence you are referring to, is that in Cmm
represented by "if ((Sp + -12) < SpLim) goto <label>"? If that is the
case, I can't find any errors in the asm produced.
Any hints that would ease the burden of reading big chunks of
assembler would be much appreciated!
> Also, the codeGen tests are probably a better place to start
> (tests/ghc-regress/codeGen/should_run).
Ok, will look into this.
/ Peter
More information about the Glasgow-haskell-users
mailing list