(Hide table-of-contents)

Compare is part of the CategoryAplTree project.


Compare offers a couple of methods designed to compare functions, operators, scripts and files. It is also able to deal with SALTed files as well as acre component files. Since version 3.0 Compare inherits from the then created class CompareSimple. It therefore offers the same methods as CompareSimple. Additionally it offers a Merge feature.


There are three main functions:

Match (inherited from CompareSimple)

Match takes names of functions or operators or scripts and compares the source code. Note that taking the source code with ⎕CR or ⎕SRC and then them is not always going to work: white spaces as well as formatting problems might result in a 0 when the source code is in fact identicall. Match deals with these problems properly.

These (inherited from CompareSimple)

These accepts a varity of arguments listed underneath. According to its arguments it tries to figure out what your intention is and carries out the appropriate action.

Script / Script

Compare the two scripts. Note that you can specify name(s) as well as reference(s).

Script / name of a *.dyalog file

Compare the workspace script with the file.


This syntax requeires "Script" to be a SALTed script. In that case the workspace script is compared with its SALTed source file.

Name of a native file / name of a native file

Compare the two files.

Function name / function name

Compare two functions in the workspace.

Function name / name of a native file

Compare the function in the workspace with the file.

Function name / name of an `acre` component file

Compare the function in the workspace with the acre component file.

Function name

Namespace / namespace

Use method Merge for this.


Although this method works "only" on (named!) namespaces one can effectively use it to compare and merge workspaces by copying the two workspaces into two separate namespaces.

The Merge method presents a GUI with all the information one needs to know in order to perform the merge. Note that all functions, operators and scripts that do equal are on the = tab while all the others are on the tab. Normally one is interested only in the tab:


There are methods available that makes it easy to compare, modify, delete (either from the GUI or the workspace) and move functions, operators and scripts from one namespace to the other:


With version 3.2 a "Rubbish report" was added. This report lists all sort of stuff that is by many considered to be something that should not saved with a workspace. This is just an example:


Project Page

For bug reports, future enhancements and a full version history see Compare/ProjectPage

Version Information

Original author:





APLTree downloads

Using an APLTree member

  1. If you just want to consume (use) an APLTree member then you have several choices:

* Access it via FTP: with the user ID "anonymous". There is no password needed.

  • Note that accessing it via ftp allows you to download older versions as well while the dedicated download page offers just the most current version.
  • Download any release since the conversion to GitHub (2018-02) from GitHub. You can compile the URL by{name}


If you want to contribute to an APLTree project see HowToContributeToTheAPLTreeProject for details.

Get the full project

If for some reason you need access to, say, the test cases then you need to get more then just the script (or application) itself.

HowToContributeToTheAPLTreeProject explains how to get a project onto your local machine. Just ignore any additional steps.

Create a new APLTree sub project

In order to create a new APLTree project you need some advice. Ask KaiJaeger for help:


Compare (last edited 2013-06-10 12:49:33 by KaiJaeger)