Annotation of 43BSD/contrib/apl/doc/man.8, revision 1.1

1.1     ! root        1: .NH 1
        !             2: A ``startup'' function in \*a?
        !             3: .PP
        !             4: \*a has a startup facility
        !             5: which allows automatic execution
        !             6: of an \*a expression when a
        !             7: workspace is loaded.
        !             8: If you define the variable
        !             9: ``\*(qdlx'' to be some \*a expression
        !            10: and then save the workspace,
        !            11: when you next ``)load'' the
        !            12: workspace,
        !            13: \*a will automatically read
        !            14: and execute ``\*(qdlx''.
        !            15: For example,
        !            16: if you have the function ``hello''
        !            17: which looks like this:
        !            18: .DS
        !            19:        hello
        !            20: [1]     \'hi there, my friend\'
        !            21: [2]     \'welcome to apl\'
        !            22: .DE
        !            23: and
        !            24: you want \*a to perform
        !            25: ``hello'' when you load
        !            26: the workspace file ``hi'',
        !            27: you can say:
        !            28: .DS L
        !            29:        \*(qdlx { \'hello\'
        !            30:        )save hi
        !            31:   14.59.31 10/26/78  saved hi
        !            32:        )off
        !            33: .DE
        !            34: Then, if you run \*a with:
        !            35: .sp
        !            36: $ apl hi
        !            37: .sp
        !            38: you will get:
        !            39: .DS L
        !            40: a p l \\\\ 1 1
        !            41: 25 oct 1978
        !            42: 
        !            43:   14.59.31 10/26/78 loaded hi
        !            44: 
        !            45: hi there, my friend
        !            46: welcome to apl
        !            47: 
        !            48:        \_
        !            49: .DE
        !            50: .NH 1
        !            51: \*u \*a\\11 Limitations
        !            52: .PP
        !            53: \*u \*a does have
        !            54: some limitations.
        !            55: Tracing,
        !            56: which is controlled by the
        !            57: ``)trace'' and ``)untrace'' commands,
        !            58: is not compatible
        !            59: with the standard
        !            60: \*a
        !            61: trace facility.
        !            62: .PP
        !            63: Some operators have not
        !            64: been implemented
        !            65: (for example, laminate
        !            66: is not supported).
        !            67: Dyadic format is available in
        !            68: a restricted form:
        !            69: the left argument cannot be a
        !            70: scalar or one-element vector
        !            71: and negative precision
        !            72: (``E format'')
        !            73: is not permitted.
        !            74: There is a function
        !            75: /usr/lib/apl/fn/dft
        !            76: which performs dyadic format
        !            77: according to the standard definition.
        !            78: Inner and outer product will not
        !            79: work with character data.
        !            80: .PP
        !            81: Functions which are created with
        !            82: ``\*(qdfx'' should not have the same
        !            83: name as existing variables;
        !            84: occasionally
        !            85: \*a
        !            86: gets confused and mistakenly
        !            87: zaps a newly-fixed function.
        !            88: Functions containing overstrikes
        !            89: that were created by ``\*(qdfx''
        !            90: cannot
        !            91: be properly edited.
        !            92: The only quad variable which has
        !            93: been implemented is
        !            94: ``\*(qdlx'',
        !            95: and it is always a global variable.
        !            96: .PP
        !            97: The biggest limitation for PDP-11
        !            98: \*u \*a is space.
        !            99: Despite efforts to use as
        !           100: much memory as \*u
        !           101: and the computer itself permit,
        !           102: only about 5000 numeric values
        !           103: may be stored in an \*a
        !           104: workspace.
        !           105: In order to permit workspaces
        !           106: containing more data,
        !           107: there is a second version
        !           108: of \*u \*a called ``apl2''.
        !           109: \*(a2 is used exactly the
        !           110: same way as \*a \(em
        !           111: the only difference is that
        !           112: it uses single precision
        !           113: floating-point instead of
        !           114: double-precision.
        !           115: As a result,
        !           116: some precision is lost,
        !           117: but \*(a2 allows twice
        !           118: as many workspace items
        !           119: as \*a.
        !           120: Although
        !           121: \*(a2 and \*a workspaces
        !           122: are in different formats,
        !           123: \*a and \*(a2 will convert
        !           124: each other's workspace files
        !           125: they are loaded with ``)load''
        !           126: or merged with ``)copy'',
        !           127: so workspaces may be
        !           128: used interchangably.
        !           129: In all other respects,
        !           130: the operation of \*(a2 is
        !           131: identical to the operation of \*a.
        !           132: (On the VAX 11/780,
        !           133: the size of the workspace is essentially
        !           134: limited only by the virtual memory system.
        !           135: Hence,
        !           136: \*(a2 provides no real advantage over \*a).
        !           137: .PP
        !           138: Finally,
        !           139: an unfortunate restriction in using \*a
        !           140: on both PDP-11's and VAX-11/780's is that
        !           141: workspaces are not
        !           142: directly interchangeable
        !           143: between machines.
        !           144: However,
        !           145: there is a program to convert them.
        !           146: To convert a PDP-11 workspace to the VAX,
        !           147: run (on the VAX) the command:
        !           148: .DS
        !           149: $ aplcvt filename
        !           150: .DE
        !           151: The workspace will be converted to VAX
        !           152: format and placed into the file
        !           153: ``filename.vax''.
        !           154: Similarly,
        !           155: you can convert VAX format workspaces
        !           156: to PDP-11 format by running
        !           157: ``aplcvt'' on a PDP-11.
        !           158: (There are other options available;
        !           159: for a description of these see the
        !           160: online manual by typing
        !           161: .DS
        !           162: $ help aplcvt          <or>            $ man aplcvt
        !           163: .DE
        !           164: .NH 1
        !           165: Conclusion
        !           166: .PP
        !           167: Well,
        !           168: that wraps up this manual.
        !           169: Reference information about
        !           170: \*a is found in the
        !           171: online manual.
        !           172: Type:
        !           173: .DS
        !           174: $ help apl             <or>            $ man apl
        !           175: .DE
        !           176: for the online document.
        !           177: Good luck with \*a!

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.