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

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

 
(не показано 10 промежуточных версий 2 участников)
Строка 1: Строка 1:
{{Preliminary Documentation}}
'''Настоящая статья содержит сведения, предваряющие официальную документацию.'''
'''Окончательная версия может несколько отличаться (в лучшую сторону)'''


== Язык ==
== Язык ==
Строка 28: Строка 29:


Native interfaces support (attributes):
Native interfaces support (attributes):
* {{lang2|Attributes|inline|inline}}: Inline structures and strings.  
* [http://wiki.visual-prolog.com/index.php?title=Language_Reference/Attributes#inline inline (en)]: встроенные структуры и строки.  
* {{lang2|Attributes|union|union}}: Functor-less unions.  
* [http://wiki.visual-prolog.com/index.php?title=Language_Reference/Attributes#union union (en)]: безфункторное объединение.  
* {{lang2|Attributes|byVal|byVal}}: Passing parameters by value.  
* [http://wiki.visual-prolog.com/index.php?title=Language_Reference/Attributes#byVal byVal (en)]: передача параметра по значению.  


External resolution is default for predicates declared with <vp>apicall</vp> calling convention.
По умолчанию, для соглашения о вызове <vp>apicall</vp>, применяется внешнее разрешение.
* They cannot have clauses
* Они не могут иметь clauses
* explicit externally resolution is only legal when a DLL is stated
* Явное внешнее разрешение правильно только с динамической DLL
* Является процедурой


=== 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


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 ==


=== 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.
Окна '''IncludedIn''' и '''Includes''' перенесены в проектное окно в правую панель предоосмотра.


It is not possible to have several packages with same name in a project (which can make much sense when using namespaces).
Появилась возможность создания в проекте несколько одноименных пакетов (для поддержки разных namespace например).


=== Browse dialog ===
=== Диалог просмотра===


The '''Browse''' dialog is improved in several smaller respects, including:
Диалог '''Browse''' ускорен и улучшен:
* 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:
Поиск в файлах ('''Find In Files''') ускорен и улучшен:
* result window is reused for subsequent searches
* окно результата может переиспользоваться
* F8 button for next match (Shift+F8 - previous)
* Кнопки F8 и Shift+F8 служат для навигации
* Prolog case sensitive search mode
* добавлен режим "Prolog case sensitive"
* state is saved for next appearence
* Запоминается последнее состояние


=== Namespace support ===
=== поддержка Namespace ===


The '''Namespaces support''' is improved, so that forms, dialogs, etc can be places in namespaces when created.
Поддержка '''Namespaces''' улучшена.


=== IntelliSense ===
=== IntelliSense ===


The '''IntelliSense''' feature is improved for better overview, speed typing and convenience of work.
Свойство '''IntelliSense''' улучшено.


=== Tab navigation диалог (Ctrl+Tab) ===
=== Tab navigation диалог (Ctrl+Tab) ===
Строка 94: Строка 93:
=== Go to Position on Clipboard ===
=== 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.
Свойство '''Go to Position on Clipboard''' (Shift+F2) улучшено.


=== Сортировка в некоторых окнах ===
=== Сортировка в некоторых окнах ===
Строка 165: Строка 164:
* Интеграция со службой Vault теперь работает с версией 5.0.1
* Интеграция со службой Vault теперь работает с версией 5.0.1


[[Category:Release Notes]]
[[Категория:VipРуководства]]

Текущая версия на 14:32, 26 марта 2010

Настоящая статья содержит сведения, предваряющие официальную документацию. Окончательная версия может несколько отличаться (в лучшую сторону)

Язык

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

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

  • retired
  • noDefaultConstructor
  • used

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

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

IDE

Проектное окно

Проектное окно переписано заново. Функциональность практически не изменилась, увеличилась скорость и удобство.

Окна IncludedIn и Includes перенесены в проектное окно в правую панель предоосмотра.

Появилась возможность создания в проекте несколько одноименных пакетов (для поддержки разных namespace например).

Диалог просмотра

Диалог Browse ускорен и улучшен:

Поиск в файлах

Поиск в файлах (Find In Files) ускорен и улучшен:

  • окно результата может переиспользоваться
  • Кнопки F8 и Shift+F8 служат для навигации
  • добавлен режим "Prolog case sensitive"
  • Запоминается последнее состояние

поддержка Namespace

Поддержка Namespaces улучшена.

IntelliSense

Свойство IntelliSense улучшено.

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

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

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

Go to Position on Clipboard

Свойство Go to Position on Clipboard (Shift+F2) улучшено.

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

Окно ошибок (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