1Post Installation Setup
2=======================
3
4by Leslie S. Satenstein
5
61.0   Introduction
7==================
8Following the execution of GNU-APL's "make install" (which is conceptually
9performed by a system administrator with access permissions to directories like
10/etc or /usr/), some additional setup activities by the user are normally
11required. The user can try out GNU APL before this additional setup, but some
12APL commands such as )SAVE will not work because the creation and specification
13of directories that are used for storing for files created by the user are the
14responsibility of the user and not of the system administrator.
15
16The description below assume that ./configure of GNU APL was executed without a
17prefix= option. If the prefix option was used then some of the paths further
18down in this document may differ accordingly.
19
20The "make install" procedure should have created a directory
21
22        /usr/local/etc/gnu-apl.d
23
24        or
25
26        /etc/gnu-apl.d
27
28
29This directory contains:
30
31        keyboard1.txt           a default USA PC104 keyboard layout
32        keyboard2.txt           a default International PC105 layout
33        parallel_thresholds     a presentation settings for apl  multitasking
34        preferences             a file to tailor apl for your system
35
36This next section describes configuring GNU-APL using the preferences file.
37The preference file comes pre-configured, but in some instances, the
38global contents may not suit your requirements. One example, is that
39you need to maintain a private copy of some workspaces, or modify apl actions.
40
41In this situation you may choose to create a directory with a copy of above
42directory contents below your home directory. If so, then the name of that
43directory should be $(HOME)/.config/gnu-apl/. The easiest way of creating
44this directory and its initial content is the shell command:
45
46    cp -dR /etc/gnu-apl.d $HOME/.config/gnu-apl
47
48The command may be somewhat different, for example if you used non-default
49directories in your ./configure command.
50
51
521.1   KEYBOARDS
53===============
54There are two physical keyboards predominately in use. One is the popular
55American  keyboard layout, model pc104, shown below as Keyboard1.txt:
56
57PC104 USA Standard Keyboard:
58===========================
59╔════╦════╦════╦════╦════╦════╦════╦════╦════╦════╦════╦════╦════╦═════════╗
60║ ~  ║ !⌶ ║ @⍫ ║ #⍒ ║ $⍋ ║ %⌽ ║ ^⍉ ║ &⊖ ║ *⍟ ║ (⍱ ║ )⍲ ║ _! ║ +⌹ ║         ║
61║ `◊ ║ 1¨ ║ 2¯ ║ 3< ║ 4≤ ║ 5= ║ 6≥ ║ 7> ║ 8≠ ║ 9∨ ║ 0∧ ║ -× ║ =÷ ║ BACKSP  ║
62╠════╩══╦═╩══╦═╩══╦═╩══╦═╩══╦═╩══╦═╩══╦═╩══╦═╩══╦═╩══╦═╩══╦═╩══╦═╩══╦══════╣
63║       ║ Q  ║ W⍹ ║ E⍷ ║ R  ║ T⍨ ║ Y¥ ║ U  ║ I⍸ ║ O⍥ ║ P⍣ ║ {⍞ ║ }⍬ ║  |⊣  ║
64║  TAB  ║ q? ║ w⍵ ║ e∈ ║ r⍴ ║ t∼ ║ y↑ ║ u↓ ║ i⍳ ║ o○ ║ p⋆ ║ [← ║ ]→ ║  \⊢  ║
65╠═══════╩═╦══╩═╦══╩═╦══╩═╦══╩═╦══╩═╦══╩═╦══╩═╦══╩═╦══╩═╦══╩═╦══╩═╦══╩══════╣
66║ (CAPS   ║ A⍶ ║ S  ║ D  ║ F  ║ G  ║ H  ║ J⍤ ║ K  ║ L⌷ ║ :≡ ║ "≢ ║         ║
67║  LOCK)  ║ a⍺ ║ s⌈ ║ d⌊ ║ f_ ║ g∇ ║ h∆ ║ j∘ ║ k' ║ l⎕ ║ ;⍎ ║ '⍕ ║ RETURN  ║
68╠═════════╩═══╦╩═══╦╩═══╦╩═══╦╩═══╦╩═══╦╩═══╦╩═══╦╩═══╦╩═══╦╩═══╦╩═════════╣
69║             ║ Z  ║ Xχ ║ C¢ ║ V  ║ B£ ║ N  ║ M  ║ <⍪ ║ >⍙ ║ ?⍠ ║          ║
70║  SHIFT      ║ z⊂ ║ x⊃ ║ c∩ ║ v∪ ║ b⊥ ║ n⊤ ║ m| ║ ,⍝ ║ .⍀ ║ /⌿ ║  SHIFT   ║
71╚═════════════╩════╩════╩════╩════╩════╩════╩════╩════╩════╩════╩══════════╝
72
73The second physical layout, based on the international keyboard layout pc105
74is the following, shown as keyboard2.txt
75
76PC105 International standard Keyboard
77=====================================
78╔════╦════╦════╦════╦════╦════╦════╦════╦════╦════╦════╦════╦════╦════════════╗
79║ ~  ║ !⌶ ║ @⍫ ║ #⍒ ║ $⍋ ║ %⌽ ║ ^⍉ ║ &⊖ ║ *⍟ ║ (⍱ ║ )⍲ ║ _! ║ +⌹ ║            ║
80║ `◊ ║ 1¨ ║ 2¯ ║ 3< ║ 4≤ ║ 5= ║ 6≥ ║ 7> ║ 8≠ ║ 9∨ ║ 0∧ ║ -× ║ =÷ ║ BACKSP     ║
81╠════╩══╦═╩══╦═╩══╦═╩══╦═╩══╦═╩══╦═╩══╦═╩══╦═╩══╦═╩══╦═╩══╦═╩══╦═╩══╦═════════╣
82║       ║ Q  ║ W⍹ ║ E⍷ ║ R  ║ T⍨ ║ Y¥ ║ U  ║ I⍸ ║ O⍥ ║ P⍣ ║ {⍞ ║ }⍬ ║         ║
83║  TAB  ║ q? ║ w⍵ ║ e∈ ║ r⍴ ║ t∼ ║ y↑ ║ u↓ ║ i⍳ ║ o○ ║ p⋆ ║ [← ║ ]→ ║ RETURN  ║
84╠═══════╩═╦══╩═╦══╩═╦══╩═╦══╩═╦══╩═╦══╩═╦══╩═╦══╩═╦══╩═╦══╩═╦══╩═╦══╩═╗       ║
85║ (CAPS   ║ A⍶ ║ S  ║ D  ║ F  ║ G  ║ H  ║ J⍤ ║ K⌸ ║ L⌷ ║ :≡ ║ "≢ ║ |⊣ ║       ║
86║  LOCK)  ║ a⍺ ║ s⌈ ║ d⌊ ║ f_ ║ g∇ ║ h∆ ║ j∘ ║ k' ║ l⎕ ║ ;⍎ ║ '⍕ ║ \⊢ ║       ║
87╠════════╦╩═══╦╩═══╦╩═══╦╩═══╦╩═══╦╩═══╦╩═══╦╩═══╦╩═══╦╩═══╦╩═══╦╩════╩═══════╣
88║        ║ < ¦║ Z  ║ Xχ ║ C¢ ║ V  ║ B£ ║ N  ║ M  ║ <⍪ ║ >⍙ ║ ?⍠ ║             ║
89║  SHIFT ║ > °║ z⊂ ║ x⊃ ║ c∩ ║ v∪ ║ b⊥ ║ n⊤ ║ m| ║ ,⍝ ║ .⍀ ║ /⌿ ║  SHIFT      ║
90╚════════╩════╩════╩════╩════╩════╩════╩════╩════╩════╩════╩════╩═════════════╝
91
92The 'preference' file will have a parameter setting to select one or other
93layout. More about this later.
94
95
962.0 The preferences file(s)
97===========================
98
992.1  Introduction
100=================
101The 'preferences' files contain parameters settings that control the behavior
102of the GNU APL interpreter. Most of the setting can also be controlled by
103corresponding command line options, but for most settings it is more convenient
104to specify them once in one of the preferences files than by command line
105options in every invocation of GNU APL.
106
107The settings will allow you to:
108
109    o   set text and background colors,
110    o   assign directories and workspace locations,
111    o   location of logs and history file(s), and
112    o   other operational parameters.
113
114
115The 'preferences' file should reside:
116
117 (1) in directory GNU-APL.d of the system configuration directory. or
118 (2) in directory .GNU-APL in the user's home directory.
119 (3) in both mentioned directories (see below)
120
121 In both cases the configuration file name within each must be 'preferences'
122
123The system configuration directory is usually for GNU/Linux is /usr/local/etc/
124or  /etc. During the setup of GNU-APL (refer to README-2-configuration) you have
125the  opportunity to choose a different location. It can be overridden at compile
126time by
127
128  (a)  ./configure --sysconfdir=somewhere-else
129  (b)  ./configure --sysconfdir=/home(yourlogon)/.GNU-APL
130
131
1322.2 Local version of preferences.
133=================================
134To create your own preference file, create the following directory.
135
136     /home(yourlogon)/.gnu-apl
137
138copy the system installed /usr/local/etc/gnu-apl.d  to
139
140     /home(yourlogon)/.gnu-apl
141
142
143If both your own preference file and the "gnu-apl.d" are present
144in their respective directories then the local copy overrides
145the settings common to both files.
146
147Command line options take precedence over settings made in any of these files.
148
149The initial content of this 'preference. file contains a commented list of all
150possible settings. You should not remove parameter setting lines but rather
151comment or uncomment them.
152
153The balance of this README-9 file describes the parameter setting for GNU-APL.
154
1553.0   WELCOME MESSAGE
156=====================
157By default GNU-APL displays a welcome message on start-up.
158Usually you will set it once and forget about it.
159
160The corresponding command line option for no welcome message is --silent.
161
162The default setting in the preferences file(s) is:
163#
164  Welcome       Yes     (default)
165# Welcome       No
166#
167
168
1693.1   OUTPUT COLORING
170======================
171The default GNU-APL configuration as delivered, is tailored for terminals
172displaying a white background. The background colors that APL will use can be
173overwritten.
174
175There are options to switch to black background, to no colors,
176or to even allow coloring of GNU-APL displayed output.
177
178Output coloring will cause problems when, for example:
179
180 (a) you run GNU APL as script
181 (b) you use a black background
182 (c) you run GNU APL from emacs
183 (d) you run GNU APL from a different terminal than color xterm
184
185In case (a) you should use the --script command line option and
186leave the Color setting as defaulted (see #2 below).
187
188In cases (b), (c), and (d) you can uncomment the 'Color No' line below.
189This only affects the initial state of output coloring; you can
190re-enable colors later with APL command ]XTERM ON.
191
192The corresponding command line options are --Color and --noColor
193
194If your terminal does not understand the ANSI escape sequences,
195or if you prefer not to provide escape sequences, then you can set the
196color parameter to CURSES. and set color numbers to escape sequences as shown
197below.  This setting  requires that certain environment variables (e.g. TERM)
198are set properly and that your system's terminfo database contains correct
199terminal type definitions for  your choice.
200
201The default setting in the preferences file(s) is:
202#
203  Color         ANSI (default)
204# Color         CURSES
205# Color         No
206#
207
208
209After starting APL you may want to disable coloring initially, but switch
210to curses the command ]COLOR  can be given later on. you can enter the
211color command twice:
212
213        ]color
214        ]COLOR ON
215        ]color off
216        ]color
217        ]COLOR/XTERM OFF
218
219
2203.2  GNU-APL Terminal handling
221==============================
222GNU-APL has one input and 4 output channels called CIN, COUT, CERR, and UERR
223
224 -  CIN  is the input channel and output. It echos the input typed by the user,
225 -  COUT is the normal output of the APL interpreter,
226 -  CERR is additional error information, in particular logging.
227 -  UERR is output of the APL interpreter containing error messages,
228
229CIN, COUT, and UERR write to default stdout while CERR writes to stderr.
230Normally stdout and stderr are both displayed on the same terminal,
231but output redirection as shown can make a difference. An example
232of CERR redirection is:
233
234           apl 2>MyErrorLog.txt
235
236
237When the interpreter changes from one output channel to another, for
238instance from CIN to COUT after the user has entered a line, then an
239escape sequence (actually, any short sequence of characters) is sent
240to the real output channel (i,e. stdout or stderr). The new channel
241determines which sequence is sent:
242
243 -  CIN:   CIN-SEQUENCE  CLEAR-EOL
244 -  COUT:  COUT-SEQUENCE CLEAR-EOL
245 -  CERR:  CERR-SEQUENCE CLEAR-EOL
246 - UCERR:  UERR-SEQUENCE CLEAR-EOL
247
248
249
2503.3   OUTPUT COLOR ESCAPE SEQUENCES FOR ANSI TERMINALS
251======================================================
252
253Output coloring is implemented as described below,
254When the interpreter exists, then the sequence
255
256        RESET-SEQUENCE CLEAR-EOL
257
258is sent to the terminal to cause it to set its the display colors
259to their initial state.
260
261The reason for sending CLEAR-EOL (i.e. clear to end of line) is to color
262the entire next line not only the chars printed on the next line.
263
264Unfortunately it is difficult, if not impossible, to read the current
265color setting from the terminal. Therefore the following is assumed:
266
267GNU-APL is started in a color xterm with white background".
268
269Color xterm is a VT100 (or ANSI) compatible terminal emulation.
270If this assumption is correct, then everything should be fine. Otherwise
271you may want to change the escape sequence sent to the terminal.
272
273The numbers below are the hexadecimal values of the bytes sent to the terminal;
27427 (hexadecimal 1b) is the escape character, for example. In order to
275change some or all sequences, uncomment the corresponding line
276and change the hex numbers (most likely the columns background
277and foreground).  Each sequence can be up to 20 characters long.
278By the way  // refers to the start of comments placed to the right
279of the terminal control sequence. The octothorpe (#) is the
280character placed at the left margin.
281
282The default setting in the preferences file(s) is:
283#
284#               VT100:          foreground        background
285#                               color    |        |    color
286#                                        V        V
287# //                    ESC  [  0  ;  3 fg  ;  4 bg  m
288# CIN-SEQUENCE           1b 5b 30 3b 33 30 3b 34 37 6d    // ESC [0;30;47m
289# COUT-SEQUENCE          1b 5b 30 3b 33 30 3b 34 38 6d    // ESC [0;30;48m
290# CERR-SEQUENCE          1b 5b 30 3b 33 35 3b 34 38 6d    // ESC [0;35;48m
291# UERR-SEQUENCE          1b 5b 30 3b 33 35 3b 34 38 6d    // ESC [0;35;48m
292# RESET-SEQUENCE         1b 5b 30 3b 33 39 3b 34 39 6d    // ESC [0;39;49m
293# CLEAR-EOL-SEQUENCE     1b 5b 4B                         // ESC [K
294# CLEAR-EOS-SEQUENCE     1b 5b 4A                         // ESC [J
295#
296# On a black background (still assuming VT100 so that the CLEAR-EOL-SEQUENCE
297# does not need to be re-defined), the following may be more suitable:
298#
299# CIN-SEQUENCE           1b 5b 30 3b 33 32 3b 34 30 6d    // ESC [0;32;40m
300# COUT-SEQUENCE          1b 5b 30 3b 33 37 3b 34 30 6d    // ESC [0;37;40m
301# CERR-SEQUENCE          1b 5b 30 3b 33 31 3b 34 30 6d    // ESC [0;31;40m
302# UERR-SEQUENCE          1b 5b 30 3b 33 31 3b 34 30 6d    // ESC [0;31;40m
303# RESET-SEQUENCE         1b 5b 30 3b 33 37 3b 34 30 6d    // ESC [0;37;48m
304#
305#
306Since all lines are commented out, the ESC sequences assumed by the interpreter
307are used. The lines are only shown as template the ESC sequences of the actual
308terminal.
309
310
3113.4   OUTPUT COLOR NUMBER FOR CURSES
312====================================
313There is second way of specifying colors that uses the curses library.
314Instead of specifying the escape sequences sent to the terminal you
315only need to specify the colors wanted and curses will provide the escape
316sequences needed.
317
318The default setting in the preferences file(s) is:
319# Numbers for colors seem to be (nota bene: the author is color-blind):
320#
321# 0: black
322# 1: blue
323# 2: green
324# 3: cyan
325# 4: red
326# 5: magenta
327# 6: yellow
328# 7: white
329#
330# The colors are specified as numbers like this:
331#
332# CIN-FOREGROUND  0
333# CIN-BACKGROUND  7
334# COUT-FOREGROUND 2
335# COUT-BACKGROUND 7
336# CERR-FOREGROUND 5
337# CERR-BACKGROUND 8
338# UERR-FOREGROUND 5
339# UERR-BACKGROUND 8
340#
341# or, for dark background:
342#
343# CIN-FOREGROUND  2
344# CIN-BACKGROUND  0
345# COUT-FOREGROUND 7
346# COUT-BACKGROUND 0
347# CERR-FOREGROUND 5
348# CERR-BACKGROUND 0
349# UERR-FOREGROUND 5
350# UERR-BACKGROUND 0
351#
352
353Do not mix the two methods (escape sequences vs. color numbers).
354If they are mixed then the last entry processed in this file determines
355which method will be used. Also, the numbers for colors are different
356in each method.
357
358
3593.5   INPUT ESC SEQUENCES
360=========================
361
362Below is a brief explanation of how you can configure the ESC (escape or other)
363sequence sent by the terminal's  cursor-up,  cursor-down, cursor-left,
364cursor-right, Home, End, Ins, and Del keys.
365
366The sequences can be set explicitly (in the following) or via CURSES
367The latter (CURSES) may fail to work because the sequences reported by
368CURSES may be different from the sequences sent by the keyboard.
369
370The default setting in the preferences file(s) is:
371#
372  Keyboard      NOCURSES (default)
373# Keyboard      CURSES
374#
375# KEY-CURSOR-UP          1b 5b 41
376# KEY-CURSOR-DOWN        1b 5b 42
377# KEY-CURSOR-RIGHT       1b 5b 43
378# KEY-CURSOR-LEFT        1b 5b 44
379# KEY-CURSOR-END         1b 5b 46
380# KEY-CURSOR-HOME        1b 5b 48
381# KEY-INSMODE            1b 5b 32 7e
382# KEY-DELETE             1b 5b 33 7e
383#
384
385
3863.6   SHARED VARIABLES
387======================
388Shared variables are perhaps a feature with which you may not be familiar.
389To work with certain software packages on the host computer, your program
390must follow a discipline. The variables involved with this discipline are
391listed below.
392
393Shared variables are represented by:
394offer to share          (⎕SVO),
395share var retraction    (⎕SVR),
396shared variable Control (⎕SVC),
397shared variable Query   (⎕SVQ),
398shared variable State   (⎕SVS)
399
400Using 'Shared variables' starts (forks) an independent helper process (APserver)
401to communicate with other APL processors.
402
403If you do not need all the above functions then you can (and should) prevent
404accidental starting of the APserver by setting SharedVars to Disabled. If
405SharedVars are disabled  then GNU APL starts a little faster and, of course,
406⎕SVO and friends won't work.
407
408The default setting in the preferences file(s) is:
409# The corresponding command line options are --SV and --noSV
410#
411  SharedVars    Enabled     (default)
412# SharedVars    Disabled
413
414
415
4163.7   LOGGING FACILITIES
417=========================
418By default, dynamic logging is disabled and the following settings have no
419effect.
420
421Logging is a facility that is occasionally used for debugging purposes. As
422a regular user, you should have no requirement to make use of dynamic logging.
423
424To enable dynamic logging, you must recompile the interpreter,specifying
425dynamic logging. The following three steps are required.
426
427  ./configure DYNAMIC_LOG_WANTED=yes <... other configure options>
428   make
429   make install (or try: src/apl)
430
431Otherwise you can specify the Logging facilities (numbered 1-43 or more)
432that can be enabled when the APL interpreter starts, This option can
433be used several times.
434
435Checkout the GNU-APL command ]LOG for available logging facilities
436
437The corresponding command line option is -l <num>
438
439 Logging 1
440 Logging 2
441 ...
442 Logging 37
443
444
4453.7    APL LIBRARIES
446====================
447
448GNU-APL uses library numbers from 0 to 9 in commands )LOAD, )SAVE, and )COPY,
449library 0, if enabled (see below) refers to our own collection of apl
450workspaces.
451
452For
453example 1:
454
455 )LOAD 1 workspace
456
457example 2:
458  Interpreter commands )IN and )OUT use library number 0 implicitly;
459  )LOAD, )SAVE, and )COPY use  library number 0 implicitly when no
460  library number is given.
461
462WARNING: Each library(directory) assigned to LIBREF-0 must be unshared and
463unique.
464
465For example, issuing the  ")CONTINUE" command, results in storing the CONTINUE
466workspace therein. Storing CONTINUE will overwrite the previously one. Sharing
467the default LIBREF-0 library among different users will likely to have
468very undesirable effects.
469
470Within the preferences file, the directories corresponding to the
471library numbers can be configured as shown below.
472
473Library numbers 3, 4, and 5 are used (and often overridden!) to store libraries
474that are shipped with GNU APL. )SAVEing or )DUMPing workspaces into these
475directories is therefore a bad idea.
476
477If GNU APL is used by different programmers on the same machine, then the
478following scheme for library reference numbers is recommended:
479
4800  for workspaces that are only accessible by one user (or, in GNU/Linux terms,
481   by the owner of the file), This directory typically exists somewhere below
482   $HOME.
483
4841  for workspaces that are only accessible by the group (normally the GNU/Linux
485   group to which the user belongs).
486
4872  for workspaces that are readable by every user on the machine.
488
489In other words: the library numbers 0, 1, and 2 correspond to the 'owner',
490'group', and 'all' permissions of the files respectively. However,
491GNU APL does not set these permissions based on the library numbers (because
492all this is only a recommended convention), and the users or group members
493are responsible for setting permissions on workspace files or directories.
494
495For GNU/Linux machines that are only used by a single user, the user may
496set up the directories libraries 0-2 and 6-9 as needed.
497
498The default setting in the preferences file(s) reflects the above scheme
499(although commented out) and only sets up the directories for libraries that
500are installed by GNU APL itself. For example (details may vary due to
501./configure options):
502#
503# LIBREF-0 /home/xyz/my-own-libs
504# LIBREF-1 /home/xyz/my-group-libs
505# LIBREF-2 /group/abc/other-libs
506  LIBREF-3 /usr/local/lib/apl/wslib3
507  LIBREF-4 /usr/local/lib/apl/wslib4
508  LIBREF-5 /usr/local/lib/apl/wslib5
509# LIBREF-6 /usr/lib/gnu-apl/lib-6
510# LIBREF-7 /usr/lib/gnu-apl/lib-7
511# LIBREF-8 /usr/lib/gnu-apl/lib-8
512# LIBREF-9 /usr/lib/gnu-apl/lib-9
513#
514
5153.8   READLINE HISTORY PARAMETERS
516=================================
517
518GNU APL can provide a history of lines entered by the user in immediate
519execution mode and ∇-edit mode.
520
521As shown below, the number of history lines and the location of the history
522file can be configured. Some users prefer to have only one history file (and
523in that case $HOME/.config/gnu-apl/apl.history might be a suitable file name).
524
525Other users prefer to have a history file in the current directory so that they
526can work in different APL projects in parallel and have separate histories,
527one for each project. In that case, .apl.history is a better choice for the
528file name, because the file is hidden and relative. This is also the
529default in the poreference file(s):
530
531READLINE_HISTORY_LEN  500
532READLINE_HISTORY_PATH .apl.history
533
534
535The history can serve two purposes: to recall lines that were previously
536entered and to list what was recently done (with the apl )HISTORY command).
537For the latter purpose it is normally convenient to show the new ⎕CR of a
538function  that was edited instead of the command that started the editor.
539The following  parameter controls whether the editor command (like ∇foo )
540or the new ⎕CR of the function shall be inserted into the history.
541
5423.9   EDITOR OPTIONS
543====================
544GNU-APL comes with a built-in editor. The following setting controls which
545of the lines that were entered in function editing mode are being inserted
546into the history.
547
548The default ('Modified') line setting causes only modified lines to be inserted.
549With that setting, one can cut-and-paste from a history file into an
550interactive session in order to 'redo' a function modification. The 'Always'
551setting restores the edited function regardless of its current state. The
552'Never' setting is useful for automated test scripts because it avoids
553redundancy in the log files produced.
554
555was opened for editing, but not changed and the new ⎕CR if the function was
556changed.
557
558The default setting in the preferences file(s) is:
559#
560# NABLA-TO-HISTORY  Never
561  NABLA-TO-HISTORY  Modified (default)
562# NABLA-TO-HISTORY  Always
563#
564
565
5663.10   BACKUP OPERATIONS
567========================
568In general, if one is modifying a workspace, it is best to load it and
569immediately resave it under a new name. The GNU-APL options available are to
570create a backup before a )SAVE or )DUMP WORKSPACE command.
571The workspace created by )CONTINUE is saved, but not backed up.
572
573The default setting in the preferences file(s) is:
574#
575BACKUP_BEFORE_SAVE  yes
576#
577
578To recover a backup workspace, refer to the LIBREF-0 option chosen
579Change to the directory indicated. Therein you will see the workspace
580you were using and the same workspace with a .bak  appended
581example: consider a recovery action for the 'meta' workspace
582In the directory referred to by LIBREF-0 you would note
583
584    meta.xml   meta.xml.bak
585
586For example,  delete the meta.xml or rename it to something else.
587Restore the original  meta.xml  rename the meta.xml.bak to meta.xml
588
589
5903.11    KEYBOARD LAYOUT
591=======================
592GNU APL assumes a particular layout of your keyboard (and assumes that you
593do your best to obtain that layout). That assumed layout is shown when you
594give the ]KEYB command.
595
596If your physical keyboard layout differs from the assumed keyboard for some
597reason, then the ]KEYB command will show the wrong layout. You can correct
598this difference providing your own keyboard file which (when specified) is
599shown by the
600
601     ]KEYB command instead of the assumed layout.
602
603You can choose between one of the files called 'keyboard1.txt' or keyboard2.txt.
604If your computer has a different keyboard layout, you may create your own
605version as keyboard.txt and revise the parameter as shown in the following:
606
607#
608# KEYBOARD_LAYOUT_FILE  /etc/gnu-apl.d/keyboard1.txt
609#
610
61112.0  Abnormal Termination
612==========================
613
614Normally you exit GNU APL by issuing the command )OFF. Hitting ^D
615(aka. end-of-input) once can be used to end the execution of most other
616programs, but has no effect in GNU APL.
617
618You can make GNU APL exit after a number of consecutive ^Ds  by specifying
619a (small) positive number as shown below Note that the interpreter will always
620exit if a large number of ^Ds (or EOFs) are read-in in rapid succession.
621NB: ^Ds may exist within a script and need not be entered via the keyboard.
622Setting the value to zero establishes the system default.
623
624#CONTROL-Ds-TO-EXIT 7
625 CONTROL-Ds-TO-EXIT 0
626
62713.0    Default Print Width
628===========================
629
630GNU-APL defaults the ⎕PW to 80
631
632If the terminal that you normally use has fewer or more columns, then you
633may want to specify a different initial value for ⎕PW below. A further option
634is the Windows Change (WINCH setting).
635
636With the WINCH-Setting option, on startup you can cause the Window Change
637(WINCH) signal (which is sent, for example, if the size of a window is
638changed) to set ⎕PW to the terminal width setting contained in the WINCH signal.
639
640The intended effect is that re-sizing of the terminal window will cause GNU-APL
641to adapt itself to the new window size. This appears to work on  GNU/Linux but
642may not work on other platforms! USE AT YOUR OWN RISK.
643
644# INITIAL-⎕PW 80
645# WINCH-SETS-⎕PW  Yes
646
647
648
64914.0  Security Settings
650=======================
651
652Under certain circumstances, for example if GNU APL is used as a CGI script
653for publicly accessible web pages, it may be desireable to disable certain
654capabilities that could otherwise be abused to access system resources via
655the GNU APL capabilities.
656
657The following lines show examples of GNU APL capabilities that can be
658disabled. The security settings are put into profile [1] which means that
659they only have an effect if:
660
661 (1) GNU APL was ./configured with SECURITY_LEVEL_WANTED=1, and
662 (2) the profile (i.e the -p command line option) with which GNU APL was
663     started matches the profile for which the setting was made (if any)
664
665If a disabled capability is being used then it will throw a DOMAIN_ERROR
666and the )MORE command will indicate a security violation. For example:
667
668#
669Profile 1
670  disable_Quad_SQL          yes    # disable ⎕SQL
671  disable_Quad_FIO          no     # do not disable ⎕FIO
672  disable_native_functions  yes    # disable A ⎕FX B (native fnctions)
673
674