[comp.lang.modula2] TopSpeed 3.01 First impressions

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