contentsconceptssyntaxlibrariessampleserrorsindex
Full text search
Corrections for the OmniMark CI 4.0 release  
------  

The following list of OmniMark errors found in V3R1a have been fixed in 4.0:

Memory Leaks

If an external function signals an exception in nested do sgml-parse's, memory is leaked.

Programs that contained both sgml-error rules and explicit references to the #sgml stream leak memory when the sgml-error rules are executed.

Writing single values larger than 8 Kb to the #sgml stream leaked memory.

Parsing documents that have a document element that has a CDATA attribute leaked memory.

Programs that write to the #sgml stream from an sgml-error rule leaked memory.

Programs that accessed data attributes leaked memory.

do sgml-parse

Specifying an unknown element in a do sgml-parse instance with document-element unknown-element caused OmniMark to crash.

In process programs, the state of the #sgml stream is attached after a non-nested do sgml-parse action was executed. It should be unattached.

Accessing the dtds shelf with a nonexistent key in a do sgml-parse instance with dtds key "unknown-key" causes OmniMark to crash.

The SGML stream isn't being flushed for find rules that contain embedded conditions such as find "&" (when number of current elements > 0). This means that the test can potentially fail when it should have succeeded.

Functions

The following code, which accesses an optional, unspecified function argument, does not report an access error in the second action:

  output x when x is specified
  output x

Passing a constant as a read-only function parameter causes OmniMark to crash.

Function argument heralds sharing the same prefix are not being properly distinguished. Consider this definition:

  define function foo sk1 read-only switch n1 optional
                       sk   value counter n2 optional
                       as
           ...
Now calling the function so:
  foo sk 1
The herald "sk" is mistaken for the herald "sk1".

Executing the submit action in a function invoked by an sgml-error rule causes an internal error.

The method OMXF_GetBinaryOrderingValue now returns the correct binary ordering.

Programs that try to match patterns of size > 2k when using external source functions fail.

Using the copy action to copy to a modifiable shelf argument corrupts the shelf.

The following code, where "arg" is an optional function argument, causes an internal error. In V3R0 the internal error is 86-440 and in V3R1a it is 86-335:

  output sample when sample is specified
  do when sample is specified
     output sample
  done

The following code, which creates and removes the same keyed item from a shelf with an initial -size of 0, causes OmniMark to crash:

       global stream s var initial-size 0
       process
          new s key "some"
          new s
          remove s
          new s key "some"

Miscellaneous

Copying one stream shelf to another changed the target shelf's name for some error messages.

OmniMark enters an infinite loop while writing to a file when the disk is full.

Assigning to a shelf with a declared size greater than 1 from the command line was not being reported as an error.

Stream items assigned multi-part values via a set action did not have the stream's name attached to the stream item. The internal stream #ANONYMOUS name was instead attached.

The test do when file x is writable applied to a file that does not exist, where the directory it names does exist and is writable, now correctly returns the value true.

The following incorrect code is incorrectly reported:

  process
    set #first to true

The error message now refers to switch #last instead of #first.

The test attributes has key x applied to an element that has no attributes causes OmniMark to crash.

Trying to match entity names with the following pattern when there are only lowercase letters causes OmniMark to report an "insufficient memory error" and then terminate:

  translate entity named (lc+ [lc or digit]+=>lower) => ent-name

Empty strings are incorrectly parsed in command-line argument files.

The expression do when file <my-file> matches <string expression> does not work.

An OmniMark program is limited to 8 MB of constant strings.

The rule translate entity valued any+ named any+ is declared to be an error.

------  
----  

Top [CONTENTS] [CONCEPTS] [SYNTAX] [LIBRARIES] [SAMPLES] [ERRORS] [INDEX]

Generated: April 21, 1999 at 2:01:33 pm
If you have any comments about this section of the documentation, send email to [email protected]

Copyright © OmniMark Technologies Corporation, 1988-1999.