donkerop.blogg.se

Visual prolog 5.2
Visual prolog 5.2







visual prolog 5.2

On a quad-core processor this typically gives a factor 4 (sometimes more) when many packages needs to be compiled.Īs of this writing, we are also working on letting the compiler itself compile several packages in a single invocation and thus skip many compiler phases for files that are included in several packages. The build system has been changed such that it can utilize multi-core processors by compiling several packages in parallel. This section describes some of the major improvements. Just like numerous smaller and larger improvements has been made. Many bugs and inconveniences have been solved in the IDE. Now delegate- sections can be mixed with "usual" sections (like predicates, etc.) inside a class implementation. Restrictions for delegate- sections order were removed The built-in types string, object, string8 and symbol are not sub-types of type pointer any more. The sub-type relations for some built-in types were changed Likewise, the stack size has been reduced (dramatically in some cases).

#VISUAL PROLOG 5.2 CODE#

The size of the generated code has become smaller, especially for predicates with many clauses that match different patterns of input. If X - 23 gives a negative number, the tr圜onvert will fail. Ppp ( X ) :- Y = tr圜onvert (positive, X - 23 ) ,

visual prolog 5.2

The compiler will also give warnings about tests, which are trivially fulfilled due to the type of the involved variables. The ability to detect unreachable code has been improved vastly, both when it comes to detecting unused predicates and facts and when it comes to code inside clauses which cannot be reached. But it has also been improved in several other respects. The compiler is (obviously) updated to deal with the new language features. Otherwise the compiler generates error message for invalid option. The can only contain the following compiler's options: /Warning, /Check, /NOCheck, /Optimize, /DEBug, /GOAL, /MAXErrors and /MAXWarnings. Otherwise the compiler generates warning message and ignores the directive. in the source file which is passed to the compiler). This directive affects the whole compilation unit and should be used outside scopes and conditional compilation statements in the main source file for a compilation unit (i.e. OptionsDirective : #options StringLiteral Also, there are two new built-in constants of this type: nullHandle and invalidHandle.Ī new compiler directive #options is introduced to define some additional compiler options for a separate compilation init. It is not intended for use in "normal" code.Ī new built-in domain handle which corresponds to API handle type is introduced to ease the integration with foreign API's as well. The ordinary binary domain is no longer scanned for pointers.Ī domain real32 is introduced to ease the integration with foreign API's that sometimes uses such short reals. Also there are new pie packages (described below) in the namespace pfc\pie.Ī new built-in domain binaryNonAtomic is introduced to distinguish binaries may contain pointers and should therefore be scanned by the garbage collector. It is planned in a future version of Visual Prolog to put PFC classes in namespaces pfc, pfc\vip5x and pfc\gui. So, now it is possible (for example) to have a class called file in the namespace documentManager even though there is also a class named file in PFC. This allows the same interface/class name to be declared/defined in several name spaces in the same program. Interfaces and classes can be put into namespaces (like pfc\pie). The same is the case with gmtTimeValue, localTimeValue and timeIntervalValue. So now (as example) file positions are unsigned64. PFC has been updated to use integer64 and unsigned64 instead of core :: integer64 and core :: unsigned64.

visual prolog 5.2

They are written, read, saved and consulted in normal number format only with much larger range than 32-bit numbers. All arithmetic operations (except the power operation) are supported for the types. The new domains are like integer and unsigned expect that they have a 64-bit representation. Integer64 and unsigned64 are two new built-in types, that replace the PFC domains core::integer64 and core::unsigned64. Anonymous predicates are described in details in the article Anonymous Predicates of Visual Prolog Language Reference. This section gives a brief overview of some of them.Īnonymous predicates are the Prolog counterparts to anonymous functions as known in functional programming languages. Visual Prolog 7.2 brings several language improvements. 2.6 Restrictions for delegate- sections order were removed.2.5 The sub-type relations for some built-in types were changed.









Visual prolog 5.2