Compiling isn't everything

Whiteknight on 2008-06-24T02:33:00

I posted a journal entry earlier this morning. Lo and behold! When I come back tonight it isn't there. The save button I've been clicking actually says "Preview" and doesn't save. I've been looking for a way to change this behavior, but it appears to be unchangable.

As of last night, parrot compiles in the gsoc_pdd09 branch. Of course, as we all know, compiling isn't everything. And when it I say that "it compiles", I don't mean that the build process completes: Parrot and libparrot build, miniparrot doesn't (segfault) and the rest of the build process halts.

I'm a bit of a programming masochist, so I ran through the test suite with the generated executable. It wasn't as bad as I expected, about half the tests actually passed. Final count is 256/584 tests, 3423/7724 subtests fail. All test failures that I can see were segfault errors, as could probably be expected.

Knowing which tests fail and which don't is actually going to be very helpful to me in debugging where the problem is. I already know that small, memory non-intensive tests pass. Small trivial programs run, like the one below.

.sub main :main $S0 = "Hello World!" print $S0 .end

Because of this, I know that the initialization code works fine: We don't segfault when the program starts up and we can do some basic allocations without problem. This was just the first small program I wrote, and you'll notice I only used a string constant. Things might be different in allocating a single PMC, and those are tests that I'm going to have to test later.

This week is a busy one for me, and I wont be able to do a lot of work or post a lot of journal entries for now. My schedule gets back to normal on the 30th, and I'll be back to hard-core debugging by then.