Что нового в VIP 7.3: различия между версиями
м (→Others)  | 
				|||
| (не показано 14 промежуточных версий 2 участников) | |||
| Строка 1: | Строка 1: | ||
'''Настоящая статья содержит сведения, предваряющие официальную документацию.'''  | |||
'''Окончательная версия может несколько отличаться (в лучшую сторону)'''  | |||
== Язык ==  | == Язык ==  | ||
=== Generic   | === Generic интерфейсы и классы ===  | ||
смотри [http://wiki.visual-prolog.com/index.php?title=Language_Reference/Generic_Interfaces_and_Classes Generic интерфейсы и классы (en)].  | |||
=== Conversion to Generic Type ===  | === Conversion to Generic Type ===  | ||
===   | === Мониторы ===  | ||
[http://wiki.visual-prolog.com/index.php?title=Language_Reference/Monitors Мониторы (en)] с [http://wiki.visual-prolog.com/index.php?title=Language_Reference/Monitors#Guards гардами (en)]  | |||
=== Must Unify оператор ===  | === Must Unify оператор ===  | ||
| Строка 28: | Строка 29: | ||
Native interfaces support (attributes):  | Native interfaces support (attributes):  | ||
*   | * [http://wiki.visual-prolog.com/index.php?title=Language_Reference/Attributes#inline inline (en)]: встроенные структуры и строки.    | ||
*   | * [http://wiki.visual-prolog.com/index.php?title=Language_Reference/Attributes#union union (en)]: безфункторное объединение.    | ||
*   | * [http://wiki.visual-prolog.com/index.php?title=Language_Reference/Attributes#byVal byVal (en)]: передача параметра по значению.    | ||
По умолчанию, для соглашения о вызове <vp>apicall</vp>, применяется внешнее разрешение.  | |||
*   | * Они не могут иметь clauses  | ||
*   | * Явное внешнее разрешение правильно только с динамической DLL  | ||
* Является процедурой  | |||
=== Other language features ===  | === Other language features ===  | ||
*   | * Приоритет унарного минуса изменен (теперь операция возведения имеет наивысший приоритет)  | ||
*   | * Новые версии встроенных предикатов <vp>toTerm/2-></vp> м <vp>tryToTerm/2-></vp> (добавлен первый параметр - тип).  | ||
*   | * Новый встроенный предикат <vp>fromEllipsis : (...) -> any* Terms</vp>  | ||
Новые аттрибуты:  | |||
*   | * retired  | ||
*   | * noDefaultConstructor  | ||
*   | * used  | ||
Новая или улучшенная диагностика:  | |||
*   | * Локальный объектный предикат не использует <vp>This</vp> (и может быть объявлен как классный)  | ||
*   | * не используемая локальная константа  | ||
*   | * Условие в <vp>foreach</vp> не имеет точек бактракинга (должно быть или <vp>multi</vp> или <vp>nondeterm</vp>)  | ||
* <vp>unheckedConversion</vp>  | * Конверсия <vp>unheckedConversion</vp> не верна для 64 bit платформ (например <vp>pointer</vp> -> <vp>integer</vp>)  | ||
== IDE ==  | == IDE ==  | ||
===   | === Проектное окно ===  | ||
Проектное окно переписано заново. Функциональность практически не изменилась, увеличилась скорость и удобство.  | |||
Окна '''IncludedIn''' и '''Includes''' перенесены в проектное окно в правую панель предоосмотра.  | |||
Появилась возможность создания в проекте несколько одноименных пакетов (для поддержки разных namespace например).  | |||
===   | === Диалог просмотра===  | ||
Диалог '''Browse''' ускорен и улучшен:  | |||
===   | === Поиск в файлах===  | ||
Поиск в файлах ('''Find In Files''') ускорен и улучшен:  | |||
*   | * окно результата может переиспользоваться  | ||
* F8   | * Кнопки F8 и Shift+F8 служат для навигации  | ||
* Prolog case sensitive   | * добавлен режим "Prolog case sensitive"  | ||
*   | * Запоминается последнее состояние  | ||
=== Namespace   | === поддержка Namespace ===  | ||
Поддержка '''Namespaces''' улучшена.  | |||
=== IntelliSense ===  | === IntelliSense ===  | ||
Свойство '''IntelliSense''' улучшено.  | |||
=== Tab navigation диалог (Ctrl+Tab) ===  | === Tab navigation диалог (Ctrl+Tab) ===  | ||
| Строка 94: | Строка 93: | ||
=== Go to Position on Clipboard ===  | === Go to Position on Clipboard ===  | ||
Свойство '''Go to Position on Clipboard''' (Shift+F2) улучшено.  | |||
=== Сортировка в некоторых окнах ===  | === Сортировка в некоторых окнах ===  | ||
| Строка 103: | Строка 102: | ||
== Debugger ==  | == Debugger ==  | ||
* '''Highlighting'''   | * Измененные переменные и их значения показываются выделением '''Highlighting'''  | ||
*   | * Улучшен просмотр длинных списков  | ||
*   | * Ускорен рестарт отладчика  | ||
* '''Memory break points'''   | * Появились точки останова ('''Memory break points''') по памяти и для некоторых типов фактов  | ||
*   | * Улучшена работа с несколькими thread (добавлена возможность указания имени thread, улучшена обработка прерываний в thread)  | ||
*   | * При длинных значениях tooltip может показываеться в несколько строк  | ||
== PFC ==  | == PFC ==  | ||
===   | === Новые пакеты ===  | ||
* [[Collection library]]  | * [[Collection library]]  | ||
| Строка 152: | Строка 151: | ||
== Others ==  | == Others ==  | ||
*   | * Более эффективное '''управление памятью'''; во многих случаях используется типовая аллокация памяти, для составных доменов, списков и цепочек баз данных  | ||
*   | * Несколько различных оптимизаций для увеличения скорости и уменьшения генерируемого кода  | ||
*   | * Новые примеры для демонстрации (Demo Examples) (только для коммерческой версии):  | ||
** Parser Generator  | ** Parser Generator  | ||
** LZDecompression  | ** LZDecompression  | ||
** TreeControlDemo  | ** TreeControlDemo  | ||
* Help on built-in entities  | * Help on built-in entities  | ||
* VipBuilder:   | * VipBuilder: новая опция для игнорирования директивы <vp>#requires</vp>  | ||
*   | * В библиотеку '''Win32''' добавлены имена из многих MS библиотек.  | ||
*   | * При ошибки выполнения предиката consult выдается добавочная информация, позволяющая локализовать ошибку в базе данных  | ||
*   | * Ускорен линкер  | ||
* Vault   | * Интеграция со службой Vault теперь работает с версией 5.0.1  | ||
[[  | [[Категория:VipРуководства]]  | ||
Текущая версия на 14:32, 26 марта 2010
Настоящая статья содержит сведения, предваряющие официальную документацию. Окончательная версия может несколько отличаться (в лучшую сторону)
Язык
Generic интерфейсы и классы
смотри Generic интерфейсы и классы (en).
Conversion to Generic Type
Мониторы
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 диалога:
- при использовании кнопки 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
 
