Difference between revisions of "Visual Prolog 8 New Features"

From wiki.visual-prolog.com

(initial stub)
 
(Build 802)
 
(7 intermediate revisions by the same user not shown)
Line 1: Line 1:
{{Template:NonReleased}}
[[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 ===
* 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>}}.
* 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|compiletimeSetting|<vp>[compiletimeSetting]</vp>}} specifuing that a constant is used as a compile time setting.
* New built-in predicate {{Lang2|Built-in entities|fact_address|<vp>fact_address/1</vp>}}.
* New built-in reflection predicates {{Lang2|Built-in entities|typeLibraryOf|<vp>typeLibraryOf/1</vp>}} and {{Lang2|Built-in entities|typeDescriptorOf|<vp>typeDescriptorOf/1</vp>}}.
* The type system now allows structural subtyping.
=== PFC ===
Notice that some PFC changes only apply to the Commercial Edition, because the relevant part of the software is not present in the Personal Edition.
* Several data structures (notably set and map structures) have presenters attached
* Asynchronous programming support with <vp>future</vp> and <vp>promise</vp> classes (pfc\asynchronous\future)
* Asynchronous socket support (pfc\asynchronous\asyncSocket & pfc\asynchronous\asyncSocketListener)
* The low level <vp>ioCompletionPort</vp> has been superceded by the the higher level <vp>threadpool</vp>
* http server fuctionality has been moved from the <vp>ioCompletionPort</vp> to the <vp>threadpool</vp>
* http server have extended with asynchronous <vp>webSocket</vp> 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 (<vp>setM_redBlack_cas</vp> & <vp>mapM_redBlack_cas</vp>).
* Blocking synchronized sets and maps (<vp>setM_redBlack_block</vp> & <vp>mapM_redBlack_block</vp>)
=== 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 <vp>vip</vp> 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.
== Build 801 ==
Build 801 mainly contains bug fixes as listed below.
=== Language ===
* [https://discuss.visual-prolog.com/viewtopic.php?t=15676 Problem with scopeLinker]
* [https://discuss.visual-prolog.com/viewtopic.php?t=15678 Problem with incompatible types]
* Internal error in normalization
* Compilation order bug
* Tailcall optimization: register destroyed
* Incorrect static initialization of the fact (fact variable) <vp>crypt::blockLenght/0</vp> with not statically initialized fact (fact variable) <vp>crypt::hashHandle_fact/0</vp>
* Access violation exception in Vip 8 (TCO kind is overidden by mistake)
* Bug in variables reduction (because of constants values)
* Fail warning w654 for a constant referenced from <vp>[used]</vp> constant
=== Debugger ===
* Wrong <vp>This</vp> in property (64-bit)
=== IDE ===
* Automatic Code formatting enhanced
== Build 802 ==
Build 802 mainly contains bug fixes as listed below.
=== Language ===
* [https://discuss.visual-prolog.com/viewtopic.php?f=2&t=15712 DateControl in 64 bit application]
* [https://discuss.visual-prolog.com/viewtopic.php?f=2&t=15737 Problem with generic domain]
* [https://discuss.visual-prolog.com/viewtopic.php?f=2&t=15739 List unification problem]
* [https://discuss.visual-prolog.com/viewtopic.php?f=2&t=15794 Memory corruption in finalizer]


== See also ==
== See also ==
Line 6: Line 101:
* [[Visual Prolog 8 Upgrade Notes]]
* [[Visual Prolog 8 Upgrade Notes]]


[[Category:Release Notes]]
[[Category:Release Notes|8 New Features]]

Latest revision as of 12:05, 14 May 2018

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

Notice that some PFC changes only apply to the Commercial Edition, because the relevant part of the software is not present in the Personal Edition.

  • 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.

Build 801

Build 801 mainly contains bug fixes as listed below.

Language

  • Problem with scopeLinker
  • Problem with incompatible types
  • Internal error in normalization
  • Compilation order bug
  • Tailcall optimization: register destroyed
  • Incorrect static initialization of the fact (fact variable) crypt::blockLenght/0 with not statically initialized fact (fact variable) crypt::hashHandle_fact/0
  • Access violation exception in Vip 8 (TCO kind is overidden by mistake)
  • Bug in variables reduction (because of constants values)
  • Fail warning w654 for a constant referenced from [used] constant

Debugger

  • Wrong This in property (64-bit)

IDE

  • Automatic Code formatting enhanced

Build 802

Build 802 mainly contains bug fixes as listed below.

Language

See also