Compatibility/Bug fixes in V7.8: Difference between revisions

From m204wiki
Jump to navigation Jump to search
mNo edit summary
Line 1: Line 1:
{{Hierarchy header}}
{{Hierarchy header}}
 
This chapter lists any compatibility issues with prior versions of
This chapter lists any compatibility issues with prior versions of
the ''Sirius Mods'' and any bugs which have been fixed in this version of
the <var class="product">Sirius Mods</var> and any bugs which have been fixed in this version of
the ''Sirius Mods'' but had not, as of the date of this release, been fixed
the <var class="product">Sirius Mods</var> but had not, as of the date of this release, been fixed
in the previous generally available version (7.7).
in the previous generally available version (7.7).
   
   
Line 18: Line 18:
===Janus SOAP XmlDoc API===
===Janus SOAP XmlDoc API===
The following backwards compatibility issues have been introduced in the
The following backwards compatibility issues have been introduced in the
[[Janus SOAP]] XmlDoc API.
<var class="product">Janus SOAP</var> [[XmlDoc API]].
====AddToRecord constraint on 'number' attribute====
====AddToRecord constraint on "number" attribute====
As described in [[Janus SOAP XmlDoc API V7.8 changes#Structure of XmlDoc for AddToRecord|Structure of XmlDoc for AddToRecord]], if the 'number' attribute of the 'Record' element in the input XmlDoc of the AddToRecord subroutine is present, it must be an integer greater than or equal to -1.
As described in [[Janus SOAP XmlDoc API V7.8 changes#Structure of XmlDoc for AddToRecord|"Structure of XmlDoc for AddToRecord"]], if the "number" attribute of the "Record" element in the input <var>XmlDoc</var> of the <var>AddToRecord</var> subroutine is present, it must be an integer greater than or equal to -1.
   
   
Previously, this attribute was ignored.
Previously, this attribute was ignored.
====DefaultURI argument of AddSubtree====
====DefaultURI argument of AddSubtree====
In some cases, an Element in a default namespace, which was
In some cases, an Element in a default namespace, which was
added to the XmlDoc by a deserialization method, will not get the
added to the <var>XmlDoc</var> by a deserialization method, will not get the
correct namespace URI when it is copied using the DefaultURI
correct namespace URI when it is copied using the <var>DefaultURI</var>
argument of the AddNamespace subroutine.
argument of the <var>AddNamespace</var> subroutine.
   
   
Note that this problem was also fixed (with the resulting
Note that this problem was also fixed (with the resulting
incompatibility) in the version 7.7 ''Sirius Mods'' by maintenance
incompatibility) in the version 7.7 <var class="product">Sirius Mods</var> by maintenance
supplied by ZAP77A4 on 17 August, 2010.
supplied by ZAP77A4 on 17 August, 2010.
   
   
For example:
For example:
<pre>
<p class="code"><nowiki>Text To %sl
    Text To %sl
<a:a xmlns:a="http://aaa" xmlns="http://ddd">
    <a:a xmlns:a="http://aaa" xmlns="http://ddd">
  <b:b xmlns:b="http://bbb">
      <b:b xmlns:b="http://bbb">
    <c>123</c>
        <c>123</c>
  </b:b>
      </b:b>
</a:a>
    </a:a>
End Text
    End Text
%in:LoadXml(%sl)
    %in:LoadXml(%sl)
%n Object XmlNode
    %n Object XmlNode
%n = %in:SelectSingleNode('/*/*')
    %n = %in:SelectSingleNode('/*/*')
%out:AddSubtree(%n, DefaultURI='u:who')
    %out:AddSubtree(%n, DefaultURI='u:who')
</nowiki></p>
</pre>
Prior to fixing this problem, the above results in:
Prior to fixing this problem, the above results in:
<pre>
<p class="output"><nowiki><b:b xmlns:b="http://bbb">
    <b:b xmlns:b="http://bbb">
  <c xmlns="http://ddd">
      <c xmlns="http://ddd">
      123
          123
  </c>
      </c>
</b:b>
    </b:b>
</nowiki></p>
</pre>
The correct result, as produced by version 7.8 of the <var class="product">Sirius Mods</var> or
The correct result, as produced by version 7.8 of the ''Sirius Mods'' or
version 7.7 with with ZAP77A4 applied,
version 7.7 with with ZAP77A4 applied,
is as follows (note the namespace for element 'c'):
is as follows (note the namespace for element <code>c</code>):
<pre>
<p class="output"><nowiki><b:b xmlns:b="http://bbb">
    <b:b xmlns:b="http://bbb">
  <c xmlns="u:who">
      <c xmlns="u:who">
      123
          123
  </c>
      </c>
</b:b>
    </b:b>
</nowiki></p>
</pre>
====Deserialization prohibits default namespace declaration with Namespace=None====
====Deserialization prohibits default namespace declaration with Namespace=None====
With the Namespace=None XmlDoc property, namespace declarations that bind a
With the <var>XmlDoc</var> <var>[[Namespace (XmlDoc property)|Namespace]]</var> property set to <var>None</var>, namespace declarations that bind a
prefix are not allowed. For example:
prefix are not allowed. For example:
<pre>
<p class="code"><nowiki><foo xmlns:p="http://p.com/>
    <foo xmlns:p="http://p.com/>
</nowiki></p>
</pre>
The above has never been allowed, due to the prohibition against colons in XML
The above has never been allowed, due to the prohibition against colons in XML
names when Namespace=None.
names when <var>Namespace</var> is <var>None</var>.
   
   
However, previous versions of the ''Sirius Mods'' allowed deserialization of a
However, previous versions of the <var class="product">Sirius Mods</var> allowed deserialization of a
default namespace declaration, for example:
default namespace declaration. For example:
<pre>
<p class="code"><nowiki><foo xmlns="http://p.com/>
    <foo xmlns="http://p.com/>
</nowiki></p>
</pre>
The above was erroneously treated as if <code>xmlns</code> were an attribute.
The above was erroneously treated as if 'xmlns' were an attribute.
   
   
Deserialization of default namespace declarations is no longer allowed.
Deserialization of default namespace declarations is no longer allowed.
   
   
This fix was also introduced in version 7.7 of the ''Sirius Mods'', via ZAP77B2.
This fix was also introduced in version 7.7 of the <var class="product">Sirius Mods</var>, via ZAP77B2.
 
===Janus SOAP ULI===
===Janus SOAP ULI===
 
====Unspace method now converts all-whitespace string to null====
====Unspace method now converts all-whitespace string to null====
Prior to Version 7.8 of the ''Sirius Mods'', the intrinsic String Unspace method compressed
Prior to Version 7.8 of the <var class="product">Sirius Mods</var>, the intrinsic <var>String</var> <var>[[Unspace (String function)|Unspace]]</var> method compressed a string consisting entirely of whitespace characters to a single whitespace character.
a string consisting entirely of whitespace characters to a single whitespace character.  
For example, note the single blank in the result of <code>PrintText {~} = X{'    ':unspace}X</code>:
For example, note the single blank in the result of <tt>PrintText {~} = X{'    ':unspace}X</tt>:
<p class="output"><nowiki>'    ':unspace = X X
  '    ':unspace = X X  
</nowiki></p>
 
In version 7.8 (and also in <var class="product">Sirius Mods</var> version 7.7 via ZAP7761), <var>Unspace</var> converts a string of whitespace characters to the null string. After this fix is in effect, the <var>[[Targeted Text statements|PrintText]]</var> statement above produces a null string:
In version 7.8 (and also in ''Sirius Mods'' version 7.7 via ZAP7761), Unspace converts a string of whitespace characters to the null string. After this fix is in effect, the [[Targeted Text statements|PrintText]] statement above produces a null string:
<p class="output"><nowiki>'    ':unspace = XX
  '    ':unspace = XX
</nowiki></p>
 
==Fixes in <var class="product">Sirius Mods</var> 7.8 but not in 7.7==
==Fixes in ''Sirius Mods'' 7.8 but not in 7.7==
This section lists fixes to functionality
This section lists fixes to functionality
existing in the ''Sirius Mods'' version
existing in the <var class="product">Sirius Mods</var> version
7.7 but which, due to the absence of customer problems, have not, as of the date
7.7 but which, due to the absence of customer problems, have not, as of the date
of the release, been fixed in that version.
of the release, been fixed in that version.
   
   
===LoadSystemMethodInfo returning Unicode methods===
===LoadSystemMethodInfo returning Unicode methods===
The LoadSystemMethodInfo now returns information for Unicode intrinsic methods.
The <var>[[LoadSystemMethodInfo (XmlDoc subroutine)|LoadSystemMethodInfo]]</var> now returns information for <var>Unicode</var> intrinsic methods.
===Fast/Reload LAI with various UAI SORT cases===
===Fast/Reload LAI with various UAI SORT cases===
The following two bugs have been fixed:
The following two bugs have been fixed:
<ul>
<ul>
<li>Possible use of UAI SORT key as hashed file sort key.
<li>Possible use of <var>UAI SORT</var> key as hashed file sort key.
<p>
For example, the above should not be allowed:
For example, the above should not be allowed:</p>
<pre>
<p class="code"><nowiki>* Fast/Unload step:
    * Fast/Unload step:
UAI SORT FOO LENGTH 3 TRUNC
    UAI SORT FOO LENGTH 3 TRUNC
...
    ...
* Fast/Reload step:
    * Fast/Reload step:
CREATE FILE (NOFORMAT) QAWORK
    CREATE FILE (NOFORMAT) QAWORK
PARAMETER FILEORG 8
    PARAMETER FILEORG 8
END
    END
OPEN QAWORK
    OPEN QAWORK
*UPDATE
    *UPDATE
IN QAWORK INITIALIZE
    IN QAWORK INITIALIZE
HASH FOO
    HASH FOO
FILELOAD -1,-1,0,3000000,10000,10000,10000,32
    FILELOAD -1,-1,0,3000000,10000,10000,10000,32
LAI
    LAI
</nowiki></p>
</pre>
   
   
The above (incorrectly) completes without any indication of error.
The above (incorrectly) completes without any indication of error.
<li>A spurious error ("TAPEI format error" or unkown field) is issued
<li>A spurious error ("TAPEI format error" or unkown field) is issued
if the first UAI SORT item is a FUEL %variable and the subsequent LAI
if the first <var>UAI SORT</var> item is a <var class="product">FUEL</var> %variable, and the subsequent <var>LAI</var>
is loaded into a non-sort/non-hash file.
is loaded into a non-sort, non-hash file.
Note that the [[Fast/Unload]] UAI output file must also contain the correct value
Note that the <var class="product">[[Fast/Unload]]</var> <var>UAI</var> output file must also contain the correct value
to fix this bug; with version 4.4 of ''Fast/Unload'', ZAP4414 is required, with
to fix this bug; with version 4.4 of <var class="product">Fast/Unload</var>, ZAP4414 is required, with
version 4.5, ZAP4518 is required.
version 4.5, ZAP4518 is required.
</ul>
</ul>
 
==Version corequisites==
==Version corequisites==
This section lists any restrictions on usage of various products
This section lists any restrictions on usage of various products
(including ''Sirius Mods'' itself) that will be imposed by use of version 7.8
(including <var class="product">Sirius Mods</var> itself) that will be imposed by use of version 7.8
of ''Sirius Mods''.
of <var class="product">Sirius Mods</var>.
   
   
<ul>
<ul>
<li>There are no corequisites associated with ''Sirius Mods'' 7.8.
<li>There are no corequisites associated with <var class="product">Sirius Mods</var> 7.8.
</ul>
</ul>
 
{{Hierarchy footer}}
{{Hierarchy footer}}

Revision as of 21:48, 11 March 2011

{{#hierarchy-top:}}

This chapter lists any compatibility issues with prior versions of the Sirius Mods and any bugs which have been fixed in this version of the Sirius Mods but had not, as of the date of this release, been fixed in the previous generally available version (7.7).

In general, backward incompatibility means that an operation which was previously performed without any indication of error, now operates, given the same inputs and conditions, in a different manner. We may not list as backwards incompatibilities those cases in which the previous behaviour, although not indicating an error, was “clearly and obviously” incorrect, and which are introduced as normal bug fixes (whether or not they had been fixed with previous maintenance).

Backwards incompatibilities

Backwards incompatibilities are described per product in the following sections.

Janus SOAP XmlDoc API

The following backwards compatibility issues have been introduced in the Janus SOAP XmlDoc API.

AddToRecord constraint on "number" attribute

As described in "Structure of XmlDoc for AddToRecord", if the "number" attribute of the "Record" element in the input XmlDoc of the AddToRecord subroutine is present, it must be an integer greater than or equal to -1.

Previously, this attribute was ignored.

DefaultURI argument of AddSubtree

In some cases, an Element in a default namespace, which was added to the XmlDoc by a deserialization method, will not get the correct namespace URI when it is copied using the DefaultURI argument of the AddNamespace subroutine.

Note that this problem was also fixed (with the resulting incompatibility) in the version 7.7 Sirius Mods by maintenance supplied by ZAP77A4 on 17 August, 2010.

For example:

Text To %sl <a:a xmlns:a="http://aaa" xmlns="http://ddd"> <b:b xmlns:b="http://bbb"> <c>123</c> </b:b> </a:a> End Text %in:LoadXml(%sl) %n Object XmlNode %n = %in:SelectSingleNode('/*/*') %out:AddSubtree(%n, DefaultURI='u:who')

Prior to fixing this problem, the above results in:

<b:b xmlns:b="http://bbb"> <c xmlns="http://ddd"> 123 </c> </b:b>

The correct result, as produced by version 7.8 of the Sirius Mods or version 7.7 with with ZAP77A4 applied, is as follows (note the namespace for element c):

<b:b xmlns:b="http://bbb"> <c xmlns="u:who"> 123 </c> </b:b>

Deserialization prohibits default namespace declaration with Namespace=None

With the XmlDoc Namespace property set to None, namespace declarations that bind a prefix are not allowed. For example:

<foo xmlns:p="http://p.com/>

The above has never been allowed, due to the prohibition against colons in XML names when Namespace is None.

However, previous versions of the Sirius Mods allowed deserialization of a default namespace declaration. For example:

<foo xmlns="http://p.com/>

The above was erroneously treated as if xmlns were an attribute.

Deserialization of default namespace declarations is no longer allowed.

This fix was also introduced in version 7.7 of the Sirius Mods, via ZAP77B2.

Janus SOAP ULI

Unspace method now converts all-whitespace string to null

Prior to Version 7.8 of the Sirius Mods, the intrinsic String Unspace method compressed a string consisting entirely of whitespace characters to a single whitespace character. For example, note the single blank in the result of PrintText {~} = X{' ':unspace}X:

' ':unspace = X X

In version 7.8 (and also in Sirius Mods version 7.7 via ZAP7761), Unspace converts a string of whitespace characters to the null string. After this fix is in effect, the PrintText statement above produces a null string:

' ':unspace = XX

Fixes in Sirius Mods 7.8 but not in 7.7

This section lists fixes to functionality existing in the Sirius Mods version 7.7 but which, due to the absence of customer problems, have not, as of the date of the release, been fixed in that version.

LoadSystemMethodInfo returning Unicode methods

The LoadSystemMethodInfo now returns information for Unicode intrinsic methods.

Fast/Reload LAI with various UAI SORT cases

The following two bugs have been fixed:

  • Possible use of UAI SORT key as hashed file sort key.

    For example, the above should not be allowed:

    * Fast/Unload step: UAI SORT FOO LENGTH 3 TRUNC ... * Fast/Reload step: CREATE FILE (NOFORMAT) QAWORK PARAMETER FILEORG 8 END OPEN QAWORK *UPDATE IN QAWORK INITIALIZE HASH FOO FILELOAD -1,-1,0,3000000,10000,10000,10000,32 LAI

    The above (incorrectly) completes without any indication of error.

  • A spurious error ("TAPEI format error" or unkown field) is issued if the first UAI SORT item is a FUEL %variable, and the subsequent LAI is loaded into a non-sort, non-hash file. Note that the Fast/Unload UAI output file must also contain the correct value to fix this bug; with version 4.4 of Fast/Unload, ZAP4414 is required, with version 4.5, ZAP4518 is required.

Version corequisites

This section lists any restrictions on usage of various products (including Sirius Mods itself) that will be imposed by use of version 7.8 of Sirius Mods.

  • There are no corequisites associated with Sirius Mods 7.8.

{{#hierarchy-bottom:}}