Что нового в VIP 7.3: различия между версиями

Материал из wikiru.visual-prolog.com

Строка 39: Строка 39:
=== Other language features ===
=== Other language features ===


* The precedence of unary minus is changed (so that power operator has higher precedence)
* Приоритет унарного минуса изменен (теперь операция возведения имеет наивысший приоритет)
* Extended versions of built-in predicates <vp>toTerm/2-></vp> and <vp>tryToTerm/2-></vp> (type as the first parameter).
* Новые версии встроенных предикатов <vp>toTerm/2-></vp> м <vp>tryToTerm/2-></vp> (добавлен первый параметр - тип).
* New built-in predicate <vp>fromEllipsis : (...) -> any* Terms</vp>
* Новый встроенный предикат <vp>fromEllipsis : (...) -> any* Terms</vp>
* Runtime distinction between privately and publicly supported interfaces is removed
* Runtime distinction between privately and publicly supported interfaces is removed


New attributes
Новые аттрибуты:
* {{lang2|Attributes|retired|retired}}
* retired
* {{lang2|Attributes|noDefaultConstructor|noDefaultConstructor}}
* noDefaultConstructor
* {{lang2|Attributes|used|used}}
* used


Warnings:
Новая или улучшенная диагностика:
* Local object predicates which do not use <vp>This</vp> (and therefore can be declared as class predicates)
* Локальный объектный предикат не использует <vp>This</vp> (и может быть объявлен как классный)
* Unused local constants
* не используемая локальная константа
* Condition of foreach statement which has no backtrack point (i.e. mode is not <vp>multi</vp> or <vp>nondeterm</vp>)
* Условие в <vp>foreach</vp> не имеет точек бактракинга (должно быть или <vp>multi</vp> или <vp>nondeterm</vp>)
* <vp>unheckedConversion</vp>'s that would be illegal on 64 bit platforms (e.g. <vp>pointer</vp> -> <vp>integer</vp>)
* Конверсия <vp>unheckedConversion</vp> не верна для 64 bit платформ (например <vp>pointer</vp> -> <vp>integer</vp>)


== IDE ==
== IDE ==

Версия 08:27, 26 марта 2010

Шаблон:Preliminary Documentation

Язык

Generic интерфейсы и классы

смотри Generic интерфейсы и классы (en).

Conversion to Generic Type

Мониторы

Мониторы (en) с гардами (en)

Must Unify оператор

Новый оператор == (must-unify)

Термы универсального типа

any и предикат toAny/1->

Подготовка к 64-битной реализации

Подготовка к 64-битной реализации 64bit systems: built-in типы integerNative и unsignedNative

Интерфейс с другими языками

Native interfaces support (attributes):

  • inline (en): встроенные структуры и строки.
  • union (en): безфункторное объединение.
  • byVal (en): передача параметра по значению.

По умолчанию, для соглашения о вызове apicall, применяется внешнее разрешение.

  • Они не могут иметь clauses
  • Явное внешнее разрешение правильно только с динамической DLL
  • Является процедурой

Other language features

  • Приоритет унарного минуса изменен (теперь операция возведения имеет наивысший приоритет)
  • Новые версии встроенных предикатов toTerm/2-> м tryToTerm/2-> (добавлен первый параметр - тип).
  • Новый встроенный предикат fromEllipsis : (...) -> any* Terms
  • Runtime distinction between privately and publicly supported interfaces is removed

Новые аттрибуты:

  • retired
  • noDefaultConstructor
  • used

Новая или улучшенная диагностика:

  • Локальный объектный предикат не использует This (и может быть объявлен как классный)
  • не используемая локальная константа
  • Условие в foreach не имеет точек бактракинга (должно быть или multi или nondeterm)
  • Конверсия unheckedConversion не верна для 64 bit платформ (например pointer -> integer)

IDE

Project tree

The project tree is redesigned and reimplemented. The functionality is more or less unchanged, but the performance is improved.

The IncludedIn and Includes windows has been moved to preview pane of project window.

It is not possible to have several packages with same name in a project (which can make much sense when using namespaces).

Browse dialog

The Browse dialog is improved in several smaller respects, including:

  • It automatically jump to the 1st occurrence of search entity on locate
  • The last dialog position is saved for next appearence

Find In Files

The Find In Files dialog is improved in several respects, including:

  • result window is reused for subsequent searches
  • F8 button for next match (Shift+F8 - previous)
  • Prolog case sensitive search mode
  • state is saved for next appearence

Namespace support

The Namespaces support is improved, so that forms, dialogs, etc can be places in namespaces when created.

IntelliSense

The IntelliSense feature is improved for better overview, speed typing and convenience of work.

Tab navigation диалог (Ctrl+Tab)

Добавлена функциональность tab navigation диалога:

  • при использовании кнопки ALT фильтруются все [ReadOnly] окна
  • при нажатии Del - соответствующее окно закрывается

Go to Position on Clipboard

The Go to Position on Clipboard (Shift+F2) has been extended to accept a complete exception dump. F8 will go to the next stack entry.

Сортировка в некоторых окнах

Окно ошибок (Errors Window), точек останова (Break points Window) и некоторые другие появилась возможность сортировать колонки. Для этого надо просто нажать на вверх колонки.

  • Optimal Set of Includes improved (output, local scopes, etc.)

Debugger

  • Измененные переменные и их значения показываются выделением Highlighting
  • Улучшен просмотр длинных списков
  • Ускорен рестарт отладчика
  • Появились точки останова (Memory break points) по памяти и для некоторых типов фактов
  • Улучшена работа с несколькими thread (добавлена возможность указания имени thread, улучшена обработка прерываний в thread)
  • При длинных значениях tooltip может показываеться в несколько строк

PFC

Новые пакеты

  • 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

  • list package:
    • speed: sort, removeDuplicate, drop, min/max, etc.)
    • functionality: isMemberEq (and similar predicates) that uses a determ predicate as test
  • listControl with owner-drawing capabilities
  • uxTheme_native extended 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
  • Speed improvements for:
    • 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 various COMponent classes

Others

  • Более эффективное управление памятью; во многих случаях используется типовая аллокация памяти, для составных доменов, списков и цепочек баз данных
  • Несколько различных оптимизаций для увеличения скорости и уменьшения генерируемого кода
  • Новые примеры для демонстрации (Demo Examples) (только для коммерческой версии):
    • Parser Generator
    • LZDecompression
    • TreeControlDemo
  • Help on built-in entities
  • VipBuilder: новая опция для игнорирования директивы #requires
  • В библиотеку Win32 добавлены имена из многих MS библиотек.
  • При ошибки выполнения предиката consult выдается добавочная информация, позволяющая локализовать ошибку в базе данных
  • Ускорен линкер
  • Интеграция со службой Vault теперь работает с версией 5.0.1