Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
<h1 class="heading"><span class="name">Dyalog APL, RDP and VNC</span></h1>

Due to the different ways that Microsoft Windows and Linux/UNIX handle keyboards, it is not possible to use RDP or VNC or X-Windows from a Windows client to control a Dyalog APL session running under a UNIX window manager. In particular, all of the X-Window clients that Dyalog is aware of do not fully support xkb key mappings.
Due to the different ways that Microsoft Windows and Linux/UNIX handle keyboards, it is not possible to use RDP or VNC from a Windows client to control a Dyalog APL session running under a UNIX window manager.

It is possible to use VNC from a Linux client to connect to a remote Linux desktop and control an APL session running there; the keyboard support will however need to be added to the local machine.
24 changes: 14 additions & 10 deletions unix-installation-and-configuration-guide/docs/buildid.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,24 +19,28 @@ Both of these methods can be used for any file; they are useful and very fast wa

At the command line:
```
$ cd /opt/mdyalog/12.1/32/classic/p6
$ cd /opt/mdyalog/20.0/64/Unicode
$ ./BuildID dyalog
70a3446e
bce024d2
$ ./BuildID magic
0a744663
227a0227
```

In APL:
```apl
+2 ⎕NQ '.' 'GetbuildID'
70a3446e
magicfile←'/opt/mdyalog/12.1/32/classic/p6/magic'
+2 ⎕NQ '.' 'GetBuildID' magicfile
0a744663
)SH
magicfile←'/opt/mdyalog/20.0/64/unicode/magic'
+2 ⎕nq '.' 'GetBuildID' magicfile
227a0227

)sh
$ echo $PPID
15323
$ kill -11 $PPID
/opt/mdyalog/12.1/32/classic/p6/mapl[58]: 274434 Segmentation fault(coredump)
$ strings -a -n14 core | grep BuildID=
BuildID=70a3446e
$ apl: syserror 999.Segmentation fault (core dumped)
$ strings -a -n14 core.15323 | grep BuildID=
BuildID=bce024d2
BuildID=bce024d2
$
```
Original file line number Diff line number Diff line change
Expand Up @@ -29,11 +29,11 @@ Table: Commonly used Variables
|TERM<br/>APLK<br/>APLK0<br/>APLT<br/>APLTn|Define the input and output translate tables used by Dyalog APL. The values of APLK0 and APLTn override the values of APLK and APLT if set, and they in turn override the value of (Unicode) *default*, or (Classic) TERM if set.<p/><p/>APLK is for input translation, APLT for output translation.<p/><p/>These are used in conjunction with ..|
|`APLKEYS` `APLTTRANS`|Define the search path for the input and output translate tables respectively. If unset, the interpreter will default to `$DYALOG`; if `$DYALOG` too is not set, will default to `/usr/dyalog`.|
|`APLNID`|This variable is ignored by the UNIX versions of Dyalog APL: `⎕AI` and `⎕AN` pick up their values from the user's uid and `/etc/passwd`.|
|`APLSTATUSFD`|If set, this defines the stream number on which all messages for the Status Window appear. It is then possible to redirect this output when APL is started.<p/><p/>If unset, the output will appear in the same terminal window as the APL session, although it is not part of the session; such output can be removed by hitting SR (Screen Redraw - often defined to be Ctrl-L).|
|`APLSTATUSFD`|If set, this defines the stream number on which all messages for the Status Window appear. It is then possible to redirect this output when APL is started.<p/><p/>If unset, the output will appear in the same terminal window as the APL session, although it is not part of the session; such output can be removed by hitting <SR\> (Screen Redraw - often defined to be Ctrl-L).|
|`DYALOG_NETCORE`|This parameter is a Boolean value with a default value of 1. If set to 0, it disables the .NET interface.|
|`DYALOG_SERIAL`|This parameter contains your Dyalog serial number. This must be set to the serial number issued to you. If not set, then the software is unregistered. For the full licence terms and conditions, see [https://www.dyalog.com/uploads/documents/Terms_and_Conditions.pdf](https://www.dyalog.com/uploads/documents/Terms_and_Conditions.pdf) .|
|`DYALOG_SERIALFILE`|This parameter specifies the full path to the text file containing your Dyalog serial number.|
|`ENABLE_CEF`|This parameter is a Boolean value with a default value of 1. If set to 0, it disables the [Chromium Embedded Framework (CEF)](https://en.wikipedia.org/wiki/Chromium_Embedded_Framework) and at attempt to create an HTMLRenderer object (see [HTMLRenderer](../../../object-reference/objects/htmlrenderer)) will fail with an error message. See Note (below).|
|`ENABLE_CEF`|This parameter is a Boolean value with a default value of 1. If set to 0, it disables the [Chromium Embedded Framework (CEF)](https://en.wikipedia.org/wiki/Chromium_Embedded_Framework) and an attempt to create an HTMLRenderer object (see [HTMLRenderer](../../../object-reference/objects/htmlrenderer)) will fail with an error message. See Note (below).|
|`ERRORONEXTERNALEXCEPTION`|By default, any error when calling `⎕NA` will result in APL terminating; if `ERRORONEXTERNALEXCEPTION` is set to 1, then APL will instead generate an event 91: `EXTERNAL DLL EXCEPTION` . Be aware however that the workspace may become corrupted. This is best used when developing `⎕NA` code rather than in production.|
|`LIBPATH`|A suitable entry for the Conga libraries needs to be added to the `LIBPATH` variable if Conga is to be used. For more information see the *Conga Guide*.|
|`MAXWS`|Defines the size of the workspace that will be presented to the user when Dyalog APL is started. A simple integer value will be treated as being in KB. K, M and G can be appended to the value to indicate KiB, MiB and GiB (binary) respectively. If unset, the default value is 256M.|
Expand Down Expand Up @@ -91,7 +91,7 @@ Table: Miscellaneous Variables used by non-GUI Dyalog APL
|---|---|
|Variable|Notes|
|`APL_TEXTINAPLCORE`|If set with the value 1 the "Interesting Information" section is included in an aplcore file. Otherwise this section is omitted. By default the interpreter has this set to 0; it is the default APL script which sets it to 1.|
|`AUTOFORMAT` `TABSTOPS`|If `AUTOFORMAT` is 1, then control structures will be shown with indents, set at `TABSTOPS` spaces; the changes are reflected in the editor window when the `RD` (ReDraw) command key is hit.|
|`AUTOFORMAT` `TABSTOPS`|If `AUTOFORMAT` is 1, then control structures will be shown with indents, set at `TABSTOPS` spaces; the changes are reflected in the editor window when the <RD\> key is hit.|
|`AUTOINDENT`|If `AUTOINDENT` is set to 1, then if a line is added it is indented the same as the previous line.|
|`AUTO_PW`|Introduced in 13.0. With `AUTO_PW=0` `⎕PW` remains fixed at the size of the terminal window when APL was started. When set to 1, or unset, `⎕PW` alters each time the terminal window is resized.|
|`DYALOG`|This variable is defined in the supplied `mapl` startup script, and is used to form the default values for `APLKEYS`, `APLTRANS`, `WSPATH` etc. If it is necessary to identify the location of the Dyalog executable, then a more reliable method is to determine the full path name from the appropriate file in the `/proc/<process_id_of_APL_session>/` subdirectory or from the output of `ps`.|
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -64,41 +64,10 @@ EDITOR_COLUMNS_NAMESPACE=94 shows all columns (the first example in this section

Various values for EDITOR_COLUMNS_FUNCTION

<table>
<thead>
<tr>
<th>Value</th>
<th>Editor window appearance</th>
</tr>
</thead>
<tbody>
<tr>
<td>0</td>
<td><pre>fn1 a
:If a=1
b←2
:EndIf</pre></td>
</tr>
<tr>
<td>22</td>
<td><pre>[0] fn1 a
[1] :If a=1
[2] ○ b←2
[3] :EndIf</pre></td>
</tr>
<tr>
<td>26</td>
<td><pre> fn1 a
├ :If a=1
○│ b←2
├ :EndIf</pre></td>
</tr>
<tr>
<td>40</td>
<td><pre>[0] fn1 a
[1] ├ :If a=1
[2] ○│ b←2
[3] ├ :EndIf</pre></td>
</tr>
</tbody>
</table>
|Value|Editor window appearance|
|-----|------------------------|
|0 |<pre> fn1 a<br /> :If a=1 <br/> b←2<br /> :EndIf</pre>|
|22 |<pre>[0] fn1 a<br />[1] :If a=1 <br />[2] ○ b←2<br />[3] :EndIf</pre>|
|26 |<pre> fn1 a<br /> ├ :If a=1 <br />○│ b←2<br /> ├ :EndIf</pre>|
|30 |<pre>[0] fn1 a<br />[1] ├ :If a=1<br />[2] ○│ b←2<br />[3] ├ :EndIf<br></pre>|

97 changes: 61 additions & 36 deletions unix-installation-and-configuration-guide/docs/installation.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,48 +16,44 @@ or, in the case of AIX:
/opt/mdyalog/{{ version_majmin }}/<APLWidth>/<APLEdition>/<platform>
```

So for example, Dyalog APL Version {{ version_majmin }} 32 bit Unicode for POWER6 hardware on AIX will by default be installed into
So for example, Dyalog APL Version {{ version_majmin }} 64 bit Unicode for POWER9 hardware on AIX will by default be installed into
```apl
/opt/mdyalog/{{ version_majmin }}/32/unicode/p6
/opt/mdyalog/{{ version_majmin }}/64/unicode/p9
```

whereas on a Linux distribution the equivalent version would be installed in
```apl
/opt/mdyalog/{{ version_majmin }}/32/Unicode
/opt/mdyalog/{{ version_majmin }}/64/Unicode
```

This naming convention began with Version 12.0, and is planned to continue into the future. This ensures that all versions and releases of Dyalog APL can be installed in parallel.
This naming convention ensures that all versions and releases of Dyalog APL can be installed in parallel.

As part of installing Dyalog on Linux (including Pi) the script /usr/bin/dyalog is created; this is a copy of the $DYALOG/mapl script and can be used to start Dyalog APL. Note that this script will start the most recently installed version of Dyalog APL. This script is used in the target of the Dyalog APL icon on Linux desktops. If preferable, Dyalog can be started by calling the script mapl in the appropriate Dyalog installation directory.

When supplying updates or fixes, Dyalog issues a full installation image; this means that any file under the installation subdirectory may be overwritten. It is therefore strongly recommended that users do not alter issued files, as those changes could be lost if an update is installed.

Dyalog APL version
{{ version_majmin }} for Linux is supplied as a zip file which contains both a .deb- and a .rpm-based installation image.

## Installing under AIX

For each version of Dyalog APL on AIX three separate hardware-specific builds are created for each of the four combinations of 32 or 64 bit versions, Classic or Unicode editions. For version {{ version_majmin }} specific builds for p5, p6 and p7 are created.
For each version of Dyalog APL on AIX, separate hardware-specific builds are created for each of the four combinations of 32 or 64 bit versions, Classic or Unicode editions. For version {{ version_majmin }} specific builds for p9 are created.
```apl
$ su -
# cd /opt
## cpio -icdvum </tmp/dyalog-20090901-64-unicode-p6.cpi
## /opt/mdyalog/{{ version_majmin }}/64/unicode/p6/make_scripts
## cpio -icdvum </tmp/dyalog-unicode_20.0.51795_ppc64_p9.cpi
## exit
```

Dyalog APL is now installed. To run as any user, type
```apl
$ /opt/mdyalog/{{ version_majmin }}/64/unicode/p6/mapl
$ /opt/mdyalog/{{ version_majmin }}/64/unicode/p9/mapl
```

!!! note
Version {{ version_majmin }} is compiled on AIX6.1.
Version {{ version_majmin }} is compiled on AIX7.2.

## Installing on an RPM-based Linux Distribution
## Installing on intel machines
### Installing on an RPM-based Linux Distribution
```apl
$ unzip linux_64_15.0.26964_unicode.zip
$ sudo rpm --install linux_64_15.0.26964_unicode.x86_64.rpm
$ sudo rpm --install dyalog-unicode_20.0.51795_x86_64.rpm
```

Dyalog APL is now installed. To run as any user, type
Expand All @@ -66,32 +62,67 @@ $ dyalog
```
or
```apl
$ /opt/mdyalog/15.0/64/unicode/mapl
$ /opt/mdyalog/20.0/64/unicode/mapl
```

!!! note
- It may be necessary to use the --force flag or equivalent if an earlier version of Dyalog APL is to be installed on the same server as a later version. This is safe since the versions have no files in common.
- It has been noticed that in some circumstances the 32-bit installs fail on 64-bit operating systems due to a missing ncurses package. However, it appears that that package is indeed installed. What is required however is the 32-bit version: once installed, Dyalog APL will then install.

## Installing on a DEB-based Linux Distribution
### Installing on a DEB-based Linux Distribution
```other
$ sudo apt install dyalog-unicode_20.0.51795_amd64.deb
```
Dyalog APL is now installed. To run as any user, type
```other
$ dyalog
```
or
```other
$ /opt/mdyalog/20.0/64/unicode/mapl
```

!!! note
- It may be necessary to use the --force flag or equivalent if an earlier version of Dyalog APL is to be installed on the same server as a later version. This is safe since the versions have no files in common.
- It has been noticed that in some circumstances the 32-bit installs fail on 64-bit operating systems due to a missing ncurses package. However, it appears that that package is indeed installed. What is required however is the 32-bit version: once installed, Dyalog APL will then install.

## Installing on arm machines
### Installing on an RPM-based Linux Distribution
```apl
$ sudo rpm --install dyalog-unicode_20.0.51795_aarch64.rpm
```

Dyalog APL is now installed. To run as any user, type
```apl
$ dyalog
```
or
```apl
$ /opt/mdyalog/20.0/64/unicode/mapl
```

!!! note
- It may be necessary to use the --force flag or equivalent if an earlier version of Dyalog APL is to be installed on the same server as a later version. This is safe since the versions have no files in common.


### Installing on a DEB-based Linux Distribution
```other
$ unzip linux_64_15.0.26964_unicode.zip
$ sudo dpkg --install linux_64_15.0.26964_unicode.x86_64.deb
$ sudo apt install dyalog-unicode_20.0.51795_aarch64.deb
```
Dyalog APL is now installed. To run as any user, type
```other
$ dyalog
```
or
```other
$ /opt/mdyalog/15.0/64/unicode/mapl
$ /opt/mdyalog/20.0/64/unicode/mapl
```

!!! note
- It may be necessary to use the --force flag or equivalent if an earlier version of Dyalog APL is to be installed on the same server as a later version. This is safe since the versions have no files in common.
- If dpkg generates dependency errors, run `apt-get install -f` (as root)
- It has been noticed that in some circumstances the 32-bit installs fail on 64-bit operating systems due to a missing ncurses package. However, it appears that that package is indeed installed. What is required however is the 32-bit version: once installed, Dyalog APL will then install.


## Installing in a non-default location

It is possible to install Dyalog APL for UNIX in non-default locations, without the need for root privileges.
Expand All @@ -118,41 +149,35 @@ For .rpm based Linux distributions
```other
rpm2cpio installation_image.rpm | cpio -icdvum
```
For all UNIXes:
```other
find opt/mdyalog -name make_scripts -exec {} \;
```

This last step generates the mapl script; should you chose to move the installation directory, it will be necessary to re-run the make_scripts script so that the environment variable $DYALOG is set correctly.

## Deinstalling Dyalog APL

In the following examples, it is assumed that only Dyalog APL 14.0 64-bit Unicode is installed on the server; the commands to delete directories will need to be more specific if multiple versions of Dyalog APL are installed.
In the following examples, it is assumed that only Dyalog APL 20.0 64-bit Unicode is installed on the server; the commands to delete directories will need to be more specific if multiple versions of Dyalog APL are installed.

Should it be necessary to deinstall Dyalog APL, then the process is:

## Deinstalling under AIX
### Deinstalling under AIX
```apl
su -
cd /opt
rm -rf mdyalog/14.0
rm -rf mdyalog/20.0
```

## Deinstalling on an RPM-based Linux Distribution
### Deinstalling on an RPM-based Linux Distribution
```other
su -
rpm -e dyalog.32.classic-14.0-20090901
rpm -e dyalog-unicode_20.0.51795_x86_64
cd /opt
rm -rf mdyalog/14.0
rm -rf mdyalog/20.0
exit
```

## Deinstalling on a DEB-based Linux Distribution
### Deinstalling on a DEB-based Linux Distribution
```other
sudo su -
apt-get purge dyalog-unicode-140
apt-get purge dyalog-unicode-200
cd /opt
rm -rf mdyalog/14.0
rm -rf mdyalog/20.0
exit
```

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,4 +17,4 @@ The server version has the same functionality as the development version, other

There are different licences associated with the development and server versions, which affects how each might be distributed. For more information, please contact sales@dyalog.com.

All examples are written assuming that the Korn shell is being used.
All examples are written assuming that the bash shell is being used.
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ In order to support Dyalog APL for UNIX in a console/terminal window under a Lin

Dyalog submitted APL Language keyboard support to Xorg at the end of 2011; most Linux distributions released after mid-2012 have the Dyalog APL keyboard support included with the distribution. Such distributions include openSUSE 12.2, Ubuntu 12.10 and Fedora 17.

Support for the Key character was submitted to Xorg in mid-2014; if your distribution does not support this character, contact Dyalog support for assistance.
Support for the Behind character was submitted to Xorg in late-2024; if your distribution does not support this character, contact Dyalog support for assistance.

Details of how to configure the keyboard under KDE4 appear below; keyboard support for other window managers (such as Gnome and Unity) is in a state of flux. The latest information about the process of installing and configuring Dyalog APL keyboard support for such environments can be found at:

Expand Down
Loading