Difference between revisions of "Visual Prolog 7.4 New Features"

From wiki.visual-prolog.com

(Program Point)
Line 11: Line 11:
=== Program Point ===
=== Program Point ===
Support for exceptions handling improvement (programPoint type and attribute, implicit programPoint argument)
Support for exceptions handling improvement (programPoint type and attribute, implicit programPoint argument).  See also [[Language Reference/Predicates#programPoint|programPoint]].
=== Syntax & Warnings ===
=== Syntax & Warnings ===

Revision as of 13:55, 21 November 2012

Template:Preliminary Documentation


64 bit programs

The main new feature in Visual Prolog 7.4 is the ability to generate 64 bit programs (Commercial Edition only), making it possible to write programs that exploit more of the computers resources.

Notice to ensure source code compatability between 32 and 64 bit programs a number of types have been changed and it is necessary to update the programs, see Visual Prolog 7.4 Upgrade Notes.

Program Point

Support for exceptions handling improvement (programPoint type and attribute, implicit programPoint argument). See also programPoint.

Syntax & Warnings

  • Better handling of comma (,) before then, elseif, else, end if, do and end foreach
  • Error c550 for inlining a field from a null pointer
  • Warning c647 if bound/1 is applied to a variable which is always free
  • Warning if scope is only opened but is not actually used (unused open for class core is ignored). Removing such excessive open-directives makes the Optimal Includes more effective. This warning is switched off by the default (option /w:231 turns it on).


PFC have been updated to be 64bit compatible. A few packages have not been updated, but have instead been deprecated and replaced by new packages.

  • vpiEditor is deprecated (replaced by sciLexer editor)
  • regExp is deprecated (replaced by regEx)


  • sciLexer New editor control based on the Scintilla editor with lexers (including Visual Prolog lexer).
  • webBrowser New control control comprehensive wrapping of the Internet Explorer WebBrowserControl
  • Improved clipboard handling (with HTML support)
  • ribbonControl and command system and controlSerialization; with a run-time visual designer that simplifies the process of making ribbons
  • toolboxControl New control
  • headerControl New control
  • rebar + statusBar New packages
  • shellNotificationIcon for handing notifications in the shells notification area + Demo
  • toolTip New package and toolTip functionality on standard controls + Demo
  • splitControl New control for multi-split management; with a run-time visual designer that simplifies the process of making splits
  • splitterControl New control for the split in windows
  • dragNdrop New class for (in-program) drag and drop functionality + Demo
  • Object oriented GDI support
  • Object oriented GDI+ support for
    • bitmap
    • brush
    • font
    • palette
    • pen
    • deviceContext
    • icon
  • gui_native::createDialogIndirectParam Update for font handling
  • window::listenUntilDestroy New predicate for listening to an event, but detach the listening when the window is destroyed
  • messageLoop for SDI applications

PFC (non-GUI)

  • regEx package based on [www.boost.org/libs/regex boost regular expression library]
  • mapM_hash & setM_hash New classes for hash table implementations of maps and sets
  • arrayM uses pointer to memory instead of binary: makes it possible to interpret non-binaries as arrays and is more efficient
  • arrayM_inline New class for interpretation of C/C++ struct arrays
  • arrayM_boolean New class for compact boolean arrays (1 bit per boolean).
  • array2M New class for 2 dimensional arrays
  • socket New class for object oriented WinSock2 support
  • event0 - event7 New classes for general/generic event handling (notify+listener)
  • iStream_stream class for mapping a Visual Prolog stream as an IStream com object (CE-only)
  • improved ISAPI support
  • json (pfc/web/json) and jsonRpc New packages for JSON and JSON RPC 2.0 support (CE-only)
  • memory allocate functions with argument for atomic/non-atomic
  • ODBC auto parameter binding get the size from the database by means of SQLDescribeParam
  • shell_api::sHCreateStreamOnFileEx new predicate for creating an IStream com object from a file
  • xhtmlWriter class for writing xhtml/xhtml5 using an xmlWriter
  • xmlReader & xmlWriter based on the xmlLite API (CE-only) + Demo
  • internetExplorer class for automating an out-of-process Internet Explorer


  • New simplified settings dialog
  • Add "No To All" button to the dialog for removing file from a project
  • Create empty clause if there is compiler error for absent clause for a predicate
  • Global unreachability support
  • History of Run Arguments
  • Improved Browse View
  • Improved the manifest handling
  • Load browse info in a separate thread (performance optimization)
  • SDI applications support
  • Tools entries in project-tree popup menu


  • Soft/hard breakpoints
  • Add current class facts into the variable window
  • Show class facts in the Variable Window for a class predicate
  • Give names to objects
  • Show gmtTimeValue and localTimeValue as dates and times.
  • Show the error description for hResult values.
  • Watch Window improvement
  • Copying the entire debug tree to the clipboard
  • Improve memory view for 64bit and break points handling


  • win32.lib + win32.x64.lib updated to Windows Software Development Kit (SDK) for Windows 8
  • PFC, VPI, IDE: Help button in the title bar
  • SolutionManager. A utility for better handling of a collection of projects
  • VipBuilder: Add /platform option for target machine
  • VPI: Support DDE in SDI application

See also