[comp.lang.modula2] Modula-2 On Suns; A Search

thomsen@trwspf.TRW.COM (Mark Thomsen) (09/15/87)

The network is a new experience for me, and after catching up on what you guys
have been talking about I think you may be able to help.

We have been using Modula-2 for 3 years in various systems development 
activities with great success.  Most of the work has been using Lilith-Vectras
(a variant of the Modula Corporation Lilith-PC) for the development environment
and an MC68020/VME arrangement as the target.  We have plugged in new disks,
AP's, and other special hardware with relative ease.  It is designed for multi-
processing as well.

We are now turning to make this more useable for others and are faced with some
new issues.  First, the Lilith-Vectra should be replaced with a machine more
similar to the target - like a Sun.  Then, we would like to take some of the
R&D work into a workstation for image processing.  Again, the Sun looks like a
decent approach (more MC68020 & VME stuff).  And we would really like to stick
with Modula-2.

My question is, what is the status of the Modula-2 compiler's on the Sun?  I
know of Sun's and Djaverhi (sp??) products to some extent, but we have not
kept up with the latest and greatest.  What are the compiers available and has
anyone some recommendations on what is good?  Especially of interest would
be an arrangement where we can scrape off Unix for a target machine to run our
own real-time O/S written in Modula-2.  Also, is there a Modula-2 for the
new Sun 4/SPARC setup?

Thanks in advance.

Mark R. Thomsen
Data Systems Laboratory, TRW
Redondo Beach, CA

samlb@well.UUCP (Samuel B. Bassett) (09/16/87)

	The guy you want to talk to is Chuck Bilbe, SUN's Modula-2 Project 
Leader.  You can reach him at SUN's public telephone number, or via the net
at cbilbe@sun.com.
-- 
Sam'l Bassett, Writer/Editor/Consultant -- ideas & opinions mine!
34 Oakland Ave., San Anselmo  CA  94960;  (415) 454-7282
UUCP:  {...known world...}!hplabs OR ptsfa OR lll-crg!well!samlb;
Compuserve:  71735,1776;  WU Easylink ESL 6284-3034;  MCI SBassett

alan@pdn.UUCP (Alan Lovejoy) (09/18/87)

In article <412@trwspf.TRW.COM> thomsen@trwspf.UUCP (Mark Thomsen) writes:
>My question is, what is the status of the Modula-2 compiler's on the Sun?  I
>know of Sun's and Djaverhi (sp??) products to some extent, but we have not
>kept up with the latest and greatest.  What are the compiers available and has
>anyone some recommendations on what is good?  Especially of interest would
>be an arrangement where we can scrape off Unix for a target machine to run our
>own real-time O/S written in Modula-2.  Also, is there a Modula-2 for the
>new Sun 4/SPARC setup?

I strongly recommend you do a *thorough* test drive of the Djavaherri
and/or Sun Modula-2 compilers before committing yourself to them.  I
haven't used these products for more than a year, but the last time I
did...

Happily, I know of another compiler for UNIX V/m680x0 machines.  This
compiler implements a very rich version of the language, and has an
absolutely *awesome* code generator/optimizer.  It's marketed by
Masthaven, in England.  Unhappily, the blurb they sent me is on loan
to a friend, so I can't quote an address.  (I know, if all I have is
a blurb, how do I know so much about it?  Because I have the compiler.
That is,  I have a *sibling* of the compiler, which is about 99.9%
the same as the one Masthaven is selling, but not for UNIX, and not
sold by Masthaven).  

There is of course the problem that SunOS is not UNIX V, exactly.  Will
the compiler run on a Sun?  Don't know.  Perhaps a Macintosh II with
A/UX would run it.  Since I'm planning to get a Mac II, I'm going to
have to check this out eventually as well.

The compiler has CARDINAL(16 bits), LONGCARD(32 bits), SHORTCARD(8
bits), INTEGER(16 bits), LONGINT(32 bits), SHORTINT(8 bits), CHAR,
BOOLEAN, REAL(32 bits), LONGREAL(64 bits), ADDRESS, WORD (16 bits),
SET OF (any scalar range up to 32767) and correctly sees 'a' as either
a CHAR or an ARRAY [0..0] OF CHAR.  It allows CAP, VAL, ORD, SIZE,
TSIZE, etc., to be used in ConstExpressions, even in a CONST statement.
It supports FIRST and LAST (which Wirth called MIN and MAX in PIM2v3).
Machine code can be inserted in-line using what are called 'code
procedures':  PROCEDURE Move(from: ADDRESS; size: LONGCARD; to: ADDRESS);
	      CODE
	        0341H;    
		0008H;
		...
	      END Move;

The compiler generates the code for pushing the actuall arguments on the
stack when a code procedure is called. It is up to you to remove them
using the right machine code.

The compiler also supports conditional compilation, romable code,
dynamic linking, 3 different ways of referencing objects external
to a module which can be independently selected for code and data
objects, 3 levels of optimization which can be targeted at seven
different mixes between speed and space optimization....

You get the idea (there's more...).

--alan@pdn

		

alan@pdn.UUCP (Alan Lovejoy) (09/18/87)

In article <412@trwspf.TRW.COM> thomsen@trwspf.UUCP (Mark Thomsen) writes:
>My question is, what is the status of the Modula-2 compiler's on the Sun?  I
>know of Sun's and Djaverhi (sp??) products to some extent, but we have not
>kept up with the latest and greatest.  What are the compiers available and has
>anyone some recommendations on what is good?  Especially of interest would
>be an arrangement where we can scrape off Unix for a target machine to run our
>own real-time O/S written in Modula-2.  Also, is there a Modula-2 for the
>new Sun 4/SPARC setup?

I strongly recommend you do a *thorough* test drive of the Djavaherri
and/or Sun Modula-2 compilers before committing yourself to them.  I
haven't used these products for more than a year, but the last time I
did...

Happily, I know of another compiler for UNIX V/m680x0 machines.  This
compiler implements a very rich version of the language, and has an
absolutely *awesome* code generator/optimizer.  It's marketed by
Masthaven, in England.  Unhappily, the blurb they sent me is on loan
to a friend, so I can't quote an address.  (I know, if all I have is
a blurb, how do I know so much about it?  Because I have the compiler.
That is,  I have a *sibling* of the compiler, which is about 99.9%
the same as the one Masthaven is selling, but not for UNIX, and not
sold by Masthaven).

There is of course the problem that SunOS is not UNIX V, exactly.  Will
the compiler run on a Sun?  Don't know.  Perhaps a Macintosh II with
A/UX would run it.  Since I'm planning to get a Mac II, I'm going to
have to check this out eventually as well.

The compiler has CARDINAL(16 bits), LONGCARD(32 bits), SHORTCARD(8
bits), INTEGER(16 bits), LONGINT(32 bits), SHORTINT(8 bits), CHAR,
BOOLEAN, REAL(32 bits), LONGREAL(64 bits), ADDRESS, WORD (16 bits),
SET OF (any scalar range up to 32767) and correctly sees 'a' as either
a CHAR or an ARRAY [0..0] OF CHAR.  It allows CAP, VAL, ORD, SIZE,
TSIZE, etc., to be used in ConstExpressions, even in a CONST statement.
It supports FIRST and LAST (which Wirth called MIN and MAX in PIM2v3).
Machine code can be inserted in-line using what are called 'code
procedures':  PROCEDURE Move(from: ADDRESS; size: LONGCARD; to: ADDRESS);
              CODE
                0341H;
                0008H;
                ...
              END Move;

The compiler generates the code for pushing the actuall arguments on the
stack when a code procedure is called. It is up to you to remove them
using the right machine code.

The compiler also supports conditional compilation, romable code,
dynamic linking, 3 different ways of referencing objects external
to a module which can be independently selected for code and data
objects, 3 levels of optimization which can be targeted at seven
different mixes between speed and space optimization....

You get the idea (there's more...).

--alan@pdn

NAGLER@OLSEN.UUCP (09/23/87)

Masthaven's address is:
        Masthaven Development Ltd.
        511 Coldhams Lane
        Cambridge CB1 3LN
        (0223) 248844

I have the pamplet in front of me.  There are a couple of things that
were left out of the message:
        - It is only *one*pass*, that is, you can't have loose order
          of declaration and use.
        - You only get the Volition Systems Library, i.e. InOut,
          Conversions, Texts, and Files modules.
        - Sets up to 32K elements (yeah!!!!)
        - Function procedures may return results of *any*type.

The prices are: (site licenses available)
        - $1500 for the compiler.
        - $340 for the symbolic debugger.
        - $340 for an editor Editor.

We've been using the Sun compiler for about a year and have found it
adequate for our needs.  It runs with dbxtool and has a very nice
interface to C, thus you don't have to put in-line machine language
to get assembly language procedures or to get at Unix.  They are
coming out with a version 2.0, but we have yet to receive our Beta
tape.  I hear that it is a much improved version.

Rob