Mike.Chapin@f16.n15.z1.fidonet.org (Mike Chapin) (06/23/91)
I have been using system 3.01 for a week or so and have found a few problems and a few good suprises. I have redone several libraries that I have on the shareware market and came up with a few suprises. One library corrects a deficiency in the graphics libraries of all the JPI family; it allows the BIOS fonts to be written on pixel boundries. This particular library does not use any of the features of the graphics libraries; it is completly stand-alone. The other is a graphing library. It uses the library for all the routines except writing text, that is done by the preceding library. I also did the translation and do M2 support for the GFX Graphics and GFX Fonts and Menus libraries. 1. The new project system looked rather daunting. I did a few simple things and got lost in the larger projects. After some false starts, I got everything working and am now a believer. It seems that JPI did this one right. I would suggest a person trying to build complex systems look at the project files for building the library. This was a great help to me. 2. The pragma system works a more as advertised and is better documented from both inside the environment and in the documentation. The GFX libraries crashed when I first tested them under Ver. 3.01. The problem was (*# module(implementation => off) *). This pragma was not used in Ver 2.x and did nothing when added. Ver. 3.01 requires it if the module is going to be part of a larger library. 3. JPI blew it on the M2 graphics library. The problem showed up when I was testing the graphing library. SetVideoMode works properly for all systems except EGA/VGA 16 color. In this mode the program does weird and wonderful things. I have told JPI about this but have not seen any corrections yet. I have not had time to chase down through the library source to see where the problem is, but my graphing library is effectivly broken until JPI fixes this problem and sends out new graphics libraries. 4. As for size, the size on all executables that I used to test the libraries was pretty close to the same as Ver. 2.x. What I did notice was that the BIOS font library was a little crisper, indicating a small speedup. This is just an impression, I didn't do any timing tests. The library is written entirely in M2 and does all screen writing and bit twiddling in the high level source. --Mike -- uucp: uunet!m2xenix!puddle!15!16!Mike.Chapin Internet: Mike.Chapin@f16.n15.z1.fidonet.org
Mike.Chapin@f16.n15.z1.fidonet.org (Mike Chapin) (06/23/91)
comment to Greg Granger: > Comm Toolbox manual. The writer of the manual (clearly a die-hard > C programmer) couldn't understand why "the Modula-2 community > attached itself to an awkward set of I/O procedures, largely > ignoring the solutions for similar problems already found in C." > So this person wrote a kludgy Printf in M2. Considering this > is the type of person JPI hires to write their toolboxes I guess > we are lucky they didn't 'improve' M2 by replacing all those I haven't checked out the COMM library but it suprises me that one of their developers would take such a stand. Their C compiler is written in M2. M2 isn't my favorite language, portability between MS-DOS compilers is terrible and the heavy type checking drives me crazy when I'm doing low level stuff. Doing a COMM library from scratch in M2 should be no problem and doing a printf() clone should be a snap with the pragma setup they have now. I too get tired of the "my language is better" evangelists. I work in four languages (if you count ASM) and several compilers of each (the thrill of writing libraries) and each of them have their own merits. C is great when writing programs that involves a lot of low level machine access, M2 is for large projects where you need to keep a very complex system under control without the programmer(s) going nuts. I use Turbo Pascal for smaller systems and prototyping where the instant gratification of fast compilation speeds up productivity, And that's what this business is all about. Getting your new whiz-bang application to the people who are going to use it. --Mike -- uucp: uunet!m2xenix!puddle!15!16!Mike.Chapin Internet: Mike.Chapin@f16.n15.z1.fidonet.org