Frequently Asked Questions
These pages contain answers to Frequently Asked Questions regarding Dyalog products and services.
August 2010
We are in the process of moving the FAQs into the Dyalog Forums, which can be found
here. You do not need to be a member
of the Dyalog Forums to read articles, but only members can post articles and comments.
Categories
Troubleshooting Error Messages
Installation and Configuration Issues
Error message: Could not modify stub.dll
The error message "Could not modify stub dll (Error: failed to load runtime engine)" means that Dyalog APL is unable to find the file named dyalognnn[rt].dll (where nnn is a set of digits which will vary according to the Dyalog version). This file needs to be on the system path (names in the PATH environment variable).
Under Windows XP, you can check the definition of PATH and other environment variables by going to Control Panel, System, Advanced, Environment Variables.
Version 10.1:
The installer should create an environment variable named DYALOGNETDIR101 and add %DYALOGNETDIR101%; to the path. Verify that DYALOGNETDIR101 points to the Dyalog "dotnet" folder and that %DYALOGNETDIR101% is listed in the PATH.
Version 11.0:
The version 11.0 installation adds a folder to the PATH without using an intermediate environment variable. Verify that the Dyalog "bin" folder is in your system PATH.
By default, the name of this folder is: C:\Program Files\Dyalog\Dyalog APL 11.0\bin\
Error message: Could not load .Net interface library bridge__.dll. (Error 0x0000007e)
For Version 11.0:
The default 11.0 path is:
C:\Program Files\Dyalog\Dyalog APL 11.0\bin\
If you installed to the default directory this path should be in your system path. Verify this by checking the PATH variable in Control Panel, System, Advanced, Environment Variables, System Variables.
Verify that the file bridge110.dll is in the above directory AND in the Global Assembly Cache (\windows\assembly).
For Version 10.1:
Please check PATH and DYALOGNETDIR101 variables in Control Panel, System, Advanced,Environment Variables, System Variables.
DYALOGNETDIR101 should be C:\Dyalog101\dotnet if c:\dyalog101 is where you installed the APL.
Path should have %DYALOGNETDIR101%; in it.
For example, your Path might look like this:
%DYALOGNETDIR101%;%DYALOGNETDIR%;.;%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem
Also, verify that the file bridge11.dll is in the above directory AND in the Global Assembly Cache.
Error message: File or assembly name bridgennn, or one of its dependencies, was not found.
Version 10.1
If you move a Dyalog-based assembly to a different machine than the one on which they were created, and the Dyalog development environment is not installed on that machine, there are 3 files that need to be installed on the target machine:
dyalognet.dll needs to be installed into the Global Assembly Cache (c:\windows\assembly)
bridge101.dll needs to be installed into the GAC and must be on the system PATH
dyalog101rt.dll needs to be installed on the system PATH (or dyalog101.dll if the assembly is not exported as a RUNTIME assembly)
You should also make sure you have the latest versions of these dlls, which can be obtained from the dyalog DSS website. www.dyalog.com/dss/dss.htm
Version 11.0
As above, except that the digits at the end of file names should be 110 rather than 101.
Error IA8
This error occurs during the setup of the APL samples as IIS Virtual Directories. The setup program is trying to add them to the "Default Web Site" - on your computer, there is obviously no such item. You will have to set these up manually as described in Chapter 5 of the .NET Interface Guide.
How do I specify MAXWS for bound Executables?
You can specify the MAXWS parameter by putting
maxws=32000
in the command line field of the export dialog.
Why can't I set MAXWS to use all the memory in my 32-bit system?
Under Windows, each and every process is given an address space of 2GB. This is not the same as the amount of memory it will occupy, but you can think of it as the maximum amount of memory it could use. The distinction between address space and memory is an important one. Address space is mapped to memory (physical memory plus page space) by Windows. Whilst address space is contiguous (0 to 2GB), the memory it is mapped to is not.
The workspace associated with any Dyalog APL application has to be allocated a contiguous address space. The size of workspace that you can obtain is therefore ultimately restricted to the size of the largest area of contiguous address space in the process.
Windows processes typically consist of a main program plus any number of DLLs (and their data) that get loaded dynamically on demand. DLLs do not necessarily get loaded neatly into a process at progressively incrementing addresses, instead they get loaded in a way that tends to fragment the address space into a series of chunks. Fragmentation of the address space will limit the maximum workspace available.
Note that a Dyalog APL mapped file also requires contiguous address space, and the size of file you can map is limited to the maximum contiguous area of address space that is currently unallocated within the process.
A dyalog.exe or dyalogrt.exe process is entirely controlled by Dyalog APL.
When the process starts, it reserves an amount of contiguous address space for the workspace which is defined by the MAXWS parameter. If there is insufficient contiguous address space available in the process. APL will issue an appropriate error message and terminate. In practice, fragmentation of the address space by Windows DLLs reduces the maximum workspace available to Dyalog APL to around 1.6GB.
To get a larger contiguous address space for a larger MAXWS, you can use either
ListDlls or
Rebase (which is part of the Windows SDK).
Some hints on rebasing dlls:
Make a safe backup copy of the dll first.
You cannot rebase a dll while it is in use--for example, close dyalog.exe if you wish to rebase dyares32.dll.
Various sources seem to indicate that the "best" range to rebase DLLs is 0x60000000 - 0x68000000.
If the badly placed dll is a system or device dll, you may need to do this:
Start Windows in Safe Mode with Command Prompt Enter commands:
cd \tmp
copy c:\windows\system32\xpsp2res.dll c:\tmp
rebase -b 0x67000000 xpsp2res.dll
move c:\windows\system32\xpsp2res.dll c:\
copy xpsp2res.dll c:\windows\system32
Restart Windows.
Vista Compatibility
Dyalog APL 12.0 and later
Dyalog APL Version 12.0 and later are fully compatible with Windows Vista, however if you are running with User Account Control enabled, you will need to be a Power User or Administrator, or you will need to disable UAC when you install Dyalog APL. See http://msdn2.microsoft.com/en-us/library/aa480152.aspx#appcomp_topic4 for details.
Dyalog APL Version 11.0.2
Dyalog APL Version 11.0.2 is compatible with Windows Vista. There are a handful of know issues with running Dyalog under Windows Vista:
Installation
If you are running with User Account Control enabled, your user will need to be a Power User or Administrator in order to install Dyalog (see http://msdn2.microsoft.com/en-us/library/aa480152.aspx#appcomp_topic4 for details.
APL Font
Windows Vista fails to display some of the APL symbols if you use the standard fonts shipped with Dyalog. The font Dyalog Symbol can be used instead. This font looks best with ClearType enabled.
Help Files
Windows Vista does not support the 32-bit .HLP file format used for Dyalog on-line help files. Patched version 11.0 systems dated March 20th 2007 or later will use help
files in Compiled HTML format (.CHM), if these are present in the Help folder under the main Dyalog program folder (the same location as the .HLP files).
Click on the following link to download the CHM Help Files.
Note that - because they can contain or link to executable content - CHM files are viewed as a security risk - especially after recent patches to Vista. Accessing them from remote locations, or even after downloading them - can be difficult. We know of two Microsoft Knowledgebase issues which discuss problems:
CHM files on the intranet or internet cannot be opened (fix requires a registry change):
http://support.microsoft.com/kb/896054
Downloaded CHM files cannot be opened (solution is to right-click the CHM file, and then click properties, Click Unblock):
http://support.microsoft.com/kb/902225/
How do I Install a v11.0 ASP.NET Application on a "Clean Machine"?
1) Use IIS to create a new Application, e.g. "MyApp11" in folder "c:\myapp11"
2) Incorporate the following content into the file c:\myapp11\web.config
<configuration>
<system.web>
<!-- DYNAMIC DEBUG COMPILATION
Set debug="true" to enable debugging and bind to dyalog110.dll.
Otherwise, setting this value to false will bind to dyalog110rt.dll which will prohibit debugging.
-->
<compilation debug="false">
<compilers>
<compiler language="dyalog" extension=".dyalog"
type="Dyalog.Compiler.DyalogCodeProvider,dyalogprovider,
Version=11.0.1.0,Culture=neutral,PublicKeyToken=eb5ebc232de94dcf"/>
<compiler language="dyalog" extension=".dws"
type="Dyalog.Compiler.DyalogCodeProvider,dyalogprovider,
Version=11.0.1.0,Culture=neutral,PublicKeyToken=eb5ebc232de94dcf"/>
</compilers>
</compilation>
</system.web>
</configuration>
3) Copy the files bridge110.dll, dyalognet.dll and dyalogprovider.dll to c:\myapp11\bin
4) EITHER
a. Copy the files dyalog 110rt.dll and dyalogc.exe to c:\myapp11\bin
b. Add c:\myapp11\bin to the system PATH environment variable.
5) OR
a. Make a directory c:\dyalog110 and copy the files bridge11.dll, dyalognet.dll dyalog101rt.dll , and dyalogc.exe to c:\dyalog110
b. Add c:\dyalog110 to the system PATH.
How do I Install a v10.1 ASP.NET Application on a "Clean Machine"?
1) Use IIS to create a new Application, e.g. "MyApp" in folder "c:\myapp"
2) Incorporate the following content into the file c:\myapp\web.config
<configuration>
<system.web>
<!-- DYNAMIC DEBUG COMPILATION
Set debug="true" to enable debugging and bind to dyalog101.dll.
Otherwise, setting this value to false will bind to dyalog101rt.dll which will prohibit debugging.
-->
<compilation debug="false">
<compilers>
<compiler language="apl" extension=".apl"
type="Dyalog.Compiler.APLCodeProvider,aplprovider,
Version=0.0.0.0,Culture=neutral,PublicKeyToken=eb5ebc232de94dcf"/>
<compiler language="apl" extension=".dws"
type="Dyalog.Compiler.APLCodeProvider,aplprovider,
Version=0.0.0.0,Culture=neutral,PublicKeyToken=eb5ebc232de94dcf"/>
</compilers>
</compilation>
</system.web>
</configuration>
3) Copy the files bridge11.dll, dyalognet.dll and aplprovider.dll to c:\myapp\bin
4) EITHER
a. Copy the files dyalog 101rt.dll and aplc.exe to c:\myapp\bin
b. Add c:\myapp\bin to the system PATH environment variable.
5) OR
a. Make a directory c:\dyalog101 and copy the files bridge11.dll, dyalognet.dll dyalog101rt.dll , and aplc.exe to c:\dyalog101
b. Add c:\dyalog101 to the system PATH.
How do I control which version is used to open a .DWS file?
When Dyalog is installed the installer associates the the most recently installed Dyalog development interpreter with a number of file extensions. Those extensions are ".dws" ".dyalog" and ".dyappp". If you wish to use a different program (for example, and older version of Dyalog) to open these files from the Windows explorer then you will need to modify the registry.
For example, for the .dws file extension :-
1) Start regedit
2) Navigate to HKEY_CLASSES_ROOT\dwsfile\shell
3) Edit the values of the "Open\command" and "Open (do not start)\command" keys.
See the following page which illustrates the registry location.

For the ".dyalog" extension edit the section HKEY_CLASSES_ROOT\dyalogfile\shell, and for the ".dyapp" extension, HKEY_CLASSES_ROOT\dyappfile\shell
How do I enable debugging of my ASP.NET application?
ASP.NET does not typically allow access to the desktop for any of its internal components. Follow these steps to allow access to the desktop for the Dyalog session :-
1) Open "Control Panel" and then open "Administrative Tools"
2) Open the services applet
3) Find the "IIS Admin Service" entry, right click and select "Properties"
4) Select the "Log On" tab
5) Make sure that "Local System account" is selected and that "Allow service to interact with desktop" is checked.

6) Click the OK button
7) Repeat stages 3-6 for the "World Wide Web Publishing Service"
In addition, your web.config file needs to be configured to use the development versions of the Dyalog DLLs.
1) Open your web.config file in a suitable text or XML editor
2) Locate the "compilation" section
3) Ensure that the "compilation" section includes debug="true", as shown below
<compilation debug="true" batch="false">
4) Save the web.config file
Finally, the username for the IIS process itself needs to be configured.
1) Open "C:\Windows\Microsoft.NET\Framework\v2.0.50727\CONFIG\machine.config" in a suitable text or XML editor.
2) Find the "processModel" section which should look like:
<processModel autoConfig="true" />
and change it to:
<processModel autoConfig="true" userName="SYSTEM" />
And at last:
1) Restart the machine
How do I run Dyalog from or use .Net assemblies on a network drive?
The .Net Framework does not, by default, permit the execution of assemblies that are located on network drives. This means that if you install Dyalog on a network drive the .Net interface may not function correctly. In addition runtime applications that use .Net may not work if you have bridge*.dll and/or dyalognet.dll installed on a network drive.
The .Net Framework includes a utility called caspol that can be used to change the permissions for assemblies on network drives.
The expression
caspol.exe -m -ag 1.2 -url file://share/* FullTrust
gives FullTrust to all assemblies located on the //share network machine
For more details, see http://blogs.msdn.com/shawnfa/archive/2004/12/30/344554.aspx
or http://msdn.microsoft.com/en-us/library/zdc263t0(VS.80).aspx.
|