Visual Prolog 11 New Features

From wiki.visual-prolog.com

Revision as of 14:19, 9 January 2024 by Thomas Linder Puls (talk | contribs) (download demo)

 


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.

The new vipLaunch utility for launching projects in correct IDE is included in the Visual Prolog 11 installer.

Download Visual Prolog 11 Demo Examples.

Build 1104

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

See also

See also Visual Prolog 11 Upgrade Notes.