Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
number of tests, all because of the codecs/_multibytecodecs issue described
here (it's not a Py3K issue, just something Py3K discovers):
http://mail.python.org/pipermail/python-dev/2006-April/064051.html

Hye-Shik Chang promised to look for a fix, so no need to fix it here. The
tests that are expected to break are:

test_codecencodings_cn
test_codecencodings_hk
test_codecencodings_jp
test_codecencodings_kr
test_codecencodings_tw
test_codecs
test_multibytecodec

This merge fixes an actual test failure (test_weakref) in this branch,
though, so I believe merging is the right thing to do anyway.
diff --git a/Lib/test/test_compiler.py b/Lib/test/test_compiler.py
index 5e7b15c..a59d6aa 100644
--- a/Lib/test/test_compiler.py
+++ b/Lib/test/test_compiler.py
@@ -1,10 +1,12 @@
 import compiler
 from compiler.ast import flatten
-import os
+import os, sys, time, unittest
 import test.test_support
-import unittest
 from random import random
 
+# How much time in seconds can pass before we print a 'Still working' message.
+_PRINT_WORKING_MSG_INTERVAL = 5 * 60
+
 class CompilerTest(unittest.TestCase):
 
     def testCompileLibrary(self):
@@ -13,11 +15,18 @@
         # that any of the code is correct, merely the compiler is able
         # to generate some kind of code for it.
 
+        next_time = time.time() + _PRINT_WORKING_MSG_INTERVAL
         libdir = os.path.dirname(unittest.__file__)
         testdir = os.path.dirname(test.test_support.__file__)
 
         for dir in [libdir, testdir]:
             for basename in os.listdir(dir):
+                # Print still working message since this test can be really slow
+                if next_time <= time.time():
+                    next_time = time.time() + _PRINT_WORKING_MSG_INTERVAL
+                    print >>sys.__stdout__, \
+                       '  testCompileLibrary still working, be patient...'
+
                 if not basename.endswith(".py"):
                     continue
                 if not TEST_ALL and random() < 0.98: