root/trunk/UPGRADING.txt

Revision 4411, 10.9 kB (checked in by pmoura, 5 weeks ago)

Updated the release number to 2.33.0.

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