[comp.lang.modula2] JPI V1.06b

toma@tekgvs.LABS.TEK.COM (Tom Almy) (09/28/90)

Well, I got the update and certificates in the mail, and I never sent
them any bug reports. I would guess all customers get this package free.
What with the next major upgrade free as well and the half price coupon
for another TopSpeed language, JPI seems to really be going all out to
make ammends.

Unfortunately the two bugs I had discovered in 1.04 (but did not report)
are present in 1.06. I guess I'll call these in. Its a real shame they
decided to go for multilanguage support -- that really messed things up.
The compiler has gotten very complex to use, and the documentation for
all the various options stinks. And am I the only one annoyed by the use
of directory "include" for the Definition Modules?

Tom Almy
toma@tekgvs.labs.tek.com
Standard Disclaimers Apply

GRANGERG@VTVM1.BITNET (Greg Granger) (09/29/90)

On Fri, 28 Sep 90 14:36:11 GMT Tom Almy said:
>Well, I got the update and certificates in the mail, and I never sent
>...
>
>Unfortunately the two bugs I had discovered in 1.04 (but did not report)
>are present in 1.06. I guess I'll call these in. Its a real shame they
>decided to go for multilanguage support -- that really messed things up.
>The compiler has gotten very complex to use, and the documentation for
>all the various options stinks. And am I the only one annoyed by the use
>of directory "include" for the Definition Modules?
>
>Tom Almy
>toma@tekgvs.labs.tek.com
>Standard Disclaimers Apply

I wholeheartedly agree.  Yes, the directory name bugs me, but not nearly
as much as all the _XXX variables or the Eval() functions (which would
more appropiately be called the IamReallyAVoidCFunction()) or tracing
all the heap allocation calls down to calloc & malloc calls in the
CLB ('C'ommon Lib, HA!).  The problem isn't that they decided on
multi-lang support, it that they decided to market a C compiler (very
buggy from what I've heard) and as a sideline maybe some other langs
in a half-a**ed fashion.  Maybe the 'next major release' will address
these problems, but judging from the way they (JPI) defends the 'quality'
of there product ("yes, it has a few small bugs, and the docs aren't
good enough, but I don't know what everyone is so upset about") I
wouldn't hold my breath.  Now it would be great if they would start
over at version 1.xx (which was great), or sell it to someone that
would update it correctly, or (no chance but I can dream can't I)
give the source to the PD (now that would be GREAT, but...)


WARNING SOAPBOX MODE ON *************************************
We have to face facts the market is C.  My own view on this is that
in 10-20 years people will think of C the way they think of COBOL
today; anyone with the slighest technical knowledge will loth working
with it, but all the admin. types will say "it must be good there
are 800 millions lines of code written in it".  (people may realize
(one day) that this is the same argument as "Hitler must have been
right because millions of people followed him")  What we need is
more people in management roles with real hard technical knowledge
and less managers who 'think' they have hard technical knowledge
cause they had a computer course once in school in 1968.
OK I FEEL BETTER NOW ****************************************

Greg

Frank.Warren@f42.n161.z1.fidonet.org (Frank Warren) (10/06/90)

WARNING SOAPBOX MODE ON **********************************
  
    Alas, I agree with everything you say, Greg.  And I have to live
with  lousy old C myself on a day to day basis.  I sometimes wonder what
the moral difference is between programming in C and selling drugs to
school children for a living.  Look at this; it's an egg.  It's like
your CPU.  Now break it open and lay it in a smoking frying pan to
bubble, boil, change colors and burn.  This is your CPU on C code.
 
    Think about it .

--  
uucp: uunet!m2xenix!puddle!161!42!Frank.Warren
Internet: Frank.Warren@f42.n161.z1.fidonet.org

Peter.M..Perchansky@f101.n273.z1.fidonet.org (Peter M. Perchansky) (10/07/90)

Hello Tom:

    What two bugs have you found in 1.06b that were present in 1.04?



--  
uucp: uunet!m2xenix!puddle!273!101!Peter.M..Perchansky
Internet: Peter.M..Perchansky@f101.n273.z1.fidonet.org

toma@tekgvs.LABS.TEK.COM (Tom Almy) (10/09/90)

In article <184.270F4253@puddle.fidonet.org> Peter.M..Perchansky@f101.n273.z1.fidonet.org (Peter M. Perchansky) writes:
>Hello Tom:
>
>    What two bugs have you found in 1.06b that were present in 1.04?
>
(These bugs haven't been submitted to JPI, but I intend to do it now).

The first bug is related to JPI's decision to allow multiple memory models
like most C compilers. In the following program segment, no error is given
on the call to Str.Length even though (using small model) the type of the
actual and formal parameters don't match nor is code generated to properly
pass the argument by value (assuming it were possible). Even ANSI C compilers
don't screw this up; it is very unacceptable for a language like Modula-2.

FROM Lib IMPORT CommandLine;
FROM Str IMPORT Length;

...

slen := Str.Length(CommandLine^);

==========================================

I had been generating a "library" of object files, using a "Make" program and
the command line compiler interface. I do this because there are many files,
and there is no clean way to use the environment (I suppose a dummy program
that includes all the modules would do it, but I don't consider that very
clean).

At any rate, when I specify processor options (80386, 80387 in my case) these
options get included in the .obj file. When I compile my applications with
the same options, the environment compiler does not insert these options in
the .obj. The built-in make notices the discrepancy and forces recompilation
of all the library files. A needless operation, and one that generates
duplicate files since the new .obj's are placed in the current directory
rather than that of the library obj's.

================================================

I found a third bug, which probably existed in the 1.04 version as well.

I wanted to be able to redirect standard input from the command line (using 
the "<" operator). Using the IO.Rdxxx procedures no indication is produced
at end of file, therefor while redirection works, programs tend to hang if
they intend to continue reading until end of file.

I attempted to get around the problem by using FIO.Rdxxx(StandardInput,...)
which works fine reading from the keyboard (even EOF is indicated correctly)
but when input is redirected always returns an EOF state. A casual inspection
of the library source yielded no clues.

===============================================

One irritant, especially with the C compatibility. You can turn on or off
the capture of Control-Break, but you can't handle the interrupt with your
own routine. An inspection of the library sources shows code to handle C
style signals, but the capability is not passed to Modula-2. I'd like to be
able to capture all errors to recover myself, and then not generate that
error file.

Tom Almy
toma@tekgvs.labs.tek.com
Standard Disclaimers Apply