What's fixed in OmniMark 7.1.2
- There was an error in Studio for Eclipse when compiling and saving byte code files. This has been fixed.
- A problem with the interaction between the omxerces library and OmniMark's handling of XML namespaces has been fixed. XML namespaces are now handled correctly when a
markup-parse
is being performed using the omxerces library and XML schema validation is active.
- A segmentation fault was encountered when closing an active stream; this has been eliminated.
- A segmentation fault encountered when parsing shelf-reference valued functions has been eliminated.
- An error in the parsing of remainder arguments with a herald of
and
has been fixed; these are now handled correctly.
- Built-in operators in the guard of an
insertion-break
or replacement-break
were erroneously being rejected; this has been fixed.
- Infix-functions were being allowed in the guard of an
insertion-break
or replacement-break
; this has been fixed.
- An internal error would occur when submitting
#current-output
following a drop
expression on something other than #current-output
; this has been corrected.
- Certain operations on an unopened mail box in certain conditions could cause the ommail library to hang; this has been corrected.
- OmniMark client programs created with omtcp using 7.1 or 7.1.1 and run on an IPV6 configured machine may fail to connect to servers which are not IPV6 enabled. This includes OmniMark servers running OmniMark versions lower than 7.1.
- A problem that could cause hangs in OmniMark networking calls has been fixed. This had been particularly apparent using end-delimited TCP/IP protocol.
- Error messages have been updated to refer to the markup stream as
#markup-parser
, rather than the deprecated #sgml
.
omutil.xmd
and omutil.xin
calls util.get-millisecond-time
and UTIL_GetMilliSecondTimer
respectively could fail on Windows with a message "Invalid integer argument". This has been fixed.
- A problem involving a conflict between the number of initial values for a shelf and the specified size of the shelf has been fixed. This was reflected both in an incorrect error message and in the initialization of opaque-typed shelves.
- The support for initial values of optional arguments has been corrected to reflect the specification.
- An incorrect error message was generated when the initial value of an optional argument to a function differed between the
as
definition and an elsewhere
definition. This has been fixed.
- The implementation of exported functions from modules has been fixed to disallow exporting an
elsewhere
definition for a function without also exporting an as
definition for the same function.
- A problem involving element context tests appearing in the guard of input domain rules has been fixed.
- Error messages have been updated to refer to the command-line arguments shelf as
#args
, rather than the deprecated #command-line-names
.
- Compile-time error recovery for dynamic functions has been improved.
- Dynamic functions can now be predeclared using an
elsewhere
declaration.
- An error message involving extended record types and conversion functions has been clarified.
- Support for keyword argument heralds has been improved.
- The parser now recovers more quickly when a module is given as a main program.
- Overloaded action functions can now appear following a
using
prefix.
- A dynamic function can now dispatch on the result of a function call.
- A character class can now follow a shelf name in a pattern.
- An error involving exporting a shelf without its type has been fixed.
What's fixed in OmniMark 7.1
- An internal error for some complex, nested, non-parenthesized function
calls has been fixed
- A segmentation fault for exceptions thrown from external-text-entity rules has been fixed
- An internal error for a statically false take pattern has been fixed
- Variable shelves with initial-size 1 were not settable from the
command line. Now they are.
- The compiler didn't allow value-returning functions to be ended by
"not-reached".
- The "binary-mode" couldn't be applied to some external source functions.
- The "%g" format item didn't work on pattern variables.
- An internal error for faulty calls of external functions with output
arguments has been fixed.
- The compiler accepted "using output as " with more than one same stream
destination. It no longer does so.
- The copy-clear action didn't clear the default shelf item and the
stream name. Now it does.
- Attribute declaration tests weren't properly implemented.
- An internal error for "has name" applied to a value argument has been fixed.
- Operator precedence was wrong in some contexts.
- Multiple importation of functions from shared modules could cause name
collisions.
- An internal error for deep nested function calls with shelf arguments has been fixed.
- An internal error for xmlns-change rules in modules has been fixed.
- Inconsistent shelf declarations are now caught at compile-time.
- An internal error for throws from within "do sgml-parse" has been fixed.
- Some combinations of "take" and "drop" operators could cause pattern
variable data corruption. This has been fixed.
- A crash that occurred when closing ftp connection in omftp has been fixed.
- A memory leak in omftp when read or write fails has been fixed.
- A crash when closing pop3 mailbox in ommail has been fixed.
- 'describe[-file]' functions in omvfs sometimes threw an
exception in Windows due to being unable to access PDC to resolve
user/group names. This has been fixed.
- 'describe[-file]' functions in omvfs were returning times in an
incorrect format in timezones > GMT. This has been fixed.
- ombcd and omfloat module header files couldn't both be imported
unprefixed. This has been fixed.
What's fixed in OmniMark 7.0.2
- An error where #base rules for an element were not being selected if the
element was mentioned without the "base" modifier in a query has been
fixed.
- An internal error triggered when the source used in a do...parse
construct contains "#current-input drop [pattern]" has been fixed.
- Throws from the outer scope of a markup-error rule were not catchable in
the body of that markup-error rule. This has been corrected.
repeat for integer foo ...
now allows int32 to be used in place of
integer.
drop
used in a global variable initializer expression no longer
causes an internal error.
- The current output destination was being corrupted when a markup parse
was being aborted before it could start, for example when the file
being parsed did not exist. This has been fixed.
- An error where a legitimate compile-time error would be followed by an
internal error has been fixed.
- Using back-quotes to get the keyword interpretation of a symbol was not
working for action keywords overriden by non value-returning functions.
- A "++" pattern with a terminate pattern that can never fail was
causing an internal error. This has been fixed. Note that due to the
semantics of "++" these sorts of patterns can never succeed anyway.
- An internal error triggered by certain function call sequences mixing
parenthesized and unparenthesized function argument lists has been fixed.
- Throwing local variables as read-only arguments to a catch that is
outside the scope of that variable's declaration was causing OmniMark to
crash. This has been fixed.
- Library rules in programs using modules were not useable. This has
been fixed.
- The following fixes have been made to the Xerces parser interface:
- The "external-text-entity" rule has been enhanced:
- The entity name is now available (using the "%q" format item).
- Where an external text entity is the external declaration subset of a
DTD, its name is #DTD, and it is recognized separately from named entities.
- Where an external text entity is an externally provided XML Schema, its
name is #SCHEMA, and it's again recognized separately from named entities,
and separately from a #DTD entity.
- Declaration information from the DTD is now used in the same manner as
when using OmniMark's native markup parsers.
- Empty element recognition has been improved:
- Empty tags (those ending in "/>") are now recognized.
- The "content is empty" test is true when either an element is declared
empty (in a DTD or Schema) or has an empty tag.
- The new
content is declared-empty
is only true when an element is
declared empty.
- The new
content is empty-tag
is only true when an element has an empty
tag.
- There's more information available for an element's attributes when
there's a DTD or Schema to provide the information:
- All attributes, specified, defaulted or implied are now returned, and
the "is specified", "is defaulted" and "is implied" tests distinguish
between them.
- ) The various attribute types -- CDATA, ID, IDREF, IDREFS, ENTITY,
ENTITIES, NMTOKEN, NMTOKENS, NOTATION and name token group (a.k.a. GROUP) --
are recognized, and the existing OmniMark tests distingish between them.
- You can "repeat over" an attribute. For IDREFS, ENTITIES and NMTOKENS
attributes there's one iteration per ID name or entity name.
- For ENTITY attributes and for the individual tokens of ENTITIES
attributes, the "is public" and "is system" tests work, you can ask for the
"notation of attribute", and the "p", "e" and "o" modifiers of the "v"
format item provide the same information as with OmniMark's native markup
parsers.
- For NOTATION attributes, the "is public" and "is system" tests work, and
the "p" and "e" modifiers of the "v" format item provide the same
information as with OmniMark's native markup parsers.
- The LDAP library, OMLDAP, has been substantially rewritten to improve stability and correct various errors.
What's fixed in OmniMark Studio 7.0.1
- Studio now opens Windows registry keys with appropriate permissions. This
fixes an error whereby Studio would not be able to read the authorization
key when run by users having only read access to the registry key in
question.
- Studio now correctly reads in external library paths when loading a
project.
What's fixed in OmniMark 7
TCPConnectionGetOutput
and TCPConnectionGetSource
now set return values properly when applied to a TCPConnection
that is in error or not connected.
- An error has been fixed that caused
tcp-accept-connection
in the omtcp library to crash or enter an infinite loop when receiving many requests quickly.
- The omfloat library now handles math errors consistently on all platforms.
- The ombcd library had a memory handling error that may have caused unexpected behavior when freeing some
bcd
values. This has been fixed.
- On Windows,
describe
now works on read-only devices, such as CD-Roms.
- On Unix platforms,
make-directory
now gives new directories the correct access permissions.
- On Unix platforms,
describe
now takes Daylight Savings Time into account when reporting file access times.
- Memory leaks and crashes related to memory handling in the omldap library have been fixed.
- An error has been fixed that caused omldap functions to crash when operations were performed after the connection was closed.
ldapOpen
will now allow port numbers up to 65535.
ldapCreateAttribute
, ldapAttributeGetValue
, ldapAttributeGetValues
and ldapModifyEntry
now check the datatype parameter.
- An error in
MailInBoxGetMessage
caused extra null bytes in lines that were longer than 512 characters.
- Quoted names (such as "foo") have been removed from the few places where
they were still accepted.
- Syntax error messages now correctly report the cause of the syntax
error. This error occurred infrequently.
- The external function tcp-accept-connection (or
TCPServiceAcceptConnection) no longer crashes OmniMark or sends it into
an infinite loop if the connection is broken before the function
returns.
- In releases of OmniMark prior to Version 7.0,
when a "do sgml-parse" action was used
with the "with utf-8" option set to "true",
where the parsed document contained an SGML Declaration (i.e. "<!SGML ...")
prior to the DTD, and
a numeric character reference,
OmniMark incorrectly returned the low-order 8 bits of the character's number.
This has now been fixed tso that the UTF-8 encoding is returned.
What's fixed in OmniMark Studio 7
- When Studio automatically loads a file during a debugging session, the include paths are now correctly considered.
- An infrequently-occurring buffer reading error has been fixed. This would happen while Studio was reading data from an edit window during a debugging session.
OmniMark 7.1.2 Documentation Generated: June 28, 2005 at 5:44:45 pm
If you have any comments about this section of the documentation, send email to [email protected]
Copyright © Stilo Corporation, 1988-2005.