Navigation  without Java Scripts

Visual Prolog Technical Support

Known Problems in Visual Prolog 5.1, Build 565

In the list of Known problems, we have documented  the problems we know about in Visual Prolog 5.1, build 565.
Please, see the following sections for detailed information:

Setup
Compiler
PROLOG.LIB
Visual Development Environment (VDE)
Visual Programming Interface (VPI)
Debugger
Linkers
Visual Prolog Packages
PDC's Document Handling Package
Report Package
SOCKBIND
Examples

We are working to correct these problems in one of the future versions of Visual Prolog.

Known Setup Problems

A problem with long filenames under OS/2 installed on a FAT hard disk
Setup program requires an Internet browser to be installed at a computer
CTL3D32.DLL problem

A problem with long filenames under OS/2 installed on a FAT hard disk

Some files in the Foreign, SOCKBIND, HTML and WWW directories have long filenames that are not supported by OS/2 installed on a  hard disk with FAT formatting.

Setup program requires an Internet browser to be installed at a computer

The Visual Prolog setup includes HTML files. You need to have an Internet browser (NETSCAPE or Microsoft Explorer) installed to read these files.

Workaround

If an Internet browser is not installed at your computer, run a setup program from the Install directory. We recommend you to install a browser, because HTML files supplied with Visual Prolog 5.1 include useful and important information.

CTL3D32.DLL problem

While  Visual Prolog installation, some users receive the following error message: "The application uses CTL3D32.DLL, which is not the correct version. This version of CTL3D32.DLL is designed only for Windows NT systems".

Version Info

The information applies to all versions of Visual Prolog.

Cause

The Visual Prolog installation program uses a service called CTL3D32.DLL that works under Windows 95, 98, and NT.
Unfortunately, before Visual Prolog was installed, another installation program had upgraded this DLL at user's computer to one that works only under Windows NT. This upgrade was the reason of the error message.

Workaround

VIP Setup program searches for CTL3D32.DLL in the Windows system directory.

  1. You need to find, where CTL3D32.DLL is located in your system directory (e.g. under Windows NT it is located in ..\<Windows_root>\System32 directory).
  2. Sometimes several copies of CTL3D32.DLL.DLL, installed by various programs, can be found in different subdirectories.
    If you find more than one occurrence, check registry move all them to another location, and returning one by one define what is used really.
  3. Compare its date with the dates of other Windows DLLs. Is it the same?
  4. Replace the CTL3D32.DLL for Windows NT with a correct one. There are several ways to do this.
  1. Visual Prolog contains CTL3D32.DLL in ..\<VIP_root>\BIN\WIN\DLL subdirectory, but it does not copy it to the system location automatically. You can copy this DLL to the system directory.
  2. You can restore the DLL from a back up copy of your system, or from Windows 98 distribution.

Known Compiler Problems

Last call optimization does not work for functions and Class methods
An error in using of a non-static object
Bug in the "Strong Type Conversion" check

Last call optimization does not work for functions and Class methods

Please be aware of this. It is going to be implemented in one of the following versions.

An error in using of a non-static object

Since the current version of Visual Prolog does not check whether an object exists, an attempt to use a non-static class member (a predicate or a fact) after deleting of an appropriate object causes an error.

Example
CLASS cA
   PREDICATES
      p1
ENDCLASS
   FACTS - base1
     f1(cA)
IMPLEMENT cA
CLAUSES
    p1.
ENDCLASS
GOAL
      A = cA::new,
      assert(f1(A)),
      A:delete,
      f1(OA),
      OA:p1. %GPF

Bug in the "Strong Type Conversion" check.

Sometimes the Compiler mistakenly generates the warning 248 "Integral data type conversion is not strongly compatible" in the case, when a "smaller" type (for example, short) is converted to a "larger" numeric type (for example, real).

The Visual Prolog Compiler makes this checking, when the "Strong Type Conversion Check" compiler option is switched ON in VDE's Compiler Options dialog, or -ustr+ option is specified for the command line compiler.

Example

The following program gives two incorrect 248 warnings:

predicates
  real_pred(real)-(i)
clauses
  real_pred(7). % No warnings should be given here !
goal
  X = val(short,7),
  real_pred(X). % No warnings should be given here !

Known Problems in the PROLOG.LIB

The Visual Prolog external database has different formats in 16 and 32 bit
Problems of trapping exceptions in  DLL's.
Bug in the storage/11 predicate

The Visual Prolog external database has different formats in 16 and 32 bit

This is inconvenient and will be changed in a future version. One of the results is that the 16bit VDE uses one .VPR file for a project and the 32bit VDE uses another format. The program VIPCONVERT must be used to switch between the platforms.

Problems of trapping exceptions in  DLL's.

If a GPF or other exception happens in a prolog .DLL, which is called from a Prolog main program, and linked in statically, this exception is trapped in the main program (but not as expected in the .DLL). After this exception is trapped wrongly you should not make further calls to the .DLL, but instead close down your application.

There are no problems when calling a .DLL dynamically, and in properly debugged programs, this situation will not happen.

Bug in the storage/11 predicate

When the storage/11 predicate  in the Visual  Prolog DLL is called from Visual Basic or Delphi application, the predicate returns a wrong value for UsedStack.

Known Problems in the VDE

Compiling of unmodified non-Prolog modules
Problem with directories and files, which names contain spaces
Conversion of HAM to 5.0 format is irreversible
Problem with a non-existing Project name in  a Command line
Using Ctrl-X, Ctrl-C or Ctrl-V in the Menu Editor
Problem in the multiprogrammer mode
A problem with  Visual Studio 6.0  resource compiler.
Bug with saving changes in a topic, when  "AutoSave Project on Exit" option in the Environment dialog is turned off.
A problem with read-only .PRJ files
Help Maker: a problem with importing  .RTF files containing graphics
HCP Help Compiler hangs Visual Prolog if root VIP directory name is longer than 8 characters
The "Help Topics" window is not initially activated when WIN32 on-line Help is run.

Compiling of unmodified non-Prolog modules

A call of the project creating procedures ("Build"; "Run" or "Debug") causes compiling of unmodified modules if a project includes non-Prolog modules (C, CPP), for which OBJ-file has been created and "Generate Debug Information" option in the Compiler Options Dialog is ON.

Problem with directories and files, which names contain spaces

The VDE, the linker and the compiler have problems with using external  compilers and linkers placed in directories, which names contain spaces.

Visual Prolog does understand quoted filenames like "c:\program files\msvc\bin\link.exe" but the problem is that the PATH to a compiler is set in one place, and  utility names are set in other places. This creates problems in   concatenating of the two items.

Workaround

Things work if you manually modify the scripts. A little trick you might use, if you have some tools installed under PROGRAM FILES\, is that you instead refer to the short DOS name, e.g.  "PROGRA~1".

Recommendations

Do not  install Visual Prolog into the directories, which names contain spaces.
Do not use the directories with such names in your projects if you need to refer to the PATH.

Conversion of HAM to 5.0 format is irreversible

After conversion of .HAM file to the 5.0 format, it is not possible to go back As soon as VIPCONV has converted a .HAM file to the new 5.0 format, it can not be converted back to the 4.0 format.

Problem with a non-existing Project name in  a Command line

When the VIP.EXE (both 16 and 32 bit) is started with a non-existing .VPR filename in a Command line, it does not report an error, but loads the last loaded project instead.

Using Ctrl-X, Ctrl-C or Ctrl-V in the Menu Editor

Ctrl-X, Ctrl-C or Ctrl-V do not work if you are editing a constant prefix. in the Menu Editor.
Workaround
Use the right-mouse pop-up menu.

Problem in the multiprogrammer mode

The Code Expert setting for Automatic update of Source code of a resource is not saved, when there is no changes in a resource (dialog, menu etc.) if a project was opened from a .PRJ file.

A problem with  Visual Studio 6.0  resource compiler.

Visual Studio resource compiler rc.exe in Visual Studio 6.0 has been moved to the location different from the location in previous versions.

This means that if a Visual Prolog programmer specifies, that the Code Generator should generate *.RC and *.H files for the resources in his project, and uses Visual Studio 6.0 resource compiler, build scripts do not work correctly.

Workaround

It is necessary to change a rule for resource compilation manually with the help of the Options|Project|Make Options|Rules menu item. For example:

rc->res:$(CDIR)..\common\msdev98 \BIN\RC -r -I$(CDIR)INCLUDE\ -fo $(OBJDIR)$*.RES $(OBJDIR)$*.RC

Remark: The red part is added.

Bug with saving changes in a topic, when  "AutoSave Project on Exit" option in the Environment dialog is turned off.

When "AutoSave Project on Exit" option in the Environment dialog is turned off, and a topic name, a topic context string, or topic content were changed, these changes are saved automatically without a warning.

A problem with read-only .PRJ files

If a user opens a project from a read-only .PRJ file, no message describing that this file is read-only is generated.

Help Maker: a problem with importing  .RTF files containing graphics

The current version of the Visual Prolog does not allow to import the .RTF files containing graphics. An attempt to import .RTF file with embedded objects causes the necessity to restart Visual Prolog. Nevertheless, it does not mean you cannot import file with graphics at all, because it is possible to replace embedded objects in the source .RTF file with the references to image files.

HCP Help Compiler hangs Visual Prolog if root VIP directory name is longer than 8 characters

HCP Help Compiler hangs Visual Prolog during HCP.EXE DOS session while compiling Help if root VIP directory name is more than eight characters.

The "Help Topics" window is not initially activated when WIN32 on-line Help is run.

"Help Topics" window can be activated only by clicking on the "Help Topics" button in the Help window.

Workaround

Please see a detailed description.

Known Problems in the VPI

EasyWin does not support C as main Target
Modeless dialog ‘Tab’ problem.
pict_Open causes window caption and main menu  flickering
vpi_CloseProcess cannot close 16-bit application under WinNT
dlg_ChooseColor does not show input custom colors
Problem in printing of color bitmaps by a black-and-white printer

EasyWin does not support C as main Target

Modeless dialog ‘Tab’ problem.

Tab does not work for the modeless dialogs, which have a modal dialog as a parent.

pict_Open causes window caption and main menu  flickering

Version Info

The information applies to  Visual Prolog 5.1 and previous versions.

vpi_CloseProcess cannot close 16-bit application under WinNT

Bug exists only for WIN NT and only for GUI 16-bit application.
When you run 16-bit GUI application from 32-bit VPI application using vpi_CreateProcess, and then try to close 16-bit application by vpi_CloseProcess, nothing happens, i.e. 16-bit application is not closed.

dlg_ChooseColor does not show input custom colors

Since dlg_ChooseColor does not show input custom colors, it is impossible to edit a custom color.

Problem in printing of color bitmaps by a black-and-white printer

The quality of printed images is low.

Known Problems with Linkers

An internal error while importing DLL functions
Visual Studio 6.0 uses a new format for Import libraries
Build problem when an external linker is used
The PDC Link Editor has no option to set the stacksize

An internal error while importing DLL functions

Importing of DLL functions with extensions different from .DLL (e.g. winspool.drv) causes an internal error.

Visual Studio 6.0 uses a new format for Import libraries

Workaround:

Use the compatibility option in Visual Studio to generate 5.0 compatible import libraries.

Build problem when an external linker is used

The build process will end with the message "Project not built" in a non-DOS mode if an external linker  output includes the following strings: "fatal" or "error".

Workaround:

Avoid using of file and directory names including sequences  "fatal" or "error" if you are going to use external linkers.

The PDC Link Editor has no option to set the stacksize

Workaround:

It is possible to edit the STACKSIZE parameter in a DLL with the help of MS EDITBIN.EXE.

Known Problems with the Debugger

The values of output variables are sometimes not displayed

The values of output variables are sometimes not displayed while using the predicates findall and not.

Debugger  immediately jumps to the continue point with no visual indication of a fail.

See also:

Known Problems in VIP packages  | News | Solved Problems | Upgrade Notes |Patches | Technical Notes | Support_FAQ