<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head><meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>[112081] trunk/dports/devel/zeroc-ice35</title>
</head>
<body>

<style type="text/css"><!--
#msg dl.meta { border: 1px #006 solid; background: #369; padding: 6px; color: #fff; }
#msg dl.meta dt { float: left; width: 6em; font-weight: bold; }
#msg dt:after { content:':';}
#msg dl, #msg dt, #msg ul, #msg li, #header, #footer, #logmsg { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt;  }
#msg dl a { font-weight: bold}
#msg dl a:link    { color:#fc3; }
#msg dl a:active  { color:#ff0; }
#msg dl a:visited { color:#cc6; }
h3 { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; font-weight: bold; }
#msg pre { overflow: auto; background: #ffc; border: 1px #fa0 solid; padding: 6px; }
#logmsg { background: #ffc; border: 1px #fa0 solid; padding: 1em 1em 0 1em; }
#logmsg p, #logmsg pre, #logmsg blockquote { margin: 0 0 1em 0; }
#logmsg p, #logmsg li, #logmsg dt, #logmsg dd { line-height: 14pt; }
#logmsg h1, #logmsg h2, #logmsg h3, #logmsg h4, #logmsg h5, #logmsg h6 { margin: .5em 0; }
#logmsg h1:first-child, #logmsg h2:first-child, #logmsg h3:first-child, #logmsg h4:first-child, #logmsg h5:first-child, #logmsg h6:first-child { margin-top: 0; }
#logmsg ul, #logmsg ol { padding: 0; list-style-position: inside; margin: 0 0 0 1em; }
#logmsg ul { text-indent: -1em; padding-left: 1em; }#logmsg ol { text-indent: -1.5em; padding-left: 1.5em; }
#logmsg > ul, #logmsg > ol { margin: 0 0 1em 0; }
#logmsg pre { background: #eee; padding: 1em; }
#logmsg blockquote { border: 1px solid #fa0; border-left-width: 10px; padding: 1em 1em 0 1em; background: white;}
#logmsg dl { margin: 0; }
#logmsg dt { font-weight: bold; }
#logmsg dd { margin: 0; padding: 0 0 0.5em 0; }
#logmsg dd:before { content:'\00bb';}
#logmsg table { border-spacing: 0px; border-collapse: collapse; border-top: 4px solid #fa0; border-bottom: 1px solid #fa0; background: #fff; }
#logmsg table th { text-align: left; font-weight: normal; padding: 0.2em 0.5em; border-top: 1px dotted #fa0; }
#logmsg table td { text-align: right; border-top: 1px dotted #fa0; padding: 0.2em 0.5em; }
#logmsg table thead th { text-align: center; border-bottom: 1px solid #fa0; }
#logmsg table th.Corner { text-align: left; }
#logmsg hr { border: none 0; border-top: 2px dashed #fa0; height: 1px; }
#header, #footer { color: #fff; background: #636; border: 1px #300 solid; padding: 6px; }
#patch { width: 100%; }
#patch h4 {font-family: verdana,arial,helvetica,sans-serif;font-size:10pt;padding:8px;background:#369;color:#fff;margin:0;}
#patch .propset h4, #patch .binary h4 {margin:0;}
#patch pre {padding:0;line-height:1.2em;margin:0;}
#patch .diff {width:100%;background:#eee;padding: 0 0 10px 0;overflow:auto;}
#patch .propset .diff, #patch .binary .diff  {padding:10px 0;}
#patch span {display:block;padding:0 10px;}
#patch .modfile, #patch .addfile, #patch .delfile, #patch .propset, #patch .binary, #patch .copfile {border:1px solid #ccc;margin:10px 0;}
#patch ins {background:#dfd;text-decoration:none;display:block;padding:0 10px;}
#patch del {background:#fdd;text-decoration:none;display:block;padding:0 10px;}
#patch .lines, .info {color:#888;background:#fff;}
--></style>
<div id="msg">
<dl class="meta">
<dt>Revision</dt> <dd><a href="https://trac.macports.org/changeset/112081">112081</a></dd>
<dt>Author</dt> <dd>blair@macports.org</dd>
<dt>Date</dt> <dd>2013-10-11 00:30:48 -0700 (Fri, 11 Oct 2013)</dd>
</dl>

<h3>Log Message</h3>
<pre>zeroc-ice35: new upstream 3.5.1 release.

patch-ice.cpp.config.Make.rules.Darwin.diff: regenerate for Ice 3.5.1.

patch-ice.cpp.test.Freeze.complex.Scanner.cpp.diff: delete since it is
no longer needed as upstream change to code to work around the issue it solved.

patch-3.5.0-checksum-corrections.diff: delete as upstream incorporated
this patch.

destroot: all of the install target now seems to honor DESTROOT so
keep Make's prefix variable as $prefix and not ${destroot}${prefix}.
Update moving some files and directories affected by this change.</pre>

<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkdportsdevelzerocice35Portfile">trunk/dports/devel/zeroc-ice35/Portfile</a></li>
<li><a href="#trunkdportsdevelzerocice35filespatchicecppconfigMakerulesDarwindiff">trunk/dports/devel/zeroc-ice35/files/patch-ice.cpp.config.Make.rules.Darwin.diff</a></li>
</ul>

<h3>Removed Paths</h3>
<ul>
<li><a href="#trunkdportsdevelzerocice35filespatch350checksumcorrectionsdiff">trunk/dports/devel/zeroc-ice35/files/patch-3.5.0-checksum-corrections.diff</a></li>
<li><a href="#trunkdportsdevelzerocice35filespatchicecpptestFreezecomplexScannercppdiff">trunk/dports/devel/zeroc-ice35/files/patch-ice.cpp.test.Freeze.complex.Scanner.cpp.diff</a></li>
</ul>

</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkdportsdevelzerocice35Portfile"></a>
<div class="modfile"><h4>Modified: trunk/dports/devel/zeroc-ice35/Portfile (112080 => 112081)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/dports/devel/zeroc-ice35/Portfile        2013-10-11 06:21:54 UTC (rev 112080)
+++ trunk/dports/devel/zeroc-ice35/Portfile        2013-10-11 07:30:48 UTC (rev 112081)
</span><span class="lines">@@ -4,8 +4,7 @@
</span><span class="cx"> PortSystem 1.0
</span><span class="cx"> 
</span><span class="cx"> name            zeroc-ice35
</span><del>-version         3.5.0
-revision        2
</del><ins>+version         3.5.1
</ins><span class="cx"> set branch      [join [lrange [split ${version} .] 0 1] .]
</span><span class="cx"> categories      devel
</span><span class="cx"> maintainers     blair
</span><span class="lines">@@ -37,19 +36,17 @@
</span><span class="cx"> master_sites    ${homepage}download/Ice/${branch}/
</span><span class="cx"> 
</span><span class="cx"> distname        Ice-${version}
</span><del>-checksums       sha1   8501afaf86c0d62192cfc1b83c338178f73e98e9 \
-                sha256 583d4a819d50ad8b79b1e9ad45abfa3078f981486271ca8cd9ede8fa420ff575
</del><ins>+checksums       sha1   63599ea22a1e9638a49356682c9e516b7c2c454f \
+                sha256 989e51194c6adadbd156da3288e37bad847b93b3b876502e83033b70493af392
</ins><span class="cx"> patchfiles      patch-ice.cpp.config.Make.rules.diff \
</span><span class="cx">                 patch-ice.cpp.config.Make.rules.Darwin.diff \
</span><span class="cx">                 patch-ice.cpp.src.Ice.DynamicLibrary.cpp.diff \
</span><del>-                patch-ice.cpp.test.Freeze.complex.Scanner.cpp.diff \
</del><span class="cx">                 patch-ice.cpp.test.Ice.info.AllTests.cpp.diff \
</span><span class="cx">                 patch-ice.cpp.test.IceGrid.admin.run.py.diff \
</span><span class="cx">                 patch-ice.cpp.test.IceGrid.deployer.run.py.diff \
</span><span class="cx">                 patch-ice.cpp.test.IceGrid.replicaGroup.run.py.diff \
</span><span class="cx">                 patch-ice.cpp.test.include.TestCommon.h.diff \
</span><del>-                patch-ice.scripts.TestUtil.py.diff \
-                patch-3.5.0-checksum-corrections.diff
</del><ins>+                patch-ice.scripts.TestUtil.py.diff
</ins><span class="cx"> 
</span><span class="cx"> patch.pre_args  -p1
</span><span class="cx"> platforms       darwin
</span><span class="lines">@@ -113,7 +110,7 @@
</span><span class="cx"> test.run        yes
</span><span class="cx"> test.target     test
</span><span class="cx"> 
</span><del>-destroot.target prefix=&quot;${destroot}${prefix}&quot; \
</del><ins>+destroot.target prefix=&quot;${prefix}&quot; \
</ins><span class="cx">                 embedded_runpath_prefix=&quot;${prefix}&quot; \
</span><span class="cx">                 OPTIMIZE=&quot;yes&quot; \
</span><span class="cx">                 BZIP2_HOME=&quot;${prefix}&quot; \
</span><span class="lines">@@ -131,17 +128,17 @@
</span><span class="cx"> 
</span><span class="cx">     xinstall -m 755 -d ${sharedir}/ice
</span><span class="cx">     file rename ${destroot}${prefix}/config ${sharedir}/ice
</span><ins>+    file delete -force ${sharedir}/man
+    file rename ${destroot}${prefix}/man ${sharedir}/man
</ins><span class="cx">     file rename ${destroot}${prefix}/slice ${sharedir}/slice
</span><span class="cx"> 
</span><span class="cx">     xinstall -m 755 -d ${docdir}
</span><ins>+    file rename ${destroot}${prefix}/CHANGES ${docdir}
</ins><span class="cx">     file rename ${destroot}${prefix}/ICE_LICENSE ${docdir}
</span><span class="cx">     file rename ${destroot}${prefix}/LICENSE ${docdir}
</span><ins>+    file rename ${destroot}${prefix}/RELEASE_NOTES ${docdir}
</ins><span class="cx">     file copy ${build.dir}/doc/reference ${docdir}
</span><span class="cx"> 
</span><del>-    foreach f {CHANGES RELEASE_NOTES} {
-        file copy ${worksrcpath}/${f} ${docdir}
-    }
-
</del><span class="cx">     if {[variant_isset demo_source_code]} {
</span><span class="cx">         system &quot;cd ${build.dir}/demo &amp;&amp; make clean&quot;
</span><span class="cx">         file copy ${build.dir}/demo $docdir
</span></span></pre></div>
<a id="trunkdportsdevelzerocice35filespatch350checksumcorrectionsdiff"></a>
<div class="delfile"><h4>Deleted: trunk/dports/devel/zeroc-ice35/files/patch-3.5.0-checksum-corrections.diff (112080 => 112081)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/dports/devel/zeroc-ice35/files/patch-3.5.0-checksum-corrections.diff        2013-10-11 06:21:54 UTC (rev 112080)
+++ trunk/dports/devel/zeroc-ice35/files/patch-3.5.0-checksum-corrections.diff        2013-10-11 07:30:48 UTC (rev 112081)
</span><span class="lines">@@ -1,2445 +0,0 @@
</span><del>-http://www.zeroc.com/forums/patches/6066-patch-2-ice-3-5-0-checksums-corrections.html
-
-Regenerated from the git-style patch-3.5.0-2.nix.txt patch.
-
-diff -ru Ice-3.5.0.orig/cpp/src/Slice/Checksum.cpp Ice-3.5.0/cpp/src/Slice/Checksum.cpp
---- Ice-3.5.0.orig/cpp/src/Slice/Checksum.cpp        2013-03-11 08:19:46.000000000 -0700
-+++ Ice-3.5.0/cpp/src/Slice/Checksum.cpp        2013-08-30 21:28:31.000000000 -0700
-@@ -9,6 +9,7 @@

- #include &lt;Slice/Checksum.h&gt;
- #include &lt;Slice/MD5.h&gt;
-+#include &lt;IceUtil/OutputUtil.h&gt;

- using namespace std;
- using namespace Slice;
-@@ -65,8 +66,14 @@
-     {
-         ostr &lt;&lt; &quot;class &quot;;
-     }
-+
-     ostr &lt;&lt; p-&gt;name();

-+    if(p-&gt;compactId() &gt;= 0)
-+    {
-+        ostr &lt;&lt; '(' &lt;&lt; p-&gt;compactId() &lt;&lt; ')';
-+    }
-+
-     if(!bases.empty())
-     {
-         if(!bases.front()-&gt;isInterface())
-@@ -99,9 +106,38 @@
-     if(p-&gt;hasDataMembers())
-     {
-         DataMemberList members = p-&gt;dataMembers();
-+        DataMemberList optionals;
-         for(DataMemberList::iterator q = members.begin(); q != members.end(); ++q)
-         {
--            ostr &lt;&lt; typeToString((*q)-&gt;type()) &lt;&lt; ' ' &lt;&lt; (*q)-&gt;name() &lt;&lt; endl;
-+            if((*q)-&gt;optional())
-+            {
-+                optionals.push_back(*q);
-+            }
-+            else
-+            {
-+                ostr &lt;&lt; typeToString((*q)-&gt;type()) &lt;&lt; ' ' &lt;&lt; (*q)-&gt;name() &lt;&lt; endl;
-+            }
-+        }
-+
-+        if(!optionals.empty())
-+        {
-+            //
-+            // Sort optional parameters by tag.
-+            //
-+            class SortFn
-+            {
-+            public:
-+                static bool compare(const DataMemberPtr&amp; lhs, const DataMemberPtr&amp; rhs)
-+                {
-+                    return lhs-&gt;tag() &lt; rhs-&gt;tag();
-+                }
-+            };
-+            optionals.sort(SortFn::compare);
-+
-+            for(DataMemberList::iterator q = optionals.begin(); q != optionals.end(); ++q)
-+            {
-+                ostr &lt;&lt; typeToString((*q)-&gt;type()) &lt;&lt; ' ' &lt;&lt; (*q)-&gt;tag() &lt;&lt; ' ' &lt;&lt; (*q)-&gt;name();
-+            }
-         }
-     }

-@@ -110,20 +146,63 @@
-         OperationList ops = p-&gt;operations();
-         for(OperationList::iterator q = ops.begin(); q != ops.end(); ++q)
-         {
--            ostr &lt;&lt; typeToString((*q)-&gt;returnType()) &lt;&lt; ' ' &lt;&lt; (*q)-&gt;name() &lt;&lt; '(';
-+            ostr &lt;&lt; typeToString((*q)-&gt;returnType()) &lt;&lt; ' ';
-+            if((*q)-&gt;returnIsOptional())
-+            {
-+                ostr &lt;&lt; (*q)-&gt;returnTag() &lt;&lt; ' ';
-+            }
-+            ostr &lt;&lt; (*q)-&gt;name() &lt;&lt; '(';
-             ParamDeclList params = (*q)-&gt;parameters();
-+            ParamDeclList optionals;
-             for(ParamDeclList::iterator r = params.begin(); r != params.end(); ++r)
-             {
--                if(r != params.begin())
-+                if((*r)-&gt;optional())
-                 {
--                    ostr &lt;&lt; &quot;, &quot;;
-+                    optionals.push_back(*r);
-                 }
--                if((*r)-&gt;isOutParam())
-+                else
-                 {
--                    ostr &lt;&lt; &quot;out &quot;;
-+                    if(r != params.begin())
-+                    {
-+                        ostr &lt;&lt; &quot;, &quot;;
-+                    }
-+                    if((*r)-&gt;isOutParam())
-+                    {
-+                        ostr &lt;&lt; &quot;out &quot;;
-+                    }
-+                    ostr &lt;&lt; typeToString((*r)-&gt;type()) &lt;&lt; ' ' &lt;&lt; (*r)-&gt;name();
-                 }
--                ostr &lt;&lt; typeToString((*r)-&gt;type()) &lt;&lt; ' ' &lt;&lt; (*r)-&gt;name();
-             }
-+
-+            if(!optionals.empty())
-+            {
-+                //
-+                // Sort optional parameters by tag.
-+                //
-+                class SortFn
-+                {
-+                public:
-+                    static bool compare(const ParamDeclPtr&amp; lhs, const ParamDeclPtr&amp; rhs)
-+                    {
-+                        return lhs-&gt;tag() &lt; rhs-&gt;tag();
-+                    }
-+                };
-+                optionals.sort(SortFn::compare);
-+
-+                for(ParamDeclList::iterator r = optionals.begin(); r != optionals.end(); ++r)
-+                {
-+                    if(r != optionals.begin() || params.size() &gt; optionals.size())
-+                    {
-+                        ostr &lt;&lt; &quot;, &quot;;
-+                    }
-+                    if((*r)-&gt;isOutParam())
-+                    {
-+                        ostr &lt;&lt; &quot;out &quot;;
-+                    }
-+                    ostr &lt;&lt; typeToString((*r)-&gt;type()) &lt;&lt; ' ' &lt;&lt; (*r)-&gt;tag() &lt;&lt; ' ' &lt;&lt; (*r)-&gt;name();
-+                }
-+            }
-+
-             ostr &lt;&lt; ')';
-             ExceptionList ex = (*q)-&gt;throws();
-             if(!ex.empty())
-@@ -167,9 +246,38 @@
-     ostr &lt;&lt; endl;

-     DataMemberList members = p-&gt;dataMembers();
-+    DataMemberList optionals;
-     for(DataMemberList::iterator q = members.begin(); q != members.end(); ++q)
-     {
--        ostr &lt;&lt; typeToString((*q)-&gt;type()) &lt;&lt; ' ' &lt;&lt; (*q)-&gt;name() &lt;&lt; endl;
-+        if((*q)-&gt;optional())
-+        {
-+            optionals.push_back(*q);
-+        }
-+        else
-+        {
-+            ostr &lt;&lt; typeToString((*q)-&gt;type()) &lt;&lt; ' ' &lt;&lt; (*q)-&gt;name() &lt;&lt; endl;
-+        }
-+    }
-+
-+    if(!optionals.empty())
-+    {
-+        //
-+        // Sort optional parameters by tag.
-+        //
-+        class SortFn
-+        {
-+        public:
-+            static bool compare(const DataMemberPtr&amp; lhs, const DataMemberPtr&amp; rhs)
-+            {
-+                return lhs-&gt;tag() &lt; rhs-&gt;tag();
-+            }
-+        };
-+        optionals.sort(SortFn::compare);
-+
-+        for(DataMemberList::iterator q = optionals.begin(); q != optionals.end(); ++q)
-+        {
-+            ostr &lt;&lt; typeToString((*q)-&gt;type()) &lt;&lt; ' ' &lt;&lt; (*q)-&gt;tag() &lt;&lt; ' ' &lt;&lt; (*q)-&gt;name();
-+        }
-     }

-     updateMap(p-&gt;scoped(), ostr.str());
-@@ -239,12 +347,38 @@

-     ostr &lt;&lt; &quot;enum &quot; &lt;&lt; p-&gt;name() &lt;&lt; endl;

-+    //
-+    // Check if any of the enumerators were assigned an explicit value.
-+    //
-+    const bool explicitValue = p-&gt;explicitValue();
-+
-     EnumeratorList enums = p-&gt;getEnumerators();
--    for(EnumeratorList::iterator q = enums.begin(); q != enums.end(); ++q)
-+    if(explicitValue)
-     {
--        ostr &lt;&lt; (*q)-&gt;name() &lt;&lt; endl;
-+        //
-+        // Sort enumerators by value.
-+        //
-+        class SortFn
-+        {
-+        public:
-+            static bool compare(const EnumeratorPtr&amp; lhs, const EnumeratorPtr&amp; rhs)
-+            {
-+                return lhs-&gt;value() &lt; rhs-&gt;value();
-+            }
-+        };
-+        enums.sort(SortFn::compare);
-+        for(EnumeratorList::iterator q = enums.begin(); q != enums.end(); ++q)
-+        {
-+            ostr &lt;&lt; (*q)-&gt;name() &lt;&lt; ' ' &lt;&lt; IceUtilInternal::int64ToString((*q)-&gt;value()) &lt;&lt; endl;
-+        }
-+    }
-+    else
-+    {
-+        for(EnumeratorList::iterator q = enums.begin(); q != enums.end(); ++q)
-+        {
-+            ostr &lt;&lt; (*q)-&gt;name() &lt;&lt; endl;
-+        }
-     }
--
-     updateMap(p-&gt;scoped(), ostr.str());
- }

-diff -ru Ice-3.5.0.orig/cpp/test/Ice/checksum/Types.ice Ice-3.5.0/cpp/test/Ice/checksum/Types.ice
---- Ice-3.5.0.orig/cpp/test/Ice/checksum/Types.ice        2013-03-11 08:19:47.000000000 -0700
-+++ Ice-3.5.0/cpp/test/Ice/checksum/Types.ice        2013-08-30 21:28:31.000000000 -0700
-@@ -48,6 +48,26 @@
- enum Enum4 { Enum41, Enum42, Enum43 };

- //
-+// TEST: Enum with explicit values.
-+//
-+enum EnumExplicit0 { EnumExplicit01 = 1, EnumExplicit02 = 2, EnumExplicit03 = 3 };
-+
-+//
-+// TEST: Enum with same explicit values, different order.
-+//
-+enum EnumExplicit1 { EnumExplicit11 = 1, EnumExplicit12 = 2, EnumExplicit13 = 3 };
-+
-+//
-+// TEST: Enum with different explicit values.
-+//
-+enum EnumExplicit2 { EnumExplicit21 = 1, EnumExplicit22 = 2, EnumExplicit23 = 3};
-+
-+//
-+// TEST: Enum with explicit values, removed enumerator.
-+//
-+enum EnumExplicit3 { EnumExplicit31 = 1, EnumExplicit32 = 2, EnumExplicit33 = 3};
-+
-+//
- // TEST: Same
- //
- sequence&lt;int&gt; Sequence1;
-@@ -306,6 +326,56 @@
- };

- //
-+// TEST: Exception with optional members.
-+//
-+exception OptionalEx0
-+{
-+    string firstName;
-+    optional(1) string secondName;
-+    optional(2) string emailAddress;
-+};
-+
-+//
-+// TEST: Exception with optional members, different order, same tags.
-+//
-+exception OptionalEx1
-+{
-+    string firstName;
-+    optional(1) string secondName;
-+    optional(2) string emailAddress;
-+};
-+
-+//
-+// TEST: Exception with different optional members.
-+//
-+exception OptionalEx2
-+{
-+    string firstName;
-+    string secondName;
-+    optional(1) string emailAddress;
-+};
-+
-+//
-+// TEST: Exception with different optional members.
-+//
-+exception OptionalEx3
-+{
-+    string firstName;
-+    optional(1) string secondName;
-+    optional(2) string emailAddress;
-+};
-+
-+//
-+// TEST: Exception with optional members using different tags.
-+//
-+exception OptionalEx4
-+{
-+    string firstName;
-+    optional(1) string secondName;
-+    optional(2) string emailAddress;
-+};
-+
-+//
- // TEST: Same
- //
- class BaseClass1
-@@ -405,6 +475,133 @@
- };

- //
-+// TEST: Class with compact id
-+//
-+class Compact1(1)
-+{
-+    void baseOp();
-+    void baseOp2(int i, out string s) throws Exception1;
-+};
-+
-+//
-+// TEST: Derived from class with compact id
-+//
-+class Derived1 extends Compact1
-+{
-+};
-+
-+//
-+// TEST: Same class names but different compact id
-+//
-+class Compact2(2)
-+{
-+    void baseOp();
-+    void baseOp2(int i, out string s) throws Exception1;
-+};
-+
-+//
-+// TEST: Class with optional members.
-+//
-+class Optional0
-+{
-+    string firstName;
-+    optional(1) string secondName;
-+    optional(2) string emailAddress;
-+};
-+
-+//
-+// TEST: Class with optional members, different order, same tags.
-+//
-+class Optional1
-+{
-+    string firstName;
-+    optional(1) string secondName;
-+    optional(2) string emailAddress;
-+};
-+
-+//
-+// TEST: Class with different optional members.
-+//
-+class Optional2
-+{
-+    string firstName;
-+    string secondName;
-+    optional(1) string emailAddress;
-+};
-+
-+//
-+// TEST: Class with different optional members.
-+//
-+class Optional3
-+{
-+    string firstName;
-+    optional(1) string secondName;
-+    optional(2) string emailAddress;
-+};
-+
-+//
-+// TEST: Class with optional members using different tags.
-+//
-+class Optional4
-+{
-+    string firstName;
-+    optional(1) string secondName;
-+    optional(2) string emailAddress;
-+};
-+
-+//
-+// TEST: Class with optional parameters.
-+//
-+class OptionalParameters0
-+{
-+    void op1(string firstName, optional(1) string secondName,
-+             optional(2) string emailAddress);
-+};
-+
-+//
-+// TEST: Class with optional parameters, different order.
-+//
-+class OptionalParameters1
-+{
-+    void op1(string firstName, optional(1) string secondName,
-+             optional(2) string emailAddress);
-+};
-+
-+//
-+// TEST: Class with optional parameters, different tags.
-+//
-+class OptionalParameters2
-+{
-+    void op1(string firstName, optional(1) string emailAddress,
-+             optional(2) string secondName);
-+};
-+
-+//
-+// TEST: Class with different optional parameters.
-+//
-+class OptionalParameters3
-+{
-+    void op1(string firstName, optional(1) string emailAddress,
-+             string secondName);
-+};
-+
-+//
-+// TEST: Class with optional return type.
-+//
-+class OptionalReturn0
-+{
-+    optional(1) int op();
-+};
-+
-+//
-+// TEST: Class that changes optional return type.
-+//
-+class OptionalReturn2
-+{
-+    optional(1) int op();
-+};
-+
-+//
- // TEST: Local
- //
- local enum LocalEnum { LocalEnum1, LocalEnum2, LocalEnum3 };
-@@ -435,4 +632,3 @@
- };

- };
--
-diff -ru Ice-3.5.0.orig/cpp/test/Ice/checksum/server/Types.ice Ice-3.5.0/cpp/test/Ice/checksum/server/Types.ice
---- Ice-3.5.0.orig/cpp/test/Ice/checksum/server/Types.ice        2013-03-11 08:19:47.000000000 -0700
-+++ Ice-3.5.0/cpp/test/Ice/checksum/server/Types.ice        2013-08-30 21:28:31.000000000 -0700
-@@ -43,6 +43,26 @@
- enum Enum3 { Enum32, Enum33 };

- //
-+// TEST: Enum with explicit values.
-+//
-+enum EnumExplicit0 { EnumExplicit01 = 1, EnumExplicit02 = 2, EnumExplicit03 = 3 };
-+
-+//
-+// TEST: Enum with same explicit values, different order.
-+//
-+enum EnumExplicit1 { EnumExplicit11 = 1, EnumExplicit13 = 3, EnumExplicit12 = 2 };
-+
-+//
-+// TEST: Enum with different explicit values.
-+//
-+enum EnumExplicit2 { EnumExplicit21 = 1, EnumExplicit22 = 3, EnumExplicit23 };
-+
-+//
-+// TEST: Enum with explicit values, removed enumerator.
-+//
-+enum EnumExplicit3 { EnumExplicit31 = 1, EnumExplicit32 = 2};
-+
-+//
- // TEST: Change to a different type
- //
- class Enum4 {};
-@@ -302,6 +322,57 @@
- class Exception6 {};

- //
-+// TEST: Exception with optional members.
-+//
-+exception OptionalEx0
-+{
-+    string firstName;
-+    optional(1) string secondName;
-+    optional(2) string emailAddress;
-+};
-+
-+//
-+// TEST: Exception with optional members, different order, same tags.
-+//
-+exception OptionalEx1
-+{
-+    string firstName;
-+    optional(2) string emailAddress;
-+    optional(1) string secondName;
-+};
-+
-+//
-+// TEST: Exception with different optional members.
-+//
-+exception OptionalEx2
-+{
-+    string firstName;
-+    optional(1) string secondName;
-+    string emailAddress;
-+};
-+
-+//
-+// TEST: Exception with different optional members.
-+//
-+exception OptionalEx3
-+{
-+    string firstName;
-+    optional(1) string secondName;
-+    optional(2) string emailAddress;
-+    optional(3) string phoneNumber;
-+};
-+
-+//
-+// TEST: Exception with optional members using different tags.
-+//
-+exception OptionalEx4
-+{
-+    string firstName;
-+    optional(2) string secondName;
-+    optional(1) string emailAddress;
-+};
-+
-+//
- // TEST: Same
- //
- class BaseClass1
-@@ -400,6 +471,134 @@
- };

- //
-+// TEST: Class with compact id
-+//
-+class Compact1(1)
-+{
-+    void baseOp();
-+    void baseOp2(int i, out string s) throws Exception1;
-+};
-+
-+//
-+// TEST: Derived from class with compact id
-+//
-+class Derived1 extends Compact1
-+{
-+};
-+
-+//
-+// TEST: Same class names but different compact id
-+//
-+class Compact2(3)
-+{
-+    void baseOp();
-+    void baseOp2(int i, out string s) throws Exception1;
-+};
-+
-+//
-+// TEST: Class with optional members.
-+//
-+class Optional0
-+{
-+    string firstName;
-+    optional(1) string secondName;
-+    optional(2) string emailAddress;
-+};
-+
-+//
-+// TEST: Class with optional members, different order, same tags.
-+//
-+class Optional1
-+{
-+    string firstName;
-+    optional(2) string emailAddress;
-+    optional(1) string secondName;
-+};
-+
-+//
-+// TEST: Class with different optional members.
-+//
-+class Optional2
-+{
-+    string firstName;
-+    optional(1) string secondName;
-+    string emailAddress;
-+};
-+
-+//
-+// TEST: Class with different optional members.
-+//
-+class Optional3
-+{
-+    string firstName;
-+    optional(1) string secondName;
-+    optional(2) string emailAddress;
-+    optional(3) string phoneNumber;
-+};
-+
-+//
-+// TEST: Class with optional members using different tags.
-+//
-+class Optional4
-+{
-+    string firstName;
-+    optional(2) string secondName;
-+    optional(1) string emailAddress;
-+};
-+
-+//
-+// TEST: Class with optional parameters.
-+//
-+class OptionalParameters0
-+{
-+    void op1(string firstName, optional(1) string secondName,
-+             optional(2) string emailAddress);
-+};
-+
-+//
-+// TEST: Class with optional parameters, different order.
-+//
-+class OptionalParameters1
-+{
-+    void op1(string firstName, optional(2) string emailAddress,
-+             optional(1) string secondName);
-+};
-+
-+//
-+// TEST: Class with optional parameters, different tags.
-+//
-+class OptionalParameters2
-+{
-+    void op1(string firstName, optional(2) string emailAddress,
-+             optional(1) string secondName);
-+};
-+
-+//
-+// TEST: Class with different optional parameters.
-+//
-+class OptionalParameters3
-+{
-+    void op1(string firstName, string emailAddress,
-+             optional(1) string secondName);
-+};
-+
-+//
-+// TEST: Class with optional return type.
-+//
-+class OptionalReturn0
-+{
-+    optional(1) int op();
-+};
-+
-+//
-+// TEST: Class that changes optional return type.
-+//
-+class OptionalReturn2
-+{
-+    int op();
-+};
-+
-+//
- // TEST: Local
- //
- local enum LocalEnum { LocalEnum1, LocalEnum2, LocalEnum3 };
-diff -ru Ice-3.5.0.orig/cs/test/Ice/checksum/Types.ice Ice-3.5.0/cs/test/Ice/checksum/Types.ice
---- Ice-3.5.0.orig/cs/test/Ice/checksum/Types.ice        2013-03-11 08:19:47.000000000 -0700
-+++ Ice-3.5.0/cs/test/Ice/checksum/Types.ice        2013-08-30 21:28:31.000000000 -0700
-@@ -48,6 +48,26 @@
- enum Enum4 { Enum41, Enum42, Enum43 };

- //
-+// TEST: Enum with explicit values.
-+//
-+enum EnumExplicit0 { EnumExplicit01 = 1, EnumExplicit02 = 2, EnumExplicit03 = 3 };
-+
-+//
-+// TEST: Enum with same explicit values, different order.
-+//
-+enum EnumExplicit1 { EnumExplicit11 = 1, EnumExplicit12 = 2, EnumExplicit13 = 3 };
-+
-+//
-+// TEST: Enum with different explicit values.
-+//
-+enum EnumExplicit2 { EnumExplicit21 = 1, EnumExplicit22 = 2, EnumExplicit23 = 3};
-+
-+//
-+// TEST: Enum with explicit values, removed enumerator.
-+//
-+enum EnumExplicit3 { EnumExplicit31 = 1, EnumExplicit32 = 2, EnumExplicit33 = 3};
-+
-+//
- // TEST: Same
- //
- sequence&lt;int&gt; Sequence1;
-@@ -306,6 +326,56 @@
- };

- //
-+// TEST: Exception with optional members.
-+//
-+exception OptionalEx0
-+{
-+    string firstName;
-+    optional(1) string secondName;
-+    optional(2) string emailAddress;
-+};
-+
-+//
-+// TEST: Exception with optional members, different order, same tags.
-+//
-+exception OptionalEx1
-+{
-+    string firstName;
-+    optional(1) string secondName;
-+    optional(2) string emailAddress;
-+};
-+
-+//
-+// TEST: Exception with different optional members.
-+//
-+exception OptionalEx2
-+{
-+    string firstName;
-+    string secondName;
-+    optional(1) string emailAddress;
-+};
-+
-+//
-+// TEST: Exception with different optional members.
-+//
-+exception OptionalEx3
-+{
-+    string firstName;
-+    optional(1) string secondName;
-+    optional(2) string emailAddress;
-+};
-+
-+//
-+// TEST: Exception with optional members using different tags.
-+//
-+exception OptionalEx4
-+{
-+    string firstName;
-+    optional(1) string secondName;
-+    optional(2) string emailAddress;
-+};
-+
-+//
- // TEST: Same
- //
- class BaseClass1
-@@ -405,6 +475,133 @@
- };

- //
-+// TEST: Class with compact id
-+//
-+class Compact1(1)
-+{
-+    void baseOp();
-+    void baseOp2(int i, out string s) throws Exception1;
-+};
-+
-+//
-+// TEST: Derived from class with compact id
-+//
-+class Derived1 extends Compact1
-+{
-+};
-+
-+//
-+// TEST: Same class names but different compact id
-+//
-+class Compact2(2)
-+{
-+    void baseOp();
-+    void baseOp2(int i, out string s) throws Exception1;
-+};
-+
-+//
-+// TEST: Class with optional members.
-+//
-+class Optional0
-+{
-+    string firstName;
-+    optional(1) string secondName;
-+    optional(2) string emailAddress;
-+};
-+
-+//
-+// TEST: Class with optional members, different order, same tags.
-+//
-+class Optional1
-+{
-+    string firstName;
-+    optional(1) string secondName;
-+    optional(2) string emailAddress;
-+};
-+
-+//
-+// TEST: Class with different optional members.
-+//
-+class Optional2
-+{
-+    string firstName;
-+    string secondName;
-+    optional(1) string emailAddress;
-+};
-+
-+//
-+// TEST: Class with different optional members.
-+//
-+class Optional3
-+{
-+    string firstName;
-+    optional(1) string secondName;
-+    optional(2) string emailAddress;
-+};
-+
-+//
-+// TEST: Class with optional members using different tags.
-+//
-+class Optional4
-+{
-+    string firstName;
-+    optional(1) string secondName;
-+    optional(2) string emailAddress;
-+};
-+
-+//
-+// TEST: Class with optional parameters.
-+//
-+class OptionalParameters0
-+{
-+    void op1(string firstName, optional(1) string secondName,
-+             optional(2) string emailAddress);
-+};
-+
-+//
-+// TEST: Class with optional parameters, different order.
-+//
-+class OptionalParameters1
-+{
-+    void op1(string firstName, optional(1) string secondName,
-+             optional(2) string emailAddress);
-+};
-+
-+//
-+// TEST: Class with optional parameters, different tags.
-+//
-+class OptionalParameters2
-+{
-+    void op1(string firstName, optional(1) string emailAddress,
-+             optional(2) string secondName);
-+};
-+
-+//
-+// TEST: Class with different optional parameters.
-+//
-+class OptionalParameters3
-+{
-+    void op1(string firstName, optional(1) string emailAddress,
-+             string secondName);
-+};
-+
-+//
-+// TEST: Class with optional return type.
-+//
-+class OptionalReturn0
-+{
-+    optional(1) int op();
-+};
-+
-+//
-+// TEST: Class that changes optional return type.
-+//
-+class OptionalReturn2
-+{
-+    optional(1) int op();
-+};
-+
-+//
- // TEST: Local
- //
- local enum LocalEnum { LocalEnum1, LocalEnum2, LocalEnum3 };
-diff -ru Ice-3.5.0.orig/cs/test/Ice/checksum/server/Types.ice Ice-3.5.0/cs/test/Ice/checksum/server/Types.ice
---- Ice-3.5.0.orig/cs/test/Ice/checksum/server/Types.ice        2013-03-11 08:19:47.000000000 -0700
-+++ Ice-3.5.0/cs/test/Ice/checksum/server/Types.ice        2013-08-30 21:28:31.000000000 -0700
-@@ -43,6 +43,26 @@
- enum Enum3 { Enum32, Enum33 };

- //
-+// TEST: Enum with explicit values.
-+//
-+enum EnumExplicit0 { EnumExplicit01 = 1, EnumExplicit02 = 2, EnumExplicit03 = 3 };
-+
-+//
-+// TEST: Enum with same explicit values, different order.
-+//
-+enum EnumExplicit1 { EnumExplicit11 = 1, EnumExplicit13 = 3, EnumExplicit12 = 2 };
-+
-+//
-+// TEST: Enum with different explicit values.
-+//
-+enum EnumExplicit2 { EnumExplicit21 = 1, EnumExplicit22 = 3, EnumExplicit23 };
-+
-+//
-+// TEST: Enum with explicit values, removed enumerator.
-+//
-+enum EnumExplicit3 { EnumExplicit31 = 1, EnumExplicit32 = 2};
-+
-+//
- // TEST: Change to a different type
- //
- class Enum4 {};
-@@ -302,6 +322,57 @@
- class Exception6 {};

- //
-+// TEST: Exception with optional members.
-+//
-+exception OptionalEx0
-+{
-+    string firstName;
-+    optional(1) string secondName;
-+    optional(2) string emailAddress;
-+};
-+
-+//
-+// TEST: Exception with optional members, different order, same tags.
-+//
-+exception OptionalEx1
-+{
-+    string firstName;
-+    optional(2) string emailAddress;
-+    optional(1) string secondName;
-+};
-+
-+//
-+// TEST: Exception with different optional members.
-+//
-+exception OptionalEx2
-+{
-+    string firstName;
-+    optional(1) string secondName;
-+    string emailAddress;
-+};
-+
-+//
-+// TEST: Exception with different optional members.
-+//
-+exception OptionalEx3
-+{
-+    string firstName;
-+    optional(1) string secondName;
-+    optional(2) string emailAddress;
-+    optional(3) string phoneNumber;
-+};
-+
-+//
-+// TEST: Exception with optional members using different tags.
-+//
-+exception OptionalEx4
-+{
-+    string firstName;
-+    optional(2) string secondName;
-+    optional(1) string emailAddress;
-+};
-+
-+//
- // TEST: Same
- //
- class BaseClass1
-@@ -400,6 +471,134 @@
- };

- //
-+// TEST: Class with compact id
-+//
-+class Compact1(1)
-+{
-+    void baseOp();
-+    void baseOp2(int i, out string s) throws Exception1;
-+};
-+
-+//
-+// TEST: Derived from class with compact id
-+//
-+class Derived1 extends Compact1
-+{
-+};
-+
-+//
-+// TEST: Same class names but different compact id
-+//
-+class Compact2(3)
-+{
-+    void baseOp();
-+    void baseOp2(int i, out string s) throws Exception1;
-+};
-+
-+//
-+// TEST: Class with optional members.
-+//
-+class Optional0
-+{
-+    string firstName;
-+    optional(1) string secondName;
-+    optional(2) string emailAddress;
-+};
-+
-+//
-+// TEST: Class with optional members, different order, same tags.
-+//
-+class Optional1
-+{
-+    string firstName;
-+    optional(2) string emailAddress;
-+    optional(1) string secondName;
-+};
-+
-+//
-+// TEST: Class with different optional members.
-+//
-+class Optional2
-+{
-+    string firstName;
-+    optional(1) string secondName;
-+    string emailAddress;
-+};
-+
-+//
-+// TEST: Class with different optional members.
-+//
-+class Optional3
-+{
-+    string firstName;
-+    optional(1) string secondName;
-+    optional(2) string emailAddress;
-+    optional(3) string phoneNumber;
-+};
-+
-+//
-+// TEST: Class with optional members using different tags.
-+//
-+class Optional4
-+{
-+    string firstName;
-+    optional(2) string secondName;
-+    optional(1) string emailAddress;
-+};
-+
-+//
-+// TEST: Class with optional parameters.
-+//
-+class OptionalParameters0
-+{
-+    void op1(string firstName, optional(1) string secondName,
-+             optional(2) string emailAddress);
-+};
-+
-+//
-+// TEST: Class with optional parameters, different order.
-+//
-+class OptionalParameters1
-+{
-+    void op1(string firstName, optional(2) string emailAddress,
-+             optional(1) string secondName);
-+};
-+
-+//
-+// TEST: Class with optional parameters, different tags.
-+//
-+class OptionalParameters2
-+{
-+    void op1(string firstName, optional(2) string emailAddress,
-+             optional(1) string secondName);
-+};
-+
-+//
-+// TEST: Class with different optional parameters.
-+//
-+class OptionalParameters3
-+{
-+    void op1(string firstName, string emailAddress,
-+             optional(1) string secondName);
-+};
-+
-+//
-+// TEST: Class with optional return type.
-+//
-+class OptionalReturn0
-+{
-+    optional(1) int op();
-+};
-+
-+//
-+// TEST: Class that changes optional return type.
-+//
-+class OptionalReturn2
-+{
-+    int op();
-+};
-+
-+//
- // TEST: Local
- //
- local enum LocalEnum { LocalEnum1, LocalEnum2, LocalEnum3 };
-diff -ru Ice-3.5.0.orig/java/test/Ice/checksum/Types.ice Ice-3.5.0/java/test/Ice/checksum/Types.ice
---- Ice-3.5.0.orig/java/test/Ice/checksum/Types.ice        2013-03-11 08:19:47.000000000 -0700
-+++ Ice-3.5.0/java/test/Ice/checksum/Types.ice        2013-08-30 21:28:31.000000000 -0700
-@@ -49,6 +49,26 @@
- enum Enum4 { Enum41, Enum42, Enum43 };

- //
-+// TEST: Enum with explicit values.
-+//
-+enum EnumExplicit0 { EnumExplicit01 = 1, EnumExplicit02 = 2, EnumExplicit03 = 3 };
-+
-+//
-+// TEST: Enum with same explicit values, different order.
-+//
-+enum EnumExplicit1 { EnumExplicit11 = 1, EnumExplicit12 = 2, EnumExplicit13 = 3 };
-+
-+//
-+// TEST: Enum with different explicit values.
-+//
-+enum EnumExplicit2 { EnumExplicit21 = 1, EnumExplicit22 = 2, EnumExplicit23 = 3};
-+
-+//
-+// TEST: Enum with explicit values, removed enumerator.
-+//
-+enum EnumExplicit3 { EnumExplicit31 = 1, EnumExplicit32 = 2, EnumExplicit33 = 3};
-+
-+//
- // TEST: Same
- //
- sequence&lt;int&gt; Sequence1;
-@@ -307,6 +327,56 @@
- };

- //
-+// TEST: Exception with optional members.
-+//
-+exception OptionalEx0
-+{
-+    string firstName;
-+    optional(1) string secondName;
-+    optional(2) string emailAddress;
-+};
-+
-+//
-+// TEST: Exception with optional members, different order, same tags.
-+//
-+exception OptionalEx1
-+{
-+    string firstName;
-+    optional(1) string secondName;
-+    optional(2) string emailAddress;
-+};
-+
-+//
-+// TEST: Exception with different optional members.
-+//
-+exception OptionalEx2
-+{
-+    string firstName;
-+    string secondName;
-+    optional(1) string emailAddress;
-+};
-+
-+//
-+// TEST: Exception with different optional members.
-+//
-+exception OptionalEx3
-+{
-+    string firstName;
-+    optional(1) string secondName;
-+    optional(2) string emailAddress;
-+};
-+
-+//
-+// TEST: Exception with optional members using different tags.
-+//
-+exception OptionalEx4
-+{
-+    string firstName;
-+    optional(1) string secondName;
-+    optional(2) string emailAddress;
-+};
-+
-+//
- // TEST: Same
- //
- class BaseClass1
-@@ -406,6 +476,133 @@
- };

- //
-+// TEST: Class with compact id
-+//
-+class Compact1(1)
-+{
-+    void baseOp();
-+    void baseOp2(int i, out string s) throws Exception1;
-+};
-+
-+//
-+// TEST: Derived from class with compact id
-+//
-+class Derived1 extends Compact1
-+{
-+};
-+
-+//
-+// TEST: Same class names but different compact id
-+//
-+class Compact2(2)
-+{
-+    void baseOp();
-+    void baseOp2(int i, out string s) throws Exception1;
-+};
-+
-+//
-+// TEST: Class with optional members.
-+//
-+class Optional0
-+{
-+    string firstName;
-+    optional(1) string secondName;
-+    optional(2) string emailAddress;
-+};
-+
-+//
-+// TEST: Class with optional members, different order, same tags.
-+//
-+class Optional1
-+{
-+    string firstName;
-+    optional(1) string secondName;
-+    optional(2) string emailAddress;
-+};
-+
-+//
-+// TEST: Class with different optional members.
-+//
-+class Optional2
-+{
-+    string firstName;
-+    string secondName;
-+    optional(1) string emailAddress;
-+};
-+
-+//
-+// TEST: Class with different optional members.
-+//
-+class Optional3
-+{
-+    string firstName;
-+    optional(1) string secondName;
-+    optional(2) string emailAddress;
-+};
-+
-+//
-+// TEST: Class with optional members using different tags.
-+//
-+class Optional4
-+{
-+    string firstName;
-+    optional(1) string secondName;
-+    optional(2) string emailAddress;
-+};
-+
-+//
-+// TEST: Class with optional parameters.
-+//
-+class OptionalParameters0
-+{
-+    void op1(string firstName, optional(1) string secondName,
-+             optional(2) string emailAddress);
-+};
-+
-+//
-+// TEST: Class with optional parameters, different order.
-+//
-+class OptionalParameters1
-+{
-+    void op1(string firstName, optional(1) string secondName,
-+             optional(2) string emailAddress);
-+};
-+
-+//
-+// TEST: Class with optional parameters, different tags.
-+//
-+class OptionalParameters2
-+{
-+    void op1(string firstName, optional(1) string emailAddress,
-+             optional(2) string secondName);
-+};
-+
-+//
-+// TEST: Class with different optional parameters.
-+//
-+class OptionalParameters3
-+{
-+    void op1(string firstName, optional(1) string emailAddress,
-+             string secondName);
-+};
-+
-+//
-+// TEST: Class with optional return type.
-+//
-+class OptionalReturn0
-+{
-+    optional(1) int op();
-+};
-+
-+//
-+// TEST: Class that changes optional return type.
-+//
-+class OptionalReturn2
-+{
-+    optional(1) int op();
-+};
-+
-+//
- // TEST: Local
- //
- local enum LocalEnum { LocalEnum1, LocalEnum2, LocalEnum3 };
-diff -ru Ice-3.5.0.orig/java/test/Ice/checksum/TypesServer.ice Ice-3.5.0/java/test/Ice/checksum/TypesServer.ice
---- Ice-3.5.0.orig/java/test/Ice/checksum/TypesServer.ice        2013-03-11 08:19:47.000000000 -0700
-+++ Ice-3.5.0/java/test/Ice/checksum/TypesServer.ice        2013-08-30 21:28:31.000000000 -0700
-@@ -44,6 +44,26 @@
- enum Enum3 { Enum32, Enum33 };

- //
-+// TEST: Enum with explicit values.
-+//
-+enum EnumExplicit0 { EnumExplicit01 = 1, EnumExplicit02 = 2, EnumExplicit03 = 3 };
-+
-+//
-+// TEST: Enum with same explicit values, different order.
-+//
-+enum EnumExplicit1 { EnumExplicit11 = 1, EnumExplicit13 = 3, EnumExplicit12 = 2 };
-+
-+//
-+// TEST: Enum with different explicit values.
-+//
-+enum EnumExplicit2 { EnumExplicit21 = 1, EnumExplicit22 = 3, EnumExplicit23 };
-+
-+//
-+// TEST: Enum with explicit values, removed enumerator.
-+//
-+enum EnumExplicit3 { EnumExplicit31 = 1, EnumExplicit32 = 2};
-+
-+//
- // TEST: Change to a different type
- //
- class Enum4 {};
-@@ -303,6 +323,57 @@
- class Exception6 {};

- //
-+// TEST: Exception with optional members.
-+//
-+exception OptionalEx0
-+{
-+    string firstName;
-+    optional(1) string secondName;
-+    optional(2) string emailAddress;
-+};
-+
-+//
-+// TEST: Exception with optional members, different order, same tags.
-+//
-+exception OptionalEx1
-+{
-+    string firstName;
-+    optional(2) string emailAddress;
-+    optional(1) string secondName;
-+};
-+
-+//
-+// TEST: Exception with different optional members.
-+//
-+exception OptionalEx2
-+{
-+    string firstName;
-+    optional(1) string secondName;
-+    string emailAddress;
-+};
-+
-+//
-+// TEST: Exception with different optional members.
-+//
-+exception OptionalEx3
-+{
-+    string firstName;
-+    optional(1) string secondName;
-+    optional(2) string emailAddress;
-+    optional(3) string phoneNumber;
-+};
-+
-+//
-+// TEST: Exception with optional members using different tags.
-+//
-+exception OptionalEx4
-+{
-+    string firstName;
-+    optional(2) string secondName;
-+    optional(1) string emailAddress;
-+};
-+
-+//
- // TEST: Same
- //
- class BaseClass1
-@@ -401,6 +472,134 @@
- };

- //
-+// TEST: Class with compact id
-+//
-+class Compact1(1)
-+{
-+    void baseOp();
-+    void baseOp2(int i, out string s) throws Exception1;
-+};
-+
-+//
-+// TEST: Derived from class with compact id
-+//
-+class Derived1 extends Compact1
-+{
-+};
-+
-+//
-+// TEST: Same class names but different compact id
-+//
-+class Compact2(3)
-+{
-+    void baseOp();
-+    void baseOp2(int i, out string s) throws Exception1;
-+};
-+
-+//
-+// TEST: Class with optional members.
-+//
-+class Optional0
-+{
-+    string firstName;
-+    optional(1) string secondName;
-+    optional(2) string emailAddress;
-+};
-+
-+//
-+// TEST: Class with optional members, different order, same tags.
-+//
-+class Optional1
-+{
-+    string firstName;
-+    optional(2) string emailAddress;
-+    optional(1) string secondName;
-+};
-+
-+//
-+// TEST: Class with different optional members.
-+//
-+class Optional2
-+{
-+    string firstName;
-+    optional(1) string secondName;
-+    string emailAddress;
-+};
-+
-+//
-+// TEST: Class with different optional members.
-+//
-+class Optional3
-+{
-+    string firstName;
-+    optional(1) string secondName;
-+    optional(2) string emailAddress;
-+    optional(3) string phoneNumber;
-+};
-+
-+//
-+// TEST: Class with optional members using different tags.
-+//
-+class Optional4
-+{
-+    string firstName;
-+    optional(2) string secondName;
-+    optional(1) string emailAddress;
-+};
-+
-+//
-+// TEST: Class with optional parameters.
-+//
-+class OptionalParameters0
-+{
-+    void op1(string firstName, optional(1) string secondName,
-+             optional(2) string emailAddress);
-+};
-+
-+//
-+// TEST: Class with optional parameters, different order.
-+//
-+class OptionalParameters1
-+{
-+    void op1(string firstName, optional(2) string emailAddress,
-+             optional(1) string secondName);
-+};
-+
-+//
-+// TEST: Class with optional parameters, different tags.
-+//
-+class OptionalParameters2
-+{
-+    void op1(string firstName, optional(2) string emailAddress,
-+             optional(1) string secondName);
-+};
-+
-+//
-+// TEST: Class with different optional parameters.
-+//
-+class OptionalParameters3
-+{
-+    void op1(string firstName, string emailAddress,
-+             optional(1) string secondName);
-+};
-+
-+//
-+// TEST: Class with optional return type.
-+//
-+class OptionalReturn0
-+{
-+    optional(1) int op();
-+};
-+
-+//
-+// TEST: Class that changes optional return type.
-+//
-+class OptionalReturn2
-+{
-+    int op();
-+};
-+
-+//
- // TEST: Local
- //
- local enum LocalEnum { LocalEnum1, LocalEnum2, LocalEnum3 };
-diff -ru Ice-3.5.0.orig/php/test/Ice/checksum/CTypes.ice Ice-3.5.0/php/test/Ice/checksum/CTypes.ice
---- Ice-3.5.0.orig/php/test/Ice/checksum/CTypes.ice        2013-03-11 08:19:47.000000000 -0700
-+++ Ice-3.5.0/php/test/Ice/checksum/CTypes.ice        2013-08-30 21:28:31.000000000 -0700
-@@ -48,6 +48,26 @@
- enum Enum4 { Enum41, Enum42, Enum43 };

- //
-+// TEST: Enum with explicit values.
-+//
-+enum EnumExplicit0 { EnumExplicit01 = 1, EnumExplicit02 = 2, EnumExplicit03 = 3 };
-+
-+//
-+// TEST: Enum with same explicit values, different order.
-+//
-+enum EnumExplicit1 { EnumExplicit11 = 1, EnumExplicit12 = 2, EnumExplicit13 = 3 };
-+
-+//
-+// TEST: Enum with different explicit values.
-+//
-+enum EnumExplicit2 { EnumExplicit21 = 1, EnumExplicit22 = 2, EnumExplicit23 = 3};
-+
-+//
-+// TEST: Enum with explicit values, removed enumerator.
-+//
-+enum EnumExplicit3 { EnumExplicit31 = 1, EnumExplicit32 = 2, EnumExplicit33 = 3};
-+
-+//
- // TEST: Same
- //
- sequence&lt;int&gt; Sequence1;
-@@ -306,6 +326,56 @@
- };

- //
-+// TEST: Exception with optional members.
-+//
-+exception OptionalEx0
-+{
-+    string firstName;
-+    optional(1) string secondName;
-+    optional(2) string emailAddress;
-+};
-+
-+//
-+// TEST: Exception with optional members, different order, same tags.
-+//
-+exception OptionalEx1
-+{
-+    string firstName;
-+    optional(1) string secondName;
-+    optional(2) string emailAddress;
-+};
-+
-+//
-+// TEST: Exception with different optional members.
-+//
-+exception OptionalEx2
-+{
-+    string firstName;
-+    string secondName;
-+    optional(1) string emailAddress;
-+};
-+
-+//
-+// TEST: Exception with different optional members.
-+//
-+exception OptionalEx3
-+{
-+    string firstName;
-+    optional(1) string secondName;
-+    optional(2) string emailAddress;
-+};
-+
-+//
-+// TEST: Exception with optional members using different tags.
-+//
-+exception OptionalEx4
-+{
-+    string firstName;
-+    optional(1) string secondName;
-+    optional(2) string emailAddress;
-+};
-+
-+//
- // TEST: Same
- //
- class BaseClass1
-@@ -405,6 +475,133 @@
- };

- //
-+// TEST: Class with compact id
-+//
-+class Compact1(1)
-+{
-+    void baseOp();
-+    void baseOp2(int i, out string s) throws Exception1;
-+};
-+
-+//
-+// TEST: Derived from class with compact id
-+//
-+class Derived1 extends Compact1
-+{
-+};
-+
-+//
-+// TEST: Same class names but different compact id
-+//
-+class Compact2(2)
-+{
-+    void baseOp();
-+    void baseOp2(int i, out string s) throws Exception1;
-+};
-+
-+//
-+// TEST: Class with optional members.
-+//
-+class Optional0
-+{
-+    string firstName;
-+    optional(1) string secondName;
-+    optional(2) string emailAddress;
-+};
-+
-+//
-+// TEST: Class with optional members, different order, same tags.
-+//
-+class Optional1
-+{
-+    string firstName;
-+    optional(1) string secondName;
-+    optional(2) string emailAddress;
-+};
-+
-+//
-+// TEST: Class with different optional members.
-+//
-+class Optional2
-+{
-+    string firstName;
-+    string secondName;
-+    optional(1) string emailAddress;
-+};
-+
-+//
-+// TEST: Class with different optional members.
-+//
-+class Optional3
-+{
-+    string firstName;
-+    optional(1) string secondName;
-+    optional(2) string emailAddress;
-+};
-+
-+//
-+// TEST: Class with optional members using different tags.
-+//
-+class Optional4
-+{
-+    string firstName;
-+    optional(1) string secondName;
-+    optional(2) string emailAddress;
-+};
-+
-+//
-+// TEST: Class with optional parameters.
-+//
-+class OptionalParameters0
-+{
-+    void op1(string firstName, optional(1) string secondName,
-+             optional(2) string emailAddress);
-+};
-+
-+//
-+// TEST: Class with optional parameters, different order.
-+//
-+class OptionalParameters1
-+{
-+    void op1(string firstName, optional(1) string secondName,
-+             optional(2) string emailAddress);
-+};
-+
-+//
-+// TEST: Class with optional parameters, different tags.
-+//
-+class OptionalParameters2
-+{
-+    void op1(string firstName, optional(1) string emailAddress,
-+             optional(2) string secondName);
-+};
-+
-+//
-+// TEST: Class with different optional parameters.
-+//
-+class OptionalParameters3
-+{
-+    void op1(string firstName, optional(1) string emailAddress,
-+             string secondName);
-+};
-+
-+//
-+// TEST: Class with optional return type.
-+//
-+class OptionalReturn0
-+{
-+    optional(1) int op();
-+};
-+
-+//
-+// TEST: Class that changes optional return type.
-+//
-+class OptionalReturn2
-+{
-+    optional(1) int op();
-+};
-+
-+//
- // TEST: Local
- //
- local enum LocalEnum { LocalEnum1, LocalEnum2, LocalEnum3 };
-diff -ru Ice-3.5.0.orig/py/test/Ice/checksum/CTypes.ice Ice-3.5.0/py/test/Ice/checksum/CTypes.ice
---- Ice-3.5.0.orig/py/test/Ice/checksum/CTypes.ice        2013-03-11 08:19:47.000000000 -0700
-+++ Ice-3.5.0/py/test/Ice/checksum/CTypes.ice        2013-08-30 21:28:31.000000000 -0700
-@@ -48,6 +48,26 @@
- enum Enum4 { Enum41, Enum42, Enum43 };

- //
-+// TEST: Enum with explicit values.
-+//
-+enum EnumExplicit0 { EnumExplicit01 = 1, EnumExplicit02 = 2, EnumExplicit03 = 3 };
-+
-+//
-+// TEST: Enum with same explicit values, different order.
-+//
-+enum EnumExplicit1 { EnumExplicit11 = 1, EnumExplicit12 = 2, EnumExplicit13 = 3 };
-+
-+//
-+// TEST: Enum with different explicit values.
-+//
-+enum EnumExplicit2 { EnumExplicit21 = 1, EnumExplicit22 = 2, EnumExplicit23 = 3};
-+
-+//
-+// TEST: Enum with explicit values, removed enumerator.
-+//
-+enum EnumExplicit3 { EnumExplicit31 = 1, EnumExplicit32 = 2, EnumExplicit33 = 3};
-+
-+//
- // TEST: Same
- //
- sequence&lt;int&gt; Sequence1;
-@@ -306,6 +326,56 @@
- };

- //
-+// TEST: Exception with optional members.
-+//
-+exception OptionalEx0
-+{
-+    string firstName;
-+    optional(1) string secondName;
-+    optional(2) string emailAddress;
-+};
-+
-+//
-+// TEST: Exception with optional members, different order, same tags.
-+//
-+exception OptionalEx1
-+{
-+    string firstName;
-+    optional(1) string secondName;
-+    optional(2) string emailAddress;
-+};
-+
-+//
-+// TEST: Exception with different optional members.
-+//
-+exception OptionalEx2
-+{
-+    string firstName;
-+    string secondName;
-+    optional(1) string emailAddress;
-+};
-+
-+//
-+// TEST: Exception with different optional members.
-+//
-+exception OptionalEx3
-+{
-+    string firstName;
-+    optional(1) string secondName;
-+    optional(2) string emailAddress;
-+};
-+
-+//
-+// TEST: Exception with optional members using different tags.
-+//
-+exception OptionalEx4
-+{
-+    string firstName;
-+    optional(1) string secondName;
-+    optional(2) string emailAddress;
-+};
-+
-+//
- // TEST: Same
- //
- class BaseClass1
-@@ -405,6 +475,133 @@
- };

- //
-+// TEST: Class with compact id
-+//
-+class Compact1(1)
-+{
-+    void baseOp();
-+    void baseOp2(int i, out string s) throws Exception1;
-+};
-+
-+//
-+// TEST: Derived from class with compact id
-+//
-+class Derived1 extends Compact1
-+{
-+};
-+
-+//
-+// TEST: Same class names but different compact id
-+//
-+class Compact2(2)
-+{
-+    void baseOp();
-+    void baseOp2(int i, out string s) throws Exception1;
-+};
-+
-+//
-+// TEST: Class with optional members.
-+//
-+class Optional0
-+{
-+    string firstName;
-+    optional(1) string secondName;
-+    optional(2) string emailAddress;
-+};
-+
-+//
-+// TEST: Class with optional members, different order, same tags.
-+//
-+class Optional1
-+{
-+    string firstName;
-+    optional(1) string secondName;
-+    optional(2) string emailAddress;
-+};
-+
-+//
-+// TEST: Class with different optional members.
-+//
-+class Optional2
-+{
-+    string firstName;
-+    string secondName;
-+    optional(1) string emailAddress;
-+};
-+
-+//
-+// TEST: Class with different optional members.
-+//
-+class Optional3
-+{
-+    string firstName;
-+    optional(1) string secondName;
-+    optional(2) string emailAddress;
-+};
-+
-+//
-+// TEST: Class with optional members using different tags.
-+//
-+class Optional4
-+{
-+    string firstName;
-+    optional(1) string secondName;
-+    optional(2) string emailAddress;
-+};
-+
-+//
-+// TEST: Class with optional parameters.
-+//
-+class OptionalParameters0
-+{
-+    void op1(string firstName, optional(1) string secondName,
-+             optional(2) string emailAddress);
-+};
-+
-+//
-+// TEST: Class with optional parameters, different order.
-+//
-+class OptionalParameters1
-+{
-+    void op1(string firstName, optional(1) string secondName,
-+             optional(2) string emailAddress);
-+};
-+
-+//
-+// TEST: Class with optional parameters, different tags.
-+//
-+class OptionalParameters2
-+{
-+    void op1(string firstName, optional(1) string emailAddress,
-+             optional(2) string secondName);
-+};
-+
-+//
-+// TEST: Class with different optional parameters.
-+//
-+class OptionalParameters3
-+{
-+    void op1(string firstName, optional(1) string emailAddress,
-+             string secondName);
-+};
-+
-+//
-+// TEST: Class with optional return type.
-+//
-+class OptionalReturn0
-+{
-+    optional(1) int op();
-+};
-+
-+//
-+// TEST: Class that changes optional return type.
-+//
-+class OptionalReturn2
-+{
-+    optional(1) int op();
-+};
-+
-+//
- // TEST: Local
- //
- local enum LocalEnum { LocalEnum1, LocalEnum2, LocalEnum3 };
-diff -ru Ice-3.5.0.orig/py/test/Ice/checksum/STypes.ice Ice-3.5.0/py/test/Ice/checksum/STypes.ice
---- Ice-3.5.0.orig/py/test/Ice/checksum/STypes.ice        2013-03-11 08:19:47.000000000 -0700
-+++ Ice-3.5.0/py/test/Ice/checksum/STypes.ice        2013-08-30 21:28:31.000000000 -0700
-@@ -43,6 +43,26 @@
- enum Enum3 { Enum32, Enum33 };

- //
-+// TEST: Enum with explicit values.
-+//
-+enum EnumExplicit0 { EnumExplicit01 = 1, EnumExplicit02 = 2, EnumExplicit03 = 3 };
-+
-+//
-+// TEST: Enum with same explicit values, different order.
-+//
-+enum EnumExplicit1 { EnumExplicit11 = 1, EnumExplicit13 = 3, EnumExplicit12 = 2 };
-+
-+//
-+// TEST: Enum with different explicit values.
-+//
-+enum EnumExplicit2 { EnumExplicit21 = 1, EnumExplicit22 = 3, EnumExplicit23 };
-+
-+//
-+// TEST: Enum with explicit values, removed enumerator.
-+//
-+enum EnumExplicit3 { EnumExplicit31 = 1, EnumExplicit32 = 2};
-+
-+//
- // TEST: Change to a different type
- //
- class Enum4 {};
-@@ -302,6 +322,57 @@
- class Exception6 {};

- //
-+// TEST: Exception with optional members.
-+//
-+exception OptionalEx0
-+{
-+    string firstName;
-+    optional(1) string secondName;
-+    optional(2) string emailAddress;
-+};
-+
-+//
-+// TEST: Exception with optional members, different order, same tags.
-+//
-+exception OptionalEx1
-+{
-+    string firstName;
-+    optional(2) string emailAddress;
-+    optional(1) string secondName;
-+};
-+
-+//
-+// TEST: Exception with different optional members.
-+//
-+exception OptionalEx2
-+{
-+    string firstName;
-+    optional(1) string secondName;
-+    string emailAddress;
-+};
-+
-+//
-+// TEST: Exception with different optional members.
-+//
-+exception OptionalEx3
-+{
-+    string firstName;
-+    optional(1) string secondName;
-+    optional(2) string emailAddress;
-+    optional(3) string phoneNumber;
-+};
-+
-+//
-+// TEST: Exception with optional members using different tags.
-+//
-+exception OptionalEx4
-+{
-+    string firstName;
-+    optional(2) string secondName;
-+    optional(1) string emailAddress;
-+};
-+
-+//
- // TEST: Same
- //
- class BaseClass1
-@@ -400,6 +471,134 @@
- };

- //
-+// TEST: Class with compact id
-+//
-+class Compact1(1)
-+{
-+    void baseOp();
-+    void baseOp2(int i, out string s) throws Exception1;
-+};
-+
-+//
-+// TEST: Derived from class with compact id
-+//
-+class Derived1 extends Compact1
-+{
-+};
-+
-+//
-+// TEST: Same class names but different compact id
-+//
-+class Compact2(3)
-+{
-+    void baseOp();
-+    void baseOp2(int i, out string s) throws Exception1;
-+};
-+
-+//
-+// TEST: Class with optional members.
-+//
-+class Optional0
-+{
-+    string firstName;
-+    optional(1) string secondName;
-+    optional(2) string emailAddress;
-+};
-+
-+//
-+// TEST: Class with optional members, different order, same tags.
-+//
-+class Optional1
-+{
-+    string firstName;
-+    optional(2) string emailAddress;
-+    optional(1) string secondName;
-+};
-+
-+//
-+// TEST: Class with different optional members.
-+//
-+class Optional2
-+{
-+    string firstName;
-+    optional(1) string secondName;
-+    string emailAddress;
-+};
-+
-+//
-+// TEST: Class with different optional members.
-+//
-+class Optional3
-+{
-+    string firstName;
-+    optional(1) string secondName;
-+    optional(2) string emailAddress;
-+    optional(3) string phoneNumber;
-+};
-+
-+//
-+// TEST: Class with optional members using different tags.
-+//
-+class Optional4
-+{
-+    string firstName;
-+    optional(2) string secondName;
-+    optional(1) string emailAddress;
-+};
-+
-+//
-+// TEST: Class with optional parameters.
-+//
-+class OptionalParameters0
-+{
-+    void op1(string firstName, optional(1) string secondName,
-+             optional(2) string emailAddress);
-+};
-+
-+//
-+// TEST: Class with optional parameters, different order.
-+//
-+class OptionalParameters1
-+{
-+    void op1(string firstName, optional(2) string emailAddress,
-+             optional(1) string secondName);
-+};
-+
-+//
-+// TEST: Class with optional parameters, different tags.
-+//
-+class OptionalParameters2
-+{
-+    void op1(string firstName, optional(2) string emailAddress,
-+             optional(1) string secondName);
-+};
-+
-+//
-+// TEST: Class with different optional parameters.
-+//
-+class OptionalParameters3
-+{
-+    void op1(string firstName, string emailAddress,
-+             optional(1) string secondName);
-+};
-+
-+//
-+// TEST: Class with optional return type.
-+//
-+class OptionalReturn0
-+{
-+    optional(1) int op();
-+};
-+
-+//
-+// TEST: Class that changes optional return type.
-+//
-+class OptionalReturn2
-+{
-+    int op();
-+};
-+
-+//
- // TEST: Local
- //
- local enum LocalEnum { LocalEnum1, LocalEnum2, LocalEnum3 };
-diff -ru Ice-3.5.0.orig/rb/test/Ice/checksum/CTypes.ice Ice-3.5.0/rb/test/Ice/checksum/CTypes.ice
---- Ice-3.5.0.orig/rb/test/Ice/checksum/CTypes.ice        2013-03-11 08:19:47.000000000 -0700
-+++ Ice-3.5.0/rb/test/Ice/checksum/CTypes.ice        2013-08-30 21:28:31.000000000 -0700
-@@ -48,6 +48,26 @@
- enum Enum4 { Enum41, Enum42, Enum43 };

- //
-+// TEST: Enum with explicit values.
-+//
-+enum EnumExplicit0 { EnumExplicit01 = 1, EnumExplicit02 = 2, EnumExplicit03 = 3 };
-+
-+//
-+// TEST: Enum with same explicit values, different order.
-+//
-+enum EnumExplicit1 { EnumExplicit11 = 1, EnumExplicit12 = 2, EnumExplicit13 = 3 };
-+
-+//
-+// TEST: Enum with different explicit values.
-+//
-+enum EnumExplicit2 { EnumExplicit21 = 1, EnumExplicit22 = 2, EnumExplicit23 = 3};
-+
-+//
-+// TEST: Enum with explicit values, removed enumerator.
-+//
-+enum EnumExplicit3 { EnumExplicit31 = 1, EnumExplicit32 = 2, EnumExplicit33 = 3};
-+
-+//
- // TEST: Same
- //
- sequence&lt;int&gt; Sequence1;
-@@ -306,6 +326,56 @@
- };

- //
-+// TEST: Exception with optional members.
-+//
-+exception OptionalEx0
-+{
-+    string firstName;
-+    optional(1) string secondName;
-+    optional(2) string emailAddress;
-+};
-+
-+//
-+// TEST: Exception with optional members, different order, same tags.
-+//
-+exception OptionalEx1
-+{
-+    string firstName;
-+    optional(1) string secondName;
-+    optional(2) string emailAddress;
-+};
-+
-+//
-+// TEST: Exception with different optional members.
-+//
-+exception OptionalEx2
-+{
-+    string firstName;
-+    string secondName;
-+    optional(1) string emailAddress;
-+};
-+
-+//
-+// TEST: Exception with different optional members.
-+//
-+exception OptionalEx3
-+{
-+    string firstName;
-+    optional(1) string secondName;
-+    optional(2) string emailAddress;
-+};
-+
-+//
-+// TEST: Exception with optional members using different tags.
-+//
-+exception OptionalEx4
-+{
-+    string firstName;
-+    optional(1) string secondName;
-+    optional(2) string emailAddress;
-+};
-+
-+//
- // TEST: Same
- //
- class BaseClass1
-@@ -405,6 +475,133 @@
- };

- //
-+// TEST: Class with compact id
-+//
-+class Compact1(1)
-+{
-+    void baseOp();
-+    void baseOp2(int i, out string s) throws Exception1;
-+};
-+
-+//
-+// TEST: Derived from class with compact id
-+//
-+class Derived1 extends Compact1
-+{
-+};
-+
-+//
-+// TEST: Same class names but different compact id
-+//
-+class Compact2(2)
-+{
-+    void baseOp();
-+    void baseOp2(int i, out string s) throws Exception1;
-+};
-+
-+//
-+// TEST: Class with optional members.
-+//
-+class Optional0
-+{
-+    string firstName;
-+    optional(1) string secondName;
-+    optional(2) string emailAddress;
-+};
-+
-+//
-+// TEST: Class with optional members, different order, same tags.
-+//
-+class Optional1
-+{
-+    string firstName;
-+    optional(1) string secondName;
-+    optional(2) string emailAddress;
-+};
-+
-+//
-+// TEST: Class with different optional members.
-+//
-+class Optional2
-+{
-+    string firstName;
-+    string secondName;
-+    optional(1) string emailAddress;
-+};
-+
-+//
-+// TEST: Class with different optional members.
-+//
-+class Optional3
-+{
-+    string firstName;
-+    optional(1) string secondName;
-+    optional(2) string emailAddress;
-+};
-+
-+//
-+// TEST: Class with optional members using different tags.
-+//
-+class Optional4
-+{
-+    string firstName;
-+    optional(1) string secondName;
-+    optional(2) string emailAddress;
-+};
-+
-+//
-+// TEST: Class with optional parameters.
-+//
-+class OptionalParameters0
-+{
-+    void op1(string firstName, optional(1) string secondName,
-+             optional(2) string emailAddress);
-+};
-+
-+//
-+// TEST: Class with optional parameters, different order.
-+//
-+class OptionalParameters1
-+{
-+    void op1(string firstName, optional(1) string secondName,
-+             optional(2) string emailAddress);
-+};
-+
-+//
-+// TEST: Class with optional parameters, different tags.
-+//
-+class OptionalParameters2
-+{
-+    void op1(string firstName, optional(1) string emailAddress,
-+             optional(2) string secondName);
-+};
-+
-+//
-+// TEST: Class with different optional parameters.
-+//
-+class OptionalParameters3
-+{
-+    void op1(string firstName, optional(1) string emailAddress,
-+             string secondName);
-+};
-+
-+//
-+// TEST: Class with optional return type.
-+//
-+class OptionalReturn0
-+{
-+    optional(1) int op();
-+};
-+
-+//
-+// TEST: Class that changes optional return type.
-+//
-+class OptionalReturn2
-+{
-+    optional(1) int op();
-+};
-+
-+//
- // TEST: Local
- //
- local enum LocalEnum { LocalEnum1, LocalEnum2, LocalEnum3 };
</del></span></pre></div>
<a id="trunkdportsdevelzerocice35filespatchicecppconfigMakerulesDarwindiff"></a>
<div class="modfile"><h4>Modified: trunk/dports/devel/zeroc-ice35/files/patch-ice.cpp.config.Make.rules.Darwin.diff (112080 => 112081)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/dports/devel/zeroc-ice35/files/patch-ice.cpp.config.Make.rules.Darwin.diff        2013-10-11 06:21:54 UTC (rev 112080)
+++ trunk/dports/devel/zeroc-ice35/files/patch-ice.cpp.config.Make.rules.Darwin.diff        2013-10-11 07:30:48 UTC (rev 112081)
</span><span class="lines">@@ -9,17 +9,18 @@
</span><span class="cx">    so that any Mac OS X version can be used.  Since we link against
</span><span class="cx">    MacPorts' OpenSSL, this flag is unnecessary.
</span><span class="cx"> 
</span><del>-diff -ru Ice-3.5.0.orig/cpp/config/Make.rules.Darwin Ice-3.5.0/cpp/config/Make.rules.Darwin
---- Ice-3.5.0.orig/cpp/config/Make.rules.Darwin        2013-03-11 08:19:46.000000000 -0700
-+++ Ice-3.5.0/cpp/config/Make.rules.Darwin        2013-08-29 12:42:04.000000000 -0700
-@@ -11,17 +11,11 @@
</del><ins>+diff -ru Ice-3.5.1.orig/cpp/config/Make.rules.Darwin Ice-3.5.1/cpp/config/Make.rules.Darwin
+--- Ice-3.5.1.orig/cpp/config/Make.rules.Darwin        2013-10-04 08:48:14.000000000 -0700
++++ Ice-3.5.1/cpp/config/Make.rules.Darwin        2013-10-09 13:53:53.882488377 -0700
+@@ -11,18 +11,12 @@
</ins><span class="cx">  # This file is included by Make.rules when uname is Darwin.
</span><span class="cx">  #
</span><span class="cx">  
</span><span class="cx"> -CXX                        = xcrun clang++
</span><span class="cx"> +CXX                        ?= xcrun clang++
</span><span class="cx">  
</span><del>- CXXFLAGS                = -Wall -Werror -D_REENTRANT
</del><ins>+ CPPFLAGS                 += -pthread
+ CXXFLAGS                += -Wall -Werror
</ins><span class="cx">  
</span><span class="cx">  ifeq ($(OPTIMIZE),yes)
</span><span class="cx"> -     #
</span><span class="lines">@@ -31,7 +32,7 @@
</span><span class="cx">       CXXFLAGS                := $(CXXARCHFLAGS) -O2 -DNDEBUG $(CXXFLAGS)
</span><span class="cx">  else
</span><span class="cx">       CXXFLAGS                := $(CXXARCHFLAGS) -g $(CXXFLAGS)
</span><del>-@@ -59,11 +53,6 @@
</del><ins>+@@ -66,11 +60,6 @@
</ins><span class="cx">  
</span><span class="cx">  mkshlib     = $(CXX)  -dynamiclib $(shlibldflags) -o $(1) -install_name @rpath/$(2) $(3) $(4)
</span><span class="cx">  
</span><span class="lines">@@ -40,15 +41,6 @@
</span><span class="cx"> -#
</span><span class="cx"> -OPENSSL_FLAGS           = -DMAC_OS_X_VERSION_MIN_REQUIRED=MAC_OS_X_VERSION_10_6
</span><span class="cx"> -
</span><del>- BASELIBS                = -lIceUtil -lpthread 
</del><ins>+ BASELIBS                = -lIceUtil 
</ins><span class="cx">  LIBS                        = -lIce $(BASELIBS)
</span><span class="cx">  
</span><del>-@@ -72,7 +61,7 @@
- ICEUTIL_OS_LIBS         = -lpthread
- ICE_OS_LIBS             = -ldl

--PLATFORM_HAS_READLINE   := no
-+PLATFORM_HAS_READLINE   := yes

- #
- # QT is used only for the deprecated IceGrid and IceStorm SQL plugins
</del></span></pre></div>
<a id="trunkdportsdevelzerocice35filespatchicecpptestFreezecomplexScannercppdiff"></a>
<div class="delfile"><h4>Deleted: trunk/dports/devel/zeroc-ice35/files/patch-ice.cpp.test.Freeze.complex.Scanner.cpp.diff (112080 => 112081)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/dports/devel/zeroc-ice35/files/patch-ice.cpp.test.Freeze.complex.Scanner.cpp.diff        2013-10-11 06:21:54 UTC (rev 112080)
+++ trunk/dports/devel/zeroc-ice35/files/patch-ice.cpp.test.Freeze.complex.Scanner.cpp.diff        2013-10-11 07:30:48 UTC (rev 112081)
</span><span class="lines">@@ -1,49 +0,0 @@
</span><del>-g++ 4.2.1 on Mac OS X 10.5 doesn't seem to honor the following line:
-
-#   pragma GCC diagnostic warning &quot;-Wunused-function&quot;
-
-So the following error results:
-
-/usr/bin/g++-4.2 -c -I. -I../../include -I../../../include  -g -O2 -DNDEBUG -Wall -Werror -D_REENTRANT Scanner.cpp
-cc1plus: warnings being treated as errors
-lex.yy.c:1129: warning: ?void yyunput(int, char*)? defined but not used
-make[3]: *** [Scanner.o] Error 1
-
-The patch only comments out the declaration and definition of yyunput,
-it doesn't comment out
-
-#define unput(c) yyunput( c, (yytext_ptr)  )
-
-because if it is unused, then unput() should not be inadvertently
-used.
-
-
-diff -ru Ice-3.5.0.orig/cpp/test/Freeze/complex/Scanner.cpp Ice-3.5.0/cpp/test/Freeze/complex/Scanner.cpp
---- Ice-3.5.0.orig/cpp/test/Freeze/complex/Scanner.cpp        2013-03-11 08:19:46.000000000 -0700
-+++ Ice-3.5.0/cpp/test/Freeze/complex/Scanner.cpp        2013-03-14 19:43:54.497251598 -0700
-@@ -569,7 +569,9 @@
- #endif
- #endif

-+#if 0
-     static void yyunput (int c,char *buf_ptr  );
-+#endif
-     
- #ifndef yytext_ptr
- static void yy_flex_strncpy (char *,yyconst char *,int );
-@@ -1127,6 +1129,7 @@
-         return yy_is_jam ? 0 : yy_current_state;
- }

-+#if 0
-     static void yyunput (int c, register char * yy_bp )
- {
-         register char *yy_cp;
-@@ -1163,6 +1166,7 @@
-         (yy_hold_char) = *yy_cp;
-         (yy_c_buf_p) = yy_cp;
- }
-+#endif

- #ifndef YY_NO_INPUT
- #ifdef __cplusplus
</del></span></pre>
</div>
</div>

</body>
</html>