README of M3PC-Klagenfurt (Modula-3 port for the PC done in Klagenfurt)
=======================================================================


Contents

   1, What is M3PC-Klagenfurt?
   2, Short History
   3, What's new ?
   4, Hard- and Software Requirements
   5, Necessary Files for Installation
   6, Installation
   7, Any comments



1. What is M3PC-Klagenfurt ?
----------------------------

   M3PC-Klagenfurt  (previously called M3PC)  is  a  port  of  the  Modula-3
   compiler release 2.09 to the MSDOS-PC

   It translates Modula-3 source into C soure. Therefore you have to install
   the GNU C-compiler DJGPP as well,  which is distributed, too (see 4). You
   may of course  use a newer  release of the  GNU C-compiler  or additional
   compatible libraries.


2, Short history
----------------

   Modula-3  was  first  ported  to the  PC  by Klaus Preschern,  under  the
   direction of  Prof.Laszlo Boeszoermenyi  at the University of Klagenfurt.
   It is permanently  in use  at our  CS courses  in Klagenfurt.  It will be
   continuously enhanced,  with the goal to come to  an integrated, student-
   friendly  environment.  Contributions  have been done  by  Carsten Weich,
   Johann Jerney, Miklos Szabo, Karl-Heinz Eder and Laszlo Boeszoermenyi.

   Klaus  Preschern,  after  leaving  the  University  of  Klagenfurt,  has
   developed  an alternative Modula-3 PC system,  called EX32.  This system
   provides an own memory management  and good UNIX-compatibility features.
   It supports version 3.x Modula-3 compilers. To our knowledge, it has not
   been tested as extensively as M3PC-Klagenfurt had. Please do not confuse
   the two systems!


3, What's new ?
----------------

   The new M3PC release supports the following (new) features:

          * library to access DOS files and directories
          * threads
          * pickles
          * a shell
            (incl. automatic compilation and UNIX like long filenames)


   (a) Library to access DOS Files and Directories:
       We  offer our  (so called "local")  library  "/m3/lib/libm3loc".  It
   provides among others modules for easy handling of I/O and files, simple
   enough  to be  comprehensible  for beginners.  It  provides "simple I/O"
   (SIO.i3)  for a simple acces to readers and writers,  and "simple files"
   (SF.i3) to connect files with readers and writers.

   A detailed description is given in the comments of the interfaces in the
   directory   "/m3/local/include".   This   version   accesses   DOS-files
   significantly faster than the first version of M3PC.  Especially linking
   large Modula-3 programs  is much faster now.   (On a  50 MHz 80486  with
   16 MByte  of RAM  we  measured  a turn-around time  of 2 minutes  for  a
   5 module, 500 lines program.  If you want to compile only one module you
   will have to wait about one minute.)


   (b) Threads:
       M3-threads are now supported,  nevertheless, without preemption.  In
   programs  not  containing  condition  synchronization  you may  schedule
   explicitly by using the Yield function.


   (c) Pickles:
       Pickles are now fully available.


   Threads and Pickles  are described both  in detail in Greg Nelsons book
   "Systems Programming with Modula-3".  Please  refer  it  for  a  better
   understanding.


   (d) New Release of M3Shell:
       The new release of the shell "m3shell"  supports some  new features
   for tracing programs, etc.  For a detailed descriptions of all features
   please refer to the  LaTex or PostScript  documents in  "/m3/doc".  The
   shell also supports  UNIX like long filenames  and the  "make" command,
   which substitues the lack of the  m3make or m3build, respectively.  The
   shell translates the long filenames you type in into DOS-filenames.  It
   has  a  UNIX-lookalike  "ls"-command.  There are commands  to teach the
   system  new  long  filenames.  You can savely  move  such  files around
   through DOS-directories.


4, Hard- and Software Requirements
----------------------------------

   (a) Hardware:
       You will need a PC:
           *  80486 or 80386 with floatingpoint-coprocessor,
           *  at least 4 but preferable 8 MByte of RAM,
           *  20 MByte disk space free at least.

   (b) Software:
           * DOS 5.00 or higher


5, Necessary Files for Installation
-----------------------------------

   The necessary  files  are  available  at  "gatekeeper.dec.com"  in  the
   directory "/pub/DEC/Modula-3/contrib/m3pc":

              TAR      EXE        39,353 11-07-94  10:11a
              INSTALL  TXT         5,325 11-10-94   4:57p
              M3       TAR     6,799,360 11-07-94   4:26p
              DJGPP    TAR     6,809,600 11-07-94  11:33a
              M3SRC    TAR     6,871,040 11-07-94  11:36a
              README               5,331 11-10-94   5:40p


6, Installation
---------------

   Please read the file "INSTALL.TXT".


6, Any comments
---------------

   Comments should be  given  in  the  newsgroup  "comp.language.modula3".
   Refer to M3PC-Klagenfurt.



Enjoy

     L.Boeszoermenyi, C.Weich, K.-H.Eder
     University of Klagenfurt / AUSTRIA
     November, the 10th 1994

