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:
There are also a number of small problems, solved in the version that are not
listed here.
See also:
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.
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 hosts 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 sockets
message layer handler.
Message Layer processed packed data with length > 1677216 incorrectly.
 |
|
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.
|