Visual Prolog 9 New Features
Visual Prolog 9 has a number of new language features.
- 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])
- 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.
- 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 fixes bugs as listed below.
- Constant used in inline attribute is used
- Code generation for ~~ breaks stack
- retired entities should not cause inheritance ambiguities
- The PIE example could not be compiled on Windows 7 computers (and earlier).
Build 902 fixes a runtime bug with finalizers (see Memory corruption in finalizer).
See also Visual Prolog 9 Upgrade Notes.