Clean 1.0 for Macintosh available

Clean Support clean@cs.kun.nl
Mon, 1 May 1995 23:54:29 +0200


Announcement: Clean 1.0 for Macintosh available
===============================================

We have released a new version of Clean, version 1.0.0. The new version of
Clean is a major upgrade of the previous release (0.84b).

Platforms and availability:

The new system is currently only available on the Mac (Motorola). We still
have to do some small tests for the versions on the Sun and OS/2. These
systems will be released soon. A native version for the PowerMac
(generating native code) is near completion and will follow later.

You can find Clean 1.0 for the Mac on ftp:

        ftp://ftp.cs.kun.nl/pub/Clean/Clean10/mac

Information about Clean is also available on the World Wide Web:

        http://www.cs.kun.nl/~clean

Clean was originally designed as an experimental intermediate language and
deliberately kept syntactically as poor as possible to be able to focus on
the essential language and implementation issues. Several people use Clean
to construct applications even though Clean was actually not intended as a
programming language. We have now changed Clean into practical applicable
general purpose functional programming language suited for the development
of real world applications.

Compared with the previous version of Clean we have added a lot of new
features. Some are special, others are similar to those commonly found in
other modern lazy functional languages (such as Miranda, ML, Haskell and
Gofer). People familiar with these languages will have no difficulty to
program in Clean and we hope that they enjoy the compilation speed and
quality of the produced code.

The most important changes in the language are:

- Cleans has been changed from an intermediate language to a functional
  programming language with a syntax in the style of Miranda, Haskell and
  the like;
- so, various small syntactic sugar is added (infix operators, a case
  construct, local function definitions, lambda-abstractions, list
  comprehensions, lay-out rule, etcetera);
- overloaded functions, type classes and type constructor classes can be
  defined;
- records and arrays are added as predefined data structure with handy
  operations (such as an update operator for arrays and records, array
  comprehensions etc.);
- the uniqueness typing is refined (now polymorphic and inferred);
- a more refined control of strictness is possible (partially strict data
  structures can be defined for any type, in particular for recursive types,
  there is strict let construct);
- existentially quantified types can be defined.

Converting Clean 0.8 programs to Clean 1.0:
There is Clean program which can convert old programs into the new Clean
notation.

I/O library.
We have converted the old Clean 0.8 I/O library to the new syntax with help
of the converting program. This library will be available on all system
such that you can port interactive Clean programs to other platforms
without modification of code.

We are also preparing a new library, called the Clean 1.0 I/O library.
It will also be put on the net later, people who want to experiment with it
can contact us. We have this new lib only for the Mac and it will take some
time before it will be on other systems as well.
The new I/O library has the following advantages over the old one:

- the I/O library is improved (with respect to orthogonality, modularity,
  extendibility, portability);
- the I/O library is extended allowing to define interactive processes
  running interleaved inside one application which can communicate via files,
  shared data and message passing;
- one can define interactive processes which (in the near future) can run
  distributed on workstations connected via a network.

We will keep you informed about new developments.