stream
where one of type markup sink
was expected. This is contrary to the specification, and is
no longer allowed.
signal to
action inside a catch
clause could cause
incorrect code generation, possibly leading to an internal error at run-time.
specified attributes
pseudo-shelf.
key of
operator was the
sole operation applied to a shelf that had been assigned a value.
with
document-element
appeared out of sequence in a do sgml-parse
or do xml-parse
action.
read-only
).
dynamic
function
definition whose export
status did not match a previous elsewhere
definition of
the same function.
string
set
was left unclosed.
opaque
type occurred in a branch of the conditional operator, in a context where a string
source
or markup source
was expected.
string
source
function call with a shelf-class argument (e.g., read-only
) was passed as a value
string source
argument to an outer function call, and the argument of the inner function call was an
alias from do select
or do select-type
.
overloaded
function was defined on a required
record
type.
dynamic
function
could be defined both with and
without an overloaded
qualifier. This is not well-defined, and is no longer allowed.
specified-attribute
was compared to a value of type integer
.
attributes
in the guard of a rule.
repeat over
loop 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.
new
was applied to an invalid value in the header of a using
scope.
repeat over
of a shelf with a fixed-size of zero could
lead to a cascade of incorrect compile-time errors.
#current-input
in process
rules, 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 keyed
test was applied to the attributes
shelf.
attributes
stream
test.
markup-element-event
inside a
module that didn't import other modules would cause a compile-time internal error.
sgml-in
and sgml-out
actions were erroneously
affecting the validating XML parser as well.
external-text-entity
rule triggered by
do markup-parse
could lead to an invalid memory access.
#current-dtd
and #doctype
are set to
incompatible values, and the subsequent program error thrown by #content
was caught, it was possible
to trigger an internal error or incorrect behaviour.
#current-markup-event
on an element with a
namespace-binding attribute was leaking memory.
attributes
or specified attributes
of
an element created by create-element-event
could trigger an internal error or a segmentation fault
at run-time.
signal throw
performed a throw
back to the original coroutine through intermediates.
#content
.
do markup-parse
#current-input
inside a markup sink function
could cause a memory leak or a segmentation fault.
do markup-parse
to a markup source
containing external text entity references in some circumstances could lead to a segmentation fault.
#content
would lead to a segmentation
fault if it included the end of an external text entity, but not its beginning.
repeat over attributes
action could segfault on
an element that has both declared but unspecified, and undeclared but specified attributes.
create-element-event
and create-element-declaration
, could cause a segmentation fault when
processed by do markup-parse
.
attributes
shelf was passed to a function as a read-only
argument.
#content
twice inside a do markup-parse
scope lead to a segmentation fault.
create-element-event
did not
have xmlns-name
assigned even if its attributes specified one.
ATTLIST
declaration was reported as a markup
error in validating XML parser, even though the XML specification allows it.
do markup-parse
to a markup source function
with an argument that was another string source function
followed by drop
could cause an
internal error.
external-text-entity #document
rule could in some rare
circumstances cause a segmentation fault in the interpreter during the loading time.
//
or /./
character sequence could trigger a memory corruption or segmentation
fault.
execute
function in the omprocess
library would not always allow the invoked process to consume all of its standard input, when used on
Windows platforms.
uri.canonical
was properly working only on local URIs,
with no server.
uri.canonical
was stripping the double-slash sequence
into a single slash even before the path segments. The result was an incorrect URI.
uri.canonical
was normalizing the fragment portion of
the URI. The function now conforms to the standard and leaves the fragment unmodified.
maxOccurs
integer attribute value.
external-text-entity
rules for entities whose system identifier was an empty string.
domain-bound global
is never save
d.
export
keyword was
incorrect.
#current-input
and #current-output
were not being tracked properly, allowing invalid programs to
compile. This is contrary to the specification, and has been
fixed.
record
type could not be elsewhere
d
after it had been fully declared.
key of
on a single-item unkeyed record
field
could lead to a segmentation fault at
run-time.
stream
in the header of using output as
.
value-start
and value-end
positional patterns were not
allowed in processing-instruction
rule headers.
with current sgml-dtd
was used with subdocument
in do
sgml-parse
.
new
where only one is allowed.
optional
argument in the
first position for a dynamic
or overriding
function. This is
not well-defined and is now rejected.
dynamic
and overriding
functions. This
is contrary to the specification, and is no longer
allowed.
save
a shelf literal was misleading.
save
to a
built-in shelf was incorrect.
function
imported from a module
conflicted with a require
.
copy
from 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.
record
declaration could
differ from that given in the elsewhere
declaration. 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.
overloaded
switch
function with a
non-parenthesized argument list was not being accepted when compiling patterns
for take
, drop
, and matches
.
previous is
test in various
disallowed contexts were always reporting the content
keyword as
being disallowed.
markup-comment
and marked-section
rules could
affect the boundaries of translate
rules' pattern matching across the
module boundaries. This is now restricted only to the rules within the same
module.
remove
action could fail when applied to a shelf item created by
using new
inside the scope.
content-start
and content-end
patterns in translate
rules
were not firing only at the beginning and end of element content, as they were
supposed to.
#content
of an element with an XML
namespace change could trigger an internal error.
new
could fail when the maximum shelf
size was reached, even when no new item was being added to the
shelf.
do markup-parse
.
stream
was opened, when in fact it was
closed.
#content
was sometimes
incorrectly reported as a part of the SGML declaration.
markup-error
rule.
external-text-entity
rule and then
continuing to feed the parser could cause a segmentation fault.
do markup-parse
command applied to a join of
xerces.xml
external parser and another markup source could cause a
segmentation fault at run-time.
markup source
after catching a throw could
erroneously lead to a markup event being thrown in a wrong coroutine.
previous is
test always failed on the top-level element, and
its occurrence
was always one.
previous is
test could return random results inside a do
markup-parse
consuming events from parses that were not active any more.
throw
from an external
string
source function
was not being propagated if the function was called in the
setup of a pattern matching environment.
uri.parse
did not accept a URI that contained nothing but
the URI fragment.
markup-buffer
was 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.
relaxng.compile-schema
.
letters
declaration.
field
references had been omitted from the
grammar.