Visual Prolog 7.3 New Features
From wiki.visual-prolog.com
Template:Preliminary Documentation
Language
- Generic interfaces and classes
- Monitors with guards
- Native interfaces support:
- Inline structures and strings. Attributes inline/0 and inline/1
- Functor-less unions. Attribute union/0
- Passing parameters by value. Attribute byVal/0
- Must-unify operator
- Universal type (an extra built-in type any and predicate toAny/1->)
- Conversion on polymorphic values possibility
- The precedence of unary minus was changed (so that power operator has higher precedence)
- External resolution is default for predicates declared with apicall calling convention.
- They cannot have clauses
- explicit externally resolution is only legal when a DLL is stated
- New built-in predicate fromEllipsis : (...) -> any* Terms
- New warnings for:
- Local object predicates which do not use THIS (and therefore can be declared as class predicates).
- Unused local constants.
- Condition of foreach statement which has no backtrack point (i.e. mode is not multi or nondeterm).
- Other new attributes (retired/1, noDefaultConstructor/1, used/0).
- Runtime distinction between privately and publicly supported interfaces was removed.
- Some preparations for supporting 64bit systems: built-in types integerNative and unsignedNative.
- Extended versions of built-in predicates toTerm/2-> and tryToTerm/2-> (receives type as the first parameter).
IDE
- Project tree was redesigned.
- IncludedIn and Includes windows were moved to Preview Pane of project window.
- Browse dialog was improved (automatically jump to the 1st occurrence of search entity on locate, save the last dialog position, etc.).
- Find In Files dialog was improved (one result window, F8 for next, mixed case sensitive search mode, state is saved, etc.).
- Namespaces support was improved (it’s possible to put forms, etc. in a namespace).
- IntelliSense feature was strongly improved for typing speed and convenience for work.
- Improve tab navigation dialog, use ALT button for filtering [ReadOnly] windows and Del for closing windows.
- Use Project Kinds (Console application, GUI application and DLL) instead of UI Strategy and Target Type.
- Dump view improvements (Shift+F2).
- Sorting feature in Errors Window, Break points Window, etc.
- Optimal Includes Set was improved (output, local scopes, etc.).
Debugger
- Marking a particular variable in the variable window.
- View long lists improvement.
- Speed of restarting was improved.
- Memory break points and fact access (for some types).
- Scripts for break points.
- Multi-lines in tooltips.
- Multi-threaded application debugging was improved (thread names, break points handling).
PFC
New packages
- Collection library
- Algebraic: redBlackSet, leftistPriorityQueue
- Modifiable: mapM_redBlack, priorityQueueM_leftist, queueM_fact, setM_redBlack
- Persistent: mapP_redBlack, priorityQueueP_leftist, queueP_fact, setP_redBlack
- varM modifiable variable
- linkControl PFC version of the Link common control
- richEditControl PFC version of the RichEdit common control
- treeControl PFC model based version of the TreeView common control
- gdiplus PFC version of GDI+
- cryptography hash, sha1, md5 & base64
- eventSource generalization of event notification/listening
- monitorQueue thread safe queue class based on the monitor facility
- reflection basic functionalty for code reflection
- inputStream_null & outputStream_null media-less streams (input is exhausted; outpt throws away)
- lZ_fileSystem_native Interface to Lempel-Ziv Decompression API functionality
- shell_api Api level interface to the Windows Shell
- winsock2_native native bindings to Windows Sockets 2
Extensions and improvements of existing packages
- List package was improved for speed (predicates sort, removeDuplicate, drop, max/min etc.) and functionality (predicate isMemberEq (and similar predicates) that uses a deterministic predicate as test)
- GUI: listControl with owner-drawing capabilities
- Extend Windows API functionality (expand uxTheme_native with the rest of the functions and the constants from vsStyle.h, etc.)
- Add moving listener/responder to splitTwoControl
- Add the fraction handling from format to formatTime
- Improve speed for some packages (string, fileName, listViewControl)
- string::rear/2-> returns the rear part of a string
- Math package: predicates roundToInteger64/1-> and roundToUnsigned64/1->
- Better handling of default button size
- msXLM_api update to version 6.0 of diverse COMponent classes
Others
- More efficient memory handling (using typed memory allocation for compound terms and internal facts chains)
- A lot of optimizations for speed and size of generated code
- Some new Demo Examples had been added (Parser Generator, LZDecompression and TreeControlDemo (CE only)).
- VipBuilder: extra option to ignore all required statements.
- Help on built-in entities.
- Extend Win32 library (with more names from MS libraries).
- Provide more context to consult exceptions.
- Linker: speed was improved.
- Vault Integration was updated to version 4.1.4