Navigation  without Java Scripts

Visual Prolog Technical Support

Problems Solved in Visual Prolog 5.1

Following is a list of problems found in Visual Prolog, version 5.02 that have been fixed in the version 5.1.

Visual Prolog 5.1 is supplied in two major builds:

build 564
build 565

Note, please, that some problems found in the build 564, have been already fixed in the build 565. 
To check the build of your copy, use the Help | About command.
The information specific to a build is described in the items of this list under .

For information about bugfixes, see the following sections:

Problems solved in Setup
Problems solved in the VDE
Problems solved in the Compiler
Problems solved in the Prolog Library
Problems solved in the VPI
Problems solved in the Linker
Problems solved in the Debugger
Problems solved in Visual Prolog Packages
Problems solved in the PDC's Document Handling Package
Problems solved in ESTA
Problems Solved in the Report and  Own_Draw Packages
Problems Solved in the Tree Package
Problems solved in the HTTP Layer
Problems solved in the Message Layer
Problems solved in the FTP Layer
Problems solved in the FTPagent
Problems solved in Examples

There are also a number of small problems, solved in the version that are not listed here.

See also:

List of problems solved in Visual Prolog 5.02
List of problems solved in Visual Prolog 5.01

Solved Setup Problems

In some cases bitmaps in the Setup wizard dialogs are corrupted

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

Version Info

The problem has been solved in the build 565. The problem exists in the build 564.

Solved Compiler Problems

Finished the implementation of  procedure checking

The compiler can now do what we call a saturation check for clauses. This means that if a predicate is declared to be a procedure, then the compiler can check if there are enough clauses to catch all input combinations without any of these leading to a fail for the predicate.

Some errorpositions were previously reported with a wrong module.

SINGLE facts could not be used in GLOBAL facts sections.

Bug with not(not( x ))

In the following example compiler deleted 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 problem has been solved in the build 565. The problem exists in the build 564.

A problem with multiple inheritance

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

Version Info

The problem has been solved in the build 565. The problem exists in the build 564.

Using of two underscore symbols at the beginning of an identifier caused error 450

Problems Solved in the Prolog Library

Bug in the readln predicate under 16bit EasyWin

R981027.01:    FIX
Version Info

The problem has been solved in Visual Prolog 5.1.

Rounding error under OS/2

Under OS/2 the coprocessor initialization was missed when the program started. It could cause rounding errors for values with floating-point values.

Bug in str_real

Bug in the str_dosstr predicate under Windows

The behavior of the predicate was invalid when there were CRs in the string.

Bug in predicate errormsg/4 under 32bits platforms

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

Version Info

The problem has been solved in the build 565. The problem exists in the build 564.

Missed detection of absence of  LOCAL SINGLE FACT initialization in the CLAUSES section.

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

Version Info

The problem has been solved in the build 565. The problem exists in the build 564.

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

Version Info

Since the build 565,  an error 1602 is generated if a negative value  is passed to the Length variable.

The problem exists in the build 564.

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

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

In the build 565  e_EndApplication event comes after closing of a spawned process.

The problem exists in the build 564.

Solved VDE Problems

Pressing F1 with big selection in the VDE text editor used to lead to GPF.

Importing resources under OS/2 could lead to a GPF.

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

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 in the Personal Edition, or previous versions, 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 problem has been solved in the build 565. The problem exists in the build 564.

Wrong generation of RES files for some bitmaps

See description

Version Info

The problem has been solved in the build 565. The problem exists in the build 564.

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

Version Info

The problem has been solved in the build 565. The problem exists in the build 564.

Problems with read-only .PRJ files

If a project had been opened from  a read-only .PRJ file, then after choosing Project | Save Project menu item, the following invalid message was generated in the Message window:

Project <PrjFilePath>.PRJ saved

Version Info

Since the build 565 the following message is generated:

"Project components has been saved"

Printing problem

If you print several pages beginning with the page different from the first, the first page of a range is spoiled in the build 564 and previous versions.

Version Info

The problem has been solved in the build 565.

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

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.

Version Info

Since the build 565, the default setting of the option is OFF.

Problems Solved in the VPI

Bug when drawing to a window by a predicate in a DLL

If you exported the following predicate from a 5.02 32-bit VPI DLL...
display_string(Win, String) :-
Rct = win_GetClientRect(Win), 
draw_TextInRect(Win, Rct, String, -1, [dtext_Left]).

and then called it on the e_Update event of a top-level window of a 5.02 32-bit VPI EXE, the string initially appeared in the window as expected. However, if you then forced an update of the window (e.g. by moving the EXE's message window across the window), the string was not updated properly.

GPF in pict_GetFromWin

The following code caused GPF:

Rct = win_GetClientRect(_Win),
_Picture = pict_GetFromWin(_Win, Rct),

Tab settings did not work properly after VDE restart

Changing of Tab settings caused problems after restart of the VDE.

readln predicate did not fail on Esc in EasyWin

Bug  in the dlg_GetFileName predicate  under 32-bit

When  more  than 15 files were selected, then the error 7002 was generated.

A problem with setting of a negative position in VPI events under Win32

GPF in the Editor Search Dialog

Search in the backward direction of a string in an empty wrap editor caused GPF.

Incompatibility of Sysinfo and Dlgdir packages in one project

The problem of incompatibility of Sysinfo (VPI\Include\Sysinfo) and  Dlgdir ( VPI\Include\Dlgdir) packages in one project caused by intersecting flag names has been solved.

Incompatibility of the Dlgcolor and HTTP Layer packages in one project

The problem of incompatibility of the HTTP Layer (SOCKBIND\INCLUDE\HTTPLAY) and the Dlgcolor (VPI\Include\Dlgcolor) packages in one project caused by intersecting predicate names has been solved.

A problem with setting Enabled/Disabled and Visible/Invisible flags for controls in inactive sheets.

Using of a standard VPI predicate win_SetState  or Dialog package predicate dialog_SetState for setting Enabled/Disabled and Visible/Invisible flags for controls in inactive sheets does not lead to the expected result.

Version Info

Beginning from  Visual Prolog 5.1 (build 565) it is possible to use a new tabdlg_SetState predicate. This predicate correctly handles controls in inactive sheets.

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

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

Version Info

The problem has been solved in the build 565. The problem exists in the build 564.

Bug in win_Move for task window 

Top was set lower than expected.

Version Info

The problem has been solved in the build 565. The problem exists in the build 564.

pict_Open causes  the error 6000

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

mf_Load/3 BUG under Win32

Predicate mf_Load/3 returned invalid rectangle values if a metafile contained negative coordinates.

Version Info

The problem has been solved in the build 565. The problem exists in the build 564.

win_GetState returned 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 problem has been solved in the build 565. The problem exists in the build 564.

vpiCall_ShowHelpKeyWord call with a long  keyword caused GPF

In Visual Prolog 5.1 vpi_ShowHelpKeyWord truncates long keywords to the first 255 symbols.

Problems Solved in the PDC Linker

Bug in linking of object modules produced by 16 bit MS C Compiler.

In some cases, linking of object modules produced by 16-bit MS C Compiler caused errors or GPF while execution. (Win16 only)

Problems Solved in the Debugger

The debugger will now catch errorexits that happen in the program.

It was not possible  to go inside Error Handler called by trap in case if the error was caused by errorexit predicate

Bug in sorting of modules

Since v. 5.1 sorting of modules is case insensitive

Call Stack window provided incorrect information

Missed horizontal scroll-bars

Since v.5.1 horizontal scroll-bars have been added to the following windows:
"Variables for Current Clause"
"Call Stack"

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

Version Info

The problem has been solved in the build 565. The problem exists in the build 564.

Problems Solved in Visual Prolog Packages

PDC's Document Handling Package

GPF while converting HTML files with the help of 16bit DOCCNV.

Incompatibility of the Document Handling and the HTTP Layer packages in one project

The problem of incompatibility of the HTTP Layer  and the Document Handling   packages in one project  has been solved.

Bug in the HTML Parser error handling

HTML Parser reports wrong line and position numbers.

Version Info

The problem has been solved in the build 565. The problem exists in the build 564.

ESTA

Corrupted ESTA *.KB example files

ESTA *.KB example files in the v.5.02 were corrupted

Report and  Own_Draw Packages

Incompatibility of the Report and the Own_Draw packages in one module

The problem of incompatibility of the Report and the Own_Draw packages was  caused by intersecting names.

Version Info

The problem has been solved in the build 565. The problem exists in the build 564.

Tree Package

Runtime error while printing big trees

Runtime overflow error in the internal Tree package procedure of  page size calculating for printing  trees in 16 bit applications.

Version Info

The problem has been solved in the build 565. The problem exists in the build 564.

Bug in a big tree display

If a tree width or height exceeded 32767 pixels, the tree was not displayed properly:

Under OS/2 it was impossible to scroll a big tree.
Under Windows, one could not use a thumb for scrolling. However, it was possible to scroll using scroll-bar direction arrows.
Version Info

The problem has been solved in the build 565. The problem exists in the build 564.

The Print Status dialog determined a  number of a printing page for a Project tree incorrectly

Version Info

The problem has been solved in the build 565. The problem exists in the build 564.

SOCKBIND

Message Layer

The user could not trap msglay_errConnect

If the resolving of a target host’s name is done asynchronous and a connection cannot be established then the error msglay_errConnect is fired and user app. cannot trap it;

Internal event queue was not cleared

Internal event queue was not cleared when user application changed socket’s message layer handler.

Message Layer processed packed data with length > 1677216 incorrectly.

FTP Layer

Some internal timers were not killed

In the v. 5.02 some internal timers were not  killed when an error occurred while establishing a connection;

A socket was not closed if an error occurred while receiving data

Not trapped 1041 error.

Some internal facts were asserted twice in error conditions.

Incompatibility of the  FTP Layer and HTTP Layer packages in one project

The problem of incompatibility of the FTP Layer (SOCKBIND\INCLUDE\FTPLAYER) and   HTTP Layer (SOCKBIND\INCLUDE\HTTPLAY) and the Dlgcolor (VPI\Include\Dlgcolor) packages in one project caused by intersecting  names has been solved.

  HTTP Layer

Incompatibility of the HTTP Layer  and the Document Handling packages in one project

The problem of incompatibility of the HTTP Layer (SOCKBIND\INCLUDE\HTTPLAY) and the Document Handling (DOC_TOOL\Include) packages in one project  has been solved.

Note, please, that in order to avoid intersection of domain names in these packages, the URI domain of the HTTP Layer Package has been renamed httplay_URI.

Incompatibility of the HTTP Layer  with some other packages in one project

The problem of incompatibility of the HTTP Layer (SOCKBIND\INCLUDE\HTTPLAY) with some other packages, such as Dlgcolor (VPI\Include\Dlgcolor) and FTP Layer (SOCKBIND\INCLUDE\FTPLAYER),  in one project caused by intersecting  names has been solved.

FTPAgent

The FTPAgent Main Window was distorted when large fonts were set.

The FTPAgent Main Window is distorted when high resolution and large fonts are set in the Display Properties.

Version Info

The problem has been solved in the build 565. The problem exists in the build 564.

Problems Solved in Examples

Problem with 16-bit examples under 32-bit VDE

One cannot open 16-bit examples from the 32-bit VDE Visual Prolog 5.1, build 564 and previous versions .

Version Info

In the build 565 the problem does not exist, because .VPR files in the examples from WINBIND and TXTEXAMP directories have been replaced with the .PRJ files.