occam For All : Kent Retargetable Occam Compiler (KROC)

Version 0.9 Beta

We are pleased to announce the 9th beta release of the KROC system developed by the "occam For All" (oFA) project, which is part of the (UK) EPSRC Portable Software Tools for Parallel Architectures programme.

  *** NEW *** NEW *** NEW *** NEW *** NEW *** NEW *** NEW *** NEW ***
  *                                                                 *
  *  Inclusion of occam compiler supporting experimental            *
  *  user-defined operators with documentation to describe its use  *
  *  and two example implementations:                               *
  *    dynamic strings (DSTRING) with documentation                 *
  *    COMPLEX32 and COMPLEX64                                      *
  *                                                                 *
  *  Updated experimental synchronisation libraries:                *
  *    EVENTs, SEMAPHOREs, RESOURCEs and BUCKETs                    *
  *  with new documentation for this version.                       *
  *                                                                 *
  *  Numerous minor bug fixes                                       *
  *                                                                 *
  *** NEW *** NEW *** NEW *** NEW *** NEW *** NEW *** NEW *** NEW ***


KROC is a portable occam(TM) 2.1 compiler system that enables occam to run on non-transputer platforms. We currently support these systems:

This release of KROC is available from the Internet Parallel Computing Archive (IPCA), funded by JISC at:

KROC works by translating code produced by an SGS-Thomson(TM) occam Toolset compiler into the native assembler for the target architecture and linking in a small (< 2K bytes) kernel that provides the process scheduling and message-passing functionality of transputer micro-code. Basic context-switch overheads for an arbitrary number of processes are around 600 nano-seconds on a Sparc-20 and 230 nano-seconds on a 233 MHz Alpha. Process creation and shutdown overheads are the same order of magnitude.

Release details

KROC supports the significantly extended occam2.1 language released by SGS-Thomson for the transputer along with experimental user-defined operator enhancments by the OFA project team. It also gives access to underlying OS facilities and libraries through an interfacing tool, which translates C header files into occam and generates the necessary linking stub code (Sparc SunOS only). In addition, you can call native assembler for inner loops of computationally intensive applications. Finally, the separate compilation facilities (with full semantic checking) helps with the management of large projects.

The binary releases are for Sun Sparc processors running SunOS 4.1.3U1 (aka Solaris 1.3) or SunOS 5.5 (Solaris 2.5) and DEC Alpha OSF/1 3.0. Motorola PowerPC and other processor versions are being worked on. At a later date, we will release a further version of this system containing extra tools. We hope to have a working multiprocessor version for networks of workstations available by the middle of this year (1997).

A public source release of the generic KROC translator, kernel and other elements may follow later under the GNU license. If you would like to be an early tester for the source release, i.e. you wish to retarget to another processor not already listed in the TARGETS file, please contact us.

You do NOT need an occam compiler to use KROC since we include one that has been derived from the SGS-Thomson Microelectronics occam2.1 compiler. This compiler will not generate transputer binaries and is only usable for KROC. Lots of thanks and appreciation to SGST-ME at Bristol, and Tony Debling especially, for this and other materials that have be made public (on the IPCA).

Included Documents

On-line WWW Documentation

The full occam2.1 language reference manual at:

The complete occam library documentation is available at:


The development of the release of the Sparc and Alpha-targeted KROC was done at the University of Kent at Canterbury by the following people:

David Wood
Professor Peter Welch
Michael Poole
Carl Lewis
Jim Moores

with the help of Dave Beckett and Vedat Demiralp.

Please contact us at the address below if you have problems. Please give a full description of your problem, including your source files that demonstrate the problem if necessary. Please also indicate the release of the system you are using (in the file VERSION in the distribution) and the type of system it is for (in the file HOST).

Occam For All Team
31st March 1997