Difference between revisions of "Visual Prolog 7.5 New Features"

From wiki.visual-prolog.com

(Build 7502)
m (casing)
Line 13: Line 13:
 
* 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)

Revision as of 09:03, 29 June 2017

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