Clean Application Windowing

From Clean
Revision as of 13:48, 6 July 2010 by Thomas (talk | contribs) (Created page with 'CAW is a windowing toolkit for Clean. It is easy to use, runs on any platform to which Clean has been ported (Linux, Windows, MacIntosh), and allows a concise style of programmin…')
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

CAW is a windowing toolkit for Clean. It is easy to use, runs on any platform to which Clean has been ported (Linux, Windows, MacIntosh), and allows a concise style of programming. The designers of CAW are not sure whether it adheres to Clean IO philosophy (unique types and the like). However they count with the support of this community to improve the library, and fix any problem with the way it performs input-output. Here is what you must do in order to get CAW running on windows:

  • Download the library. Start is with pre-compiled binaries for Windows ( It is the easiest way to learn about the library. Click on the link [1] to reach the distribution home page.
  • Unpack the package. To this end, use unzip32 or a similar tool. The applets directory contains the reco.dll dynamic library, and small examples illustrating every feature of CAW. Once compiled, you need the reco.dll to run the programs. If you want to compile your own examples, start a project that uses the StdEnv environment. Then go to the task menu, and choose Project/Project Options; check the box No Console. Click on Dynamic Libraries, and add the reco header-file for the dynamic library.
  • Compilation. To compile a program, you will need the header file reco, the reco.dll dynamic library, Japi.icl, and Japi.dcl.
  • Running. In order to run compiled programs, you need to have the reco.dll dynamic library on your path.


You do not need to examine the sources, if you do not care about it. However, if you want to help in improving CAW, remember that the sources have three classes of programs:

  • Java programs. These programs were written by Jorlano Donizetti, based on a paper by Merten Joost, and Udo Backhaus. There is a bat file that you can use to compile the Java programs, generating a JAPI.jar archive.
  • Clean programs that generates C source code. The most important Clean program is japiserv.icl. It transforms the JAPI.jar archive into a C vector, containing the machine code necessary to call the AWT library. There are also Clean programs that generate other portions of the C source code.
  • C programs corresponding to the reco.dll dynamic library. You can compile the C source code by calling makedll.bat. As we stated before, the C source code was generated by using programs written in Clean.


  • Linux version. Linux version of CAW available for download.
  • Windows version. Jorlano has fixed a couple of bugs. Download the new version.
  • Binaries for Windows. A package with binaries for Windows is available for download. Useful for people who don't care about having access to the source code.
  • Java 2. Inicially CAW was based in JVM 1.6, since my intention is to use it to create computer games, for which I need J-3D. However, a lot of people prefer JVM 1.4. In fact, there are many more machines running JVM 1.4 than JVM 1.6. Therefore, this first distribution of CAW accepts JVM 1.4, but in a near future we will need to go back to JVM 1.6. I suggest that people who could not run the previous version of CAW to update their JRE.

Team members

The following people are working to offer you portable application windowing in Clean: Jorlano, phi, junia, edu, lethevert, reny, and marcelo. New volunteers are most welcome.