There's nothing particularly unusual about my x86 FreeBSD 4.5 box, except
maybe that it's a little old.

Attempting to build current parrot with -Os [gcc's optimise for space flag]:

swap_pager: out of swap space
swap_pager_getswapspace: failed
pid 149 (screen-3.9.5), uid 0, was killed: out of swap space
pid 95 (sendmail), uid 0, was killed: out of swap space

This time it only took out screen and sendmail. I tried it twice yesterday,
and it managed sshd twice, and the compiler actually doing the compile of
core.ops [after a lot of warnings about what it can't inline]

It does compile and test perfectly on the defaults (no optimisation), and
on -O. It's just -Os that goes nasty.

OK, so the machine only has 16M ram and by default 37M swap. But I don't think
we're going to look that good if release parrot is this capable of taking out
Joe public's machines. Not that I'm that sure what to do about it.

[compile on -Os does succeed when I add another 32M swap. Last time this sort
of thing happened to me was POSIX.xs on perl5 on linux on -O2, which once took
out a lot of a lightly loaded machine. I believe that's now been solved by
completely redoing the constant() function in perl5. In that case, gcc's
optimiser was choking on a large switch statement. Is that what is happening
here? The last warning was about failing to inline the call to rx_is_newline
in rx_dot_p_i

Hmm. I bet a coffee the problem is static int find_op().
Is that implementation really the best way to provide the functionality?
]

Nicholas Clark
-- 
EMCFT http://www.ccl4.org/~nick/CV.html

Reply via email to