Merged the decimal-branch (revisions 54886 to 58140). Decimal is now
fully updated to the latests Decimal Specification (v1.66) and the
latests test cases (v2.56).

Thanks to Mark Dickinson for all his help during this process.
diff --git a/Lib/test/decimaltestdata/compare.decTest b/Lib/test/decimaltestdata/compare.decTest
index 21651ad..2d5e664 100644
--- a/Lib/test/decimaltestdata/compare.decTest
+++ b/Lib/test/decimaltestdata/compare.decTest
@@ -1,6 +1,6 @@
 ------------------------------------------------------------------------
--- compare.decTest -- decimal comparison                              --
--- Copyright (c) IBM Corporation, 1981, 2003.  All rights reserved.   --
+-- compare.decTest -- decimal comparison that allows quiet NaNs       --
+-- Copyright (c) IBM Corporation, 1981, 2007.  All rights reserved.   --
 ------------------------------------------------------------------------
 -- Please see the document "General Decimal Arithmetic Testcases"     --
 -- at http://www2.hursley.ibm.com/decimal for the description of      --
@@ -17,11 +17,11 @@
 --   IBM UK, PO Box 31, Birmingham Road, Warwick CV34 5JL, UK         --
 --   mfc@uk.ibm.com                                                   --
 ------------------------------------------------------------------------
-version: 2.39
+version: 2.56
 
 -- Note that we cannot assume add/subtract tests cover paths adequately,
 -- here, because the code might be quite different (comparison cannot
--- overflow or underflow, so actual subtractions are not necesary).
+-- overflow or underflow, so actual subtractions are not necessary).
 
 extended: 1
 
@@ -112,10 +112,10 @@
 -- now some cases which might overflow if subtract were used
 maxexponent: 999999999
 minexponent: -999999999
-comx090 compare  9.99999999E+999999999 9.99999999E+999999999  -> 0
-comx091 compare -9.99999999E+999999999 9.99999999E+999999999  -> -1
-comx092 compare  9.99999999E+999999999 -9.99999999E+999999999 -> 1
-comx093 compare -9.99999999E+999999999 -9.99999999E+999999999 -> 0
+comx095 compare  9.99999999E+999999999 9.99999999E+999999999  -> 0
+comx096 compare -9.99999999E+999999999 9.99999999E+999999999  -> -1
+comx097 compare  9.99999999E+999999999 -9.99999999E+999999999 -> 1
+comx098 compare -9.99999999E+999999999 -9.99999999E+999999999 -> 0
 
 -- some differing length/exponent cases
 comx100 compare   7.0    7.0    -> 0
@@ -265,6 +265,21 @@
 comx449 compare   -8      -.9E+1  -> 1
 comx450 compare   -8      -90E-1  -> 1
 
+-- misalignment traps for little-endian
+comx451 compare      1.0       0.1  -> 1
+comx452 compare      0.1       1.0  -> -1
+comx453 compare     10.0       0.1  -> 1
+comx454 compare      0.1      10.0  -> -1
+comx455 compare      100       1.0  -> 1
+comx456 compare      1.0       100  -> -1
+comx457 compare     1000      10.0  -> 1
+comx458 compare     10.0      1000  -> -1
+comx459 compare    10000     100.0  -> 1
+comx460 compare    100.0     10000  -> -1
+comx461 compare   100000    1000.0  -> 1
+comx462 compare   1000.0    100000  -> -1
+comx463 compare  1000000   10000.0  -> 1
+comx464 compare  10000.0   1000000  -> -1
 
 -- testcases that subtract to lots of zeros at boundaries [pgr]
 precision: 40
@@ -362,7 +377,7 @@
 comx569 compare    1E+13  1       ->  1
 comx570 compare    1E+14  1       ->  1
 comx571 compare    1E+15  1       ->  1
--- similar with an useful coefficient, one side only
+-- similar with a useful coefficient, one side only
 comx580 compare  0.000000987654321     1E-15    -> 1
 comx581 compare  0.000000987654321     1E-14    -> 1
 comx582 compare  0.000000987654321     1E-13    -> 1
@@ -712,6 +727,32 @@
 comx907 compare -1e-777777777  1e-411111111 -> -1
 comx908 compare -1e-777777777 -1e-411111111 ->  1
 
+-- spread zeros
+comx910 compare   0E-383  0       ->  0
+comx911 compare   0E-383 -0       ->  0
+comx912 compare  -0E-383  0       ->  0
+comx913 compare  -0E-383 -0       ->  0
+comx914 compare   0E-383  0E+384  ->  0
+comx915 compare   0E-383 -0E+384  ->  0
+comx916 compare  -0E-383  0E+384  ->  0
+comx917 compare  -0E-383 -0E+384  ->  0
+comx918 compare   0       0E+384  ->  0
+comx919 compare   0      -0E+384  ->  0
+comx920 compare  -0       0E+384  ->  0
+comx921 compare  -0      -0E+384  ->  0
+comx930 compare   0E+384  0       ->  0
+comx931 compare   0E+384 -0       ->  0
+comx932 compare  -0E+384  0       ->  0
+comx933 compare  -0E+384 -0       ->  0
+comx934 compare   0E+384  0E-383  ->  0
+comx935 compare   0E+384 -0E-383  ->  0
+comx936 compare  -0E+384  0E-383  ->  0
+comx937 compare  -0E+384 -0E-383  ->  0
+comx938 compare   0       0E-383  ->  0
+comx939 compare   0      -0E-383  ->  0
+comx940 compare  -0       0E-383  ->  0
+comx941 compare  -0      -0E-383  ->  0
+
 -- Null tests
 comx990 compare 10  # -> NaN Invalid_operation
 comx991 compare  # 10 -> NaN Invalid_operation