root/tags/lgt2212/RELEASE_NOTES

Revision 1599, 45.4 KB (checked in by pmoura, 4 years ago)

Added note on problem with JIProlog when running on MacOS X.

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