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