======================================================================= 1 === Date: Mon, 3 Aug 1992 03:26:13 GMT From: herring@osiris.cso.uiuc.edu (Charles Herring) Subject: FTP site for M3 Where can I get a copy of Modula3. Thanks. ======================================================================= 2 === Date: Mon, 3 Aug 92 17:28:46 GMT From: muller@src.dec.com (Eric Muller) Subject: Modula-3 FAQ Archive-name: Modula-3-faq Last-modified: Jun 6 1992 MODULA-3 FAQ ============ What is Modula-3 ? The goal of Modula-3 is to be as simple and safe as it can be while meeting the needs of modern systems programmers. Instead of exploring new features, we studied the features of the Modula family of languages that have proven themselves in practice and tried to simplify them into a harmonious language. We found that most of the successful features were aimed at one of two main goals: greater robustness, and a simpler, more systematic type system. Modula-3 descends from Mesa, Modula-2, Cedar, and Modula-2+. It also resembles its cousins Object Pascal, Oberon, and Euclid. Modula-3 retains one of Modula-2's most successful features, the provision for explicit interfaces between modules. It adds objects and classes, exception handling, garbage collection, lightweight processes (or threads), and the isolation of unsafe features. Is Modula-3 a superset of Modula-2 ? No; valid Modula-2 programs are not valid Modula-3 programs. Where can I get a description of Modula-3 ? The definition of Modula-3 is contained in: System Programming with Modula-3 Edited by Greg Nelson Prentice Hall Series in Innovative Technology ISBN 0-13-590464-1 L.C. QA76.66.S87 1991 also known as SPwM3. Sam Harbison has written a book about Modula3: Modula-3 Samuel P. Harbison Prentice Hall, 1992 ISBN 0-13-596396-6 as well as an overview article, "Modula-3", in Byte, Vol. 15, Number 12, October 1990, p 385. Where can I get information on Modula-3 ? There is a Usenet newsgroup, comp.lang.modula3. The archives of that group are available via anonymous ftp from gatekeeper.dec.com in pub/DEC/Modula-3/comp.lang.modula3. If you do not have access to Usenet, there is a relay mailing list; send a message to m3-request@src.dec.com to be added to it. Where can I get an implementation ? There is only one implementation available today. It has been built by SRC and is available via anonymous ftp from gatekeeper.dec.com in pub/DEC/Modula-3/release. Contributed software can be found in pub/DEC/Modula-3/contrib. The current version, 2.07, implements the language defined in SPwM3. There are versions for the following machines: AIX386 IBM PC running AIX/PS2, AP3000 Apollo DN4500 running Domain/OS ARM Acorn R260 running RISC iX 1.21 DS3100 DECstation 3100 and 5000 running Ultrix 4.0 and 4.2 HP300 HP 9000/300 running HP-UX 8.0 IBMR2 IBM R6000 running AIX 3.1, IBMRT IBM RT running IBM/4.3, NEXT NeXT running ? SPARC SPARCstation running SunOS 4.1.x SUN3 SUN3 running SunOS UMAX Encore Multimax running UMAX 4.3 (R4.1.1) VAX VAX running Ultrix 3.1 SRC Modula-3 includes a user manual, compiler, runtime library, some libraries and a few other goodies (see below). The compiler generates C as an intermediate language and should be fairly easy to port. Except for the very lowest levels of the thread implementation, the entire system is written in Modula-3. What if I don't have ftp access ? Unfortunately, we cannot deliver Modula-3 other than by anonymous ftp. Your best bet is to post a message to comp.lang.modula3, in the hope that somebody with ftp access can make a tape or floppy for you. Can I contribute Modula-3 software ? Certainly. Send us what you are willing to share, be it programs, libraries or other things. We'll put them in the distribution. -- Eric. ======================================================================= 3 === Date: Tue, 4 Aug 92 19:29:42 GMT From: pk@rwthi3.informatik.rwth-aachen.de (Peter Klein) Subject: SRC-M3 libm3 -O error To all who are interested: The module in libm3 which is responsible for crashin g when compiled with -O is Text.m3. So if you're on a SPARC and you want to use optimization on libm3, you have to compile Text.m3 without -O, and the rest wil l work with -O. --- Peter Klein E-Mail: pk@rwthi3.informatik.rwth-aachen.de Lehrstuhl fuer Informatik III Tel.: +49/241/80-21320 Ahornstrasse 55 Fax.: +49/241/80-21329 RWTH Aachen D-5100 Aachen Germany ======================================================================= 4 === Date: 7 Aug 92 22:47:37 GMT From: olender@vivaldi.cs.colostate.edu (Kurt Olender) Subject: M3 yacc/lex? Has anyone done a version of yacc and lex for Modula-3? If not, I was thinking I might do this as a project to learn Modula-3. ======================================================================= 5 === Date: Mon, 10 Aug 1992 12:17:18 PDT From: Mike_Spreitzer.PARC@xerox.com Subject: Opportunity/requirement The usual problem with standards is that there are so many to choose from --- and they're usually all inadequate. Well, in one domain that's not so. The domain is universal character codes. That is, character codes (or character sets) that include all the characters necessary to write any human language. There are a number of existing codes that cover one or two languages. There's only one that seriously attempts to cover them all. It's ISO 10646. There used to be two such standards: Unicode and ISO 10646. The two relevant groups of people have agreed to a merger: Unicode is now part of ISO 10646. ISO 10646 is not complete. For most of the estimated 5-6 thousand existing languages, no writing system (i.e., relationship between spoken and written language) has yet been developed. There are a few modern and ancient writing systems that use characters not yet encoded in ISO 10646. But the vast majority ("99.9%" according to one sponsor) of contemporary writing can be handled by ISO 10646. Another way that ISO 10646 is not yet complete is that it contains unified Han characters, but plans to include non-unified ones later. The Han characters are those initially developed by the Chinese and later adopted by the Koreans and the Japanese. ISO 10646 uses integers in the range [0, 2**32-1] to code for characters. So far, only codes in the range [0, 2**16-1] have been standardized. The unified Han characters fit in this 64K space. There is not enough room in 64K to contain three copies (one Chinese, one Korean, and one Japanese) of non-unified Han characters. The subset of ISO 10646 that fits in 16 bits is known as the Base Multilingual Plane (BMP), and passed ISO balloting by a wide margin. When Han unification was first proposed, it met significant opposition. That opposition has been overcome. Even the Japanese, who voted against ISO 10646 for other reasons, did not object to the Han unification. There is a Unicode Consortium, which exists to continue development and promotion of Unicode, the 16-bit part of ISO 10646, as the character code to use for multilingual programs and data. The Consortium includes all the major playors in the software industry: Adobe, Apple, Borland, DEC, GO, HP, IBM, Microsoft, NeXT, Novell, Sun, Taligent, Unisys, WordPerfect, and even Xerox. Last week I attended an Implementor's Workshop put on by the Consortium. It impressed me with the reality and significance of this standard. ***Unicode is going to be used!*** According to pre-registration (which did not include me), Adobe sent 4 people, Apple and Claris together sent 23, HP sent 4, IBM 13, Microsoft 10, Novell 10, Sun & SunSoft 15; other contingents were there too. Windows NT will use Unicode internally as its native character code; dual APIs, one for Unicode and one for the current "code page mess" (for the inevitable backward-compatibility), will be offered. Apple's QuickDraw GX will support a Unicode API. It was clear that all the major PC software vendors sell "localized" versions of their software into markets all around the globe. This includes Japan, where characters must be at least 16 bits long. There is also a growing awareness that many customers want multilingual software, not just monolingual software in their favorite language. A Novell representative pointed out that with current technology, all workstations on a Novell net must use the same 8-bit character code --- and said it in a way that suggested this is considered a "bug". It was clear that all the major vendors saw Unicode as the way to solve their localization and multilingual problems. It was clear that they were actually doing work to adopt this solution, and that it would appear in the next major version of some system products (e.g., Windows NT and QuickDraw GX). What does this have to do with Modula 3? Well, I think it is this: there is a new requirement of system software: support for all languages. I think this falls on deaf ears in many academic/research settings. The researcher says "all CS researchers speak English, and my research is not about being multilingual --- why should I spend scarce resources on this?". In many settings, I think the correct answer is that he or she shouldn't --- the researcher should wait until the vendor of his or her underlying system supplies it. Modula 3, and its standard interfaces, are being sold as an underlying system, and therefore *should* support Unicode. And sooner rather than later; we all know what a drag an installed base is. While we have something of one now, it will only grow in the future (if we're lucky). One of the things discussed at the Workshop was C and C++ interfaces for text processing. How many of you know that ANSI C includes a "wchar_t" type, for "wide" characters? Of course, in the typical C fashion, the ANSI standard does *not* say how wide a wide char is, nor which character code it follows. But the industry is grappling with that question, and will be selling Unicode support in C/C++ soon. Modula-3 already has some advantages over C/C++ that will make the change easier for Modula-3 than for C/C++ (Text.T is opaque, BITS 8 FOR ... is strongly typechecked, lack of #include and #define, explicit declarations of module relationships, real type checking, and so on). But if Modula-3 doesn't include Unicode support, this will be another reason to prefer C/C++ over M3. Sadly, almost all other languages use writing systems more complicated than that used by English; adding support for them will involve clarifying the distinctions between language, script (set of characters), and writing system, as well as the distinction between "character" and "text element" (think about digrams, and about vowell marks vs. diacritics). This means systems vendors must design new interfaces to support newly-refined abstractions, and application maintainers must change old programs that confuse two concepts that are, in general, distinct. Only some of this work (mostly the design and impl of new interfaces for text processing) must be done by the M3-implementing community; the rest can be done by the M3-using community if/when it feels the need. The bottom line: I think Modula 3 must adopt Unicode, if not all of ISO 10646, if Modula 3 is intended for widespread use. Mike Spreitzer ======================================================================= 6 === Date: Mon, 10 Aug 92 21:13:55 GMT From: muller@bismol.pa.dec.com (Eric Muller) Subject: Re: Installation problem My guess is that you did not install the libm3 . It is mandatory. -- Eric. ======================================================================= 7 === Date: Mon, 10 Aug 1992 19:20:12 GMT From: werts@ernie.acs.csulb.edu (Michael Werts) Subject: Installation problem I'm installing Modula-3 2.07 on a DEC machine; I believe its a DecServer 5000/200. I thought it was complete so I tried compiling the "hello world" example in the documentation and received the following errors: ----------------------------------------------------------------------- cheetah.cecs.csulb.edu> m3 -make -why -o hello Main.m3 A.m3 A.i3 new source -> compile A.i3 cpp: error A_i.c:2: Can't find include file M3Runtime.h new source -> compile Main.m3 "Main.m3", line 1: missing file no "Main.i3" on path ".:.:/u1/modula3/include/m3" 1 error encountered new source -> compile A.m3 "A.m3", line 2: missing file no "Wr.i3" on path ".:.:/u1/modula3/include/m3" "A.m3", line 2: missing file no "Stdio.i3" on path ".:.:/u1/modula3/include/m3" 2 errors encountered compilation failed => not building program "hello" cheetah.cecs.csulb.edu> ----------------------------------------------------------------------- Our network is getting tight on disk space, hence I've placed the distribution into a user account partition. My main concern is the message about M3Runtime.h. I checked in the include/m3 directory and it is empty. I didn't delete the files myself so I'm wondering why the file(s) aren't there. Any suggestions? hints? Thanks in advance, Mike Werts (werts@csulb.edu) ======================================================================= 8 === Date: 11 Aug 92 13:44:49 GMT From: jjw1@barney.gte.com (Jim Walker) Subject: SRC Modula-3 compiler on HP Series 700 I know there has been great interest expressed in this group regarding a port of the DEC SRC Modula-3 compiler to the HP 9000/Series 700's. Well, the good news is that I have version 2.07 of the compiler and runtime up and running! The bad news is that it is still somewhat crippled :-(. Specifically... o the compiler FORCES you to use archived libraries. It is necessitated by the funny way that procedure pointers are handled by the C compiler when shared libraries are used. This is a hopefully temporary condition (i.e., highest on my priority list). o the intermediate C files are compiled with an alignment pragma (HPUX_NATURAL), so that I could match up the way that bitfields are handled in the compiler. I do not know if this will be a problem, yet. Hopefully this can be removed when the new record layout code in the compiler is released (we all know that is why all those test programs were distributed, right Eric :-). o the stack and frame stuff in the thread package is still somewhat kludged. Right now, it wastes more of the stack than is really necessary (but it does work, I think ;-). o none of the Float interface is implemented. Actually, this is not that different from many of the other supported machines. I would love to have somebody volunteer to remedy this! o some functions that are called from the runtime library are not supported in the HP/UX C library (expm1, log1p, asinh, acosh, atanh, rint, and utimes). Currently, I have stubbed in these routines to cause a runtime fault, so that the demo programs will compile and link. o it still uses the hpux-7-0 operating system interface. I know this does not necessarily match up with 8.07 on the 700's, and I am in the process of defining hpux-8.{generic,HP300,HPPA} interfaces. But the stuff that the compiler needs does work. I am in the process of coordinating the changes that I have made with the SRC folks. Hopefully we will be able to release something RSN. Please do not inundate me with "I WANT IT NOW" requests! ...Walker -------- James Walker GTE Laboratories, Waltham, MA ======================================================================= 10 === Date: Tue, 11 Aug 1992 19:54:54 GMT From: werts@aardvark.cecs.csulb.edu (Michael Werts) Subject: Re: Installation problem I've reinstalled both libm3 and the bootstrap archive, but there are still no files in include/m3. I did get the following messages after I ran "bin/m3make -f m3makefile.boot all install" ---------------------------------------------------------------- cd driver/boot-DS3100; /u1/modula3/bin/m3make -DBOOT all cd compiler/boot-DS3100; /u1/modula3/bin/m3make -DBOOT all cd driver/boot-DS3100; /u1/modula3/bin/m3make -DBOOT install install -c -m 755 m3 /u1/modula3/bin chgrp: system: unknown group install -c -m 644 m3.1 /u1/modula3/man/man1 chgrp: system: unknown group cd compiler/boot-DS3100; /u1/modula3/bin/m3make -DBOOT install install -c -m 644 m3compiler /u1/modula3/lib/m3 chgrp: system: unknown group chmod 755 /u1/modula3/lib/m3/m3compiler ---------------------------------------------------------------- Also I have been using the DS3100 configuration, no X11R4. And I am running the m3make's from root. Any idea what is going on? Again, thanks in advance. -- Mike (werts@csulb.edu) ======================================================================= 11 === Date: Tue, 11 Aug 92 21:35:06 GMT From: muller@bismol.pa.dec.com (Eric Muller) Subject: Re: Installation problem Clearly, all the install commands are failing. This explain why you don't get anything in include/m3, since they are "install"ed there. I am not sure what the problem is with install, but a way around is to redefin e INSTALL in the config file, to be a combination of cp and chmod. Of course, it would be better to understand why install fails and to fix that. -- Eric. ======================================================================= 12 === Date: Tue, 11 Aug 92 18:32:02 GMT From: muller@src.dec.com (Eric Muller) Subject: Modula-3 Frequently Asked Questions (FAQ) Archive-name: Modula-3-faq Last-modified: Aug 5 1992 Modula-3 Frequently Asked Questions =================================== What is Modula-3 ? The goal of Modula-3 is to be as simple and safe as it can be while meeting the needs of modern systems programmers. Instead of exploring new features, we studied the features of the Modula family of languages that have proven themselves in practice and tried to simplify them into a harmonious language. We found that most of the successful features were aimed at one of two main goals: greater robustness, and a simpler, more systematic type system. Modula-3 descends from Mesa, Modula-2, Cedar, and Modula-2+. It also resembles its cousins Object Pascal, Oberon, and Euclid. Modula-3 retains one of Modula-2's most successful features, the provision for explicit interfaces between modules. It adds objects and classes, exception handling, garbage collection, lightweight processes (or threads), and the isolation of unsafe features. Is Modula-3 a superset of Modula-2 ? No; valid Modula-2 programs are not valid Modula-3 programs. Where can I get a description of Modula-3 ? The definition of Modula-3 is contained in: System Programming with Modula-3 Edited by Greg Nelson Prentice Hall Series in Innovative Technology ISBN 0-13-590464-1 L.C. QA76.66.S87 1991 also known as SPwM3. Here is the table of contents: 1. Introduction 2. Language Definition 3. Standard Interfaces 4. An Introduction to Programming with Threads 5. Thread Synchronization: A Formal Specification 6. I/O Streams: Abstract Types, Real Programs 7. Trestle Window System Tutorial 8. How the Language Got its Spots Chapters 2 and 3 have been reprinted in Sigplan Notices, Volume 27, Number 8, August 1992, pp 15-42. Sam Harbison has written a book about Modula3: Modula-3 Samuel P. Harbison Prentice Hall, 1992 ISBN 0-13-596396-6 as well as an overview article, "Modula-3", in Byte, Vol. 15, Number 12, October 1990, p 385. Where can I get information on Modula-3 ? There is a Usenet newsgroup, comp.lang.modula3. The archives of that group are available via anonymous ftp from gatekeeper.dec.com in pub/DEC/Modula-3/comp.lang.modula3. If you do not have access to Usenet, there is a relay mailing list; send a message to m3-request@src.dec.com to be added to it. Where can I get an implementation ? There is only one implementation available today. It has been built by SRC and is available via anonymous ftp from gatekeeper.dec.com in pub/DEC/Modula-3/release. Contributed software can be found in pub/DEC/Modula-3/contrib. The current version, 2.07, implements the language defined in SPwM3. There are versions for the following machines: AIX386 IBM PC running AIX/PS2, AP3000 Apollo DN4500 running Domain/OS ARM Acorn R260 running RISC iX 1.21 DS3100 DECstation 3100 and 5000 running Ultrix 4.0 and 4.2 HP300 HP 9000/300 running HP-UX 8.0 IBMR2 IBM R6000 running AIX 3.1, IBMRT IBM RT running IBM/4.3, NEXT NeXT running ? SPARC SPARCstation running SunOS 4.1.x SUN3 SUN3 running SunOS UMAX Encore Multimax running UMAX 4.3 (R4.1.1) VAX VAX running Ultrix 3.1 SRC Modula-3 includes a user manual, compiler, runtime library, some libraries and a few other goodies (see below). The compiler generates C as an intermediate language and should be fairly easy to port. Except for the very lowest levels of the thread implementation, the entire system is written in Modula-3. What if I don't have ftp access ? Unfortunately, we cannot deliver Modula-3 other than by anonymous ftp. Your best bet is to post a message to comp.lang.modula3, in the hope that somebody with ftp access can make a tape or floppy for you. Can I contribute Modula-3 software ? Certainly. Send us what you are willing to share, be it programs, libraries or other things. We'll put them in the distribution. -- Eric. ======================================================================= 13 === Date: Wed, 12 Aug 92 11:48:58 EDT From: wyant@centerline.com Subject: Should linker warn about unimplemented methods ? I just spent some time tracking down a crash which caused by my failure to add an method override connecting an abstract operation in an opaque type to the corresponding implementation method. I had written the method, I had merely forgotten to add it to the "OVERRIDES". Is the lack to provide overrides for methods in opaque types soemthing the prelinker could check for ? Is this a bug that that typically occurs once for most people and never again ? --geoff ======================================================================= 14 === Date: 12 Aug 92 13:26:39 GMT From: jjw1@barney.gte.com (Jim Walker) Subject: Re: SRC Modula-3 compiler on HP Series 700 In article <1048@ceylon.gte.com> Jim Walker writes: |> I know there has been great interest expressed in this group regarding a |> port of the DEC SRC Modula-3 compiler to the HP 9000/Series 700's. Well, |> the good news is that I have version 2.07 of the compiler and runtime up |> and running! ... I knew that I forgot to mention something in my previous post... Many, many, many thanks to the folks at DEC SRC, not only for all of their help in getting me through this port (which, by the way, did/does include changing source on their part as well), but also for giving us all Modula-3 to begin with. Lotsa' pats on the backs, guys. Back to work on finishing up the details... ...Walker -------- James Walker GTE Laboratories, Waltham, MA ======================================================================= 15 === Date: Thu, 13 Aug 1992 09:51:22 PDT From: Mike_Spreitzer.PARC@xerox.com Subject: Type dependency analyzer I'd like to build a tool that finds all the places in a corpus of code that depend on CHAR having only 256 elements. I'd like to build this tool on top of the most functional substrate available. As far as I know, m3tk is the substrate that provides more of what I need than any other available substrate. Does anyone have anything better (or perhaps the tool I'm looking for)? Mike ======================================================================= 16 === Date: Tue, 18 Aug 1992 12:46:24 GMT From: laverman@cs.rug.nl (Bert Laverman) Subject: Problems with vbtapps... (This is about the SPARC 2.07 version of SRC-m3) Having recently managed to find a machine with enough memory to build the vbtkit and formsvbt libraries, I then tried to build the vbtapps. Alas, though they compiled ok, I have not managed to run any of the programs. They all abort before doing anything visible with: *** *** runtime error: *** Bus error - possible thread stack overflow *** pc = 0xf7ffe820 = YPQ.YPQFromRGB + 0x98c8b8 *** This particular message came from Cube, but Calculator, miniformsedit, etc. all produce this problem. YPQ appears not to be a vbtkit or formsvbt routine, but its interface is in the standard include directory. Since I can't keep all sources online, I don't know where this error comes from. Is _this_ one of the optimization problems (I used -O for libm3, X, and trestle)? Greetings, Bert -- #include Bert Laverman, Dept. of Computing Science, Groningen University Friendly mail to: laverman@cs.rug.nl The rest to: /dev/null ======================================================================= 17 === Date: Thu, 20 Aug 92 12:35:46 -0400 From: Norman Ramsey Subject: trestle applications on black-and-white screens I've noticed that the trestle applications emerging from src aren't much fun on black-and-white screens. Perhaps they all have color monitors, so they tend to forget how the other half lives :-). In any case, their nicely colored backgrounds tend to come out white (or, occasionally, black). I've written an interface, TwoTone, that makes it easy to construct backgrounds that are solid colors on a color screen, and textures on a black-and-white screen. At some point I'll cobble up a selection of interesting textures (like those in the figures in Greg's book), but for now I'm making do with shades of gray from the Gray interface. I'm posting the two interfaces and their implementations, and also the diffs for Solitaire and Card, so you can get a dark grey `felt' instead of the default white. Of course, it's still that nice shade of green on a color monitor. Norman Ramsey nr@hart (33) % rcsdiff Solitaire.m3 =================================================================== RCS file: Solitaire.m3,v retrieving revision 1.1 diff -r1.1 Solitaire.m3 240c240 < EVAL TextureVBT.T.init(txt, Card.felt); --- > EVAL TextureVBT.T.init(txt, Card.felt.op, Card.felt.txt); nr@hart (34) % cd ../../bicycle/src nr@hart (35) % rcsdiff Card.?3 =================================================================== RCS file: Card.i3,v retrieving revision 1.1 diff -r1.1 Card.i3 45c45 < IMPORT PaintOp, VBT, ZSplit, Point; --- > IMPORT VBT, ZSplit, Point, TwoTone; 56c56 < felt: PaintOp.T; (* color of the background; you have to put the --- > felt: TwoTone.T; (* color of the background; you have to put the =================================================================== RCS file: Card.m3,v retrieving revision 1.1 diff -r1.1 Card.m3 14c14 < Time, CardRank, CardSuit, FaceCards, HighlightVBT, --- > Time, CardRank, CardSuit, FaceCards, Gray, HighlightVBT, 16c16 < MouseSplit, Split, Thread; --- > MouseSplit, Split, Thread, TwoTone; 586,588c586,588 < op1 := felt; < op2 := felt; < txt := Pixmap.Solid; --- > op1 := felt.op; > op2 := felt.op; > txt := felt.txt; 617c617 < VBT.PolyTint(v, a, felt) --- > VBT.PolyTexture(v, a, felt.op, felt.txt) 634,635c634,635 < txt := Pixmap.Solid; < op := felt --- > txt := felt.txt; > op := felt.op; 730c730 < felt := PaintOp.Pair(PaintOp.Bg, realFelt); --- > felt := TwoTone.New(PaintOp.Pair(PaintOp.Bg, realFelt), Gray.New4x4(10)); # To unbundle, "sed '1,/^# To unbundle/d' < thisfile | sh" # To unbundle, make sure both lines appear in the file # Thu Aug 20 12:28:07 EDT 1992 echo TwoTone.i3 1>&2 sed 's/^-//' >'TwoTone.i3' <<'End of TwoTone.i3' -INTERFACE TwoTone; -IMPORT PaintOp, Point, Pixmap, Rect, VBT; - -TYPE - T = RECORD - op: PaintOp.T; - txt: Pixmap.T; - END; - -PROCEDURE New(colorop: PaintOp.T; monotxt: Pixmap.T):T; - (* Result - op is PaintOp.BgFg on a mono display, colorop on a color display - txt is monotxt on a monodisplay, Pixmap.Solid on a color display - *) - -PROCEDURE Paint(v: VBT.Leaf; READONLY clip: Rect.T; - tone:T; READONLY delta := Point.Origin); <* LL.sup < v *> -(* Paint the rectangle "clip" with the texture "tone.txt+delta" using - the operation "tone.op". *) - -END TwoTone. End of TwoTone.i3 echo TwoTone.m3 1>&2 sed 's/^-//' >'TwoTone.m3' <<'End of TwoTone.m3' -MODULE TwoTone; -IMPORT PaintOp, Pixmap, Point, Palette, Rect, - ScreenType, ScrnPaintOp, ScrnPixmap, VBT; - -TYPE - PMClosure = Palette.PixmapClosure OBJECT - pm: Pixmap.T - METHODS OVERRIDES - apply := PMApply - END; - -PROCEDURE PMApply(cl: PMClosure; st: ScreenType.T): ScrnPixmap.T = - BEGIN - IF st.color THEN - RETURN Palette.ResolvePixmap(st, Pixmap.Solid) - ELSE - RETURN Palette.ResolvePixmap(st, cl.pm) - END - END PMApply; - -TYPE - OpClosure = Palette.OpClosure OBJECT - op: PaintOp.T; - METHODS OVERRIDES - apply := OpApply; - END; - -PROCEDURE OpApply(cl: OpClosure; st: ScreenType.T): ScrnPaintOp.T = - BEGIN - IF st.color THEN - RETURN Palette.ResolveOp(st, cl.op) - ELSE - RETURN Palette.ResolveOp(st, PaintOp.BgFg) - END - END OpApply; - -PROCEDURE New(colorop: PaintOp.T; monotxt: Pixmap.T):T = - BEGIN - RETURN T { Palette.FromOpClosure(NEW(OpClosure, op := colorop)), - Palette.FromPixmapClosure(NEW(PMClosure, pm := monotxt)) } - END New; - -PROCEDURE Paint(v: VBT.Leaf; READONLY clip: Rect.T; - tone:T; READONLY delta := Point.Origin) = <* LL.sup < v *> -BEGIN - VBT.PaintTexture(v, clip, tone.op, tone.txt, delta); -END Paint; - -BEGIN -END TwoTone. End of TwoTone.m3 echo Gray.i3 1>&2 sed 's/^-//' >'Gray.i3' <<'End of Gray.i3' -INTERFACE Gray; -IMPORT Pixmap; - -PROCEDURE New3x3(intensity:[0..9]):Pixmap.T; - (* return a 3x3 1-bit Pixmap.T with intensity pixels lit *) - -PROCEDURE New4x4(intensity:[0..16]):Pixmap.T; - (* return a 4x4 1-bit Pixmap.T with intensity pixels lit *) - -END Gray. End of Gray.i3 echo Gray.m3 1>&2 sed 's/^-//' >'Gray.m3' <<'End of Gray.m3' -MODULE Gray; -IMPORT Pixmap, Point, Rect, ScrnPixmap; - -TYPE - A3 = ARRAY [0..2] OF [0..9]; -CONST - Intense3 = ARRAY [0..2] OF A3 {A3 {7, 9, 5}, - A3 {2, 1, 4}, - A3 {6, 3, 8}}; - -PROCEDURE New3x3(intensity:[0..9]):Pixmap.T = -VAR bounds := Rect.FromSize(3, 3); - raw := ScrnPixmap.NewRaw(1, bounds); -BEGIN - FOR h := 0 TO 2 DO - FOR v := 0 TO 2 DO - IF intensity >= Intense3[h, v] THEN - raw.set(Point.FromCoords(h,v), 1); - ELSE - raw.set(Point.FromCoords(h,v), 0); - END; - END; - END; - RETURN Pixmap.FromBitmap(raw); -END New3x3; - -TYPE - A4 = ARRAY [0..3] OF [0..16]; -CONST - Intense4 = ARRAY [0..3] OF A4 {A4 { 1, 9, 3, 11}, - A4 {13, 5, 15, 7}, - A4 { 4, 12, 2, 10}, - A4 {16, 8, 14, 6}}; - -PROCEDURE New4x4(intensity:[0..16]):Pixmap.T = -VAR bounds := Rect.FromSize(4, 4); - raw := ScrnPixmap.NewRaw(1, bounds); -BEGIN - FOR h := 0 TO 3 DO - FOR v := 0 TO 3 DO - IF intensity >= Intense4[h,v] THEN - raw.set(Point.FromCoords(h,v), 1); - ELSE - raw.set(Point.FromCoords(h,v), 0); - END; - END; - END; - RETURN Pixmap.FromBitmap(raw); -END New4x4; - -BEGIN -END Gray. End of Gray.m3 ======================================================================= 18 === Date: 21 Aug 92 18:21:28 GMT From: leander@rkw-risc.cs.up.ac.za (Leander Conradie) Subject: Public domain M3 wanted Does anybody know about a public domain version for Modula3, for either Unix or DOS? Any help will be greatly appreciated. Leander Conradie -----------------> leander@up.ac.za ======================================================================= 19 === Date: Fri, 21 Aug 92 17:03:49 GMT From: muller@bismol.pa.dec.com (Eric Muller) Subject: Re: Public domain M3 wanted In article , leander@rkw-risc.cs.up.ac.za (Leander Conradie) writes: |> Does anybody know about a public domain version for Modula3, for either Unix or DOS? Any help will be greatly appreciated. There is no public domain implementation, but there a freely available implementation of Modula-3, available via anonymous ftp from gatekeeper.dec.com, in pub/DEC/Modula-3. -- Eric. ======================================================================= 20 === Date: 24 Aug 92 21:49:05 GMT From: jones@kira.uvm.edu (Mike Jones) Subject: IBM R2 for AIX 3.2 Is Mod3 avail or at least a new config file for AIX 3.2 ? I can't get m3make to compile. I tried changing a couple of switches, but it didn't work easily. Before I start trying to figure out what is wrong, maybe somebody has already done it. I even tried 'gcc', but our version of 'gcc' seems to have an IBM specific bug in it (it doesn't work). Mike ========================================================= Mike Jones | Mike.Jones@EMBA.UVM.EDU EMBA-CF, 250 Votey Building. | University of Vermont | Burlington, VT. USA | Voice: (802) 656-2926 05405 | FAX: (802) 656-8802 ========================================================= ======================================================================= 21 === Date: 26 Aug 92 10:39:46 GMT From: laverman@cs.rug.nl (Bert Laverman) Subject: vbtapps... still no-go Well, my attempts to get the vbtapps running on the sparc still lack success. True, remaking the libraries without '-O' removed the thread-stack overflow, but now I get an unhandled Rd.Failure, with as only help a single LOCK statement on the handler stack. Anyone a clue? -- #include Bert Laverman, Dept. of Computing Science, Groningen University Friendly mail to: laverman@cs.rug.nl The rest to: /dev/null ======================================================================= 22 === Date: 26 Aug 92 11:37:56 GMT From: laverman@cs.rug.nl (Bert Laverman) Subject: READONLY parameters; what are they really? Dear all, In SPwM3 (page 28) it says: "... A READONLY formal is treated as a VAR formal if the actual is a designator and the type of the actual is the same as the type of the format (...); otherwise it is treated as a VALUE formal." IMHO I have to conclude from this that: - either READONLY parameters can come in two forms, with a check needed at runtime in the procedure for each invocation, or - VALUE actuals are assigned to anonymous new variables, which in turn are passed as conventional VAR parameters. The first option seems most likely, the second reeks of FORTRANisms. For `large ' types (the ones for which values are not pushed directly on the stack when pass ed as VALUE parameter) the first option is simple enough for both caller and calle e, but for small types (eg, INTEGER), as callee I'ld have to check to see how the actual has been given. Of course it could be that READONLY is specifically for passing larger values efficiently when we know they wont be modified... Greetings, Bert -- #include Bert Laverman, Dept. of Computing Science, Groningen University Friendly mail to: laverman@cs.rug.nl The rest to: /dev/null ======================================================================= 23 === Date: 26 Aug 92 14:53:30 GMT From: jones@kira.uvm.edu (Mike Jones) Subject: bad stack on SPARCs I just compiled m3 for my sparc. I used the config file under model-configs, I changed the PREFIX and thats about it. I have tried it under SUNOS's cc, and under gcc. When compiling the etests, several of the compiles receive signal 4. I noted that one of the sample stderr files also received a signal 4, but others did not. The following errors are from syslog: vmunix: sendsig: bad signal stack pid=14122, sig=11 vmunix: sigsp = 0xf7bff690, action = 0xf7ae2ba0, upc = 0x91288 I am running 4.1.1 SUNOS, on a Sun 490. Anybody have a fix for this ? Did I, or do I, need to select a different option to compile it. Do I need to define something ? Is this the way it runs on a SPARC ? I notice that the sample output was run on the MIPS machine (5000 ?). Not all of the sample stderr/stdout files are there either. ctests for example. Thank you, Mike ========================================================= Mike Jones | Mike.Jones@EMBA.UVM.EDU EMBA-CF, 250 Votey Building. | University of Vermont | Burlington, VT. USA | Voice: (802) 656-2926 05405 | FAX: (802) 656-8802 ========================================================= ======================================================================= 24 === Date: 25 Aug 92 23:39:26 GMT From: canning@apple.com (Peter S. Canning) Subject: Formal description of Modula3 Has anyone attempted to produce a formal description of Modula3 (beyond the description of the syntax)? One possiblity would be a "natural semantics" describing either or both the static and dynamic semantics (e.g. "The Definition of Standard ML" by Milner, Tofte, and Harper). Another option would be a denotational treatment of the dynamic semantics (e.g. "Revised^3 Report on the Algoritmmic Language Scheme"). thanks, Peter Canning ======================================================================= 25 === Date: Thu, 27 Aug 92 14:27:43 PDT From: frode@ODEGARD.COM (Frode Odegard) Subject: Re: Formal description of Modula3 Peter Canning (canning@apple.com) writes: > Has anyone attempted to produce a formal description of Modula3 (beyond the > description of the syntax)? [....] What about using VDM ? - Frode ======================================================================= 26 === Date: Fri, 28 Aug 92 16:26:56 -0700 From: Subject: Re: READONLY parameters; what are they really? If a formal parameter is READONLY and the corresponding actual is not a designator, the recommended (indeed, almost inevitable) implementation is to record the value in an anonymous temporary and to pass the address of the temporary. READONLY should be used for record and array arguments where passing them by value would be costly. ======================================================================= 27 === Date: Fri, 28 Aug 92 16:28:55 -0700 From: Subject: Re: Formal description of Modula3 Luca Cardelli and I have been working on a formal description of Modula-3. It's about thirty pages and perpetually not quite complete. ======================================================================= 28 === Date: Fri, 28 Aug 92 20:00:06 GMT From: heiney@wsl.dec.com (Bob Heiney) Subject: Re: Another installation problem (long) In article <1992Aug28.185855.2769@centerline.com> wyant@centerline.com writes: >Its not writing to /bin/ar. Judging from the transcript, you ran out of space >on "/" while running /bin/ar. /bin/ar was probably writing to /tmp when >the disk filled up. Try freeing up some space on "/" and then rebuildinf > Sometimes you can't free up enough space on "/" to build an archive. The easy way to solve this problem is to set the environment variable TMPDIR to a directory that has a bunch of space (I use /usr/tmp on my system). This way, ar(1) puts the temporary files in TMPDIR instead of /usr/tmp. For more info, see the description of the "l" option in the ar(1) man page. -- Bob Heiney Technical Consultant Digital Equipment Corporation, US Desktop Sales, Palo Alto, CA All opinions expressed are mine, and not necessarily those of my employer ======================================================================= 29 === Date: Fri, 28 Aug 1992 17:48:09 GMT From: werts@piggy.cecs.csulb.edu (Michael Werts) Subject: Another installation problem (long) Well I seem to have gotten the boot system installed. Now I'm having some difficulty with libm3. I have PREFIX set to /u1/m3. However when I run m3make on libm3 it tries writing to /bin/ar. This turns out to be a link to /usr/bin/ar -- a partition with much less space available on it. m3make complains about the file system being full (/usr has about 4.4 megs) then gives another error - libm3.a does not exist. This is in the "all" stage of the make. Why is m3make trying to place anything in /bin/ar? Some statistics are then spit out and it begins the "install" stage of the make which eventually dies because libm3.a does not exist. Also there were a considerable number of warnings. Are these significant? An abbreviated form of the output is given below. Advice would be greatly appreciated. Thanks, Mike (werts@csulb.edu) ------------------------------------------------------------ # zcat libm3-*.tar.Z | tar xpof - # ls makefile doc m3make COPYRIGHT driver m3makefile.boot README include m3makefile.libm3 bin lib man boot.DS3100-2.07.tar.Z libm3 compiler libm3-2.07.tar.Z # bin/m3make -f m3makefile.libm3 all install cd libm3; /u1/m3/bin/m3make all ============================= Building in DS3100 sed -e 's:PUB:/u1/m3/include/m3:g' -e 's:LIB:/u1/m3/lib/m3:g' < ./config/src/M3Config.m3 > M3Config.m3 /u1/m3/bin/m3 -w1 -make -why -nostd -times -g -a libm3.a -F.PGM_SOURCES new source -> compile ../Csupport/src/generic/M3Runtime.c new source -> compile ../Csupport/src/generic/M3Runtime2.c new source -> compile ../thread/src/Thread.i3 new source -> compile ../unix/src/ultrix-3-1.DS3100/Unix.i3 "../unix/src/ultrix-3-1.DS3100/Unix.i3", line 962: warning: <*OBSOLETE*> symbol used (struct_stat) "../unix/src/ultrix-3-1.DS3100/Unix.i3", line 965: warning: <*OBSOLETE*> symbol used (struct_stat) "../unix/src/ultrix-3-1.DS3100/Unix.i3", line 968: warning: <*OBSOLETE*> symbol used (struct_stat) 3 warnings encountered new source -> compile ../unix/src/ultrix-3-1.generic/Utypes.i3 new source -> compile ../unix/src/ultrix-3-1.generic/Utime.i3 new source -> compile ../color/src/YPQ.i3 new source -> compile ../fieldlist/src/FieldList.i3 "../fieldlist/src/FieldList.i3", line 80: warning: C reserved word, appending underscore (char) 1 warning encountered new source -> compile ../glist/src/RefanyList.i3 new source -> compile ../glist/src/TextList.i3 new source -> compile ../time/src/LongRealTime.m3 new source -> compile ../stable/src/STable.m3 "../stable/src/STable.m3", line 10: warning: not used (Thread) 1 warning encountered new source -> compile ../stable/src/SIntTable.m3 new source -> compile ../stable/src/STextTable.m3 new source -> compile ../geometry/src/Point.m3 new source -> compile ../geometry/src/Rect.m3 "../geometry/src/Rect.m3", line 14: warning: not used (Text) 1 warning encountered new source -> compile ../geometry/src/Transform.m3 new source -> compile ../geometry/src/Path.m3 new source -> compile ../geometry/src/Region.m3 new source -> compile ../geometry/src/PolyRegion.m3 new source -> compile ../geometry/src/Trapezoid.m3 new source -> compile ../geometry/src/CopyBytes.m3 new source -> compile ../statistics/src/Stat.m3 new source -> compile ../formatter/src/Formatter.m3 "../formatter/src/Formatter.m3", line 191: warning: <*OBSOLETE*> symbol used (NewMutex) "../formatter/src/Formatter.m3", line 192: warning: <*OBSOLETE*> symbol used (NewCondition) 2 warnings encountered new source -> compile ../parseparams/src/Env.m3 new source -> compile ../parseparams/src/Params.m3 new source -> compile ../parseparams/src/ParseParams.m3 new source -> compile ../parseparams/src/ParseShell.m3 new source -> compile ../uid/src/UID.m3 "../uid/src/UID.m3", line 187: warning: <*OBSOLETE*> symbol used (NewMutex) "../uid/src/UID.m3", line 188: warning: <*OBSOLETE*> symbol used (NewMutex) "../uid/src/UID.m3", line 189: warning: <*OBSOLETE*> symbol used (NewMutex) 3 warnings encountered new source -> compile ../property/src/Property.m3 new source -> compile ../property/src/PropertyV.m3 new source -> compile ../property/src/MProperty.m3 "../property/src/MProperty.m3", line 20: warning: <*OBSOLETE*> symbol used (NewMutex) 1 warning encountered new source -> compile ../atom/src/Atom.m3 "../atom/src/Atom.m3", line 111: warning: <*OBSOLETE*> symbol used (FromStr) 1 warning encountered new source -> compile ../table/src/IntegerSet.m3 new source -> compile ../table/src/RefanySet.m3 new source -> compile ../table/src/IntegerToTextTable.m3 new source -> compile ../table/src/RefanyToIntegerTable.m3 "../table/src/RefanyToIntegerTable.m3", line 149: warning: <*OBSOLETE*> symbol used (NewMutex) "../table/src/RefanyToIntegerTable.m3", line 629: warning: <*OBSOLETE*> symbol used (NewMutex) 2 warnings encountered new source -> compile ../table/src/RefanyToRefanyTable.m3 "../table/src/RefanyToRefanyTable.m3", line 149: warning: <*OBSOLETE*> symbol used (NewMutex) "../table/src/RefanyToRefanyTable.m3", line 629: warning: <*OBSOLETE*> symbol used (NewMutex) 2 warnings encountered new source -> compile ../table/src/RefanyToTextTable.m3 "../table/src/RefanyToTextTable.m3", line 149: warning: <*OBSOLETE*> symbol used (NewMutex) "../table/src/RefanyToTextTable.m3", line 629: warning: <*OBSOLETE*> symbol used (NewMutex) "../table/src/RefanyToTextTable.m3", line 17: warning: not used (Text) "../table/src/RefanyToTextTable.m3", line 17: warning: not used (TextF) 4 warnings encountered new source -> compile ../table/src/TextToIntegerTable.m3 "../table/src/TextToIntegerTable.m3", line 145: warning: <*OBSOLETE*> symbol used (NewMutex) "../table/src/TextToIntegerTable.m3", line 738: warning: <*OBSOLETE*> symbol used (NewMutex) "../table/src/TextToIntegerTable.m3", line 17: warning: not used (Text) 3 warnings encountered new source -> compile ../table/src/TextToRefanyTable.m3 "../table/src/TextToRefanyTable.m3", line 145: warning: <*OBSOLETE*> symbol used (NewMutex) "../table/src/TextToRefanyTable.m3", line 738: warning: <*OBSOLETE*> symbol used (NewMutex) "../table/src/TextToRefanyTable.m3", line 17: warning: not used (Text) 3 warnings encountered new source -> compile ../table/src/TextToTextTable.m3 "../table/src/TextToTextTable.m3", line 145: warning: <*OBSOLETE*> symbol used (NewMutex) "../table/src/TextToTextTable.m3", line 738: warning: <*OBSOLETE*> symbol used (NewMutex) "../table/src/TextToTextTable.m3", line 17: warning: not used (Text) 3 warnings encountered new source -> compile ../pkl/src/Pkl.m3 new source -> compile ../pkl/src/PklRead.m3 new source -> compile ../color/src/YPQ.m3 new source -> compile ../fieldlist/src/FieldList.m3 "../fieldlist/src/FieldList.m3", line 117: warning: C reserved word, appending underscore (char) 1 warning encountered new source -> compile ../glist/src/RefanyList.m3 new source -> compile ../glist/src/TextList.m3 new source -> compile ../sx/src/FWr.m3 new source -> compile ../sx/src/Sx.m3 new source -> compile ../sx/src/SxSymbol.m3 new source -> compile ../sx/src/SxSyntax.m3 "../sx/src/SxSyntax.m3", line 970: warning: potentially unhandled exception (Sx.PrintError) "../sx/src/SxSyntax.m3", line 970: warning: potentially unhandled exception (Wr.Failure) "../sx/src/SxSyntax.m3", line 970: warning: potentially unhandled exception (Thread.Alerted) "../sx/src/SxSyntax.m3", line 972: warning: potentially unhandled exception (Sx.PrintError) "../sx/src/SxSyntax.m3", line 974: warning: potentially unhandled exception (Wr.Failure) "../sx/src/SxSyntax.m3", line 974: warning: potentially unhandled exception (Thread.Alerted) "../sx/src/SxSyntax.m3", line 975: warning: potentially unhandled exception (Sx.PrintError) "../sx/src/SxSyntax.m3", line 975: warning: potentially unhandled exception (Wr.Failure) "../sx/src/SxSyntax.m3", line 975: warning: potentially unhandled exception (Thread.Alerted) 9 warnings encountered missing library -> archive libm3.a /bin/ar: Info: filename ExtendedFloat.io truncated to ExtendedFloat.i /bin/ar: Info: filename IntegerToIntegerTable.io truncated to IntegerToIntege /bin/ar: Info: filename IntegerToRefanyTable.io truncated to IntegerToRefany /bin/ar: Info: filename IntegerToTextTable.io truncated to IntegerToTextTa /bin/ar: Info: filename RefanyToIntegerTable.io truncated to RefanyToInteger /bin/ar: Info: filename RefanyToRefanyTable.io truncated to RefanyToRefanyT /bin/ar: Info: filename RefanyToTextTable.io truncated to RefanyToTextTab /bin/ar: Info: filename TextToIntegerTable.io truncated to TextToIntegerTa /bin/ar: Info: filename TextToRefanyTable.io truncated to TextToRefanyTab /bin/ar: Info: filename TextToTextTable.io truncated to TextToTextTable /bin/ar: Info: filename ColorNameCache.io truncated to ColorNameCache. /bin/ar: Info: filename IntensityScale.io truncated to IntensityScale. /bin/ar: Info: filename RGBSortPrivate.io truncated to RGBSortPrivate. /bin/ar: Info: filename ExtendedFloat.mo truncated to ExtendedFloat.m /bin/ar: Info: filename IntegerToIntegerTable.mo truncated to IntegerToIntege /bin/ar: Info: filename IntegerToRefanyTable.mo truncated to IntegerToRefany /bin/ar: Info: filename IntegerToTextTable.mo truncated to IntegerToTextTa /bin/ar: Info: filename RefanyToIntegerTable.mo truncated to RefanyToInteger /: write failed, file system is full ar: Error: on write -: No space left on device ar: Error: libm3.a does not exist seconds #times operation 2.01 374 checking object timestamps 1094.01 370 compiling Modula-3 -> C 6.64 370 merging new link info 1032.04 375 compiling C -> object 0.43 1 checking global consistency 1.44 1 generating _m3lib.c 0.57 1 building library link info 9.28 1 exhaling new link info 22.04 1 building library archive 0.74 1 indexing library archive 16.20 375 removing temporary files 29.41 371 renaming files 0.02 1 cloning (linking) files 12.79 10 garbage collection 2.13 other --------------------------------------------------- 2229.74 TOTAL cd libm3; /u1/m3/bin/m3make install ============================= Building in DS3100 (cd ../Csupport/src/generic; install -c -m 644 -o bin -g bin M3Runtime.h /u1/m3/lib/m3) (cd ../C/src/generic; install -c -m 644 -o bin -g bin Cerrno.i3 /u1/m3/include/m3) (cd ../C/src/generic; install -c -m 644 -o bin -g bin Cstddef.i3 /u1/m3/include/m3) (cd ../sx/src; install -c -m 644 -o bin -g bin SxSymbol.i3 /u1/m3/include/m3) (cd ../sx/src; install -c -m 644 -o bin -g bin SxSyntax.i3 /u1/m3/include/m3) install -c -m 644 -o bin -g bin libm3.a /u1/m3/lib/m3 install: file libm3.a does not exist. *** Error code 1 Stop. # ======================================================================= 30 === Date: Fri, 28 Aug 1992 18:58:55 GMT From: wyant@riposte.com (Geoff Wyant) Subject: Re: Another installation problem (long) > Well I seem to have gotten the boot system installed. Now I'm having some > difficulty with libm3. > > I have PREFIX set to /u1/m3. However when I run m3make on libm3 it tries > writing to /bin/ar. This turns out to be a link to /usr/bin/ar -- a partition > with much less space available on it. m3make complains about the file system > being full (/usr has about 4.4 megs) then gives another error - libm3.a does > not exist. This is in the "all" stage of the make. > > Why is m3make trying to place anything in /bin/ar? > > Some statistics are then spit out and it begins the "install" stage of > the make which eventually dies because libm3.a does not exist. Its not writing to /bin/ar. Judging from the transcript, you ran out of space on "/" while running /bin/ar. /bin/ar was probably writing to /tmp when the disk filled up. Try freeing up some space on "/" and then rebuildinf --- Geoff Wyant wyant@centerline.com Centerline Software, Inc. (Formerly Saber Software, Inc) 10 Fawcett Street Cambridge, Ma. 01238 ======================================================================= 31 === Date: 28 Aug 92 21:37:52 GMT From: fn00@gte.com (Farshad Nayeri) Subject: Re: Another installation problem (long) In article werts@piggy.cecs.csulb.edu (Michael Wer ts) writes: Well I seem to have gotten the boot system installed. Now I'm having some difficulty with libm3. I have PREFIX set to /u1/m3. However when I run m3make on libm3 it tries writing to /bin/ar. This turns out to be a link to /usr/bin/ar -- a partition with much less space available on it. m3make complains about the file system being full (/usr has about 4.4 megs) then gives another error - libm3.a does not exist. This is in the "all" stage of the make. Why is m3make trying to place anything in /bin/ar? Here is a guess: m3make is not trying to place anything in /bin/ar. /bin/ar is trying to use /tmp for its temporary files, but since libm3 is mighty big, it is running out of room in /tmp. The reason you get filesystem full errors in / is that your /tmp is probably residing on the / partition. I'd blame UNIX for all these misleading error messages. There are probably a number of ways to fix this problem. One way is to pass the right flag to ar to let it use your local directory for temporary space (see ar(1)). Or increase the allowance for the partition containing /tmp. An abbreviated form of the output is given below. Advice would be greatly appreciated. Mike (werts@csulb.edu) Hope this helps, --farshad -- Farshad Nayeri Intelligent Database Systems fn00@gte.com Computer and Intelligent Systems Laboratory (617)466-2473 GTE Laboratories, Waltham, MA ======================================================================= 32 === Date: 31 Aug 92 15:27:53 GMT From: mwalker@novell.com (Mel Walker) Subject: Free/Cheap Mac Version? Is there a free and/or fairly cheap macintosh version of Modula 3? ------ Mel Walker mwalker@novell.com Bush/Quayle in '92!! -- "Don't blame us, we were only in charge!" Not to be construed as support for the Democrats. ======================================================================= 33 === Date: 31 Aug 92 12:32:50 GMT From: MBLOMQVIST@finabo.abo.fi (Mikael Blomqvist INF) Subject: Modula3 for Windows ... is that something impossible I am a BIG fan of modula2. I have not fallen for modula3 yet since I have been using jensen&partner's TopSpeed M2 which includes LONGCARD and such useable data types. But the last year I have mostly been programming under MS-Windows and therefore been forced to change language. So, does anyone know something? is a Windows version on its way... or it is just a hopeful dream? Micke