Change the strategy for coping with time intensive tests from
"all or none" to "all or some".

This provides much greater test coverage without eating much time.
It also makes it more likely that routine regression testing will
unearth bugs.
diff --git a/Lib/test/test_compiler.py b/Lib/test/test_compiler.py
index bc2dd70..63cbc00 100644
--- a/Lib/test/test_compiler.py
+++ b/Lib/test/test_compiler.py
@@ -2,6 +2,7 @@
 import os
 import test.test_support
 import unittest
+from random import random
 
 class CompilerTest(unittest.TestCase):
 
@@ -18,6 +19,8 @@
             for basename in os.listdir(dir):
                 if not basename.endswith(".py"):
                     continue
+                if not TEST_ALL and random() < 0.98:
+                    continue
                 path = os.path.join(dir, basename)
                 if test.test_support.verbose:
                     print "compiling", path
@@ -31,7 +34,8 @@
                     compiler.compile(buf, basename, "exec")
 
 def test_main():
-    test.test_support.requires("compiler")
+    global TEST_ALL
+    TEST_ALL = test.test_support.is_resource_enabled("compiler")
     test.test_support.run_unittest(CompilerTest)
 
 if __name__ == "__main__":