Difference between revisions of "Visual Prolog 7.5 New Features"
From wiki.visual-prolog.com
(→PFC: class names) |
|||
(9 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
A major new feature of Visual Prolog 7.5 is the support for creating Web Services/Applications. See the [[Web Services]] tutorial for details. | |||
* Improved procedure check for number ranges (e.g. [1..3]) | == Build 7500 == | ||
=== Language === | |||
* Improved procedure check for number ranges (e.g. <vp>[1..3]</vp>) | |||
* if-then-else expression (in addition to the existing if-then-else statement) | * if-then-else expression (in addition to the existing if-then-else statement) | ||
* The condition in an if-then-else now contains an implicit cut, and thus allows non-deterministic condition | * The condition in an if-then-else now contains an implicit cut, and thus allows non-deterministic condition | ||
* Improved garbage collection: Typed allocation of objects reduces the possibility of false pointers | * Improved garbage collection: Typed allocation of objects reduces the possibility of false pointers | ||
* Language C/C++ virtual object call compatibility (<vp>language thiscall</vp>) | * Language C/C++ virtual object call compatibility (<vp>language thiscall</vp>) | ||
* New attribute [inline(size)] for inlining byte sequences in structs | * New attribute <vp>[inline(size)]</vp> for inlining byte sequences in structs | ||
* Additional string literals syntax | * Additional string literals syntax | ||
* Operator <vp>in</vp> for member test and iteration | * Operator <vp>in</vp> for member test and iteration | ||
* New <vp>hasDomain/2-></vp> function, in addition to the existing <vp> | * New <vp>hasDomain/2-></vp> function, in addition to the existing <vp>hasDomain/1</vp> predicate | ||
* New deterministic <vp>orelse</vp> operator | * New deterministic <vp>orelse</vp> operator | ||
* Warning for superfluous static initialization of an object fact if this fact is also initialized in all constructors (the corresponding warning is switched off by the default) | * Warning for superfluous static initialization of an object fact if this fact is also initialized in all constructors (the corresponding warning is switched off by the default) | ||
* Warning for unused local domains, functors and constants | * Warning for unused local domains, functors and constants | ||
== PFC == | === PFC === | ||
* New packages <vp>scannerSupport</vp> and <vp>cursorScannerSupport</vp> for writing scanners in Visual Prolog | * New packages <vp>scannerSupport</vp> and <vp>cursorScannerSupport</vp> for writing scanners in Visual Prolog | ||
Line 25: | Line 29: | ||
* New packages for JSON-RPC service support: standalone HTTP/HTTPS and/or ISAPI integration into Microsoft Internet Informantion Services, IIS (<vp>jsonRpc</vp>, <vp>jsonRpcService</vp>, ...) | * New packages for JSON-RPC service support: standalone HTTP/HTTPS and/or ISAPI integration into Microsoft Internet Informantion Services, IIS (<vp>jsonRpc</vp>, <vp>jsonRpcService</vp>, ...) | ||
* New package <vp>watchDirectory</vp> (pfc\communications) for monitoring directory changes | * New package <vp>watchDirectory</vp> (pfc\communications) for monitoring directory changes | ||
* New package <vp>sciLexerStatusBar</vp>for editor status line | * New package <vp>sciLexerStatusBar</vp> for editor status line | ||
* New packages for XML parsing/writing according to XSD definition (<vp>xmlSupport</vp>, <vp>fromXmlDomSupport</vp> and <vp>toXmlDomSupport</vp>) | * New packages for XML parsing/writing according to XSD definition (<vp>xmlSupport</vp>, <vp>fromXmlDomSupport</vp> and <vp>toXmlDomSupport</vp>) | ||
* GDI+ support for multi image icons in the <vp>icon</vp> class (utilized by the <vp>ribbonControl</vp>). | * GDI+ support for multi image icons in the <vp>icon</vp> class (utilized by the <vp>ribbonControl</vp>). | ||
== VIP == | === VIP === | ||
Vip is a directory (Commercial Edition only) that provides access to certain internal tools and structures, here among: | Vip is a directory (Commercial Edition only) that provides access to certain internal tools and structures, here among: | ||
Line 35: | Line 39: | ||
* The Visual Prolog parser | * The Visual Prolog parser | ||
* Project file api | * Project file api | ||
* New package for LALR(1) parser generator | * New package for LALR(1) parser generator | ||
== IDE == | === IDE === | ||
* MDI template: new status bar replaces old vpi toolbar | * MDI template: new status bar replaces old vpi toolbar | ||
Line 51: | Line 55: | ||
* The possibility for adding a resorce entity (dlg, or class, etc.) without creating a package | * The possibility for adding a resorce entity (dlg, or class, etc.) without creating a package | ||
== Debugger == | === Debugger === | ||
* Collections (map, set) displayed more user friendly in variables/etc window | * Collections (map, set) displayed more user friendly in variables/etc window | ||
== Others == | === Others === | ||
* Tool for generating XML parser/writer from XSD files | * Tool for generating XML parser/writer from XSD files | ||
* PIE: Support for integer64 | * PIE: Support for integer64 | ||
== Build 7501 == | |||
Build 7501 mainly contains bug fixes as listed below. But the commercial edition also contains an [[LALR Parser Generator]]. | |||
=== Compiler === | |||
* [http://discuss.visual-prolog.com/viewtopic.php?t=13159 Problem with Must-Unify] | |||
* Problem with [http://discuss.visual-prolog.com/viewtopic.php?t=13142 predicate constants] | |||
* [http://discuss.visual-prolog.com/viewtopic.php?t=13145 Error using properties from a generic interface] | |||
* Numeric conversion error in machine instructions generation | |||
* Error on <vp>retractAll</vp> because of invalid code generation (registers management) | |||
* Must-unify leads to access violation when raising proper runtime error (type library passed to runtime function does not correspond to a term) | |||
* Dump in static facts initialization | |||
* Wrong unused domain warning | |||
* Problems with option: /READOnlyterm | |||
* Incorrect list element allocation if it has type like <vp>A*</vp> | |||
* Exception in 64 bit program (large local static size problem) | |||
* Invalid debug information for type libraries | |||
* Recycling bug for open-statements which can be resolved both to a class declaration and interface definition | |||
* Access violation in example (incorrect type library for allocation) | |||
* Illegal error for free type parameter in type expression | |||
=== PFC === | |||
* COM: Add <vp>comDispInterface::getIndexedProperty</vp> ([http://discuss.visual-prolog.com/viewtopic.php?t=13173 COM exception: Member not found]) | |||
=== IDE === | |||
* IDE API <vp>setCurrentDirectory</vp> fails | |||
* Exception 'Single fact 'oleInPlaceObject_fact' from internal database 'activeXcontrol::activeXcontrol@objectDB' has no value' | |||
* Wrong F12 on _builtIn::compare | |||
* Exception 'No active window' in <vp>menuhandle::updateRefactorItems/1</vp> | |||
* Project Settings\Version: Change description does not trigger new resource compilation | |||
* Exception 'emptyString' during browse search for xxx:: | |||
* Changing an IDE variable without opened project gives an exception | |||
* Too long effect of "Apply this action to subsequent files" flag | |||
* Tooltip should use proper brackets for generic argument: {@T} instead of (@T) | |||
* Ctrl+S does not save edited not-project file | |||
* Menu preview improvements | |||
* IDE doesn't remove resources from project | |||
* IDE doesn't create .bro file with new console without manifest | |||
* timerControl exception in IDE | |||
=== Other === | |||
* xmlSerializerGenerator: generation of types with incorrect dashes | |||
* ChainDB 64bit: Memory overriding (not-aligned arrays of internal structures that contain pointers) | |||
* Solution manager: clicking vipsln files opens the solution manager, but the solution is not loaded | |||
== Build 7502 == | |||
Build 7502 contains bug fixes as listed below. | |||
=== Compiler === | |||
* [http://discuss.visual-prolog.com/viewtopic.php?t=15294 Lexical problem] concering comments | |||
* [http://discuss.visual-prolog.com/viewtopic.php?t=14344 Compare char gives wrong result] | |||
* [http://discuss.visual-prolog.com/viewtopic.php?t=13210 Wrong result of sizeOf/1-> predicate] for some integral types like core::integer8 | |||
* [http://discuss.visual-prolog.com/viewtopic.php?t=13239 Missing check for ambiguous delegation] | |||
=== PFC === | |||
* Wrong handling of NULL fields in 64 bit ODBC (gives "string right truncation" error). | |||
=== IDE === | |||
* PIE exception in IDE when debugging 64 bit programs | |||
== See also == | == See also == | ||
Line 64: | Line 135: | ||
* [[Visual Prolog 7.5 Upgrade Notes]] | * [[Visual Prolog 7.5 Upgrade Notes]] | ||
[[Category:Release Notes]] | [[Category:Release Notes|7.5 New Features]] |
Latest revision as of 11:58, 14 May 2018
A major new feature of Visual Prolog 7.5 is the support for creating Web Services/Applications. See the Web Services tutorial for details.
Build 7500
Language
- Improved procedure check for number ranges (e.g. [1..3])
- if-then-else expression (in addition to the existing if-then-else statement)
- The condition in an if-then-else now contains an implicit cut, and thus allows non-deterministic condition
- Improved garbage collection: Typed allocation of objects reduces the possibility of false pointers
- Language C/C++ virtual object call compatibility (language thiscall)
- New attribute [inline(size)] for inlining byte sequences in structs
- Additional string literals syntax
- Operator in for member test and iteration
- New hasDomain/2-> function, in addition to the existing hasDomain/1 predicate
- New deterministic orelse operator
- Warning for superfluous static initialization of an object fact if this fact is also initialized in all constructors (the corresponding warning is switched off by the default)
- Warning for unused local domains, functors and constants
PFC
- New packages scannerSupport and cursorScannerSupport for writing scanners in Visual Prolog
- New package service for creating services in Visual Prolog
- New package parser for LALR(1) parsing
- stream::allowNullPointers property for robust writing of illformed data that contains null-pointers
- readLineCRLF/0-> predicate that copy <CR><LF> to resulting string.
- New packages for standalone HTTP/HTTPS server (httpRequest, ...)
- New package json for JSON representation, parsing and writing
- New packages for JSON-RPC service support: standalone HTTP/HTTPS and/or ISAPI integration into Microsoft Internet Informantion Services, IIS (jsonRpc, jsonRpcService, ...)
- New package watchDirectory (pfc\communications) for monitoring directory changes
- New package sciLexerStatusBar for editor status line
- New packages for XML parsing/writing according to XSD definition (xmlSupport, fromXmlDomSupport and toXmlDomSupport)
- GDI+ support for multi image icons in the icon class (utilized by the ribbonControl).
VIP
Vip is a directory (Commercial Edition only) that provides access to certain internal tools and structures, here among:
- The Visual Prolog parser
- Project file api
- New package for LALR(1) parser generator
IDE
- MDI template: new status bar replaces old vpi toolbar
- SDI template: uses ribbon and new status bar
- "Find usages" tool, for finding usages og predicates/properties/facts in clauses
- Copy a project in Welcome/Open Project window
- Error message corrector for missing/invalid scope
- Project file in XML (*.vipprj)
- Project Tree: directories preview
- Refactoring
- move folder or package
- Set namespaces on a complete package (recursively)
- The possibility for adding a resorce entity (dlg, or class, etc.) without creating a package
Debugger
- Collections (map, set) displayed more user friendly in variables/etc window
Others
- Tool for generating XML parser/writer from XSD files
- PIE: Support for integer64
Build 7501
Build 7501 mainly contains bug fixes as listed below. But the commercial edition also contains an LALR Parser Generator.
Compiler
- Problem with Must-Unify
- Problem with predicate constants
- Error using properties from a generic interface
- Numeric conversion error in machine instructions generation
- Error on retractAll because of invalid code generation (registers management)
- Must-unify leads to access violation when raising proper runtime error (type library passed to runtime function does not correspond to a term)
- Dump in static facts initialization
- Wrong unused domain warning
- Problems with option: /READOnlyterm
- Incorrect list element allocation if it has type like A*
- Exception in 64 bit program (large local static size problem)
- Invalid debug information for type libraries
- Recycling bug for open-statements which can be resolved both to a class declaration and interface definition
- Access violation in example (incorrect type library for allocation)
- Illegal error for free type parameter in type expression
PFC
- COM: Add comDispInterface::getIndexedProperty (COM exception: Member not found)
IDE
- IDE API setCurrentDirectory fails
- Exception 'Single fact 'oleInPlaceObject_fact' from internal database 'activeXcontrol::activeXcontrol@objectDB' has no value'
- Wrong F12 on _builtIn::compare
- Exception 'No active window' in menuhandle::updateRefactorItems/1
- Project Settings\Version: Change description does not trigger new resource compilation
- Exception 'emptyString' during browse search for xxx::
- Changing an IDE variable without opened project gives an exception
- Too long effect of "Apply this action to subsequent files" flag
- Tooltip should use proper brackets for generic argument: {@T} instead of (@T)
- Ctrl+S does not save edited not-project file
- Menu preview improvements
- IDE doesn't remove resources from project
- IDE doesn't create .bro file with new console without manifest
- timerControl exception in IDE
Other
- xmlSerializerGenerator: generation of types with incorrect dashes
- ChainDB 64bit: Memory overriding (not-aligned arrays of internal structures that contain pointers)
- Solution manager: clicking vipsln files opens the solution manager, but the solution is not loaded
Build 7502
Build 7502 contains bug fixes as listed below.
Compiler
- Lexical problem concering comments
- Compare char gives wrong result
- Wrong result of sizeOf/1-> predicate for some integral types like core::integer8
- Missing check for ambiguous delegation
PFC
- Wrong handling of NULL fields in 64 bit ODBC (gives "string right truncation" error).
IDE
- PIE exception in IDE when debugging 64 bit programs