Visual Prolog 11 New Features

From wiki.visual-prolog.com

Visual Prolog 11 has been extended with Suspending Predicates.

The development system can only run on 64 bit Windows, but can still build programs for both 32 and 64 bit Windows.

New utility "vipLaunch" for launching projects in correct IDE. The installer is included in the Visual Prolog 11 installer, but you can also install the latest version directly here vipLaunch installer.

Download Visual Prolog 11 Demo Examples.

Build 1105

Language

  • Suspending Predicates
  • feature attribute, built-in predicate is_feature_available, compiler option /ENABLEFEature:feature_name
  • Built-in predicates convertAllowNull and tryConvertAllowNull
  • Built-in constants <interface>::null for all interfaces
  • Warning: explicit programmingPoint available
  • Embedded string8 (utf8) support (literals and conversions)
  • Warning c665 for a fact which is always initialized with a constant and is not changed (switched off by the default)
  • Digit separator support (syntax only) 1_000_000 and 0x_1A2B_3C4D

PFC

  • Support for asynchronous programming by means of suspending predicates:
    • New: executionContext_pool a multi threaded pool for asynchronous and background work
    • New: executionContext_single a single threaded worker for asynchronous work
    • New: Suspending predicates can be executed in a GUI thread (using future::submit)
    • New: Diverse suspending predicate domains in core
    • Updated: asyncSocket & asyncSocketListener
    • Updated: master/slave support
    • Updated: future/promise
    • Updated: HTTP server & JSON RPC & webSocket
    • Updated: webView2
    • Updated: watchDirectory
    • Removed: continuation class and inteface due to redundancy.
    • Removed: threadpool and all related classes and interfaces due to redundancy.
    • New support class: resumable class for internal support of suspending predicates
    • New support classes: tp (etc) internal win32 threadpool interface for dealing with asynchronous io, timers, syncObject waiting, etc
    • Deprecated/removed diverse continuation based stuff
  • MSXML import free threaded xmlhttp: including iXMLHTTPRequest3
  • Predicate messageBox::displayWarningYesNo_dt replacement for displayWarning_dt
  • Deprecate messageBox::displayWarning_dt: UX: It is reccomended to use Yes/No warnings instead of OK/Cancel
  • Color predicates blendColor, darken and lighten in gdiplus.
  • fetchString8asString and useLocalTimeValue properties on odbcConnection and odbcStatement.
  • delayCallLimit predicate on window for delay calls with a MaxDelay.
  • inputStream_binary and outputStream_binary supports/allows ansi(utf8) mode.
  • Improved outputStream performance for messageControl.
  • event0, event1, ... classes: lock free threadsafe.
  • 'Sergoe Fluent Icons'/'Segoe MDL2 Assets' glyph icons in ribbonControl/commands
  • Explorer theme is applied to treeControl by default.
  • monitorQueue and monitorQueue_length are updated with close functionality. As a result the dequeue operation has become determ.
  • Console projects supports Console Virtual Terminal Sequences (by off default).
  • flag jsonRpcApi{@Context}::exceptionTraceLevel controlling which/when exception dumps that are send to the client side.

IDE

  • Main IDE is now always 64bit
  • Debug Adapter makes cross-debugging to 32bit possible
  • Dynamic Help (based on browse information and syntax parsing results)
  • New toolbar
  • vipId support
  • Use new Sergoe Fluent Icons
  • Default SDI project includes 'Sergoe Fluent Icons'/'Segoe MDL2 Assets' glyph icons the ribbonControl/commands
  • Add variable $(node_modules)
  • New Menu item handlers (move code expert to properties window)
  • Alt+X converts (unicode) hex to char
  • changes.htm and appData\doc\vip.chm handling
  • Updated Welcome window
  • splitterControl in welcome page
  • Build system: pre-build command
  • Automatic parallel obj/deb directories

Debugger

Other

  • Remove superfluous webRpc demo & update webServiceDemo to dispose the session.
  • The webServiceDemo is updated to demonstrate usage of the flag jsonRpcApi{@Context}::exceptionTraceLevel.
  • Add zip / unzip functionality

Build 1106

Language

  • Fix: Subtype presenter problem
  • Fix: Stack overflow exception on binary constant allocation
  • Fix: Wrong debug info for unbound variable (functor component)
  • Fix: Debugger/presenters: false objects

PFC

  • webView2
    • Fix: Windows 7 and Windows 8 compatibility./li>
    • Additional CompleteHandler handling (suspending predicates).
  • Fix: ribbonControl: Release native graphics context.
  • odbc: add column/parameter number for results longer than the buffer.
  • window::centerTo: map to Windows parent (not pfc parent).

IDE

  • webView2 control show on Windows 7/8 & update build number
  • show correct build number

Other

  • comWrap: Handle more winRT CompleteHandlers (for webView2)
  • Fix: Runtime debugger/presenters: false objects

Build 1107

PFC

  • New class gcUcBuffer: for buffers that cannot be caught by false pointers.
  • odbc: utilize gcUcBuffer to avoid that odbc buffers are caught by false pointers.
  • New predicate clipBoard::putFileList for putting files on the clipboard in the pre-defined hDrop format.
  • command and ribbonControl: new responder queryBadgeState.
  • Prevent vpi::processEvents from interfering with postAction order.

IDE

  • Personal edition supports 64 bit targets.
  • Open external browser for registration, wiki-help and forum links.
  • Help -> Prolog Foundation Classes (PFC) opens vip.chm.

Other

Fix: MemoryProfiler wrong scaling of total graph.

Build 1108

PFC

  • New property remoteAddress on interface httpRequest.
  • New predicate memory::mkCopy_atomic for copying structs.
  • New predicates formatSocketAddress and formatSockAddr in class winSock2_api.
  • winSock2_api correct and simplify various domains.

IDE

  • Fix: Exceptions when git is not installed.

Build 1110

Language

  • match and case has been reserved as keywords in next major release.

PFC

  • Fix: Wrong type of parameter type in predicate winHttp_native::winHttpSetOption declaration.
  • Fix: Eliminate race condition for postAction.
  • Deprecate time::getTickCount in favour of performanceCounter's.
  • Deprecate regEx::match because match will become a keyword.

Build 1111

PFC

  • Fix: time_api::getTimeZoneOffset hours -> minutes
  • Fix: odbcStatement::free: allow to be called more than once
  • Fix: stringFormat (gdiplus): nullary constructor must create a fresh object

Debugger

Fix: Dictionary loading timeout for large programs in debug adaptor

See also

See also Visual Prolog 11 Upgrade Notes.