Merged revisions 58095-58132,58136-58148,58151-58197 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk

........
  r58096 | brett.cannon | 2007-09-10 23:38:27 +0200 (Mon, 10 Sep 2007) | 4 lines

  Fix a possible segfault from recursing too deep to get the repr of a list.

  Closes issue #1096.
........
  r58097 | bill.janssen | 2007-09-10 23:51:02 +0200 (Mon, 10 Sep 2007) | 33 lines

  More work on SSL support.

  * Much expanded test suite:

    All protocols tested against all other protocols.
    All protocols tested with all certificate options.
    Tests for bad key and bad cert.
    Test of STARTTLS functionality.
    Test of RAND_* functions.

  * Fixes for threading/malloc bug.

  * Issue 1065 fixed:

    sslsocket class renamed to SSLSocket.
    sslerror class renamed to SSLError.
    Function "wrap_socket" now used to wrap an existing socket.

  * Issue 1583946 finally fixed:

    Support for subjectAltName added.
    Subject name now returned as proper DN list of RDNs.

  * SSLError exported from socket as "sslerror".

  * RAND_* functions properly exported from ssl.py.

  * Documentation improved:

    Example of how to create a self-signed certificate.
    Better indexing.
........
  r58098 | guido.van.rossum | 2007-09-11 00:02:25 +0200 (Tue, 11 Sep 2007) | 9 lines

  Patch # 1140 (my code, approved by Effbot).

  Make sure the type of the return value of re.sub(x, y, z) is the type
  of y+x (i.e. unicode if either is unicode, str if they are both str)
  even if there are no substitutions or if x==z (which triggered various
  special cases in join_list()).

  Could be backported to 2.5; no need to port to 3.0.
........
  r58099 | guido.van.rossum | 2007-09-11 00:36:02 +0200 (Tue, 11 Sep 2007) | 8 lines

  Patch # 1026 by Benjamin Aranguren (with Alex Martelli):
  Backport abc.py and isinstance/issubclass overloading to 2.6.

  I had to backport test_typechecks.py myself, and make one small change
  to abc.py to avoid duplicate work when x.__class__ and type(x) are the
  same.
........
  r58100 | bill.janssen | 2007-09-11 01:41:24 +0200 (Tue, 11 Sep 2007) | 3 lines

  A better way of finding an open port to test with.
........
  r58101 | bill.janssen | 2007-09-11 03:09:19 +0200 (Tue, 11 Sep 2007) | 4 lines

  Make sure test_ssl doesn't reference the ssl module in a
  context where it can't be imported.
........
  r58102 | bill.janssen | 2007-09-11 04:42:07 +0200 (Tue, 11 Sep 2007) | 3 lines

  Fix some documentation bugs.
........
  r58103 | nick.coghlan | 2007-09-11 16:01:18 +0200 (Tue, 11 Sep 2007) | 1 line

  Always use the -E flag when spawning subprocesses in test_cmd_line (Issue 1056)
........
  r58106 | thomas.heller | 2007-09-11 21:17:48 +0200 (Tue, 11 Sep 2007) | 3 lines

  Disable some tests that fail on the 'ppc Debian unstable' buildbot to
  find out if they cause the segfault on the 'alpha Debian' machine.
........
  r58108 | brett.cannon | 2007-09-11 23:02:28 +0200 (Tue, 11 Sep 2007) | 6 lines

  Generators had their throw() method allowing string exceptions.  That's a
  no-no.

  Fixes issue #1147.  Need to fix 2.5 to raise a proper warning if a string
  exception is passed in.
........
  r58112 | georg.brandl | 2007-09-12 20:03:51 +0200 (Wed, 12 Sep 2007) | 3 lines

  New documentation page for the bdb module.
  (This doesn't need to be merged to Py3k.)
........
  r58114 | georg.brandl | 2007-09-12 20:05:57 +0200 (Wed, 12 Sep 2007) | 2 lines

  Bug #1152: use non-deprecated name in example.
........
  r58115 | georg.brandl | 2007-09-12 20:08:33 +0200 (Wed, 12 Sep 2007) | 2 lines

  Fix #1122: wrong return type documented for various _Size() functions.
........
  r58117 | georg.brandl | 2007-09-12 20:10:56 +0200 (Wed, 12 Sep 2007) | 2 lines

  Fix #1139: PyFile_Encoding really is PyFile_SetEncoding.
........
  r58119 | georg.brandl | 2007-09-12 20:29:18 +0200 (Wed, 12 Sep 2007) | 2 lines

  bug #1154: release memory allocated by "es" PyArg_ParseTuple format specifier.
........
  r58121 | bill.janssen | 2007-09-12 20:52:05 +0200 (Wed, 12 Sep 2007) | 1 line

  root certificate for https://svn.python.org/, used in test_ssl
........
  r58122 | georg.brandl | 2007-09-12 21:00:07 +0200 (Wed, 12 Sep 2007) | 3 lines

  Bug #1153: repr.repr() now doesn't require set and dictionary items
  to be orderable to properly represent them.
........
  r58125 | georg.brandl | 2007-09-12 21:29:28 +0200 (Wed, 12 Sep 2007) | 4 lines

  #1120: put explicit version in the shebang lines of pydoc, idle
  and smtpd.py scripts that are installed by setup.py. That way, they
  work when only "make altinstall" is used.
........
  r58139 | mark.summerfield | 2007-09-13 16:54:30 +0200 (Thu, 13 Sep 2007) | 9 lines

  Replaced variable o with obj in operator.rst because o is easy to
  confuse.

  Added a note about Python 3's collections.Mapping etc., above section
  that describes isMappingType() etc.

  Added xrefs between os, os.path, fileinput, and open().
........
  r58143 | facundo.batista | 2007-09-13 20:13:15 +0200 (Thu, 13 Sep 2007) | 7 lines


  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.
........
  r58145 | facundo.batista | 2007-09-13 20:42:09 +0200 (Thu, 13 Sep 2007) | 7 lines


  Put the parameter watchexp back in (changed watchexp from an int
  to a bool).  Also second argument to watchexp is now converted
  to Decimal, just as with all the other two-argument operations.

  Thanks Mark Dickinson.
........
  r58147 | andrew.kuchling | 2007-09-14 00:49:34 +0200 (Fri, 14 Sep 2007) | 1 line

  Add various items
........
  r58148 | andrew.kuchling | 2007-09-14 00:50:10 +0200 (Fri, 14 Sep 2007) | 1 line

  Make target unique
........
  r58154 | facundo.batista | 2007-09-14 20:58:34 +0200 (Fri, 14 Sep 2007) | 3 lines


  Included the new functions, and new descriptions.
........
  r58155 | thomas.heller | 2007-09-14 21:40:35 +0200 (Fri, 14 Sep 2007) | 2 lines

  ctypes.util.find_library uses dump(1) instead of objdump(1) on Solaris.
  Fixes issue #1777530; will backport to release25-maint.
........
  r58159 | facundo.batista | 2007-09-14 23:29:52 +0200 (Fri, 14 Sep 2007) | 3 lines


  Some additions (examples and a bit on the tutorial).
........
  r58160 | georg.brandl | 2007-09-15 18:53:36 +0200 (Sat, 15 Sep 2007) | 2 lines

  Remove bdb from the "undocumented modules" list.
........
  r58164 | bill.janssen | 2007-09-17 00:06:00 +0200 (Mon, 17 Sep 2007) | 15 lines

  Add support for asyncore server-side SSL support.  This requires
  adding the 'makefile' method to ssl.SSLSocket, and importing the
  requisite fakefile class from socket.py, and making the appropriate
  changes to it to make it use the SSL connection.

  Added sample HTTPS server to test_ssl.py, and test that uses it.

  Change SSL tests to use https://svn.python.org/, instead of
  www.sf.net and pop.gmail.com.

  Added utility function to ssl module, get_server_certificate,
  to wrap up the several things to be done to pull a certificate
  from a remote server.
........
  r58173 | bill.janssen | 2007-09-17 01:16:46 +0200 (Mon, 17 Sep 2007) | 1 line

  use binary mode when reading files for testAsyncore to make Windows happy
........
  r58175 | raymond.hettinger | 2007-09-17 02:55:00 +0200 (Mon, 17 Sep 2007) | 7 lines

  Sync-up named tuples with the latest version of the ASPN recipe.
  Allows optional commas in the field-name spec (help when named tuples are used in conjuction with sql queries).
  Adds the __fields__ attribute for introspection and to support conversion to dictionary form.
  Adds a  __replace__() method similar to str.replace() but using a named field as a target.
  Clean-up spelling and presentation in doc-strings.
........
  r58176 | brett.cannon | 2007-09-17 05:28:34 +0200 (Mon, 17 Sep 2007) | 5 lines

  Add a bunch of GIL release/acquire points in tp_print implementations and for
  PyObject_Print().

  Closes issue #1164.
........
  r58177 | sean.reifschneider | 2007-09-17 07:45:04 +0200 (Mon, 17 Sep 2007) | 2 lines

  issue1597011: Fix for bz2 module corner-case error due to error checking bug.
........
  r58180 | facundo.batista | 2007-09-17 18:26:50 +0200 (Mon, 17 Sep 2007) | 3 lines


  Decimal is updated, :)
........
  r58181 | facundo.batista | 2007-09-17 19:30:13 +0200 (Mon, 17 Sep 2007) | 5 lines


  The methods always return Decimal classes, even if they're
  executed through a subclass (thanks Mark Dickinson).
  Added a bit of testing for this.
........
  r58183 | sean.reifschneider | 2007-09-17 22:53:21 +0200 (Mon, 17 Sep 2007) | 2 lines

  issue1082: Fixing platform and system for Vista.
........
  r58185 | andrew.kuchling | 2007-09-18 03:36:16 +0200 (Tue, 18 Sep 2007) | 1 line

  Add item; sort properly
........
  r58186 | raymond.hettinger | 2007-09-18 05:33:19 +0200 (Tue, 18 Sep 2007) | 1 line

  Handle corner cased on 0-tuples and 1-tuples.  Add verbose option so people can see how it works.
........
  r58192 | georg.brandl | 2007-09-18 09:24:40 +0200 (Tue, 18 Sep 2007) | 2 lines

  A bit of reordering, also show more subheadings in the lang ref index.
........
  r58193 | facundo.batista | 2007-09-18 18:53:18 +0200 (Tue, 18 Sep 2007) | 4 lines


  Speed up of the various division operations (remainder, divide,
  divideint and divmod). Thanks Mark Dickinson.
........
  r58197 | raymond.hettinger | 2007-09-19 00:18:02 +0200 (Wed, 19 Sep 2007) | 1 line

  Cleanup docs for NamedTuple.
........
diff --git a/Lib/test/decimaltestdata/dqEncode.decTest b/Lib/test/decimaltestdata/dqEncode.decTest
new file mode 100644
index 0000000..ed3f328
--- /dev/null
+++ b/Lib/test/decimaltestdata/dqEncode.decTest
@@ -0,0 +1,470 @@
+------------------------------------------------------------------------

+-- dqEncode.decTest -- decimal sixteen-byte format testcases          --

+-- Copyright (c) IBM Corporation, 2000, 2007.  All rights reserved.   --

+------------------------------------------------------------------------

+-- Please see the document "General Decimal Arithmetic Testcases"     --

+-- at http://www2.hursley.ibm.com/decimal for the description of      --

+-- these testcases.                                                   --

+--                                                                    --

+-- These testcases are experimental ('beta' versions), and they       --

+-- may contain errors.  They are offered on an as-is basis.  In       --

+-- particular, achieving the same results as the tests here is not    --

+-- a guarantee that an implementation complies with any Standard      --

+-- or specification.  The tests are not exhaustive.                   --

+--                                                                    --

+-- Please send comments, suggestions, and corrections to the author:  --

+--   Mike Cowlishaw, IBM Fellow                                       --

+--   IBM UK, PO Box 31, Birmingham Road, Warwick CV34 5JL, UK         --

+--   mfc@uk.ibm.com                                                   --

+------------------------------------------------------------------------

+-- [Previously called decimal128.decTest]

+version: 2.56

+

+-- This set of tests is for the sixteen-byte concrete representation.

+-- Its characteristics are:

+--

+--   1 bit  sign

+--   5 bits combination field

+--  12 bits exponent continuation

+-- 110 bits coefficient continuation

+--

+-- Total exponent length 14 bits

+-- Total coefficient length 114 bits (34 digits)

+--

+-- Elimit = 12287 (maximum encoded exponent)

+-- Emax   =  6144 (largest exponent value)

+-- Emin   = -6143 (smallest exponent value)

+-- bias   =  6176 (subtracted from encoded exponent) = -Etiny

+

+-- The testcases here have only exactly representable data on the

+-- 'left-hand-side'; rounding from strings is tested in 'base'

+-- testcase groups.

+

+extended:    1

+clamp:       1

+precision:   34

+rounding:    half_up

+maxExponent: 6144

+minExponent: -6143

+

+-- General testcases

+-- (mostly derived from the Strawman 4 document and examples)

+decq001 apply   #A20780000000000000000000000003D0 -> -7.50

+decq002 apply   -7.50             -> #A20780000000000000000000000003D0

+-- derivative canonical plain strings

+decq003 apply   #A20840000000000000000000000003D0 -> -7.50E+3

+decq004 apply   -7.50E+3          -> #A20840000000000000000000000003D0

+decq005 apply   #A20800000000000000000000000003D0 -> -750

+decq006 apply   -750              -> #A20800000000000000000000000003D0

+decq007 apply   #A207c0000000000000000000000003D0 -> -75.0

+decq008 apply   -75.0             -> #A207c0000000000000000000000003D0

+decq009 apply   #A20740000000000000000000000003D0 -> -0.750

+decq010 apply   -0.750            -> #A20740000000000000000000000003D0

+decq011 apply   #A20700000000000000000000000003D0 -> -0.0750

+decq012 apply   -0.0750           -> #A20700000000000000000000000003D0

+decq013 apply   #A20680000000000000000000000003D0 -> -0.000750

+decq014 apply   -0.000750         -> #A20680000000000000000000000003D0

+decq015 apply   #A20600000000000000000000000003D0 -> -0.00000750

+decq016 apply   -0.00000750       -> #A20600000000000000000000000003D0

+decq017 apply   #A205c0000000000000000000000003D0 -> -7.50E-7

+decq018 apply   -7.50E-7          -> #A205c0000000000000000000000003D0

+

+-- Normality

+decq020 apply   1234567890123456789012345678901234   -> #2608134b9c1e28e56f3c127177823534

+decq021 apply  -1234567890123456789012345678901234   -> #a608134b9c1e28e56f3c127177823534

+decq022 apply   1111111111111111111111111111111111   -> #26080912449124491244912449124491

+

+-- Nmax and similar

+decq031 apply   9.999999999999999999999999999999999E+6144  -> #77ffcff3fcff3fcff3fcff3fcff3fcff

+decq032 apply   #77ffcff3fcff3fcff3fcff3fcff3fcff -> 9.999999999999999999999999999999999E+6144

+decq033 apply   1.234567890123456789012345678901234E+6144 -> #47ffd34b9c1e28e56f3c127177823534

+decq034 apply   #47ffd34b9c1e28e56f3c127177823534 -> 1.234567890123456789012345678901234E+6144

+-- fold-downs (more below)

+decq035 apply   1.23E+6144    -> #47ffd300000000000000000000000000 Clamped

+decq036 apply   #47ffd300000000000000000000000000       -> 1.230000000000000000000000000000000E+6144

+decq037 apply   1E+6144       -> #47ffc000000000000000000000000000 Clamped

+decq038 apply   #47ffc000000000000000000000000000       -> 1.000000000000000000000000000000000E+6144

+

+decq051 apply   12345                   -> #220800000000000000000000000049c5

+decq052 apply   #220800000000000000000000000049c5       -> 12345

+decq053 apply   1234                    -> #22080000000000000000000000000534

+decq054 apply   #22080000000000000000000000000534       -> 1234

+decq055 apply   123                     -> #220800000000000000000000000000a3

+decq056 apply   #220800000000000000000000000000a3       -> 123

+decq057 apply   12                      -> #22080000000000000000000000000012

+decq058 apply   #22080000000000000000000000000012       -> 12

+decq059 apply   1                       -> #22080000000000000000000000000001

+decq060 apply   #22080000000000000000000000000001       -> 1

+decq061 apply   1.23                    -> #220780000000000000000000000000a3

+decq062 apply   #220780000000000000000000000000a3       -> 1.23

+decq063 apply   123.45                  -> #220780000000000000000000000049c5

+decq064 apply   #220780000000000000000000000049c5       -> 123.45

+

+-- Nmin and below

+decq071 apply   1E-6143                                    -> #00084000000000000000000000000001

+decq072 apply   #00084000000000000000000000000001          -> 1E-6143

+decq073 apply   1.000000000000000000000000000000000E-6143  -> #04000000000000000000000000000000

+decq074 apply   #04000000000000000000000000000000          -> 1.000000000000000000000000000000000E-6143

+decq075 apply   1.000000000000000000000000000000001E-6143  -> #04000000000000000000000000000001

+decq076 apply   #04000000000000000000000000000001          -> 1.000000000000000000000000000000001E-6143

+

+decq077 apply   0.100000000000000000000000000000000E-6143  -> #00000800000000000000000000000000      Subnormal

+decq078 apply   #00000800000000000000000000000000          -> 1.00000000000000000000000000000000E-6144  Subnormal

+decq079 apply   0.000000000000000000000000000000010E-6143  -> #00000000000000000000000000000010      Subnormal

+decq080 apply   #00000000000000000000000000000010          -> 1.0E-6175              Subnormal

+decq081 apply   0.00000000000000000000000000000001E-6143   -> #00004000000000000000000000000001      Subnormal

+decq082 apply   #00004000000000000000000000000001          -> 1E-6175                Subnormal

+decq083 apply   0.000000000000000000000000000000001E-6143  -> #00000000000000000000000000000001      Subnormal

+decq084 apply   #00000000000000000000000000000001          -> 1E-6176                 Subnormal

+

+-- underflows cannot be tested for simple copies, check edge cases

+decq090 apply   1e-6176                  -> #00000000000000000000000000000001  Subnormal

+decq100 apply   999999999999999999999999999999999e-6176 -> #00000ff3fcff3fcff3fcff3fcff3fcff  Subnormal

+

+-- same again, negatives

+-- Nmax and similar

+decq122 apply  -9.999999999999999999999999999999999E+6144  -> #f7ffcff3fcff3fcff3fcff3fcff3fcff

+decq123 apply   #f7ffcff3fcff3fcff3fcff3fcff3fcff -> -9.999999999999999999999999999999999E+6144

+decq124 apply  -1.234567890123456789012345678901234E+6144 -> #c7ffd34b9c1e28e56f3c127177823534

+decq125 apply   #c7ffd34b9c1e28e56f3c127177823534 -> -1.234567890123456789012345678901234E+6144

+-- fold-downs (more below)

+decq130 apply  -1.23E+6144    -> #c7ffd300000000000000000000000000 Clamped

+decq131 apply   #c7ffd300000000000000000000000000       -> -1.230000000000000000000000000000000E+6144

+decq132 apply  -1E+6144       -> #c7ffc000000000000000000000000000 Clamped

+decq133 apply   #c7ffc000000000000000000000000000       -> -1.000000000000000000000000000000000E+6144

+

+decq151 apply  -12345                   -> #a20800000000000000000000000049c5

+decq152 apply   #a20800000000000000000000000049c5       -> -12345

+decq153 apply  -1234                    -> #a2080000000000000000000000000534

+decq154 apply   #a2080000000000000000000000000534       -> -1234

+decq155 apply  -123                     -> #a20800000000000000000000000000a3

+decq156 apply   #a20800000000000000000000000000a3       -> -123

+decq157 apply  -12                      -> #a2080000000000000000000000000012

+decq158 apply   #a2080000000000000000000000000012       -> -12

+decq159 apply  -1                       -> #a2080000000000000000000000000001

+decq160 apply   #a2080000000000000000000000000001       -> -1

+decq161 apply  -1.23                    -> #a20780000000000000000000000000a3

+decq162 apply   #a20780000000000000000000000000a3       -> -1.23

+decq163 apply  -123.45                  -> #a20780000000000000000000000049c5

+decq164 apply   #a20780000000000000000000000049c5       -> -123.45

+

+-- Nmin and below

+decq171 apply  -1E-6143                                    -> #80084000000000000000000000000001

+decq172 apply   #80084000000000000000000000000001          -> -1E-6143

+decq173 apply  -1.000000000000000000000000000000000E-6143  -> #84000000000000000000000000000000

+decq174 apply   #84000000000000000000000000000000          -> -1.000000000000000000000000000000000E-6143

+decq175 apply  -1.000000000000000000000000000000001E-6143  -> #84000000000000000000000000000001

+decq176 apply   #84000000000000000000000000000001          -> -1.000000000000000000000000000000001E-6143

+

+decq177 apply  -0.100000000000000000000000000000000E-6143  -> #80000800000000000000000000000000      Subnormal

+decq178 apply   #80000800000000000000000000000000          -> -1.00000000000000000000000000000000E-6144  Subnormal

+decq179 apply  -0.000000000000000000000000000000010E-6143  -> #80000000000000000000000000000010      Subnormal

+decq180 apply   #80000000000000000000000000000010          -> -1.0E-6175              Subnormal

+decq181 apply  -0.00000000000000000000000000000001E-6143   -> #80004000000000000000000000000001      Subnormal

+decq182 apply   #80004000000000000000000000000001          -> -1E-6175                Subnormal

+decq183 apply  -0.000000000000000000000000000000001E-6143  -> #80000000000000000000000000000001      Subnormal

+decq184 apply   #80000000000000000000000000000001          -> -1E-6176                 Subnormal

+

+-- underflow edge cases

+decq190 apply   -1e-6176                  -> #80000000000000000000000000000001  Subnormal

+decq200 apply   -999999999999999999999999999999999e-6176 -> #80000ff3fcff3fcff3fcff3fcff3fcff  Subnormal

+

+-- zeros

+decq400 apply   0E-8000                 -> #00000000000000000000000000000000  Clamped

+decq401 apply   0E-6177                 -> #00000000000000000000000000000000  Clamped

+decq402 apply   0E-6176                 -> #00000000000000000000000000000000

+decq403 apply   #00000000000000000000000000000000       -> 0E-6176

+decq404 apply   0.000000000000000000000000000000000E-6143  -> #00000000000000000000000000000000

+decq405 apply   #00000000000000000000000000000000       -> 0E-6176

+decq406 apply   0E-2                    -> #22078000000000000000000000000000

+decq407 apply   #22078000000000000000000000000000       -> 0.00

+decq408 apply   0                       -> #22080000000000000000000000000000

+decq409 apply   #22080000000000000000000000000000       -> 0

+decq410 apply   0E+3                    -> #2208c000000000000000000000000000

+decq411 apply   #2208c000000000000000000000000000       -> 0E+3

+decq412 apply   0E+6111                 -> #43ffc000000000000000000000000000

+decq413 apply   #43ffc000000000000000000000000000       -> 0E+6111

+-- clamped zeros...

+decq414 apply   0E+6112                 -> #43ffc000000000000000000000000000  Clamped

+decq415 apply   #43ffc000000000000000000000000000       -> 0E+6111

+decq416 apply   0E+6144                 -> #43ffc000000000000000000000000000  Clamped

+decq417 apply   #43ffc000000000000000000000000000       -> 0E+6111

+decq418 apply   0E+8000                 -> #43ffc000000000000000000000000000  Clamped

+decq419 apply   #43ffc000000000000000000000000000       -> 0E+6111

+

+-- negative zeros

+decq420 apply  -0E-8000                 -> #80000000000000000000000000000000  Clamped

+decq421 apply  -0E-6177                 -> #80000000000000000000000000000000  Clamped

+decq422 apply  -0E-6176                 -> #80000000000000000000000000000000

+decq423 apply   #80000000000000000000000000000000       -> -0E-6176

+decq424 apply  -0.000000000000000000000000000000000E-6143  -> #80000000000000000000000000000000

+decq425 apply   #80000000000000000000000000000000       -> -0E-6176

+decq426 apply  -0E-2                    -> #a2078000000000000000000000000000

+decq427 apply   #a2078000000000000000000000000000       -> -0.00

+decq428 apply  -0                       -> #a2080000000000000000000000000000

+decq429 apply   #a2080000000000000000000000000000       -> -0

+decq430 apply  -0E+3                    -> #a208c000000000000000000000000000

+decq431 apply   #a208c000000000000000000000000000       -> -0E+3

+decq432 apply  -0E+6111                 -> #c3ffc000000000000000000000000000

+decq433 apply   #c3ffc000000000000000000000000000       -> -0E+6111

+-- clamped zeros...

+decq434 apply  -0E+6112                 -> #c3ffc000000000000000000000000000  Clamped

+decq435 apply   #c3ffc000000000000000000000000000       -> -0E+6111

+decq436 apply  -0E+6144                 -> #c3ffc000000000000000000000000000  Clamped

+decq437 apply   #c3ffc000000000000000000000000000       -> -0E+6111

+decq438 apply  -0E+8000                 -> #c3ffc000000000000000000000000000  Clamped

+decq439 apply   #c3ffc000000000000000000000000000       -> -0E+6111

+

+-- exponent lengths

+decq440 apply   #22080000000000000000000000000007       -> 7

+decq441 apply   7 -> #22080000000000000000000000000007

+decq442 apply   #220a4000000000000000000000000007       -> 7E+9

+decq443 apply   7E+9 -> #220a4000000000000000000000000007

+decq444 apply   #2220c000000000000000000000000007       -> 7E+99

+decq445 apply   7E+99 -> #2220c000000000000000000000000007

+decq446 apply   #2301c000000000000000000000000007       -> 7E+999

+decq447 apply   7E+999 -> #2301c000000000000000000000000007

+decq448 apply   #43e3c000000000000000000000000007       -> 7E+5999

+decq449 apply   7E+5999 -> #43e3c000000000000000000000000007

+

+-- Specials

+decq500 apply   Infinity                          -> #78000000000000000000000000000000

+decq501 apply   #78787878787878787878787878787878 -> #78000000000000000000000000000000

+decq502 apply   #78000000000000000000000000000000 -> Infinity

+decq503 apply   #79797979797979797979797979797979 -> #78000000000000000000000000000000

+decq504 apply   #79000000000000000000000000000000 -> Infinity

+decq505 apply   #7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a -> #78000000000000000000000000000000

+decq506 apply   #7a000000000000000000000000000000 -> Infinity

+decq507 apply   #7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b -> #78000000000000000000000000000000

+decq508 apply   #7b000000000000000000000000000000 -> Infinity

+

+decq509 apply   NaN                               -> #7c000000000000000000000000000000

+decq510 apply   #7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c -> #7c003c7c7c7c7c7c7c7c7c7c7c7c7c7c

+decq511 apply   #7c000000000000000000000000000000 -> NaN

+decq512 apply   #7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d -> #7c003d7d7d7d7d7d7d7d7d7d7d7d7d7d

+decq513 apply   #7d000000000000000000000000000000 -> NaN

+decq514 apply   #7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e -> #7e003e7e7c7e7e7e7e7c7e7e7e7e7c7e

+decq515 apply   #7e000000000000000000000000000000 -> sNaN

+decq516 apply   #7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f -> #7e003f7f7c7f7f7f7f7c7f7f7f7f7c7f

+decq517 apply   #7f000000000000000000000000000000 -> sNaN

+decq518 apply   #7fffffffffffffffffffffffffffffff -> sNaN999999999999999999999999999999999

+decq519 apply   #7fffffffffffffffffffffffffffffff -> #7e000ff3fcff3fcff3fcff3fcff3fcff

+

+decq520 apply   -Infinity                         -> #f8000000000000000000000000000000

+decq521 apply   #f8787878787878787878787878787878 -> #f8000000000000000000000000000000

+decq522 apply   #f8000000000000000000000000000000 -> -Infinity

+decq523 apply   #f9797979797979797979797979797979 -> #f8000000000000000000000000000000

+decq524 apply   #f9000000000000000000000000000000 -> -Infinity

+decq525 apply   #fa7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a -> #f8000000000000000000000000000000

+decq526 apply   #fa000000000000000000000000000000 -> -Infinity

+decq527 apply   #fb7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b -> #f8000000000000000000000000000000

+decq528 apply   #fb000000000000000000000000000000 -> -Infinity

+

+decq529 apply   -NaN                              -> #fc000000000000000000000000000000

+decq530 apply   #fc7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c -> #fc003c7c7c7c7c7c7c7c7c7c7c7c7c7c

+decq531 apply   #fc000000000000000000000000000000 -> -NaN

+decq532 apply   #fd7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d -> #fc003d7d7d7d7d7d7d7d7d7d7d7d7d7d

+decq533 apply   #fd000000000000000000000000000000 -> -NaN

+decq534 apply   #fe7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e -> #fe003e7e7c7e7e7e7e7c7e7e7e7e7c7e

+decq535 apply   #fe000000000000000000000000000000 -> -sNaN

+decq536 apply   #ff7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f -> #fe003f7f7c7f7f7f7f7c7f7f7f7f7c7f

+decq537 apply   #ff000000000000000000000000000000 -> -sNaN

+decq538 apply   #ffffffffffffffffffffffffffffffff -> -sNaN999999999999999999999999999999999

+decq539 apply   #ffffffffffffffffffffffffffffffff -> #fe000ff3fcff3fcff3fcff3fcff3fcff

+

+decq540 apply   NaN               -> #7c000000000000000000000000000000

+decq541 apply   NaN0              -> #7c000000000000000000000000000000

+decq542 apply   NaN1              -> #7c000000000000000000000000000001

+decq543 apply   NaN12             -> #7c000000000000000000000000000012

+decq544 apply   NaN79             -> #7c000000000000000000000000000079

+decq545 apply   NaN12345          -> #7c0000000000000000000000000049c5

+decq546 apply   NaN123456         -> #7c000000000000000000000000028e56

+decq547 apply   NaN799799         -> #7c0000000000000000000000000f7fdf

+decq548 apply   NaN799799799799799799799799799799799  -> #7c003dff7fdff7fdff7fdff7fdff7fdf

+decq549 apply   NaN999999999999999999999999999999999  -> #7c000ff3fcff3fcff3fcff3fcff3fcff

+decq550 apply     9999999999999999999999999999999999  -> #6e080ff3fcff3fcff3fcff3fcff3fcff

+

+-- fold-down full sequence

+decq601 apply   1E+6144                 -> #47ffc000000000000000000000000000 Clamped

+decq602 apply   #47ffc000000000000000000000000000       -> 1.000000000000000000000000000000000E+6144

+decq603 apply   1E+6143                 -> #43ffc800000000000000000000000000 Clamped

+decq604 apply   #43ffc800000000000000000000000000       -> 1.00000000000000000000000000000000E+6143

+decq605 apply   1E+6142                 -> #43ffc100000000000000000000000000 Clamped

+decq606 apply   #43ffc100000000000000000000000000       -> 1.0000000000000000000000000000000E+6142

+decq607 apply   1E+6141                 -> #43ffc010000000000000000000000000 Clamped

+decq608 apply   #43ffc010000000000000000000000000       -> 1.000000000000000000000000000000E+6141

+decq609 apply   1E+6140                 -> #43ffc002000000000000000000000000 Clamped

+decq610 apply   #43ffc002000000000000000000000000       -> 1.00000000000000000000000000000E+6140

+decq611 apply   1E+6139                 -> #43ffc000400000000000000000000000 Clamped

+decq612 apply   #43ffc000400000000000000000000000       -> 1.0000000000000000000000000000E+6139

+decq613 apply   1E+6138                 -> #43ffc000040000000000000000000000 Clamped

+decq614 apply   #43ffc000040000000000000000000000       -> 1.000000000000000000000000000E+6138

+decq615 apply   1E+6137                 -> #43ffc000008000000000000000000000 Clamped

+decq616 apply   #43ffc000008000000000000000000000       -> 1.00000000000000000000000000E+6137

+decq617 apply   1E+6136                 -> #43ffc000001000000000000000000000 Clamped

+decq618 apply   #43ffc000001000000000000000000000       -> 1.0000000000000000000000000E+6136

+decq619 apply   1E+6135                 -> #43ffc000000100000000000000000000 Clamped

+decq620 apply   #43ffc000000100000000000000000000       -> 1.000000000000000000000000E+6135

+decq621 apply   1E+6134                 -> #43ffc000000020000000000000000000 Clamped

+decq622 apply   #43ffc000000020000000000000000000       -> 1.00000000000000000000000E+6134

+decq623 apply   1E+6133                 -> #43ffc000000004000000000000000000 Clamped

+decq624 apply   #43ffc000000004000000000000000000       -> 1.0000000000000000000000E+6133

+decq625 apply   1E+6132                 -> #43ffc000000000400000000000000000 Clamped

+decq626 apply   #43ffc000000000400000000000000000       -> 1.000000000000000000000E+6132

+decq627 apply   1E+6131                 -> #43ffc000000000080000000000000000 Clamped

+decq628 apply   #43ffc000000000080000000000000000       -> 1.00000000000000000000E+6131

+decq629 apply   1E+6130                 -> #43ffc000000000010000000000000000 Clamped

+decq630 apply   #43ffc000000000010000000000000000       -> 1.0000000000000000000E+6130

+decq631 apply   1E+6129                 -> #43ffc000000000001000000000000000 Clamped

+decq632 apply   #43ffc000000000001000000000000000       -> 1.000000000000000000E+6129

+decq633 apply   1E+6128                 -> #43ffc000000000000200000000000000 Clamped

+decq634 apply   #43ffc000000000000200000000000000       -> 1.00000000000000000E+6128

+decq635 apply   1E+6127                 -> #43ffc000000000000040000000000000 Clamped

+decq636 apply   #43ffc000000000000040000000000000       -> 1.0000000000000000E+6127

+decq637 apply   1E+6126                 -> #43ffc000000000000004000000000000 Clamped

+decq638 apply   #43ffc000000000000004000000000000       -> 1.000000000000000E+6126

+decq639 apply   1E+6125                 -> #43ffc000000000000000800000000000 Clamped

+decq640 apply   #43ffc000000000000000800000000000       -> 1.00000000000000E+6125

+decq641 apply   1E+6124                 -> #43ffc000000000000000100000000000 Clamped

+decq642 apply   #43ffc000000000000000100000000000       -> 1.0000000000000E+6124

+decq643 apply   1E+6123                 -> #43ffc000000000000000010000000000 Clamped

+decq644 apply   #43ffc000000000000000010000000000       -> 1.000000000000E+6123

+decq645 apply   1E+6122                 -> #43ffc000000000000000002000000000 Clamped

+decq646 apply   #43ffc000000000000000002000000000       -> 1.00000000000E+6122

+decq647 apply   1E+6121                 -> #43ffc000000000000000000400000000 Clamped

+decq648 apply   #43ffc000000000000000000400000000       -> 1.0000000000E+6121

+decq649 apply   1E+6120                 -> #43ffc000000000000000000040000000 Clamped

+decq650 apply   #43ffc000000000000000000040000000       -> 1.000000000E+6120

+decq651 apply   1E+6119                 -> #43ffc000000000000000000008000000 Clamped

+decq652 apply   #43ffc000000000000000000008000000       -> 1.00000000E+6119

+decq653 apply   1E+6118                 -> #43ffc000000000000000000001000000 Clamped

+decq654 apply   #43ffc000000000000000000001000000       -> 1.0000000E+6118

+decq655 apply   1E+6117                 -> #43ffc000000000000000000000100000 Clamped

+decq656 apply   #43ffc000000000000000000000100000       -> 1.000000E+6117

+decq657 apply   1E+6116                 -> #43ffc000000000000000000000020000 Clamped

+decq658 apply   #43ffc000000000000000000000020000       -> 1.00000E+6116

+decq659 apply   1E+6115                 -> #43ffc000000000000000000000004000 Clamped

+decq660 apply   #43ffc000000000000000000000004000       -> 1.0000E+6115

+decq661 apply   1E+6114                 -> #43ffc000000000000000000000000400 Clamped

+decq662 apply   #43ffc000000000000000000000000400       -> 1.000E+6114

+decq663 apply   1E+6113                 -> #43ffc000000000000000000000000080 Clamped

+decq664 apply   #43ffc000000000000000000000000080       -> 1.00E+6113

+decq665 apply   1E+6112                 -> #43ffc000000000000000000000000010 Clamped

+decq666 apply   #43ffc000000000000000000000000010       -> 1.0E+6112

+decq667 apply   1E+6111                 -> #43ffc000000000000000000000000001

+decq668 apply   #43ffc000000000000000000000000001       -> 1E+6111

+decq669 apply   1E+6110                 -> #43ff8000000000000000000000000001

+decq670 apply   #43ff8000000000000000000000000001       -> 1E+6110

+

+-- Selected DPD codes

+decq700 apply   #22080000000000000000000000000000       -> 0

+decq701 apply   #22080000000000000000000000000009       -> 9

+decq702 apply   #22080000000000000000000000000010       -> 10

+decq703 apply   #22080000000000000000000000000019       -> 19

+decq704 apply   #22080000000000000000000000000020       -> 20

+decq705 apply   #22080000000000000000000000000029       -> 29

+decq706 apply   #22080000000000000000000000000030       -> 30

+decq707 apply   #22080000000000000000000000000039       -> 39

+decq708 apply   #22080000000000000000000000000040       -> 40

+decq709 apply   #22080000000000000000000000000049       -> 49

+decq710 apply   #22080000000000000000000000000050       -> 50

+decq711 apply   #22080000000000000000000000000059       -> 59

+decq712 apply   #22080000000000000000000000000060       -> 60

+decq713 apply   #22080000000000000000000000000069       -> 69

+decq714 apply   #22080000000000000000000000000070       -> 70

+decq715 apply   #22080000000000000000000000000071       -> 71

+decq716 apply   #22080000000000000000000000000072       -> 72

+decq717 apply   #22080000000000000000000000000073       -> 73

+decq718 apply   #22080000000000000000000000000074       -> 74

+decq719 apply   #22080000000000000000000000000075       -> 75

+decq720 apply   #22080000000000000000000000000076       -> 76

+decq721 apply   #22080000000000000000000000000077       -> 77

+decq722 apply   #22080000000000000000000000000078       -> 78

+decq723 apply   #22080000000000000000000000000079       -> 79

+

+decq730 apply   #2208000000000000000000000000029e       -> 994

+decq731 apply   #2208000000000000000000000000029f       -> 995

+decq732 apply   #220800000000000000000000000002a0       -> 520

+decq733 apply   #220800000000000000000000000002a1       -> 521

+

+-- DPD: one of each of the huffman groups

+decq740 apply   #220800000000000000000000000003f7       -> 777

+decq741 apply   #220800000000000000000000000003f8       -> 778

+decq742 apply   #220800000000000000000000000003eb       -> 787

+decq743 apply   #2208000000000000000000000000037d       -> 877

+decq744 apply   #2208000000000000000000000000039f       -> 997

+decq745 apply   #220800000000000000000000000003bf       -> 979

+decq746 apply   #220800000000000000000000000003df       -> 799

+decq747 apply   #2208000000000000000000000000006e       -> 888

+

+

+-- DPD all-highs cases (includes the 24 redundant codes)

+decq750 apply   #2208000000000000000000000000006e       -> 888

+decq751 apply   #2208000000000000000000000000016e       -> 888

+decq752 apply   #2208000000000000000000000000026e       -> 888

+decq753 apply   #2208000000000000000000000000036e       -> 888

+decq754 apply   #2208000000000000000000000000006f       -> 889

+decq755 apply   #2208000000000000000000000000016f       -> 889

+decq756 apply   #2208000000000000000000000000026f       -> 889

+decq757 apply   #2208000000000000000000000000036f       -> 889

+

+decq760 apply   #2208000000000000000000000000007e       -> 898

+decq761 apply   #2208000000000000000000000000017e       -> 898

+decq762 apply   #2208000000000000000000000000027e       -> 898

+decq763 apply   #2208000000000000000000000000037e       -> 898

+decq764 apply   #2208000000000000000000000000007f       -> 899

+decq765 apply   #2208000000000000000000000000017f       -> 899

+decq766 apply   #2208000000000000000000000000027f       -> 899

+decq767 apply   #2208000000000000000000000000037f       -> 899

+

+decq770 apply   #220800000000000000000000000000ee       -> 988

+decq771 apply   #220800000000000000000000000001ee       -> 988

+decq772 apply   #220800000000000000000000000002ee       -> 988

+decq773 apply   #220800000000000000000000000003ee       -> 988

+decq774 apply   #220800000000000000000000000000ef       -> 989

+decq775 apply   #220800000000000000000000000001ef       -> 989

+decq776 apply   #220800000000000000000000000002ef       -> 989

+decq777 apply   #220800000000000000000000000003ef       -> 989

+

+decq780 apply   #220800000000000000000000000000fe       -> 998

+decq781 apply   #220800000000000000000000000001fe       -> 998

+decq782 apply   #220800000000000000000000000002fe       -> 998

+decq783 apply   #220800000000000000000000000003fe       -> 998

+decq784 apply   #220800000000000000000000000000ff       -> 999

+decq785 apply   #220800000000000000000000000001ff       -> 999

+decq786 apply   #220800000000000000000000000002ff       -> 999

+decq787 apply   #220800000000000000000000000003ff       -> 999

+

+-- Miscellaneous (testers' queries, etc.)

+

+decq790 apply   #2208000000000000000000000000c000       -> 30000

+decq791 apply   #22080000000000000000000000007800       -> 890000

+decq792 apply   30000 -> #2208000000000000000000000000c000

+decq793 apply   890000 -> #22080000000000000000000000007800

+

+-- values around [u]int32 edges (zeros done earlier)

+decq800 apply -2147483646  -> #a208000000000000000000008c78af46

+decq801 apply -2147483647  -> #a208000000000000000000008c78af47

+decq802 apply -2147483648  -> #a208000000000000000000008c78af48

+decq803 apply -2147483649  -> #a208000000000000000000008c78af49

+decq804 apply  2147483646  -> #2208000000000000000000008c78af46

+decq805 apply  2147483647  -> #2208000000000000000000008c78af47

+decq806 apply  2147483648  -> #2208000000000000000000008c78af48

+decq807 apply  2147483649  -> #2208000000000000000000008c78af49

+decq808 apply  4294967294  -> #22080000000000000000000115afb55a

+decq809 apply  4294967295  -> #22080000000000000000000115afb55b

+decq810 apply  4294967296  -> #22080000000000000000000115afb57a

+decq811 apply  4294967297  -> #22080000000000000000000115afb57b

+

+decq820 apply  #a208000000000000000000008c78af46 -> -2147483646

+decq821 apply  #a208000000000000000000008c78af47 -> -2147483647

+decq822 apply  #a208000000000000000000008c78af48 -> -2147483648

+decq823 apply  #a208000000000000000000008c78af49 -> -2147483649

+decq824 apply  #2208000000000000000000008c78af46 ->  2147483646

+decq825 apply  #2208000000000000000000008c78af47 ->  2147483647

+decq826 apply  #2208000000000000000000008c78af48 ->  2147483648

+decq827 apply  #2208000000000000000000008c78af49 ->  2147483649

+decq828 apply  #22080000000000000000000115afb55a ->  4294967294

+decq829 apply  #22080000000000000000000115afb55b ->  4294967295

+decq830 apply  #22080000000000000000000115afb57a ->  4294967296

+decq831 apply  #22080000000000000000000115afb57b ->  4294967297