Release notes for Sirius Mods V7.9

From m204wiki
Revision as of 22:01, 28 April 2014 by JAL (talk | contribs) (→‎Arrays may contain objects)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

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:

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.

New exception class: MismatchedQuote

A MismatchedQuote exception indicates that an unmatched quote character was found while scanning for a token with the StringTokenizer class. (Actually, this class was introduced in version 7.7 of the Sirius Mods.)

New exception class: OutOfBounds

An OutOfBounds exception indicates that the AtEnd property was true when attempting to scan for a token.

New value for TranslationExceptionReason enumeration: InvalidUrlEncoding

The InvalidUrlEncoding enumeration value of the TranslationExceptionReason enumeration indicates that decoding of a URL failed in either the FormUrlDecodeUnicode or UrlDecodeUnicode function.

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:

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 Collection 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 be Stringlists 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 that 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 (for example,  ), and any such entity reference is converted to the corresponding Unicode character.

Remove some restrictions for adding default namespace declarations

  • 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 a 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.

StringTokenizer class

New argument on NextToken: Default

The NextToken function has a new named argument, Default, which specifies the value to be returned if there is no token from the StringTokenizer to be returned.

System class

New method: WakeupAt

The WakeupAt function is an enhanced alternative to the User Language Pause statement, allowing wakeup time resolution of 1 millisecond, and returns the current time in milliseconds.

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

The Sirius Mods with Longstrings support allows use of most "normal" User Language syntax to access BLOB and CLOB fields. This feature is generally available as of version V7R5 of Model 204.

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 for them. Therefore the following two commands identically specify to use a master port and connect to your own IP address, assuming that the SDEBGUIP and SDEBWRKP parameters have been set:

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.

Backwards compatibility with Sirius Mods 7.8 and Sirius Mods 7.9

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).

No incompatibilies have been introduced in Sirius Mods version 7.9.

Fixes in Sirius Mods 7.9 but not in 7.8

As of the date of the release of version 7.9 of the Sirius Mods, there are no fixes to functionality existing in version 7.8 which have not been fixed in that version.

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 M204wiki 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.