[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