root/tags/lgt2215/RELEASE_NOTES

Revision 1662, 47.4 KB (checked in by pmoura, 4 years ago)

Improved documentation of new compiler option "events".

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