root/tags/lgt2211/RELEASE_NOTES

Revision 1536, 44.8 KB (checked in by pmoura, 4 years ago)

Fixed typo.

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
<
Line 
1=================================================================
2Logtalk - Object oriented extension to Prolog
3Release 2.21.1
4
5Copyright (c) 1998-2004 Paulo Moura.  All Rights Reserved.
6=================================================================
7
8
9RELEASE NOTES
10=============
11
12
132.21.1 - September 27, 2004
14
15    Added experimental support for a new built-in method, expand_term/2, which
16    allows access to the Logtalk grammar rule translator. Corrected bug in the
17    expansion of \+/1 in grammar rule bodies. Optimized code generated for
18    message sending calls in the body of grammar rules. Improved error handling
19    of the built-in methods phrase/2 and phrase/3. Added new section on definite
20    clause grammars to the user manual. Added two new objects to the "dcgs"
21    example, dcgtest and bypass, containing test cases for the Logtalk DCG
22    translator and illustrating some programming techniques with grammar rules.
23
24    Corrected a bug in the implementation of the built-in method clause/2 which
25    prevented access to clauses of local dynamic predicates.
26
27    Corrected some dead links on the XHTML manuals.
28
29    Corrected a bug in the syntax coloring of numbers on the SubEthaEdit 2.x
30    text editor.
31
32
332.21.0 - September 14, 2004
34
35    Added a new predicate directive, alias/3, which allows the definition of
36    alternative predicate names in order to improve readability of inherited
37    features and to solve conflicts between implemented, imported, or inherited
38    predicates.
39
40    Added new example, "aliases", illustrating the use of the new alias/3
41    predicate directive for improving readability of inherited features.
42
43    Added new example, "diamonds", illustrating problems and solutions for the
44    "diamond problem" (multi-inheritance conflicts and ambiguities) using the
45    new alias/3 predicate directive.
46
47    Allow categories to import other categories, i.e. allow categories to be
48    defined as a composition of other categories. This feature should only be
49    used when extending a category without breaking its functional cohesion
50    (for example, when a modified version of a category is needed for importing
51    into several unrelated objects).
52
53    Added new example, "engines", illustrating importing a category from another
54    category.
55
56    Updated the syntax coloring configuration files for the supported text
57    editors for the new alias/3 predicate directive.
58
59    Added autocomplete strings for Logtalk methods and for Logtalk and Prolog
60    built-in predicates and directives to the SubEthaEdit 2.x text editor.
61
62    Corrected a bug which prevented compilation of metafiles containing
63    parametric entities.
64
65
662.20.2 - August 31, 2004
67
68    Added a Windows JScript script for installing Logtalk. Improved the Windows
69    JScript scripts used for easy integration of Logtalk with selected Prolog
70    compilers.
71
72    Improved user manual section on defining object and category metapredicates
73    and on calling non-stardard Prolog built-in metapredicates. Improved the
74    description of some compiler options.
75
76    Added some files missing from the "errors" example (which should have been
77    included in the previous release).
78
79    Added basic syntax coloring support for the BBEdit 8.x text editor.
80
81
822.20.1 - August 19, 2004
83
84    Added Windows JScript scripts for easy integration of Logtalk with CIAO and
85    GNU Prolog.
86
87    Added encoding attribute (set to UTF-8) to the xsl:output tag in the
88    lgtxml.xsl, lgthtml.xsl, and lgtxhtml.xsl files.
89
90    Replaced the Windows JScript scripts lgt2pdf.js and lgt2html.js by their
91    final versions (the wrong ones shipped with Logtalk version 2.20.0).
92
93    Updated the "errors" example to illustrate possible conflict errors when
94    using the uses/2 directive.
95
96    Updated the RPM logtalk.spec file to use the .tgz archive extension.
97
98
992.20.0 - August 16, 2004
100
101    Added support for the uses/2 predicate directive (whose semantics is similar
102    to C++ using-declarations). Updated the uses/1 entity directive to accept as
103    argument a single object identifier.
104
105    Improved installation instructions for Windows users.
106
107    Added four new sample bash shell scripts and Windows JScript scripts for
108    converting XML documenting files to PDF, HTML, and XHTML using several XSL
109    processors.
110
111    Added missing namespace to XSL files in order to generated valid (X)HTML
112    files with recent versions of XSLT processors.
113
114    Updated the User Manual documentation on converting XML documenting files
115    to other formats.
116
117    Removed the texml.xsl XSLT file as the TeXMLatte application it depends on
118    is no longer available.
119
120    Added Windows JScript script for copying the Logtalk examples, library, and
121    xml directories to the user directory.
122
123    Added Windows JScript scripts for easy integration of Logtalk with ECLiPSe,
124    SWI-Prolog, SICStus Prolog, and YAP.
125
126    Added missing extension for source metafiles to the SWI-Prolog hook file.
127   
128    Corrected a bug in the lgtxhtml.xsl XSLT file where a wrong reference to
129    the Logtalk CSS file is being used in the xml-stylesheet tag.
130
131    The iso_initialization_dir/1 compiler option is now a read only flag,
132    defined in the configuration files.
133
134
1352.19.1 - August 2, 2004
136
137    Corrected a bug where entities could not be reloaded if they depend on
138    other, not yet loaded entities.
139
140    Corrected a bug where compiler options would not be used when compiling
141    source metafiles.
142
143    Corrected several typos on the Logtalk manuals.
144
145
1462.19.0 - July 26, 2004
147
148    Added support for defining more than one entity per file using Logtalk
149    source metafiles (*.mlgt), which the runtime engine automatically splits
150    on single entity source files plus loading and compiling helper files.
151
152    Updated the URL used on the automatically generated XML documenting files
153    when compiling entities with the option doctype(web).
154
155    Improved error checking when compiling calls to the {}/1 control construct.
156
157    Corrected several typos and some outdated links on the Logtalk manuals.
158
159
1602.18.0 - July 9, 2004
161
162    Added caching of method lookups in order to improve message processing
163    performance (including messages to self and super calls). Applied several
164    optimizations to runtime translation of messages in order to further
165    improve performance.
166
167    Improved error checking while parsing and compiling messages to self.
168
169    Update ECLiPSe config files to compile the Prolog files generated by Logtalk
170    (when compiling source files) in optimized mode instead of traceable mode.
171
172    Updated description of patches needed for running Logtalk with XSB, added
173    a shell script for easy integration of Logtalk with this Prolog compiler,
174    and corrected a problem with its corresponding config file.
175
176    Added multifile/1 directive to the syntax coloring configuration files of the
177    supported text editors.
178
179
1802.17.2 - June 14, 2004
181
182    Updated the Logtalk compiler to allow compilation of source files which
183    contain only directives and no entity definition.
184
185    Simplified loading of library and example entities by using Logtalk source
186    files as loader files.
187
188    Some improvements to the documentation, including the QUICK_START file and
189    the User Manual for first-time users, and to the example descriptions.
190
191    Corrected a bug in handling of local object operators that are also global
192    operators.
193
194    Corrected a bug where dynamic directives are not being generated for dynamic
195    predicates that lack a scope directive or an initial set of clauses.
196
197    Corrected a bug where local dynamic predicates would need a private scope
198    directive in order to allow clauses of the predicate to be retracted.
199
200    Simplified compilation of dynamic and discontiguous predicate directives.
201
202    Added new "logic" example implementing a translator from logic propositions
203    to conjunctive normal form.
204
205    Corrected a problem with wrong end-on-lines on some files.
206
207    Added a shell script for easy integration of Logtalk with CIAO Prolog.
208
209
2102.17.1 - June 7, 2004
211
212    Added custom handling of specification of predicate exceptions in info/2
213    documenting directives when writing XML documenting files (declared as
214    "exceptions is [Cond1-Term1, Cond2-Term2, ...]"; each pair (Condi, Termi)
215    represents an error condition and its respective exception).
216
217    Changed debugger command "e" to print exception terms instead of exiting
218    Logtalk session.
219
220    Corrected a compilation error with B-Prolog due to operator priorities.
221
222    Corrected a possible problem with the redefinition of loaded entities that
223    define (possibly at runtime) dynamic predicates. All clauses for an entity
224    dynamic predicates are retracted before loading the new entity definition.
225
226    Corrected a potential bug when pretty printing terms with variables in the
227    debugger and in the created XML documenting files.
228
229    Added four more DCGs examples ("walker movements", "iterative shell command
230    parsing", "bill of materials", and "command language").
231   
232    New "puzzles" and "metainterpreters" examples.
233
234    Added a mode bundle for the SubEthaEdit 2.x (MacOS X) text editor providing
235    syntax coloring for editing Logtalk source files. Optimized some of the
236    regular expressions in the syntax coloring files for the Kate/Kwrite and Vim
237    text editors.
238
239    Removed predicate nth/3 from library entities listp, list, and difflist.
240    Replaced by the predicates nth0/3 and nth1/3. Added new predicates nth1/4
241    and nth0/4.
242
243    Updated the config file for Quintus Prolog to make use of the "files"
244    library.
245
246    Added experimental implementations for some Prolog compilers of the library
247    portable protocol for operating system access (systemp.lgt). See the file
248    library/experimental/NOTES for details.
249
250
2512.17.0 - April 26, 2004
252
253    Added built-in debugging support implemented through the definition of a
254    new pseudo-object named "debugger". Added "debug" compiler option. Renamed
255    library entities "debuggerp" and "debugger" to, respectively, "event_dbgp"
256    and "event_dbg".
257
258    Improved installation instructions for multi-user environments. Added
259    a shell script for installing Logtalk in Unix and Unix-like operating
260    systems. Added a shell script for copying Logtalk xml, examples, and
261    library directories to the user home directory.
262
263    Added a logtalk.spec file for building Linux RPMs from sources.
264
265    Added a set of shell scripts for easy integration of Logtalk with ECLiPSe,
266    GNU Prolog, Qu-Prolog, SICStus Prolog, SWI-Prolog, and YAP.
267
268    Corrected bug in the definition of the pseudo-object "user" that resulted
269    in mixed up metapredicate and type predicate properties.
270
271    Removed config files for outdated versions of Qu-Prolog, SWI-Prolog, ECLiPSe,
272    K-Prolog, CIAO, YAP, Amzi! Prolog, LPA Win-Prolog, SICStus Prolog, and XSB.
273
274
2752.16.2 - April 2, 2004
276
277    Corrected a bug in the library category monitor (file library/monitor.lgt)
278    that prevents its compilation.
279
280    Changed the possible values of the read-only flag startup_message (defined
281    in the config files) to "flags" (print banner and flag values), "banner"
282    (print only the banner), and "none" (do not print neither the banner nor the
283    flag values). Default value is "flags".
284
285    Updated the "errors" example to illustrate the error messages thrown when
286    trying to redefine Logtalk built-in control constructs.
287
288    Corrected a small problem with the Logtalk language specification file for
289    Apple's Xcode IDE.
290
291    Added preliminary support for syntax coloring using the Windows text editor
292    Crimson Editor.
293
294
2952.16.1 - March 23, 2004
296
297    The local built-in method parameter/2 can now be used inside categories
298    (but please read the warnings about such practice on the user manual).
299
300    Updated the Logtalk compiler to report an error when the user tries to
301    redefine a message sending or external call control construct inside an
302    object or category.
303
304    Corrected a bug in the compilation of metacalls whose meta-arguments are
305    variables.
306
307    Removed references to file sax.jar from the scripts used to convert XML
308    documenting files into (X)HTML. Updated scripts html.sh, htmlnt.cmd, and
309    htmldos.bat to use XT 20020426a or later version.
310
311    Improved syntax coloring accuracy of built-in predicates and methods for
312    the SubEthaEdit text editor.
313
314    Updated config file for Qu-Prolog 6.4.
315
316
3172.16.0 - March 3, 2004
318
319    Logtalk is now distributed under the Artistic License 2.0.
320
321    Operators declared inside an entity are now local to the entity, not
322    affecting the global operator table (complying with the Logtalk language
323    specification). Input and output of terms from inside objects and
324    categories now work as expected in the presence of local operator
325    declarations. Added a new example named "operators".
326
327    Updated built-in method predicate_property/2 for returning metapredicate/1
328    properties for both Logtalk and Prolog metapredicates.
329
330    Added support for calls to non-ISO Prolog standard built-in metapredicates
331    inside objects and categories. Added support for the declaration of non-ISO
332    Prolog standard metapredicates in the config files.
333
334    Small change to the way the Logtalk compiler reports the compilation of
335    entities. Small optimizations to the compilation of Logtalk source files.
336
337    Corrected a bug where calls to Logtalk built-in predicates would be
338    reported as non-portable when the value of compiler option portability is
339    set to warning.
340
341    New config file for Qu-Prolog 6.4 (see the configs/NOTES file for details).
342
343    Corrected a problem with the syntax coloring of quoted atoms and strings
344    in the SubEthaEdit text editor. Added more accurate syntax highlight for
345    built-in methods and built-in predicates.
346
347    Updated the syntax coloring configuration files for all supported text
348    editors to recognize the file extension used by the config files.
349
350
3512.15.6 - February 9, 2004
352
353    Added "xmlspec" compiler option in order to specify the extension (dtd
354    or xsd) of the file describing the XML documenting files specification.
355
356    Renamed compiler option "named_anonymous_vars" to the more appropriated
357    name "underscore_vars". Changed possible option values to "dont_care" and
358    "singletons" (default).
359
360    Added XSLT file for converting XML documenting files to XHTML 1.0 Strict
361    files. Set the default encoding of all XSLT files to UTF-8.
362
363    Added syntax coloring support for the KDE Kate and Kwrite text editors.
364
365    Improved syntax coloring configuration files for VIM, jEdit, NEdit,
366    SubEthaEdit, and Emacs text editors.
367
368    Removed outdated support for MacOS X Project Builder and added support
369    for the new MacOS X Xcode developer tool.
370
371    Corrected bug in the built-in predicate current_logtalk_flag/2 that
372    prevented some flag values from being returned after using the built-in
373    predicate set_logtalk_flag/2.
374
375    Corrected bug in the shapes example (wrong placement of the declaration
376    of the predicate side/1).
377
378
3792.15.5 - December 30, 2003
380
381    Make operator ^^/1 right-associative for consistency with remaining
382    operator declarations.
383
384    Added file BIBLIOGRAPHY containing a list of Logtalk publications in
385    BibTeX format.
386
387    Added a font-lock file for Emacs providing syntax coloring for editing
388    Logtalk source files.
389
390    Added an implementation of the Smalltalk dependent mechanism to the
391    standard Logtalk library.
392
393    Updated the config file for ECLiPSe 5.4~5.7 with missing ISO Prolog
394    predicate definitions needed for successful compilation of all entities
395    in the Logtalk standard library.
396
397    Updated manual pages to comply with XHTML 1.0 Strict and to provide
398    better navigation.
399
400
4012.15.4 - July 9, 2003
402
403    Corrected a spurious backtracking bug in the DCG rule translator. Added
404    two more examples of DCGs.
405
406    New config file for XSB 2.6. Updated Logtalk compiler to compile cleanly
407    under XSB after applying the patch described in configs/NOTES.
408
409    Updated SWI-Prolog config file to hide compiled entity predicates (requires
410    SWI-Prolog 5.2.3 or later version). New optional file configs/swihook.pl
411    contains hook code that allows Logtalk entities to be compiled and loaded
412    using SWI-Prolog load_files/2 and consult/1 predicates.
413
414    Syntax definition file for the Hydra 1.1 (MacOS X) text editor providing
415    syntax coloring for editing Logtalk source files.
416
417    Updated syntax coloring files for jEdit, NEdit, Vim, and TextPad in order
418    to recognize character code constants (0'x) and the DCG operator -->/2.
419
420
4212.15.3 - June 27, 2003
422
423    Updated experimental support for DCG rules to prevent over-simplification
424    of unification goals in the compilation of rules to clauses. Push-back
425    lists can now be used on rule heads.
426
427    The compilation mode of an entity (static/dynamic) is now stored in the
428    corresponding entity table (implying recompilation of all entities).
429
430    Updated GNU Prolog config file to hide compiled entity predicates.
431
432    Updated SWI-Prolog config file for better integration of Logtalk with
433    this compiler.
434
435
4362.15.2 - April 2, 2003
437
438    Experimental support for DCG rules inside categories and objects. Added
439    built-in methods phrase/2 and phrase/3.
440
441    Updated GNU Prolog config file to not hide compiled entity predicates in
442    order to avoid incompatibilities with dynamic entities.
443
444
4452.15.1 - March 8, 2003
446
447    New example, msglog, of using events and monitors to record, replay, and
448    print user messages.
449
450    Corrected a typo on the jEdit templates that resulted in syntax errors.
451    Corrected wrong year format in info/1 directive in all entity templates.
452    Added missing version info key to jEdit prototype template.
453
454    Corrected documentation of built-in local methods self/1 and sender/1.
455    Updated documentation of built-in local methods parameter/2 and this/1.
456
457
4582.15.0 - February 5, 2003
459
460    Changed "authors" key in info/1 directive to "author".
461
462    Corrected documentation of built-in local method this/1.
463
464    New geometric shapes example implemented in two versions, one
465    prototype-based and the other one class-based.
466
467    Improved support for jEdit text editor by adding a set of programming
468    templates for use with the editor Templates plug-in.
469
470    Added basic support for syntax highlighting and programming templates
471    for MacOS X Project builder.
472
473
4742.14.7 - January 10, 2003
475
476    Corrected a bug in the built-in methods asserta/1 and assertz/1 when
477    asserting predicate rules.
478
479    The built-in predicates logtalk_compile/1-2 and logtalk_load/1-2 now
480    accept both an entity (an atom) or a list of entities (a list of atoms).
481
482    Optimized the code generated when compiling or asserting clauses for
483    dynamic predicates.
484
485    Optimized protected inheritance performance on some Prolog compilers.
486
487
4882.14.6 - December 31, 2002
489
490    Corrected a bug where the opening directive of an object that,
491    simultaneously, implements a protocol, imports a categoty, instantiates
492    a class, and specializes a superclass, will not be recognized.
493
494
4952.14.5 - December 20, 2002
496
497    Simplified dynamic table of predicate declarations by removing two
498    redundant arguments.
499   
500    Corrected a bug where sending messages such as true/0 or !/0 to an
501    unknown object succeeded instead of throwing the correct exception.
502
503    Simplified the code used to generate links in the lgtpdfa4.xsl and
504    lgtpdfus.xsl XSLT files.
505
506
5072.14.4 - November 5, 2002
508
509    Removed definition of depracated built-in predicate logtalk_version/3.
510
511    Show flag names when printing at startup the default flag values.
512
513    Small change to messages printed on console with smart compilation of
514    source files turned on.
515
516    Updated YAP 4.3.x config file to use the YAP "system" library to access
517    the operating system for time, date, and file properties (enabling smart
518    source code compilation).
519
520    Updated the lgtpdfa4.xsl and lgtpdfus.xsl XSLT files to workaround a bug
521    in the PassiveTeX 1.21 XSL:FO processor.
522
523
5242.14.3 - Sptember 16, 2002
525
526    New compiler option, doctype, to set the doctype reference (if any)
527    in the XML documenting files. Default value is "local" for backward
528    compatibility. Updated the user manual section on compiler options.
529
530    The Logtalk built-in predicate logtalk_version/3 should be considered
531    deprecated (use current_logtalk_flag/3 instead). All references to this
532    predicate have been removed from the manuals.
533
534    Updated the jEdit syntax coloring config file for the new jEdit 4.1
535    version.
536
537    Updated the lgtpdfa4.xsl and lgtpdfus.xsl XSLT files for compatibility
538    with the XSL:FO processors Apache FOP 0.20.4, PassiveTeX, and RenderX
539    and with the XSL W3C Recommendation of October 15, 2001. Updated the
540    pdf.bat and pdf.sh scripts to reference the latest version of the
541    Apache FOP processor (0.20.4).
542
543    Changed the shell scripts html.sh and pdf.sh for compatibility with the
544    sh, bash, and zsh shells.
545
546
5472.14.2 - August 26, 2002
548
549    Calls to built-in method parameter/2 are now compiled inline, improving
550    call performance.
551
552    Updated Logtalk compiler to clean temporary compilation predicates after
553    compiling an entity instead of only before compilation.
554
555    Updated YAP 4.3.x config file for better Logtalk integration by hiding
556    all internal compiler, runtime, and compiled entities static predicates.
557
558    Updated GNU Prolog config file for better Logtalk integration by hiding
559    all internal compiler, runtime, and compiled entities predicates.
560
561    Updated the XSLT conversion scripts lgtxml.xsl and lgthtml.xsl to correct
562    some HTML conformance errors in the generated pages.
563
564    Corrected some XHTML conformance errors in the manual pages.
565
566
5672.14.1 - July 31, 2002
568
569    New Windows NT script and updated Unix shell script for batch converting
570    XML documenting files to HTML. Both scripts also generate an index.html
571    file containing links to all converted XML documenting files.
572
573    Corrected wrong XHTML DOCTYPE declaration in manual pages.
574
575
5762.14.0 - July 26, 2002
577
578    Renamed all compiler and runtime internal predicates and all auxiliary
579    predicates in the config files to start with a "$" character.
580   
581    New compiler option, code_prefix, to set a prefix for all Prolog code
582    functors generated by Logtalk when compiling entities. Default is ''.
583
584    New compiler option, named_anonymous_vars, that instructs the compiler to
585    interpret variables that start with an underscore as anonymous variables
586    (and to not report them as singleton variables). Default value is "off".
587
588    Directive info/2 was wrongly declared as a entity directive instead of a
589    predicate directive.
590
591    Converted all manual pages to XHTML 1.0 format. Corrected a wrong link in
592    the reference manual. Replaced GIF images by PNG versions.
593
594    Updated BProlog 6.x config file to workaround the new 6.2 built-in
595    predicate ::/2 that conflicts with the same named Logtalk message sending
596    operator.
597
598    Removed call to the obsolete built-in predicate nodbgcomp/0 from all
599    ECLiPSe config files.
600
601
6022.13.0 - June 15, 2002
603
604    Logtalk now outputs Prolog code using write_canonical/2 instead of
605    write_term/3. Goals are better portability of the generated Prolog files
606    and avoid issues with clauses with long bodies for Prolog compilers that
607    use a term print depth limit to prevent problems with cyclic terms.
608
609    Added report of default flag values at Logtalk startup.
610
611    Logtalk now prints a warning when redefining parametric objects.
612
613    Removed need of an abort/0 predicate from the Logtalk debugger example.
614    Removed any definition of this predicate from the config files.
615
616    Added missing definitions for some ISO built-in predicates to the Amzi!
617    Prolog 6.2.2 config file.
618
619
6202.12.0 - May 25, 2002
621
622    New read-only Logtalk flag "version". Corrected exception term generated
623    when trying to modify a read-only flag using the set_logtalk_flag/2
624    built-in predicate.
625
626    Updated config file for OpenProlog 1.1b5.
627
628    New config file for ECLiPSe 5.4.
629
630    Renamed config files for CIAO 1.7 (beta of 1.8) to "ciao_aux18.config"
631    and "ciao18.config".
632
633    Updated config file for Amzi! Prolog 6.2.2.
634
635    New example of using some of the built-in database handling methods
636    (dynpred).
637
638    Syntax configuration files for jEdit 4.0, VIM 6.1, NEdit 5.2, and
639    TextPad 4.5 text editors providing syntax highlighting for editing
640    Logtalk source files.
641
642
6432.11.0 - April 22, 2002
644
645    Added a "smart compilation" feature to the Logtalk compiler, controlled
646    by a "smart_compilation" flag. Only available in Prolog compilers that
647    provide access to file modification dates.
648
649    Added a "startup_message" flag to control printing of the Logtalk banner
650    at startup.
651
652    Reworked Logtalk pre-processor compilation and loading reports. Compiler
653    option "report" now togles between normal reporting (as specified by the
654    other flags) and silent compilation/loading of source files.
655
656
6572.10.0 - April 5, 2002
658
659    Scope of object asserted predicates for which there is no declaration is
660    now a function of the context instead of always being declared public.
661    Asserting in this, the predicate is declared private, asserting in self,
662    the predicate is declared protected, otherwise the predicate is declared
663    public.
664
665    Throw an error if a category contains clauses for dynamic predicates.
666
667    Updated documentation on categories and built-in methods for database
668    handling.
669
670    Retracting all clauses for a dynamic predicate from an object now allows
671    an inherited definition to be called when sending the corresponding
672    message. In previous versions the message just failed.
673
674    Added missing entries for the built-in predicates current_logtalk_flag/2
675    and set_logtalk_flag/2 to the Logtalk compiler built-in predicates table.
676
677    Updated config file for Amzi! Prolog 6.1.74.
678
679    Updated notes on patching XSB to work with Logtalk.
680
681
6822.9.3 - February 9, 2002
683
684    New current_logtalk_flag/2 and set_logtalk_flag/2 built-in predicates.
685
686    Updated documentation on new built-in predicates.
687
688    Renamed SWI-Prolog config file swi330.config to swi.config.
689
690    Renamed config file predicate lgt_default_compiler_option/2 to lgt_flag/2.
691
692    New XSL stylesheets and shell scripts to convert Logtalk XML entity
693    documenting files to PDF format using XSL Formating Objects.
694
695
6962.9.2 - January 4, 2002
697
698    The Logtalk compiler can now print a warning when compiling source files
699    that use non-ISO defined built-in predicates using a new portability/1
700    compiler option. Updated the relevant sections of the user manual and the
701    errors example.
702
703    Corrected a compiler bug where the entity relation tables only recorded
704    the last entry per entity relation type.
705   
706    Updated config file for CIAO 1.7#162.
707
708
7092.9.1 - December 5, 2001
710
711    Logtalk compiler now prints a warning when redefining or replacing an
712    existing entity.
713
714    Corrected a compiler bug in the error checking code for the info/1
715    and info/2 directives.
716
717    Changed the order of object loading in the "mi" example to avoid
718    suporious warning messages.
719   
720    Added a new problem ("bridge") to the "searching" example. Improved
721    "performance" monitor to give correct reports on alternative solutions.
722    Corrected a bug in the "water jug" state space example.
723
724
7252.9.0 - October 22, 2001
726
727    Added config files for CIAO Prolog 1.7p115 and B-Prolog 6.0.
728
729    Compiling and loading an entity that contains references to unknown
730    entities (by default) prints a warning. Updated user and reference
731    manuals.
732
733    Rewrited all the compiler warning/error code and output messages.
734
735    Changed compiled code functors postfixes from "_sdcl" and "_sdef" to
736    "_idcl" and "_idef" (implies recompilation of all objects, protocols,
737    and categories).
738
739    Changed all occurrences and references to the term "entity_scope" to
740    "scope".
741
742    Removed some redundant productions from the Logtalk grammar.
743
744    Updated documentation on the xml directory. Renamed some of the .xsl
745    files. Added sample scripts to batch convert .xml files to .html files.
746   
747    Added a new loader utility file, all.loader, to load all library files
748    loaded by the other loader files.
749
750    Started work on documenting the Logtalk pre-processor/compiler source
751    file.
752
753    New "errors" example. Updated the "inheritance" example.
754
755
7562.8.4 - March 9, 2001
757
758    Updated config files for BinProlog 8.0, K-Prolog 5.01, XSB 2.3, and
759    Amzi! Prolog 4.103~5.0.
760   
761    New config file for Amzi! Prolog 6.1 beta.
762
763    Corrected an incomplete entity definition in the Logtalk XML DTD.
764    Rewrite the Logtalk XSLT files for improved compatibility with XSLT
765    processors regarding handling of whitespace.
766
767    A first cut of a XML Schema for the Logtalk XML documentation files
768    (file xml/logtalk.xsd).
769
770    Small improvements to the documentation.
771
772
7732.8.3 - November 21, 2000
774
775    Corrected a bug where sending a message for a built-in method to an
776    unknown object fails instead of generating the expected exception.
777
778    Put some ocorrences of atoms public, mode, and type between ()'s to
779    avoid compilation errors in BinProlog 8.0 and other Prolog compilers
780    that declare these atoms as operators.
781
782    Corrected the definition of the state space of the "Missionaires and
783    Cannibals" problem in the "searching" example that resulted in some
784    wrong solutions.
785
786
7872.8.2 - November 5, 2000
788
789    New .xsl file to convert .xml files to TeXML files.
790
791    Fixed a problem with explicit compilation options being correctly parsed
792    but not processed.
793
794    Corrected a bug regarding default init options definition for the
795    points, polygons, and bricks examples. Updated category initialization
796    in roots example.
797
798
7992.8.1 - October 28, 2000
800
801    New config file for K-Prolog 5.0.
802
803    Improved compiler error detection and reporting of invalid directives
804    and clauses.
805   
806    Corrected a problem with some Prolog compilers where compiling a file
807    containing syntax errors may not close the file after the errors are
808    reported.
809
810    Many small improvements to all documentation.
811   
812    Small improvements to the .xsl files and to the output of .xml files.
813
814
8152.8.0 - October 1, 2000
816
817    I have found just a few days ago that I have uploaded to the Logtalk web
818    server a development version of Logtalk 2.7.0 instead of the final one!
819    To avoid confusions I decided to release a new version.
820
821    Changed implementation of the logtalk_compile/1-2 and logtalk_load/1-2
822    predicates to only accept a list of entities instead of either an entity
823    or a list of entities, simplifying and improving the performance of these
824    predicates. Improved error reporting for the logtalk_compile/1 and
825    logtalk_load/1 predicates. Updated relevant sessions in the user and
826    reference manuals.
827
828    Simplified the implementation of the following predicates, by sharing
829    the error checking code with the corresponding extended versions:
830    implements_protocol/2, imports_category/2, instantiates_class/2,
831    specializes_class/2, extends_protocol/2, and extends_object/2.
832
833    Completed some missing library file dependencies documentation in some
834    examples.
835
836    New version of the QUICK_START help file. Updated tutorial.
837
838
8392.7.0 - August 24, 2000
840
841    First release of the Logtalk standard library of objects, protocols and
842    categories.
843
844    Rewritten all examples to use the new Logtalk standard library.
845
846    New logtalk_load/2 and logtalk_compile/2 Logtalk built-in predicates,
847    accepting a list of compiler options. See the User and Reference Manuals
848    for details.
849
850    New XSLT file for viewing .xml files in Microsoft Internet Explorer 5.5
851    for Windows after installing the latest Microsoft XML Parser Preview
852    Release. Small improvements in all XSLT files.
853
854    Starting with this version all config files need to provide a definition
855    for the compare/3 predicate if it is not built-in in the corresponding
856    Prolog compiler. Also, default Logtalk compiler options are now also set
857    in the config files using the lgt_default_compiler_option/2 predicate.
858
859    Updated config file for CIAO 1.6p1. See the configs/NOTES file for
860    details.
861
862
8632.6.2 - July 4, 2000
864
865    Improved performance and error checking for the built-in predicates
866    create_object/4, create_protocol/3 and create_category/4.
867
868    Updated config file for BinProlog 7.83.
869
870    Many small updates to all documentation.
871
872    New PDF versions of the documentation formated for printing (with page
873    numbers, table of contents and index)are now available in both A4 and
874    US letter formats.
875
876
8772.6.1 - May 5, 2000
878
879    Modified the structure of the automatically generated XML documenting
880    files to improve XSL translation performance. Added a new, more standard
881    compliant, XSL file to generate HTML files and renamed the old one to
882    ie5.xsl. See the xml/NOTES file for details. Corrected an error in the
883    logtalk.css CSS file.   
884
885    Modified the definitions of predicates lgt_file_extension/2 and
886    lgt_file_name/2 in all config files.
887
888    Updated all the user manual sessions related to automatic documentation.
889
890    Updated all HTML documentation for future XHTML 1.0 conformance.
891
892    Start adding documenting directives to most examples.
893
894
8952.6.0 - April 27, 2000
896
897    Added support for documentation of objects, protocols, and categories,
898    using automatic generation of XML files.
899
900    Added info/1 and info/2 directives for documenting objects, protocols,
901    categories, and predicates. Added definition of documentation file name
902    extension and default file names for the DTD and XSL files to the config
903    files.
904
905    Improved error checking for the built-in predicates create_object/4,
906    create_protocol/3 and create_category/4 to also detect invalid entity
907    identifiers.
908
909    Updated the user and reference manuals to describe the new automatic
910    documenting features.
911
912    Updated all HTML documentation to conform to HTML 4.01 strict standard.
913
914    Corrected some wrong cross-reference links and titles in the reference
915    and user manuals HTML pages.
916
917    PDF versions of the manuals and tutorial are now available in both A4
918    and US letter formats.
919
920    Corrected two errors in the searching example, one in the definition of
921    the farmer problem state space and the other when backtracking over
922    performance reports.
923
924
9252.5.2 - March 7, 2000
926
927    Updated manuals to clarify some limitations of declaring and defining
928    dynamic predicates inside categories and documented a way of using the
929    built-in local method this/1 to access object parameters.
930
931    Removed references to parametric categories from the Logtalk
932    documentation (at runtime we can only access object parameters,
933    not category parameters).
934
935    Corrected two wrong declarations of built-in methods (forall/2 and
936    retractall/1) in the Logtalk pre-processor.
937
938    Corrected bug where predicates declared in dynamic entities may have
939    a "static" instead of a "dynamic" property.
940
941    Corrected a bug in category compilation that prevented a dynamic category
942    from being abolished. Speedup predicate definition lookups for categories.
943
944
9452.5.1 - February 18, 2000
946
947    Two new examples: birds, a bird identification expert system adopted
948    (with permission) from an Amzi example, and viewpoints, a set of
949    prototypes showing how to do property sharing and value sharing in
950    Logtalk.
951
952    Renamed config file yap421.config to yap430.config to match the name of
953    the new YAP 4.3.0 public release (named 4.2.1 while on beta testing).
954
955    Partial config file for Trinc Prolog R3.
956
957
9582.5.0 - December 29, 1999
959
960    The Logtalk pre-processor now accepts arbitrary clauses and directives
961    to appear in a file before an opening entity directive. The clauses and
962    directives are added unchanged to the compiled file.
963
964    Improved performance for all kinds of message sending.
965
966    Two new examples: reflection, showing how to implement a simple
967    class-based reflective system, and symdiff, showing how to use
968    parametric objects to implement symbolic expression differentiation
969    and simplification.
970
971    Updated config file for the beta 8 release of SWI-Prolog 3.3.0.
972
973
9742.4.0 - December 1, 1999
975
976    Logtalk is now an Open Source project, available under Perl's Artistic
977    license.
978
979    Two new examples: instmethods, ilustrating the use of instance defined
980    methods, and classvars, showing how to implement class variables.
981
982    Updated Logtalk grammar to explicitly allow for user-defined types
983    in mode/2 directives.
984
985    New config files for SWI-Prolog 3.3.0, SICStus Prolog 3.8 and CIAO
986    Prolog 1.4p0 (incomplete).
987
988    Updated config file for B-Prolog 4.0.
989
990    Updated config file for GNU Prolog to use the new call_with_args()
991    built-in predicate added in version 1.1.0.
992
993    Updated config file for YAP Prolog to use the new call_with_args()
994    built-in predicate added in version 4.2.1.
995
996
9972.3.1 - September 22, 1999
998
999    Logtalk pre-processor updated to only report one warning per redefined
1000    Logtalk or Prolog built-in predicate.
1001
1002    Changed some occurrences of atom "public" to "(public)" in
1003    compiler/logtalk.pl file to avoid syntax errors in Prolog compilers
1004    (like BinProlog) that define "public" as an operator. Also put some
1005    terms between ()'s to avoid syntax errors with ALS Prolog 3.1
1006
1007    Update config file for ALS Prolog to work with version 3.1.
1008
1009    Updated configs/NOTES file include a workaround to use Logtalk with
1010    XSB 2.0, some guidelines on how to write loader utility files for
1011    BinProlog 7.50, and a bug in ALS Prolog 3.1 that affects Logtalk.
1012
1013
10142.3.0 - September 12, 1999
1015
1016    Metapredicate information is now stored with the other predicate
1017    properties, instead of being discarded after compiling the clauses of
1018    a metapredicate. Added predicate property metapredicate/1. It is now
1019    possible to assert clauses for dynamic metapredicates.
1020
1021    Corrected a bug in the processing of metacalls in pseudo-object user.
1022
1023    Corrected a bug in the implementation of private inheritance.
1024    Improved performance of protected inheritance.
1025
1026    Corrected failure of processing initialization/1 and op/3 directives in
1027    create_object/4, create_category/4 and create_protocol/3 built-in
1028    predicates.
1029
1030    Corrected a bug when calling private static category predicates from
1031    importing objects. Simplified code generated for categories.
1032
1033    Rewrite code for the built-in method current_predicate/1 to avoid
1034    duplicated or wrong results when overriding predicate declarations
1035    and to ensure that all possible argument type errors are detected.
1036
1037    Changed compilation of classes that do not instantiate any (meta)class
1038    in order to throw the correct exception when a message is sent to them.
1039
1040    Changed compilation of root objects (that do not instantiate, specialize
1041    or extend other objects) so that calls to "super" (^^/1) fail (as they
1042    should) instead of generating a "predicate does not exist" error message.
1043
1044    Changed implementation of "super" calls (^^/1) to avoid a potential
1045    endless loop problem when using these calls from the inheritance root
1046    object of a reflexive class-based systems.
1047
1048    Pre-processor now checks for callable and object identifier errors.
1049    Runtime now checks for non-instantiated messages.
1050
1051    Added new example (inheritance) about public, protected and private
1052    inheritance.
1053
1054    Updated metapredicates, lo, kernel, and types examples. Most of the
1055    code in the last two examples is being updated to form the basis of an
1056    upcoming Logtalk standard library.
1057
1058    Small changes in the pre-processor/runtime code for compatibility with
1059    ECLiPSe 4.2.2. Updated config files for this Prolog compiler.
1060
1061    Rewrite some predicates in the config files for SWI-Prolog and LPA
1062    Mac & WIN Prologs for improved performance.
1063
1064    New tutorial session about events and monitors.
1065
1066    Updated documentation to match the changes made in this version.
1067
1068
10692.2.0 - July 10, 1999
1070
1071    Implemented public, protected and private object inheritance, protocol
1072    implementation and category importation.
1073   
1074    New Logtalk built-in predicates instantiates_class/3, extends_object/3,
1075    extends_protocol/3, specializes_class/3, imports_category/3 and
1076    implements_protocol/3. The third argument returns the relation scope.
1077
1078    Pre-processor now checks most directive errors.
1079
1080    Changed ^^/1 (super call) implementation to only allow the use of a
1081    single predicate call for argument and to retain the original sender
1082    of the message (see the updated sicstus example).
1083
1084    Fixed bug that prevented directives with a variable number of arguments
1085    (like dynamic(), public(), uses(), ...) being recognized.
1086
1087    Changed definition of predicate read_term/3 in the configs files of Amzi!,
1088    Aquarius, Arity, Eclipse, IC, K, LPA Mac&WIN, Master and XSB to always
1089    instantiates the singleton variables list to the empty list. Needed to
1090    prevent backtracking problems in logtalk_load/1 and logtalk_compile/1
1091    predicates.
1092
1093    Removed choice-point in processing metacalls in predicate definitions.
1094
1095    A banner with the Logtalk version is printed after loading the runtime/
1096    pre-processor.
1097
1098    Removed variables example. The category attributes is now part of the
1099    kernel example. Corrected some warmless syntax errors in directives in
1100    kernel/attributes.lgt, kernel/monitor.lgt and miscellaneous/queens.lgt.
1101
1102    Changed name of blocks example to bricks and object "block" to "brick"
1103    in order to avoid problems with some Prolog compilers that use the atom
1104    "block" for operators or built-in predicates.
1105
1106
11072.1.0 - May 11, 1999
1108
1109    Fixed some bugs in the definition of the pseudo-object user when sending
1110    the message predicate_property/2.
1111
1112    Renamed config file for Calypso to GNU Prolog.
1113
1114    New config file for LPA WinProlog 4.0.
1115
1116    Corrected the omission in the documentation of the Logtalk grammar of the
1117    built_in entity property.
1118
1119    New tutorial pages about building reflective class-based systems.
1120
1121    Modified pre-processor to compile throw/1 as a control structure to
1122    ensure compatibility with the GNU-Prolog compiler.
1123
1124    Modified pre-processor to ensure compatibility with Prolog compilers that
1125    use immediate update semantics instead of the ISO logical database update.
1126
1127    Improved simplification of compiled object and category clauses.
1128
1129    Rewrite and clean up pre-processor code for better compiler performance.
1130
1131    Several updates to the examples files.
1132
1133    Changed all example loader files to wrap the call to logtalk_load/1 inside
1134    an initialization/1 directive for ISO standard compliance.
1135
1136
11372.0 GM - February 9, 1999
1138
1139    Removed some redundant choice-points that are being created when
1140    compiling Logtalk entities.
1141
1142    Small compilation speed optimizations.
1143
1144    Logtalk compiled files now contain the declarations for the message
1145    sending operators to ensure compatibility with some Prolog compilers.
1146
1147    Changed the way Logtalk pre-processor writes directives to ensure
1148    compatibility with some Prolog compilers. Corrected a bug in the
1149    processing of the op/3 directive.
1150
1151    Updated PrologII+ config file for version 4.5.
1152
1153    Changed the definitions of catch/3 and throw/1 in the config files for
1154    LPA Prolog compilers.
1155
1156    New config file for MasterProlog 4.1; removed config file for the
1157    old BIM Prolog 4.0.
1158
1159    Corrected an error in the config file for OpenProlog in the definiton
1160    of the write_term/3 predicate.
1161
1162    Added a safer definition for write_term/3 predicate in the config 
1163    files for Amzi, Aquarius, Arity, Eclipse, IC, K, LPA Mac, LPA Win,
1164    and XSB Prolog compilers.
1165
1166    Added a QUICK_START file.
1167
1168
11692.0 Beta 3 - February 1, 1999
1170
1171    Closed some encapsulation holes in the implementation of super calls.
1172
1173    Changed Logtalk pre-processor to use write_term/3 instead of write/2 and
1174    writeq/2 to workaround some compatibility problems with some Prolog
1175    compilers.
1176
1177    Changed mode operators priority and type to be compatible with the ISO
1178    standard.
1179
1180    Modified definition of predicate read_term/3 in the config file for Amzi
1181    compiler to return the atom end_of_file instead of '!EOF' at the end of
1182    a file (this prevented Logtalk to complete compilation any file under
1183    this compiler). Improved detection of built-in predicates while compiling.
1184
1185    Removed config file for wamcc. This compiler have been replaced by
1186    Calypso (developed by the same author).
1187
1188    Updated K-Prolog config file for version 4.50.
1189
1190    Improved documentation of template config file.
1191
1192    Added SCRIPT files to the kernel and types examples.
1193
1194    Updated Tutorial and User and Reference Manuals.
1195
1196    New end user license.
1197
1198
11992.0 Beta 2 - November 16, 1998
1200
1201    Built-ins logtalk_compile/1 and logtalk_load/1 updated to match
1202    the documentation regarding thrown errors and to accept a list of
1203    entities to compile/load.
1204
1205    Modified the examples loader utility files to make only a call to
1206    logtalk_load/1 by using a list of entities. This should make it easy to