Visual Prolog 7.4 New Features


Revision as of 15:20, 19 November 2012 by Thomas Linder Puls (talk | contribs) (PFC (non-GUI): CE)

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.

Program Point

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

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 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 [ 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


  • Give names to objects
  • Copying the entire debug tree to the clipboard
  • Soft/hard breakpoints
  • Improve memory view for 64bit and break points handling
  • Show class facts in the Variable Window for a class predicate
  • Add current class facts into the variable window
  • Show dt::dateOffset, dt::minutOffset and dt::timeOffset as dates and times.
  • Watch Window implementation


  • 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