Navigation  without Java Scripts

Problems Solved in Visual Prolog 5.01

Following is a list of problems found in in Visual Prolog, version 5.0, and solved in the version 5.01. Each of the reported problems receives an ID, a short heading, a description of a problem, and some text under the Version Info entry.

Problems Solved in the Compiler
Problems Solved in the PROLOG.LIB
Problems Solved in the VPI
Solved Debugger Problems
Problems Solved under Unix
Solved Linker Problems
Problems Solved in the PDC's Document Handling Package

Problems Solved in the Compiler

GPF occurs when filename is too big

ProblemID: R971216.04 Compiler

Example:

file_str(FileName,A),
file_str(FileName,B),
filenamepath(Name,A,B),

where A and B more than 3 kb

References to undeclared functions are treated as string's

ProblemID: R980105.02 Compiler

Description:

In 541, if you do:

foo :-
Var = hello(),
writef("\nVar = %", Var).

without having declared (or provided clauses for) the hello function, the compiler doesn't complain. It apparently considers hello() to be acceptable syntax for a string literal. This of course makes finding typos in function calls hard to catch...

The BUG  in VIP 5.0 for the operation '/'

ProblemID: R980205.01 Compiler

Description:

GOAL A = 1 + 6 / (11 + 3) * 4.

Bug in Ansii2OEM conversion in the Compiler

ProblemID: R980226.01 Compiler

Description:

You will receive a compilation error if you:

      1. Compile for a DOS target.
      2. Use the ANSII2OEM conversion compiler option.
      3. Have a functor with a NON ANSII character.

The error disappears if you turn conversion off, but then nothing works!

Note, that functors do need to be converted otherwise consult will not work!

Executables must be equal when crosscompilation

ProblemID: R980303.01 Compiler

Version Info:

The bug has been fixed in the version 5.01.

It can be done for crosscompilation 32bits->16bits only. The 16bits Compiler can treat 64K segments only, opposite to 32bits Compiler. Therefore, when you use crosscompilation 16bits->32bits, there will be different number of sections, symbols, etc.

Incorrect code interpretation

ProblemID: R980303.06 Compiler

Description:

The error 209 is generated with the following code:

GLOBAL PREDICATES
  test_name( INTEGER, INTEGER ) - (i,o)

DATABASE - int
  test_name( INTEGER )

CLAUSES
  test_name( _, B ):-
     test_name( B ).

GOAL
  test_name( 1, N ).

Empty flowpattern for predicates with arity 0 should be available

ProblemID: R971127.02 Compiler

Description:

For predicates with zero arguments is is not possible to use:

PREDICATES
  dd() - ()

PREDICATES
  dd() - procedure ()

If you are having a long list of declarations, and using this style, it is nice to be able to specify empty flow also.

Input error for a float constant

ProblemID: R971201.04 Compiler

Description:

GOAL
    writef("%.30",2.85e+20),nl.
    Output: 285000000004096

Problems Solved in the PROLOG.LIB

Handling of Very Large Gstack

ProblemID: R971209.03 Prolog.LIB

Description:

In Visual Prolog v. 5.0 a user cannot control the total size of virtual memory to be allocated for GStack.

Version Info:

Beginning from Visual Prolog v. 5.01 the new compiler directive gstacksize can be used in 32-bit applications.

The syntax is:

gstacksize = Number_of_Bytes

The specified Number_of_Bytes determines the total size of virtual memory to be allocated for GStack.

For detailed information, please, see the topic "The gstacksize compiler directive" of the online Help provided with the patch.

Error in frontstr(...) for String with the size > 64Kb

ProblemID: R980113.01 Prolog.LIB

fronttoken() has a bug.

ProblemID: R980203.03 Prolog.LIB

Description:

fronttoken("_rest",Token,_) must return Token="_rest", but it has been returning Token="_".

It is a bug, because "_rest" is the valid name for the prolog syntax.

Bug in the predicate errormsg() when reading from different files in one program

ProblemID: R980313.02 Prolog.LIB

Problems Solved in the VPI

Font style ff_times does not correspond to "Times New Roman"

ProblemID: R971212.01 VPI

Description:

If a font is created by font_Create(ff_times,...) and then dlg_ChooseFont is called, the font "Times New Roman" is not selected.

However, the font created by font_Create(ff_times,...) looks like the font "Times New Roman"

Version Info:

In the version 5.01 ff_times corresponds to "Times New Roman" in Windows.

Using no_menu argument in vpi_Init in the MDI mode hides an application

ProblemID: R971214.01 VPI

Description:

Application in this case is not shown but is running and takes processor's time.

In case of using of no_menu for a task window in the MDI mode, the error message 6405 appears: "MDI cannot be used if a window has no menu"

GPF in the message window.

ProblemID: R971225.01 VPI.Editor

Description:

Try to set maximum 5 lines and maximize message window, then rebuild project. GPF occurs.

Big output in the message window in the wrap mode leads to the error 7008

ProblemID: R971225.02 VPI.Editor

Version Info:

Since version 5.01 error 7008 is not generated in the wrap mode of the message window.

Bug in dlg_ListSelect/7 under OS/2

ProblemID: R980105.01 VPI

Description:

dlg_ListSelect/7  works, but the first element of the list is lost during the sort.

Version Info:

Since the version 5.01. dlg_ListSelect/7  sorts elements correctly.

menu_Set does not work in the SDI mode under Windows

ProblemID: R980106.02 VPI

Description:

Create a top level window in task window. Changing of a menu in e_Create event of the top level window does not work in the SDI mode in Windows.

Version Info:

Since the version 5.01 changing of a menu for a top level window  in e_Create event is available by menu_Set in the SDI.

Popup menu problem for a child window in the SDI mode

ProblemID: R980106.03 VPI

Description:

Create a top level window with menu in a task window.

Then create a child window in the top level window.

Call menu_Popup by mouse click in the child window.

Menu events comes to the top level window event handler in the SDI mode.

Version Info:

Since the version 5.01 Menu events come to the window, that has popup menu.

lbox_GetSel for an extended list box returns only one selection

ProblemID: R980112.02 VPI

Description:

If list box has a flag wsf_ExtendedSel, lbox_GetSel returns only one selection.

Version Info:

Since the version 5.01 lbox_GetSel for an extended list box returns all selections.

Text in a static control cannot be wrapped under OS/2

ProblemID: R980114.02 VPI

Version Info:

Since the version 5.01 text in a static control can be wrapped. Also it is possible now to turn off wrapping by flag wsf_NoWrap.

Edit control with wsf_MultiLine is always wrapped under OS/2 no matter whether the horizontal scrollbar is present or not.

ProblemID: R980121.01 VPI

Version Info:

Since v. 5.01 an edit control under OS/2 is wrapped only if flag wsf_HScroll is not set.

The flag wsf_HScroll is not imported for an edit control under OS/2

ProblemID: R980121.02 VPI

Description:

The flag wsf_HScroll is not imported for edit control under OS/2 if this control is a multi-line one.

Version Info:

Since v. 5.01 wsf_HScroll is imported for a multi-line edit control.

Printer driver information is not stored under OS/2 by print_GetConfig/print_SetConfig

ProblemID: R980122.02 VPI

Version Info:

Since v. 5.01 printer driver information is gotten by print_GetConfig and can be set by print_SetConfig

menu_Set does not work in the MDI mode under Windows

ProblemID: R980128.02 VPI

Description:

menu_Set does not work in the MDI mode under Windows if "Window" menu is replaced by a menu with one item and no sub-items.

Version Info:

Since the version 5.01 menu_Set changes menu in the MDI mode if the item "Window" is invisible.

The size of a child window in the MDI mode is wrong if a child window has a task window as a parent.

ProblemID: R980202.01 VPI

Version Info:

Since  the version 5.01 the size of a child window in the MDI mode is the same, no matter what parent it has.

An application started by vpi_CreateProcess is closed after closing a parent application under OS/2

ProblemID: R980203.01 VPI

Description:

If an application A starts an application B, then the application B is closed automatically while closing the application A.

If  Visual Prolog is closed, the application that was started by "Run" command is closed also.

Version Info:

Since the version 5.01 the application, that is started by vpi_CreateProcess, remains existing after closing parent application.

dlg_GetFileName does not set a corresponding filter item

ProblemID: R980203.02 VPI

Description:

The call:

dlg_GetFileName("*.pre",["pro file","*.pro","pre file","*.pre"],"Save",[],"",_OutListFiles),

works correctly, but the call:

dlg_GetFileName("1.pre",["pro file","*.pro","pre file","*.pre"],"Save",[],"",_OutListFiles),

leads to a dialog with the "pro file" type.

Version Info:

Since the version 5.01 the call:

dlg_GetFileName("1.pre",["pro file","*.pro","pre file","*.pre"],"Save",[],"",_OutListFiles),

leads to dialog with the chosen "pre file" type.

win_SetMapScale for metafiles gives no error messages

ProblemID: R980211.01 VPI

Version Info:

Since v. 5.01 win_SetMapScale and win_GetMapScale issue the error message 6001 for w_Metafile window.

dlg_GetFileName does not add extension to a filename

ProblemID: R980219.01 VPI

Description:

If filename entered by a user has no extension, then extension should be added from a file type.

Version Info:

Since the version 5.01 if you call:

FileName = dlg_GetFileName("*.*",["Prolog files","*.pro","All files","*.*"], "Title", [], "c:\\temp", _)

and choose <Prolog files>, then an input "file" <FileName> will be equal to "c:\\temp\\file.pro"

If you choose <All files> , an input "file" <FileName> will be equal to "c:\\temp\\file"

Bug for draw_text in metafiles

ProblemID: R980225.01 VPI

Description:

draw_text in metafiles draws text under the base line, but should draw on the base line as for screen, picture, printer.

Version Info:

Since v. 5.01 drawing text in metafiles is the same as for pictures, printer, screen windows.

Task window always has tilter bar under Windows

ProblemID: R980306.02 VPI

Description:

It should have tilter bar only if flag wsf_TitleBar is set.

Version Info:

Since the version 5.01 the Task window has tilter bar only if flag, wsf_Titlebar is set.

dlg_ChooseFont changes content of the Font input parameter

ProblemID: R980312.01 VPI

Description:

fact_from_db(Font),

_NewFont = dlg_ChooseFont( Font ),

retract(fact_from_db(Font)), %<----- fail here, but should be success

Version Info:

Since v 5.01 an input parameter is not changed by dlg_ChooseFont.

Error in win_GetResDialog for group box under OS/2

ProblemID: R971209.01 VPI

Description:

The wsflags are wrong under OS/2 in the v. 5.0. Instead of [] I get

[0,8194] and [0,2879845304958] (or something in that range).

this results in the control not being build.

Version Info:

Since the version 5.01 win_GetResDialog returns right flags for group box under OS/2

win_Clear does not work in the print window

ProblemID: R971112.01 VPI.Printing

Version Info:

Since v. 5.01 win_Clear works in the  print window.

Creating of VPI window in DLL using VPI, which is called from another DLL using VPI,   is unsuccessful.

ProblemID: R971124.01 VPI

Description:

If  DLL2 is build with VPI and DLL1 is build with VPI and import library of DLL2 creating of child window in DLL1 is unsuccessful.

Version Info:

Since the version 5.01 creating of a VPI window in DLL is successful.

Workaround for previous builds is to load the second DLL by vpi_LoadDll.

Spoiling of values in the list edit, list button and list box

ProblemID: R971127.05 VPI.Tools.Dialog

Description:

If you save all values from a dialog by:

VList = dialog_GetValues(_Win),

And later set them back by:

dialog_SetValues(_Win, VList),

it will spoil the values in the list edit, list button and list box.

Solved Debugger Problems

The content of the call stack is not always correct

Description:
The content of the call stack is not always correct, there might be extra entries.

Tracing into Procedure variables does not work with F7 or F8

Description:
Tracing into Procedure variables does not work with F7 or F8, it is needed to set a breakpoint to catch execution.

Problem Solved under Unix

retractall ends with GPF under UNIX

ProblemID: R971114.01 Prolog.LIB

Description:
Initialization for facts specified in the program doesn't work properly, it can cause problems when retracting them.
Example:

PREDICATES
  linux()

DATABASEt
  test_db(integer)

CLAUSES
  test_db(1).

CLAUSES
  linux():- retractall(test_db(_)).

GOAL
  linux().

Solved Linker Problems

The PDC Linker Editor v. 5.0 does not create an import library in the  archive format (compatible with MSC)

Description:

For Win32 only. The PDC Linker generates the import library in the MS Library format. Note, that MSC supports archive format for libraries, but not MS Library format. So, there is a compatibility problem, if a DLL which was built by the PDC Linker is used from executables which were built by MSC.

Version Info:

In the v. 5.01 the linker option -{L,l}[<lib_name>] is replaced with two options:   

-L[<lib_name>] - creates an import library in the MS Library format (compatible with BC). This option is equal to the option -{l, L}[<lib_name>] in the v.5.0)

-l[<lib_name>] -  creates an import library in the archive format (compatible with MSC) - only for Windows 32  DLL format (PE).

The  executables generated by the PDC Link Editor v. 5.0 are bigger than those linked with the previous SLR linker.

Version Info:

Since v. 5.01 the size of executables generated by the PDC Link Editor is comparable with sizes of executables generated by other linkers.

Linker's bug in the implementation of indirect call to an import function

Description:

For Win32 only. In the v.5.0 there is  the PDC Linker's bug in the implementation of indirect call to an import function if its address is situated in the data segment.

Problems Solved in the PDC's Document Handling Package

The .RTF parser does not handle tables.

Version Info:

The PDC's Document Handling Package v. 5.01 supports tables both in RTF and HTML formats.

The .RTF parser v. 5.0 does not support colored fonts.

Version Info:

The PDC's Document Handling Package v. 5.01 supports colored fonts both in RTF and HTML formats.

The following new attributes for the term font are defined :

COLOR – the foreground color

BGCOLOR – the background color

These attributes values may be given both in hexadecimal (i.e. #FF0000 – pure red) and symbolic notation (See HTML 3.2 definition).

There is one little bug: if a colored phrase in RTF document is followed by a table (right after) then this table erroneously is colored too.

Workaround : add any uncolored char (single blank) just after the colored phrase.