Visual Prolog 9 Upgrade Notes
This document describes how to upgrade Visual Prolog 8 projects to Visual Prolog 9, for older projects you should also read Visual Prolog 8 Upgrade Notes.
If you have problems with upgrading your projects and need additional information, you are welcome to ask questions in Visual Prolog Discussion Forum.
By default, the installation of Visual Prolog 9 will not replace any previously installed versions. It is possible to work with several versions on a single computer.
- The Commercial Edition will by default be installed in C:\Program Files (x86)\Visual Prolog 9 or C:\Program Files\Visual Prolog 9.
- The Personal Edition will by default be installed to C:\Program Files (x86)\Visual Prolog 9PE or C:\Program Files\Visual Prolog 9PE.
Visual Prolog 9 projects are backward-compatible with Visual Prolog 8 projects. If you are going to use different versions of Visual Prolog installed at one computer, avoid opening projects by double-clicking on vipprj files.
Notice it is highly advisable to have a backup of a project before updating.
where is a reserved keyword in Visual Prolog 9, so it is highly advisable to eliminate the use of that word before upgrading the project.
PFC Includes and packages
After loading the project you should rebuild the entire project with the help of the Build -> Rebuild All command and answer Yes All/Delete All to the messages suggesting adding/removing packages and include statements. You may have to build again several times to complete the build process.
Notice that you should simply delete include directives to PFC files which cannot be found: proper include directives will (normally) be inserted automatically.
Many projects will only require:
- Accept to remove all unexisting packages
- Accept to add required packages
- Delete all include directives for files that does not exist
- Accept to add include directives
It is recommended that you continue the process above until process stabilizes, before you start performing any manual updates.
ioCompletionPort does not exist anymore, all the things that depended upon it now uses threadpool instead. For most things you don't need anything instead of the ioCompletionPort the default threadpool will automatically be used instead. There is a default threadpool, i.e. threadpool::defaultThreadpool.
Due to optional arguments existing predicates may conflict with each other. Some of these conflicts can be handled by removing the predicate without output arguments, others by renaming a predicate or using the [mandatoryOut] attribute. See Optional parameters.