======================================================================= 1 === Date: 1 Jul 1994 14:51:23 GMT From: vogler@rzddec2.informatik.uni-hamburg.de (Jens Vogler) Subject: M3pc or M3forDOS ? Hello "M3-on-a-PC-users", I have some questions. I want to use M3 on my PC. I have the DJGPP GNU C compiler for others works still installed. Now I want to write M3 programs on my PC and want to use the M3 possibilities to run multiple threads (well, at the moment I just need two parallel routines). Which M3 version is the right one for me? I have both at home, but my harddisk is nearly full, so I want to kick one M3 out. I read that the m3pc cannot run threats, is that right? Can M3forDOS do it? Is it possible to use M3forDOS with my installed GCC and delete the one from M3forDOS? I saw in the sources of m3shell of m3pc, that all paths there are all "hard wired", is it possible to read SystemVariables out of M3 progs and tell m3shell to use the actuell system paths? THANK YOU IN ADVANCE. Yours etc. Jens "ABert" Vogler P.S.: Is there any actuell FAQ around here? -- V V TTTTT CCCC Jens Vogler -- vogler@informatik.uni-hamburg.de V V T C Universitaet Hamburg (BR Deutschland) V V T C VirusTestCenter V T CCCC Amiga-Gruppe ======================================================================= 2 === Date: Fri, 01 Jul 94 09:06:18 -0400 From: fn00@gte.com (Farshad Nayeri) Subject: m3-sparc@gte.com now posts to comp.lang.modula3 Since the SPARC release of Modula-3 3.x has stabilized, I have forwarded m3-sparc@gte.com's traffic to comp.lang.modula3. Thanks to everybody who helped bring up the SPARC port! -- Farshad ======================================================================= 3 === Date: 1 Jul 94 06:09:16 From: fn00@gte.com (Farshad Nayeri) Subject: Re: looking for shareware modula-3 In article <1994Jun30.203035.22544@usb.ve> 88-19600@shaddam.usb.ve (Rolando Jos e Carrillo Pallares) writes: > Does anyone knows where can I find one shareware version of > any modula-3 compiler (DOS) ? > Thanks a lot. There are two ports of SRC Modula-3 available from gatekeeper.dec.com:/pub/DEC/Modula-3/contrib. One is called m3pc and the other M3FORDOS. I have not tried either however. -- Farshad -- Farshad Nayeri nayeri@gte.com ======================================================================= 4 === Date: 1 Jul 1994 18:51:43 GMT From: qs101@cl.cam.ac.uk (Quentin Stafford-Fraser) Subject: Re: Shared libraries on SPARCs (& others?) Dave Goldberg has pointed out that the previously posted script caused a new shared library always to be built by an m3build after an m3ship, whether or not it was needed. This is relatively harmless and would not normally occur, but it uses disk space and is untidy. The following version is better. The old version would find the first version number 'x' for which libfoo.so.1.x is not installed, and would build that if it was out of date with respect to the libfoo.a. The new version finds the first version number 'x' for which either: * libfoo.so.1.x is not installed, or * libfoo.so.1.x in the build dir is up to date with respect to libfoo.a in the build dir. Then it builds that if necessary. (If libfoo.a is being rebuilt, it will have happened before all this is called). Quentin ------ proc library_hooks(x) is readonly versions = [ "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11","12","13","14","15","16", "17","18","19","20" ] proc next_version (root, major, lib_a) is local dest = format ("%s%s%s%s%s", PKG_INSTALL, SL, BUILD_PACKAGE, SL, BUILD_DIR) foreach v in versions local lib_so = format ("lib%s.so.%s.%s", root, major, v) if stale (dest & SL & lib_so, dest & SL & lib_so) or not stale(lib_so, lib_a) return lib_so end end error ("cannot find free version for library " & root & CR) return "" end local lib_a = format ("lib%s.a", x) local major = "1" local minor = "1" local lib_so = next_version(x, major, lib_a) if defined ("_all") if stale (lib_a, lib_a) write ("missing ", lib_a, ": not building ", lib_so, CR) else if stale (lib_so, lib_a) exec ("/bin/ld -assert pure-text -o", lib_so, COMPILE_OBJECTS) end %% _install_file (lib_so, LIB_INSTALL, "0644", "T") install_derived (lib_so) end end deriveds (format("lib%s.so.*",x), no_extension) end - -- ---------------------------------------------------------------------- Quentin Stafford-Fraser http://pelican.cl.cam.ac.uk/people/qs101/me.html Cambridge University Computer Lab Rank Xerox Cambridge EuroPARC qs101@cl.cam.ac.uk fraser@europarc.xerox.com Tel: +44 223 334411 Tel: +44 223 341521 Fax: +44 223 334679 Fax: +44 223 341510 ---------------------------------------------------------------------- ======================================================================= 5 === Date: 2 Jul 1994 10:55:18 GMT From: laszlo@post.ifi.uni-klu.ac.at (Laszlo BOESZOERMENYI) Subject: Re: M3pc or M3forDOS ? > I want to use M3 on my PC. I have the DJGPP GNU C compiler for > others works still installed. Now I want to write M3 programs > on my PC and want to use the M3 possibilities to run multiple > threads (well, at the moment I just need two parallel routines). > Which M3 version is the right one for me? I have both at home, > but my harddisk is nearly full, so I want to kick one M3 out. The ex32 version has threads. For the other PC-m3 (m3PC) we have already implemented threads as well (without timer, i.e. you have to schedule explicitly by using Yield). This is not on the gatekeepr yet, maybe we can arrange it next week. Cheers LB ********************************* * Prof. Laszlo Boeszoermenyi * * Institut fuer Informatik * * * * Universitaet Klagenfurt * * Universitaetsstr. 65-67 * * A-9022 Klagenfurt / Austria * * * * e-mail: * * laszlo@ifi.uni-klu.ac.at * * Tel.: * * 00-43-463-2700-509 * * 00-43-463-2700-506 (secr.) * * Fax.: * * 00-43-463-2700-505 * ********************************* ======================================================================= 6 === Date: 2 Jul 1994 22:10:48 GMT From: wr@polly.informatik.uni-dortmund.de (Wilfried Rupflin) Subject: BETA primary CS language at University Dortmund (Germany) BETA selected as the primary educational language at University Dortmund's CS Dept. (Germany) ------------------------------------------------- Wednesday last week (June 22nd) the Council of the CS Dept. made the final decision unanimously -- the curriculum will be changed as follows: 1st sem. - Programming (intro & principles): Beta (before: ML) 2nd sem. - Programming II: ML (before: Modula2) 3rd sem. - Data Structures (&Algorithms): Beta (before: Modula2) +3rd sem. - Software Lab: Beta (before: Modula2/ML) This decision was the endpoint of a long lasting hot debate starting out with the question 'Eiffel or Beta' followed by a lengthy and thorough evaluation phase. This evaluation culminated in a test implemention of the 2nd sem. programming lecture in Eiffel. Originally an extensive evaluation report was planned discussing in depth the pros and cons of both languages. But during the work and by gaining experience with the lecture and the related lab exercises the difference between the candidates became more and more evident -- to such an extent that nobody felt a need for this report any more. In the very end there remained two pros for Eiffel only: o First steps with the language can be made rather intuitively by most programmers (due to the fact that the Eiffel syntax resembles Pascal). o Eiffel is known more widely. All other points one can think of (language design: elegance, orthogonality, power, cleanliness; implementation: robustness, efficiency; tools; libraries; support) reveal such an outstanding superiority of Beta that during the council meeting last week there was no discussion at all about 'Beta or Eiffel'! Instead the debate was about the positioning of the functional paradigm (and ML): Should ML be shifted to the 2nd or 4th semester? This discussion will be renewed probably after having the first teaching experience with Beta. Wilfried Rupflin Note: This is not an official statement but my personal view. *---------------------------------------------------------------* | Wilfried Rupflin | wr@irb.informatik.uni-dortmund.de | | | ___ | | Universitaet Dortmund | //// | | FB Informatik, IRB | UNI DO// | | Postfach 500 500 | Tel.: +49 231 755 2478 ___ //// | | D-44221 Dortmund 50 | Fax.: +49 231 755 2386 \*\\/// | | Germany | Telex: 822465 unido d \\\\/ | *---------------------------------------------------------------* ======================================================================= 7 === Date: 5 Jul 1994 09:39:17 GMT From: lupper@informatik.uni-ulm.de (Alfred Lupper) Subject: Joint Modular Languages Conference ============================================================================= Joint Modular Languages Conference "Modula-2, Oberon & Friends" September 28th-30th, 1994 University of Ulm Ulm, Germany ============================================================================= Conference Sessions September 28th-30th, 1994: ================================================ ->>Keynote: The History of Modula-2, Prof. N. Wirth, ETH Zuerich - Application & Education - Large Software Systems - Realtime Programming - Distributed Systems - From Modula-2 to Oberon - Object-oriented Development using BETA & Eiffel - Development Tools and Techniques - Implementation and Porting Projects - Language Design - Compiler Issues - Programming Models - Formal Methods and Theory Tutorials September 26th-27th, 1994: ====================================== - C++ Tutorial, Sean Smith, University of Southampton - Ada/Ada9x Tutorial, E. Schonberg & R. Drewar, University of New York - Oberon Tutorial, Hanspeter Moessenboeck, University of Linz ************************** Information & Registration ************************** JMLC Conference Secretary Verteilte Systeme, Informatik Universitaet Ulm Oberer Eselsberg O-27 D-89069 ULM, Germany Telephone: ++49 (731) 502-41 40 Telefax: ++49 (731) 502-41 42 E-mail: vsoffice@informatik.uni-ulm.de **************** Conference Theme **************** The decisions on programming languages, tools and environments are of crucial importance for the success of most scientific and commercial data processing organisations. These decisions must take into account local tradition but must also be based on broad and thoroughly researched perspectives of current programming languages. Modular and object-oriented languages will typically speed-up the process of program development, stimulate reuse of existing code and simplify maintenance or documentation of software systems. In practice, however, commercially viable languages differ substantially with respect to their implementation volume, programming performance and fields of application. The Joint Modular Languages Conference 1994 in Ulm provides an opportunity for data processing professionals, programmers, teachers and researchers to become aware of alternative and more recent developments in the field of modular and object-oriented languages. Relevant topics will be presented from both theoretical and practical perspectives and adequate time is allocated for discussions. We cordially invite professional programmers from all language communities together with Pascal, Modula-2 and Oberon programmers to join the conference and to share our and their experiences. *********************** Preconference Tutorials *********************** Three tutorials will introduce software engineers from one programming community to at least one alternative language environment (C++, Ada/Ada9x and Oberon). Each tutorial is a self contained course and discusses key concepts such as modularity, type consistency, classes, inheritance, and dynamic binding from a language specific point of view. The tutorials comprise 4 to 6 lecture hours and are augmented by laboratory exercises. We reserve the right to limit the number of participants for each course. All lecturers are experienced university teachers and language implementors, guaranteeing a high level of expertise and teaching efficiency. They will be available for in depth questions throughout the conference. The conference secretariat will gladly send you a detailed description of all three courses. ------------------------------------------------------------------ C++ Tutorial Monday, September 26, 1994 9.00 a.m. ------------------------------------------------------------------ Lecturer: Sean Smith, University of Southampton History and rationale of C++ Inheritance in C++ Polymorphism Classes in C++ C++ and the future Worked examples ------------------------------------------------------------------ Ada/Ada9x Tutorial Monday, September 26, 1994 9.00 a.m. ------------------------------------------------------------------ Lecturers: E. Schonberg & R. Drewar, University of New York Ada and Ada9x The type model Extension of types and classes Generic units Concurrency Packages and subunits Programming environment Exercises ------------------------------------------------------------------ Oberon Tutorial Tuesday, September 27, 1994 8.30 a.m. ------------------------------------------------------------------ Lecturer: Hanspeter Mssenbck, University of Linz The Oberon language The Oberon environment Common techniques Oberon-2 amendments Object-oriented programming in Oberon-2 Writing extensible software Examples, case studies Extensive laboratory exercises ******************** Conference Programme ******************** *************** Wednesday, September 28, 1994 ***************** ------------------------------------------------------------------ 09:00 - 10:15 From Modula-2 to Oberon, P. Schulthess ------------------------------------------------------------------ Welcome Address ->> Keynote: The History of Modula-2 N. Wirth, ETH Zuerich Process Visualisation with Oberon System 3 and Gadgets E. Templ, A. Stritzinger, G. Pomberger ------------------------------------------------------------------ 10:45 - 12:15 Programming Language Design, H. Mssenbck ------------------------------------------------------------------ Restricted Multiple Inheritance A.E. Nedorya, E.V. Tarasov, A.D. Hapugin Sequential and Parallel Exception Handling in Modula-3: A Unifying Semantics Specification E.A. Heinz A Class Mechanism Supporting Subtype-check L. Xuedong, Z. Guoliang Afternoon track 1: ------------------------------------------------------------------ 13:30 - 15:00 Formal Methods and Theory, J. Farre ------------------------------------------------------------------ Object Design with Formal Classes P. Andr, D. Chiorean, J.C. Royer A Semantic Framework for Understanding the Behavior of Modules and Classes in Programming Languages M.H. Dodani, K.S. Gan Teaching a Systematic Method of Program Development C. Pronk, P.G. Kluit ------------------------------------------------------------------ 15:30 - 17:00 Compiler Issues, A. Borchert ------------------------------------------------------------------ Dynamic Polymorphism: An Ada-Based Approach J. Shen, G. Cormack, D. Duggan Compiler Optimizations Should Pay for Themselves M. Franz Building an Optimizing Compiler for Oberon: Implications on Programming Language Design M.M. Brandis Afternoon track 2: ------------------------------------------------------------------ 13:30 - 15:00 Development Tools and Techniques, A. Corradi ------------------------------------------------------------------ Post Mortem Debugger for Oberon M. Hof Using Oberon to Design a Hierachy of Extensible Device Drivers P.J. Muller STUDIO: A Modular, Compiled, Actor-Oriented Language, Based upon a Multitask Runtime System A. Hadjadji, L. Frcon ------------------------------------------------------------------ 15:30 - 17:00 Distributed Systems, P. Moylan ------------------------------------------------------------------ Object-Oriented Distributed Programming in the Oberon-PVM Environment E. Bugnion, M. Gitsels, B.A. Sanders Design of a Distributed Oberon System S. Traub Adding Parallel and Persistent Sets to Modula-3 L. Boeszoermenyi ------------------------------------------------------------------ 17:05 - 18:00 Modula-2 Standardisation Panel, H. Klaeren ------------------------------------------------------------------ M. Woodman (Convenor WG 13) and Panel Members ------------------------------------------------------------------ 19:00 - 20:30 Welcome Reception ------------------------------------------------------------------ *************** Thursday, September 29, 1994 ***************** ------------------------------------------------------------------ 09:00 - 10:15 O-O Development using BETA & Eiffel, J. Gutknecht ------------------------------------------------------------------ Part Objects in the BETA Programming Language B. Moller-Pedersen Model-View-Controller Classes in Eiffel M. Skipper ------------------------------------------------------------------ 10:45 - 12:15 Programming Models, G. Pomberger ------------------------------------------------------------------ An Object-Oriented Functional Logic Language for the Oberon System P. Dykstra Modular Inheritance of Objects through Mixin-Methods C. Lucas, P. Steyaert Combining Different Implementations of Types in a Program X. Franch ------------------------------------------------------------------ 13:30 - 15:00 Application and Education, F. Schweiggert ------------------------------------------------------------------ Modelling and Developing DSP Algorithms in C++ J. Middleton, M. Al-Akaidi, P. Urwin An Oberon-Based Implementation Tool J. Lampe Making the Transition from ADTs to Objects in Undergraduate Software Engineering: A CASE-Based Approach A.J. Peralta ------------------------------------------------------------------ 15:30 - 17:00 Realtime Programming, J. Cooling ------------------------------------------------------------------ A Distributed Real-Time Architecture in Oberon-2 B. Kirk, L. Nigro Writing Real-Time Applications in Modula-2 P.J. Moylan Timing as a Programming-In-The-Large Issue L. Nigro, F. Tisato ------------------------------------------------------------------ 17:05 - 18:00 Oberon Standardisation Panel, B. Kirk ------------------------------------------------------------------ ------------------------------------------------------------------ 20:00 - 23:00 Conference Banquet ------------------------------------------------------------------ *************** Friday, September 30, 1994 ***************** ------------------------------------------------------------------ 09:00 - 10:15 Oberon and beyond, M. Al-Akaidi ------------------------------------------------------------------ Oberon P Perspectives of Evolution J. Gutknecht Towards End-User Objects: The Gadgets User Interface System J.L. Marais ------------------------------------------------------------------ 10:45 - 12:15 Large Software Systems, L. Nigro ------------------------------------------------------------------ A New Approach to Modularization of Large Object-Oriented Systems A. Belkhelladi, B. Lazzerini, F. Marcelloni How to Structure Parallel Applications: Nested Local Aggregates A. Corradi, L. Leonardi, F. Zambonelli Capability Based Protection in a Persistent Object-Based Programming Language M. Hollins, J. Rosenberg, M. Hitchens ------------------------------------------------------------------ 13:30 - 15:00 Implementation and Porting Projects, St. Collins ------------------------------------------------------------------ Native Oberon on the PC Compatible (ISA) Platform F. Arickx, J. Broeckhove, T. Van den Eede, L. Vinck Alpha AXP/Open VMS (Modula|Oberon)-2 Compiler Project G. Dotzel Bringing the Oberon Language to the Macintosh J. Gesswein, R. Ondrus, O. Schirpf ****************** Product Exhibition ****************** Tools for application development, software systems and books will be demonstrated during the conference. ******************* Companion Programme ******************* Ulm is a city with a rich history and many resources. First mentioned in 854, it has attractions such as the gothic Cathedral with the worldUs highest spire, the historic FishermenUs Quarter, the picturesque Town Hall, and the Danube river where it is still blue. Other facets of Ulm include the giant federal fortress built around 1850, truck and bus factories, industrial research centers, and the University with a world famous medical faculty. You will be able to discover the treasures of Ulm on a guided tour. We will show you the place where the flight of Albrecht Berblinger, one of the first aviators, failed in 1811. Another tour will take you to a romantic little town and the natural beauties surrounding Ulm, above all the Blautopf, end point and climax of a system of underground rivers, hundreds of kilometers long. Another highlight will be the boat tour on the Danube river with striking views of the medieval city. We will try to share with you the beauty and culture of Ulm and make your time in Ulm worth remembering. ------------------------------------------------------------------ Wednesday, September 28, 1994 ------------------------------------------------------------------ 10:00 - 12:30 Tour of Ulm P historical city and gothic cathedral 14:30 - 16:00 Visit of baroque style library hall and Wiblingen Monastery ------------------------------------------------------------------ Thursday, September 29, 1994 ------------------------------------------------------------------ 09:00 - 15:00 Daytour to the Blautopf spring, prehistoric museum and sites ------------------------------------------------------------------ Friday, September 30, 1994 ------------------------------------------------------------------ 10:00 - 12:00 Boat tour on the Danube 14:00 - 16:00 Visiting the modern art sculptures on campus, tour of the science park and research institutes ******************* Programme Committee ******************* Andreas Borchert University of Ulm, Germany Antonio Corradi University of Bologna, Italy Brian Kirk Robinson Associates, UK Franz Schweiggert University of Ulm, Germany Gregor Snelting University of Braunschweig, Germany Guenther Dotzel ModulaWare, Germany Gustav Pomberger University of Linz, Austria Hanspeter Moessenboeck University of Linz, Austria Herbert Klaeren University of Tuebingen, Germany Jacques Farre University of Nice, France Jim Cooling University of Loughboruough, UK John Gough Queensland University of Technology, Australia Juerg Gutknecht ETH Zuerich, Switzerland Juergen Uhl IBM, Germany Libero Nigro University of Calabria, Italy Marjan Spegel Stefan Institute, Slovenia Marwan M. Al-Akaidi De Montfort University, UK Randy Bush PSG, USA Steven Collins Real Time Associates, UK Wolfgang Hanika Daimler Benz, Germany Wolfram Lippe University of Muenster, Germany ******************** Organizing Committee ******************** Peter Schulthess Chairman, University of Ulm, Germany Alfred Lupper OC Director, University of Ulm, Germany Franz Schweiggert University of Ulm, Germany Marwan Al-Akaidi De Montfort University, UK Andreas Borchert University of Ulm, Germany Jim Cooling University of Loughboruough, UK ******************** In Co-operation with ******************** Gesellschaft fuer Informatik e.V., Fachgruppe 2.1.3, 2.1.4 Schweizer Informatiker Gesellschaft, Fachgruppe Oberon British Computer Society, Modular Languages SIG Daimler Benz AG, Forschungszentrum Ulm NC-Gesellschaft fuer neue Technologien Forschungsinstitut fuer angewandte Wissensverarbeitung, Ulm IBM Deutschland, Entwicklungs GmbH ----------------------------------- Cut here --------------------------------- ****************************************************************************** Registration Form ****************************************************************************** Yes, I want to join the Joint Modular Languages Conference in Ulm. Name: Name on Badge: Affiliation: Mailing Address: Postal Code: City: Country: Daytime Phone Number: Fax Number: E-mail Address: [ ] Do not include my mailing address on meeting attendee lists. Please mark [X] the sessions you want to attend and calculate the total amount. ================================================================== | Tutorials | Regular | Authors and | Students** | | | | SIG Members* | | ------------------------------------------------------------------ | C++ | [ ] DM 220 | [ ] DM 220 | [ ] DM 220 | ------------------------------------------------------------------ | ADA | [ ] DM 220 | [ ] DM 220 | [ ] DM 220 | ------------------------------------------------------------------ | Oberon | [ ] DM 220 | [ ] DM 220 | [ ] DM 220 | ================================================================== | Conference | [ ] DM 360 | [ ] DM 320 | [ ] DM 50 | ================================================================== | Banquet | [ ] DM 60 | [ ] DM 60 | [ ] DM 60 | ================================================================== | Total | DM | DM | DM | ================================================================== *) Members of involved GI, SI, and BCS SIGs should indicate their affiliation number. **) Full time students are asked to present their original student card with picture at the conference registration desk. Student price does not include conference proceedings. ================================================================== | Companion Programme | all persons | ================================================================== | Wednesday | [ ] DM 20 | ------------------------------------------------------------------ | Thursday | [ ] DM 40 | ------------------------------------------------------------------ | Friday | [ ] DM 20 | ================================================================== | Total | DM | ================================================================== ------------------------------------------------------------------ | Total Conference, Tutorials, | DM | | Banquet | | ------------------------------------------------------------------ | Total Companion Programme | DM | ------------------------------------------------------------------ | After 25th of August add | DM | | 10% for late registration! | | ================================================================== | Total Amount | DM | ================================================================== Method of Payment: Payable to: JMLC Conference 1994, University of Ulm [ ] Transfer to: ULMV DE 66002 Illertisser Bank Sorting Code of Bank (BLZ): 731 915 00 Account No.: 702 505 005 [ ] Cheque enclosed [ ] Visa [ ] Diners Club [ ] American Express [ ] MasterCard/EuroCard Card Number: Expiration Date: Cardholder Name Signature: ----------------------------------- Cut here --------------------------------- Please send registration via surface mail to JMLC Conference Secretary Verteilte Systeme, Informatik Universitaet Ulm Oberer Eselsberg O-27 D-89069 ULM, Germany or by fax to: ++49 (731) 502-41 42 ================================================================== ======================================================================= 8 === Date: Tue, 5 Jul 1994 15:05:39 GMT From: dagenais@froh.vlsi.polymtl.ca (Michel Dagenais) Subject: selecting alternate libraries (optimized, profiled...) The "build_standalone()" directive selects between static and dynamic libraries. Do you have recommendations for a similar way to select between regular, optimized, "coveraged", "profiled" libraries. The assumption is that many, but not necessarily all libraries, are available in several "options". One possibility is to use "package overrides" to locate the alternate libraries in other directories, perhaps sharing the identical files through symbolic links (src/*.i3, LINUX/*.ax...). Some quake goo may even enable a "build_optimized()" directive to automatically select whenever possible packages located in the "optimized" subtree. This may require some care for the LD_LIBRARY_PATH for shared libraries with non absolute pathnames (i try to avoid these to enable others to run my binaries from different positions in the file system). Another possibility is to automatically add a suffix when the "build_optimized()" directive is there. This way, all library versions can coexist in the same directory. Upon building a library, the proper suffix would be added (e.g. libm3_o.a). Upon importing a library, a test would be made to use the library with suffix instead of the regular one when available. -- Prof. Michel Dagenais dagenais@vlsi.polymtl.ca Dept of Electrical and Computer Eng. Ecole Polytechnique de Montreal tel: (514) 340-4029 ======================================================================= 9 === Date: Wed, 6 Jul 1994 10:48:48 GMT From: gvw@cs.vu.nl (Wilson GV) Subject: plus ca change... I note with interest the following conference announcement: borchert@thales.mathematik.uni-ulm.de (Andreas Borchert) writes: > Joint Modular Languages Conference > Modula-2, Oberon and Friends > > The decisions on programming languages, tools and environments are of > crucial importance for the success of most scientific and commercial > data processing organisations. and wonder what has changed in the last 13 years: The study of programming languages has been central to computer science for so long that it comes as a shock to realize how little empirical evidence there is for their importance. - B. A. Sheil, 1981 :-), ================================================ Gregory V. Wilson gvw@cs.vu.nl The last good thing written in C was Franz Schubert's Ninth Symphony. ============================================= ======================================================================= 10 === Date: 6 Jul 1994 08:24:48 GMT From: borchert@thales.mathematik.uni-ulm.de (Andreas Borchert) Subject: Joint Modular Languages Conference -- September 1994 ------------------------------------------------------------------------------- # # # # ##### University of Ulm, # ## ## # # # in cooperation with Germany # # # # # # # # # # # # # GI, SIG and BCS # # # # # # 28th-30th September # # # # # # # 1994 ##### # # ####### ##### Joint Modular Languages Conference Formerly the European & International Modula-2 Conference Modula-2, Oberon and Friends Keynote Speaker: Niklaus Wirth ------------------------------------------------------------------------------- PROGRAMME & REGISTRATION FORM ------------------------------------------------------------------------------- **************** Conference Theme **************** The decisions on programming languages, tools and environments are of crucial importance for the success of most scientific and commercial data processing organisations. These decisions must take into account local tradition but must also be based on broad and thoroughly researched perspectives of current programming languages. Modular and object-oriented languages will typically speed-up the process of program development, stimulate reuse of existing code and simplify maintenance or documentation of software systems. In practice, however, commercially viable languages differ substantially with respect to their implementation volume, programming performance and fields of application. The Joint Modular Languages Conference 1994 in Ulm provides an opportunity for data processing professionals, programmers, teachers and researchers to become aware of alternative and more recent developments in the field of modular and object-oriented languages. Relevant topics will be presented from both theoretical and practical perspectives and adequate time is allocated for discussions. We cordially invite professional programmers from all language communities together with Pascal, Modula-2 and Oberon programmers to join the conference and to share our and their experiences. Conference Sessions September 28th-30th, 1994: ================================================ ->>Keynote: The History of Modula-2, Prof. N. Wirth, ETH Zuerich - Application & Education - Large Software Systems - Realtime Programming - Distributed Systems - From Modula-2 to Oberon - Object-oriented Development using BETA & Eiffel - Development Tools and Techniques - Implementation and Porting Projects - Language Design - Compiler Issues - Programming Models - Formal Methods and Theory Tutorials September 26th-27th, 1994: ====================================== - C++ Tutorial, Sean Smith, University of Southampton - Ada/Ada9x Tutorial, E. Schonberg & R. Drewar, University of New York - Oberon Tutorial, Hanspeter Moessenboeck, University of Linz ************************** Information & Registration ************************** JMLC Conference Secretary Verteilte Systeme, Informatik Universitaet Ulm Oberer Eselsberg O-27 D-89069 Ulm, Germany Telephone: ++49 (731) 502-41 40 Telefax: ++49 (731) 502-41 42 E-mail: vsoffice@informatik.uni-ulm.de *********************** Preconference Tutorials *********************** Three tutorials will introduce software engineers from one programming community to at least one alternative language environment (C++, Ada/Ada9x and Oberon). Each tutorial is a self contained course and discusses key concepts such as modularity, type consistency, classes, inheritance, and dynamic binding from a language specific point of view. The tutorials comprise 4 to 6 lecture hours and are augmented by laboratory exercises. We reserve the right to limit the number of participants for each course. All lecturers are experienced university teachers and language implementors, guaranteeing a high level of expertise and teaching efficiency. They will be available for in depth questions throughout the conference. The conference secretariat will gladly send you a detailed description of all three courses. ------------------------------------------------------------------ C++ Tutorial Monday, September 26, 1994 9.00 a.m. ------------------------------------------------------------------ Lecturer: Sean Smith, University of Southampton History and rationale of C++ Inheritance in C++ Polymorphism Classes in C++ C++ and the future Worked examples ------------------------------------------------------------------ Ada/Ada9x Tutorial Monday, September 26, 1994 9.00 a.m. ------------------------------------------------------------------ Lecturers: E. Schonberg & R. Drewar, University of New York Ada and Ada9x The type model Extension of types and classes Generic units Concurrency Packages and subunits Programming environment Exercises ------------------------------------------------------------------ Oberon Tutorial Tuesday, September 27, 1994 8.30 a.m. ------------------------------------------------------------------ Lecturer: Hanspeter Moessenboeck, University of Linz The Oberon language The Oberon environment Common techniques Oberon-2 amendments Object-oriented programming in Oberon-2 Writing extensible software Examples, case studies Extensive laboratory exercises ******************** Conference Programme ******************** *************** Wednesday, September 28, 1994 ***************** ------------------------------------------------------------------ 09:00 - 10:15 From Modula-2 to Oberon, P. Schulthess ------------------------------------------------------------------ Welcome Address ->> Keynote: The History of Modula-2 N. Wirth, ETH Zuerich Process Visualisation with Oberon System 3 and Gadgets E. Templ, A. Stritzinger, G. Pomberger ------------------------------------------------------------------ 10:45 - 12:15 Programming Language Design, H. Moessenboeck ------------------------------------------------------------------ Restricted Multiple Inheritance A.E. Nedorya, E.V. Tarasov, A.D. Hapugin Sequential and Parallel Exception Handling in Modula-3: A Unifying Semantics Specification E.A. Heinz A Class Mechanism Supporting Subtype-check L. Xuedong, Z. Guoliang Afternoon track 1: ------------------------------------------------------------------ 13:30 - 15:00 Formal Methods and Theory, J. Farre ------------------------------------------------------------------ Object Design with Formal Classes P. Andre, D. Chiorean, J.C. Royer A Semantic Framework for Understanding the Behavior of Modules and Classes in Programming Languages M.H. Dodani, K.S. Gan Teaching a Systematic Method of Program Development C. Pronk, P.G. Kluit ------------------------------------------------------------------ 15:30 - 17:00 Compiler Issues, A. Borchert ------------------------------------------------------------------ Dynamic Polymorphism: An Ada-Based Approach J. Shen, G. Cormack, D. Duggan Compiler Optimizations Should Pay for Themselves M. Franz Building an Optimizing Compiler for Oberon: Implications on Programming Language Design M.M. Brandis Afternoon track 2: ------------------------------------------------------------------ 13:30 - 15:00 Development Tools and Techniques, A. Corradi ------------------------------------------------------------------ Post Mortem Debugger for Oberon M. Hof Using Oberon to Design a Hierarchy of Extensible Device Drivers P.J. Muller STUDIO: A Modular, Compiled, Actor-Oriented Language, Based upon a Multitask Runtime System A. Hadjadji, L. Frecon ------------------------------------------------------------------ 15:30 - 17:00 Distributed Systems, P. Moylan ------------------------------------------------------------------ Object-Oriented Distributed Programming in the Oberon-PVM Environment E. Bugnion, M. Gitsels, B.A. Sanders Design of a Distributed Oberon System S. Traub Adding Parallel and Persistent Sets to Modula-3 L. Boeszoermenyi ------------------------------------------------------------------ 17:05 - 18:00 Modula-2 Standardisation Panel, H. Klaeren ------------------------------------------------------------------ M. Woodman (Convenor WG 13) and Panel Members ------------------------------------------------------------------ 19:00 - 20:30 Welcome Reception ------------------------------------------------------------------ *************** Thursday, September 29, 1994 ***************** ------------------------------------------------------------------ 09:00 - 10:15 O-O Development using BETA & Eiffel, J. Gutknecht ------------------------------------------------------------------ Part Objects in the BETA Programming Language B. Moller-Pedersen Model-View-Controller Classes in Eiffel M. Skipper ------------------------------------------------------------------ 10:45 - 12:15 Programming Models, G. Pomberger ------------------------------------------------------------------ An Object-Oriented Functional Logic Language for the Oberon System P. Dykstra Modular Inheritance of Objects through Mixin-Methods C. Lucas, P. Steyaert Combining Different Implementations of Types in a Program X. Franch ------------------------------------------------------------------ 13:30 - 15:00 Application and Education, F. Schweiggert ------------------------------------------------------------------ Modelling and Developing DSP Algorithms in C++ J. Middleton, M. Al-Akaidi, P. Urwin An Oberon-Based Implementation Tool J. Lampe Making the Transition from ADTs to Objects in Undergraduate Software Engineering: A CASE-Based Approach A.J. Peralta ------------------------------------------------------------------ 15:30 - 17:00 Realtime Programming, J. Cooling ------------------------------------------------------------------ A Distributed Real-Time Architecture in Oberon-2 B. Kirk, L. Nigro Writing Real-Time Applications in Modula-2 P.J. Moylan Timing as a Programming-In-The-Large Issue L. Nigro, F. Tisato ------------------------------------------------------------------ 17:05 - 18:00 Oberon Standardisation Panel, B. Kirk ------------------------------------------------------------------ ------------------------------------------------------------------ 20:00 - 23:00 Conference Banquet ------------------------------------------------------------------ *************** Friday, September 30, 1994 ***************** ------------------------------------------------------------------ 09:00 - 10:15 Oberon and beyond, M. Al-Akaidi ------------------------------------------------------------------ Oberon -- Perspectives of Evolution J. Gutknecht Towards End-User Objects: The Gadgets User Interface System J.L. Marais ------------------------------------------------------------------ 10:45 - 12:15 Large Software Systems, L. Nigro ------------------------------------------------------------------ A New Approach to Modularization of Large Object-Oriented Systems A. Belkhelladi, B. Lazzerini, F. Marcelloni How to Structure Parallel Applications: Nested Local Aggregates A. Corradi, L. Leonardi, F. Zambonelli Capability Based Protection in a Persistent Object-Based Programming Language M. Hollins, J. Rosenberg, M. Hitchens ------------------------------------------------------------------ 13:30 - 15:00 Implementation and Porting Projects, St. Collins ------------------------------------------------------------------ Native Oberon on the PC Compatible (ISA) Platform F. Arickx, J. Broeckhove, T. Van den Eede, L. Vinck Alpha AXP/Open VMS (Modula|Oberon)-2 Compiler Project G. Dotzel Bringing the Oberon Language to the Macintosh J. Gesswein, R. Ondrus, O. Schirpf ****************** Product Exhibition ****************** Tools for application development, software systems and books will be demonstrated during the conference. ******************* Companion Programme ******************* Ulm is a city with a rich history and many resources. First mentioned in 854, it has attractions such as the Gothic cathedral with the world's highest spire, the historic Fishermen's Quarter, the picturesque Town Hall, and the Danube river where it is still blue. Other facets of Ulm include the giant federal fortress built around 1850, truck and bus factories, industrial research centers, and the University with a world famous medical faculty. You will be able to discover the treasures of Ulm on a guided tour. We will show you the place where the flight of Albrecht Berblinger, one of the first aviators, failed in 1811. Another tour will take you to a romantic little town and the natural beauties surrounding Ulm, above all the Blautopf, end point and climax of a system of underground rivers, hundreds of kilometers long. Another highlight will be the boat tour on the Danube river with striking views of the medieval city. We will try to share with you the beauty and culture of Ulm and make your time in Ulm worth remembering. ------------------------------------------------------------------ Wednesday, September 28, 1994 ------------------------------------------------------------------ 10:00 - 12:30 Tour of Ulm's historical city and Gothic cathedral 14:30 - 16:00 Visit of baroque style library hall and Wiblingen Monastery ------------------------------------------------------------------ Thursday, September 29, 1994 ------------------------------------------------------------------ 09:00 - 15:00 Day tour to the Blautopf spring, prehistoric museum and sites ------------------------------------------------------------------ Friday, September 30, 1994 ------------------------------------------------------------------ 10:00 - 12:00 Boat tour on the Danube 14:00 - 16:00 Visiting the modern art sculptures on campus, tour of the science park and research institutes ******************* Programme Committee ******************* Peter Schulthess Chairman, University of Ulm, Germany Marwan M. Al-Akaidi De Montfort University, UK Andreas Borchert University of Ulm, Germany Randy Bush PSG, USA Steven Collins Real Time Associates, UK Jim Cooling University of Loughborough, UK Antonio Corradi University of Bologna, Italy Guenther Dotzel ModulaWare, Germany Jacques Farre University of Nice, France John Gough Queensland University of Technology, Australia Juerg Gutknecht ETH Zuerich, Switzerland Wolfgang Hanika Daimler Benz, Germany Brian Kirk Robinson Associates, UK Herbert Klaeren University of Tuebingen, Germany Wolfram Lippe University of Muenster, Germany Hanspeter Moessenboeck University of Linz, Austria Libero Nigro University of Calabria, Italy Gustav Pomberger University of Linz, Austria Franz Schweiggert University of Ulm, Germany Gregor Snelting University of Braunschweig, Germany Marjan Spegel Stefan Institute, Slovenia Juergen Uhl IBM, Germany ******************** Organizing Committee ******************** Peter Schulthess Chairman, University of Ulm, Germany Alfred Lupper OC Director, University of Ulm, Germany Franz Schweiggert University of Ulm, Germany Marwan Al-Akaidi De Montfort University, UK Andreas Borchert University of Ulm, Germany Jim Cooling University of Loughborough, UK ******************** In Co-operation with ******************** Gesellschaft fuer Informatik e.V., Fachgruppe 2.1.3, 2.1.4 Schweizer Informatiker Gesellschaft, Fachgruppe Oberon British Computer Society, Modular Languages SIG Daimler Benz AG, Forschungszentrum Ulm NC-Gesellschaft fuer neue Technologien Forschungsinstitut fuer angewandte Wissensverarbeitung, Ulm IBM Deutschland, Entwicklungs GmbH ----------------------------------- Cut here --------------------------------- ****************************************************************************** Registration Form ****************************************************************************** Yes, I want to join the Joint Modular Languages Conference in Ulm. Name: Name on Badge: Affiliation: Mailing Address: Postal Code: City: Country: Daytime Phone Number: Fax Number: E-mail Address: [ ] Do not include my mailing address on meeting attendee lists. Please mark [X] the sessions you want to attend and calculate the total amount. ================================================================== | Tutorials | Regular | Authors and | Students** | | | | SIG Members* | | ------------------------------------------------------------------ | C++ | [ ] DM 220 | [ ] DM 220 | [ ] DM 220 | ------------------------------------------------------------------ | ADA | [ ] DM 220 | [ ] DM 220 | [ ] DM 220 | ------------------------------------------------------------------ | Oberon | [ ] DM 220 | [ ] DM 220 | [ ] DM 220 | ================================================================== | Conference | [ ] DM 360 | [ ] DM 320 | [ ] DM 50 | ================================================================== | Banquet | [ ] DM 60 | [ ] DM 60 | [ ] DM 60 | ================================================================== | Total | DM | DM | DM | ================================================================== *) Members of involved GI, SI, and BCS SIGs should indicate their affiliation number. **) Full time students are asked to present their original student card with picture at the conference registration desk. Student price does not include conference proceedings. ================================================================== | Companion Programme | all persons | ================================================================== | Wednesday | [ ] DM 20 | ------------------------------------------------------------------ | Thursday | [ ] DM 40 | ------------------------------------------------------------------ | Friday | [ ] DM 20 | ================================================================== | Total | DM | ================================================================== ------------------------------------------------------------------ | Total Conference, Tutorials, | DM | | Banquet | | ------------------------------------------------------------------ | Total Companion Programme | DM | ------------------------------------------------------------------ | After 25th of August add | DM | | 10% for late registration! | | ================================================================== | Total Amount | DM | ================================================================== Method of Payment: Payable to: JMLC Conference 1994, University of Ulm [ ] Transfer to: ULMV DE 66002 Illertisser Bank Sorting Code of Bank (BLZ): 731 915 00 Account No.: 702 505 005 [ ] Cheque enclosed [ ] Visa [ ] Diners Club [ ] American Express [ ] MasterCard/EuroCard Card Number: Expiration Date: Cardholder Name Signature: ----------------------------------- Cut here --------------------------------- Please send registration via surface mail to JMLC Conference Secretary Verteilte Systeme, Informatik Universitaet Ulm Oberer Eselsberg O-27 D-89069 Ulm, Germany or by fax to: ++49 (731) 502-41 42 ------------------------------------------------------------------------------- -- _______________________________________________________________________________ Andreas Borchert, University of Ulm, SAI, D-89069 Ulm, Germany Internet: borchert@mathematik.uni-ulm.de ======================================================================= 11 === Date: Wed, 6 Jul 1994 16:22:04 GMT From: JMURRAY@ELECTRICAL.watstar.uwaterloo.ca (Jason Murray) Subject: m3 for DOS Just finished reading a book on the language and would like to get a version of the language that runs on MS-DOS. I have a copy of Borland C++ and plan to get a copy of WATCOM C++ for my C/C++ compiler. Someone help me out please. J ======================================================================= 12 === Date: Wed, 6 Jul 1994 16:14:54 GMT From: dagenais@froh.vlsi.polymtl.ca (Michel Dagenais) Subject: How to use m3 features of m3gdb I have pretty much everything in SRC M3 3.3 working right on LINUX. While the last libraries are being compiled with the optimizer, i am exploring in more depth some of the newer packages. M3gdb is probably one of the most recent and least mature part of the SRC M3 distribution. Moreover, it cannot be as robust since it is not written in M3 :-). It seems to work correctly but i have not found documentation on the m3 specific features. Help from those with more experience on m3gdb would be appreciated; as a start i am using m3gdb without any graphical front-end (emacs xxgdb...): - Breakpoints are set with, for example, break TCP__Accept, break NetObjDaemon.m3:1. How to set a breakpoint in the main body of a file (something more friendly than break _INITM_TCP and ignore phases 1 and 2). - I have not been able to show the content of types (ptype command). - What is the name assigned to global variables for printing purposes? Thanks for any info! -- Prof. Michel Dagenais dagenais@vlsi.polymtl.ca Dept of Electrical and Computer Eng. Ecole Polytechnique de Montreal tel: (514) 340-4029 ======================================================================= 13 === Date: Thu, 7 Jul 1994 00:07:48 GMT From: yminsky@flagstaff.Princeton.EDU (Yaron Minsky) Subject: The future of m3 The project I am working on is about to choose the language that we will write in. Modula3 seems to be a good choice from the point of view of the language itself, but I'm wondering what can be expected from it in the future? What reasons are there to expect that the language won't, despite all of it's obvious merits, expire for lack of users? To that effect, what does the user base look like now? I understand that DEC is using it, and the FAQ only mentions two other companies, sun and gte. And what kind of machines are people using it on? Should we expect new versions to have good support on machines other than DEC's? Baisically, I'd love to use the language, but I'm cautious. Any information would be much appreciated. ---------------- Yaron Minsky yminsky@phoenix.princeton.edu ======================================================================= 14 === Date: 7 Jul 94 09:36:33 From: vixie@vix.com (Paul A Vixie) Subject: Re: The future of m3 >Should we expect new versions to have good support on machines other than DEC? It already does. DEC machines don't have any architectural advantage in the current SRC compiler. >Baisically, I'd love to use the language, but I'm cautious. Any information >would be much appreciated. I think you can count on the SRC implementation continuing to be expanded and ported and pseudo-"supported". I don't know what's in the works for a commercial M3 compiler, the last one I heard about decided to go back to school for his PhD :-). -- Paul Vixie Redwood City, CA decwrl!vixie!paul ======================================================================= 15 === Date: Thu, 7 Jul 1994 18:57:17 -0400 From: Eric A Stein Subject: m3make question I have written a generic module, and written an m3makefile for it. When I typed m3make, the machine thought a few seconds, then gave me back a prompt. No error messages, no executable. Just a prompt. It still works on other files. M3makefile to follow. Anybody have a clue? Thanx :) m3makefile: m3_option(-times) generic_module(GDListADT) module(StackList) module(RealStack) implementation(TrialRun) program(trymeout) Thanks, Eric Stein Carnegie Mellon University es5f+@andrew.cmu.edu ======================================================================= 16 === Date: Thu, 7 Jul 1994 15:22:09 GMT From: dagenais@froh.vlsi.polymtl.ca (Michel Dagenais) Subject: Re: The future of m3 itself, but I'm wondering what can be expected from it in the future? What reasons are there to expect that the language won't, despite all of it's obvious merits, expire for lack of users? To that effect, what does the user base look like now? I understand that DEC is using it, and the FAQ only mentions two other companies, sun and gte. And what kind of machines are people using it on? Should we expect new versions to have good support on machines other than DEC's? There are at least a few other companies using it that i know of but they have not sent me anything for the FAQ. Xerox is an example with the recently announced ILU that supports Modula-3. >From what i have seen, the DEC, SPARC, LINUX and probably HP ports should be fairly well maintained. For the other ports i simply dont know who is maintaining them but it does not mean that they are not well supported. I am currently preparing the ftp tar files for the LINUX binaries. The LINUX may rapidly become the most used M3 platform. I recently heard the following quote (from Farshad Nayeri i think): SRC Modula-3 is to NextStep like LINUX is to PC Unixes. In other words, with FormsVBT, network objects and Obliq, SRC Modula-3 is hard to beat for development... and it is freely available in source form. -- Prof. Michel Dagenais dagenais@vlsi.polymtl.ca Dept of Electrical and Computer Eng. Ecole Polytechnique de Montreal tel: (514) 340-4029 ======================================================================= 17 === Date: Thu, 7 Jul 1994 21:57:57 GMT From: dagenais@froh.vlsi.polymtl.ca (Michel Dagenais) Subject: SRC Modula3-3.3 for LINUX, ready for FTP It is available for FTP from ftp.vlsi.polymtl.ca:pub/m3/linux. >From the README: SRC Modula-3 release 3.3 compiled for LINUX By Michel Dagenais, dagenais@vlsi.polymtl.ca Thursday July 7th 1994 I am using LINUX 0.99pl15 from the Slackware 1.1.0 distribution. This Modula-3 distribution contains the following files. You need to download README, install.sh, src-m3-3.3l0.strip.tar.gz OR src-m3-3.3l0.tar.gz (depending on how much disk space you have) and, if you want to build your own dynamic libraries, tools-2.11.patch.tar.gz. README This file diff-m3-3.3l0.tar.gz Source code differences for SRC M3 3.3 diff-tools-2.11.tar.gz Source code differences for the dynamic libraries tools src-m3-3.3l0.strip.tar.gz Binary distribution with no static libraries or debugging symbols. Untar from "/". Takes about 20MB. src-m3-3.3l0.tar.gz Full binary distribution. Untar from "/". Takes about 50MB. tools-2.11.patch.tar.gz Binary distribution of the "fixed" dynamic libraries tools. The problems fixed here have not been repaired in the tools-2.15 version. install.sh Example of how to install this. The file src-m3-3.3l0.tar.gz contains all the libraries and most of the executables available in the release 3.3. The trestle tutorials, games, postcard and pkgtools packages were not compiled. You can easily get them separately and compile them. Everything was compiled with the -O and -g options (including the M3 to IL compiler and the IL to assembly compiler). The file src-m3-3.3l0.strip.tar.gz contains the same packages but all the executables and libraries were stripped and only the dynamic libraries are provided. This reduces the disk space requirements considerably. For any of the two, go in / and "gunzip /home/me/lib/m3/pkg/mine/LINUX/libmine.so.3.3) should be placed by m3ship. For example, I do the following for my own packages: in the library m3makefile: include("/usr/users/dagenais/lib/m3/ME") shared_lib_info(["0x80000000","0x4000","0x4000","3","3",MYLIBDIR,MYLDPATH]) in /usr/users/dagenais/lib/m3/ME SOFTDIR = "/usr/users/dagenais/" BIN_INSTALL = SOFTDIR & "bin" % executables LIB_INSTALL = SOFTDIR & "lib/m3/" & TARGET % libraries DOC_INSTALL = SOFTDIR & "lib/m3/doc" % documents PKG_INSTALL = SOFTDIR & "lib/m3/pkg" % packages EMACS_INSTALL = SOFTDIR & "lib/elisp" % emacs lisp code MAN_INSTALL = SOFTDIR & "man" % man pages HTML_INSTALL = SOFTDIR & "lib/m3/www" % public hypertext MYLIBDIR = PKG_INSTALL & SL & BUILD_PACKAGE & SL & BUILD_DIR & SL MYLDPATH = LIB_INSTALL This way, my packages are installed in my home directory. To use my packages, "/usr/users/dagenais/bin" must be on my PATH and "/usr/users/dagenais/lib/m3/LINUX" on my LD_LIBRARY_PATH. Then, to import one of my packages, the following is added to the program m3makefile: override("sequences","/usr/users/dagenais/lib/m3/pkg") import("sequences") As of this writing, there are no known LINUX specific problems with this distribution. However, a few problems surrounding the distribution are worth mentioning. Sometimes the shells forked by m3build to execute sub commands issue the message "shell-init: invalid argument"; this error is not reliably repeatable and rerunning the command usually works, the problem may be in my version of bash or in the way m3build passes arguments to bash. The LINUX tools for dynamic libraries (tools-2.11) are a temporary fix while waiting for shared libs support in the GNU tools. There are a number of fixed arrays that overflow and parsing routines that may get fooled by escaped quotes in quoted strings. I fixed a number of problems in these programs but sometimes "jumpas" will issue the message "can't open assembler file (null)"; this error is not reliably repeatable and rerunning the command usually works. The last time i did build all the packages, it failed on a single file among the thousand+ files processed. If you want to build dynamic libraries, you should grab the file tools-2.11.patched.tar.gz which contains my fixes. Go in / and "gunzip tbl: T; READONLY k1, k2: Key.T): BOOLEAN = BEGIN RETURN Key.Equal(k1, k2) END KeyEqual; (********************) (* Iterator methods *) (********************) PROCEDURE Next(i: ListIter; VAR key: Key.T; VAR val: Value.T): BOOLEAN = BEGIN IF i.list = NIL THEN RETURN FALSE ELSE VAR pair: RefList.T := i.list.head; BEGIN key := pair.head; val := pair.tail.head END (* BEGIN *); i.list := i.list.tail; RETURN TRUE END (* IF *) END Next; BEGIN END TableList. ====================================================================== Dave Detlefs DEC Systems Research Center Palo Alto, CA -- ====================================================================== Dave Detlefs DEC Systems Research Center Palo Alto, CA ======================================================================= 20 === Date: Fri, 08 Jul 94 12:55:48 EDT From: gwyant@cloyd.East.Sun.COM Subject: Association lists in M3 ? Before I go off and write one, does anyone have or know of an association list package for M3. thanks ! --geoff Geoff Wyant Geoff.Wyant@east.sun.com Sun Microsystems Laboratories, Inc. 2 Elizabeth Drive Chelmsford, Ma. 01824 ======================================================================= 21 === Date: Fri, 8 Jul 1994 16:23:15 GMT From: skj@oasis.icl.co.uk (Simon Johnston) Subject: TCP and Pickle code examples wanted Can anyone provide me with an example program to show the use of the TCP interface for creating a socket based client and server. I want to use real sockets as I might want non-m3 and even non-unix clients. I have tried just porting an example (from C) from a socket programing book but it raises an illegal exception when the client attempts to connetc. The server process will (unless anyone has any objections) save state between invokations by pickling to a file. Can anyone provide me with an example of pickling, and answer my next question, can I seek to a point in a file and then pickle, so perhaps creating a record based pickle file Thanks for reading, lok forward to some answers. MODULE Sig; FROM ICL IMPORT StdDisclaimer; FROM Interests IMPORT Modula2, Modula3, Linux, OS2; BEGIN (* ------------------------------------------------------------------------. |Simon K. Johnston - Development Engineer |ICL Retail Systems | |------------------------------------------------------|3/4 Willoughby Road| |Unix Mail : S.K.Johnston.bra0801@oasis.icl.co.uk |Bracknell, Berks | |Telephone : +44 (0)344 476320 Fax: +44 (0)344 476084|United Kingdom | |Internal : 7261 6320 OP Mail: S.K.Johnston@BRA0801|RG12 8TJ | `------------------------------------------------------------------------ *) END Sig. ======================================================================= 22 === Date: Fri, 8 Jul 94 15:02:19 EDT From: dagenais@vlsi.polymtl.ca (Michel Dagenais) Subject: M3 3.3 on LINUX It seems that i now have a very good port on LINUX. Even the dynamic libraries are now fully integrated into m3build. The debugger still needs work but this is not LINUX specific and hopefully the work of Peter Klein, among others, will help a lot. I should now be able to get back to my programs! The patches that i have not sent you yet are: - new Uerror.i3 for LINUX - "as" and "buildShared" shell scripts are added to the m3build package and installed if the TARGET is LINUX. - COMMON has "before" and "after" library hooks. - LINUX has some quake goo to get dynamic libs working - TCP.m3 has calls to getsockopt in order to clear EAGAIN and EINPROGRESS conditions that would make the "accept" call come back immediately making netobjd and other programs "polling" CPU hogs. On ftp.vlsi.polymtl.ca:pub/m3/linux, you will find README with a summary of changes and diff-m3-3.3l0.tar.gz which contains all the files that changed, as well as a "diff" file for the whole distribution to more easily see what the changes were. If you prefer me to uuencode/mail that or need other informations, let me know. Thanks. ======================================================================= 23 === Date: Fri, 8 Jul 1994 19:12:43 GMT From: dagenais@gutrune.vlsi.polymtl.ca (Michel Dagenais) Subject: Re: m3make question I have written a generic module, and written an m3makefile for it. When I typed m3make, the machine thought a few seconds, then gave me back a prompt. No error messages, no executable. Just a prompt. It still works on other files. M3makefile to follow. Anybody have a clue? Thanx :) m3makefile: m3_option(-times) generic_module(GDListADT) module(StackList) module(RealStack) implementation(TrialRun) program(trymeout) All the names should be in quotes, especially the "-times". Perhaps you want to import("libm3") as well. -- Prof. Michel Dagenais dagenais@vlsi.polymtl.ca Dept of Electrical and Computer Eng. Ecole Polytechnique de Montreal tel: (514) 340-4029 ======================================================================= 24 === Date: 09 Jul 1994 03:38:43 GMT From: schwartz@roke.cse.psu.edu (Scott Schwartz) Subject: Re: Association lists in M3 ? detlefs@src.dec.com (Dave Detlefs) writes: GENERIC INTERFACE TableList(Key, Value, KeyValueTable); (* Where "Key.T" and "Value.T" are types that are not open array types and "Key" contains Isn't that a rather painful restriction? What's the point of open arrays if you cannot use them most of the time. ======================================================================= 25 === Date: Sat, 9 Jul 1994 19:26:56 GMT From: dagenais@gutrune.vlsi.polymtl.ca (Michel Dagenais) Subject: Re: TCP and Pickle code examples wanted Can anyone provide me with an example program to show the use of the TCP interface for creating a socket based client and server. I want to use real sockets as I might want non-m3 and even non-unix clients. I have tried just porting an example (from C) from a socket programing book but it raises an illegal exception when the client attempts to connetc. The netobj and netobjd code use the TCP library. A simpler example might be better though. To unserstand what is going on in your example that raises an illegal exception, tracing the system calls (with trace or even better strace 3.0) is often very helpful. The server process will (unless anyone has any objections) save state between invokations by pickling to a file. Can anyone provide me with an example of pickling, and answer my next question, can I seek to a point in a file and then pickle, so perhaps creating a record based pickle file As far as i know, you can pickle to any Wr.T, from its current position. Thus you may store several pickles in a file and keep an index. I dont think though that you can ask for the size of a pickle before actually performing it; you must then always append new pickles at the end, or know their size by some other means before writing in the middle of a file. You can, however, pickle to a TextWr, check the size of the Text and then decide if it fits in some free slot in the middle of a file. -- Prof. Michel Dagenais dagenais@vlsi.polymtl.ca Dept of Electrical and Computer Eng. Ecole Polytechnique de Montreal tel: (514) 340-4029 ======================================================================= 26 === Date: Sat, 9 Jul 1994 19:30:19 GMT From: dagenais@gutrune.vlsi.polymtl.ca (Michel Dagenais) Subject: Re: M3 3.3 on LINUX Sorry about the previous message, it was sent to m3 instead of to m3-request @src.dec.com and was therefore relayed to the newsgroup. ======================================================================= 27 === Date: Sat, 9 Jul 1994 15:35:03 -0400 From: Eric A Stein Subject: Re: m3make question Thanks, but the quotes trick didn't work. I am apparently using the older version of modula-3, apparently, since m3build isn't a feature. Also, it should be noted that a similar format has worked for other programs. I'm wondering if maybe RCS could have anything to do with my problems? BTW, I'm on a HP-UX 9000/340. Thanx :) ======================================================================= 28 === Date: 11 Jul 1994 09:46:17 GMT From: dlr1002@cus.cam.ac.uk (Dan Ruderman) Subject: Looking for M3 for SGI Is there a M3 available for SGI's? An SRC version would be preferable. Thanks, Dan Ruderman ======================================================================= 29 === Date: Mon, 11 Jul 1994 11:11:30 -0400 From: Eric Stein Subject: Make help I am getting a make error as follows: Make: Must be a separator on rules line 109. Stop. This line is right after where I declare M3DEFPATH and M3LIBPATH. Can anybody tell me what this means? BTW, for the curious, my previous error was resolved by playing with RCS. Apparently, locked RCS files won't let m3make use them, for some strange reason. Thanks again, Eric ======================================================================= 30 === Date: 11 Jul 1994 17:02:35 GMT From: detlefs@src.dec.com (Dave Detlefs) Subject: Re: Association lists in M3 ? Scott Schwartz writes: > detlefs@src.dec.com (Dave Detlefs) writes: > GENERIC INTERFACE TableList(Key, Value, KeyValueTable); > (* Where "Key.T" and "Value.T" are types that are not open array types > and "Key" contains > > Isn't that a rather painful restriction? What's the point of open > arrays if you cannot use them most of the time. No, it's not really very painful. Remember that "open array" is different from "REF open array"; an "open array" is the type ARRAY OF T for some T. The only places you can use an open array are as the referent type in a REF type (REF ARRAY OF T), or as the type of a procedure formal parameter, as in PROCEDURE P(a: ARRAY OF T) This restriction exists because the compiler must be able to fill in the type descriptor that says how big the open array actually is. In the REF ARRAY case this comes from the extra arguments to NEW, as in NEW(REF ARRAY OF T, 20); in the procedure formal case this comes from the size of the actual argument. So the restriction are types that are not open array types is another way of saying are types the size of whose representations the compiler can determine statically which, you will agree, is necessary to generate code for a generic instantiation. Hope this helps... ====================================================================== Dave Detlefs DEC Systems Research Center Palo Alto, CA -- ====================================================================== Dave Detlefs DEC Systems Research Center Palo Alto, CA ======================================================================= 31 === Date: Mon, 11 Jul 1994 17:43:26 GMT From: dagenais@froh.vlsi.polymtl.ca (Michel Dagenais) Subject: Modula-3 Frequently Asked Questions (FAQ) Modula-3 FAQ Michel Dagenais, dagenais@vlsi.polymtl.ca v2.1, 20 June 1994 This document contains references to most of the material available on the Modula-3 language, compiler, tools and libraries. It should answer all the most frequently asked questions about Modula-3. The FAQ was originally written by Eric Muller. Send corrections, suggestions, additions to the current maintainer, Michel Dagenais dage- nais@vlsi.polymtl.ca. 1. What is new? Release 3.3 from DEC SRC recently came out. Its content is listed in the FAQ. A list of known problems and patches is now available and referenced in the FAQ. The language definition and documentation for most of the libraries is now available on the World Wide Web (thus accessible through Mosaic) Modula-3 Home 2. The language 2.1. What is Modula-3? Modula-3 is a systems programming language that descends from Mesa, Modula-2, Cedar, and Modula-2+. It also resembles its cousins Object Pascal, Oberon, and Euclid. 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, they studied the features of the Modula family of languages that have proven themselves in practice and tried to simplify them into a harmonious language. They 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 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. 2.2. Is Modula-3 a superset of Modula-2? No; valid Modula-2 programs are not valid Modula-3 programs. However, there is a tool to help convert Modula-2 programs to Modula-3. 3. The documentation 3.1. Where can I get a description of Modula-3? The language definition and most electronically available Modula-3 information can be accessed on: Modula-3 Home The definition of Modula-3 is contained in: o 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 more tutorial book about Modula3: o Modula-3 Samuel P. Harbison Prentice Hall, 1992 ISBN 0-13-596396-6 The table of contents is as follows: 1. Introduction 2. Declarations 3. Statements 4. Basic Types 5. Structured Types 6. Procedures 7. Exceptions 8. Interfaces and Modules 9. Generics 10. Dynamic Programming 11. Objects 12. Threads 13. Low-Level Programming 14. Programming Conventions 15. SRC Modula-3 16. Modula-3 Syntax 17. Answers to Selected Exercises The errata sheet is available via anonymous ftp from gatekeeper.dec.com in pub/DEC/Modula-3/errata. Errata If you cannot find these books at your favorite bookstore, here are bookstores connected to the net known to carry them: UCI carries both books: UCI Bookstore While Roswell is known to at least carry the language definition (SPwM3): Roswell Electronic Computer Bookstore (rjames@fox.nstn.ns.ca) Roswell Bookstore 3.2. Where can I get other 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. Comp.lan g.modula3 archive There are a couple high-level overview articles available: o "Modula-3", Sam Harbison, Byte, Vol. 15, No. 12, November 1990, pp 385+. o "Safe Programming with Modula-3", Sam Harbison, Dr. Dobb's Journal, Vol. 17, No. 10, October 1992, pp 88+. A description of the Modula-3 type system is in o "The Modula-3 Type System", Luca Cardelli, Jim Donahue, Mick Jordan, Bill Kalsow, Greg Nelson, Conference Record of the Sixteenth Annual ACM Symposium on Principles of Programming Languages (POPL), Austin Texas, January 11-13 1989, pp 202-212. The Modula-3 treatment of floating-point values is described in o "The Design of Floating-Point Data Types", David Goldberg, ACM Letters on Programming Languages and Systems (LOPLAS), June 1992, Vol 1, no.2, pp 138-151 The core library interfaces are described and indexed in o "Some Useful Modula-3 Interfaces", Jim Horning, Bill Kalsow, Paul McJones, Greg Nelson, SRC Research Report 113. Available via anonymous FTP from gatekeeper.dec.com in pub/DEC/SRC/research- reports/SRC-113.ps.Z Libm3 o "Pickles: a system for automatic serialization of typed values", Andrew Birrell, Greg Nelson, Susan Owicki, Edward Wobber, Systems Research Center, Digital Equipment Corp., in preparation. The Trestle window system toolkit, higher-level FormsVBT toolkit, and Zeus animation system available with Modula-3, are documented in the following reports: o "Trestle Reference Manual", Mark S. Manasse and Greg Nelson, SRC Research Report 68, December 1991. o "Trestle Tutorial", Mark S. Manasse and Greg Nelson, SRC Research Report 69, May 1, 1992. o "VBTkit Reference Manual: A toolkit for Trestle", edited by Marc H. Brown and James R. Meehan. (to be a SRC Research Report) A draft version is available via anonymous FTP from gatekeeper.dec.com in pub/DEC/Modula-3/contrib/vbtkit.25Mar93.ps.Z. VBTKit o "The FormsVBT Reference Manual", Marc H. Brown and James R. Meehan, (to be a SRC Research Report). A draft version is available via anonymous FTP from gatekeeper.dec.com in pub/DEC/Modula-3/contrib/formsvbt.25Mar93.ps.Z and pub/DEC/Modula-3/contrib/formsvbt.AppC.26Mar93.ps.Z. VBTKit library VBTKit applications o "Zeus: A System for Algorithm Animation and Multi-View Editing", Marc H. Brown, SRC Research Report 75, February 28, 1992. Available via anonymous FTP from gatekeeper.dec.com in pub/DEC/SRC/research-reports/SRC-075*.ps.Z. Zeus o "Color and Sound in Algorithm Animation", Marc H. Brown and John Hershberger, SRC Research Report 76a, August 30, 1991. Available via anonymous FTP from gatekeeper.dec.com in pub/DEC/SRC/research- reports/SRC-076a*.ps.Z. Color and Sound o "The 1992 SRC Algorithm Animation Festival", Marc H. Brown, SRC Research Report 98, March 27, 1993. Available via anonymous ftp from gatekeeper.dec.com in pub/DEC/SRC/research- reports/SRC-098*.ps.Z. Animation Festival Network objects are described in the following reports: o "Network Objects", Andrew Birrell, Greg Nelson, Susan Owicki, and Edward Wobber, SRC Research Report 115, February 28, 1994. Available via anonymous FTP from gatekeeper.dec.com in pub/DEC/SRC/research-reports/SRC-115*.ps.Z. Network Objects o "Distributed garbage collection for Network Objects", Andrew Birrell, David Evers, Greg Nelson, Susan Owicki, and Edward Wobber, SRC Research Report 116, December 1993. Available via anonymous FTP from gatekeeper.dec.com in pub/DEC/SRC/research- reports/SRC-116*.ps.Z. Distributed GC While the Obliq embeddable interpreter is documented in: o "Obliq: A lightweight language for network objects", Luca Cardelli, User's Manual, Systems Research Center, Digital Equipment Corp., 1994. Available via anonymous FTP from gatekeeper.dec.com in pub/DEC/Modula-3/contrib/Obliq.ps. Obliq Hardcopy versions of these reports can be ordered by e-mail; send your request including a postal mail address to src-reports@src.dec.com. Sedgewick's classic text on computer algorithms is presented in Modula-3 in: o Algorithms in Modula-3 Robert Sedgewick Addison-Wesley, 1993 ISBN 0-201-53351-0 4. The implementations 4.1. Where can I get an implementation? Two implementations are available, SRC Modula-3 and a PC version of it (m3pc). As far as we know, implementations are not available for VMS, Macintosh. 4.2. What is SRC Modula-3? SRC Modula-3 was built by the DEC Systems Research Center and is available via anonymous ftp from gatekeeper.dec.com in pub/DEC/Modula-3. The most recent version is release 3.3. The previous release, 3.1, was a major new release intended mostly for porting to architectures other than DEC. A list of known problems and patches is available in: patche s This release is known to work on at least on the DS3100, SPARC and LINUX architectures. The SPARC release notes may be found on ftp.gte.com:pub/m3 while the LINUX ones are available on ftp.vlsi.polymtl.ca:pub/m3/linux/README. SRC-Modula-3 < /A> SPARC release notes LINUX release notes The compiler implements the language defined in SPwM3. There are versions for the architectures listed below. While SRC can test on DS3100, ALPHA/OSF and LINUX, it can only rely on what users on other platforms tell them to integrate all the platform specific code. Because of the improved portability of the 3.* release, ports to non Unix platforms are easier. A port to Windows NT and/or Windows 3.1 may be available in the future. The Windows NT port, in progress, uses native threads. This should be a good model for other implementations of Thread using native threads. o AIX386 IBM PC running AIX/PS2, o AOSF DEC Alpha AXP running OSF/1 o AP3000 Apollo DN4500 running Domain/OS o ARM Acorn R260 running RISC iX 1.21 o DS3100 DECstation 3100 and 5000 running Ultrix 4.0 and 4.2 o HP300 HP 9000/300 running HP-UX 8.0 o HPPA HP 9000/700, 9000/800 running HP-UX 8.0 o IBMR2 IBM R6000 running AIX 3.1, o IBMRT IBM RT running IBM/4.3, o LINUX Intel 386 running LINUX o NEXT NeXT running ?? o NT386 Intel 386 running Windows NT o OKI Okidata 7300 (i860) running UNIX SVR4.0 o SEQUENT Sequent computers running ?? o SOL2 Sparc running Solaris 2.x o SPARC SPARCstation running SunOS 4.1.x o SUN3 SUN3 running SunOS o SUN386 Sun 386i running SunOS 4.0.1 o UMAX Encore Multimax running UMAX 4.3 (R4.1.1) o VAX VAX running Ultrix 3.1 The new native compiler is based on GCC 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. The DEC SRC Modula-3 release 3.3 contains the following: o A native code compiler: uses the GCC backend; on machines/operating systems that have self-describing stacks, an optimized exception handling mechanism is provided, on other architectures, setjmp/longjmp is used. The compilation system provides for minimal recompilation. Only those units that depend on the modified interface item will be recompiled. o m3utils/m3build: tool that performs dependency analysis and builds the Modula-3 programs and libraries. o A large standard library (libm3) providing o A multithread, incremental, generational, conservative garbage collector o Text manipulation. o Generic Containers: Lists, Sequences, Tables, SortedLists, SortedTables o Atoms and Symbolic expressions (Lisp like lists) o An extensible stream IO system o Typesafe binary object transcription (persistent objects) o Operating system interfaces o Portable interfaces to the language runtime All standard libraries are thread-friendly. Modula-3 can readily link with existing C libraries; many libraries including X11R4 and various UNIX libraries are available as part of libm3. o m3gdb: a Modula-3 aware version of GDB. o trestle: a multi-threaded window system interface that sits on top of X windows. It is not unlike InterViews and comes with several sample programs. o trestle/tcp: a library for simplified access to TCP/IP. o vbtkit: a higher level toolkit on top of Trestle. It offers buttons, menus, editors, file choosers... and has a Motif-like look and feel. o formsvbt: an interactive user interface builder. A symbolic expression representing the user interface is edited and the graphical view is immediately produced. o tools/coverage: tool to determine the number of times each statement is executed. o tools/pp: pretty printer for Modula-3 programs. o tools/gnuemacs: emacs lisp files to help editing and debugging Modula-3 programs in emacs. o tools/m3bundle: tool to bundle data files into an executable to produce standalone programs. o tools/m3totex: extract TeX documentation from Modula-3 programs for a form of literate programming. o tools/showheap: tool to graphically see the behavior of the garbage collector. o tools/shownew: tool to graphically see the allocation behavior of a running program. o tools/showthread: tool to see the activation of threads in a running program. o zeus: framework to develop graphical animations of algorithms (heapsort, quicksort, LRU cache replacement, network protocols...) for visualization and teaching purposes. o mentor: a dozen of animations developed using Zeus. o netobj: network objects that allow the transparent execution of methods across process and machine boundaries. A simple yet very effective way to build distributed applications. o obliq: simple, interpreted, lexically scoped, object oriented, distributed programming language that can be embedded in Modula-3 programs and call/be-called by Modula-3 procedures. The Obliq object model is based on prototypes and delegation. o A framework for parsing and analyzing Modula-3 programs. This is a complete AST toolkit for Modula-3. This can parse arbitrary Modula-3 sources (input isn't required to be a complete unit) and produce detailed ASTs representing the input. The ASTs can be used to do a variety of semantic analysis tasks, or program generation tasks similar to Lisp environments. (m3tk). o pkgtools/smalldb: library to store objects on disk with logging and recovery capabilities. o pkgtools: distribution tool that insures that several copies of a package (software, document...) are updated simultaneously. o postcard: mail and news reading environment. o visualobliq: a graphical user interface builder coupled with a simple yet powerful interpreted language, Obliq, for rapid development of interactive distributed applications. o This is a rather new component and is undergoing a fair amount of evolution; however, it is still very useful and exciting. Visual Obliq provides an application builder similiar in nature to Visual Basic. However, it uses Obliq as its scripting language. This makes it easy to build and prototype interesting distributed and groupware applications. It can be used for building non-distributed applications as well. o misc/tcl: interface to access the Tcl language from Modula-3. o misc/dps: interface to access Display Postscript from Modula-3. o games: more sample Trestle applications. 4.3. What is m3pc? A newer version of m3pc, code named EX32 in the README file, is available via anonymous ftp from gatekeeper.dec.com in pub/DEC/Modula-3/contrib/M3forDOS. PC Modula -3 From the README, written by Klaus Preschern: EX32 ("A 32-bit Extension of DOS") is a environment for the developement and execution of 32-bit applications with DOS. EX32 is a collection of DOS programs (drivers + kernel). It provides services for applications executed in protected mode. It does process management, virtual memory management, interprocess communication via pipes and it offers a file system with 32 character filenames. EX32 runs on MS-DOS 5.00, 6.00 and 6.02. You need a i386/i387 (coprocessor required) or upward (i486, Pentium). EX32 supports DOS XMS memory (but not EMS, VCPI or DPMI). No support for the i286. You should have at least 4 MB memory (8 MB or more recommended). The whole package occupies unzipped and untared approximately 44 MB of disk space. EX32 comes with GNU C++ (version 2.4.5), SRC Modula-3 (version 3.1, including threads), two C libraries, a graphics library for VGA and a number of commands (i.e. ls, cp, rm, mkdir, make, ...). Note: This is a system for experienced programmers! They should be familiar with Unix and DOS. 5. Some specific questions 5.1. Why is "Hello World" so large? Modula-3 programs are larger than C programs for the following reasons: 1. The fixed runtime is substantially larger. It contains a garbage collector, a thread runtime, and exception support. Note that "Hello World" is virtually all runtime. For larger programs the runtime is not an issue. 2. The generated code includes runtime checks for out-of-bound array references and NIL pointer. Many of these checks could be removed by a more sophisticated compiler. 5.2. Why objects and interfaces? Allan Heydon on comp.lang.modula3, May 4th 1993: Modula-3 provides two separate mechanisms for data-hiding: one for hiding details about how interfaces are implemented, and the other for hiding details about how objects are implemented. The first data-hiding mechanism is realized by the distinction between interfaces and modules. Clients can only import interfaces, so the names declared in the modules implementing those interfaces are hidden from clients. Note that this mechanism has only two levels; a name is either declared in an interface, or it isn't. If a name is only declared in a module, it can't be used by a client. The second data-hiding mechanism is realized by opaque types and revelations. A Modula-3 interface may declare an object type to be opaque, in which case only a subset of the fields and methods of that object are revealed to clients importing the interface. Furthermore, the Modula-3 revelation mechanism allows a designer to reveal successively more fields and methods of an object in a series of interfaces. The fields and methods visible to a client then depends on which interfaces the client imports. The latter mechanism is quite flexible. As opposed to the interface/module data-hiding mechanism, opaque types allow you to define an arbitrary number of levels at which more and more information about the implementation of your object is revealed. See Sections 2.2.10, 2.4.6, and 2.4.7 of "Systems Programming with Modula-3" for more information about opaque types and about partial and complete revelations. 5.3. Comparisons between Modula-3 and other languages? From: laszlo@post.ifi.uni-klu.ac.at (Laszlo BOESZOERMENYI) "A Comparison of Modula-3 and Oberon-2" by myself in "Structured Programming" 1993, 14:15-22 From: nayeri@gte.com Robert Henderson, Benjamin Zorn, A Comparison of Object-Oriented Programming in Four Modern Languages, Department of Computer Science, University of Colorado, Boulder, Colorado, Technical Report CU- CS-641-93. Available by anonymous FTP and e-mail from ftp.cs.colorado.edu in the file pub/cs/techreports/zorn/CU- CS-641-93.ps.Z The paper evaluates Oberon, Modula-3, Sather, and Self in the context of object-oriented programming. While each of these programming languages provide support for classes with inheritance, dynamic dispatch, code reuse, and information hiding, they do so in very different ways and with varying levels of efficiency and simplicity. A single application was coded in each language and the experience gained forms the foundation on which the subjective critique is based. 5.4. What is the story with Trestle and OpenWindows? Mark Manasse says: I think that the OpenWindows release should be enough (no need to get the MIT X release), although there are a few things in Trestle that trigger devastating bugs in OpenWindows. But the only library we depend on is Xlib, R4 or later. The main thing I know that crashes OW 2.0 is the code where we call GrabKey specifying AnyKey. You can either loop over all of the keys, or you can just comment out the call; programs won't run exactly the same, but you probably won't notice the difference. 5.5. Linking with C++ code Apparently there is no problem to call C++ functions declared as extern "C". From: gwyant@cloyd.East.Sun.COM (Geoffrey Wyant - Sun Microsystems Labs BOS) You must use your C++ compiler as the linker, rather than /bin/cc or /bin/ld. You need to call the function '_main'. The easiest way to do this is to have the following set of interfaces and implementations: INTERFACE CXXMain; <*EXTERN "_main"*> CxxMain; END CXXMain; MODULE CXXMain; BEGIN CxxMain(); END; and then import CXXMain into your M3 main module. This will ensure that the C++ function "_main" gets called. 6. FTP 6.1. How To Obtain Pre-Compiled Binaries The following binaries are available for FTP. If you are willing to provide binaries for other architectures, please contact dagenais@vlsi.polymtl.ca; they may be put on his FTP server or links to your server can be included in the FAQ. Starting with release 3.2, more detailed instructions will be included for those who need to install these binaries in different locations, for instance in their home directory. o Release 3.3 SPARC binaries. Contains most of the 3.3 release and comes with static and shared libraries. If you have problems building the 3.3 release for SPARC, you may want to look at the lude/modula3-3.3/src/poly directory as it contains all the locally modified files. It can be retrieved from ftp.vlsi.polymtl.ca:lude/modula3-3.3/run/poly.tar.Z and should be placed in /usr/local/soft/modula3-3.3/run/poly... Then, /usr/local/soft/modula3-3.3/run/poly/sun4.1_sparc/bin must be added to your path. Compiled by Michel Dagenais. SPARC M odula3-3.1 o Release 3.3 LINUX binaries. It can be retrieved from ftp.vlsi.polymtl.ca:pub/m3/linux/src-m3-3.3l0.tar.gz and should be placed in /usr/local/soft/modula3-3.3... Then, /usr/local/soft/modula3-3.3/run/bin must be added to your path. Compiled by Michel Dagenais. LINUX Modula3-3.3 6.2. What if I don't have ftp access? Unfortunately, DEC SRC cannot deliver Modula-3 other than by anonymous ftp. Fortunately, Prime Time Freeware (PTF) includes Modula-3. PTF is a set of two ISO-9660 CDroms filled with 3GB of freeware, issued semi- annually. The latest issue, Volume 1, Number 2, July 1992, contains SRC Modula-3 2.07. PTF is distributed via bookstores and mail. You can reach PTF using: Email: ptf@cfcl.com Fax: [1] (408) 738 2050 Voice: [1] (408) 738 4832 Mail: Prime Time Freeware 415-112 N. Mary Ave., Suite 50 Sunnyvale, CA 94086 USA 7. Contributing 7.1. Can I contribute Modula-3 software? Certainly. Send to m3-request@src.dec.com what you are willing to share, be it programs, libraries or other things. They will be put in the distribution. Right now, the pub/DEC/Modula-3/contrib directory contains: Contrib o m3rpc a Sun RPC system from Xerox Parc o M2toM3 a translator from Modula-2 to Modula-3 o m3pc an implementation of Modula-3 for PCs. 7.2. ILU, an object-oriented multi-lingual RPC-capable module system The following was recently announced by Xerox PARC: Version 1.6.4 of the Xerox PARC Inter-Language Unification (ILU) system is now available for general use. WHAT'S ILU? ILU (pronounced eye'-loo) is a system that promotes software interoperability via interfaces. Interfaces between what? Whatever units of program structure are desired; we call them by the generic term "modules". They could be parts of one process, all written in the same language; they could be parts written in different languages, sharing runtime support in one memory image; they could be parts running in different memory images on different machines (on different sides of the planet). A module could even be a distributed system implemented by many programs on many machines. Calls across ILU interfaces involve only as much mechanism as necessary for the calling and called modules to interact. In particular, when the two modules are in the same memory image and use the same data representations, the calls are direct local procedure calls -- no stubs or other RPC mechanisms are involved. ILU modules are known by their interfaces. A module interface is specified once in ILU's object-oriented Interface Specification Language (called, simply, ISL). For each of the particular programming languages supported by ILU (currently Common Lisp, ANSI C, C++, and Modula-3; Python, Tcl, and GNU Emacs-Lisp are in the works), a version of the interface in that particular programming language can be generated. The ILU kernel library provides services which may be used by the language-specific interface to overcome intermodule language or address space differences. GETTING THE RELEASE The release is only available via FTP from the PARC ftp server. Perhaps the simplest way is to go through our World Wide Web home page, ILU CONTRIBUTORS Antony Courtney, Doug Cutting, Bill Janssen, Denis Severson, Mike Spreitzer, Mark Stefik, Farrell Wymore 8. Modula-3 for teaching Modula-3 is very well suited for teaching: simple yet powerful, and safe. It avoids the complexity of legacy languages. It can be used to demonstrate modules and interfaces, object oriented programming, multi-threading (concurrency issues), graphical user interfaces (Trestle, VBTKit, FormsVBT) and even distributed programming (Network Objects, Obliq). Since less time is spent by students and teaching assistants chasing dangling pointers and corrupted data, more time is available for learning the important concepts. It is used for teaching in a number of universities. This list is far from complete, send corrections and additions to dagenais@vlsi.polymtl.ca. From: Carsten Whimster (bcrwhims@undergrad.math.uwaterloo.ca) University of Waterloo: CS246 - Third introductory course in computer science. Software engineering and software systems. Medium size projects. Uses Modula-3 to demonstrate proper OO programming, as well as general programming practices. CS241 - Fourth and final intro course to CS. Focuses mainly on compilers and languages. Various assignments has students create most of the different parts of a compiler. Also introduces Scheme (lisp). From: Peter.Robinson@cl.cam.ac.uk University of Cambridge, England. The Computer Science course at the University of Cambridge teaches ML as an introductory language at the beginning of the freshman year, and then uses Modula-3 to develop imperative programming at the end of that year. Further lectures on advanced features of the language are given early in the second year, together with separate lectures on other, specialised languages. The course has been given to about 70 students each year since 1990, and has developed with the language. It ties in with other lectures on data structures and algorithms, software engineering and concurrency. Modula-3 is used for student group projects in the second year and for about a quarter of individual projects in the final year (where, interestingly, students using Modula-3 tend to earn higher grades than those using C/C++). Modula-3 is also used in the Computer Laboratory at Cambridge for a number of research projects on distributed computing, human-computer interaction and electronic CAD. From: Matthew.Huntbach@dcs.qmw.ac.uk We have used it for three years here at Queen Mary and Westfield College, London. The main problem I find with the language is the slow compilation speed on our teaching machines (Macs running A/UX), otherwise it's a nice language to teach with. From: laszlo@ifi.uni-klu.ac.at (Laszlo BOESZOERMENYI) University Klagenfurt Modula-3 is used at the following courses: Undergraduate: Softwaretechnology-1 (actually an introduction into programming) (on PCs) Softwaretechnology-2 (data structures and algorithms) (on PCs) Graduate: Computer Networks (on a network of DECs and SUNs) Parallel Programming (on an DEC-Alpha Farm) Modula-3 has been in use since ca. one year, with very good experiences. From: pk@i3.informatik.rwth-aachen.de (Peter Klein) Lehrstuhl fuer Informatik III, RWTH Aachen, Germany: Software Development Projects, now held for the second time using Modula-3. Aim of these projects is to introduce different aspects of software development to graduate students. This includes project planning, supervision, design, and cooperative implementation of small but usable software systems. Central ideas of software design and object- oriented implementation are presented and discussed with the concepts of Modula-3, which is also the implementation language. Future plans: Maybe Modula-3 will replace Modula-2 in some undergraduate programming lectures in the future. From: rro@cs.colostate.edu (Rod Oldehoeft) In the Computer Science Department at Colorado State University, M3 is envisioned as a vehicle for several courses. M3 is introduced in the second course (data structures) to implement the ADT concept, including generics. In the sophomore languages course, it is an example of an O-O language. In the junior software engineering course, additional relevant features are brought in, and threads are added in the junior operating systems course. From: viggo@nada.kth.se Royal Institute of Technology. Several courses at the computer science department use Modula-3. The courses contain programming projects, and many students choose to use Trestle. (Dr. Viggo Kann, viggo@nada.kth.se) From: Arnulf Mester (mester@tamfana.informatik.uni-dortmund.de) University of Dortmund, Department of Computer Science, Germany. An undergraduate course (scheduled for September) for students within their second year of studies this time takes Modula-3 as third language. Maybe later network programming courses will also use M3/NO/Obliq. The Modula-3 class has it's own WWW home page which is planned to be filled during the class in Oktober/September this year. Modul a-3 Class From: "Dave Snelling" (snelling@cs.man.ac.uk) Department of Computer Science, University of Manchester, Manchester U.K. We have a small, interdisciplinary collection of people using Modula-3 for a variety of activities. Our major production code is a hardware architecture simulator (about 120 modules). Smaller projects include a Lattice Gass model and a Shallow Water model. At: University of Massachusetts at Amherst Modula-3 is used as an input language for the Computer Science course on Compilation techniques. The professor is Eliot Moss. From: Michel Dagenais (dagenais@vlsi.polymtl.ca) Modula-3 is used as the main example in a graduate course on "Algorithmic Aspects of CAD", which includes a large portion on OO programming and databases. From: pbh@cs.sunysb.edu (Peter Henderson) Modula-3 is currently used for teaching Computer Science I and Computer Science II at SUNY at Stony Brook. We are currently developing a sequence of laboratory assignments and case studies introducing OO techniques and software reuse in these two courses. The first course for computer science majors at Stony Brook is "Foundations of Computer Science" which emphasizes general problem solving, mathematics and the relationships between mathematics and computer science. There is an extensive laboratory component using theorem provers, Prolog and Standard ML. 9. Modula-3 In Industry A number of programming teams in industry selected Modula-3 for their project. It encourages good programming practices and comes with excellent libraries for distributed programming and graphical user interfaces. From: gwyant@cloyd.East.Sun.COM (Geoffrey Wyant - Sun Microsystems Labs BOS) Sun Microsystems Laboratories, Inc. (East) is using Modula-3 (Network Objects, FormsVBT) as the basis for its research in large scale distributed object systems. From: Farshad Nayeri (nayeri@gte.com) Distributed Object Computing, GTE Labs, Waltham, Massachusetts USA Modula-3 (FormsVBT, Sx, Netobj libraries) is used to prototype distributed object management. (Farshad Nayeri nayeri@gte.com). Report 10. Work In Progress The purpose of this section is to let everyone know what is being worked on. This is not a commitment to a quick release or even to completion. However it may enable parties interested in the same topics to pool their efforts, avoid duplication or better integrate their packages. To find more information about the names mentioned, see the Who's Who section. 10.1. The SRC Compiler The compiler already implements the full language and runs on several platforms. Speed enhancements and support for some popular non-Unix platforms may be expected. 10.2. Modula-2 To Modula-3 Converter A better Modula-2 to Modula-3 converter (99% conversion...) is in the works under the supervision of Peter Klein. 10.3. Integrated Development Environment A number of groups have made experiments in this area. Tools such as VBTkit for the user interface, m3tk for syntax and dependency analysis, dynamic linking... could be used to produce such an environment. It is worth noting that precompiled interfaces are much easier to achieve in M3 than in several other popular languages. Peter Klein is working on a Modula-3 development environment and associated user interface. Klaus Preschern, Carsten Weich, Laszlo Boszormenyi have made the port of Modula-3 to the PC. The M3-PC environment will be enhanced, especially with threads and graphics, including a student-friendly environment. David N. Gray of Lucid Inc. has been experimenting with connecting the Modula-3 compiler with the Lucid Energize Programming System (currently sold as a development environment for C and C++ on Sun SPARCstations). He expects to be able to make the modified compiler available as an unsupported as-is hack in a couple of months, to accompany the new Energize release that it works with. Geoff Wyant is experimenting with FormsVBT/VBTKit to build a simple friendly development environment. 10.4. Useful Data Structures Michel Dagenais has insertable sequences. This is like the existing Sequences in libm3 except that the complexity is O(log n) instead of O(1) but elements can be inserted anywhere, not only at the top and bottom of the sequences. This is useful to keep childs in a tree automatically numbered or to efficiently keep words or paragraphs numbered while insertions are being made. This will be made available eventually but could be packaged in a relatively short time if there is a need. 10.5. Windowing And User Interfaces 10.5.1. Rotated Text Currently, there is no VBT to show non horizontal text, because of X windows limitations. This would be desirable and can be implemented in one of the following ways: a) open a pipe to the ghostscript Postscript interpreter and use it as a font renderer, cache and display the character bitmaps produced; b) have Bezier curves for the most popular Postscript fonts, Trestle handles Bezier curves; c) use the new text facilities in X11R6 that remove previous limitations. A prototype implementation of a) has been implemented by Alain Dube (contact Michel Dagenais); the performance with the cache is good but this remains a relatively complex solution. The b) solution would be relatively easy to implement but the resulting quality may not be as good as a real font renderer. The c) solution may not be available for some time since many workstation vendors take a long time before integrating the new X windows facilities. 10.5.2. Postscript VBTs It is often useful to display Postscript files in a VBT, for example for an included diagram in a document editor. This can be achieved by using the ghostscript Postscript interpreter as a rasterizer. A prototype has been programmed by Alain Dube (contact Michel Dagenais) but the performance is not too good when large color bitmaps are handled. An alternative implementation is to convert Postscript files into display lists (Bezier curves and text) as a preprocessing step. Further displaying and even editing becomes very simple. A prototype implementation of this has been done by Benoit Poirier (contact Michel Dagenais). 10.6. Persistent Objects With Pickles to store objects in files, the implementation of persistent objects is simplified. Furthermore, with the m3tk library it is not too difficult to read a type description and to write the needed methods to handle that type. Combined with FormsVBT, network objects and Obliq, all the ingredients are there to have a nice environment for developing graphical distributed applications with persistent state and querying facilities. Peter Klein has a specialized database for annotated graphs, GRAS, that is being re-implemented in Modula-3. Eliot Moss is working on persistent Modula-3 objects. The main features are persistence through reachability, load on demand and a very low overhead for using persistent objects. The high performance is obtained by modifying the compiler and run-time. Initially a modified version of GCC, GNU M3, was being worked on. However, with the release of the SRC native compiler, the modifications are being moved to the SRC compiler instead. Persistency 10.7. Abstract Syntax Tree Tools (M3 Parser) The m3tk library can be used to analyze Modula-3 source code in order to find specific constructions (use of OBSOLETE facilities, un-handled exceptions), build source code browser and analysis tools, stubs generators for network or persistent objects... Mick Jordan is preparing the 3.2 release of m3tk and finishing the documentation, in his spare time. From: hudson@yough.ucs.umass.edu (Rick Hudson) If anyone is interested we have developed a Bison grammar that parses the Modula-3 language input. If interested please feel free to contact me hudson@cs.umass.edu. 10.8. Computer Assisted Learning Tools (Algorithm Animation) The Zeus Algorithm Animation package may be used to quickly develop graphical and animated teaching aids. Most of the algorithms described in Robert Sedgewick's Algorithms book have been animated at DEC SRC through the work of Marc H. Brown. Animation of compilation techniques have been produced by students at University of Illinois with the help of Marc Najork. Animation of Memory Hierarchy (Disk, RAM, Cache) has been produced by Michel Dagenais and should be released soon, after some tuning and packaging. From: "Arnulf Mester" (mester@ls4.informatik.uni-dortmund.de) As part of a studental project advised by a college of mine and me a Mentor-like collection of Zeus-based animations of typical distributed algorithms and communication protocols (termed ZADA) has been compiled. Hopefully I'll get to include more information and access during the next weeks into our ZADA WWW home page ZADA 10.9. Presentations, Tutorials And Teaching Material Modula 3 is used for teaching in a number of Universities. Some Modula-3 related teaching material may be shared between interested parties. Michel Dagenais has a French presentation about the Modula 3 language that could be distributed. An English presentation about the Modula-3 environment and libraries should be available later this summer. Geoff Wyant is preparing a tutorial on Modula-3 for the upcoming OOPSLA conference. 10.10. Reports And Books Sam Harbison is preparing a revised version of his existing book on Modula-3. He may include more material on the new libraries. Laszlo Boszormenyi, Roland Mittermeir and Carsten Weich are working on a book (it will be published in German and in English) with the work- title: "Programming in Style - An Introduction into Programming with Modula-3" The book will be published at Springer (in German in October 1994, in English maybe or December, or January 1995). For the book, the M3-PC environment will be enhanced, especially with threads and graphics, including a student-friendly environment. A book about writing distributed object oriented applications, using Modula-3, m3build, m3gdb, analyze_coverage, FormsVBT, Obliq and Network Objects is being planned by Geoff Wyant, Farshad Nayeri and Michel Dagenais. From: BERGINF@PACEVM.DAC.PACE.EDU (Joseph Bergin) I am also at work on a Modula-3 college level textbook. It will cover the data structures course and will stress data abstraction. It will be similar to my current book: Data Abstraction: The Object-Oriented Approach using C++, published by McGraw Hill. Status: The software has been built and I am currently writing the text itself. Joe Bergin, berginf@pacevm.dac.pace.edu, Pace University 10.11. Floating Point Geometry Library Currently, an Integer geometry package is available in libm3. Portions of an equivalent floating point counterpart is available in other applications such as Zeus/Mentor. Michel Dagenais has packaged these and completed some. It has been contributed to m3-request@src.dec.com but may be distributed to those that simply cannot wait. 10.12. Parallel Programming From: Ernst A. Heinz, University of Karlsruhe, F.R. Germany (email: heinze@ira.uka.de) I would like to inform you about our ongoing Modula-3* project here at the University of Karlsruhe. At the moment, we are actively involved in adding sophisticated dependence and data flow analysis to DEC's Modula-3 compiler (release 3.x!). The Modula-3* compiler will be able to generate code for real parallel machines, for networks of workstations, and for standard sequential execution. (Our new IPD Modula-2* system available by anonymous ftp from ftp.ira.uka.de in "pub/programming/modula2star" may give you an initial feeling about it!) For all interested folks I have made my JSPP'93 paper publicly available by anonymous ftp. The title of the paper reads as follows: "Modula-3*: An Efficiently Compilable Extension of Modula-3 for Problem-Oriented Explicitly Parallel Programming". Paper 11. Wish List The Modula-3 development environment now contains a large number of very good tools and libraries that work nicely together. The purpose of this section is to help contributors determine what additions would be helpful to others. It may get you in contact with people that would like to use your contribution or with people that may provide some items on your wanted list or team with you for their development. 11.1. M3Build The descriptions of programs and libraries stored in m3makefiles are simple and efficient. It would be interesting to be able to specify different m3-options for some files (debugging, performance analysis...), and to have the dependency analysis take into account previously used options when determining modules to recompile (Michel Dagenais). Although makefiles cannot perform the same consistency checks as m3build and are more cumbersome to use, it may be useful to be able to drive the compiler through makefiles for training purposes (i.e. learn Modula-3 and Makefiles at the same time) (bwbecker@watdragon.uwaterloo.ca). 11.2. Coverage And Performance Analysis Tools already exist for coverage analysis, pretty printing, performance analysis, viewing the threads and the garbage collected heap. It would be nice to have these easily accessible through an integrated development environment (Michel Dagenais). 11.3. More VBTs An editor widget with multiple fonts (fixed and proportional character spacing) perhaps even with direct support for HTML (item lists, centered headings...) (Geoff Wyant, Farshad Nayeri). A diagram editor widget (Farshad Nayeri). A split VBT that positions NxM childs in aligned rows and columns (Geoff Wyant). A Graph VBT that displays arbitrary graphs (such as call trees, cross references...). This could be implemented adding a placement module (to determine the vertex positions) to work on the existing GraphVBT module (Geoff Wyant). Some of the VBTs implemented in miscellaneous libraries (such as GraphVBT in Mentor/Zeus) could be placed in a more visible location such as VBTKit (Michel Dagenais). MIME extensions to Postcard (Farshad Nayeri). Submit Trestle to a graphical designer (Farshad Nayeri). 11.4. Distributed Computing (Network Objects) Network objects are an exciting recent addition. The underlying model is very simple and effective. Authentication and access control will be required in many applications. A network object daemon that starts specific programs upon need, like inetd does using inetd.conf for most network services, would be very useful (Michel Dagenais). 11.5. Interfaces To Other Libraries And Programs (Tcl, Dps...) C functions are easily called from Modula 3. Thus, stubs have been produced to access John Ousterhout's Tcl and also Display Postscript from Modula 3. An automatic tool to produce such stubs from .h C files would be very useful (Geoff Wyant). Stubs to access the Motif X Windows library would be useful (Geoff Wyant). Similar stubs would be desirable to access databases such as Postgres or Exodus and access/provide World Wide Web information using the hypertext transfer protocol libraries (HTTP) (Geoff Wyant). 12. Who's Who Modula-3 enthusiasts, users or contributors. Please notify me for additions, corrections or removals. o Robert Ayers, Adobe, (ayers@Mv.Us.Adobe.Com), the Display Postscript to Modula-3 interface o Andrew Birrell, DEC SRC, Network objects. o Laszlo Boeszoermenyi, Universitaet Klagenfurt, Austria, (laszlo@ifi.uni-klu.ac.at), PC port (m3pc), Programming in style book. o Marc H. Brown, DEC SRC, VBTKit, FormsVBT, Zeus. o Luca Cardelli, DEC SRC, Modula-3 definition, Obliq. o Michel Dagenais, Ecole Polytechnique de Montreal, (dagenais@vlsi.polymtl.ca), LINUX and SPARC M3 binaries, M3 FAQ. o John D. DeTreville, DEC SRC, Incremental garbage collector. o David N. Gray, Lucid Inc., Menlo Park, (gray@Lucid.Com), interface between the Lucid environment and the M3 compiler. o Sam Harbison, Tartan, harbison@tartan.com, Modula-3 book. o Ernst A. Heinz, University of Karlsruhe, F.R. Germany (heinze@ira.uka.de) o Allan Heydon, DEC SRC, IP, Lex, Fmt, PQueue, DblBufferVBT modules. o Jim Horning, DEC SRC, Useful Modula-3 interfaces. o Rick Hudson, University of Massachusetts at Amherst, (hudson@cs.umass.edu), GNU Modula-3. o Mick Jordan, Sunlabs near Palo Alto, Modula-3 definition, M3TK and related tools. o Bill Kalsow, DEC SRC, Modula-3 definition, M3 compiler and run- time. o Peter Klein, Lehrstuhl fuer Informatik III, (pk@i3.informatik.rwth- aachen.de). Modula-2 to Modula-3 converter. o Mark S. Manasse, DEC SRC, Trestle. o Paul McJones, DEC SRC, Useful Modula-3 interfaces. o James R. Meehan, Adobe (jmeehan@mv.us.adobe.com), VBTKit, FormsVBT. o Roland Mittermeir, Universitaet Klagenfurt, Austria, (mittermeir@ifi.uni-klu.ac.at), Programming in style book. o Eliot Moss, University Of Massachusetts At Amherst, (moss@Cs.Umass.Edu), GNU Modula-3. o Eric Muller, DEC SRC, M3 compiler and run-time. o Marc Najork, DEC SRC, 3D animation. o Greg Nelson, DEC SRC, Modula-3 definition, Systems Programming with Modula-3 book editor, Trestle, Network objects. o Farshad Nayeri, GTE Labs Near Boston, (nayeri@Gte.Com), m3-sparc mailing list. o Frode Odegard, (frode@Odegard.Com), commercial Modula-3 support. o Susan Owicki, DEC SRC, Network objects. o Klaus Preschern, Universitaet Klagenfurt, Austria, (preschern@ifi.uni-klu.ac.at), PC port (m3pc). o Robert Sedgewick, Princeton University, Algorithms in Modula-3 book. o Jorge Stolfi, Brazil, Computational geometry procedures. o Carsten Weich, Universitaet Klagenfurt, Austria, (weich@ifi.uni- klu.ac.at), PC port (m3pc), Programming in style book. o Edward Wobber, DEC SRC, Network objects. o Geoff Wyant, Sunlabs Near Boston, (gwyant@East.Sun.COM), SPARC port. -- Prof. Michel Dagenais dagenais@vlsi.polymtl.ca Dept of Electrical and Computer Eng. Ecole Polytechnique de Montreal tel: (514) 340-4029 ======================================================================= 32 === Date: 11 Jul 1994 20:36:05 GMT From: gram@Aztec.co.ZA (Graham Wheeler) Subject: EX32 experiences? Hi folks I ftp'ed EX32 a few days back in great anticpation of getting into some M3 programming. Unfortunately, when I try compile the test files (threads.m3 being the first) EX32 barfs with a virtual memory `attempt to free unallocated block' message. Has anyone had better luck? Please e-mail if you have any advice. Thanks in advance Gram. ======================================================================= 33 === Date: 12 Jul 1994 09:50:58 +0000 (WET) From: 89200004@vax1.may.ie Subject: Modula-3 on Solaris 2.3 Has anyone got Modula-3 fully ported on Solaris 2.3. I myself have it semi port ed. By semi ported I mean that it works perfectly except when I try to run a program containing threads. I am porting the Modula-3 compiler to Solaris 2.3 running on SPARC Classic machines, architecture Sun 4m. When I try to run the executable file in trestle/tutorial/hello/SOLsun I get the error runtime error: segmentation violation - possible attempt to dereference NIL Abort (core dumped) I must add that while I am building the program orriginally I get numerous warnings of the type _m3main.c, line 1273; warning initializer does not fit :248 Has anybody an idea what my probelm is or where I am going wrong. I would appreciate any help given Thanking you in advance Sinead Scully Maynooth College Ireland e-mail : 89200004@vax1.may.ie ======================================================================= 34 === Date: Tue, 12 Jul 94 16:42:24 -0700 From: heydon@src.dec.com Subject: Re: Temporary files and unique names? Bob Barton asks: > How do I create and delete temporary files easily in Modula3? Other than > using the C subroutines like mktemp, tempname, and tmpfile I haven't > found anything. Also how do I delete files from inside a Modula3 program? See the new "FS" interface. The procedure "FS.OpenFile" has a "create" argument you can use to specify that the file should be created if it does not exist, and you can use "FS.Status" to determine (among other things) if the file exists. Use "FS.DeleteFile" to delete an existing file. To the best of my knowledge, libm3 does not include routines analogous to tempname(3) and tmpfile(3), but you can easily write some using the "FS" and "Pathname" interfaces, together with the "Process.GetMyID" procedure. - Allan --------------------------------------------------------------------------- Allan Heydon heydon@src.dec.com DEC Systems Research Center (415) 853-2142 130 Lytton Ave. (415) 853-2104 (FAX) Palo Alto, CA 94301 ======================================================================= 35 === Date: Tue, 12 Jul 94 17:01:18 -0700 From: mcjones@src.dec.com Subject: Re: Temporary files and unique names? Another way to generate a pathname for a temporary file is to use Time.Now(), e.g.: p := Pathname.Join( "/tmp", "-" & Fmt.LongReal(Time.Now()), NIL); Paul ======================================================================= 36 === Date: 12 Jul 1994 22:20:33 GMT From: barton@cupid.eche.ualberta.ca (Bob Barton) Subject: Temporary files and unique names? How do I create and delete temporary files easily in Modula3? Other than using the C subroutines like mktemp, tempname, and tmpfile I haven't found anything. Also how do I delete files from inside a Modula3 program? --,,,, | D | R.L. Barton Department of Chemical Engineering | A | Tel (403) 492-5160 University of Alberta | C | Fax (403) 492-2881 Edmonton, Alberta, Canada T6G 2G6 | S | Internet barton@chopin.eche.ualberta.ca --'''' ======================================================================= 37 === Date: 12 Jul 1994 19:28:52 GMT From: barton@cupid.eche.ualberta.ca (Bob Barton) Subject: M3 3.3 on IBM RS/6000? I am currently using M3 2.11 on RS/6000s running AIX 3.2.5 but have been unable to bring up M3 3.3. Has anyone had any luck in getting it running? I have neither the time nor the capability to track down the problems but certainly want to use the language if possible. --,,,, | D | R.L. Barton Department of Chemical Engineering | A | Tel (403) 492-5160 University of Alberta | C | Fax (403) 492-2881 Edmonton, Alberta, Canada T6G 2G6 | S | Internet barton@chopin.eche.ualberta.ca --'''' ======================================================================= 38 === Date: Wed, 13 Jul 1994 13:35:12 GMT From: dagenais@gutrune.vlsi.polymtl.ca (Michel Dagenais) Subject: Using m3gdb Here is a summary of the information i received from my inquiry on m3gdb. Most of the desired functionality is there on the DS3100 port (printing variables and types, setting breakpoints using m3 syntax...). There are problems on other platforms but Peter Klein, among others, is progressing very well. The same functionality should thus soon be available on other platforms. -- Prof. Michel Dagenais dagenais@vlsi.polymtl.ca Dept of Electrical and Computer Eng. Ecole Polytechnique de Montreal tel: (514) 340-4029 ======================================================================= 39 === Date: Wed, 13 Jul 1994 18:15:18 GMT From: psu@cs.cmu.edu (Peter Su) Subject: Obliq and netobj vs. sunos 4.1.3 on a sun4m I just got M3 3.3 running on a 2 headed Sparc 10. After applying the byte swapping patch, network objects seem to work OK as long as the RPCs are local. But, when I do remote computation, through obliq, between this machine and a Sparc ELC that's next to it on my desk, things go OK until I exit all the obliq processes. After about a minute, something panics the kernel (memory access exception) and I have to reboot. Anyone else seen this behavior? I'm not enough of an M3 or UNIX kernel guru to even try to track this down. Thanks, Pete ======================================================================= 40 === Date: Wed, 13 Jul 1994 18:51:26 GMT From: psu@cs.cmu.edu (Peter Su) Subject: Re: Obliq and netobj vs. sunos 4.1.3 on a sun4m In article , Peter Su wrote: >I just got M3 3.3 running on a 2 headed Sparc 10. > Just to be sure I'm clear. This is a 2 headed Sparc 10 workstation running SunOS 4.1.3. Cheers, Pete ======================================================================= 41 === Date: Thu, 14 Jul 1994 12:12:00 GMT From: g@clio.demon.co.uk (Gareth Webber) Subject: Graphical Formsedit I have M3 v3.1 and I don't like editing text in formsedit so I wish to create a program like borland's resource workshop where buttons are drawn by selecting draw buttons then dragging a cursor about. Was this done for v3.3 or is anyone working on it (so that I don't reproduce current work) ? If not are there any styles of layout which the program can try and enforce to provide a uniformity of look across m3 products ? Is this something people would like ? gary... -- Gareth Webber, g@clio.demon.co.uk Trinity Hall, gpw1000@cus.cam.ac.uk Cambridge. gary@royle.org "Ne te confudant illegitimi" ======================================================================= 42 === Date: 14 Jul 1994 18:38:35 GMT From: qs101@pelican.cl.cam.ac.uk (Quentin Stafford-Fraser) Subject: Re: Graphical Formsedit You might try visualobliq. It's part of the 3.3 distribution but will build under 3.1 if you have built obliq and netobj. It's really meant for generating Obliq applications, but one of the things it will do is generate an S-expression of the current screen layout which you can then save and use. Regards, Quentin -- ---------------------------------------------------------------------- Quentin Stafford-Fraser http://pelican.cl.cam.ac.uk/people/qs101/me.html ======================================================================= 43 === Date: 14 Jul 1994 17:57:30 GMT From: mlo@dcs.qmw.ac.uk (Mike Osborne) Subject: Re: Modula-3 on Solaris 2.3 89200004@vax1.may.ie writes: >Has anyone got Modula-3 fully ported on Solaris 2.3. I myself have it semi por ted. By semi ported I mean that it works perfectly except when I try to run a >program containing threads. I am porting the Modula-3 compiler to Solaris 2.3 >running on SPARC Classic machines, architecture Sun 4m. >When I try to run the executable file in >trestle/tutorial/hello/SOLsun I get the error >runtime error: >segmentation violation - possible attempt to dereference NIL >Abort (core dumped) If I remember correctly, I experienced exactly the same problem when I ported an old version of M3 to A/UX (Apple's SVR2 based unix). It is something to do with the way in which system calls are interrupted when the modula-3 programs' process recives a signal (which is how the threads are given their time-slice). I think the compiler is based around the assumption of BSD-style signal handling. The solution (way back then) was to compile the M3 compiler so that it passed the -sbsd flag to gcc, when compiling the C code that the compiler used to generate. Since the newer version uses the back end only, I guess you have to find a way to get this option to work without gcc. A starting point would be to find out if your version of gcc supports the -sbsd flag. (you can then read the gcc configuration file to find out exactly what the flag does e.g. which libraries it includes). There may be a better way, in particular, I wonder what sort of support Solaris offers for threads, as it may be worth taking the time to "do it right". I think that this approach may get you truly parallel threads on multi-processor Sun machines at a later date. [stuff deleted] >_m3main.c, line 1273; warninginitializer does not fit :248 Sorry no ideas on this one. Mike -- Michael Osborne Internet: mlo@dcs.qmw.ac.uk Queen Mary & Westfield College Computer Science Dept Mile End Road Telephone: +44 71-975 5250/33 LONDON, E1 4NS, UK Fax: +44 81-980 6533 ======================================================================= 44 === Date: 14 Jul 1994 23:14:46 GMT From: barton@comet.eche.ualberta.ca (Bob Barton) Subject: FormsVBT Browse? I have been trying to use the FormsVBT Browse for the following purpose. I have a number of items, one of which I want to select. When I have selected one of the items this sets up a subset of the items that I want to select another from and so on. I want to use Browse to display the original selection of items, allow a selection, display the subset, allow another selection ... I want to specify a resource to get the contents from but I want the resource to be specifiable at run time not when I set up the .fv file. In addition, I want to change the items in Browse due to the selection made. I assume that this is possible because a very similar function is achieved in FileBrowser. I have been looking through FormsVBT.i3 but have not been able to determine how to do what I want. If anybody has a simple example program with accompanying user interface using Browse in this manner I would appreciate seeing it. (Please note I am using M3 2.11 because I have been unable to get M3 3.3 to load on an RS/6000) --,,,, Chemical Engineering Computing Service | C | R.L. Barton Department of Chemical Engineering | E | Tel (403) 492-5160 University of Alberta | C | Fax (403) 492-2881 Edmonton, Alberta, Canada T6G 2G6 | S | Internet barton@chopin.eche.ualberta.ca --'''' ======================================================================= 45 === Date: Fri, 15 Jul 1994 12:43:54 GMT From: jredford@lehman.com (John Redford) Subject: Re: Obliq and netobj vs. sunos 4.1.3 on a sun4m In article psu@cs.cmu.edu (Peter Su) writes: I just got M3 3.3 running on a 2 headed Sparc 10. After applying the byte swapping patch, network objects seem to work OK as long as the RPCs are local. But, when I do remote computation, through obliq, between this machine and a Sparc ELC that's next to it on my desk, things go OK until I exit all the obliq processes. After about a minute, something panics the kernel (memory access exception) and I have to reboot. Anyone else seen this behavior? I'm not enough of an M3 or UNIX kernel guru to even try to track this down. Ive seen the behaviour, but not from that cause. TCP.Connect can cause a panic on SPARC machines. Through a couple layers of calls, it eventually can try to do: IF Cerrno.errno = Uerror.EINVAL THEN (* special hack to try to get real errno, hidden due to NBIO bug in conne ct *) VAR optbuf: INTEGER := 0; optlen := BYTESIZE(optbuf); BEGIN EVAL Usocket.getsockopt(fd, Uin.IPPROTO_TCP, TCP_NODELAY, ADR(optbuf), ADR(optlen)); END; END; >From what I have been able to determine, a getsockopt on a SPARC for a post-failure-of-connect socket panics the machine. I replicated this with a trivial C program and have the same behaviour. I wasnt able to find any known Sun patch for this problem. -- John Redford (AKA GArrow) | 3,600 hours of tape. jredford@lehman.com | 5 cans of Scotchguard. ======================================================================= 46 === Date: 15 Jul 1994 19:13:40 GMT From: kennedy@b0ru01.fnal.gov (Robert Daniel Kennedy) Subject: Success with NeXTStep 3.2 build, anyone? Hello, I am having difficulty building SRC modula-3 3.3 under NeXTStep 3.2. Nothing yet is impossible, but I am having to change one piece at a time... and it is starting to be a drag. In summary: 1) add -posix to compile line to pick up POSIX lib with getcwd() etc. 2) add my own tempnam() function, no such beast in N/S 3.2 POSIX lib 3) move to gcc 2.5.8 and add some switches for stricter checks 4) add some header includes to get past those checks (unprototyped functions) 5) Some source changes to avoid non-fatal (but scary) warnings) 6) Fails to use correct path for the assembler (where I am stuck) The last point is where I gave up. I attempted to change the NEXT template to use gcc, added switches, and correct assembler path (rather than editting each Makefile and source file after a failure) and had no success in getting the template values to catch. Is there a single place to set these for the entire package build? Thanks! Rob Kennedy ======================================================================= 47 === Date: Fri, 15 Jul 1994 12:57:37 GMT From: jredford@lehman.com (John Redford) Subject: Re: Graphical Formsedit In article <1994Jul14.121200.136@clio.demon.co.uk> g@clio.demon.co.uk (Gareth W ebber) writes: I have M3 v3.1 and I don't like editing text in formsedit so I wish to create a program like borland's resource workshop where buttons are drawn by selecting draw buttons then dragging a cursor about. Was this done for v3.3 or is anyone working on it (so that I don't reproduce current work) ? If not are there any styles of layout which the program can try and enforce to provide a uniformity of look across m3 products ? Is this something people would like ? If this hadnt come up recently in conversaion I'd ignore this message, but as its on my mind... No, I dont want to see a style guide for 'M3' applications. There are more than enough standards as it is, most of them poor. I have found that the FormsVBT toolset tends to lead to well designed interfaces. I have also seen other tools that allow users to casually place buttons for their interface lead to relatively ugly placements, with a lot of after-the-fact constraints placed. (User grabs & drags 4 buttons, throws labels on them, then grabs & drags some 'keep this widget in line with that widget' device, then some 'keep all these widgets equidistant' device.) I hate editing in formsedit.. simply because its not a 'good' editor. I dont see anyone saying "Once I saw formsedit, I deleted all my emacs files. Who needs elisp when you can have dummy GUIs." I do my editing in emacs.. It'd be even easier if I bothered to write a mode for it. However, formsedit is a fine previewer, and good for minor edits. So, to sum up, this is a NO vote. -- John Redford (AKA GArrow) | 3,600 hours of tape. jredford@lehman.com | 5 cans of Scotchguard. ======================================================================= 48 === Date: 15 Jul 1994 19:15:37 GMT From: kennedy@b0ru01.fnal.gov (Robert Daniel Kennedy) Subject: SRC modula-3 3.3 for SGI IRIX? Hello, Are there plans to port SRC modula-3 3.3 to IRIX 4.0.5 or 5.2? I saw this question posted a few days ago, but no follow-up was posted. Rob Kennedy ======================================================================= 49 === Date: Mon, 18 Jul 1994 17:27:34 GMT From: sanjay@access.thegroup.net (Sanjay Nayar) Subject: N-Dimensional Arrays We are looking for an implementation of N-dimensional arrays (where N > 3) in C/C++. The implementation should allow access to any sub-dimension of the array and complex operations on it. For example, for a 3-D array, you should be able to access the different slices of the array (any plane, vector, individual cell). It should also be possible to work with the margin sum of a sub-dimension of the array. For example, operate on the row and column sums of a 3-D array. Reversing this step should also be possible, e.g., taking a row sum and expanding it into a 3-D array using a given distribution. If you have implemented something similar, or know of someone who has, we'd like to hear from you. You can respond via internet to: sanjay@access.thegroup.net, or fax at (619) 586-0424. Thanks in advance, Sanjay Nayar ======================================================================= 50 === Date: 18 Jul 1994 13:48:19 +0000 (WET) From: 89200004@vax1.may.ie Subject: Modula-3 on Solaris 2.3 If anyone has successfully ported the Modula-3 compiler to Solaris 2.3, could they please tell me if they used SOLsun or SOLgnu. I am using SOLsun, and have had also to use a compatability compiler and gnumake. But it doesn't work properly, I am getting too many errors and warnings. I would appreciate any help given, Sinead Scully Computer Science Department Maynooth College Ireland. e-mail 89200004@vax1.may.ie ======================================================================= 51 === Date: Tue, 19 Jul 94 14:39:25 GMT From: hccdr@ukc.ac.uk (H.C.C.Rodrigues) Subject: modula3 garbage collection document Does anyone know where i can find something about modula-3 garbage collection. Thanks. Helena. ======================================================================= 52 === Date: Tue, 19 Jul 94 14:13:54 -0700 From: heydon@src.dec.com Subject: Re: modula3 garbage collection document > Does anyone know where i can find something about modula-3 garbage > collection. Thanks. As an introduction to the collector, you can read the "RTCollector.i3" interface file. There are several paragraphs at the end of this interface describing the implementation of the SRC collector. The "RTCollectorSRC.i3" interface provides implementation-dependent control of certain aspects of the SRC collector. You may also be interested in the "RTAllocator.i3" and "RTHeap*.i3" interfaces. I hope this helps, - Allan ----------------------------------------------------------------------- Allan Heydon heydon@src.dec.com DEC Systems Research Center (415) 853-2142 130 Lytton Ave. (415) 853-2104 (FAX) Palo Alto, CA 94301 ======================================================================= 53 === Date: Tue, 19 Jul 94 16:38:42 EDT From: gwyant@cloyd.East.Sun.COM Subject: Proposal for another M3 user's group meeting. I am trying to organize another Modula-3 user's group meeting. As many of your know, the last one was in 1992. With the release of M3 3.3, I thought it would be a good time to schedule another one. I'd like to schedule it for OOPSLA'94 which will be in October 23-28th in Portland, Oregon. If you would be interested in attending please let me know. Ideally, the format of the meeting would be much the same as the previous one; more or less a workshop style with presentation and informal discussion groups. If people are interested in presenting something on M3, again please let me know. Geoff Wyant Geoff.Wyant@east.sun.com Sun Microsystems Laboratories, Inc. 2 Elizabeth Drive Chelmsford, Ma. 01824 ======================================================================= 54 === Date: 19 Jul 1994 21:04:42 GMT From: siva@vtaix.cc.vt.edu (Siva Challa) Subject: 2nd CFP: OOPSLA '94 Workshop on Multi-Language Object Models OOPSLA'94 Workshop Announcement and Call for Position Papers: --------------------------------------------------------------------- Workshop Name: Multi-Language Object Models Workshop Overview: The purpose of this workshop is to bring together experts from industry and academia who are using object-oriented techniques to achieve interoperability among application components that may be implemented in different programming languages, perhaps distributed across heterogeneous architectures. This workshop is motivated by the need for an open, but integrated, distributed computing environment and the desire for more effective reuse of software components implemented in different programming languages. Some key problems are the level of object abstraction and the granularity of run-time integration. Goals and Focus: This workshop focuses on object models that incorporate more features than the current "least common denominator" models and remain interoperable among different object-oriented languages. Of interest are both the techniques (e.g., meta-object protocols, reflection, common run-time environment) for achieving these models as well as specific models that embody a richer set of features (e.g., SOM, DOM). Some of the important questions to be addressed are: How can an extensible object model be realized? What are the performance costs of extensibility? What degree of interoperability is sacrificied by inconsistent extensions? Can a single framework integrate languages from different paradigms? Is an approach that is limited to only a few languages too narrow for the needs of real applications? Participants should be prepared to discuss: (1) how a diverse set of features can be supported in the model, and (2) how the aspects of scalability, debugging, fault-tolerance, performance, etc. are realized. Requirements for Attendance: Interested individuals are invited to submit a position paper limited to five (5) pages indicating their experience with the workshop theme with particular reference to above list of issues. It is particularly encouraged that the position paper include the statement of specific topics or questions that should be addressed at the workshop. Each position paper should be sent via email in Postscript form or mailed hardcopy to the addess listed below. Each position paper should provide complete contact information, including email address, phone number, and fax number for the primary author. Submission must be received no later than August 15, 1994. Interested individuals are encouraged to send at the earliest possible time a brief email message to the organizers indicating their interest and giving a short description (keywords, title) of their position paper. Authors of selected papers may be asked to extend their papers for inclusion in a workshop proceedings to be published in a special-issue journal. Organizers: Dennis Kafura, Virginia Tech Greg Lavender, MCC Submissions: Dr. Dennis Kafura Department of Computer Science Virginia Tech Blacksburg, VA 24061-0106 Phone: +1.703.231.5568 Email: kafura@cs.vt.edu Fax: +1.703.231.6075 A World Wide Web page for the workshop can be found at 'http://actor.cs.vt.edu/whats-new.html' ======================================================================= 55 === Date: 19 Jul 1994 18:06:03 -0500 From: russo@cs.purdue.edu (Vincent F. Russo) Subject: CFP: Conference on Object-Oriented Technologies (COOTS) Announcement and Preliminary Call for Papers Conference on Object-Oriented Technologies (COOTS) June 26-29, 1995 Monterey, California, USA Sponsored by the USENIX Association IMPORTANT DATES Submissions due: March 6, 1995 Notification to authors: April 3, 1995 Camera-ready final papers due: May 15, 1995 PRELIMINARY PROGRAM COMMITTEE Program Chair: Vincent F. Russo, Purdue University Tutorial Program Chair: Doug Lea, SUNY Oswego Mark Linton, Silicon Graphics Inc. Chris Pettus, Taligent Jim Waldo, SUN Microsystems Labs. Murthy Devarokonda, IBM Watson Research Labs Ted Goldstein, SUN Microsystems Labs. Additional members to be announced. OVERVIEW The COOTS conference is designed to be the showplace for advanced development work in object-oriented technologies. The conference will emphasize research and experience derived from efforts to use object-oriented techniques to build complex systems that meet real world needs. The COOTS conference will begin with two days of tutorials. The tutorial program will offer a selection of tutorials from among several tracks. We expect tutorial topics to include: * distributed object systems (CORBA, etc.) * object-oriented network programming * alternative object-oriented languages * advanced techniques in memory management * efficient and effective class design Two days of technical sessions will follow the tutorials. Proceedings of the conference will be published by USENIX and will be provided free to technical session attendees; additional copies will be available for purchase from USENIX. Like the USENIX C++ Conferences and Advanced Topics Workshops from which it is derived, COOTS will emphasize the advanced engineering aspects of object technology. While papers covering work in C++ are encouraged, the conference i s broader in scope than its ancestors and invites submissions describing results and work in other object-oriented or object-based languages. CONFERENCE TOPICS We seek papers describing original work concerning the design, implementation, and use of object-oriented technologies. Questions regarding a topic's relevance may be addressed to the program chair via electronic mail to russo@cs.purdue.edu. Potential topics include: * work on object-oriented programming languages (C++, Modula-3, Eiffel, etc.) * implementations of commercial object infrastructures (CORBA, NextStep, OLE-II, SOM/DSOM, etc.) * interface description languages * distributed object systems * unique applications of and experiences with object-oriented technologies WHAT TO SUBMIT Submissions must be received by March 6, 1995. Full papers should be 10 to 15 pages. Instead of a full paper, authors may submit an extended abstract which discusses key ideas. Extended abstracts should be 5-7 pages long (about 2500-3500 words), not counting references and figures. The body of the extende d abstract should be complete paragraphs. The object of an extended abstract is to convince the reviewers that a good paper and presentation will result. While, by acceptance of extended abstracts, we intend to stimulate industrial participation, submission of extended abstracts by academics is in no way discouraged. All submissions will be judged on originality, relevance, and correctness. Eac h accepted submission will be assigned a member of the program committee to act a s its shepherd through the preparation of the final paper. The assigned member will act as a conduit for feedback from the committee to the authors. Camera-ready final papers are due May 15, 1995. Please accompany each submission by a cover letter stating the paper title and authors along with the name of the person who will act as the contact to the program committee. Please include a surface mail address, daytime and evening phone number, and, if available, an email address and fax number for the contac t person. If you would like to receive detailed guidelines for submission and examples of extended abstracts, you may telephone the USENIX Association office at +1 510 528-8649, or email to cootsauthors@usenix.org or to the program committee chair. The COOTS conference, like most conferences and journals, requires that papers not be submitted simultaneously to another conference or publication and that submitted papers not be previously or subsequently published elsewhere. Papers accompanied by "non-disclosure agreement" forms are not acceptable and will be returned to the author(s) unread. All submissions are held in the highest confidentiality prior to publication in the Proceedings, both as a matter of policy and in accord with the U.S. Copyright Act of 1976. WHERE TO SUBMIT Please send one copy of a full paper or an extended abstract to the program committee via one of the following methods. All submissions will be acknowledged. o Preferred Method: email (Postscript or ASCII) to cootspapers@usenix.org o Alternate Method: postal delivery to USENIX COOTS Conference c/o Dr. Vincent F. Russo Department of Computer Sciences Purdue University West Lafayette, IN 47907 U.S.A. +1 317 494-6008 REGISTRATION MATERIALS Materials containing all details of the technical and tutorial programs, registration fees and forms, and hotel information will be available beginning in April 1995. If you wish to receive the registration materials, please contact USENIX at: USENIX Conference Office 22672 Lambert Street, Suite 613 Lake Forest, CA USA 92630 +1 714 588-8649; Fax: +1 714 588-9706 Internet: conference@usenix.org ======================================================================= 56 === Date: Wed, 20 Jul 94 11:14:21 -0700 From: mhb@src.dec.com ("Marc H. Brown") Subject: Re: Zeus, SortBundle I installed release 3.3 on a SPARC last month, and I encountered two problems in the mentor package: 1) mentor/src/m3makefile: add quotes around pqueue on line 34 2) mentor/src/sorting/m3makefile: comment out the include_dir of mentor-audio on line 26. Also, you should install the other patches described on http://www.research.digital.com/SRC/modula-3/html/patches.html depending on your machine. If you still have problems, post a message and include more details about the compilation process. In particular, what error messages were printed before the one you cited. ======================================================================= 57 === Date: Wed, 20 Jul 1994 15:16:18 GMT From: se93sst@brunel.ac.uk (Stig Tollefsen) Subject: Zeus, SortBundle I'm trying to compile some of the algorithm animation examples found in the SRC archive. However, I get a 'no "SortBundle.i3" on path ".:/Titan/local/m od3/include/m3' error message; does anyone know what archive contains this interface module? --- Stig Tollefsen se93sst@brunel.ac.uk "I'm a law-abiding man / I'm a good Samaritan / I pay my taxes when I can / Model Citizen" - Warren Zevon ======================================================================= 58 === Date: Wed, 20 Jul 1994 16:26:30 -0400 From: Eric Stein Subject: Help? I'm getting an error message while trying to override an object method, and I have no clue as to why. The error is: default is incompatible with method type (print) where print is the name of the method in the parent object. If anybody could tell me what this error message *means*, I'd have a much better shot at debugging the code. Thanks , Eric ======================================================================= 59 === Date: 20 Jul 1994 20:16:42 GMT From: gray@lucid.com (David N Gray) Subject: browsing Modula-3 code with Energize If there are any of you Modula-3 users who happen to have access to the Energize Programming System (a product of Lucid, Inc.), this may be of interest to you. I have been experimenting with modifying the DEC SRC Modula-3 compiler to report information to Energize so that the Energize browsers can be used on Modula-3 code as well as on C and C++ code. The modified compiler is available by FTP. For further information, see URL: ftp://lucid.com/pub/hacks/energize/energize-modula-3.html David N. Gray Internet: gray@lucid.com Phone: 415 329-8400 x5529 Lucid, Inc. 707 Laurel Street Menlo Park, CA 94025 --- | BASIC is a language designed for amateurs. | C appears to be a language designed by amateurs. | C++ wasn't designed, it just evolved. ======================================================================= 60 === Date: 20 Jul 1994 20:22:55 -0400 From: rdippold@qualcomm.com (Ron "Asbestos" Dippold) Subject: CFV: comp.lang.beta FIRST CALL FOR VOTES (of 2) unmoderated group comp.lang.beta Newsgroups line: comp.lang.beta The object-oriented programming language BETA. Votes must be received by 23:59:59 UTC, 19 August 1994. After this CFV appears on news.announce.newgroups it will be sent to the mailing lists and This vote is being conducted by a neutral third party. For voting questions only contact rdippold@qualcomm.com. For questions about the proposed group contact Kaj Gronbak . CHARTER comp.lang.beta will receive all the postings from comp.lang.misc and comp.object concerning the BETA language and the programs and systems written in or supporting BETA. Discussions concerning object-oriented programming principles based on the concepts known from BETA will also take place, possibly cross-posted to comp.object. The group will be unmoderated. The beta-language-faq will be cross-posted to comp.lang.beta, and the most frequently asked questions from comp.lang.beta will be included in the subsequent versions of the FAQ. RATIONALE Currently articles concerning BETA are directed to comp.object, comp.lang.misc, and various other groups. Besides this several mailing lists exist which includes several hundred people. Concentrating these posts in a specific group would offer many advantages for the people using or discussing BETA. There would be no need to scan the different groups when looking for a specific subject concerning BETA. There would be no need to cross-post an article in order to make sure everyone else reads it. And finally the very interesting discussions taking place in the various mailing lists will become public. A FAQ named beta-language-faq is currently being posted regularly to news.answers. It would be an advantage to post this FAQ to a language specific group too. HOW TO VOTE Send MAIL to: voting@qualcomm.com Just Replying should work if you are not reading this on a mailing list. Your mail message should contain one of the following statements: I vote YES on comp.lang.beta I vote NO on comp.lang.beta You may also ABSTAIN in place of YES/NO - this will not affect the outcome. Anything else may be rejected by the automatic vote counting program. The votetaker will respond to your received ballots with a personal acknowledge- ment by mail - if you do not receive one within several days, try again. It's your responsibility to make sure your vote is registered correctly. One vote counted per person, no more than one per account. Addresses and votes of all voters will be published in the final voting results list. ======================================================================= 61 === Date: 21 Jul 1994 11:57:07 GMT From: pk@i3.informatik.rwth-aachen.de (Peter Klein) Subject: Re: Help? >I'm getting an error message while trying to override an object method, and >I have no clue as to why. The error is: > default is incompatible with method type (print) >where print is the name of the method in the parent object. > >If anybody could tell me what this error message *means*, I'd have a much >better shot at debugging the code. Thanks , This error message wants to say that the signatures of the method you want to override and of the procedure you want to assign to it are different. Recall the language report: A method override has the form: m := proc where m is the name of a method of the supertype ST and proc is a top-level procedure constant. It specifies that the m method for T is proc, rather than ST.m. If proc is non-nil, its first parameter must have mode VALUE and type some supertype of T, and dropping its first parameter must result in a signature that is covered by the signature of ST's m method. and A procedure value P is a member of the type T if it is NIL or its signature is covered by the signature of T, where signature_1 covers signature_2 if: o They have the same number of parameters, and corresponding parameters have t he same type and mode. o They have the same result type, or neither has a result type. o The raises set of signature_1 contains the raises set of signature_2. Peter --- Peter Klein E-Mail: pk@i3.informatik.rwth-aachen.de Lehrstuhl fuer Informatik III Tel.: +49/241/80-21311 Ahornstrasse 55 Fax.: +49/241/8888-218 RWTH Aachen 52074 Aachen Germany ======================================================================= 62 === Date: Fri, 22 Jul 1994 16:42:53 GMT From: jredford@lehman.com (John Redford) Subject: Ugrp.i3 I dont know if no one else has noticed the lack of this interface, or if I simply wasnt able to find it where it is. I wrote this up though, and whomever is the keeper of such things can add it to the distribution. This works on SPARC, but I presume this is fairly generic. INTERFACE Ugrp; FROM Ctypes IMPORT char_star,char_star_star; FROM Utypes IMPORT gid_t; (*** ***) TYPE struct_group = RECORD gr_name: char_star; gr_passwd: char_star; gr_gid: gid_t; gr_mem: char_star_star; END; struct_group_star = UNTRACED REF struct_group; (*** getgrent, getgrgid, getgrnam, setgrent, endgrent - get group file entry ***) <*EXTERNAL*> PROCEDURE getgrent(): struct_group_star; <*EXTERNAL*> PROCEDURE getgrgid(gid: gid_t): struct_group_star; <*EXTERNAL*> PROCEDURE getgrnam(name: char_star): struct_group_star; <*EXTERNAL*> PROCEDURE setgrent(); <*EXTERNAL*> PROCEDURE endgrent(); END Ugrp. -- John Redford (AKA GArrow) | 3,600 hours of tape. jredford@lehman.com | 5 cans of Scotchguard. ======================================================================= 63 === Date: 23 Jul 1994 05:15:48 GMT From: janssen@parc.xerox.com (Bill Janssen) Subject: ILU 1.6.4 patch 3 now available Patch 3 is now available for ILU 1.6.4, in ftp://parcftp.parc.xerox.com/pub/ilu/1.6.4/patches/ilu-1.6.4-patch-3.txt.gz. I t contains bug-fixes and feature enhancements for the C++, Common Lisp, and ANSI C support: General: use generic boilerplate in generated files add ILU version to generic boilerplate Common Lisp: support Franz ACL 4.2 define actual wait-for-output fn in ilu-franz remove inmem include, as inmem doesn't currently work fix for use-before-define bug with OPTIONAL and RECORD fix some bugs on server creation modify initialization keywords for server and instance use keyword for in-package decl add -extension flag to stubber for generated file name file extensions C++: added check for NULL stubprocs. added def for ilu_Error added defs for Publish, Withdraw, and Lookup use generic boilerplate strip off OMG IDL attribute prefix if present added ability to specify true instance handles ANSI C: fix `empty subclasses in same module don't work' catch exceptions of all types properly fix bug on input of string member of structure fix bug on include file name generation fix bug in generation of TrueMethodBlock examples/test1: add double test etc/courier: make it work with 1.6 upgrade for Courier ILU itself is a module system for doing multi-language, multi-address-space programming. It incorporates a language-independent object RPC system that follows the OMG CORBA standard. It also allows a program to speak multiple different RPC protocols at the same time. More information can be found at ftp://parcftp.parc.xerox.com/pub/ilu/ilu.html. -- Bill Janssen (415) 812-4763 FAX: (415) 812-4777 Xerox Palo Alto Research Center, 3333 Coyote Hill Rd, Palo Alto, CA 94304 URL: ftp://parcftp.parc.xerox.com/pub/ilu/misc/janssen.html ======================================================================= 64 === Date: Mon, 25 Jul 1994 07:03:57 GMT From: ckingsto@undergrad.math.uwaterloo.ca (Craig Andrew Kingston) Subject: Who is doing the OS/2 Modula3 port? I was wondering if someone had taken responsibility for doing the port of Modula3 to OS/2. I had remembered seeing two phases of messages. One was a long time ago before the move to the gcc backend and that was to wait for the gcc backend. The other was more recently. The reason for asking was that I am interested in using it on OS/2 and would be interested in furthuring the porting efforts. As I am less familiar with the tasks involved I would offer to be a beta tester. I would also be interested in what is involved in porting and offer assistence if I feel that my contributions would be benificial. CRAIG- ======================================================================= 65 === Date: Mon, 25 Jul 1994 13:30:07 GMT From: bcrwhims@undergrad.math.uwaterloo.ca (Carsten Whimster) Subject: Re: Who is doing the OS/2 Modula3 port? In article , Craig Andrew Kingston wrote: | I was wondering if someone had taken responsibility for doing | the port of Modula3 to OS/2. I had remembered seeing two phases | of messages. One was a long time ago before the move to the gcc | backend and that was to wait for the gcc backend. The other was | more recently. | | The reason for asking was that I am interested in using it on | OS/2 and would be interested in furthuring the porting efforts. | As I am less familiar with the tasks involved I would offer to | be a beta tester. I would also be interested in what is involved | in porting and offer assistence if I feel that my contributions | would be benificial. I tried recently to get a port going, but unfortunately I became very busy almost immediately after, and it doesn't look like letting up, so I am reduced to being able to offer assistance to the project. I have extensive experience with IPFC/INF format, so I would commit to producing some high quality documentation. Is there anyonbe out there who might want to be team-leader? And are there some some experienced porters out there, who would like to join in? By the way, whoever is in the OS/2 porting FAQ is unreachable. In addition to this, Modula-3 3.3 has recently been released, so whatever work had been done on previous releases would have to be repeated in any case. -- ------------------------------------------------------------------- Carsten Whimster EDM/2 Associate Editor bcrwhims@cayley.uwaterloo.ca EDM/2 Book Review columnist ---- Author of POVPanel --------------------- TEAM OS/2 ----------- ======================================================================= 66 === Date: 26 Jul 1994 03:37:48 GMT From: too@cs.uq.oz.au ( Teaching OO Group) Subject: Information on teaching OO and Reuse sought Our department is about to build Object-Orientation and Reuse into our undergraduate curriculum as core elements and we are very interested in the experiences of other insitutions in this kind of enterprise. If you or your institution have constructed an undergraduate course based around object-oriented design with a special empahsis on reuse could you please send me a brief note via email? We are particularly interested in: * How did you structure the course through the years of the course? * Which language and software platform did you use? * Did you make use of an existing code library? Was it successful? Please respond via email and I'll summarise responses to the net. Please let me know if you'd prefer your response not to be summarised. Thanks in advance, ----- Teaching Object Orientation Group Dept of Computer Science University of Queensland Ph: +61 (0)7 365 2956 St Lucia 4072 email: too@cs.uq.oz.au Australia ======================================================================= 67 === Date: Tue, 26 Jul 1994 05:54:05 GMT From: skj@oasis.icl.co.uk (Simon Johnston) Subject: Re: Who is doing the OS/2 Modula3 port? Carsten Whimster (bcrwhims@undergrad.math.uwaterloo.ca) wrote: : In article , : Craig Andrew Kingston wrote: : | The reason for asking was that I am interested in using it on Great !! : | be a beta tester. I would also be interested in what is involved Even better : | in porting and offer assistence if I feel that my contributions : | would be benificial. Ok. : I tried recently to get a port going, but unfortunately I became very : busy almost immediately after, and it doesn't look like letting up, so Yep, been there, I got most of the modules compiling, I have hacked quake and posted here the diffs to get quake compiled, and I worked on the OS2 templates so that it could link and produce the libraries (you cant pass 200+ file names on the OS2 command line). Howver work has as always got in the way. : I am reduced to being able to offer assistance to the project. I have : extensive experience with IPFC/INF format, so I would commit to : producing some high quality documentation. Is there anyonbe out there : who might want to be team-leader? And are there some some experienced : porters out there, who would like to join in? I have god knowledge of OS2 and gcc and have recently ported the python interpreter to OS2, I note the IPFC idea with interest, one thing we are lacking is GOOD library documentation !! : By the way, whoever is in the OS/2 porting FAQ is unreachable. In : addition to this, Modula-3 3.3 has recently been released, so whatever : work had been done on previous releases would have to be repeated in : any case. Yep, and I have tried the address as well to no avail. MODULE Sig; FROM ICL IMPORT StdDisclaimer; FROM Interests IMPORT Modula2, Modula3, Linux, OS2; BEGIN (* ------------------------------------------------------------------------. |Simon K. Johnston - Development Engineer |ICL Retail Systems | |------------------------------------------------------|3/4 Willoughby Road| |Unix Mail : S.K.Johnston.bra0801@oasis.icl.co.uk |Bracknell, Berks | |Telephone : +44 (0)344 476320 Fax: +44 (0)344 476084|United Kingdom | |Internal : 7261 6320 OP Mail: S.K.Johnston@BRA0801|RG12 8TJ | `------------------------------------------------------------------------ *) END Sig. ======================================================================= 68 === Date: Tue, 26 Jul 1994 12:40:52 GMT From: skj@oasis.icl.co.uk (Simon Johnston) Subject: Help on writing TCP server Hi, I posted a message some while ago about trying to write my first unix TCP server with M3 on Linux. I now have a simple client and server process which I now intend to build upon. I have included the simple server below, my question is, in the TCP.i3 interface It says that a server process has a thread pool which is used to service incomming connections. What I want to know is where in my server does this thread servicing go ? I can see two possiblities, 1 - have a set of threads blocking on the TCP.Accept() call, or 2 - once TCP.Accept has accepted a connection fork a thread and pass it the TCP.T connection so it then blocks on the gets(). I am assuming the latter (2) is correct but can someone confirm this please. I am about to start a project which will involve 3+ such servers and I would prefer to get this ironed out early on. Thanks. MODULE Server EXPORTS Main; IMPORT IP, TCP; VAR EndPoint : IP.Endpoint; Connector : TCP.Connector; Connection : TCP.T; InMessage : ARRAY [0..512] OF CHAR; OutMessage : ARRAY [0..127] OF CHAR; Received : CARDINAL; BEGIN EndPoint.addr := IP.GetHostAddr(); EndPoint.port := 9000; Connector := TCP.NewConnector(EndPoint); Connection := TCP.Accept(Connector); Received := Connection.get(InMessage); Connection.put(OutMessage); END Server. MODULE Sig; FROM ICL IMPORT StdDisclaimer; FROM Interests IMPORT Modula2, Modula3, Linux, OS2; BEGIN (* ------------------------------------------------------------------------. |Simon K. Johnston - Development Engineer |ICL Retail Systems | |------------------------------------------------------|3/4 Willoughby Road| |Unix Mail : S.K.Johnston.bra0801@oasis.icl.co.uk |Bracknell, Berks | |Telephone : +44 (0)344 476320 Fax: +44 (0)344 476084|United Kingdom | |Internal : 7261 6320 OP Mail: S.K.Johnston@BRA0801|RG12 8TJ | `------------------------------------------------------------------------ *) END Sig. ======================================================================= 69 === Date: Tue, 26 Jul 1994 13:20:21 GMT From: bcrwhims@undergrad.math.uwaterloo.ca (Carsten Whimster) Subject: Re: Who is doing the OS/2 Modula3 port? In article , Simon Johnston wrote: | Carsten Whimster (bcrwhims@undergrad.math.uwaterloo.ca) wrote: | : In article , | : Craig Andrew Kingston wrote: | : | The reason for asking was that I am interested in using it on | Great !! | : | be a beta tester. I would also be interested in what is involved | Even better | : | in porting and offer assistence if I feel that my contributions | : | would be benificial. | Ok. | : I tried recently to get a port going, but unfortunately I became very | : busy almost immediately after, and it doesn't look like letting up, so | Yep, been there, I got most of the modules compiling, I have hacked | quake and posted here the diffs to get quake compiled, and I worked on | the OS2 templates so that it could link and produce the libraries (you | cant pass 200+ file names on the OS2 command line). Howver work has as | always got in the way. Was this the 3.3 or an earlier version? Which port did you start with (Linux/NT)? What was left to do? | : I am reduced to being able to offer assistance to the project. I have | : extensive experience with IPFC/INF format, so I would commit to | : producing some high quality documentation. Is there anyonbe out there | : who might want to be team-leader? And are there some some experienced | : porters out there, who would like to join in? | I have god knowledge of OS2 and gcc and have recently ported the python | interpreter to OS2, I note the IPFC idea with interest, one thing we are | lacking is GOOD library documentation !! If you send me the i3 files, and maybe some descriptions, I will get right down to it. Or are you talking about Python? | : By the way, whoever is in the OS/2 porting FAQ is unreachable. In | : addition to this, Modula-3 3.3 has recently been released, so whatever | : work had been done on previous releases would have to be repeated in | : any case. | Yep, and I have tried the address as well to no avail. Nice of him to mention the fact, though. Perhaps we should mention this to the maintainers of the porting faq. | |Simon K. Johnston - Development Engineer |ICL Retail Systems | -- ------------------------------------------------------------------- Carsten Whimster EDM/2 Associate Editor bcrwhims@cayley.uwaterloo.ca EDM/2 Book Review columnist ---- Author of POVPanel --------------------- TEAM OS/2 ----------- ======================================================================= 70 === Date: 27 Jul 1994 14:25:32 +0200 From: laverman@cs.rug.nl (Bert Laverman) Subject: SRC-m3 release 3.3 on the HPPA/HP-UX Hi all! In coorporation with Bill Kalsow and Dick Orgass I have managed to get the 3.3 release up and running. Unfortunately the changes required were in the compiler, and dealt with the alignment requirements of the HPPA. (One could say we discovered 2 new alignment requirements, previously unattended) They will be fixed in the 3.4 release. The current problem left is the size of the executables, as gcc for the HPPA does not support -fPIC, and hence no shared library creation. mentor (which works fine though) is over 7MB! gcc 2.6.0 contains a lot of code for generating PIC code, but the standard pa.h include file inserts a refusal to recognize the -fPIC flag. I am told this may indicate the gnu guys are still working on it. When 3.4 comes out I will try to claim some space on our newly installed ftp server, and put a HPPA binary distribution on it. I am willing to export the 3.3 port I have working, but our sysop is gone for the coming weeks, so I stand open for suggestions on a location. Greetings, Bert -- ------------------------------------------------------------------ Bert Laverman, Dept. of Computing Science, Groningen University Email: laverman@cs.rug.nl Phone: +31-50-633948 Home: bert@rakis.iaf.nl Fax: +31-50-633800 ======================================================================= 71 === Date: Wed, 27 Jul 1994 16:58:43 GMT From: jredford@lehman.com (John Redford) Subject: Re: Help on writing TCP server In article skj@oasis.icl.co.uk (Simon Johnston) wr ites: Hi, I posted a message some while ago about trying to write my first unix TCP server with M3 on Linux. I now have a simple client and server process which I now intend to build upon. I have included the simple server below, my question is, in the TCP.i3 interface It says that a server process has a thread pool which is used to service incomming connections. What I want to know is where in my server does this thread servicing go ? I can see two possiblities, 1 - have a set of threads blocking on the TCP.Accept() call, or 2 - once TCP.Accept has accepted a connection fork a thread and pass it the TCP.T connection so it then blocks on the gets(). I am assuming the latter (2) is correct but can someone confirm this please. I am about to start a project which will involve 3+ such servers and I would prefer to get this ironed out early on. Well, You can do either of these. The documentation seems to be saying is that if you happen to have multiple threads calling TCP.Accept, they will sit in queue waiting for threads (not necessarilly in your program) calling TCP.Connect with the same address. If your first-thread in the Accept queue chooses to fork off another thread to handle the TCP.T connection, then put itself back on the Accept queue, thats fine. If you have multiple threads on the Accept queue, which go off to service connections before returning to the Accept queue (or whatever.) thats also fine. I believe the documentation is, in that wonderful way, merely trying to say that Accept wont pick a thread at random. Stay tuned. Next week we'll be translating the documentation for Table.ig. -- John Redford (AKA GArrow) | 3,600 hours of tape. jredford@lehman.com | 5 cans of Scotchguard. ======================================================================= 73 === Date: 28 Jul 1994 20:28:39 GMT From: kennedy@b0ru01.fnal.gov (Robert Daniel Kennedy) Subject: Failure: SRC modula3 3.3 - NextStep 3.2 (m68k) (LONG-ISH) Hello, I have tried to build SRC modula3 3.3 under NextStep 3.2 (m68k) for a couple of weeks now and have failed to get past libm3 after installing the boot compiler. I have tried the native cc and headers, GNU CC 2.5.8 and fixed headers, and GNU CC 2.6.0 and fixed headers. I got the furthest with the former, but that does not say much... Here are the changes I made (roughly) to get anything to go: Minimal changes.... used cc supplied with NeXTStep 3.2 1) boot-NEXT/m3build/templates/NEXT boot "as" flag value changed to "/bin/as" from "/usr/bin/as" 2) quake/src/fileio.c added #include added extern char *tempnam(const char *dir, const char *prefix) ; created libposix2.a with tempnam() source (really X/OPEN, not POSIX?) 3) quake/src/utils.c replaced reference to with one to 4) quake/src/builtin.c added #include for WEXITSTATUS 5) added -D_POSIX_SOURCE to the CCFLAGS to pick up S_ISREG done to template and to quake makefile 6) added -lposix2 to pick home my tempnam()... not supplied by NeXT done to template and to quake makefile 7) added -posix to the boot "link" command 8) problem with boot "link"... cannot put library reference (libposix2.a) in the boot "link"... need LDFLAGS and CFLAGS separated 9) added tempnam() prototype to m3where.cq Had to compile and link m3where by hand due to position of -lposix2 RESULT ====== built BOOT/quake built BOOT/m3build built BOOT/libm3 built BOOT/m3cg built BOOT/m3c built BOOT/m3 built BOOT/m3cc... installed (shipped) BOOT version failed to build libm3 proper ---------------------------- The specifics of the last crash: opus01:libm3> m3build -v mkdir NEXT --- building in NEXT --- /usr/local/bin/quake -D_all -DPACKAGE_DIR=/usr/scratch/kennedy/m3/libm3 -DPACKAGE=libm3 -DBUILD_DIR=NEXT /usr/local/lib/m3/pkg/m3bue m3 -w1 -why -g -times -a libm3.a -F/usr/tmp/qk011779 new source -> compiling ../src/runtime/common/RTHooks.i3 Fatal Error: program "/usr/local/lib/m3/NEXT/m3cgc1" failed, exit status = 138 seconds #times operation 0.00 1 inhaling library link info 0.00 1 checking object timestamps 0.00 1 merging new link info 0.00 1 compiling Modula-3 -> IL 0.00 1 compiling IL -> assembly 0.00 6 garbage collection 0.00 other --------------------------------------------------- 0.00 TOTAL *** error code 1 (ignored) gdb /usr/local/lib/m3/NEXT/m3cgc1 GDB is free software and you are welcome to distribute copies of it under certain conditions; type "show copying" to see the conditions. There is absolutely no warranty for GDB; type "show warranty" for details. GDB 4.7 (NeXT 3.1), Copyright 1992 Free Software Foundation, Inc... Reading symbols from /usr/local/lib/m3/NEXT/m3cgc1...done. Reading symbols from /usr/shlib/libsys_s.B.shlib...done. ../gcc/.gdbinit: No such file or directory. (gdb) core-file core Reading in symbols for ../gcc/dbxout.c...done. 0x6b5a0 in dbxout_symbol (decl=0x314de6, local=0) at ../gcc/dbxout.c:1488 1488 current_sym_nchars = 2 + IDENTIFIER_LENGTH (DECL_NAME (decl)); (gdb) where Reading in symbols for ../gcc/toplev.c...done. #0 0x6b5a0 in dbxout_symbol (decl=0x314de6, local=0) at ../gcc/dbxout.c:1488 #1 0x68c82 in dbxout_init (asm_file=0x4010050, input_file_name=0x3fff972 "RTHooks.ic", syms=0x0) at ../gcc/dbxout.c:467 #2 0xd546 in compile_file (name=0x3fff972 "RTHooks.ic") at ../gcc/toplev.c:1906 #3 0xfc6e in main (argc=6, argv=0x3fff884, envp=0x3fff8a0) at ../gcc/toplev.c:3503 ---------------------------- So the summary is that the BOOT compiler compiles/assembles, but does not function properly enough to compile any modula3. Any help or suggestions are sought... I am stuck and moving on to other things otherwise. Thanks, Rob Kennedy Rutgers/CDF/Fermilab ======================================================================= 74 === Date: Sat, 30 Jul 1994 04:51:48 GMT From: dhallock@netcom.com (Dan Hallock) Subject: Modula-3 & (egad) DOS/WIN I've been out of the programming scene for a few years, but I noticed a Modula-3 book in a book store last weekend and have been very interested. I used to work in Pascal and Modula-2, now its just C and Visual Basic when I need something quick and dirty. I would like to experiment with Modula-3, but only have a DOS/Windows system at home (OK, an HP3000 too but nothing runs on it). Is there a Modula-3 compiler available for DOS or even a rumor of one? Thanks. Dan Hallock ======================================================================= 75 === Date: 30 Jul 1994 16:06:51 +0000 (WET) From: 89200004@vax1.may.ie Subject: printf format commands Does anyone know which printf format command is used to print out a Real. I have tried %g, %e, %f, %d, %G, %E and none of them work . I am trying to print out some Real numbers specifying the field width Sinead ======================================================================= 76 === Date: 31 Jul 94 08:46:02 -0500 From: Joe.Klemmer@f370.n109.z1.fidonet.org (Joe Klemmer) Subject: Modula-3 & (egad) DOS/WIN dhallock@netcom.com wrote in a message to All: dn> I've been out of the programming scene for a few years, but dn> I noticed a Modula-3 book in a book store last weekend and dn> have been very interested. I used to work in Pascal and dn> Modula-2, now its just C and Visual Basic when I need dn> something quick and dirty. dn> I would like to experiment with Modula-3, but only have a dn> DOS/Windows system at home (OK, an HP3000 too but nothing dn> runs on it). Is there a Modula-3 compiler available for DOS dn> or even a rumor of one? Thanks. Look in gatekeeper.dec.com:pub/DEC/Modula-3/contrib/m3pc. Later, Joe --------- Fidonet: Joe Klemmer 1:109/370 Internet: Joe.Klemmer@f370.n109.z1.fidonet.org