Known Bugs in current release
-----------------------------

occamp compiler (occ21)

* This code fails:
  REAL64 x:
  INT64 l:
  SEQ
    x := 107374182400.0
    l := INT64 ROUND x

  due to bug in use of fpstnli32.  We think INT64 ROUND only works
  for numbers that can be represented as INT32s and fails for
  negative ones too.  (Works with INT64 TRUNC)


occam to assembler translator (tranpc) (Linux only)

* IEEE floating point rounding modes are not implemented properly.  This
  will cause discrepencies between results produced by Linux KRoC and
  other versions.  A fix is being investigated.

* The inmos libraries example program `dtodaysp' fails with a core dump.
  The cause is currently unknown.

Run Time System

* Timeslicing processes
  There is no pre-emption done of long-running processes that do not
  communicate in their inner-loop.  A RESCHEDULE() pseudo-operation
  can be added to fix this.  A modification to the kernel to help
  with this is being considered.

* Timers
  There is a bug in the solaris version of the implementation of
  setitimer, which returns earlier than the time set, rather than
  after the deadline.  We consider this an OS bug and have included
  code to make it work correctly.  A longer term fix may be possible.


Interface tool - ocinf

* testing of unsigned int (etc.) types needs to be done.

* documentation examples

* better conversion routines

* better structure reference handling

* doesn't work for non-sparc


-------------

Solaris 2.5

* X occam interface tool example core dumps

------------

Alpha OSF 3.0

* The kroc system gives a warning on every compile from the UNIX
  linker:

/usr/ucb/ld:
Warning: Linking some objects which contain exception information sections
	and some which do not. This may cause fatal runtime exception handling
	problems (last obj encountered without exceptions was xxxx.o).

  We have not found a solution to get rid of it or fix the
  problem it is warning about BUT it should not affect the running
  programs.

------------

Linux

* Top level occam PROC's do not currently have their names prefixed with any
  symbol.  This can, in some cases cause name clashes at link time with 
  external routines written in C.  This is not a problem unless you are 
  calling external C code.  This will be changed in future.

* There is a problem with floating point rounding modes, REAL32s and REAL64s
  are not correctly rounded (according to IEEE definition).  This means
  that any programs using floating point will produce different results from
  C or other KRoC implementations.  We are looking into a fix.

* The configuration doesn't do any checks on the system to check that it has
  the correct architecture.
