Navigation  without Java Scripts

Visual Prolog Knowledge Base

In this section, we have documented the problems we know about in the supported versions of Visual Prolog. Often we provide steps to work around the problem. If a bug is fixed in a new release, information about this fix is published in the "Version Info" section of the article describing the problem.

Note, please, that Visual Prolog 5.1 is supplied in two major builds: build 564 and build 565. Some of the problems found in Visual Prolog 5.1, build 564, were solved in the build 565. To check the build of your copy, use the Help | About command.

Please, see the following sections for detailed information:

Setup
Language
Visual Development Environment (VDE)
Visual Programming Interface (VPI)
Debugger
Linkers
Visual Prolog Packages
PDC's Document Handling Package
Report and Own_Draw Packages
Tree Package
TreeBrowser Package
SOCKBIND
GRID Package
Examples
Interfacing with other Languages
SCO and Linux Versions

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

See also:

How to Find Answers Online? | Support Questions and Answers | Upgrade Notes | Patches | Known Problems in Visual Prolog 5.0 | Known Problems in Visual Prolog 5.02 | Technical Notes | Write Us

Setup Problems

Setup program requires an Internet browser to be installed at a computer (Visual Prolog 5.1, build 564) 
Installation problem under Netscape Navigator (Visual Prolog 5.1, build 564)
In some cases bitmaps in the Setup wizard dialogs are corrupted (Visual Prolog 5.1, build 564, and previous versions)
A problem with long filenames under OS/2 installed on a FAT hard disk
A problem with installation of Visual Prolog into a directory, which name includes spaces (OS/2 platform, HPFS hard disk)
Error message "Cannot write to file" while installation (Visual Prolog 5.1, build 564)
CTL3D32.DLL problem

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

FIX

When AutoRun feature is ON under Windows, the installation process begins with the presentation of the "Introduction to Visual Prolog" (Intro.HTM) and other HTML files. You need to have an Internet browser (Netscape Navigator or Microsoft Explorer) installed to read these files. If a browser is missed, your system will try to open these files with the help of other programs.

Version Info

The information applies to Visual Prolog 5.1, build 564 only.

Workaround
  1. If an Internet browser is not installed at your computer, it is possible to run a setup program from the  full\vprol\Install directory.

To install Windows version of Visual Prolog, run   full\vprol\Install\setup.exe.

To install OS/2 version of Visual Prolog, run   full\vprol\Install\setupos2.exe.

  1. We recommend you to install a browser, because HTML files supplied with Visual Prolog 5.1 include useful and important information.

Installation problem under Netscape Navigator

FIX

Clicking on the "Install Visual Prolog" button in the "Installation Notes" does not cause installation under Netscape Navigator.

Version Info

The information applies to Visual Prolog 5.1, build 564 only.

Workaround

It is possible to run a setup program from the  full\vprol\Install directory.

To install Windows version of Visual Prolog, run   full\vprol\Install\setup.exe.

To install OS/2 version of Visual Prolog, run   full\vprol\Install\setupos2.exe.

Error message "Cannot write to file" while installation

FIX

The error message "Cannot write to file" can be caused by a corrupted file.

Version Info

The information applies to Visual Prolog 5.1, build 564.

Workaround

Visual Prolog does not install any .DLLs, modifies no .INI files, does not alter registry, etc.
That is why, it is possible to install Visual Prolog just by copying the full\vprol\run directory to your disk.

Short trip through "Visual Prolog Subdirectories" description will help you to understand, what directories you really need to copy to your HDD. The description is included into both:

Visual Prolog online Help system (full\vprol\run\bin\vip.hlp)
"Introduction to Visual Prolog" (full\vprol\run\Intro.HTM) -
see: "Product information" -> "The Visual Prolog CD").

In some cases bitmaps in the Setup wizard dialogs are corrupted

FIX

The reason of the problem is wrong generation of RES files for some bitmaps.

Version Info

The information applies to Visual Prolog 5.1, build 564, and previous versions.

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

Problem

Some files in the HTML, Foreign, SOCKBIND, and WWW directories have long filenames that are not supported by OS/2 installed on a hard disk with FAT formatting.
Since Intro.HTM includes images with long names and refers to pages with long names, it cannot be viewed and used properly.

Version Info

The information applies to Visual Prolog 5.1, builds 564 and 565. 

Workaround

We recommend installing OS/2 version of Visual Prolog to the disk with the HPFS file system.

CTL3D32.DLL problem

R000503.006:    Problem

While installing or using Visual Prolog, 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".

Some Visual Prolog programmers report that users of their applications also come across the problem with CTL3D32.DLL.

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
Replace an invalid CTL3D32.DLL in your system directory with a correct one.
You can restore the DLL from a back up copy of your system, or from appropriate Windows distribution.
For example, in case of Windows 98, to expand the file in question from the cab file on the disk, the following command can be used:
Win98_CD>extract /A /e win98_22.cab ctl3d32.dll /L My_HDD:\tmp 

Then the expanded DLL from My_HDD:\tmp\ctl3d32.dll should be moved to the required system location.

We recommend Visual Prolog programmers, who supply applications using CTL3D32.DLL, to include appropriate information about the problem into their documentation.

Version Info

The information applies to all versions of Visual Prolog.

Language Problems

Last call optimization does not work for functions and Class methods
A problem with multiple inheritance (Visual Prolog 5.1, build 564 and previous versions)
An error in using of a non-static object
Bug with not(not( x ))  (Visual Prolog 5.1, build 564 and previous versions)
Missed detection of absence of local single fact initialization in the CLAUSES section (Visual Prolog 5.1, build 564 and previous versions)
Bug in the "Strong Type Conversion" check.
The command line compiler fails to generate an OBJ file, when -Z+ option is specified
If a filename is longer   than 32 chars, and one declares a predicate with a procedure domain, the linker can not find this predicate 
Problems of integer-valued calculations
Database domain can be treated as a return domain in a predicate declaration
Compiler treats variable names, identical to some standard predicate names, as predicate names
Error in free gstack
7087 error: Invalid Parameter

Bugs in Visual Prolog classes

A predicate type in the end of the predicates section is ignored, without generating an error.

GPF, when a big OBJ file is used

GPF, while compiling, caused by Visual Prolog incompatibility with QDCSPI.DLL

Non-stable GPF, while allocating memory for a new object

A call of a method of a class that is declared with "language stdcall" calling convention leads to application crush

The Visual Prolog external database has different formats in 16 and 32 bit
Problems of exception trapping in DLL's.
Bug in the storage/11 predicate
not(bound(_))does not convert "fail" to "true" (Visual Prolog 5.1, build 564)
str_len predicate generates GPF if a negative value  is passed to the Length variable (Visual Prolog 5.1, build 564)
A problem with the disk predicate, when the UNC is used
db_statistics predicate problem
Easywin does not support C as main Target

The readblock predicate error

The flush predicate generates the error "7006 Invalid Handle" under Windows NT/2000 for console output

The trunc(X) predicate with a negative X in Visual Prolog 5.x returns different result than in PDC Prolog 3.31

Bug in the dirfiles predicate

It is possible to move an opened file created by the openwrite predicate under WIN 2000

A single fact cannot contain a class domain

The filenameext predicate has different behavior under 16-bit and 32-bit Windows

Bug in the trap predicate

Invalid 505 error message while using the val predicate

The term_str predicate fails with (i,o,i) flow pattern

div with a negative divisor problem

Error in the consult predicate

Upgrading one file projects from previous versions to Visual Prolog 5.2

GPF, while division by zero at DELL computers

The existfile predicate problem

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.

A problem with multiple inheritance

R000313.003:    FIX

If a class has more than one parent, then, while using an object of such class for access to base class methods, the multiple inheritance engine does not always work properly.

Version Info

The information applies to Visual Prolog 5.1, build 564, and previous versions.

An error in using of a non-static object

R981116.04:    Problem

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
Version Info

The information applies to Visual Prolog 5.1 and previous versions.

Bug with not(not( x ))

R000313.007:    FIX

In the following example compiler deletes double not in Visual Prolog 5.1 (build 564) and previous versions.

PREDICATES
nondeterm x(integer)
CLAUSES
x(1).
x(1).
x(1).
PREDICATES
not_test
CLAUSES
not_test :-
not(not(x(1))),
write("Hello"), nl,
fail.
not_test.
GOAL
not_test.
Version Info

The information applies to Visual Prolog 5.1, build 564, and previous versions.

Missed detection of absence of local single fact initialization in the CLAUSES section.

R000313.011:    FIX

In some complex cases, the compiler cannot correctly detect that a LOCAL SINGLE FACT was not initialized by one and only one clause.

Version Info

The information applies to Visual Prolog 5.1, build 564, and previous versions.
Fixed in Visual Prolog 5.1, build 565.

Bug in the "Strong Type Conversion" check.

 R990519.01:    BUG

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 !
Version Info

The information applies to Visual Prolog 5.2, and previous versions.

The command line compiler fails to generate an OBJ file, when -Z+ option is specified 

R990314.02:    FIX

The command line compiler fails to generate an OBJ file, when -Z+ option is specified, without a warning that -Z is not supported.

Version Info

The information applies to Visual Prolog 5.1, and previous versions.
Fixed in Visual Prolog 5.2.

If a filename is longer than 32 chars, and one declares a predicate with a procedure domain, the linker can not find this predicate 

R990827.03:    FIX
Version Info

The information applies to Visual Prolog 5.1, and previous versions.

Fixed in Visual Prolog 5.2.

Problems of integer-valued calculations

R991129.01:    FIX

By default, results of arithmetic operations with explicitly specified integer-valued operands are treated as "unsigned".

This can lead to some sorts of problems. For instance, the following example 

goal 
     Unsig = 1-2, write("Integer_value = ", Unsig). 

instead of the expected correct value "-1" returns its unsigned representation "4294967295".

Moreover, if you add a positive number to such intermediate value you will get the error "119 Arithmetic overflow". For example: 

goal 
Unsig = 1-2 + 3, % Result: the error "119 Arithmetic overflow"
Version Info

The information applies to Visual Prolog 5.1, and previous versions.

Fixed in Visual Prolog 5.2.

Workaround

Usage of variables in integer-valued expressions solves this problem. For instance, the following example will work correctly: 

goal 
Int = 4, 
Unsig = 1-2 + 3 + Int, % Result: no errors 

However, be careful, if the order of calculation will be specified using parentheses, the error can occur: 

goal 
Int = 4, 
Unsig = (1-2 + 3) + Int,  
% Result: the error "119 Arithmetic overflow"

Database domain can be treated as a return domain in a predicate declaration

R990128.01:    FIX
Example
database - dirtest
list(SLIST)
predicates
dirtest % <-- error 404 
testline(ITEM)
clauses
dirtest:- % <-- error 404
Version Info

The information applies to Visual Prolog 5.2, and previous versions.

Bugs in Visual Prolog classes

R990818.01:    FIX

Bugs in Visual Prolog classes in some cases cause GPF.

Version Info

The information applies to Visual Prolog 5.1, and previous versions.

Fixed in Visual Prolog 5.2.

A predicate type in the end of the predicates section is ignored, without generating an error.

R991011.01:    FIX
Version Info

The information applies to Visual Prolog 5.1, and previous versions.

Fixed in Visual Prolog 5.2.

Compiler treats variable names, identical to some standard predicate names, as predicate names

R990921.01:    FIX

The following program generates a syntax error:

goal
Format = "1".
Version Info

The information applies to Visual Prolog 5.1, and previous versions.

Fixed in Visual Prolog 5.2.

Error in free gstack

R990920.03:    FIX

It is difficult to give clear instructions on how to avoid the problem, but if you use '_' instead of '_Name' for the void output arguments in the last call of a clause, which only has input scalar arguments - you will avoid the problem.

Example
predicates
  use_gstack(integer)-(o)
  p()
 clauses
 
predicates
  use_gstack(integer)-(o)
  p()
 clauses
  use_gstack(Y):-
           Y = 1,
           write("Y=",Y),nl,
           concat("","X",_),   
% - THIS SPOILS Y, BECAUSE Y
% IS ON GSTACK !
           write("Y=",Y),nl.
 
  p():-
           time(_,_,_,_),
           use_gstack(_OnceVar).
% Here Is the BUG
% It works for '_'
% Last Call Optimization is active
% Since there is a Void output variable 
%   in the last call, this must be
%   placed on GStack
% Since the Clause does NOT use GStack, 
%   GStack is released just before
%   the last Call!
% Bad Combination !
goal
           p().
Version Info

The information applies to Visual Prolog 5.1, and previous versions.

Fixed in Visual Prolog 5.2.

7087 error: Invalid Parameter

R990924.01    : FIX

The following program gives 7087 error in Visual Prolog 5.1:

database
    d(string)
predicates
    p(string)
    - procedure (i)
clauses
   p(S) :-
       concat(S, "a", Sa),
       assert(d(Sa)),
       p(Sa),
       p(S).
       
goal
    p("a").

The problem takes place in some cases, when the default 100 MB GStack size has been exceeded.  

In Visual Prolog 5.2 the message "1001 GStack overflow " is generated.

Version Info

The information applies to Visual Prolog 5.1.

Fixed in Visual Prolog 5.2.

A problem with a name of a static class predicate

R990722.01:    FIX

If the following predicate:

p(integer) - procedure () language stdcall as "_P"

is declared in the section of static predicates of a class, the "Unrecognized name" linker error is generated. 
The reason of the bug is that "@4" is not added automatically, when a predicate is declared in a class.

Version Info

The information applies to Visual Prolog 5.1.

Fixed in  Visual Prolog 5.2.

General Protection Fault error, when a big OBJ file is used

R000217.005:    FIX

There exists a limit for total amount of relocations (fixups) in a segment of an object file in COFF format. When the limit equal to 65536 is exceeded, a GPF occurs.

Version Info

The information applies to Visual Prolog 5.1.

Fixed in Visual Prolog 5.2. Since Visual Prolog 5.2, the following error message is generated: "611. Too many relocations are detected for a segment of an object file in COFF format".

Workaround

Make a compilation unit (project module) smaller, for example, by breaking it into several compilation units.

Non-stable GPF, while allocating memory for a new object

R990413.01:    FIX
Version Info

The information applies to Visual Prolog 5.1.
Fixed in Visual Prolog 5.2.

Error in handling duplicate stack overflow

R990310.01:    FIX

After catching an error 1010 "Stack Overflow" in trap, the next call of the predicate with this 1010 error does not work correct and does not give out the runtime error 1010 or does not catch this error in trap.

Version Info

The information applies to Visual Prolog 5.1.
Fixed in Visual Prolog 5.2.

A call of a method of a class that is declared with "language stdcall" calling convention leads to application crush

R990716.01:    FIX
Version Info

The information applies to Visual Prolog 5.1.
Fixed in Visual Prolog 5.2.

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

R950730.32:    Problem

This is inconvenient and will be changed in one of future versions. 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 exception trapping in  DLLs.

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

R990201:      Problem

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.

Version Info

The information applies to Visual Prolog 5.2 and previous versions.

not(bound(_))does not convert "fail" to "true"

R000313.012:    FIX
Workaround

In most cases, it is possible to change:

not(bound(_)) to free(_),
not(free(_)) to bound(_)
Version Info

The information applies to Visual Prolog 5.1, build 564.
Fixed in Visual Prolog 5.1, build 565.

str_len predicate generates GPF if a negative value is passed to the Length variable

R000313.013:    FIX
Version Info

The information applies to Visual Prolog 5.1, build 564, and previous versions.
Fixed in Visual Prolog 5.1, build 565.

A problem with the disk predicate, when the UNS is used

R991126.01:    FIX

The disk predicate does not work properly if a network drive is not mapped.

Version Info

The information applies to Visual Prolog 5.1 and previous versions.
Fixed in Visual Prolog 5.2.

db_statistics problem

R991123.01:    FIX

The db_statistics predicate does not work, when the program containing it has been started from a UNC path.

Version Info

The information applies to Visual Prolog 5.1 and previous versions.
Fixed in Visual Prolog 5.2.

Workaround

The bt_statistics predicate can be used if an index for a database(s), where each record only has a single key, is used.

Invalid 505 error message while using the val predicate

R991221.04:    FIX

When two user-defined domains are equivalent to the same standard Visual Prolog domain, converting of one of the user-defined domains into another with the help of the val predicate mistakenly causes 505 Type error: "Illegal variable type for this position."

Example 
domains 
a = integer 
b = integer
predicates 
p(a)
clauses 
p(A) :- 
B = val(b, A). % Wrong 505
goal 
p(7).
Version Info

The information applies to Visual Prolog 5.1.
Fixed in Visual Prolog 5.2

Easywin does not support C as main Target

R970710.02:    Problem
Version Info

The information applies to Visual Prolog 5.2 and previous versions.

The readblock predicate error

R990817.01:    FIX

The readblock predicate generates the run-time error 1111: "Wrong number of bytes read from file" if a number of bytes to read exceeds 4096.

Version Info

The information applies to Visual Prolog 5.1 and previous versions.
Fixed in Visual Prolog 5.2.

The flush predicate generates the error "7006 Invalid Handle" under Windows NT/2000 for console output

R990826.01:    FIX

The flush predicate works differently under Windows95/98 and Windows NT/2000. Under Windows NT/2000, the operating system raises an error on flush calling with the console output device.

Version Info

The information applies to Visual Prolog 5.1 and previous versions.
Fixed in Visual Prolog 5.2.

Workaround

We recommend to avoid applying of the flush predicate for the console output device (UI Strategy: Easywin, Textmode, VPI+Message window) in 32-bit applications. 

Bug in the trap predicate

R991028.02:    FIX

Sometimes a term allocated in the first call in the trap/3 predicate is spoiled in the third call to the errorhandler.

Version Info

The information applies to Visual Prolog 5.1 and previous versions.
Fixed in Visual Prolog 5.2.

The trunc(X) predicate with a negative X in Visual Prolog 5.x returns different result than in PDC Prolog 3.31

R990818.03:    Problem

The trunc truncates Value to the right of the decimal point, discarding any fractional part. That is trunc "rounds Result toward zero". Notice that in PDC Prolog 3.31 trunc "rounds" Result toward minus infinity". In Visual Prolog, the return domain of trunc predicate is the same as the domain of its argument. The val function should be used to convert a real to an integer.

In versions of PDC Prolog before the version 3.30, trunc returned an integer.

Version Info

The information applies to Visual Prolog 5.2 and previous versions.

Bug in the dirfiles predicate

R980224.03:   FIX

dirfiles(Wild, fa_subdir, F, _,_,_,_,_,_,_, _) does not work correctly with Wild=".", "..". It returns "false" instead of "true".

Version Info

The information applies to Visual Prolog 5.1 and previous versions.
Fixed in Visual Prolog 5.2.

Under Windows 2000 it is possible to move an opened file created by the openwrite predicate under WIN 2000

RRR0103.02:    BUG

Under Windows 2000, it is possible to move an opened file, that was created by the openwrite predicate (for 16-bit programs), within the logical disk space.

Version Info

The information applies to Visual Prolog 5.2 and previous versions.

A single fact cannot contain a class domain

R971023.01:    BUG
Version Info

The information applies to Visual Prolog 5.2 and previous versions.

The filenameext predicate has different behavior under 16-bit and 32-bit Windows

R971009.01:    Problem

Under 16-bit platforms, returned strings will be in the upper case. 

Under 32-bit platforms, returned strings will contain letters in the same cases as they were specified in the input strings.

Version Info

The information applies to Visual Prolog 5.2 and previous versions.

The term_str predicate fails with (i,o,i) flow pattern

R990513.01:   

In Visual Prolog 5.1 term_str fails in the cases like the following:

Domains
  a = b(integer); c()
goal 
  term_str(a,T,"c()") %  term_str(a,T,"b(2)haha")

No error is generated.

In Visual Prolog 5.2 the error "1047 Invalid term (spoiled memory)" is generated. 

Version Info

The information applies to Visual Prolog 5.1 and previous versions.

Fixed in Visual Prolog 5.2.

div with a negative divisor problem

R990818.02:    FIX

div with a negative divisor returns unsigned value for negative results

Int = 4 div -3 

returns 

Int = 429… 
Workaround

If we explicitly convert it with:

  Sinned_Int = val(integer, Int)

the result will be correct:  "-1"/

Version Info

The information applies to Visual Prolog 5.1 and previous versions.
Fixed in Visual Prolog 5.2.

GPF, while division by zero at DELL computers

R000505.004:    Problem

At some Dell computers, the Prolog exception handling engine (in 32-bit VPI programs) cannot correctly catch division by zero like:

X = 0,
_Y = 5 div X,

Instead of the error 1032 "Division by zero", a program generates the error 1009 "General protection fault" or even silently disappears. The error was seen under Windows 98 and Windows NT Service Pack 3/4.

GPF, while compiling, caused by Visual Prolog incompatibility with QDCSPI.DLL

R000505.005:    Problem

The VDE conflicts with QDCSPI.DLL from QarterDeck's CleanSweep (only under Windows 95). The problem is seen like GPF, while compiling some files.

Workaround

The problem can be fixed by removing QDCSPI.DLL from the WIN95\SYSTEM directory.
Note: CleanSweep can use QDCSPI.DLL from its home directory.

Version Info

The information applies to Visual Prolog 5.2 and previous versions.

Error in the consult predicate

RRR0105.04:    FIX

If the save predicate terminates with an error (e.g., "Disk is full"), then after it, the predicate consult works wrong.

Example
Version Info

The information applies to Visual Prolog 5.1 and previous versions.
Fixed in Visual Prolog 5.2.

The term_bin predicate problem

R980723.01:    FIX

The term_bin predicate with the (i,i,i) flow pattern causes GPF in the TestGoal

Version Info

The information applies to Visual Prolog 5.1 and previous versions.
Fixed in Visual Prolog 5.2.

Upgrading one file projects from previous versions to Visual Prolog 5.2

R000211.001:    Problem

In Visual Prolog 5.2 the file and db_selector domains have to be declared as global domains also in a one file project.
This was not the case in previous versions of Visual Prolog.
Therefore, such projects created by previous versions of Visual Prolog are not built.

Workaround

It is necessary to declare  the file and db_selector domains as global domains in one file projects created by previous versions of Visual Prolog.

Version Info

The information applies to Visual Prolog 5.2.

The existfile predicate problem

R980224.02:    FIX

existfile(Arg) with Arg=".", ".." returns "fail" instead of "true".

Version Info

The information applies to Visual Prolog 5.1 and previous versions.
Fixed in Visual Prolog 5.2.

The time predicate is not precise enough

R000413.004: Problem

The time predicate works with an underlying operating system. Some operating systems (some UNIX versions, for example) do not support high precision. Also, 32bits Windows system timing functions use miliseconds.
Recommended to users: There is QueryPerfomanceCounter API call under 32bits Windows that can be used for more high precision.

VDE Problems

Compiling of unmodified non-Prolog modules
Problem with directories and files, which names contain spaces (Win32)
Problem with directories and files, which names contain spaces (OS/2
Conversion of HAM to 5.0 format is irreversible
Possible BUG when updating source code with the help of Code Experts (Visual Prolog 5.1, build 564)
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
Wrong generation of RES files for some bitmaps (Visual Prolog 5.1, build 564 and previous versions)
A problem with  Visual Studio 6.0  resource compiler.
Bug with saving changes in a project, when "AutoSave Project on Exit" option in the Environment dialog is turned off (Visual Prolog 5.1, build 564 and previous versions)
Bug with saving changes in a topic, when  "AutoSave Project on Exit" option in the Environment dialog is turned off.
Problems with read-only .PRJ files (Visual Prolog 5.1, build 564 and previous versions)
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
A Windows Help Compiler is set by default in the Application Expert while creating an OS/2 project
A printing problem (Visual Prolog 5.1, build 564 and previous versions)
Default setting for "Convert ANSI to OEM" in the Compiler Options dialog (Visual Prolog 5.1, build 564 and previous versions)
Under Windows 95/98 a horizontal scrollbar is missed in the MDI menu Window|More Windows-> "Select window" default dialog (Visual Prolog 5.1)
Checking ON the "Print Menu in DOS .EXE" in the VDE does not set -p option for the Compiler
CTL3D32.DLL problem
GPF at the Help compiling stage in the Windows version of the VDE after changing a target platform from "OS/2 32-bit" to "Windows 32"

Compiling of unmodified non-Prolog modules

Problem
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.
Version Info

The information applies to Visual Prolog 5.2  and previous versions.

Problem with directories and files, which names contain spaces (Win32 platforms)

R990910.01:    FIX

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

Version Info

The information applies to Visual Prolog 5.1 and previous versions.

Fixed in Visual Prolog 5.2.

Workaround

Things work if you manually modify the scripts.

If you refer to the path in your code, the names that include spaces should be surrounded by  internal \"\", like "\"C:\\Program Files\\Visio\\Visio 32.EXE\""

A little trick you might use, if you have some tools installed  in the "Program Files" directory, is that you instead refer to the short DOS name, e.g.  "C:\PROGRA~1\MICROS~4\VC98 ".
If you want to find exact short names of MSVC tools installed in the "Program Files" directory at your computer, please, see \Program Files\..\BIN\VCVARS32.BAT.

Recommendations

Do not  install Visual Prolog 5.1 and previous versions 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.

Problem with directories and files, which names contain spaces (OS/2 platform)

Problem:    

Under OS/2 if a hard disc with HPFS formatting is used, The VDE, the linker and the compiler have problems with using project and external  tools placed in directories, which names contain spaces.

Version Info

The information applies to Visual Prolog 5.2 and previous versions.

Workaround

Things work if you manually modify the scripts.

If you refer to the path in your code, the names that include spaces should be surrounded by  internal \"\", like "\"C:\\Program Files\\Visio\\Visio 32.EXE\""

Recommendations

Do not  install Visual Prolog 5.2 and previous versions 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.x format is irreversible

R000316.005:   Problem

After conversion of a .HAM file in an old format (3.x or 4.x versions) to the 5.x format by VIPCONV.EXE, the .HAM file can not be converted back to the 4.0 format.

Version Info

The information applies to Visual Prolog 5.2  and previous versions.

Possible BUG when updating source code with the help of Code Experts

R000316.006:     FIX

In some circumstances (a large source file and a relatively slow computer), there is a significant delay while the source file is being updated.  If during this time, you hit the Edit Code button, then the source update can be wrong, because a Code Expert initiates a new update operation while the previous one is not finished.

Version Info

The information applies to Visual Prolog 5.1, build 564, and previous versions.
The problem was solved in Visual Prolog 5.1, build 565.

Workaround
  1. Avoid using large source files.
  2. Check, whether the previously activated Code Expert action had been accomplished before you activate new Code Expert action. These actions are: "OK", "Edit Code", "Delete Code", "Declaration", "Layout", "Add Clause", and "Update Code".

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.

Version Info

The information applies to Visual Prolog 5.1  and previous versions.

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.
Version Info

The information applies to Visual Prolog 5.2  and previous versions.

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 were no changes in a resource (dialog, menu etc.) if a project was opened from a .PRJ file.
Version Info

The information applies to Visual Prolog 5.1  and previous versions.

Fixed in Visual Prolog 5.2.

Wrong generation of RES files for some bitmaps

See description

Version Info

The information applies to Visual Prolog 5.1, build 564, and previous versions.

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.

Version Info

The information applies to Visual Prolog 5.1  and previous versions.

Bug with saving changes in a project, 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 changes were done using Dialog Attributes, Window Attributes, or Toolbar Attributes dialogs:

  1. The Question dialog "Save current project" is not invoked on exit, except the cases when:
Constant names were changed;
"Storing in Separate File" flag was turned ON/OFF.
 
  1. Any changes in the dialogs Dialog Attributes, Window Attributes, and Toolbar Attributes are not saved on exit, except changes of constant names and a "Storing in Separate File" flag state.
Version Info

The information applies to Visual Prolog 5.1, build 564, and previous versions.

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.

Problems with read-only .PRJ files

  1. If a user opens a project from a read-only .PRJ file, no message describing that this file is read-only is generated.
  2. After choosing Project | Save Project menu item, the following invalid message is generated in the Message window:

Project <PrjFilePath>.PRJ saved

Version Info

The information in the item 2 applies to Visual Prolog 5.1, build 564, and previous versions.
In the build 565 the following message is generated:

"Project components have been saved"

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

R961217.08:    Bug

The current version of the Visual Prolog does not allow to import .RTF files containing graphics. An attempt to import an .RTF file with embedded objects causes the necessity of restarting Visual Prolog.

Workaround:

It is possible to replace embedded objects in the source .RTF file with the references to image files.

  1. Save each graphic object from the source .RTF file like a separate graphics file.
  2. Copy graphics files to the directory chosen for bitmaps in the Options | Help Maker Options (RES by default).
  3. Replace graphics in the source .rtf file with references like:
    {bmc winsock.bmp}
  4.  Import  an .RTF file.
Version Info

The information applies to Visual Prolog 5.2  and previous versions.

16-bit MS Help Compilers hang Visual Prolog if a root VIP directory name is longer than 8 characters

R980519.01:    FIX

16-bit MS Help Compilers hang Visual Prolog DOS session while compiling Help if root VIP directory name is more than eight characters.

Version Info

The information applies to Visual Prolog 5.1 and previous versions.

Fixed in Visual Prolog 5.2.

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.

Version Info

The information applies to Visual Prolog 5.2  and previous versions.

Workaround

Please see a detailed description.

A Windows Help Compiler is set by default in the Application Expert while creating an OS/2 project

R000209.010:    Problem

A Help Compiler, that is an external tool, does not belong to a project. The VDE uses a Help Compiler set by default or for a previous project until a user manually change it.

Version Info

The information applies to Visual Prolog 5.2  and previous versions.

Workaround

Manually change a Help Compiler name in the "Help Maker" tab of the Application Expert (Ctrl+A). Check and change, if necessary a path to this compiler in the External Tools Directories  dialog (Options|Global|External Tools Directories menu item).

A printing problem

If you print several pages beginning with the page different from the page number one, the first page of a range is spoiled.

Version Info

The information applies to Visual Prolog 5.1, build 564, and previous versions.

Default setting for "Convert ANSI to OEM" in the Compiler Options dialog

R990226.01

In the versions previous to Visual Prolog 5.1, build 565 the default setting for "Convert ANSI to OEM" option in the Compiler Options dialog is ON. This causes problems with handling of non-English characters, because the second part of the code table is unavailable.

Workaround

Uncheck the "Convert ANSI to OEM" option.

Version Info

The information applies to Visual Prolog 5.1, build 564, and previous versions.
Since the build 565, the default setting of the option is OFF.

Windows 95/98 in the MDI menu Window|More Windows-> "Select window" default dialog do not have a horizontal scrollbar.

R990827.01

As a result,  filenames with long Paths do not fit into window client area. This prevents selection of windows correspondent to these files by users.

Version Info

The information applies to Visual Prolog 5.1. 
Fixed in Visual Prolog 5.2.

Workaround

User application can catch window native message:

e_Native(wm_command(9309,_)...) 

and display user dialog that can be resized.

Checking ON the "Print Menu in DOS .EXE" in the VDE does not set -p option for the Compiler

R990314.01:    FIX

Checking ON the "Print Menu in DOS .EXE" in the "Compiler Options" (Options|Project|Compiler Options|Code Generation) does not set -p option for the Compiler! So, Alt+P does not activate (Print / Log file) menu.

Version Info

The information applies to Visual Prolog 5.1. 
Fixed in Visual Prolog 5.2.

GPF at the Help compiling stage in the Windows version of the VDE after changing a target platform from "OS/2 32-bit" to "Windows 32"

R000526.005:   BUG

The following sequence of actions in some cases causes GPF ("hcrtf.exe - Application Error…. The memory could not be read..." error message).

  1. In the Windows version of the VDE create a project with "OS/2" as a target platform.
  2. Choose "Topics" in the Project window and create Help topics.
  3. Choose Project|Rebuild All menu item.
  4. Choose Options|Project|Application Expert menu item (CTRL+A).
  5. Change a target platform in the "Application Expert" from "OS/2" to "Windows 32".
  6. Choose Project|Rebuild All menu item.

The reason of the problem is that HCRTF Windows Help Compiler cannot resolve the font styles, stored in the RTF file for OS/2 and fails.

Workaround

To avoid the error, define font style that will be compatible between OS/2 and Windows. Note that OS/2 Help system allows only 4 predefined fonts: default, Tms Rmn, Courier and Helv.

Version Info

The information applies to Visual Prolog 5.2.

Creating of a multiprogrammer project with the name of an existing multiprogrammer project and in the same location causes overwriting of all source files of an existing project

R000221.001:    Problem

If a new multiprogrammer project is created with the name of an existing multiprogrammer project and in the same directory, where the old project is located; all prolog source files will be overwritten without any warnings after the "Overwrite" button in the warning "File '<project name>.prj' exists already" is pressed.

Version Info

The information applies to Visual Prolog 5.2 and previous versions.

VPI Problems

EasyWin does not support C as main Target
Modeless dialog ‘Tab’ problem.
win_GetText bug for a multi-line edit control in OS/2 (Visual Prolog 5.1, build 564 and previous versions)
Bug in win_Move for a task window (Visual Prolog 5.1, build 564 and previous versions)
pict_Open causes  the error 6000 (Visual Prolog 5.1, build 564 and previous versions)
pict_Open causes window caption and main menu  flickering
mf_Load/3 BUG under Win32 (Visual Prolog 5.1, build 564 and previous versions)
vpi_CreateProcess:  notification bug for 16-bit GUI applications under WIN NT (Visual Prolog 5.1, build 564 and previous versions)
vpi_CloseProcess cannot close 16-bit application under WinNT
win_GetState returns wsf_Titlebar in a wrong way (Visual Prolog 5.1, build 564 and previous versions)
dlg_ChooseColor does not show input custom colors
Problem in printing of color bitmaps by black-and-white printer
Different behavior of dlg_getFileName on different Windows platforms
dlg_printSetup predicate conflicts with a third-party printer driver
sMAPI_SendMail predicate changes a current directory

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.

win_GetText bug for a multi-line edit control in OS/2

If a multi-line edit control is created using win_SetText with a string more than 1K, win_GetText truncates the text to about 1K.

Version Info

The information applies to Visual Prolog 5.1, build 564, and previous versions.

Bug in win_Move for task window 

Top is set lower than expected.

Version Info

The information applies to Visual Prolog 5.1, build 564, and previous versions.

pict_Open causes  the error 6000

If pict_Open is used in a DLL with a console .EXE, the error 6000 "Bad window handle" is generated.

Version Info

The information applies to Visual Prolog 5.1, build 564, and previous versions.

pict_Open causes window caption and main menu  flickering

Version Info

The information applies to Visual Prolog 5.2 and previous versions.

mf_Load/3 BUG under Win32

Predicate mf_Load/3 returns invalid rectangle values if a metafile contains negative coordinates.

Version Info

The information applies to Visual Prolog 5.1, build 564, and previous versions.

vpi_CreateProcess:  notification bug for 16-bit GUI applications under WIN NT.

While running 16-bit GUI application from 32-bit VPI application using vpi_CreateProcess,  e_EndApplication comes to windows event handler before closing it.

Version Info

The information applies to Visual Prolog 5.1, build 564, 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.

Version Info

The information applies to Visual Prolog 5.2 and previous versions.

win_GetState returns wsf_Titlebar in a wrong way

If window has a border, the predicate win_GetState returns wsf_Titlebar no matter, whether window has a title bar or not.

Version Info

The information applies to Visual Prolog 5.1, build 564, and previous versions.

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.

Different behavior of dlg_getFileName on different Windows platforms

R990920.02:    Problem

if  StartPath = "", the algorithm for selecting the initial directory varies on different Windows platforms. The reason of the problem is the underlying Windows API. 
See: MSDN Library, OPENFILENAME topic, lpstrInitialDir.

Version Info

The information applies to Visual Prolog 5.2, and previous versions. 

dlg_printSetup predicate conflicts with a third-party printer driver

R000410.010:    Problem

Some third party printer drivers (that are not approved by Microsoft for the correspondent version of Windows) can conflict with the predicate dlg_printSetup.

For example, dlg_printSetup predicate conflicts with a HP 4000 PCL6 printer, when hp4000 driver (Danish version for Windows 95) is used. The same printer with hp5mp driver demonstrates no problems.

Version Info

The information applies to Visual Prolog 5.2, and previous versions. 

sMAPI_SendMail predicate changes a current directory

R000217.004:    Problem

sMAPI_SendMail predicate changes a current directory. This can cause different errors. In some cases, such behavior of sMAPI_SendMai can be useful.

Workaround

To avoide the problem sMAPI_SendMail should be called in the following context:

disk(CURRDIR),
RC = sMAPI_SendMail( ... ),
disk(CURRDIR),

Linkers Problems 

An internal error while importing DLL functions
Visual Prolog 5.x does not support Visual Studio 6.0 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.

Version Info

The information applies to Visual Prolog 5.1 and previous versions.

Visual Prolog 5.x does not support Visual Studio 6.0 format for Import libraries

Visual Prolog 5.x supports only  Visual Studio 5.0  format for import libraries.

Workaround:

Use the compatibility option in Visual Studio 6.0 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

Version Info

The information applies to Visual Prolog 5.1 and previous versions.

Fixed in Visual Prolog 5.2. The -s<StackSize> Linker option that sets the initial stack size for the generated module to the specified StackSize number of bytes has been added.

Workaround for Windows:

It is possible to edit the STACKSIZE parameter in a DLL/EXE with the help of MS EDITBIN.EXE: EDITBIN.EXE /STACK:newsize FILE

Workaround for OS/2

The only solution under OS/2 is changing of a linker.

Debugger Problems

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.

GPF, while debugging caused by incompatibility of Visual Prolog with a third party tool

R000505.006:   Problem
Visual Prolog Debugger  conflicts with some old versions of POINT32 software (only under Windows 95). Note that Microsoft MSDN documentation (ID: Q148137) reports about conflicts of this IntelliMouse software with some other products, for instance, with CorelDraw version 6 and even with Microsoft Visual Basic. The problem is seen as GPF in the Debugger.

Please, contact Visual-Prolog Support if you come over this problem.

Symptoms
The problem is reproducible.
The problem does not disappear after Visual Prolog reinstallation.
The problem disappears, when you start Windows in Safe mode.
Version Info

The information applies to Visual Prolog 5.1.

See also:

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