Difference between revisions of "Visual Prolog 7.5 New Features"

From wiki.visual-prolog.com

(Build 7501)
 
(7 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.
 
A major new feature of Visual Prolog 7.5 is the support for creating Web Services/Applications.  See the [[Web Services]] tutorial for details.
  
== Language ==
+
== Build 7500 ==
  
* Improved procedure check for number ranges (e.g. [1..3])
+
=== 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>hasdomain/1</vp> predicate
+
* 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 27: 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 37: Line 39:
 
* The Visual Prolog parser
 
* The Visual Prolog parser
 
* Project file api
 
* Project file api
* New package for LALR(1) parser generator (Complete LALR(1) parser generartor will follow on WEB)
+
* 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 53: 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
  
== Updates ==
+
== Build 7501 ==
  
=== Build 7501 ===
+
Build 7501 mainly contains bug fixes as listed below.  But the commercial edition also contains an [[LALR Parser Generator]].
  
Bug fixes:
+
=== Compiler ===
  
Compiler
 
 
* [http://discuss.visual-prolog.com/viewtopic.php?t=13159 Problem with Must-Unify]
 
* [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]
 
* Problem with [http://discuss.visual-prolog.com/viewtopic.php?t=13142 predicate constants]
Line 84: Line 85:
 
* Access violation in example (incorrect type library for allocation)
 
* Access violation in example (incorrect type library for allocation)
 
* Illegal error for free type parameter in type expression
 
* Illegal error for free type parameter in type expression
PFC
+
=== PFC ===
 +
 
 
* COM: Add <vp>comDispInterface::getIndexedProperty</vp> ([http://discuss.visual-prolog.com/viewtopic.php?t=13173 COM exception: Member not found])
 
* COM: Add <vp>comDispInterface::getIndexedProperty</vp> ([http://discuss.visual-prolog.com/viewtopic.php?t=13173 COM exception: Member not found])
IDE
+
 
 +
=== IDE ===
 +
 
 
* IDE API <vp>setCurrentDirectory</vp> fails
 
* IDE API <vp>setCurrentDirectory</vp> fails
 
* Exception 'Single fact 'oleInPlaceObject_fact' from internal database 'activeXcontrol::activeXcontrol@objectDB' has no value'
 
* Exception 'Single fact 'oleInPlaceObject_fact' from internal database 'activeXcontrol::activeXcontrol@objectDB' has no value'
Line 101: Line 105:
 
* IDE doesn't create .bro file with new console without manifest
 
* IDE doesn't create .bro file with new console without manifest
 
* timerControl exception in IDE
 
* timerControl exception in IDE
Other
+
 
 +
=== Other ===
 +
 
 
* xmlSerializerGenerator: generation of types with incorrect dashes
 
* xmlSerializerGenerator: generation of types with incorrect dashes
 
* ChainDB 64bit: Memory overriding (not-aligned arrays of internal structures that contain pointers)
 
* 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
 
* 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 110: 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

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

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