What's fixed

What's fixed in OmniMark 11.0.3

  • The ODBC backend for the omdb library on 64-bit Linux has been modified to use the same type definitions as most common ODBC clients on that platform.
  • The execution time of the current elements and elements of constructs was growing proportionally with the number of live coroutines.
  • Output of text concatenated with #content or another expression that emits signals could cause the the signal to be processed before the text, if the current output was a markup sink function redirecting its #current-input to a markup source function.

What's fixed in OmniMark 11.0.3 Studio for Eclipse

  • Bug preventing step-into a function definition while debugging has been fixed.

What's fixed in OmniMark 11.0.2

  • The 32-bit Windows installers were updated to resolve issues writing Windows registry.
  • Windows installer updated to install dynamic DLL dependencies for OMXSLT.
  • Statically linked dependencies for OMVFS on Windows.
  • Merged the OmniMark Studio documentation into the OmniMark documentation.

What's fixed in OmniMark 11.0.1

  • Storing attribute names in shelves during a parse and emitting them later could produce invalid output.
  • The OMFTP was crashing on 64-bit platforms.
  • Single Processing Engine now reports compile-time errors and warnings.

What's fixed in the OmniMark 11.0 compiler

  • The compiler incorrectly accepted an alias to an attribute fragment without the prefixing attribute keyword, leading to incorrect output.
  • An internal error was triggered at compile-time if a shelf-class function taking specified attributes as an argument appeared in the header of a repeat over loop, and was followed by another repeat over loop, any markup parsing construct, or a variety of other block-level language constructs.
  • A compile-time error was incorrectly triggered if an insertion point of after [0] was used when creating a new item on a record field.
  • An internal error could be triggered at run-time if %c was passed to a string source or markup source function, and the result of this function involved in further processing.
  • A using prefix with an indexed attributes reference would trigger a compile-time error.
  • A declare data-letters declaration was being allowed in a program file after executable code had been encountered. This is contrary to the specification, and can lead to undefined behaviour or compile-time internal errors.
  • In certain circumstances, the compiler did not emit a warning when save was not applied to a domain-bound global shelf.
  • An overloaded prefix function could not be invoked if the first argument was an element qualifier.
  • An internal error could be triggered at compile-time if a syntactically-invalid catch declaration was later referenced in the program.
  • Applying the indexer lastmost to an attributes expression would lead to an internal error at compile-time.
  • An insertion point for an expression-level new was not being parsed correctly if it appeared in a pattern context.
  • An internal error could be triggered at compile-time if a conversion-function or an infix-function was invoked in the pattern of a find rule.
  • An internal error was triggered at compile-time if a has key test was applied to the result of new on a record field.
  • Using a shelf literal in the header of a pattern rule without disambiguating its type could trigger an internal error at compile-time.
  • An internal error could be triggered at compile-time when the pattern of a lookahead not could not fail (e.g., white-space*) and was embedded inside a more complex pattern.
  • A throw from a function invoked in the header of a translate rule was being discarded.
  • If name of was passed to a function expecting a shelf-class argument, a non-sensical error message was emitted or, under certain circumstances, an internal error could be triggered at compile-time.
  • The compiler now verifies if the specified source file is readable before beginning to compile. Previously, this could lead to a confusing scenario where the Batch Compiler reported that there were compile-time errors, whereas in reality the source was simply non-existent.
  • A warning is now emitted if #current-output is encountered on the right-hand side of put, since this can lead to confusing output.

What's fixed in the OmniMark 11.0 runtime

  • Consuming the #current-input of a markup sink function joined with another markup source could lead to an internal error in some rare situations.
  • Applying save or save-clear to a shelf being used in a repeat over loop would incorrectly leave a connection between the inner shelf and the outer shelf. This would lead to an error at run-time.
  • Applying xerces.xml to #current-input within a string source function would cause an internal error after the parse.
  • Feeding a do markup-parse with multiple duplicated markup-external-text-entity-event regions with no preceding markup-external-text-entity-reference-event could cause a segmentation fault.
  • Using a #xmlns qualifier in an open element test outside of an active parse would lead to a segmentation fault at run-time.
  • A segfault could occur at the end of execution in programs that consumed large amounts of memory.
  • Functions create-element-event and create-specified-attribute could cause a segmentation fault if given an empty string value for an attribute declared as ID or NAME.
  • The error message thrown by create-element-event in case of an invalid attribute now reports the invalid attribute value.
  • Emitting processed #content into multiple markup sink and encountering a resolution failure for an external text entity in one of the sinks could cause an internal error and a segmentation fault.
  • Large run-time memory consumption could result in a segmentation fault in rare ciscumstances.
  • Using -brief and -version on the command-line at the same time would result in OmniMark silently exiting. These options now conflict.
  • The well-formed XML parser was dropping the parsed DEL (code 0x7F) character from the input content.
  • The SGML parser was silently accepting erroneous external identifiers with no space between the PUBLIC or SYSTEM keyword and the following quoted string. A markup warning is now emitted.
  • The well-formed XML parser was setting #doctype to the name of the root element of the document instance even if the preceding DOCTYPE declaration was present. The DOCTYPE declaration now takes precedence.

What's fixed in OmniMark 11.0 libraries

  • When validating against a W3C schema or RELAX NG schema, the omxerces markup parser could trigger a segfault at run-time if the same element name was re-used for different contexts.
  • If an OASIS Catalog maps an XML entity to a relative URI, the URI is now resolved as relative to the location of the catalog. If it is still relative and cannot be found, it will later be resolved as relative to the location of the referencing XML entity.
  • The omxerces library has been patched to address CVE-2015-0252. See CVE-2015-0252.
  • The omxmlwrite library was producing invalid XML for any input text fragment ]]>.
  • Function omrelaxng.compile-schema was failing on certain valid RELAX NG schema that used deeply nested attribute definitions.
  • The resolution preference specified in the oasis.compile-parsed-catalog call was not propagated to delegate catalogs and next catalogs.
  • vfs.open-https has been enabled on 64-bit Linux.