[comp.lang.ada] Meridian Ada compiler for Macintosh

abdlm@dftsrv.gsfc.nasa.gov (03/19/91)

I will be recieving my new Meridian Ada compiler for the Macintosh tomorow 
(I hope).  This is the compiler they are selling for $150 ($200 with MPW 
manuals) until the end of the month.  I have seen some comments on this 
product but never any reviews.  I have been told this Compiler will work on
my Mac SE w/2Meg memory and 5Meg of free disk space.  I intend to post a review
in time for you out there to make up your mind about buying this product before 
the price goes back up through the roof.  

I purchased this compiler for my home computer which I have been programming in
C. I program in Ada exclusively at work, for robotics control. It's a real drag 
to go home and use C after using Ada all day. If you have any specific 
questions you would like my review to address please E-mail them to me ASAP.

$150 is an awsome price for any piece of professional software for the Mac, 
especially an Ada Compiler bundled with MPW. It is extremely competative with 
Think C, Apple's MPW C, C++ and Pascal.  Meridian's efforts to bring Ada to the 
common man/woman are commendable. I've used my share of $20,000 Ada compilers 
and it has become obvious to me that the largest impediment keeping Ada from 
wider usage is the outragous price of most Ada compilers. If this compiler (and
it's PC counterpart) turn out to be good products the Ada user community would 
be wise to show their support for these by purchasing these in sufficient 
numbers to make these prices permanant. (please excuse the editorializing).

-D. Miller.

hpoppe@ncar.ucar.edu (Herb Poppe) (03/21/91)

In article <4504@dftsrv.gsfc.nasa.gov> abdlm@dftsrv.gsfc.nasa.gov writes:
> I will be recieving my new Meridian Ada compiler for the Macintosh
tomorrow
> (I hope).
> I intend to post a review
> in time for you out there to make up your mind about buying this product
before
> the price goes back up through the roof.
> If you have any specific
> questions you would like my review to address please E-mail them to me
ASAP.

Mail bounced, so:

I should like to know how well this compiler supports writing normal Mac
programs (ToolBox and OS support).

I should like to know how tasking works in conjunction with the MacOS
(MultiFinder, WaitNextEvent).

I should like to know what "Chapter 13" elements are implemented
(representation specs., interrupts, etc.)

I should like to know about interfacing (pragma INTERFACE) to other MPW
languages, THINK languages.

Thanks for offering to post a review; I am considering buying this product.

Herb Poppe             hpoppe@ncar.ucar.edu
NCAR                      (303) 497-1296
1850 Table Mesa Dr.
Boulder, CO  80307-3000

hasan@ut-emx.uucp (David A. Hasan) (03/22/91)

In article <10691@ncar.ucar.edu> hpoppe@ncar.ucar.edu (Herb Poppe) writes:
>In article <4504@dftsrv.gsfc.nasa.gov> abdlm@dftsrv.gsfc.nasa.gov writes:
>> I will be recieving my new Meridian Ada compiler for the Macintosh
>>tomorrow
 
[ ... ]

>I should like to know how well this compiler supports writing normal Mac
>programs (ToolBox and OS support).

[ ... ]

There is a separate Environment Library User's Guide in the
Meridian documentation which discusses fairly extensively how
to work with the Mac toolbox and OS.  There are chapters for
each volume of Inside Macintosh, a chapter for selected Mac
Tech. Notes,  a chapter which discusses working with MPW
(e.g., writing MPW tools), a chapter discussing HyperCard
scripting, and more.  There are Ada packages provided which
implement many of the managers.    

I haven't used these yet.  However, it all *seems* fairly
complete. 

>I should like to know how tasking works in conjunction with the MacOS
>(MultiFinder, WaitNextEvent).

Meridian provides two scheduling algorithms: non-preemptive
(the default) and preemtive.  There is no indication
whatsoever that these cooperate with Multifinder.  Of course,
as I mentioned above, there is an environment library package
which corresponds to the event manager.  You can call
WaitNextEvent through this package, I assume.  But it does not
seem to be integrated with tasking.

>I should like to know what "Chapter 13" elements are implemented
>(representation specs., interrupts, etc.)
>

Rep. spec restrictions are discussed in the Compiler User's
Guide.  They do not seem constraining for the most part.
Address clauses for constant and variable objects are
supported but not for subprograms, packages, or task units.
Address clauses for task entries are supported.  The meaning
of task entry addr. clauses is discussed under interrupts.  A
task entry's addr. clause can be used to associate an entry
with a unix-like signal.  Only signal 2 is supported:
command-dot interrupt from the keyboard.  Interrupt entries may not
have parameters.  This seems pretty limited to me, but I don't
use tasks much. 

>I should like to know about interfacing (pragma INTERFACE) to other MPW
>languages, THINK languages.
>

The discussion of this in the Compiler User's Guide is very
sparse.  One statement leaves me very confused:  "The caller
removes the parameters from the stack after the called
subprogram returns."  I have always understood that Mac routines
clean up after themselves, e.g. Macintosh Revealed Vol. 1
(first edition) says "The [toolbox] routine will remove its
parameters from the stack before returning...".  I suppose
that MPW might have changed things, but in fact the entire
discussion in the guide makes it seem difficult to call
non-Ada routines.  Whether calling non-MPW languages is
feasible, I cannot say.  It does say, however, that "all
object modules must be compatible with the MPW Linker."  

If there is some MPW C routine
    void p() {...}
out there, to call it from Ada, you write
    package callit is
       procedure p;
       pragma interface (c,p);
    end callit;

    with callit;
    procedure main is
    begin
       callit.p;
    end main;
(This is taken from the guide.  Notice that p() has no
parameters.  There is no example in which the C routine does
have paramters.)  

It is possible to write machine code routines by using the
package machine_code.  To do this, you have to essentially
write the code in hex.

-- 
 |   David A. Hasan
 |   hasan@emx.utexas.edu 

rharwood@east.pima.edu (03/23/91)

In article <4504@dftsrv.gsfc.nasa.gov>, abdlm@dftsrv.gsfc.nasa.gov writes:
> 
> I will be recieving my new Meridian Ada compiler for the Macintosh tomorow 
> (I hope).  This is the compiler they are selling for $150 ($200 with MPW 
> manuals) until the end of the month.  I have seen some comments on this 
> product but never any reviews.  I have been told this Compiler will work on
> my Mac SE w/2Meg memory and 5Meg of free disk space.  

I've been using version 4.0 on a Mac Plus w/4MB RAM for over a year.  It's a
great tool once you get used to MPW.  (V4.1 is what is shipping now, and I just
got mine early this week.)  2MB shouldn't be a problem, but heck, at the price
of memory these days, if it is, upgrade!

> I purchased this compiler for my home computer which I have been programming in
> C. I program in Ada exclusively at work, for robotics control. It's a real drag 
> to go home and use C after using Ada all day. If you have any specific 
> questions you would like my review to address please E-mail them to me ASAP.

I've managed to avoid C altogether in my career... I used to do FORTRAN!  I too
would respond to any questions you might have.

> If this compiler (and it's PC counterpart) [stuff deleted]

I also have the PC version. Aside from the speed difference, I don't think
there are any real "operational" differences.  (I know it's unfair to compare a
Mac Plus and a 386SX/20mhz... but I love my Mac!)

Ray Harwood            |PO Box 18324        |Internet: rharwood@east.pima.edu
Owner, Data Basix      |Tucson, AZ 85731    |AppleLink: DATA.BASIX
Associate Faculty,     |Voice: (602)721-1988|CompuServe: 76645,1370
 Pima Community College|FAX:   (602)721-7240|Opinions: My own

dnsurber@lescsse.jsc.nasa.gov (Douglas Surber) (03/25/91)

I have been using  the Meridian Ada compiler for the Macintosh for about
four weeks now.  Overall I am pleased; it does almost everything I want
to do.

However . . .  You cannot make calls to QuickDraw except from the main
task.  I had originally planned on structuring my applications as
several tasks, one to handle window management, one to handle mouse and
keyboard events, one (or more) to do the real work.  But this doesn't 
work.  These secondary tasks cannot make QuickDraw calls. :-(

I haven't done any poking around to determine why this is the case, but
my guess is that the secondary task stack space is allocated on the heap
so QuickDraw thinks that StackTop has passed HeapTop and generates an
out of memory condition.  For dynamically created tasks I can see why
allocating the task stack space on the heap would be necessary, but for
static tasks it should be possible to allocate the stack space at the 
bottom of the main task stack.  This would keep QuickDraw from getting
confused.

I talked to Meridian and they said they would have a techie type call me,
but they haven't done so yet.

Other than the above I am pleased, and you can't beat the price.  The
$149 price expires the comming Sunday 31MAR91, so if you are interested,
hurry.

Douglas Surber

--
Douglas Surber                 Internet: lobster!lescsse!dnsurber@menudo.uh.edu
Lockheed (LESC)                UUCP:     lobster!lescsse!dnsurber
SSE SSFP                       NASAmail: dnsurber/jsc/nasa
Houston, Texas                 Phone:    713-283-5195

rimvallm@meson.crd.ge.com (Magnus Rimvall) (03/26/91)

In article <dnsurber.669909679@node_2204c> dsurber@nasamail.nasa.gov writes:
>Other than the above I am pleased, and you can't beat the price.  The
>$149 price expires the comming Sunday 31MAR91, so if you are interested,
>hurry.

Please hurry and post Meridan's phone number, address, order number,
options and so on ASAP. Are credit-card buys possible?

Magnus Rimvall
Standard Disclaimer

mfeldman@seas.gwu.edu (Michael Feldman) (03/26/91)

In article <17879@crdgw1.crd.ge.com> rimvallm@meson.crd.ge.com (Magnus Rimvall) writes:
>Please hurry and post Meridan's phone number, address, order number,
>options and so on ASAP. Are credit-card buys possible?
>
Meridian's number is 1-800-221-2522, Irvine Calif. They will take VISA.

Mike Feldman

dnsurber@lescsse.jsc.nasa.gov (Douglas Surber) (03/27/91)

In <17879@crdgw1.crd.ge.com> rimvallm@meson.crd.ge.com (Magnus Rimvall) writes:

>Please hurry and post Meridan's phone number, address, order number,
>options and so on ASAP. Are credit-card buys possible?

    Meridian software Systems Inc.
    10 Pasteur Street
    Irvine, CA  92718

    800-221-2522  Sales
    714-727-0700  Business
    714-727-3583  Fax

Credit card phone orders are accepted.  Price is $149 plus $10 shipping.

--
Douglas Surber                 Internet: dnsurber@jsc.nasa.gov
Lockheed                       NASAmail: dnsurber/jsc/nasa
Houston, Texas                 Phone:    713-283-5195
Life can be only understood backwards, but it must be lived forwards.