[comp.lang.c++] Zorteck C++ blue...

yhe@caen.engin.umich.edu (youda he) (01/24/89)

Hello world, I am one of those bought a Zortech C++ compiler, After
struggle with Zortech C++, I found it has following problems :

(1) It will not properly return for derived class:
    example:
    class Matrix {
        ...
    };
    class System : Matrix {
        Matrix sys;
        int state;
    public:
        ...
        System operator*(System& b);    // not work.
        friend System serial(System& a, System& b); // not working
        friend void serial(System& a, System& b, System &ab); // works
    };
    In this case the return value is unpredictable, in most cases it will
    hang system. If the return value is not derived class, it works. Also
    if return by arg, it also woks. this made it almost impossible to
    define operators in derived class.

(2) Blink can't find stuff in library.

(3) Overload cast name based on the sequence functions appear in the .cpp
    file not in the sequence of definition in header file. that will cause
    same name casting in different file, unless you pull all the functions
    has same name in one file, ...

(4) optimizer give wrong result, the only way to check is to see if it works
    OK then suddenly hang system or just wrong answer. a lot of time the
    compiler quit, tell you ZTC BUG *****, (during ZTC2B), some times it
    get to the end but MAY BE wrong. I just keep in the plain mood now.
    Also (Inverting (50x50) matrix compiled by msc 5.1 take 8.7 sec, ZTC 12.8
    sec, both use maximum optimization large model, use 10Mhz 1 wait AT with
    80287), therefore the optimization not doing much any way.

(5) Wrong floating point case when using -f option:
    example:
    main()
    {   double a=HUGE_VAL;
        printf("%d %d %d %d \n", a>0.,0.<a,a<0.,0.>a);
    }
    will show one of them is not correct. (forget which one).

(6) zlib: lib(ms) and zlib can't mix up, one put a .obj file in .lib
    can't be removed by the other, but no complain issued. { lib(ms) seems
    work better, since blink usually can find stuff put in by lib(ms). }

(7) tech support: I called twice, they promise to call back, I never get the
    call. I mail back the post card come with compiler, no answer either.

Suggestion: Make it work before put any fancy stuff in it, I never use the 
editor come with the compiler. Code view hardly work, (you can see the line
on code view, but some times can't find value), any thing associate with
IO will not work under codeview. The bunch doesn't work at all.

Does Zortech has any update yet? I have 1.07
Any suggestions?

    Youda yhe@caen.umich.edu



bright@Data-IO.COM (Walter Bright) (01/31/89)

To: yhe@caen.engin.umich.edu
Subject: Re: Zorteck C++ blue...
Newsgroups: comp.lang.c++
In-Reply-To: <410c930c.129dc@blue.engin.umich.edu>
Organization: Data I/O Corporation; Redmond, WA
Cc: 
Bcc: 

In article <410c930c.129dc@blue.engin.umich.edu> you write:
<(1) It will not properly return for derived class:
<        System operator*(System& b);    // not work.
I can help you better if you provide a complete program that fails, rather
than a fragment.
<(2) Blink can't find stuff in library.
This happens in some odd cases. I have this fixed for the next version.
<(3) Overload cast name based on the sequence functions appear in the .cpp
<    file not in the sequence of definition in header file. that will cause
<    same name casting in different file, unless you pull all the functions
<    has same name in one file, ...
This will go away when typesafe linkage is implemented. This is a problem
with all current implementations.
<(4) optimizer give wrong result
Please email me the code that causes this. I've gotten only 1 bug report on the
optimizer in the last 6 months. I'm very interested in fixing any problems
with it. Simply saying that you get the wrong result is useless to anyone.
For example, I've had people complain bitterly to me about compiler bugs,
when their code had uninitialized pointers in it which caused their grief.
<    Also (Inverting (50x50) matrix compiled by msc 5.1 take 8.7 sec, ZTC 12.8
<    sec, both use maximum optimization large model, use 10Mhz 1 wait AT with
<    80287), therefore the optimization not doing much any way.
Try using the -f flag to generate inline 8087 code. Anyway, I think you'll
find that floating point code in general is so slow that a few cycles saved
by an optimizer is lost in the overhead of floating point calculations.
<The bunch doesn't work at all.
Again, please email me an example. I use bunch, and it does work.

wgh@ubbpc.UUCP (William G. Hutchison) (02/02/89)

In article <1855@dataio.Data-IO.COM>, bright@Data-IO.COM (Walter Bright) writes:
> In article <410c930c.129dc@blue.engin.umich.edu> you write:
> <(1) It will not properly return for derived class:
> <        System operator*(System& b);    // not work.
> I can help you better if you provide a complete program that fails, rather
> than a fragment.
> <(4) optimizer give wrong result
> Please email me the code that causes this. ...
> ... Simply saying that you get the wrong result is useless to anyone.
> For example, I've had people complain bitterly to me about compiler bugs,
> when their code had uninitialized pointers in it which caused their grief.


I have to agree with Walter on this one.  
At the Portation Center we frequently get verbal reports of compiler bugs, but
when we ask for specific examples of code that demonstrates the bugs, they
mysteriously vanish!!
  Most "compiler bugs" are application programmer errors.  I cannot take such
a report seriously unless shown a whole program that demonstrates it.
  By the way, I just got Zortech C++ 1.07 for a $20 upgrade fee.  I like the
Zortech product, but they seem to have a serious problem communicating with
their customers.  Nobody at Zortech ever told me about this update... I only
learned about it through Usenet.
-- 
Bill Hutchison, DP Consultant	rutgers!liberty!burdvax!ubbpc!wgh
Unisys UNIX Portation Center
P.O. Box 500, M.S. B121         "The unexamined life is not worth living!"
Blue Bell, PA 19424            	  -- Educational Testing Service, Princeton, NJ