| 1 | ================================================================= |
|---|
| 2 | Logtalk - Object oriented extension to Prolog |
|---|
| 3 | Release 2.29.1 |
|---|
| 4 | |
|---|
| 5 | Copyright (c) 1998-2006 Paulo Moura. All Rights Reserved. |
|---|
| 6 | ================================================================= |
|---|
| 7 | |
|---|
| 8 | |
|---|
| 9 | Upgrading from Logtalk 1.x |
|---|
| 10 | ========================== |
|---|
| 11 | |
|---|
| 12 | Logtalk 2.x is not compatible with programs written for Logtalk 1.x. |
|---|
| 13 | However, you should be able to translate most programs to make them |
|---|
| 14 | run under Logtalk 2.x. Most of the examples provided with Logtalk 1.x |
|---|
| 15 | have been rewritten to run under Logtalk 2.x. You may use them as |
|---|
| 16 | translation examples. |
|---|
| 17 | |
|---|
| 18 | |
|---|
| 19 | Upgrading from a previous Logtalk 2.x versions |
|---|
| 20 | ============================================== |
|---|
| 21 | |
|---|
| 22 | Changes in the Logtalk compiler between releases may render Prolog config |
|---|
| 23 | files from older versions incompatible with new ones. You may need to update |
|---|
| 24 | your local Logtalk user files by running e.g. the "cplgtdirs" shell script. |
|---|
| 25 | |
|---|
| 26 | If your Logtalk programs depend on some of the example files, it is |
|---|
| 27 | advisable that you check your code against the new version before |
|---|
| 28 | throwing away the older release. |
|---|
| 29 | |
|---|
| 30 | Logtalk source files will need to be recompiled because of the changes |
|---|
| 31 | done in the version 2.5.0 to improve message sending performance. |
|---|
| 32 | |
|---|
| 33 | Logtalk version 2.7.0 provides the first cut of the Logtalk standard library. |
|---|
| 34 | Most examples have been rewritten to take advantage of the library. |
|---|
| 35 | |
|---|
| 36 | Logtalk version 2.8.0 introduces a small change on the logtalk_compile/1-2 |
|---|
| 37 | and logtalk_load/1-2 predicates that may imply updating your loader utility |
|---|
| 38 | files: the first argument is now always a list of entities even if we want |
|---|
| 39 | to compile or load a single entity. |
|---|
| 40 | |
|---|
| 41 | Logtalk version 2.9.0 changes compiled code functors postfixes from "_sdcl" |
|---|
| 42 | and "_sdef" to "_idcl" and "_idef", implying recompilation of all objects, |
|---|
| 43 | protocols, and categories. |
|---|
| 44 | |
|---|
| 45 | Logtalk version 2.10.0 changes some of the semantics of object dynamic |
|---|
| 46 | predicates. See the release notes for a description of the changes. |
|---|
| 47 | |
|---|
| 48 | Logtalk version 2.14.4 removes the definition of the deprecated built-in |
|---|
| 49 | predicate logtalk_version/3 (use current_logtalk_flag/3 instead). |
|---|
| 50 | |
|---|
| 51 | Logtalk version 2.14.5 changes compiled code in order to correct a bug |
|---|
| 52 | where sending messages such as true/0 to an unknown object will succeeded |
|---|
| 53 | instead of throwing the expected exception, implying recompilation of all |
|---|
| 54 | objects, protocols, and categories. |
|---|
| 55 | |
|---|
| 56 | Logtalk version 2.14.7 changes compiled code in order to optimize the |
|---|
| 57 | code generated by the compilation of dynamic predicate clauses. |
|---|
| 58 | |
|---|
| 59 | Logtalk version 2.15.0 changes the "authors" key in the directive info/1 to |
|---|
| 60 | "author". All the XSLT, DTD, and XSD files have been update to conform to |
|---|
| 61 | this change. If you use the directive info/1 in your programs, you will need |
|---|
| 62 | to apply this change to take advantage of automatic generation of documenting |
|---|
| 63 | files. |
|---|
| 64 | |
|---|
| 65 | Logtalk version 2.15.3 changes the format of the runtime entity tables, |
|---|
| 66 | implying recompilation of all objects, protocols, and categories. |
|---|
| 67 | |
|---|
| 68 | Logtalk version 2.15.6 renamed the compiler flag "named_anonymous_vars" to |
|---|
| 69 | "underscore_vars" and changed the possible option values form "on/off" to |
|---|
| 70 | "dont_care/singletons". |
|---|
| 71 | |
|---|
| 72 | Logtalk 2.16.0 improves support for the declaration and use of operators |
|---|
| 73 | local to objects and categories. Recompilation of any objects and categories |
|---|
| 74 | containing operator declarations is needed in order to take advantage of the |
|---|
| 75 | improvements made. |
|---|
| 76 | |
|---|
| 77 | Logtalk 2.16.1 now checks for attempts to redefined built-in Logtalk control |
|---|
| 78 | constructs when compiling source files. These checks may generate compilation |
|---|
| 79 | errors on files containing bugs that are not detected on previous versions of |
|---|
| 80 | the compiler. |
|---|
| 81 | |
|---|
| 82 | Logtalk version 2.16.2 changed the possible option values of the read-only |
|---|
| 83 | compiler flag "startup_message" to "none", "banner", and "flags". Default |
|---|
| 84 | value is "flags" (print both banner and default flag values). |
|---|
| 85 | |
|---|
| 86 | Logtalk version 2.17.1 removes predicate nth/3 from library entities listp, |
|---|
| 87 | list, and difflist (replaced by the predicates nth0/3 and nth1/3). |
|---|
| 88 | |
|---|
| 89 | Logtalk version 2.20.0 updates the semantics of the uses/1 entity directive |
|---|
| 90 | to accept as argument a single object identifier (this change is needed in |
|---|
| 91 | order to ensure compatibility with the new uses/2 predicate directive). |
|---|
| 92 | |
|---|
| 93 | Logtalk version 2.21.2 adds a new clause to the code generated when compiling |
|---|
| 94 | entity in order to support the new alias/1 predicate property, implying |
|---|
| 95 | recompilation of all objects, protocols, and categories. |
|---|
| 96 | |
|---|
| 97 | Logtalk version 2.22.0 adds support for using the notation <library>(<file>) |
|---|
| 98 | when compiling and loading source files. Logtalk applications using this new |
|---|
| 99 | notation will need to be modified in order to run in previous Logtalk versions. |
|---|
| 100 | In addition, the exceptions generated by the predicates logtalk_compile/1-2 |
|---|
| 101 | and logtalk_load/1-2 have been updated to take into account this new feature. |
|---|
| 102 | |
|---|
| 103 | Logtalk version 2.22.2 adds stricter checking for the documenting directives |
|---|
| 104 | (info/1 and info/2), which can lead to compilation errors on entities which |
|---|
| 105 | compiled successfully on previous Logtalk versions. |
|---|
| 106 | |
|---|
| 107 | Logtalk version 2.22.5 adds new predicates to all config files (consult the |
|---|
| 108 | release notes for details). If you are using custom config files, be sure to |
|---|
| 109 | update them by coping the definition of the new predicates. |
|---|
| 110 | |
|---|
| 111 | Logtalk version 2.23.0 features new, optimized implementations of the database |
|---|
| 112 | built-in methods, implying the recompilation of all objects, protocols, and |
|---|
| 113 | categories. |
|---|
| 114 | |
|---|
| 115 | Logtalk version 2.25.0 drops support for source metafiles and .mlgt file name |
|---|
| 116 | extension as this version features a new, file-based compiler supporting the |
|---|
| 117 | definition of any number of entities in a single file. Older code using source |
|---|
| 118 | metafiles will need to rename the file name extensions from .mlgt to .lgt. |
|---|
| 119 | |
|---|
| 120 | Logtalk version 2.25.1 updates the compiler to generate XML documenting files |
|---|
| 121 | whose names always contain the arity of the entity identifier appended at the |
|---|
| 122 | end (using the format "_arity"). This change implied updates to the lgt2xml.* |
|---|
| 123 | and lgt2html.* shell scripts which render them incompatible with the XML files |
|---|
| 124 | generated by previous Logtalk versions. |
|---|
| 125 | |
|---|
| 126 | Logtalk version 2.27.0 changes representation of declared predicates in order |
|---|
| 127 | to support the new predicate property non_terminal/1, implying recompilation |
|---|
| 128 | of all objects, protocols, and categories. |
|---|
| 129 | |
|---|
| 130 | Logtalk version 2.27.1 optimizes the generation of predicate definition and |
|---|
| 131 | declaration linking clauses, resulting in small performance improvements and |
|---|
| 132 | in space savings for the Prolog code generated when compiling Logtalk entities. |
|---|
| 133 | Recompilation of all objects, protocols, and categories is necessary in order |
|---|
| 134 | to take advantage of this optimizations. |
|---|
| 135 | |
|---|
| 136 | Logtalk 2.28.0 changes representation of meta-predicates, implying the |
|---|
| 137 | recompilation of all objects, protocols, and categories that define them. |
|---|
| 138 | In addition, in order to close some security holes where meta-predicates |
|---|
| 139 | could be used to bypass predicate scope declarations, meta-predicates that |
|---|
| 140 | use closures must be re-implemented to use the new call/N Logtalk built-in |
|---|
| 141 | predicate. The directive metapredicate/1 is now deprecated, the directive |
|---|
| 142 | meta_predicate/1 should be used instead. There are also changes to the |
|---|
| 143 | config files that render the Logtalk runtime incompatible with the config |
|---|
| 144 | files of previous versions. |
|---|
| 145 | |
|---|
| 146 | Logtalk 2.29.0 makes some incompatible changes to the experimental support |
|---|
| 147 | for multi-threading programming that may imply updating any application that |
|---|
| 148 | uses the multi-threading predicates. The default value of the compiler flag |
|---|
| 149 | events/1 is now off. Applications using event-driven programming must either |
|---|
| 150 | turn this flag on or compile source files with the events(on) option. The |
|---|
| 151 | library protocol "event_handlersp" is now deprecated; new code should use |
|---|
| 152 | instead the built-in "monitoring" protocol. The new support for "threaded" |
|---|
| 153 | and "synchronized" entity properties implies implying recompilation of all |
|---|
| 154 | objects and categories. |
|---|