elsewheredefinition of an
overridingfunction, without providing an implementation of the function. This is contrary to the specification. A compile-time error is now triggered.
-gc-thresholdcommand-line argument was limited to 32-bit values. This is inappropriate on 64-bit platforms.
insertion-breakdeclaration would lead to an illegible error message.
=form of the pattern capture operator was being given precedence in expression contexts such as
take. This prevented correct programs from compiling.
specified attributesshelf was not allowed in a
processrule even when applied to an element event.
outputis used at the top-level of a
markup sinkfunction, since this can fail at run-time.
do markup-parseblock nested inside either a
do xml-parsewould corrupt the type of
functionon one type, without also exporting any other
functions on other unrelated types.
!=and the type of the arguments was
stream. This could cause programs to behave incorrectly.
name ofoperator was applied to the
copy-clearhad to have its type disambiguated. The type context of the right-hand side of
copy-clearis now determined by the left-hand side of the action.
is specifiedtest was applied to the
has keywas applied to an element qualifier in an element test. This is now a syntax error.
#contentdoes not trigger the Attempting to process content twice in one rule error even if it consumes the entire rest of the content.
savedeclarations could, on rare occasions, produce corrupted outputs.
markup-element-eventcould cause an internal error or memory corruption.
output #contentaction could be used after
output %cwith no error. This is now flagged as a run-time error.
#contentsource twice in the same markup rule could cause a segmentation fault during the execution.
create-element-declarationan element declaration produced by parsing a DTD could lead to a segmentation fault at run-time.
-gc-keep-memorycommand-line option could cause a segmentation fault at the end of program execution.
acceptheader in HTTP requests.
MailInBoxGetMessagewas occasionally ignoring the lines of the message body that started with the '+' character.
&can now be applied to two
omrelaxnglibrary refused to compile a valid RELAX NG schema using a
combineattribute on a
startnode only in the including schema.
umodifiers were being rejected on
%eq. This was contrary to the specification.
importdeclaration, a non-sensical error message was emitted.
valueargument was passed as a shelf-class argument to a shelf-class function, and the result of the function was used in a
do select-typeis missing the required alias.
newexpression of type
markup sinkappeared as an argument of a
attributealias in a
repeat over attributesor
repeat over specified attributesloop was being converted to a
stringvalue and back upon assignment to a shelf. This lead to the loss of the attribute's declaration in the target shelf.
optionalargument initializers did not agree between a
dynamicfunction and one of its
overridingfunctions. The correct error message is now emitted
contentwas used on the left-hand side of a
set, in a context where no shelf called
name ofcould not be declared
infix-functionwith either argument declared to have type
markup-element-eventcould not be invoked using an element expression in that position.
valuefunction argument, inside an
repeat overloop. This would lead to incorrect results at run-time.
#contentif it happened to be used as the argument of an
overloadedfunction call. This could cause correct programs to fail to compile.
contentappeared in a
processrule, in certain contexts.
markup sourcefunction's signature did not match its declaration.
streamfield of a
recordinstance was used in a branch of a conditional operator, in the head of a
using output asscope.
markup source functionused by
do markup-parse, the scope within
do markup-parseterminated without a proper cleanup. This could lead to resource leaks, internal errors, or segfaults.
create-element-eventan attribute shelf item with an empty string for a key would cause a segmentation fault at run-time.
attributes of create-element-eventcould lead to a segmentation fault at run-time.
create-unspecified-attributemultiple times could lead to an infinite loop.
declaration of attributes of create-element-eventwas not always correctly initialized. This could lead to a run-time error or segmentation fault.
#contentafter the first was interrupted could drop some data content.
specified-attributeand then accessing its value could cause an internal error at run-time.
do scanaction from a
markup-errorrule could cause an internal error at run-time.
alwaysclause to a coroutine function which called another function returning the same type of value, a program error could be issued even though there was no error.
jointo a function that pattern matches ahead on the source could leave the source in an inconsistent state, potentially leading to corrupt output or a segmentation fault.
create-element-eventonly to fetch an
attributeof the result could cause a segmentation fault.
#contentwas only partially consumed, the remaining unpaired
#markup-endevents would appear in reverse order.
streamattached to a
referentby the end of the
nested-referentsscope the referent was bound to could lead to a segmentation fault at run-time.
#content, and then getting processed by a
do markup-parsein a different
markup sinkcoroutine, could cause an internal error and segmentation fault.
FTPConnectionRemoteInputFile, the operations could fail with error
netutil.host-ipfunction in the omnetutil library would return a useless value when querying for the address of the local host.
streamwhere one of type
markup sinkwas expected. This is contrary to the specification, and is no longer allowed.
signal toaction inside a
catchclause could cause incorrect code generation, possibly leading to an internal error at run-time.
key ofoperator was the sole operation applied to a shelf that had been assigned a value.
with document-elementappeared out of sequence in a
exportstatus did not match a previous
elsewheredefinition of the same function.
stringset was left unclosed.
opaquetype occurred in a branch of the conditional operator, in a context where a
markup sourcewas expected.
string sourcefunction call with a shelf-class argument (e.g.,
read-only) was passed as a
value string sourceargument to an outer function call, and the argument of the inner function call was an alias from
overloadedfunction was defined on a
functioncould be defined both with and without an
overloadedqualifier. This is not well-defined, and is no longer allowed.
specified-attributewas compared to a value of type
attributesin the guard of a rule.
repeat overloop could crash the compiler if one of the aliased shelves was a shelf literal.
repeat over. This is contrary to the specification. This had been an error in versions of OmniMark previous to 10.0.0. The error has been re-instated.
newwas applied to an invalid value in the header of a
repeat overof a shelf with a fixed-size of zero could lead to a cascade of incorrect compile-time errors.
processrules, even though it was not attached and bound to fail at run-time.
is specified) to the result of a function call could trigger an internal error at compile-time.
is keyedtest was applied to the
markup-element-eventinside a module that didn't import other modules would cause a compile-time internal error.
sgml-outactions were erroneously affecting the validating XML parser as well.
external-text-entityrule triggered by
do markup-parsecould lead to an invalid memory access.
#doctypeare set to incompatible values, and the subsequent program error thrown by
#contentwas caught, it was possible to trigger an internal error or incorrect behaviour.
#current-markup-eventon an element with a namespace-binding attribute was leaking memory.
specified attributesof an element created by
create-element-eventcould trigger an internal error or a segmentation fault at run-time.
signal throwperformed a
throwback to the original coroutine through intermediates.
do markup-parse #current-inputinside a
markup sink functioncould cause a memory leak or a segmentation fault.
do markup-parseto a
markup sourcecontaining external text entity references in some circumstances could lead to a segmentation fault.
#contentwould lead to a segmentation fault if it included the end of an external text entity, but not its beginning.
repeat over attributesaction could segfault on an element that has both declared but unspecified, and undeclared but specified attributes.
create-element-declaration, could cause a segmentation fault when processed by
attributesshelf was passed to a function as a
#contenttwice inside a
do markup-parsescope lead to a segmentation fault.
create-element-eventdid not have
xmlns-nameassigned even if its attributes specified one.
ATTLISTdeclaration was reported as a markup error in validating XML parser, even though the XML specification allows it.
do markup-parseto a
markup source functionwith an argument that was another
string source functionfollowed by
dropcould cause an internal error.
external-text-entity #documentrule could in some rare circumstances cause a segmentation fault in the interpreter during the loading time.
/./character sequence could trigger a memory corruption or segmentation fault.
executefunction in the omprocess library would not always allow the invoked process to consume all of its standard input, when used on Windows platforms.
uri.canonicalwas properly working only on local URIs, with no server.
uri.canonicalwas stripping the double-slash sequence into a single slash even before the path segments. The result was an incorrect URI.
uri.canonicalwas normalizing the fragment portion of the URI. The function now conforms to the standard and leaves the fragment unmodified.
maxOccursinteger attribute value.
external-text-entityrules for entities whose system identifier was an empty string.
domain-bound globalis never
exportkeyword was incorrect.
#current-outputwere not being tracked properly, allowing invalid programs to compile. This is contrary to the specification, and has been fixed.
recordtype could not be
elsewhered after it had been fully declared.
key ofon a single-item unkeyed
fieldcould lead to a segmentation fault at run-time.
streamin the header of
using output as.
value-endpositional patterns were not allowed in
with current sgml-dtdwas used with
newwhere only one is allowed.
optionalargument in the first position for a
overridingfunction. This is not well-defined and is now rejected.
overridingfunctions. This is contrary to the specification, and is no longer allowed.
savea shelf literal was misleading.
saveto a built-in shelf was incorrect.
functionimported from a
moduleconflicted with a
copyfrom a fixed-size shelf to a variable-size shelf, even when the former was larger than the latter. This cannot succeed at run-time and must be disallowed.
of, as for example
length of, were being rejected if they appeared as a function argument and the following function argument was heralded by the second token of the two-token keyword.
recorddeclaration could differ from that given in the
elsewheredeclaration. This is contrary to the specification and is no longer allowed.
using input as "%c"was not always tracking the use of
%c, which could lead to correct programs not compiling.
switchfunction with a non-parenthesized argument list was not being accepted when compiling patterns for
previous istest in various disallowed contexts were always reporting the
contentkeyword as being disallowed.
marked-sectionrules could affect the boundaries of
translaterules' pattern matching across the module boundaries. This is now restricted only to the rules within the same module.
removeaction could fail when applied to a shelf item created by
using newinside the scope.
translaterules were not firing only at the beginning and end of element content, as they were supposed to.
#contentof an element with an XML namespace change could trigger an internal error.
newcould fail when the maximum shelf size was reached, even when no new item was being added to the shelf.
streamwas opened, when in fact it was closed.
#contentwas sometimes incorrectly reported as a part of the SGML declaration.
external-text-entityrule and then continuing to feed the parser could cause a segmentation fault.
do markup-parsecommand applied to a join of
xerces.xmlexternal parser and another markup source could cause a segmentation fault at run-time.
markup sourceafter catching a throw could erroneously lead to a markup event being thrown in a wrong coroutine.
previous istest always failed on the top-level element, and its
occurrencewas always one.
previous istest could return random results inside a
do markup-parseconsuming events from parses that were not active any more.
string source functionwas not being propagated if the function was called in the setup of a pattern matching environment.
uri.parsedid not accept a URI that contained nothing but the URI fragment.
markup-bufferwas written to through multiple sinks, the order of the written string data was determined by the order in which the sinks were closed. This could lead to unexpected results, so this has been changed so that the data order depends on the order in which the sinks are open.
fieldreferences had been omitted from the grammar.