Release notes for Sirius Mods V8.1: Difference between revisions

From m204wiki
Jump to navigation Jump to search
mNo edit summary
 
(12 intermediate revisions by 4 users not shown)
Line 1: Line 1:
These release notes list the enhancements and other changes contained in <var class="product">Sirius Mods</var> version 8.1, <b><i>which is still in development</i></b>. Until the the commercial release of the software, Sirius reserves the
These release notes list the enhancements and other changes contained in <var class="product">Sirius Mods</var> version 8.1, which was released on November 24, 2012. The immediately preceding version of the <var class="product">Sirius Mods</var> is:
right to remove or change anything described herein.
The immediately preceding <!--and following -->version<!--s--> of the <var class="product">Sirius Mods</var> is<!--are-->:
<ul>
<ul>
<li>Version 8.0, available in April, 2012 &mdash; [[Release notes for Sirius Mods V8.0|Release notes]]
<li>Version 8.0, available in April, 2012 &mdash; [[Release notes for Sirius Mods V8.0|Release notes]]</li>
<!--
<li>Version 8.2, available in mmmmm, 20yy &mdash; [[Release notes for Sirius Mods V8.2|Release notes]]
-->
</ul>
</ul>
   
   
==Changes to classes and methods==
==Changes to classes and methods==
   
   
<h3 class="relno">Daemon class changes</h3>
===Daemon class changes===
====New subroutine: ReturnToMaster====
====New subroutine: ReturnToMaster====
<var>[[ReturnToMaster (Daemon_subroutine)|ReturnToMaster]]</var> returns control from a daemon thread to its master thread inside a <var class="product">User Language</var> request.
<var>[[ReturnToMaster (Daemon_subroutine)|ReturnToMaster]]</var> returns control from a daemon thread to its master thread inside a <var class="product">User Language</var> request.
Line 32: Line 26:
The <var>[[New (Daemon constructor)|New]]</var> method's optional, named parameter, <var>OpenAll</var> opens in the daemon thread all the files and groups that are open on the master thread.
The <var>[[New (Daemon constructor)|New]]</var> method's optional, named parameter, <var>OpenAll</var> opens in the daemon thread all the files and groups that are open on the master thread.
   
   
<h3 class="relno">New class: ScreenReadError</h3>
===New class: ScreenReadError===
The <var>[[ScreenReadError class|ScreenReadError]]</var> class [[??]]
The <var>[[ScreenReadError class|ScreenReadError]]</var> class [[??]]
   
   
<h3 class="relno">New exception class: RecordLockingConflict</h3>
===New exception class: RecordLockingConflict===
The <var>[[RecordLockingConflict class|RecordLockingConflict]]</var> exception class catches record locking conflict errors thrown by methods in the [[File classes|file classes]].
The <var>[[RecordLockingConflict class|RecordLockingConflict]]</var> exception class catches record locking conflict errors thrown by methods in the [[File classes|file classes]].
   
   
<h3 class="relno">New enumeration methods: FromOrdinal and NumberOfValues</h3>
===New enumeration methods: FromOrdinal and NumberOfValues===
The <var>[[Enumerations#Using_the_FromOrdinal_and_NumberOfValues_methods|FromOrdinal]]</var> and <var>[[Enumerations#Using_the_FromOrdinal_and_NumberOfValues_methods|NumberOfValues]]</var> methods make it easy to enumerate all the values in an enumeration class without having to maintain code that has a list of all the values.
The <var>[[Enumerations#Using_the_FromOrdinal_and_NumberOfValues_methods|FromOrdinal]]</var> and <var>[[Enumerations#Using_the_FromOrdinal_and_NumberOfValues_methods|NumberOfValues]]</var> methods make it easy to enumerate all the values in an enumeration class without having to maintain code that has a list of all the values.
   
   
==Other feature changes==
==Other feature changes==
<h3 class="relno">User Language enhancements</h3>
 
===User Language enhancements===
 
====Implicit concatenation supported for $functions====
====Implicit concatenation supported for $functions====
$functions not preceded by an operator are now concatenated with the preceding expression. This is known as [[Implicit concatenation|implicit concatenation]]. For example the following concatenates the value of two global variables returned by <code>$getg</code> with the string "and" in the middle:
$functions not preceded by an operator are now concatenated with the preceding expression. This is known as [[Implicit concatenation|implicit concatenation]]. For example the following concatenates the value of two global variables returned by <code>$getg</code> with the string "and" in the middle:
<p class="code">%foo = $getg('GLOBALA') " and " $getg('GLOBALB')</p>
<p class="code">%foo = $getg('GLOBALA') " and " $getg('GLOBALB')</p>
<h3 class="relno">Model 204 command and parameter changes</h3>
 
===Model 204 command and parameter changes===
 
====New system parameter: RECLOCKO====
====New system parameter: RECLOCKO====
The <var>[[RECLOCKO parameter|RECLOCKO]]</var> (RECord LOCKing Options) parameter specifies the information messages that are issued for some or all record locking conflicts. The messages always include user, file, and record number, and they optionally include locking level, time lock obtained, original user number, whether its a pending update lock, etc.
The <var>[[RECLOCKO parameter|RECLOCKO]]</var> (RECord LOCKing Options) parameter specifies the information messages that are issued for some or all record locking conflicts. The messages always include user, file, and record number, and they optionally include locking level, time lock obtained, original user number, whether its a pending update lock, etc.
Line 52: Line 50:
====New system parameter: SNAPLIMD====
====New system parameter: SNAPLIMD====
The <var>[[SNAPLIMD parameter|SNAPLIMD]]</var> parameter specifies the maximum number of snaps to generate for any particular zap title.  The default is 3.  The purpose of this parameter is to allow <var>SNAPLIM</var> to be set to a higher value than previously, without concern that some bug might repeatedly cause snaps and consume output resources.
The <var>[[SNAPLIMD parameter|SNAPLIMD]]</var> parameter specifies the maximum number of snaps to generate for any particular zap title.  The default is 3.  The purpose of this parameter is to allow <var>SNAPLIM</var> to be set to a higher value than previously, without concern that some bug might repeatedly cause snaps and consume output resources.
   
<div id="funprmu"></div>
====Changes to FUNPARM system parameter, and new FUNPRMU user parameter====
The <var>[[FUNPARM parameter|FUNPARM]]</var> system parameter can now specify that report information from all <var class="product">Fast/Unload User Language Interface</var> jobs is to be collected in the <code>FUNAUDIT</code> dataset or on the <var class="product">Model 204</var> audit trail.
 
The same information can be collected on a per-user basis, using the new <var>[[FUNPRMU parameter|FUNPRMU]]</var> user parameter.
 
Note that these parameter bits are ignored if the corresponding support is not available in the version of <var class="product">Fast/Unload</var> being used. That support is being delivered in version 4.7.
 
===Janus Web Server enhancements===
 
====New Janus port parameters====
Multiple new port parameters are added:
<ul>
<li>[[XMLSCREEN and NOXMLSCREEN (JANUS DEFINE parameters)|XMLSCREEN and NOXMLSCREEN]] </li>
 
<li>[[XMLSCREENFIELD and NOXMLSCREENFIELD (JANUS_DEFINE_parameters)|XMLSCREENFIELD and NOXMLSCREENFIELD]] </li>
 
<li>[[XMLNULLSCANCEL and XMLNULLSSEND (JANUS DEFINE parameters)|XMLNULLSCANCEL and XMLNULLSSEND]] </li>
 
<li>[[XMLNULLSSTRIP and XMLNULLSBLANK (JANUS DEFINE parameters)|XMLNULLSSTRIP and XMLNULLSBLANK]] </li>
</ul>
 
==Compatibility and fixes==
==Compatibility and fixes==
<h3 class="relno">Model 204 support</h3>
===Model 204 support===
<var class="product">Sirius Mods</var> version 8.1 supports <var class="product">Model 204</var> V7R1, V7R2, and V7R4.
<var class="product">Sirius Mods</var> version 8.1 supports <var class="product">Model 204</var> V7R1 and V7R4.
 
<h3 class="relno">Backwards compatibility with Sirius Mods 8.0 and Sirius Mods 8.1</h3>
===Backwards compatibility with Sirius Mods 8.0 and Sirius Mods 8.1===
<!-- ***  No incompatibilities, so none listed, and no zaps: ***
<!-- ***  No incompatibilities, so none listed, and no zaps: ***
Sorry that's not the case; if it were, comment out the following paragraph:
-->
This section lists any differences in processing that result from execution with Sirius Mods version 8.1, as compared with the same inputs to Sirius Mods version 8.0 at current maintenance levels.
This section lists any differences in processing that result from execution with Sirius Mods version 8.1, as compared with the same inputs to Sirius Mods version 8.0 at current maintenance levels.
In some cases zaps have been delivered to change the behavior to be the same as the version 8.1 behavior; these cases are explicitly listed.
In some cases zaps have been delivered to change the behavior to be the same as the version 8.1 behavior; these cases are explicitly listed.
*** -->
   
   
In general, backwards incompatibility means that an operation which was
In general, backwards 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).
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).
<!--
''No incompatibilies have been introduced'' in <var class="product">Sirius Mods</var> version 8.1.
''No incompatibilies have been introduced'' in <var class="product">Sirius Mods</var> version 8.1.
   
-->
<h3 class="relno">Fixes in Sirius Mods 8.1 but not in 8.0</h3>
====StringTokenizer incompatibilities====
As noted below in [[#StringTokenizer bug fixes|"StringTokenizer bug fixes"]], fixes to some <var>StringTokenizer</var> methods have resulted in compatibiliy issues. Also note that the documentation of the <var>[[StringTokenizer class|StringTokenizer]]</var> class and <var>StringTokenizer</var> methods now assumes usage with <var class="product">Sirius Mods</var> version 8.0 or later.
 
===Fixes in Sirius Mods 8.1 but not in 8.0===
<!--As of the date of the release of version 8.1 of the <var class="product">Sirius Mods</var>, there are no fixes to functionality existing in version 8.0 which have not fixed in that version.
<!--As of the date of the release of version 8.1 of the <var class="product">Sirius Mods</var>, there are no fixes to functionality existing in version 8.0 which have not fixed in that version.
-->
-->
Line 82: Line 105:
The <var>[[UnicodeUntranslatablePosition (Unicode function)|UnicodeUntranslatablePosition]]</var> function formerly could produce unpredictable results.
The <var>[[UnicodeUntranslatablePosition (Unicode function)|UnicodeUntranslatablePosition]]</var> function formerly could produce unpredictable results.
   
   
<!-- Uncomment if this section has any contents
====Stringtokenizer bug fixes====
<h3 class="relno">Version corequisites</h3>
This section describes fixes to some <var>StringTokenizer</var> methods. The fixes
were also delivered in version 8.0 of the <var>Sirius Mods</var> as ZAP80G4.
 
The first of these fixes, "driving <var>OutOfBounds</var> handling", represents
an incompatibility that existed prior to the introduction of this fix (that is, with version 7.9 of the <var>Sirius Mods</var>).
Although it is perhaps an "edge case",
it corrects behavior which is central to the <var>StringTokenizer</var> semantics.  Therefore,
the documentation of the <var>[[StringTokenizer class|StringTokenizer]]</var> class and <var>StringTokenizer</var>
methods now assumes you are using <var class="product">Sirius Mods</var> version 8.0 or later.
<ul>
<li><b>Skip</b> processing should drive <var>OutOfBounds</var> handling,
either causing an exception or returning the <var>Default</var> value.
For example:
<p class="code">%t:string = 'foo bar'
%t:separators = ','
printText {~=%t:nextToken(skip=2, default='qqq')}
%t:string = 'foo bar'
printText {~=%t:nextToken(skip=2)}
</p>
Prior to this fix, the result of the above fragment was:
<p class="output">%t:nextToken(skip=2, default='qqq')=
%t:nextToken(skip=2)=
</p>
Now, with the fix, the result is:
<p class="output"><nowiki>%t:nextToken(skip=2, default='qqq')=qqq
%t:nextToken(skip=2)=
***  1  CANCELLING REQUEST: ... function NextToken: OutOfBounds exception: Past end of string ...
</nowiki></p>
The new result is correct: the <var>Default</var> value is returned
by the first <var>NextToken</var>, and the second <var>NextToken</var> throws an
exception.
As another example:
<p class="code">%t:string = ''
%t:skipTokens(1)
print 'Should not be here'
</p>
Prior to this fix, the result of the above fragment was:
<p class="output">Should not be here
</p>
Now, with the fix, the result is:
<p class="output"><nowiki>***  1  CANCELLING REQUEST: ... subroutine SkipTokens: OutOfBounds exception: Past end of string ...
</nowiki></p>
The new result is correct: <var>SkipTokens</var> throws an exception here.
All of the above changes, strictly speaking, represent
incompatibilities with the previous behavior of the <var>StringTokenizer</var>.
</li>
<li>If a self-delimited token is immediately followed by a trailing separator,
there is still another token remaining (that being the null string).
For example:
<p class="code">%t:string = '"asdf",'
%t:quotes = '"'
printText {~=%t:nextToken} {~=%t:nextToken}
</p>
Prior to this fix, the result of the above fragment was:
<p class="output"><nowiki>%t:nextToken=asdf %t:nextToken=
***  1  CANCELLING REQUEST: ... function NextToken: OutOfBounds exception: Past end of string ...
</nowiki></p>
Now, with the fix, the result is:
<p class="output">%t:nextToken=asdf %t:nextToken=
</p>
The new result is correct: <var>NextToken</var> does not throw an exception here.
</li>
</ul>
<!-- Uncomment if this section has any contents -->
===Version corequisites===
This section lists any restrictions on usage of various products
This section lists any restrictions on usage of various products
(including <var class="product">Sirius Mods</var> 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 <var class="product">Sirius Mods</var>.
of <var class="product">Sirius Mods</var>.
-->
<!-- -->
====Fast/Unload 4.7 supports FUNPRMU/new FUNPARM bits====
The new <var class="product">Fast/Unload User Language Interface</var> [[#funprmu|audit features described above]] are ignored unless <var class="product">Fast/Unload</var> version 4.7 or later is in use.
   
   
[[Category:Sirius Mods release notes|Sirius Mods V8.1]]
[[Category:Sirius Mods release notes|Sirius Mods V8.1]]
[[Category:Release notes|Sirius Mods V8.1]]
[[Category:Release notes|Sirius Mods V8.1]]

Latest revision as of 16:52, 24 April 2015

These release notes list the enhancements and other changes contained in Sirius Mods version 8.1, which was released on November 24, 2012. The immediately preceding version of the Sirius Mods is:

Changes to classes and methods

Daemon class changes

New subroutine: ReturnToMaster

ReturnToMaster returns control from a daemon thread to its master thread inside a User Language request.

New functions to continue processing in a daemon

New property: State

State returns the state (the new DaemonState enumeration) of the specified daemon thread.

New exception class: IncorrectDaemonState

The IncorrectDaemonState exception class indicates that the state of the daemon thread was not correct for a method.

New option for New constructor

The New method's optional, named parameter, OpenAll opens in the daemon thread all the files and groups that are open on the master thread.

New class: ScreenReadError

The ScreenReadError class ??

New exception class: RecordLockingConflict

The RecordLockingConflict exception class catches record locking conflict errors thrown by methods in the file classes.

New enumeration methods: FromOrdinal and NumberOfValues

The FromOrdinal and NumberOfValues methods make it easy to enumerate all the values in an enumeration class without having to maintain code that has a list of all the values.

Other feature changes

User Language enhancements

Implicit concatenation supported for $functions

$functions not preceded by an operator are now concatenated with the preceding expression. This is known as implicit concatenation. For example the following concatenates the value of two global variables returned by $getg with the string "and" in the middle:

%foo = $getg('GLOBALA') " and " $getg('GLOBALB')

Model 204 command and parameter changes

New system parameter: RECLOCKO

The RECLOCKO (RECord LOCKing Options) parameter specifies the information messages that are issued for some or all record locking conflicts. The messages always include user, file, and record number, and they optionally include locking level, time lock obtained, original user number, whether its a pending update lock, etc.

New system parameter: SNAPLIMD

The SNAPLIMD parameter specifies the maximum number of snaps to generate for any particular zap title. The default is 3. The purpose of this parameter is to allow SNAPLIM to be set to a higher value than previously, without concern that some bug might repeatedly cause snaps and consume output resources.

Changes to FUNPARM system parameter, and new FUNPRMU user parameter

The FUNPARM system parameter can now specify that report information from all Fast/Unload User Language Interface jobs is to be collected in the FUNAUDIT dataset or on the Model 204 audit trail.

The same information can be collected on a per-user basis, using the new FUNPRMU user parameter.

Note that these parameter bits are ignored if the corresponding support is not available in the version of Fast/Unload being used. That support is being delivered in version 4.7.

Janus Web Server enhancements

New Janus port parameters

Multiple new port parameters are added:

Compatibility and fixes

Model 204 support

Sirius Mods version 8.1 supports Model 204 V7R1 and V7R4.

Backwards compatibility with Sirius Mods 8.0 and Sirius Mods 8.1

This section lists any differences in processing that result from execution with Sirius Mods version 8.1, as compared with the same inputs to Sirius Mods version 8.0 at current maintenance levels. In some cases zaps have been delivered to change the behavior to be the same as the version 8.1 behavior; these cases are explicitly listed.

In general, backwards 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).

StringTokenizer incompatibilities

As noted below in "StringTokenizer bug fixes", fixes to some StringTokenizer methods have resulted in compatibiliy issues. Also note that the documentation of the StringTokenizer class and StringTokenizer methods now assumes usage with Sirius Mods version 8.0 or later.

Fixes in Sirius Mods 8.1 but not in 8.0

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

UnicodeReplace if no replacement table

The UnicodeReplace function can produce unpredictable results (snap, clobber storage, etc.) if called and there is no Unicode replacement table, that is, there are no replacements as specified by the Rep subcommand of the UNICODE command.

UnicodeUntranslatablePosition unpredictable results

The UnicodeUntranslatablePosition function formerly could produce unpredictable results.

Stringtokenizer bug fixes

This section describes fixes to some StringTokenizer methods. The fixes were also delivered in version 8.0 of the Sirius Mods as ZAP80G4.

The first of these fixes, "driving OutOfBounds handling", represents an incompatibility that existed prior to the introduction of this fix (that is, with version 7.9 of the Sirius Mods). Although it is perhaps an "edge case", it corrects behavior which is central to the StringTokenizer semantics. Therefore, the documentation of the StringTokenizer class and StringTokenizer methods now assumes you are using Sirius Mods version 8.0 or later.

  • Skip processing should drive OutOfBounds handling, either causing an exception or returning the Default value. For example:

    %t:string = 'foo bar' %t:separators = ',' printText {~=%t:nextToken(skip=2, default='qqq')} %t:string = 'foo bar' printText {~=%t:nextToken(skip=2)}

    Prior to this fix, the result of the above fragment was:

    %t:nextToken(skip=2, default='qqq')= %t:nextToken(skip=2)=

    Now, with the fix, the result is:

    %t:nextToken(skip=2, default='qqq')=qqq %t:nextToken(skip=2)= *** 1 CANCELLING REQUEST: ... function NextToken: OutOfBounds exception: Past end of string ...

    The new result is correct: the Default value is returned by the first NextToken, and the second NextToken throws an exception.

    As another example:

    %t:string = %t:skipTokens(1) print 'Should not be here'

    Prior to this fix, the result of the above fragment was:

    Should not be here

    Now, with the fix, the result is:

    *** 1 CANCELLING REQUEST: ... subroutine SkipTokens: OutOfBounds exception: Past end of string ...

    The new result is correct: SkipTokens throws an exception here.

    All of the above changes, strictly speaking, represent incompatibilities with the previous behavior of the StringTokenizer.

  • If a self-delimited token is immediately followed by a trailing separator, there is still another token remaining (that being the null string). For example:

    %t:string = '"asdf",' %t:quotes = '"' printText {~=%t:nextToken} {~=%t:nextToken}

    Prior to this fix, the result of the above fragment was:

    %t:nextToken=asdf %t:nextToken= *** 1 CANCELLING REQUEST: ... function NextToken: OutOfBounds exception: Past end of string ...

    Now, with the fix, the result is:

    %t:nextToken=asdf %t:nextToken=

    The new result is correct: NextToken does not throw an exception here.

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.

Fast/Unload 4.7 supports FUNPRMU/new FUNPARM bits

The new Fast/Unload User Language Interface audit features described above are ignored unless Fast/Unload version 4.7 or later is in use.