Release notes for Sirius Mods V7.9: Difference between revisions
mNo edit summary |
mNo edit summary |
||
Line 1: | Line 1: | ||
These release notes list the enhancements and other changes contained in | These release notes list the enhancements and other changes contained in <var class="product">Sirius Mods</var> version 7.9, which was generally released on October 10, 2011. | ||
The immediately preceding and following versions of the <var class="product">Sirius Mods</var> are: | |||
<ul> | |||
<li>Version 7.8, available in November, 2010 — [[Release notes for Sirius Mods V7.8|Release notes]] | |||
<li>Version 8.0, available in May, 2012 — [[Release notes for Sirius Mods V8.0|Release notes]] | |||
</ul> | |||
==Changes to classes and methods== | |||
===Enumerations and exception classes=== | |||
====New invalid data exception classes==== | |||
Several new exception classes concerned with invalid data errors are new in <var class="product">Sirius Mods</var> Version 7.9: | |||
=====InvalidDateString===== | |||
The <var>[[InvalidDateString class|InvalidDateString]]</var> exception class describes an exception associated with a string that contains a date that is not valid. | |||
=====InvalidDeflateData===== | |||
An <var>[[InvalidDeflateData class|InvalidDeflateData]]</var> exception | |||
indicates that a string was not created by the <var>[[Deflate (String function)|Deflate]]</var> function. | |||
=====InvalidGZipData===== | |||
An <var>[[InvalidGZipData class|InvalidGZipData]]</var> exception indicates that the method object string of either the <var>[[Gunzip (String function)|Gunzip]]</var>, <var>[[GunzipFilename (String function)|GunzipFilename]]</var>, or <var>[[GunzipDatetimeNS (String function)|GunzipDatetimeNS]]</var> function is not a valid GZIP result. | |||
=====InvalidSortSpecification===== | |||
An <var>[[InvalidSortSpecification class|InvalidSortSpecification]]</var> exception indicates that the first argument provided to either the <var>[[Sort (Stringlist subroutine)|Sort]]</var> or | |||
<var>[[SortNew (Stringlist function)|SortNew]]</var> method (in the <var>Stringlist</var> class) is not a valid sort specification. | |||
=====InvalidValue===== | |||
The <var>[[InvalidValue class|InvalidValue]]</var> exception class reports an exception associated with not finding an expected value [[??]] | |||
=====InvalidZipData===== | |||
The <var>[[InvalidZipData class|InvalidZipData]]</var> exception class reports . . . [[??]] btw isn't this deleted | |||
====New exception class: MismatchedQuote==== | |||
The <var>[[MismatchedQuote class|MismatchedQuote]]</var> exception class reports . . . [[??]] | |||
====New exception class: OutOfBounds==== | |||
The <var>[[OutOfBounds class|OutOfBounds]]</var> exception class reports . . . [[??]] | |||
====New method for TranslationExceptionReason enumeration==== | |||
The <var>[[InvalidUrlEncoding]]</var> method [[??]] | |||
===Intrinsic classes=== | |||
The following sections describe new and changed [[Intrinsic]] methods available in <var class="product">Sirius Mods</var> 7.9. | |||
====Bit manipulation methods for integers and strings==== | |||
Functions for bit-wise manipulation of integers are now available: | |||
<ul> | |||
<li><var>[[BitAndInteger (Float function)|BitAndInteger]]</var> | |||
does a logical AND of the bits in two integers. | |||
<li><var>[[BitOffInteger (Float function)|BitOffInteger]]</var> | |||
turns off the set of bits in one integer that are on in another. | |||
<li><var>[[BitOnInteger (Float function)|BitOnInteger]]</var> | |||
turns on the set of bits in one integer that are on in another. It is an alias | |||
for the <var>BitOrInteger</var> function. | |||
<li><var>[[BitOrInteger (Float function)|BitOrInteger]]</var> | |||
does a logical OR of the bits in two integers. | |||
<li><var>[[BitShiftLeftInteger (Float function)|BitShiftLeftInteger]]</var> | |||
performs a left shift on the bits of an integer. | |||
<li><var>[[BitShiftRightInteger (Float function)|BitShiftRightInteger]]</var> | |||
performs a right shift on the bits of an integer. | |||
<li><var>[[BitXorInteger (Float function)|BitXorInteger]]</var> | |||
does a logical XOR of the bits in two integers. | |||
</ul> | |||
Functions for bit-wise manipulation of strings are now available: | |||
<ul> | |||
<li><var>[[BitAndString (String function)|BitAndString]]</var> does a logical AND of the bits in two strings. | |||
<li><var>[[BitOffString (String function)|BitOffString]]</var> | |||
turns off the set of bits in one string that are on in another. | |||
<li><var>[[BitOnString (String function)|BitOnString]]</var> | |||
turns on the set of bits in one string that are on in another. It is an alias | |||
for the <var>BitOrString</var> function. | |||
<li><var>[[BitOrString (String function)|BitOrString]]</var> does a logical OR of the bits in two strings. | |||
<li><var>[[BitXorString (String function)|BitXorString]]</var> | |||
does a logical XOR of the bits in two strings. | |||
</ul> | |||
====Trim methods==== | |||
Functions for trimming bytes off the left or right of a string are now available: | |||
<ul> | |||
<li>[[TrimLeft (String function)]] | |||
<li>[[TrimRight (String function)]] | |||
</ul> | |||
Corresponding Unicode functions are also available: | |||
<ul> | |||
<li>[[UnicodeTrimLeft (Unicode function)]] | |||
<li>[[UnicodeTrimRight (Unicode function)]] | |||
</ul> | |||
====URL encoding and decoding methods==== | |||
Functions for [http://en.wikipedia.org/wiki/Percent-encoding URL encoding and decoding] Unicode are now available: | |||
<ul> | |||
<li>[[FormUrlDecodeUnicode (String function)]] | |||
<li>[[UnicodeFormUrlEncode (Unicode function)]] | |||
<li>[[UnicodeUrlEncode (Unicode function)]] | |||
<li>[[UrlDecodeUnicode (String function)]] | |||
</ul> | |||
====Unicode comparison methods==== | |||
These methods perform the basic <var class="product">User Language</var> comparison operations: | |||
<ul> | |||
<li><var>[[UnicodeEQ (Unicode function)|UnicodeEQ]]</var> | |||
<li><var>[[UnicodeGE (Unicode function)|UnicodeGE]]</var> | |||
<li><var>[[UnicodeGT (Unicode function)|UnicodeGT]]</var> | |||
<li><var>[[UnicodeLE (Unicode function)|UnicodeLE]]</var> | |||
<li><var>[[UnicodeLT (Unicode function)|UnicodeLT]]</var> | |||
<li><var>[[UnicodeNE (Unicode function)|UnicodeNE]]</var> | |||
</ul> | |||
====CentSpan name allowed for the StringToDays, StringToSeconds, and StringToMilliseconds methods==== | |||
These methods previously had an optional positional parameter for specifying a | |||
<var>[[CENTSPAN parameter|CENTSPAN]]</var> value. As of <var class="product">Sirius Mods</var> 7.9, | |||
this parameter is a <var>[[Notation conventions for methods#Named parameters|NameAllowed]]</var> parameter: the name <var>CentSpan</var> is now allowed. | |||
====StartsWith and IsStartOf: Is one string the initial substring of another?==== | |||
The <var>[[StartsWith and IsStartOf (String functions)|StartsWith]]</var> and <var>[[StartsWith and IsStartOf (String functions)|IsStartOf]]</var> intrinsic <var>String</var> functions test whether one string is an abbreviation (that is, an initial substring) of a longer string. <var>IsStartOf</var> also checks whether the abbreviation is at least as long as the value of the <var>MinLength</var> named argument. <var>StartsWith</var> can be conveniently used to check whether a starts with a known string; | |||
<var>IsStartOf</var> can be conveniently used to check whether a string is an abbreviation of a known string. | |||
====TimeStringConvert — Convert date/time string from one format to another==== | |||
<var>[[TimeStringConvert (String function)|TimeStringConvert]]</var> | |||
converts a date/time string from one format to another. | |||
====Word manipulation functions==== | |||
These functions support manipulation of a string comprised of words delimited by blanks or some other | |||
specified set of characters: | |||
<ul> | |||
<li><var>[[Word (String function)|Word]]</var> | |||
selects a word from a list of words. | |||
<li><var>[[WordCount (String function)|WordCount]]</var> | |||
returns the number of words in a list of words. | |||
<li><var>[[WordNumberIn (String function)|WordNumberIn]]</var> and | |||
<var>[[WordNumberOf (String function)|WordNumberOf]]</var> | |||
search for a "needle" word | |||
within | |||
a "haystack" | |||
list of words, returning the position of the needle in the haystack. | |||
<li><var>[[Words (String function)|Words]]</var> | |||
selects a sublist of words from a list of words. | |||
</ul> | |||
Note that for many applications, processing a list of words may be best accomplished using the | |||
<var>[[StringTokenizer class|StringTokenizer]]</var> class. | |||
<!-- | |||
====Summary of new intrinsic methods==== | |||
This summary recaps the methods that are mentioned in the preceding sections. | |||
=====New Float methods===== | |||
<ul> | |||
<li><var>[[BitAndInteger (Float function)|BitAndInteger]]</var> | |||
<li><var>[[BitOffInteger (Float function)|BitOffInteger]]</var> | |||
<li><var>[[BitOnInteger (Float function)|BitOnInteger]]</var> | |||
<li><var>[[BitOrInteger (Float function)|BitOrInteger]]</var> | |||
<li><var>[[BitShiftLeftInteger (Float function)|BitShiftLeftInteger]]</var> | |||
<li><var>[[BitShiftRightInteger (Float function)|BitShiftRightInteger]]</var> | |||
<li><var>[[BitXorInteger (Float function)|BitXorInteger]]</var> | |||
</ul> | |||
=====New String methods===== | |||
<ul> | |||
<li><var>[[BitAndString (String function)|BitAndString]]</var> | |||
<li><var>[[BitOffString (String function)|BitOffString]]</var> | |||
<li><var>[[BitOnString (String function)|BitOnString]]</var> | |||
<li><var>[[BitOrString (String function)|BitOrString]]</var> | |||
<li><var>[[BitXorString (String function)|BitXorString]]</var> | |||
<li><var>[[UrlDecodeUnicode and FormUrlDecodeUnicode (String functions)|FormUrlDecodeUnicode]]</var> | |||
<li><var>[[StartsWith and IsStartOf (String functions)|IsStartOf]]</var> | |||
<li><var>[[StartsWith and IsStartOf (String functions)|StartsWith]]</var> | |||
<li><var>[[TimeStringConvert (String function)|TimeStringConvert]]</var> | |||
<li><var>[[TrimLeft and TrimRight (String functions)|TrimLeft]]</var> | |||
<li><var>[[TrimLeft and TrimRight (String functions)|TrimRight]]</var> | |||
<li><var>[[UrlDecodeUnicode and FormUrlDecodeUnicode (String functions)|UrlDecodeUnicode]]</var> | |||
<li><var>[[Word (String function)|Word]]</var> | |||
<li><var>[[WordCount (String function)|WordCount]]</var> | |||
<li><var>[[WordNumberIn (String function)|WordNumberIn]]</var> | |||
<li><var>[[WordNumberOf (String function)|WordNumberOf]]</var> | |||
<li><var>[[Words (String function)|Words]]</var> | |||
</ul> | |||
=====New Unicode methods===== | |||
<ul> | |||
<li><var>[[UnicodeEQ (Unicode function)|UnicodeEQ]]</var> | |||
<li><var>[[UnicodeUrlEncode and UnicodeFormUrlEncode (Unicode functions)|UnicodeFormUrlEncode]]</var> | |||
<li><var>[[UnicodeGE (Unicode function)|UnicodeGE]]</var> | |||
<li><var>[[UnicodeGT (Unicode function)|UnicodeGT]]</var> | |||
<li><var>[[UnicodeLE (Unicode function)|UnicodeLE]]</var> | |||
<li><var>[[UnicodeLT (Unicode function)|UnicodeLT]]</var> | |||
<li><var>[[UnicodeNE (Unicode function)|UnicodeNE]]</var> | |||
<li><var>[[UnicodeTrimLeft and UnicodeTrimRight (Unicode functions)|UnicodeTrimLeft]]</var> | |||
<li><var>[[UnicodeTrimLeft and UnicodeTrimRight (Unicode functions)|UnicodeTrimRight]]</var> | |||
<li><var>[[UnicodeUrlEncode and UnicodeFormUrlEncode (Unicode functions)|UnicodeUrlEncode]]</var> | |||
</ul> | |||
--> | |||
===Stringlist and Collection classes=== | |||
The following sections describe changes to the <var>[[Stringlist class|Stringlist]]</var> and [[Collections]] classes in <var class="product">Sirius Mods</var> 7.9. | |||
====Improved list handling in Arraylists==== | |||
The following <var>Arraylist</var> methods can now take lists of items where the items themselves can be <var>Arraylists</var> as inputs: | |||
<ul> | |||
<li>[[Add (Arraylist function)]] | |||
<li>[[Insert (Arraylist function)]] | |||
<li>[[List (Arraylist function)]] | |||
</ul> | |||
====Improved list handling in Stringlists==== | |||
The following <var>Stringlist</var> methods can now take lists of items where the items themselves can be<var>Stringlists</var> as inputs: | |||
<ul> | |||
<li>[[Add (Stringlist function)]] | |||
<li>[[Insert (Stringlist function)]] | |||
<li>[[List (Stringlist function)]] | |||
</ul> | |||
====InvalidSortSpecification exception for Stringlist sorting==== | |||
The <var>[[InvalidSortSpecification class|InvalidSortSpecification]]</var> exception is thrown if the first argument is invalid in an invocation of the <var>[[Sort (Stringlist subroutine)|Sort]]</var> or <var>[[SortNew (Stringlist function)|SortNew]]</var> methods of the <var>Stringlist</var> class. | |||
====New Stringlist method: AppendCPCommandOutput==== | |||
<var>[[AppendCPCommandOutput (Stringlist function)|AppendCPCommandOutput]]</var> | |||
invokes a CP command in the Online's virtual machine and adds the output from that command to a <var>Stringlist</var>. | |||
===XmlDoc API=== | |||
The following sections describe changes in the Janus SOAP [[XmlDoc API]] in <var class="product">Sirius Mods</var> 7.9. | |||
====New AllowXmlAttribute XmlDoc property==== | |||
The <var>[[AllowXmlAttribute (XmlDoc property)|AllowXmlAttribute]]</var> is a <var>[[Enumerations#Using Boolean enumerations|Boolean]]</var>-valued property which, if <var>True</var>, allows deserialization of an XML document or fragment which has attribute names beginning with the characters "xml" (that is, attribute names other than the standard "xml" or "xmlns" prefixes). | |||
====New LoadSystemMethodInfo optional argument==== | |||
The <var>[[LoadSystemMethodInfo (XmlDoc subroutine)#Syntax|ShowBase]]</var> argument is a <var>[[Enumerations#Using Boolean enumerations|Boolean]]</var> value which specifies whether to include members of base classes in the display of their extension classes. | |||
====New HtmlCharEnt option for XML deserialization==== | |||
The <var class="term">options</var> argument of the <var>[[LoadXml (XmlDoc/XmlNode function)|LoadXml]]</var> and <var>[[WebReceive (XmlDoc function)|WebReceive]]</var> functions now allows <code>HtmlCharEnt</code>, which indicates that the XML document input may contain XHTML entity references (e.g., <code>&nbsp;</code>) and any such entity reference is converted to the corresponding Unicode character. | |||
====Remove some restrictions for adding default namespace declarations in XmlDoc API==== | |||
<ul> | |||
<li><var>[[AddTopElement (XmlDoc function)|AddTopElement]]</var> now allows a non-null second argument (URI) if the old top element is in a default namespace. | |||
<li><var>[[AddNamespace (XmlNode subroutine)|AddNamespace]]</var> now allows a default namespace declaration (assuming that the method object Element node is not in a default namespace) if all children of the Element are in default namespaces. | |||
</ul> | |||
====Allow XML names up to 300 characters==== | |||
Previously, the longest local name or prefix allowed was 127 characters; they may now each be up to 300 characters long. | |||
===HttpResponse class=== | |||
The following sections describe changes in the <var class="product">Janus Sockets</var> <var>[[HttpResponse class|HttpResponse]]</var> class in <var class="product">Sirius Mods</var> 7.9. | |||
====New HtmlCharEnt option for XML deserialization==== | |||
The <var class="term">options</var> argument of the <var>[[ParseXml (HttpResponse function)|ParseXml]]</var> function now allows <code>HtmlCharEnt</code>, which indicates that the XML document input may contain XHTML entity references (for example, <code>&nbsp;</code>) and any such entity reference is converted to the corresponding Unicode character. | |||
===Daemon class=== | |||
====New method: AsynchronousFinished==== | |||
The <var>[[AsynchronousFinished (Daemon property)|AsynchronousFinished]]</var> method reports whether an asynchronous request on this Daemon has finished its processing. | |||
===Socket class=== | |||
====New method: ReceiveAsynchronous==== | |||
The <var>[[ReceiveAsynchronous (Socket function)|ReceiveAsynchronous]]</var> method requests a number of bytes from a connection partner, and if it receives fewer than the requested number of bytes, it returns either immediately or after a timeout, according to user specification. | |||
====New method: ReceivedFin==== | |||
The <var>[[ReceivedFin (Socket function)|ReceivedFin]]</var> method reports whether a socket connection received a FIN indicator. This is particularly useful in conjunction with the <var>ReceiveAsynchronous</var> method. | |||
===System class=== | |||
====New method: WakeupAt==== | |||
The [[WakeupAt (System function)|WakeupAt]] method [[??]] | |||
==Other feature changes== | |||
===User Language enhancements=== | |||
As described in [[Janus SOAP User Language Interface#Non-OO User Language enhancements|"Non-OO User Language enhancements"]], the <var class="product">Janus SOAP User Language Interface</var> provides a number of enhancements to <var class="product">User Language</var> in addition to the object-oriented enhancements. | |||
Features among this set that are new in version 7.9 of the <var class="product">Sirius Mods</var> are shown in the sections below. | |||
====At sign (@) on right side of assignment==== | |||
This feature allows you to use the at sign (<code>@</code>) on the right hand side of an assignment statement, to refer to the value of the left hand side of the assignment. For example: | |||
<p class="code">%x = 4 | |||
%x = @:toPower(@) | |||
print %x | |||
</p> | |||
This fragment produces <code>256</code>, that is, the same result that would be obtained by substituting '<code>%x</code>', the left side of the assignment, for '<code>@</code>' in '<code>%x = @:ToPower(@)</code>'. This is the value of <code>%x</code> raised to that same power. | |||
See "[[At sign (@) on right side of assignment]]" for a full discussion of this feature. | |||
====Implicit concatenation==== | |||
Implicit concatenation eliminates the need to precede <var class="product">User Language</var> variables (including methods chained off a variable) and literals with the operator <code>With</code> to indicate concatenation. For example, the following statement sets <code>%foo</code> to the contents of <code>%test</code> enclosed within parentheses: | |||
<p class="code">%foo = "(" %test ")"</p> | |||
See [[Implicit concatenation|"Implicit concatenation"]] for a full discussion of this feature. | |||
====Normal syntax for LOB fields==== | |||
Starting with version V7R2 of <var class="product">Model 204</var>, the <var class="product">Sirius Mods</var> with [[Longstrings]] support allows use of most "normal" <var class="product">User Language</var> syntax to access <var>BLOB</var> and <var>CLOB</var> fields. | |||
For example, if <code>XYZ</code> is a <var>BLOB</var> field, you can add an occurrence with the following statement: | |||
<p class="code">add XYX = 'This field can be expanded nearly without limit'</p> | |||
See [[Normal syntax for LOB fields|"Normal syntax for LOB fields"]] for a full discussion of this feature. | |||
===Model 204 commands and parameters=== | |||
====Parameter default values for SIRIUS DEBUG ON command==== | |||
The first two parameters of <var>[[SIRIUS DEBUG, SIRDEBUG, or SIRIUSDEBUG command|SIRIUS DEBUG ON]]</var> have new values: | |||
<ul> | |||
<li>A port name of * (asterisk) now means "use a [[MASTER|master]] client port." | |||
<li>A PC host address of . (period) now means "use the IP address of the machine on which the <var>SIRIUS DEBUG</var> | |||
command was issued." | |||
</ul> | |||
In addition, these new values also become default values; previously the command had no defaults. | |||
Therefore the following two commands identically specify to use a master port and connect to your own IP address: | |||
<p class="code">SIRIUS DEBUG ON | |||
SIRIUS DEBUG ON * . | |||
</p> | |||
If an Online is set up correctly and you are connected via the | |||
<var class="product">Janus Telnet Server</var> or VTAM, or running a web request (or any other Janus server | |||
request), all that you need to connect to the <var class="product">[[Debugger|Sirius Debugger]]</var> is to issue a <code>SIRIUS DEBUG ON</code> command. | |||
<br> | |||
'''Note:''' <var>SIRIUS DEBUG ON</var> will use any | |||
<var>MASTER</var> port that is defined as a <var>[[JANUS DEFINE#type|DEBUGGERCLIENT]]</var> port before it will use a generic | |||
<var>[[JANUS CLSOCK|CLSOCK]]</var> port. | |||
====New VTLAPSY parameter==== | |||
New <var>User 0</var> parameter <var>[[VTLAPSY parameter|VTLAPSY]]</var> builds on <var>[[NEWSESCMD|JANUS DEFINE NEWSESCMD]]</var> technology to provide full-screen login support for IODEV=7 terminals. | |||
==Compatibility and fixes== | |||
===Model 204 support=== | |||
<var class="product">Sirius Mods</var> version 7.9 supports <var class="product">Model 204</var> V7R1 and V7R2. | |||
===Documentation=== | |||
Sirius is in the process of transferring its product documentation from PDF format manuals accessible from the company website (http://www.sirius-software.com) to HTML articles in this [[SirWiki main page|Sirwiki]] wiki. As of this writing, much of the documentation remains in the PDF manuals. However, the most recent product updates are documented in the wiki, and the PDF manuals are being converted and transferred to the wiki. | |||
Sirius product users should look first in the wiki for the contents of these former documents: | |||
<ul> | |||
<li><i>Janus SOAP Reference Manual</i> | |||
<li><i>Sirius Mods Command and Parameter Reference Manual</i> | |||
<li><i>Janus TCP/IP Base Reference Manual</i> | |||
<li><i>Sirius Functions Reference Manual</i> | |||
<li>Version 7.8 and later release notes | |||
</ul> | |||
For now, if the wiki information is incomplete or missing, the PDFs are available. | |||
[[Category:Sirius Mods release notes|Sirius Mods V7.9]] | [[Category:Sirius Mods release notes|Sirius Mods V7.9]] | ||
[[Category:Release notes|Sirius Mods V7.9]] | [[Category:Release notes|Sirius Mods V7.9]] | ||
[[Category:Sirius Mods V7.9]] |
Revision as of 16:23, 1 October 2012
These release notes list the enhancements and other changes contained in Sirius Mods version 7.9, which was generally released on October 10, 2011. The immediately preceding and following versions of the Sirius Mods are:
- Version 7.8, available in November, 2010 — Release notes
- Version 8.0, available in May, 2012 — Release notes
Changes to classes and methods
Enumerations and exception classes
New invalid data exception classes
Several new exception classes concerned with invalid data errors are new in Sirius Mods Version 7.9:
InvalidDateString
The InvalidDateString exception class describes an exception associated with a string that contains a date that is not valid.
InvalidDeflateData
An InvalidDeflateData exception indicates that a string was not created by the Deflate function.
InvalidGZipData
An InvalidGZipData exception indicates that the method object string of either the Gunzip, GunzipFilename, or GunzipDatetimeNS function is not a valid GZIP result.
InvalidSortSpecification
An InvalidSortSpecification exception indicates that the first argument provided to either the Sort or SortNew method (in the Stringlist class) is not a valid sort specification.
InvalidValue
The InvalidValue exception class reports an exception associated with not finding an expected value ??
InvalidZipData
The InvalidZipData exception class reports . . . ?? btw isn't this deleted
New exception class: MismatchedQuote
The MismatchedQuote exception class reports . . . ??
New exception class: OutOfBounds
The OutOfBounds exception class reports . . . ??
New method for TranslationExceptionReason enumeration
The InvalidUrlEncoding method ??
Intrinsic classes
The following sections describe new and changed Intrinsic methods available in Sirius Mods 7.9.
Bit manipulation methods for integers and strings
Functions for bit-wise manipulation of integers are now available:
- BitAndInteger does a logical AND of the bits in two integers.
- BitOffInteger turns off the set of bits in one integer that are on in another.
- BitOnInteger turns on the set of bits in one integer that are on in another. It is an alias for the BitOrInteger function.
- BitOrInteger does a logical OR of the bits in two integers.
- BitShiftLeftInteger performs a left shift on the bits of an integer.
- BitShiftRightInteger performs a right shift on the bits of an integer.
- BitXorInteger does a logical XOR of the bits in two integers.
Functions for bit-wise manipulation of strings are now available:
- BitAndString does a logical AND of the bits in two strings.
- BitOffString turns off the set of bits in one string that are on in another.
- BitOnString turns on the set of bits in one string that are on in another. It is an alias for the BitOrString function.
- BitOrString does a logical OR of the bits in two strings.
- BitXorString does a logical XOR of the bits in two strings.
Trim methods
Functions for trimming bytes off the left or right of a string are now available:
Corresponding Unicode functions are also available:
URL encoding and decoding methods
Functions for URL encoding and decoding Unicode are now available:
- FormUrlDecodeUnicode (String function)
- UnicodeFormUrlEncode (Unicode function)
- UnicodeUrlEncode (Unicode function)
- UrlDecodeUnicode (String function)
Unicode comparison methods
These methods perform the basic User Language comparison operations:
CentSpan name allowed for the StringToDays, StringToSeconds, and StringToMilliseconds methods
These methods previously had an optional positional parameter for specifying a CENTSPAN value. As of Sirius Mods 7.9, this parameter is a NameAllowed parameter: the name CentSpan is now allowed.
StartsWith and IsStartOf: Is one string the initial substring of another?
The StartsWith and IsStartOf intrinsic String functions test whether one string is an abbreviation (that is, an initial substring) of a longer string. IsStartOf also checks whether the abbreviation is at least as long as the value of the MinLength named argument. StartsWith can be conveniently used to check whether a starts with a known string; IsStartOf can be conveniently used to check whether a string is an abbreviation of a known string.
TimeStringConvert — Convert date/time string from one format to another
TimeStringConvert converts a date/time string from one format to another.
Word manipulation functions
These functions support manipulation of a string comprised of words delimited by blanks or some other specified set of characters:
- Word selects a word from a list of words.
- WordCount returns the number of words in a list of words.
- WordNumberIn and WordNumberOf search for a "needle" word within a "haystack" list of words, returning the position of the needle in the haystack.
- Words selects a sublist of words from a list of words.
Note that for many applications, processing a list of words may be best accomplished using the StringTokenizer class.
Stringlist and Collection classes
The following sections describe changes to the Stringlist and Collections classes in Sirius Mods 7.9.
Improved list handling in Arraylists
The following Arraylist methods can now take lists of items where the items themselves can be Arraylists as inputs:
Improved list handling in Stringlists
The following Stringlist methods can now take lists of items where the items themselves can beStringlists as inputs:
InvalidSortSpecification exception for Stringlist sorting
The InvalidSortSpecification exception is thrown if the first argument is invalid in an invocation of the Sort or SortNew methods of the Stringlist class.
New Stringlist method: AppendCPCommandOutput
AppendCPCommandOutput invokes a CP command in the Online's virtual machine and adds the output from that command to a Stringlist.
XmlDoc API
The following sections describe changes in the Janus SOAP XmlDoc API in Sirius Mods 7.9.
New AllowXmlAttribute XmlDoc property
The AllowXmlAttribute is a Boolean-valued property which, if True, allows deserialization of an XML document or fragment which has attribute names beginning with the characters "xml" (that is, attribute names other than the standard "xml" or "xmlns" prefixes).
New LoadSystemMethodInfo optional argument
The ShowBase argument is a Boolean value which specifies whether to include members of base classes in the display of their extension classes.
New HtmlCharEnt option for XML deserialization
The options argument of the LoadXml and WebReceive functions now allows HtmlCharEnt
, which indicates that the XML document input may contain XHTML entity references (e.g.,
) and any such entity reference is converted to the corresponding Unicode character.
Remove some restrictions for adding default namespace declarations in XmlDoc API
- AddTopElement now allows a non-null second argument (URI) if the old top element is in a default namespace.
- AddNamespace now allows a default namespace declaration (assuming that the method object Element node is not in a default namespace) if all children of the Element are in default namespaces.
Allow XML names up to 300 characters
Previously, the longest local name or prefix allowed was 127 characters; they may now each be up to 300 characters long.
HttpResponse class
The following sections describe changes in the Janus Sockets HttpResponse class in Sirius Mods 7.9.
New HtmlCharEnt option for XML deserialization
The options argument of the ParseXml function now allows HtmlCharEnt
, which indicates that the XML document input may contain XHTML entity references (for example,
) and any such entity reference is converted to the corresponding Unicode character.
Daemon class
New method: AsynchronousFinished
The AsynchronousFinished method reports whether an asynchronous request on this Daemon has finished its processing.
Socket class
New method: ReceiveAsynchronous
The ReceiveAsynchronous method requests a number of bytes from a connection partner, and if it receives fewer than the requested number of bytes, it returns either immediately or after a timeout, according to user specification.
New method: ReceivedFin
The ReceivedFin method reports whether a socket connection received a FIN indicator. This is particularly useful in conjunction with the ReceiveAsynchronous method.
System class
New method: WakeupAt
Other feature changes
User Language enhancements
As described in "Non-OO User Language enhancements", the Janus SOAP User Language Interface provides a number of enhancements to User Language in addition to the object-oriented enhancements.
Features among this set that are new in version 7.9 of the Sirius Mods are shown in the sections below.
At sign (@) on right side of assignment
This feature allows you to use the at sign (@
) on the right hand side of an assignment statement, to refer to the value of the left hand side of the assignment. For example:
%x = 4 %x = @:toPower(@) print %x
This fragment produces 256
, that is, the same result that would be obtained by substituting '%x
', the left side of the assignment, for '@
' in '%x = @:ToPower(@)
'. This is the value of %x
raised to that same power.
See "At sign (@) on right side of assignment" for a full discussion of this feature.
Implicit concatenation
Implicit concatenation eliminates the need to precede User Language variables (including methods chained off a variable) and literals with the operator With
to indicate concatenation. For example, the following statement sets %foo
to the contents of %test
enclosed within parentheses:
%foo = "(" %test ")"
See "Implicit concatenation" for a full discussion of this feature.
Normal syntax for LOB fields
Starting with version V7R2 of Model 204, the Sirius Mods with Longstrings support allows use of most "normal" User Language syntax to access BLOB and CLOB fields.
For example, if XYZ
is a BLOB field, you can add an occurrence with the following statement:
add XYX = 'This field can be expanded nearly without limit'
See "Normal syntax for LOB fields" for a full discussion of this feature.
Model 204 commands and parameters
Parameter default values for SIRIUS DEBUG ON command
The first two parameters of SIRIUS DEBUG ON have new values:
- A port name of * (asterisk) now means "use a master client port."
- A PC host address of . (period) now means "use the IP address of the machine on which the SIRIUS DEBUG command was issued."
In addition, these new values also become default values; previously the command had no defaults. Therefore the following two commands identically specify to use a master port and connect to your own IP address:
SIRIUS DEBUG ON SIRIUS DEBUG ON * .
If an Online is set up correctly and you are connected via the
Janus Telnet Server or VTAM, or running a web request (or any other Janus server
request), all that you need to connect to the Sirius Debugger is to issue a SIRIUS DEBUG ON
command.
Note: SIRIUS DEBUG ON will use any
MASTER port that is defined as a DEBUGGERCLIENT port before it will use a generic
CLSOCK port.
New VTLAPSY parameter
New User 0 parameter VTLAPSY builds on JANUS DEFINE NEWSESCMD technology to provide full-screen login support for IODEV=7 terminals.
Compatibility and fixes
Model 204 support
Sirius Mods version 7.9 supports Model 204 V7R1 and V7R2.
Documentation
Sirius is in the process of transferring its product documentation from PDF format manuals accessible from the company website (http://www.sirius-software.com) to HTML articles in this Sirwiki wiki. As of this writing, much of the documentation remains in the PDF manuals. However, the most recent product updates are documented in the wiki, and the PDF manuals are being converted and transferred to the wiki.
Sirius product users should look first in the wiki for the contents of these former documents:
- Janus SOAP Reference Manual
- Sirius Mods Command and Parameter Reference Manual
- Janus TCP/IP Base Reference Manual
- Sirius Functions Reference Manual
- Version 7.8 and later release notes
For now, if the wiki information is incomplete or missing, the PDFs are available.