Difference between revisions of "Visual Prolog 9 New Features"
From wiki.visual-prolog.com
(Bounded polymorphism link) |
(Build 906) |
||
(12 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
Visual Prolog 9 has a number of new language features. | |||
== Build 900 == | |||
=== Language === | === Language === | ||
Line 24: | Line 24: | ||
* More encryption support through the classes <vp>crypt</vp>, <vp>cryptHash</vp> and <vp>bCrypt_api</vp>. | * More encryption support through the classes <vp>crypt</vp>, <vp>cryptHash</vp> and <vp>bCrypt_api</vp>. | ||
* Support for | * Support for JSON Web Tokens (jwt). | ||
* Support for [[Password Hashing]]. | * Support for [[Password Hashing]]. | ||
* OLE drag and drop and clipboard support. | * OLE drag and drop and clipboard support. | ||
Line 32: | Line 32: | ||
=== Examples === | === Examples === | ||
* <vp>jsonWebToken</vp> demonstrates how to create and unpack | * <vp>jsonWebToken</vp> demonstrates how to create and unpack JSON Web Tokens (jwt) and a way to [[Password Hashing|hash passwords]]. | ||
* <vp>tail</vp> a program that display changes to files as they happens (e.g. for live following of log files). | * <vp>tail</vp> a program that display changes to files as they happens (e.g. for live following of log files). | ||
* <vp>dragDropTargetOle</vp> that illustrates how OLE drag and drop and clipboard handling can be used. | * <vp>dragDropTargetOle</vp> that illustrates how OLE drag and drop and clipboard handling can be used. | ||
== Build 901 == | |||
Build 901 fixes bugs as listed below. | |||
=== Language === | |||
* Constant used in <vp>inline</vp> attribute is used | |||
* Code generation for <vp>~~</vp> breaks stack | |||
* <vp>retired</vp> entities should not cause inheritance ambiguities | |||
=== IDE === | |||
* The PIE example could not be compiled on Windows 7 computers (and earlier). | |||
=== PFC === | |||
* [https://discuss.visual-prolog.com/viewtopic.php?t=16719 Raising an exception in a class initializer] | |||
== Build 902 == | |||
Build 902 fixes a runtime bug with finalizers (see [https://discuss.visual-prolog.com/viewtopic.php?f=2&t=15794 Memory corruption in finalizer]). | |||
== Build 903 == | |||
Build 903 fixes issues in the debugger. | |||
== Build 904 == | |||
Build 904 fixes issues a number of issues in reported build 903. | |||
* The IDE triggers an exception dump. | |||
* [https://discuss.visual-prolog.com/viewtopic.php?f=2&t=17374 VIP 9.03 Optimal Includes Exception] The involved readonly file will not nee update. | |||
* Naming of resource identifies have been reverted to the Visual Prolog 8 conventions [https://discuss.visual-prolog.com/viewtopic.php?f=2&t=17383#p48972] | |||
== Build 905 == | |||
Build 905 fixes a number of IDE and debugger issues reported in build 904. | |||
== Build 906 == | |||
Build 906 changes: | |||
* Code generation bug for 64bit bitwise operators ([https://discuss.visual-prolog.com/viewtopic.php?f=2&t=17006 unsigned64 bit operations]). | |||
* 8KB buffer problem for editor save to stream ([https://discuss.visual-prolog.com/viewtopic.php?f=2&t=17123 Source file too large?]). | |||
* <vp>trailingZeroBits64</vp> has been added to <vp>bit</vp>, and bit counts has been changes to <vp>positive</vp> ([https://discuss.visual-prolog.com/viewtopic.php?f=2&t=17493 Wishlist Item]) | |||
== See also == | |||
See also [[Visual Prolog 9 Upgrade Notes]]. | See also [[Visual Prolog 9 Upgrade Notes]]. | ||
[[Category:Release Notes|9 New Features]] | [[Category:Release Notes|9 New Features]] |
Latest revision as of 09:31, 2 June 2020
Visual Prolog 9 has a number of new language features.
Build 900
Language
- Bounded polymorphism.
- Extension Predicates.
- The nondeterm fact databases have been made threadsafe (lock free)
- Constant fact variables that does not change value after initialization.
- New ways to pass arguments. Named, default and optional parameters and functor originals.
- New attribute [mandatoryOut].
- New predicate notErroneous/1->.
- Bitwise and boolean operators **, ++, ...
- New attribute [attribute].
- Attribute [byVal] can now also be used for output arguments [byVal, out].
- New attribute [pack(N)]
- New directive #stringinclude.
- Lazy/late fact initialization is made atomic/threadsafe.
- More compact layout of functor terms on the 64 bit platform
- bit::isSet/2 is handled intrinsically by the compiler ([intrinsic])
PFC
- More encryption support through the classes crypt, cryptHash and bCrypt_api.
- Support for JSON Web Tokens (jwt).
- Support for Password Hashing.
- OLE drag and drop and clipboard support.
- Support for Slim Reader/Writer locks (srwLock)
- New package winHttp_api for client side HTTP/HTTPS operations.
Examples
- jsonWebToken demonstrates how to create and unpack JSON Web Tokens (jwt) and a way to hash passwords.
- tail a program that display changes to files as they happens (e.g. for live following of log files).
- dragDropTargetOle that illustrates how OLE drag and drop and clipboard handling can be used.
Build 901
Build 901 fixes bugs as listed below.
Language
- Constant used in inline attribute is used
- Code generation for ~~ breaks stack
- retired entities should not cause inheritance ambiguities
IDE
- The PIE example could not be compiled on Windows 7 computers (and earlier).
PFC
Build 902
Build 902 fixes a runtime bug with finalizers (see Memory corruption in finalizer).
Build 903
Build 903 fixes issues in the debugger.
Build 904
Build 904 fixes issues a number of issues in reported build 903.
- The IDE triggers an exception dump.
- VIP 9.03 Optimal Includes Exception The involved readonly file will not nee update.
- Naming of resource identifies have been reverted to the Visual Prolog 8 conventions [1]
Build 905
Build 905 fixes a number of IDE and debugger issues reported in build 904.
Build 906
Build 906 changes:
- Code generation bug for 64bit bitwise operators (unsigned64 bit operations).
- 8KB buffer problem for editor save to stream (Source file too large?).
- trailingZeroBits64 has been added to bit, and bit counts has been changes to positive (Wishlist Item)
See also
See also Visual Prolog 9 Upgrade Notes.