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

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

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


== Language ==
== Язык ==


=== Generic Interfaces and Classes ===
=== Generic интерфейсы и классы ===


See {{lang|Generic Interfaces and Classes|Generic Interfaces and Classes}}.
смотри [http://wiki.visual-prolog.com/index.php?title=Language_Reference/Generic_Interfaces_and_Classes Generic интерфейсы и классы (en)].


=== Conversion to Generic Type ===
=== Conversion to Generic Type ===


=== Monitors ===
=== Мониторы ===


{{lang|Monitors|Monitors}} with {{lang2|Monitors|Guards|guards}}
[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 оператор ===
Строка 19: Строка 20:
=== Термы универсального типа  ===
=== Термы универсального типа  ===


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


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


Preparations for supporting 64bit systems: built-in types <vp>integerNative</vp> and <vp>unsignedNative</vp>
Подготовка к 64-битной реализации 64bit systems: built-in типы <vp>integerNative</vp> и <vp>unsignedNative</vp>


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


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 dialog ===
=== Tab navigation диалог (Ctrl+Tab) ===


The '''tab navigation''' dialog functionality has been extended:
Добавлена функциональность '''tab navigation''' диалога:
* use ALT button for filtering [ReadOnly] windows
* при использовании кнопки ALT фильтруются все [ReadOnly] окна
* use Del for closing windows
* при нажатии Del - соответствующее окно закрывается


=== 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) улучшено.


=== Sorting in various windows ===
=== Сортировка в некоторых окнах ===


The Errors Window, the Break points Window, etc. has been extended with sorting capabilities (clicking on the top banner).
Окно ошибок (Errors Window), точек останова (Break points Window) и некоторые другие появилась возможность сортировать колонки. Для этого надо просто нажать на вверх колонки.
* '''Optimal Set of Includes improved''' (output, local scopes, etc.)
* '''Optimal Set of Includes improved''' (output, local scopes, etc.)


== Debugger ==
== Debugger ==


* '''Highlighting''' changed values in variable window
* Измененные переменные и их значения показываются выделением '''Highlighting'''
* View of '''long lists''' improvement
* Улучшен просмотр длинных списков
* '''Speed''' of restarting is improved
* Ускорен рестарт отладчика
* '''Memory break points''' and fact access (for some types)
* Появились точки останова ('''Memory break points''') по памяти и для некоторых типов фактов
* '''Multi-threaded''' application debugging is improved (thread names, break points handling)
* Улучшена работа с несколькими thread (добавлена возможность указания имени thread, улучшена обработка прерываний в thread)
* Multi-line '''tool tips'''
* При длинных значениях tooltip может показываеться в несколько строк


== PFC ==
== PFC ==


=== New entities ===
=== Новые пакеты ===


* [[Collection library]]
* [[Collection library]]
Строка 152: Строка 151:
== Others ==
== Others ==


* More efficient '''memory handling'''; using typed memory allocation for compound terms and internal facts chains
* Более эффективное '''управление памятью'''; во многих случаях используется типовая аллокация памяти, для составных доменов, списков и цепочек баз данных
* Various optimizations for speed and size of generated code
* Несколько различных оптимизаций для увеличения скорости и уменьшения генерируемого кода
* New Demo Examples (Commercial Edition only):
* Новые примеры для демонстрации (Demo Examples) (только для коммерческой версии):
** Parser Generator
** Parser Generator
** LZDecompression
** LZDecompression
** TreeControlDemo
** TreeControlDemo
* Help on built-in entities
* Help on built-in entities
* VipBuilder: extra option to ignore <vp>#requires</vp> directives
* VipBuilder: новая опция для игнорирования директивы <vp>#requires</vp>
* Extend '''Win32''' library (with more names from MS libraries).
* В библиотеку '''Win32''' добавлены имена из многих MS библиотек.
* More context to consult exceptions
* При ошибки выполнения предиката consult выдается добавочная информация, позволяющая локализовать ошибку в базе данных
* Linker speed improvement
* Ускорен линкер
* Vault Integration updated to version 5.0.1
* Интеграция со службой Vault теперь работает с версией 5.0.1


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

Текущая версия на 15: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