Difference between revisions of "Visual Prolog 8 New Features"

From wiki.visual-prolog.com

(late facts & immediate)
(otherwise)
Line 7: Line 7:
=== Language ===
=== Language ===


* Late initialization of {{Lang2|Facts|Fact Variable Declarations|fact variables}} and new attribute {{Lang2|Attributes|immediate|<vp>[immediate]</vp>}} for enforcing immediate fact variable initialization.
* A new [[Presenters]] facility for improved debugging experience and runtime presentation of data.
* A new [[Presenters]] facility for improved debugging experience and runtime presentation of data.
* A new [[Functor Domain Versioning]] facility with attributes {{Lang2|Attributes|default|<vp>[default]</vp>}} and  {{Lang2|Attributes|retiredFunctor |<vp>[retiredFunctor]</vp>}}.
* A new [[Functor Domain Versioning]] facility with attributes {{Lang2|Attributes|default|<vp>[default]</vp>}} and  {{Lang2|Attributes|retiredFunctor |<vp>[retiredFunctor]</vp>}}.
* Late initialization of {{Lang2|Facts|Fact Variable Declarations|fact variables}} and new attribute {{Lang2|Attributes|immediate|<vp>[immediate]</vp>}} for enforcing immediate fact variable initialization.
* A new {{Lang2|Terms|otherwise|<vp>otherwise</vp>}} operator.
* New attribute {{Lang2|Attributes|classInitializer|<vp>[classInitializer]</vp>}} for initializing classes.
* New attribute {{Lang2|Attributes|classInitializer|<vp>[classInitializer]</vp>}} for initializing classes.
* New attribute  {{Lang2|Attributes|compiletimeSetting|<vp>[compiletimeSetting]</vp>}} specifuing that a constant is used as a compile time setting.
* New attribute  {{Lang2|Attributes|compiletimeSetting|<vp>[compiletimeSetting]</vp>}} specifuing that a constant is used as a compile time setting.

Revision as of 14:58, 7 August 2017

Presenters is a new feature in Visual Prolog that is used for creating "nice" presentation of data. It can be used when writing data, but more importantly it is used by the debugger to provide a much more programmer friendly presentation of complex data structures.


Build 800

Language

PFC

  • Several data structures (notably set and map structures) have presenters attached
  • Asynchronous programming support with future and promise classes (pfc\asynchronous\future)
  • Asynchronous socket support (pfc\asynchronous\asyncSocket & pfc\asynchronous\asyncSocketListener)
  • The low level ioCompletionPort has been superceded by the the higher level threadpool
  • http server fuctionality has been moved from the ioCompletionPort to the threadpool
  • http server have extended with asynchronous webSocket support
  • Library support for logging with several different loggers and an XML based configuration system
  • Support for accessing and manipulating Windows Active Directory (pfc\windowsApi\activeDS_api)
  • Windows compression API support
  • Binding to Microsoft Message Queue (pfc\windowsApi\msmq_api)
  • Support for hashing data (pfc\hash)
  • Segmented memory has been added to avoid huge memory alloctions (pfc\memory\segmented)
  • String and binary streams has been updated to use segmented memory internally to avoid huge memory allocations
  • New multi thread synchronization support (pfc\multithread\atomic & pfc\multithread\compareAndSwap)
  • Non-blocking (compare and swap) synchronized sets and maps (setM_redBlack_cas & mapM_redBlack_cas).
  • Blocking synchronized sets and maps (setM_redBlack_block & mapM_redBlack_block)

VIP

Vip is a directory (Commercial Edition only) that provides access to certain internal tools and structures

  • Most of the LALR Parser Generator is moved to the vip directory, so the vipLalrGen demo project in itself contains very little code.


IDE

The IDE supports automatic formatting of source code. The feature can be applied manually on the active editor using Edit -> Format File Ctrl+Alt+T, but it can also be switched on as a project setting on Project -> Settings... Alt+F7 -> Build Options.

When creating a new project the option is initially switched on for that project.

Debugger

  • Presenters are used to provide programmer friendly view of program data.

Others

  • The LALR Parser Generator is updated to automatically generate a lexer from the grammar specification.
  • PIE: Support for integer64
  • vipPP demo for pretty printing Visual Prolog source code (used for formatting in the IDE)
  • Demo project for the logging tool
  • webService demo project that partly replaces the webRPC demo; it has a better structure and contains webSocket demonstration, but does not exist as an isApi version, since webSockets are not supported for isApi.

See also