[Search for users] [Overall Top Noters] [List of all Conferences] [Download this site]

Conference hydra::amiga_v1

Title:AMIGA NOTES
Notice:Join us in the *NEW* conference - HYDRA::AMIGA_V2
Moderator:HYDRA::MOORE
Created:Sat Apr 26 1986
Last Modified:Wed Feb 05 1992
Last Successful Update:Fri Jun 06 1997
Number of topics:5378
Total number of notes:38326

890.0. "Swiss quality Modula compiler" by DCC::JAERVINEN (Don't make your personal name too long) Wed Nov 11 1987 07:07

Yesterday, I received the demo disk for the new Swiss Modula-2
compiler. (Fast service, I mailed them a DM 10,- bill Wednesday last
week). The disk is public domain; if anyone is *really* interested, I
could put it online, but they sent me the German version (German
instructions, German error messages for the compiler and their version
of uEmacs).

The disk contains the complete compiler with reduced symbol tables etc.
so you can only compile small modules, and a couple of libraries which
are required for the few demos on the disk. One of the demos is Leo
Schwab's 'Tilt' in Modula. The basic InOut library is there, so you can
write & compile simple modules.

Anyway, I rushed to my Amiga to try it out. Here are some observations
after having played with it for one night (all the figures are just
from my head, I forgot to write down anything):

- the compiler is rather big but does run in 512k. The executable file
  is roughly 135kb, but during compilation of even small modules it
  hogs ~300 kb memory.
  
- but... it's fast! Because I only have 512k I couldn't compile any big
  programs in ram, but I managed to compile a couple of small modules.
  Compilation time ~1 sec vs. ~5 sec. with TDI Modula (which I tested
  long time ago, it was V2.02).
  
  The compiler is also 'reusable'; you can either give a number of
  filespecs on the same line when starting the compiler, and it will
  compile all of them separately, or let it prompt, and it prompts
  for more files to compile until give a null filespec (=return).
  This way you can at least save the time required to load the compiler
  when running from disk. (In fact, you could keep a window with the
  compiler active at all times and save having a duplicate in RAMdisk).
  
- I couldn't do much to verify runtime performance; I tried a little
  sieve of Eratosthenes program from a book that I once tried with
  TDI Modula. It ran ~9 secs with TDI, ~6 secs with this one. But this
  is obviously not a very comprehensive benchmark.
  
- Error messages seemed excellent (the error message text file is ~20
  kb). The system uses a version of uEmacs; if there are compilation
  errors, the compiler creates a (binary) file which seems to contain
  pointers and codes to errors in source. If you then edit the source
  with uEmacs you can go to the next error in source by hitting F2, and 
  Emacs puts the cursor at the error location and diplays the error
  message at the bottom of the screen.
  
  Looks like it would be a piece of cake to adapt e.g. Uedit to do the
  same thing (I don't especially like uEmacs). In fact, it should be
  possible to create a somewhat LSE-like environment for it with Uedit.
    
- runtime error handling looks good too. Runtime catches overflows,
  does boundary checking, control-C trapping etc. (According to their
  brochure some of that can be turned off; I don't know how, because
  the demo disk had no documentation with it). Drawback is that the
  source line # isn't displayed (maybe also possible if you know how to
  do it).
  
- the linker is fast. Even from disk, it seemed at least twice as fast
  as TDI. I didn't try it from RAMdisk.
  
  It is also easy to use; you just give it the name of the main module,
  and it collects the rest by itself (easy in Modula).
  
All in all, judged by the demo disk, I'd say this is the best Amiga
compiler I've come across so far. (This is a *biased* statement;
regular readers of this file know that I'm not exactly a fan of C :-)
With a bit more memory, so you can do things in RAM, it should be
really lightning fast too.

    
T.RTitleUserPersonal
Name
DateLines
890.1I've heard of this systemMEIS::ZIMMERMANAngry goose! Angry, angry goose!Wed Nov 11 1987 14:4114
This system was reviewed in Amazing vol 2, nr 1.  It's available on 
Fish Disk 24.  The reviewer was also impressed by the system's speed 
and ease of use.  He complained that there were no routines for real 
or integer IO and that the math lib was missing.  He wrote a couple 
of integer IO routines (source is in the article) and commented on 
how easy it was to do that in Modula.

I wonder whether there have been any enhancements during the year 
since it appeared on Fish 24.  If the latest ETHZ version is "new and 
improved", it might be worth it to send to Switzerland for a copy.  
Do you have an address it can be ordered from?  

- Cliff

890.2Some info from usenetTLE::ANDERSONMike AndersonWed Nov 11 1987 20:36103
Newsgroups: comp.sys.amiga,comp.lang.modula2
Path: decwrl!labrea!jade!ucbvax!sdcsvax!ucsdhub!esosun!seismo!uunet!nuchat!sugar!schaub
Subject: M2Amiga, a new Modula-2 compiler
Posted: 29 Oct 87 23:48:18 GMT
Organization: Sugar Land UNIX - Houston, TX
Xref: decwrl comp.sys.amiga:10036 comp.lang.modula2:468
 
 
ANNOUNCEMENT:
 
        //    							        //
       //     M2Amiga						       //
   \\ //      A new single pass Modula-2 compiler for the Amiga    \\ //
    \X/ 							    \X/
 
M2Amiga the ultimate Modula-2 compiler for the Amiga is available now!  This
compiler is derived directly from Professor Wirth's new single pass compiler
and has been adapted to the Amiga environment by the same team that released
the public domain ETHZ compiler on Fish Disk #24. Since the release of  this
version a lot  of changes  had been  made to  fit optimally  into  the Amiga
environment.
 
M2Amiga works with version 1.2 of the Amiga operating system and runs on the
Amiga 500, Amiga 1000 and on the Amiga 2000 with at least one disk drive and
at least 512k of RAM. The system  can be  used either  from the CLI (Command
Line Interface) or from within the workbench environment 
 
This system comprises:
 
- an English or German language User Guide which explains in detail how  the
  system works, describes the basic modules and contains all interfaces with
  the Amiga operating system as Modula-2 definitions. This documentation and
  the English introductory guide allow  both the  beginner and the  advanced
  user to find the information he or she needs quickly and easily.
 
- a single  pass compiler  which produces  68000 machine  code from standard
  ASCII files at high speed. It can  generate on request  code to test array
  limits, stack  limits, overflow  and missing  return instructions etc. The
  compiler  does not interrupt on  errors but  continues compilation, noting
  any further ones. Exceptionally accurate error messages  are recorded in a
  file for later display by the editor.
 
- mc68000 specific operations as reading and writing registers, inline 68000
  instructions, FFP representation of REAL numbers (together with IEEE)  are
  supported by the compiler. Also supported are double precision  types. ROM
  calls (Exec, Intuition etc) DO NOT REQUIRE intermediate code.
 
- a  run-time system  takes into  account the special conditions of a multi-
  tasking system. Program crashes  (division by 0, address errors etc.)  are
  trapped, all open files are closed and all allocated memory is released.
 
- an editor derived from microEmacs that places the cursor at  the error and
  reports the error in plain text. Menus and error messages are  displayable
  in either German or English.
 
- a linker which automatically searches for all the  implementation  modules
  belonging  to  a module  and combines them  into a  program  which can run
  either from the workbench environment or from the CLI.
 
- all definitions relating to  the Amiga  operating system.  The definitions
  follow  the  official  definitions  for  the  C  programming  language  in
  structure and nomenclature. Modula-2's  much more  stringement data typing
  has been used in these definitions wherever possible. Remember: NO  OBJECT
  files with intermediate code needed!
 
- a  large  number  of  basic  libraries:  Arguments,   ASCII,   Conversions,
  Coroutines, FileNames, FileSystem,  FFPConversions, Heap,  InOut, MathLib0,
  MathLibLong, RandomNumbers,  RealConversions,  Storage,  Strings, Terminal,
  TextWindows and many more.
 
- even more: additional utilities are available for this basic package. There
  is a loader with  a source level  debugger, a converter for  standard Amiga
  object files  and further libraries  which are extremly  useful for program
  development.
 
 
The single pass compiler, the  user-friendly run-time  system and the absence
of   intermediate  code for  ROM calls  makes this system very  suitable  for
efficient program development on the Amiga.
 
M2Amiga  is  available  in  its  German version since August 87 and Interface
Technologies  Corporation and I are  very proud to  announce this product now 
on the American market. 
 
M2Amiga costs $199 (+$5 for shipping and handling) and is available from
 
Interface Technologies Corporation	further info (713) 523 8422 Markus
3336 Richmond,  Suite 323		orders       (800) 922 9049
Houston, Tx 77098
 
Also available:
- a demo version for limited  programs and with just a few libraries.
  Cost: $5 (+$1 for shipping and handling)
  Will be on a Fish Disk soon.
 
In Europe:
A.+L. Meier-Vogt, Im Spaeten 23, CH 8906 Bonstetten/ZH, +41 1 700 3037
 
Being one of the developers of this product I'll be happy to answer your
questions by e-mail, mail or on the phone.
 
Markus Schaub
M2Amiga Developer
890.3DCC::JAERVINENDon't make your personal name too longThu Nov 12 1987 11:5216
    re .1: I think .2 answers most of your questions (BTW, I think .2
    has been posted here already elsewhere).
    
    Yes, this is a new version (the one I got says V3.1). The libraries
    on Fish disk (and the demo disk) are limited on purpose... but the
    new disk had InOut on it, so at least string and Integer/cardinal
    I/O can be done. I've been in Email correspondence with them; so
    far, they've responded to every mail within hours (even though I
    don't have a licence yet!). They say that the full version has
    'full standard Modula libraries', whatever that is (but should include
    realIo etc.). Also, next year a symbolic debugger and other tools
    should be available (they already sell a symbolic debugger for PCs).
    
    There have also been some favorable comments on it in comp.lang.modula2.