Visual Prolog 8 New Features
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.
- Late initialization of fact variables and new attribute [immediate] for enforcing immediate fact variable initialization.
- A new Presenters facility for improved debugging experience and runtime presentation of data.
- A new Functor Domain Versioning facility with attributes [default] and [retiredFunctor].
- New attribute [classInitializer] for initializing classes.
- New attribute [compiletimeSetting] specifuing that a constant is used as a compile time setting.
- New built-in predicate fact_address/1.
- New built-in reflection predicates typeLibraryOf/1 and typeDescriptorOf/1.
- The type system now allows structural subtyping.
- 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 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.
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.
- Presenters are used to provide programmer friendly view of program data.
- 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.