Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: utzoo!mnetor!uunet!husc6!cmcl2!rutgers!ames!sdcsvax!ucbvax!pdn.UUCP!alan From: alan@pdn.UUCP (Alan Lovejoy) Newsgroups: comp.lang.modula2 Subject: Re: Modula-2 On Suns; A Search Message-ID: <8709192033.AA27830@jade.berkeley.edu> Date: Fri, 18-Sep-87 09:50:26 EDT Article-I.D.: jade.8709192033.AA27830 Posted: Fri Sep 18 09:50:26 1987 Date-Received: Sun, 20-Sep-87 16:08:38 EDT Sender: daemon@ucbvax.BERKELEY.EDU Reply-To: Info-Modula2 Distribution List Organization: The ARPA Internet Lines: 57 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