| 1 | ================================================================ |
|---|
| 2 | Logtalk - Open source object-oriented logic programming language |
|---|
| 3 | Release 2.33.0 |
|---|
| 4 | |
|---|
| 5 | Copyright (c) 1998-2008 Paulo Moura. All Rights Reserved. |
|---|
| 6 | Logtalk is free software. You can redistribute it and/or modify |
|---|
| 7 | it under the terms of the "Artistic License 2.0" as published by |
|---|
| 8 | The Perl Foundation. Consult the "LICENSE.txt" file for details. |
|---|
| 9 | ================================================================ |
|---|
| 10 | |
|---|
| 11 | |
|---|
| 12 | Upgrading from Logtalk 1.x |
|---|
| 13 | ========================== |
|---|
| 14 | |
|---|
| 15 | Logtalk 2.x is not compatible with programs written for Logtalk 1.x. |
|---|
| 16 | However, you should be able to translate most programs to make them |
|---|
| 17 | run under Logtalk 2.x. Most of the examples provided with Logtalk 1.x |
|---|
| 18 | have been rewritten to run under Logtalk 2.x. You may use them as |
|---|
| 19 | translation examples. |
|---|
| 20 | |
|---|
| 21 | |
|---|
| 22 | Upgrading from a previous Logtalk 2.x versions |
|---|
| 23 | ============================================== |
|---|
| 24 | |
|---|
| 25 | Changes in the Logtalk compiler between releases may render Prolog config |
|---|
| 26 | files from older versions incompatible with new ones. You may need to update |
|---|
| 27 | your local Logtalk user files by running e.g. the "cplgtdirs" shell script. |
|---|
| 28 | |
|---|
| 29 | If your Logtalk programs depend on some of the example files, it is |
|---|
| 30 | advisable that you check your code against the new version before |
|---|
| 31 | throwing away the older release. |
|---|
| 32 | |
|---|
| 33 | Logtalk source files will need to be recompiled because of the changes |
|---|
| 34 | done in the version 2.5.0 to improve message sending performance. |
|---|
| 35 | |
|---|
| 36 | Logtalk version 2.7.0 provides the first cut of the Logtalk standard library. |
|---|
| 37 | Most examples have been rewritten to take advantage of the library. |
|---|
| 38 | |
|---|
| 39 | Logtalk version 2.8.0 introduces a small change on the logtalk_compile/1-2 |
|---|
| 40 | and logtalk_load/1-2 predicates that may imply updating your loader utility |
|---|
| 41 | files: the first argument is now always a list of entities even if we want |
|---|
| 42 | to compile or load a single entity. |
|---|
| 43 | |
|---|
| 44 | Logtalk version 2.9.0 changes compiled code functors postfixes from "_sdcl" |
|---|
| 45 | and "_sdef" to "_idcl" and "_idef", implying recompilation of all objects, |
|---|
| 46 | protocols, and categories. |
|---|
| 47 | |
|---|
| 48 | Logtalk version 2.10.0 changes some of the semantics of object dynamic |
|---|
| 49 | predicates. See the release notes for a description of the changes. |
|---|
| 50 | |
|---|
| 51 | Logtalk version 2.14.4 removes the definition of the deprecated built-in |
|---|
| 52 | predicate logtalk_version/3 (use current_logtalk_flag/3 instead). |
|---|
| 53 | |
|---|
| 54 | Logtalk version 2.14.5 changes compiled code in order to correct a bug |
|---|
| 55 | where sending messages such as true/0 to an unknown object will succeeded |
|---|
| 56 | instead of throwing the expected exception, implying recompilation of all |
|---|
| 57 | objects, protocols, and categories. |
|---|
| 58 | |
|---|
| 59 | Logtalk version 2.14.7 changes compiled code in order to optimize the |
|---|
| 60 | code generated by the compilation of dynamic predicate clauses. |
|---|
| 61 | |
|---|
| 62 | Logtalk version 2.15.0 changes the "authors" key in the directive info/1 to |
|---|
| 63 | "author". All the XSLT, DTD, and XSD files have been update to conform to |
|---|
| 64 | this change. If you use the directive info/1 in your programs, you will need |
|---|
| 65 | to apply this change to take advantage of automatic generation of documenting |
|---|
| 66 | files. |
|---|
| 67 | |
|---|
| 68 | Logtalk version 2.15.3 changes the format of the runtime entity tables, |
|---|
| 69 | implying recompilation of all objects, protocols, and categories. |
|---|
| 70 | |
|---|
| 71 | Logtalk version 2.15.6 renamed the compiler flag "named_anonymous_vars" to |
|---|
| 72 | "underscore_variables" and changed the possible option values form "on/off" to |
|---|
| 73 | "dont_care/singletons". |
|---|
| 74 | |
|---|
| 75 | Logtalk 2.16.0 improves support for the declaration and use of operators |
|---|
| 76 | local to objects and categories. Recompilation of any objects and categories |
|---|
| 77 | containing operator declarations is needed in order to take advantage of the |
|---|
| 78 | improvements made. |
|---|
| 79 | |
|---|
| 80 | Logtalk 2.16.1 now checks for attempts to redefined built-in Logtalk control |
|---|
| 81 | constructs when compiling source files. These checks may generate compilation |
|---|
| 82 | errors on files containing bugs that are not detected on previous versions of |
|---|
| 83 | the compiler. |
|---|
| 84 | |
|---|
| 85 | Logtalk version 2.16.2 changed the possible option values of the read-only |
|---|
| 86 | compiler flag "startup_message" to "none", "banner", and "flags". Default |
|---|
| 87 | value is "flags" (print both banner and default flag values). |
|---|
| 88 | |
|---|
| 89 | Logtalk version 2.17.1 removes predicate nth/3 from library entities listp, |
|---|
| 90 | list, and difflist (replaced by the predicates nth0/3 and nth1/3). |
|---|
| 91 | |
|---|
| 92 | Logtalk version 2.20.0 updates the semantics of the uses/1 entity directive |
|---|
| 93 | to accept as argument a single object identifier (this change is needed in |
|---|
| 94 | order to ensure compatibility with the new uses/2 predicate directive). |
|---|
| 95 | |
|---|
| 96 | Logtalk version 2.21.2 adds a new clause to the code generated when compiling |
|---|
| 97 | entity in order to support the new alias/1 predicate property, implying |
|---|
| 98 | recompilation of all objects, protocols, and categories. |
|---|
| 99 | |
|---|
| 100 | Logtalk version 2.22.0 adds support for using the notation <library>(<file>) |
|---|
| 101 | when compiling and loading source files. Logtalk applications using this new |
|---|
| 102 | notation will need to be modified in order to run in previous Logtalk versions. |
|---|
| 103 | In addition, the exceptions generated by the predicates logtalk_compile/1-2 |
|---|
| 104 | and logtalk_load/1-2 have been updated to take into account this new feature. |
|---|
| 105 | |
|---|
| 106 | Logtalk version 2.22.2 adds stricter checking for the documenting directives |
|---|
| 107 | (info/1 and info/2), which can lead to compilation errors on entities which |
|---|
| 108 | compiled successfully on previous Logtalk versions. |
|---|
| 109 | |
|---|
| 110 | Logtalk version 2.22.5 adds new predicates to all config files (consult the |
|---|
| 111 | release notes for details). If you are using custom config files, be sure to |
|---|
| 112 | update them by coping the definition of the new predicates. |
|---|
| 113 | |
|---|
| 114 | Logtalk version 2.23.0 features new, optimized implementations of the database |
|---|
| 115 | built-in methods, implying the recompilation of all objects, protocols, and |
|---|
| 116 | categories. |
|---|
| 117 | |
|---|
| 118 | Logtalk version 2.25.0 drops support for source metafiles and .mlgt file name |
|---|
| 119 | extension as this version features a new, file-based compiler supporting the |
|---|
| 120 | definition of any number of entities in a single file. Older code using source |
|---|
| 121 | metafiles will need to rename the file name extensions from .mlgt to .lgt. |
|---|
| 122 | |
|---|
| 123 | Logtalk version 2.25.1 updates the compiler to generate XML documenting files |
|---|
| 124 | whose names always contain the arity of the entity identifier appended at the |
|---|
| 125 | end (using the format "_arity"). This change implied updates to the lgt2xml.* |
|---|
| 126 | and lgt2html.* shell scripts which render them incompatible with the XML files |
|---|
| 127 | generated by previous Logtalk versions. |
|---|
| 128 | |
|---|
| 129 | Logtalk version 2.27.0 changes representation of declared predicates in order |
|---|
| 130 | to support the new predicate property non_terminal/1, implying recompilation |
|---|
| 131 | of all objects, protocols, and categories. |
|---|
| 132 | |
|---|
| 133 | Logtalk version 2.27.1 optimizes the generation of predicate definition and |
|---|
| 134 | declaration linking clauses, resulting in small performance improvements and |
|---|
| 135 | in space savings for the Prolog code generated when compiling Logtalk entities. |
|---|
| 136 | Recompilation of all objects, protocols, and categories is necessary in order |
|---|
| 137 | to take advantage of this optimizations. |
|---|
| 138 | |
|---|
| 139 | Logtalk 2.28.0 changes representation of meta-predicates, implying the |
|---|
| 140 | recompilation of all objects, protocols, and categories that define them. |
|---|
| 141 | In addition, in order to close some security holes where meta-predicates |
|---|
| 142 | could be used to bypass predicate scope declarations, meta-predicates that |
|---|
| 143 | use closures must be re-implemented to use the new call/N Logtalk built-in |
|---|
| 144 | predicate. The directive metapredicate/1 is now deprecated, the directive |
|---|
| 145 | meta_predicate/1 should be used instead. There are also changes to the |
|---|
| 146 | config files that render the Logtalk runtime incompatible with the config |
|---|
| 147 | files of previous versions. |
|---|
| 148 | |
|---|
| 149 | Logtalk 2.29.0 makes some incompatible changes to the experimental support |
|---|
| 150 | for multi-threading programming that may imply updating any application that |
|---|
| 151 | uses the multi-threading predicates. The default value of the compiler flag |
|---|
| 152 | events/1 is now off. Applications using event-driven programming must either |
|---|
| 153 | turn this flag on or compile source files with the events(on) option. The |
|---|
| 154 | library protocol "event_handlersp" is now deprecated; new code should use |
|---|
| 155 | instead the built-in "monitoring" protocol. The new support for "threaded" |
|---|
| 156 | and "synchronized" entity properties implies recompilation of all objects |
|---|
| 157 | and categories. |
|---|
| 158 | |
|---|
| 159 | Logtalk 2.29.2 removes the built-in predicate threaded_discard/1. |
|---|
| 160 | |
|---|
| 161 | Logtalk 2.29.5 adds a new compiler option, "reload", whose default value is |
|---|
| 162 | defined in the config files. This makes previous config files incompatible |
|---|
| 163 | with this new Logtalk version. |
|---|
| 164 | |
|---|
| 165 | Logtalk 2.30.0 adds two new compiler options, "xmldir" and "tmpdir", allowing |
|---|
| 166 | a per-project definition of directories for storing XML documenting files and |
|---|
| 167 | for storing intermediate compilation files (e.g. Prolog files). Removed from |
|---|
| 168 | the config files the predicate '$lgt_alt_directory'/2. Older config files are |
|---|
| 169 | incompatible with this new Logtalk version. |
|---|
| 170 | |
|---|
| 171 | Logtalk 2.30.6 renamed the compiler flags "supports_break_predicate", |
|---|
| 172 | "supports_encoding_dir", and "underscore_vars" to, respectively, |
|---|
| 173 | "break_predicate", "encoding_directive", and "underscore_variables". Changed |
|---|
| 174 | the possible values of the "encoding_directive" compiler option (see manual). |
|---|
| 175 | Older config files are not compatible with this new Logtalk version. |
|---|
| 176 | |
|---|
| 177 | Logtalk 2.30.7 adds a new compiler flag "context_switching_calls". |
|---|
| 178 | Older config files are not compatible with this new Logtalk version. |
|---|
| 179 | |
|---|
| 180 | Logtalk 2.31.0 changes the "imports" relation between categories to the |
|---|
| 181 | relation "extends". The relation "imports" is now only used for objects |
|---|
| 182 | importing categories. This version renames the predicate property "alias/1" |
|---|
| 183 | to "alias_of/1" in order to disambiguate its meaning. This version also |
|---|
| 184 | changes compiler hook support; you will need to update your code if you're |
|---|
| 185 | using hook objects and hook predicates. Moreover, Logtalk source files will |
|---|
| 186 | need to be recompiled because of the changes done in this version to improve |
|---|
| 187 | updating runtime bookkeeping tables when loading new entities. |
|---|
| 188 | |
|---|
| 189 | Logtalk 2.31.2 changes the valid values for the encoding/1 directive from |
|---|
| 190 | the SWI-Prolog original values to atoms complying with the IANA standard. |
|---|
| 191 | Old values are deprecated but still recognized for compatibility with older |
|---|
| 192 | Logtalk releases (see the config files of YAP and SWI-Prolog). |
|---|
| 193 | |
|---|
| 194 | Logtalk 2.31.3 changes the predicate used to load Prolog files, adding an |
|---|
| 195 | additional argument that represents a list of load/compile options (notably, |
|---|
| 196 | encoding/1). Older config files are incompatible with this new Logtalk |
|---|
| 197 | version. |
|---|
| 198 | |
|---|
| 199 | Logtalk version 2.31.6 changes representation of loaded categories in order |
|---|
| 200 | to correct a bug in the use of the :/1 control construct, therefore implying |
|---|
| 201 | recompilation of all categories. |
|---|
| 202 | |
|---|
| 203 | Logtalk 2.32.0 adds a new compiler option, multifile_directive, to all config |
|---|
| 204 | files. Older config files are incompatible with this new Logtalk version. |
|---|
| 205 | |
|---|
| 206 | Logtalk version 2.32.1 changes representation of loaded entities therefore |
|---|
| 207 | implying recompilation of all source files. |
|---|
| 208 | |
|---|
| 209 | Logtalk version 2.32.2 changes the internal predicate used in the processing |
|---|
| 210 | of "super" calls, changes the implementation of complementing categories, |
|---|
| 211 | changes the possible values of the read-only compiler flag "break_predicate", |
|---|
| 212 | and changes the way proprietary Prolog meta-predicates and control constructs |
|---|
| 213 | are declared, therefore implying the recompilation of all objects. |
|---|