root/tags/lgt2216/RELEASE_NOTES

Revision 1677, 48.0 KB (checked in by pmoura, 4 years ago)

Added final release notes for release 2.21.6.

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