PROBLEMS.TXT                   Copyright (c) 1991-1996 xTech Ltd
----------------------------------------------------------------

                 Native XDS-x86 OS/2 Edition
                 ---------------------------
                     v2.17 (pre-release)

                        Known Problems


Optlink calling convention
--------------------------

Take into account that XDS compiler does not yet support the Optlink
calling convention used by IBM C Set++ and Visual Age C++ compilers,  
and,  much worse,  in the standard C libraries,  suppiled with these 
compilers.  So  you  can not call any functions from these libraries
(or other C modules  compiled  by  IBM compilers) directly from your
Modula-2 or Oberon-2 code.  In order to call an _Optlink C function, 
you have to write a wrapper C function with _SysCall conventions.


PIM to ISO Modula-2 Porting
---------------------------

XDS requires the use of "FORWARD" procedures declarations when
necessary. This "declare-before-use" approach is perfectly valid
for ISO-conformant compilers.

There is a lot of Modula-2 dialects, most of which are based on PIM.
XDS Modula-2 in the default mode (when the M2EXTENSIONS option is
turned off) is 100% ISO compliant.

The following is a compact list of language features introduced in
ISO Modula-2 which do not exist in PIM. Refer to the User's Guide
(XDS Modula-2 | New language features section) for details.

  - New keywords and pervasive identifiers
  - Syntax for source code directives
  - Complex types COMPLEX and LONGCOMPLEX
  - PACKEDSET types
  - String concatenation
  - Value constructors
  - Multi-dimensional open arrays
  - Procedure constants
  - Additional whole number division operators
  - INT and LFLOAT type conversion functions
  - Module finalization
  - Exception handling
  - Termination
  - Coroutines and interrupt handling
  - Module protection
  - The module SYSTEM significantly changed
  - New system modules added: EXCEPTIONS, M2EXCEPTION,
    TERMINATION, COROUTINES

Language features which do not exist in ISO Modula-2:

  - EXPORT and EXPORT QUALIFIED statements in definition modules.
  - Type casting using TypeName(Expression). Use SYSTEM.CAST instead.
    Note: XDS supports old style type casting as an extension.


Bug reporting
-------------

If you suspect that you found a bug in XDS:

    1. Ensure that you have the latest version of XDS.
    2. Ensure that ALL your sources had been recompiled by the
       latest version of XDS.

If you are still sure that it is an XDS bug, please report it to us.
We are grateful indeed for bug reports.

Please provide the following information:

    - version number of XDS you use
    - platform details (CPU, FPU, and operating system)
    - XDS compiler options

along with a minimal piece of source code causing error.

Please send bug reports to:

    xds@iis.nsk.su.

                        [end of document]
