Newsgroups: comp.lang.ada
Subject: Answers: X/Ada
From: tim@trident.datasys.swri.edu (Timothy J. Barton)
Date: 4 Jan 93 14:46:50 GMT
Organization: Southwest Research Institute


>Is there any info about the current state of the X Bindings?
>Is this a faq?
>The only aspect holding my project back from switching to Ada
>from 'C' is the binding...Hope there is a solution...
>Thanks ...

Long post follows, hit 'q' now if not interested in Ada and X....

I have looked into this myself.  I have learned that the STARS stuff is 
really old, X11R3, and is only XLIB and Xt.  If you are interested in STARS,
the folks at STARS advised me to get SERC's bindings which are built from
the orgininal STARS work.  I have talked with "Jeff" in Engineering at SERC
and he gave me all the details on SERC's product.  Their product sounds
very good and I am planning to use it here.  You can contact SERC at
1-800-ada-serc or 415-962-8092.  They'll send you a FAX with lots of good
information.

I have also received info from Objective Interface which has a product
called Screen Machine.  I have looked briefly at their literature and it
also sounds impressive.  You can reach Phil Carrasco at 703-264-1900 or
phil.carrasco@ois.com.

DEC lists bindings in their catalog and you'll see some info in the following
messages.  Sun includes XView bindings with their Sun Ada 1.1 which is the
Verdix compiler.  I am using this compiler right now in conjunction with
Alsys on the PC (my code has to run on both platforms) and I've run into no
compatibility problems between Sun Ada and Alsys.

One thing I have learned, is that there is alot of WRONG information floating
around concerning Ada and X.  Here's some answers I received to my USENET
request.  I hope this helps.  If you have any more questions, please email
me directly or call.  I work in a classified lab and don't get to the outside
world very often, so my response be several hours/days in coming.
------------------------------------------------------------------------------

From hasan@emx.cc.utexas.edu Mon Nov 23 09:38:18 1992
Subject: Re: Ada and X/Motif
Newsgroups: comp.lang.ada
Organization: UTexas Center for Space Research

In article <195@trident.datasys.swri.edu> you write:

>The FAQ lists several Ada to X/Motif bindings and I am preparing to do
>such a project for the AF.  Does anyone have experience with Ada and
>X, especially the DEC Ada Motif bindings?  

I have _just_ started dabbling in the DEC Motif binding.  I
know of one fairly startling error in XtAppInitialize (the
Ada "valued_procedure" binding to the C function has NO 
PARAMETER CORRESPONDING TO THE RETURNED WIDGET!).  The
helloWorld example which is shipped with the bindings goes
out of its way to avoid calling this routine (i.e., it calls
the lower level Xt routines for setting the context, creating
the display, etc...).      

It might be that the overall quality of the binding is
better than this would lead one to believe.  (It might also
be the case that I am missing something and that this error
is in fact some sort of feature, but I don't think so.)

I noticed that the binding we have is v1.0.  I don't know if
that is the most recent or not -- it's the one in use here
at the University of Texas.

So in general, I'd want to look fairly closely before I
committed to the binding, since it seems to be a "work in
progress."

Good luck.

.dh.
-- 
***********************************************************
*   David A. Hasan        | University of Texas at Austin *
*   hasan@emx.utexas.edu  | Center for Space Research     *
***********************************************************

------------------------------------------------------------------------------

From: meister@evb.com (John Goodsen)
Subject: Re: RE Naive Ada/X/Motif Question

>
>I have been using the ATC bindings [(714) 583 9119] to X, Xt, Motif. They are
>available for a number of compilers and a large number of platforms.  They also
>allow tasking to be used. (the calls to get events etc only block the calling
>task, not the entire Unix process).  
>

Do not forget the non-reentrancy problem with Ada tasking also.  Fixing the 
mainloop so as not to block the Unix process is only one facet of the Ada/X
tasking problems.  Non-reentrant Xlib/Xt/Motif requires serialization of your
Ada tasks when calling into the X libs.  

--
John Goodsen                           PCIS Programme
Software Process & Environments        Ada Joint Program Office       
EVB Software Engineering               goodsenj@ajpo.sei.cmu.edu
jgg@evb.com

------------------------------------------------------------------------------

From: Telstar Systems <GOULD@decus.COM.AU>
Subject: RE Naive Ada/X/Motif Question

>Do not forget the non-reentrancy problem with Ada tasking also.  Fixing the 
>mainloop so as not to block the Unix process is only one facet of the Ada/X
>tasking problems.  Non-reentrant Xlib/Xt/Motif requires serialization of your
>Ada tasks when calling into the X libs.  

We have done this by using multiple display connections to the server. We only
need a small number of tasks to do X work.  Communication between tasks gets a
bit complicated because of the tasks suspended waiting for X events.  We
currently do this by using send event to wake up the required task. 
So far, we have had no problems with this mechanism.

Ross Black
--------------------------------------------------------
Telstar Systems        |  Phone  +(61 3) 541 6893
22 Winterton Rd        |  Fax    +(61 3) 544 8574
Clayton VIC 3168       |
Australia              |  Email   GOULD@decus.com.au


------------------------------------------------------------------------------


From: Telstar Systems <GOULD@decus.COM.AU>
Subject: Re: Tasking and Ada

>I was monitoring the discussion from the Naive X/Ada Users and 
>a commnet caught my eye.  Are there problems with using
>tasking within an X/MOTIF application.  Could you please
>describe some of the symptoms etc.

There are no problems unique to using Ada/X/Motif that are not experienced with
using most I/O packages from Ada.  Most I/O is designed around using a Unix
process.  When that process issues a request for input the entire process is
blocked.  In Ada this causes a problem because all the Ada tasks run within a
single Unix process.  When one task blocks on I/O the entire process and all
Ada tasks within block.  Some solutions are appearing as operating systems
provide multi-threading capabilities (similar to Ada tasks).  Posix I/O also
provides options to allow only the calling task to block.  Newer Ada compilers
may implement tasks using threads. (The TRIAda proceedings
have a good article about this.)

The other problem with X and Motif is that the C libraries are not tasking safe
(ie multiple tasks cannot call the routines simultaneously).  Some Ada bindings 
serialise access to the library to allow safe access from multiple tasks. 
Alternatively, each task can have a separate display connection to the server.
As multi-threaded Unix becomes standard, I assume that some of the X libraries
will be re-written to be tasking safe.

** Is any work to write tasking safe X/Xt/Motif being done anywhere ?  I have
heard of a multi-threaded Xlib.  Any details ?

Ross Black
--------------------------------------------------------
Telstar Systems        |  Phone  +(61 3) 541 6893
22 Winterton Rd        |  Fax    +(61 3) 544 8574
Clayton VIC 3168       |
Australia              |  Email   GOULD@decus.com.au


------------------------------------------------------------------------------

From ARNOLD@wsmc-mis.af.mil Fri Dec  4 07:07:46 1992
From: "Arnold,Stephen, I" <ARNOLD@wsmc-mis.af.mil>
Subject: Ada response

You may know this already, but the STARS repository is mirrored on AdaNet 
(which is run by Mountain Net, which is on West Virginia Net, ...). This is
a large and well organized database of reusable code (eg, AYACC, AFLEX, etc)
and tools, as well as Ada literature, documents, etc. They are on the Internet,
but you can also reach them through SprintNet and direct dial. They just
upgraded to ASV3 (adaNet Service Version 3), a variant of the NELS (the NASA
Electronic Library System). It's supposed to be slicker than you-know-what
if you have an X-Windows machine (I don't }:-) Hope this was helpful.
For more info, call Ann @ (800) 444-1458


Stephen L Arnold   Systems Engineer              voice: (805) 734-8232 x68838
Geodynamics Corporation                            fax: (805) 734-4779
PO Box 5548                                    email: arnold@wsmc-mis.af.mil
Vandenberg AFB, CA  93437

------------------------------------------------------------------------------

>From: geb@amber.Rational.COM (Gary Barnes)
Subject: Ada reimplementation of the MIT C Xlib
Date: 31 Oct 90 17:00:07 GMT

An Ada reimplementation of the MIT C-based Xlib is available via
anonymous ftp on expo.lcs.mit.edu.  There are two files:

	contrib/ada.xlib.README		4Kb
	contrib/ada.xlib.tar.Z		2.9Mb

This Ada version of Xlib is compatible with X11R4.  This is a beta
release.  The release number is 5_6_0.  The sources are about 10Mb
when they are restored from the tar file.  3Mb of that is
PostScript documentation.  Makefiles and Imakefiles are included.
This is a complete reimplementation of Xlib; it is not an Ada skin
over the C libraries.  This leads to a more efficient interface,
better type safety, proper behavior with Ada tasking, etc.

The Ada Xlib was done at Rational and it compiles and runs with the
Rational native R1000 Ada compiler (Delta1 (D_10_20_0) and Delta2
(D_12_1_1) versions) and with the TeleSoft TeleGen2 68k Unix compiler
(version 1.4) under SunOS (version 4.0.3 or later).  It is currently
being ported to other targets by a few groups around the world.

Included with the source code are PostScript files for three
documents.  There is a Porting Guide, a Differences Guide, and a full
Xlib manual.  The Porting Guide details the steps for porting the
library to new machine architectures and operating systems.  The
Differences Guide points out the differences between the Ada and C
languages and libraries.  The Xlib manual is an Ada "translation" of
the MIT manual for the C library.

The copyright on the Ada Xlib is the same as for the MIT library.
The code is freely redistributable for any purpose.  Rational expects
to maintain the Ada Xlib in much the same way as MIT maintains the C
Xlib.  There is a mailing list for interested parties (Xlib@Rational.Com),
a mailing list for reporting bugs (Xlib-Bugs@Rational.Com), and an
address for requesting changes to the mailing lists
(Xlib-Request@Rational.Com). 

This is just the Xlib layer of the X Window System.  There are
currently no Intrinsics or Toolkit layers provided.  (That's the next
project.)  Rational will be working with SAIC and Unisys to come up
with common Xlib, Intrinsics, and Toolkit interfaces. 

Gary E. Barnes				geb@Rational.Com

------------------------------------------------------------------------------


From: alleyne@teecs.UUCP (Adrian Alleyne)
Subject: RE: Ada bindings for X-Windows
Date: 14 Nov 90 16:14:39 GMT
Organization: Litton Systems, Toronto ONT


 >> I'm looking for Ada bindings for X.  


The STARS program Ada Bindings:

SAIC developed an Ada binding to Xlib (X11/R2) under the STARS contract.  

There's a version of this binding on wsmr-simtel20.army.mil if you
have FTP access.  There are also a number of companies that sell the
Ada Software Repository on tape (MACA (505) 678-3288).  You can also get it 
from NRL, according the STARS newsletter (which you can get by sending mail to
newsletter@stars.reston.unisys.com).

Many compiler vendors provide a binding mostly based on the orginal STARS version
(e.g. TeleSoft), and there are companies, such as GHG, and Ada Plus that have taken 
the binding and commercialized it.

The (new! improved!) X11R4 binding (for several different compilers) 
was scheduled to be released sometime in September '90.  To get on the mailing list 
for further information, send mail to x-ada-request@expo.lcs.mit.edu.

We have successfully produced our own bindings to Xt and Motif, but I have no
idea if or when they will be released to the public.


SERPENT:

Serpent supports user interface development using both the motif and 
athena toolkit widget sets for X windows AND includes an Ada binding.

This allows the development of ada applications for these X window
toolkits but requires the use of serpent.  we don't necessarily
view this as a bad thing, however. 8^}  we have not yet integrated
the Open Look toolkit but we have developed a tool that allows the
easy integration of X intrinsic based toolkits (i.e., XTK+ but
not XViews).  This tool is provided with serpent and we can assist
you in the integration if you chose to attempt it.  Our experience
has been that it takes approximately 1/2 hour per widget to integrate
a new, X intrinsic based toolkit.

Support for both ada and X has been a strong selling point for
serpent.  There are several groups who are currently developing ada
applications with Motif based user interfaces using serpent.

Serpent is available for anonymous ftp (contact rCs see below) and is also 
available on the MIT X11 Contrib tape.

--------
Thanks to:  karl@grebyn.com (Karl A. Nyberg) and rcs@SEI.CMU.EDU (rCs)
            for providing some of the above information.
            

----------------------------------------------------------------------
Adrian Alleyne					email: alleyne@teecs.UUCP
Litton Systems Canada Limited			voice: (416) 249-1231
Etobicoke, Ont.                             
Canada M9W 5A7
[D.



----------------------------------------------------------------------------
Timothy J. Barton                         tim@trident.datasys.swri.edu
Senior Research Analyst                   (512) 522-3540
Southwest Research Institute (SwRI)       (512) 522-5499  (Fax)   
San Antonio, Texas  78228-0510