[daip] Debian package of AIPS

Eric Greisen egreisen at nrao.edu
Tue Nov 2 11:47:55 EST 2004


Justin Pryzby writes:
 > 
 > >  > Does AIPS define its own programming language (like IRAF's SPP)?
 > > 
 > > I guess yes although the pre-processing is quite simple.  Mostly we do
 > > includes either from a local include or from separate files and
 > > convert HOLLERITH into something legal.  It is not an elaborate
 > > language like IRAFs.
 > Ok; I was asking with respect to keeping files around for runtime.
 > There is no language that a user would use, (from within AIPS,
 > compiled as with IRAF's xc), correct?

     The POPS internal language to AIPS.EXE is supported by a
pre-computed "memory" file located in $TSTMEM 
primate<168>$ cd $TSTMEM
/home/primate2/AIPS/31DEC04/LINUX/MEMORY
primate<169>$ ll
total 552
-rw-rw-r--    1 egreisen aips       561152 Oct 22 01:50 MED000000;
-rw-rw-r--    1 egreisen aips            0 Dec  2  2003 SPACE

The user gets this when he first starts up or requests RESTORE 0.  He
then keeps his version in SAVE/GET files which he controls and which
are created dynamically.

 > 
 > >  > Can AIPS use shared libraries (easily)?  I tried to do this with my
 > >  > IRAF package, but IRAF does some crazy stuff which I don't understand,
 > >  > so it didn't work.  Seems to me like I should just be able to change
 > >  > all compile time linking to .a files to .so files.  And change the
 > >  > compilation of the .so files, and install them to /usr/lib/aips/.
 > >  > (Not so with iraf).
 > > 
 > > I would be uncertain about the aips libraries you listed above being
 > > sharable.  It might work but I forget the issues with that - we once
 > > worried about such things but disk is cheap now.  We certainly share
 > > the system files without issue.  Perhaps you could remind of things
 > > that would block sharing the libraries.
 > It is a matter of disk space, bandwidth (for my package), and runtime
 > efficiency.  Shared libraries are more efficient with respect to
 > memory usage; if, hypothetically, each of the 400+ AIPS executables
 > linked with some certain 1MB library, 1MB of memory would be saved for
 > each AIPS process in excess of 1.  The average library sizes is 0.5MB,
 > and the executables don't all link with the same libraries; but there
 > is still an advantage whenever multiple (different) executables are
 > being run.  Which would be significant on low-resource machines, as
 > well as high-end machines with many users.

    I understand the reason one would like it - but I remember that
there are problems with shared libraries that affect how one codes.
Maybe I am mis-remembering - but that was the thrust of my question.
 > 
 > Could you describe the preprocessing you described earlier?  What
 > exact command is used to preprocess a .FOR file into a .f file?  I
 > looked around for a while but could't pinpoint it.

     $SYSUNIX/PP.FOR does the preporocessing when compiled into
$SYSLOCAL by the install script.  It is called from COMRPL and COMLNK
which are both in $SYSUNIX.
 > 
 > I can easily create a shared library output given static library
 > input, and so its just a matter of changing the final linking stage to
 > use shared libraries - but I need to be able to generate the .f file
 > to do so. 
 > 
 > What I will likely do is let the AIPS compilation run normally, and
 > then overwrite the statically-linked .EXE's with smaller ones linked
 > to shared libraries.  (Unless you can recommend a way to change the
 > linking to use shlibs).

Look in $SYSUNIX/COMLNK to see how it is currently done - it uses
LIBR.DAT for info on each directory.

There is just now a message from you - so more in a bit I guess.

Eric Greisen




More information about the Daip mailing list