root/tags/lgt2311/UPGRADING.txt

Revision 4000, 9.4 KB (checked in by pmoura, 11 months ago)

Updated copyright string.

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