rlc@uvacs.CS.VIRGINIA.EDU (Robert L. Chase) (11/28/87)
Is anyone familiar with the Modula-2 system advertised in recent issues of MacTutor by TML? Their Pascal is reportedly very good. Iv'e had very bad luck trying to deal with MacModula Corp recently, and need a full blown Modula-2 system for my MacII for CS research. Any help would be appreciated. Please reply to rlc@cs.virginia.edu (INTERNET). Thanks very much. -Bob Chase :wq -- Robert L. Chase, PO Box AK, Sweet Briar College, Sweet Briar, VA 24595 INTERNET: rlc@uvacs.cs.virginia.edu UUCP: ...!mcnc!uvacs!rlc or ...!cbosgd!uvacs!rlc
drc@dbase.UUCP (Dennis Cohen) (11/29/87)
In article <2092@uvacs.CS.VIRGINIA.EDU>, rlc@uvacs.CS.VIRGINIA.EDU (Robert L. Chase) writes: > Is anyone familiar with the Modula-2 system advertised in recent issues of > MacTutor by TML? Their Pascal is reportedly very good. Iv'e had very bad luck > trying to deal with MacModula Corp recently, and need a full blown Modula-2 > system for my MacII for CS research. Any help would be appreciated. Please > reply to rlc@cs.virginia.edu (INTERNET). Thanks very much. -Bob Chase I have reviewed the TML Modula-2 product for MacWorld -- the review is in this month's (Dec. 87) issue. It's a good compiler/product. It is NOT stand-alone, but runs under MPW as a tool (just like MPW Pascal and C). The version I own doesn't have Volume V libraries as yet, but I just received word from TML that the new libraries are on the way. Another MPW Modula-2 compiler, SemperSoft, is also available. It currently supports Volume V interfaces. I tend to use SemperSoft because: 1) it supports type-transfer functions 2) it produces tighter code (both size and speed) 3) it compiles faster 4) the Volume V stuff is already there. TML has better documentation and costs $25 less, plus it was out there first. If you need a stand-alone Modula-2, there is MacMeth (Modula Corp, so it's probably the one you're having problems with), TDI M-2 (TDI, Dallas TX, buggy and awkward with what might be the worst editor I've ever used), and MacLogimo (shareware, $18.50, based upon the ETHZ compiler). None of them currently have the Volume V support, but it should be easy to roll your own with MacLogimo since you get all the other library sources. Dennis Cohen Ashton-Tate Glendale Development Center dBASE Mac Development Team -------------------------- Disclaimer: Everything above is personal opinion and experience. It has nothing to do with my employer.
keith@oophost.UUCP (Ed Keith John) (12/02/87)
In article <273@dbase.UUCP> drc@dbase.UUCP (Dennis Cohen) writes: >In article <2092@uvacs.CS.VIRGINIA.EDU>, rlc@uvacs.CS.VIRGINIA.EDU (Robert L. Chase) writes: >> Is anyone familiar with the Modula-2 system advertised in recent issues of >> MacTutor by TML? Their Pascal is reportedly very good. Iv'e had very bad luck >> trying to deal with MacModula Corp recently, and need a full blown Modula-2 > >I have reviewed the TML Modula-2 product for MacWorld -- the review is in this > > >Dennis Cohen Dennis, I've read your review of TML Modula-2 and I have to correct a mistake on your part. VAL or any other intrinsic funtion does not incur any overhead in code generation. How could you have thought that? About SemperSoft and TML, I use TML, and I prefer it over Semper. I've run my personal benchmarks and I found that overall there was no difference between the two compilers in code speed or code size. These benchmarks will be published in APDAlog in January. SemperSoft does compile faster than the current TML compiler Ver. 1.2, which does include the latest Inside Mac traps. TML and Semper are about neck and neck in comparison. The differences are mostly astetic. Semper allows lowercase keywords and Pascal strings. Its VAL does not work according to Wirth, for conversion between different sized types. TML supports FileSystem and Streams and supports the Performance analysis tool in MPW, Signal Handler. Anyway, I've ranted enough. The full article in APDAlog covers a great deal of the differences between the compilers. I think that Semper has a nice compiler, but its syntax has taken great liberties with Wirth's definition. I don't like using CHAR and PASCHAR order to work with the Macintosh tool traps. I perfer null terminated strings but it becomes awkward to use both types in a Macintosh program. I'd rather let TML's libraries do the conversions for me. My Personal Preference,of course. Happy Programming. Keith Nemitz A9F4
drc@dbase.UUCP (Dennis Cohen) (12/03/87)
In article <307@oophost.UUCP>, keith@oophost.UUCP (Ed Keith John) writes: > In article <273@dbase.UUCP> drc@dbase.UUCP (Dennis Cohen) writes: > Dennis, > > I've read your review of TML Modula-2 and I have to correct a mistake on your > part. VAL or any other intrinsic funtion does not incur any overhead in code > generation. How could you have thought that? I drew that conclusion from working with 1.0, the only one that I have received or heard of from TML since it came out of beta (and I WAS one of the beta sites). Looking at the generated code with TMON, I saw jumps to glue routines at every turn. I have since learned that the glue was used for almost every- thing but what I thought it was used for, my mistake there. > > About SemperSoft and TML, I use TML, and I prefer it over Semper. I've run > my personal benchmarks and I found that overall there was no difference > between the two compilers in code speed or code size. These benchmarks will I'll be glad to send you the conversions of such things as TransSkel, Trans- Display, and TransEdit for both compilers. The differences in the sources are few, the IMPORTs and the use of type transfers in Semper vs. VAL in TML. I think that you will find the Semper compiler to generate significantly smaller applications. The current Semper compiler, 1.05, is only slightly faster than TML in the code that it generates, up until now I agree that there was no discernible difference in code speed -- I can't compare it to 1.2 of TML since Tom has not sent me any notification of the upgrade. > be published in APDAlog in January. SemperSoft does compile faster than the > current TML compiler Ver. 1.2, which does include the latest Inside Mac traps. > TML and Semper are about neck and neck in comparison. The differences are > mostly astetic. Semper allows lowercase keywords and Pascal strings. Its > VAL does not work according to Wirth, for conversion between different sized > types. TML supports FileSystem and Streams and supports the Performance > analysis tool in MPW, Signal Handler. Anyway, I've ranted enough. The full > article in APDAlog covers a great deal of the differences between the > compilers. I haven't found any place that Semper allows lowercase keywords; however, they do supply an alternate set of IM libraries and modules which are lower-cased for people that don't want to remember that it's SetPort rather than Setport, etc. These have nothing to do with the language definition. The fact that it allows Pascal strings I consider to be a major benefit since I write code that calls the ToolBox a lot, and the ROMs expect Pascal strings. If I were writing plain vanilla Modula-2 programs that use FileSystem and Streams rather than Macintosh applications which use the FileManager, I would be glad of that distinction, but I don't and do not deem it a consideration for someone who is going to be writing Macintosh programs, DAs, and INITs. SemperSoft also supports the MPW Performance Analysis tool. In short, I still prefer Semper's compiler for what I do (as you say, personal preference). If Bob will allow type-transfer functions and does get the code size down on toolbox-intensive applications, I will recommend it over TML. I like Bob and Tom. They put out a quality product with good documentation, and got it out first. Nevertheless, for the things I do, Semper does the job a little better (and a whole lot easier). I get extremely aggravated when I have to type VAL conversion after VAL conversion to compare things. It obscures the source and tires my fingers. Again, if you are talking about which Modula-2 compiler would I recommend for someone who wants to write the same code (essentially) on a number of different systems, I would recommend TML without question. The inquiry, however, was for the compiler recommendation for programming the Mac. I take that to mean, "Which one does the best job of creating real-life Macintosh applications and does it with the minimum of fuss?" On this point, I still say that it is the Semper compiler as there are too many contortions involved with the TML interface to the toolbox and too much glue overhead. Enough ranting from me as well. Take care, Dennis Cohen Ashton-Tate Glendale Development Center dBASE Mac Development Team -------------------------- Disclaimer: Opinions expressed above are all mine, based on my preferences and experiences. Any connection to those of any corporate entity are purely coincidental. > I think that Semper has a nice compiler, but its syntax has taken great > liberties with Wirth's definition. I don't like using CHAR and PASCHAR > order to work with the Macintosh tool traps. I perfer null terminated strings > but it becomes awkward to use both types in a Macintosh program. I'd rather > let TML's libraries do the conversions for me. My Personal Preference,of > course.
bobc@oophost.UUCP (Bob Campbell) (12/15/87)
I should first say that I am the copyright owner of TML Modula-2, and I have a strong interest in what people think about it. I am attempting to present a review of each of the items about my compiler that have been presented. I have looked at the code produced by both TML Modula-2 and SemperSoft Modula-2, as well as the other features of the langauges, and I feel that while my compiler could be improved some (and it is being worked on), but it is still as good or better then the SemperSoft compiler when all things are considered. Dennis was one of TML Systems beta testers (and a very good one at that, thank you Dennis). Keith is was and always will be one of my primary testers. (I limit my beta testers because I can't affort to be sending a lot of disks out.) I have several other testers in the seattle area and one in Vancouver BC (that's Canada). It is up to TML systems to send copies to their beta testers. I know what kind of code TML Modula-2 generates, and I also know that the only glue code that exists is for MULTIPLY and DIVIDE of 32 bit numbers, and a special routine called HALT, that is called sometimes for things like reaching the end of a function with out returning anything. In addition the JSR instruction is used for handling case statements. I don't think that the "jumbs to glue routines at every turn" is a valid statement. There were a few extra MOVE instructions used in type conversions but these will be taken care of in the next release (1.3). TML Modula-2 produces larger applications in many cases because it uses the same libraies that Apple's C and Pascal compiler use. The side effect of this is that it is painless to write a simple application that uses the "InOut", and "Terminal" modules and convert it into a MPW Tool by only changing the File Type of the application from APPL to MPST. Most of this code is from the fact that TML Modula-2 always calls RTInit, instead of just calling DataInit, and forcing the user to to know when RTInit is needed instead. (I may solve this in 1.3 which is currently in alpha test). The conversion of TransSkel, was well done but limited in scope to being a simple port. I know of many things that can be done to the sources (for TML Modula-2 at least) that will make the program smaller and easier to read. I will concide the point that SemperSoft's compiler is about 3-4% faster, then My compiler, and I don't expect this to last forever. The benchmarks that have been done indicate that his compiler beats my by at most 12%, and my beats his at most by 20% (or more). These bench marks are subjective and when writing a macintosh application it is even harder to tell the difference. SemperSoft does not support lower case keywords, but it does have a library of all the routines in lower case. I personally feel that case is sensitive, and that the identifiers could be typed correctly. For some people I understand using the shift key is a problem not yet mastered, and for those people Apple has nicly supplied the canon tool that will convert the cases to be correct (very easy to use, but don't used the default dictionary or LONGINT will look like LongInt). The rules for spelling names of routines is very simple, just capitlize the first letter of each new word (little if any memory work is required my fingers do it automaticly). And should I make a mistake I have a command key to solve the problem: AddMenu 'Modula' 'Lookup/=' \ 'Search /`cat "{Active}.O-6"`/ \ {ModLib}MInterfaces.DEFs:O-X.MOD' It is hard to do a MPW Script in Unix but "\" is really option-d, "O-6" is option-6, and "O-X" is option-X. There are many other ways to do this, but this produces output that can be selected and executed to open up the file in question and let me see the actual declaration. Pascal Strings, well SemperSoft does support pascal strings, and while I personally don't like Pascal strings (they are far too limiting for me), he has done a good job of supporting them. I would rather support Pascal Strings the way MPW C supports them (using the \p escape inside of strings). In fact there is no real solution to this problem that will make all factions happy. In every case I tend towards making the system as easy to use as possible, and I try to give information so that more aware people can do things the harder and faster way. Also the vast majority of the ToolBox calls do not need strings or characters as parameters. The FileManager, well the FileManager is very limited in it's usefulness. If you do a Open, followed by a small number of reads or writes using large buffers then the FileManager is ok, otherwise it is very slow having the Trap over head for each read and write. The Streams module does a reasonable job of buffering the I/O, and is very easy to use. There is no reason that a real macintosh application could not use Streams instead of the FileManager (if the program uses a lot of File I/O it might run faster.) I will never support type-transfer functions other then the VAL function. I support Dr. Wirth's current design of the language, type-transfer functions can cause problem, and should be clearly marked. It is not much harder to type VAL(INTEGER,foo) and if you started doing it instead of just complaining about it, it would be come just as easy. I did not like it at first, but I started using it and it really is not that hard. In addition there are a lot of places where you have to use conversions in MacIntosh Pascal, that Modula-2 does not need. PR time: To answer the question "Which one does the best job of creating real-life Macintosh applications and does it with the minimum of fuss?" I feel that TML Modula-2 is a better choice for the following reasons: [a] The interface files for TML Modula-2 are orginized by Manager, this means that the interfaces are orginized the same way Inside Macintosh orginizes them, it is also the same way that MPW C orginizes them. It is also as close as is reasonable to the way other Modula-2 compilers like TDI, MacLogicmo (spelling?) and MacMETH orginize them. [b] I have worked with professional programmers using my compiler to support a released product. I spend a lot of time making sure then when I release something it will not cause them any problems, this means that I take a little bit more time per release, but I think that they are well worth the effort. [c] I feel (and most people agree) that I have the best documentation, and I believe that a product is only as good as the manual that you use it with. [d] TML Modula-2 supports commando, so you don't have to know how what all of the options work. [e] TML Modula-2 provides example worksheets that contain the instructions for building all of it's examples. You can open the file and select the commands and execute them with out opening the manual. [f] TML Modula-2 provides a set of menu commands that can be used from inside MPW for generating Modula-2 statements like IF, REPEAT, WHILE, CASE, PROCEDURE... In summary I feel that SemperSoft's compiler is a little better (at the current time...), but based on my information it is not any easier to use, it does not have any major features that TML Modula-2 does not have. TML Modula-2 does have a number of features that SemperSoft does not have and I intend to keep it that way. Mike from SemperSoft is a good person, and I wish that I was not competing with him, but since I am, I intend to do a first class job of it.