root/tags/lgt2251/RELEASE_NOTES

Revision 2247, 64.0 KB (checked in by pmoura, 3 years ago)

Improved documentation.

  • 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.25.1
4
5Copyright (c) 1998-2005 Paulo Moura.  All Rights Reserved.
6=================================================================
7
8
9RELEASE NOTES
10=============
11
12
132.25.1 - August 8, 2005
14
15    Added support for using the "source-highlight" package (version 2.0 or
16    later) by Lorenzo Bettini with Logtalk source files.
17
18    Several optimizations to the syntax coloring configuration files of most
19    of the supported text editors. Added support for code folding to the Vim,
20    Kate, and TextMate text editors.
21
22    Updated the SWI-Prolog shell integration script (make_swilgt.sh) to use
23    either "swipl" or "pl" as the name of the Prolog executable, depending
24    on the host operating system.
25
26    Modified the way entity prefixes are generated for compiled code in order
27    to further minimize possible conflicts resulting from the same prefix being
28    used for different entities (bug report and fix by Brian Hulley). Changes
29    to the prefix format are also reflected on the names of the automatically
30    generated XML documenting files.
31
32    Updated the lgt2html.* and lgt2xml.* documenting scripts in order to index
33    parametric objects using the notation <entity>/<number of parameters>.
34
35    Corrected a bug on the lgtxml.xsl XSLT file where links to related files
36    pointed to .html files instead of .xml files.
37
38    Updated the lgt_install.sh and the make_*lgt.sh shell scripts to check and
39    report invalid installation directory prefixes.
40
41    Added a new state-space search problem, "salt3.lgt", contributed by Paula
42    Marisa Sampaio, to the "searching" example.
43
44
452.25.0 - May 23, 2005
46
47    Logtalk compiler is now source file-based instead of entity-based. Thus,
48    a source file may now contain any number of entities, without the need of
49    using source metafiles. Therefore, this version drops support for source
50    metafiles and the .mlgt file name extension.
51
52    The experimental encoding/1 directive, when used, must be the first term
53    on a source file.  Added an entry to the reference manual describing the
54    directive. Improved "encodings" example.
55
56    Added a new method, debugging/1, to the "debugger" pseudo-object for
57    querying the system about entities compiled in debug mode.
58
59    Improved source file and entity compilation and loading reporting. In
60    particular, when using library notation for source files, the Logtalk
61    compiler now prints the library path containing the source files being
62    compiled or loaded.
63
64    Added new shell scripts, makeall_lgt.*, which run all the make_*lgt.*
65    shell scripts in sequence.
66
67    Simplified compiler reporting of singleton variables in directives and
68    clauses.
69
70    Added an adaption of the "timetables" LPA Prolog++ example.
71
72    Updated B-Prolog config file for the new 6.7 #2 version. Dropped support
73    for older versions of B-Prolog.
74
75
762.24.0 - April 22, 2005
77
78    Added experimental support for a encoding/1 directive for declaring the
79    text character encoding of a source file. This directive is fully based
80    on a directive with the same name and with similar semantics found on
81    recent development versions of SWI-Prolog. For now, this directive only
82    works with SWI-Prolog as most Prolog compilers lack support for dealing
83    with different text encodings. Added new flag "supports_encoding_dir".
84    Added a new example, "encodings", of using the new encoding/1 directive.
85
86    When a source file contains an encoding/1 directive, the XML documenting
87    files will use the same encoding. When no encoding/1 directive is present,
88    the XML documenting files will assume UTF-8 encoding.
89
90    Added new info/1 documenting directive key, "parameters", allowing the
91    declaration of both parameter names and parameter descriptions. Added new
92    info/1 documenting directive key, "remarks", allowing general remarks
93    about an entity to be stated. Added new info/2 documenting directive key,
94    "arguments", allowing declaration of both predicate argument names and
95    predicate argument descriptions. Added new info/2 documenting directive
96    key, "examples", allowing the representation of predicate call examples.
97
98    Much improved and accurate reporting of non-portable predicate calls when
99    using the "portability" flag.
100
101    Added a new directory to the Logtalk distribution, "contributions", which
102    will be used for user-contributed code. On this release, it contains an
103    implementation of the ISO 8601 standard by Daniel L. Dudley, providing a
104    library of useful date predicates.
105
106    Added new lgt2xml.* shell scripts for generating (X)HTML indexes of XML
107    documenting files.
108
109    Rewritten the lgtxhtml.xsl, lgthtml.xsl, lgtxml.xsl XSLT scripts in order
110    to make it easier to define alternative CSS files for the generated HTML
111    files. Rewritten the lgtpdfa4.xsl and lgtpdfus.xsl XSLT scripts in order
112    to improve appearance of the generated PDF files.
113
114    Improved the documentation of the "benchmarks" example and added new
115    predicates for running batches of benchmark tests and for generating
116    lists of known size for the benchmark tests of static code.
117
118    Corrected a bug in the lgt2html.*, lgt2pdf.*, and cplgtdirs.sh shell
119    scripts which resulted in failed transformations whenever the LOGTALKHOME
120    and LOGTALKUSER environment variables or the output directory contained
121    spaces or accented characters.
122
123    Added workaround for Prolog compilers that define operators other than
124    ','/2 that cannot be redefined (such as new B-Prolog 6.7).
125
126    Added a Logtalk "clip" file for the TextPad Windows text editor.
127
128    Renamed directory "misc" to the more meaningful name "scripts".
129
130    Corrected a bug in the implementation of the built-in database methods
131    asserta/1 and assertz/1 when asserting facts on objects compiled in debug
132    mode.
133
134    Corrected a bug in the method leash/1 of the built-in pseudo-object
135    "debugger", which failed to accept an empty list as a valid argument.
136
137    Corrected a bug in the header of the automatically generated XML
138    documenting files when using the XML Schema specification (logtalk.xsd),
139    which could prevented validation when the compiler flag "doctype" is set
140    to "web".
141
142    Corrected a compilation bug where Prolog clauses written outside entities
143    on source metafiles would have their order reversed. Simplified splitting
144    of source metafiles.
145
146    Corrected a compilation bug where Prolog clauses written before an entity
147    opening directive would not be copied to the generated Prolog file.
148
149    Corrected a bug on the "roots" example in the object "class" which failed
150    to properly test the validity of new object identifiers.
151
152    Corrected a bug in the syntax coloring file for the Vim text editor, which
153    resulted in an error message when opening a Logtalk source file for the
154    first time.
155
156
1572.23.1 - March 7, 2005
158
159    Simplified message sending compilation, improving performance of both
160    entity compilation and runtime top-level message sending.
161
162    Simplified implementation and improved performance of the built-in method
163    current_predicate/2.
164
165    Updated the runtime error handler for top-level ::/2 calls to recognize
166    non-existing predicate exceptions thrown by XSB, SICStus Prolog, CIAO,
167    B-Prolog, and recent development versions of SWI-Prolog. Rewritten the
168    ::/2 predicate in order to minimize the overhead of the catch/3 calls
169    associated with the runtime error handler, thus improving performance.
170
171    Expanded the benchmarks example to test performance of the built-in
172    database methods.
173
174    Lookup caches are now cleaned before loading a redefined entity in order
175    to avoid potential problems with entity initialization goals containing
176    message sending calls (previous versions cleaned the caches only after
177    entity loading).
178
179    When reloading an object, its tables of dynamic predicate declarations
180    and dynamic predicate definitions are now reseted.
181
182    Corrected a compatibility problem with the "birds" example due to the use
183    of an operator not available in some Prolog compilers.
184
185
1862.23.0 - February 21, 2005
187
188    Optimized the code generated for local calls to the built-in predicates
189    asserta/1, assertz/1, retract/1, and retractall/1, when the argument is
190    a dynamic predicate declared by a scope directive in the object making
191    the calls.
192
193    Added caching of predicate compiled forms for dynamic facts when used
194    with the database built-in methods clause/2, asserta/1, assertz/1,
195    retract/1, and retractall/1, resulting in a significant performance
196    improvement when using an object's dynamic database. Improved performance
197    of the database built-in methods abolish/1, asserta/1, assertz/1, clause/2,
198    retract/1, and retractall/1 when the cache is not used.
199
200    Corrected a bug on the implementation of the built-in methods asserta/1
201    and assertz/1 that prevented asserting of rules.
202
203    Corrected a bug on the implementation of built-in methods retractall/1,
204    retract/1, and clause/2 that allowed access to local dynamic predicates
205    from outside the container object.
206
207    Added a runtime error handler for top-level ::/2 calls which tries to deal
208    with exceptions thrown by calling non-existing predicates by translating
209    Logtalk generated internal predicate names to user names.
210
211    Print the total number of warnings after a call to the Logtalk built-in
212    predicates logtalk_compile/1-2 and logtalk_load/1-2.
213
214
2152.22.5 - February 9, 2005
216
217    Added scripts for easy integration of Logtalk with K-Prolog. Updated the
218    K-Prolog config file, correcting a showstopper bug and enabling support
219    for using the "library" notation for loading source files.
220
221    Updated JIProlog config file in order to allow smart compilation of source
222    files.
223
224    Changed format of preprocessor and runtime dynamic predicates that deal
225    with predicate indicators for better performance.
226
227    Simplified implementation of Logtalk built-in methods asserta/1 and
228    assertz/1.
229
230    Corrected a performance bug with calls to built-in predicates from objects
231    and categories.
232
233    Corrected spurious backtracking occurring on some calls to the built-in
234    predicate define_events/5.
235
236    Updated shell script "misc/cplgtdirs.sh" to prevent copy of Logtalk files
237    when the destination directory already exists (thus avoiding overriding
238    any user-modified files when upgrading Logtalk).
239
240    Added syntax coloring for the predicate logtalk_library_path/2 to the
241    supported text editors. Updated the syntax coloring file for the TextMate
242    text editor, adding some missing ISO Prolog predicates.
243
244    Improved printing of lists of unknown referenced entities, misspelt calls,
245    and singleton variables when compiling source files. Simplified handling
246    of references to unknown entities.
247
248    Added workaround for Prolog compilers with broken read_term/3 singletons/1
249    option.
250
251    Updated the Logtalk compiler/runtime and the documentation to always
252    use the expression "compiler flag" instead of "compiler option" for
253    consistency. Other minor documentation improvements.
254
255    Corrected a bug with the abolishing of dynamic entities where the clauses
256    corresponding to the alias/3 directive are not being abolished.
257
258    Added new predicates '$lgt_call'/9 and '$lgt_once'/9 to all config files.
259
260    Simplified and improved performance of compilation of directives containing
261    predicate indicators.
262
263
2642.22.4 - January 12, 2005
265
266    Simplified method lookup cache tables, resulting in a small message
267    sending performance speedup. Improved method lookup caching for
268    parametric objects. Added support for caching method lookups for
269    parametric objects whose parameters contain cyclic terms.
270
271    Added a new category, "assignvars", to the Logtalk standard library,
272    containing an adaptation of the implementation of logical assignable
273    variables developed by Nobukuni Kino. Added a new example, "assignvars",
274    illustrating some possible uses of assignable variables in the context
275    of parametric objects.
276
277    Simplified compilation of op/3 directives: there is no longer need to
278    repeat the directives both before and inside an entity in order to make
279    the operators global and also use them in the compilation process.
280
281    Simplified installation instructions.
282
283    Corrected a compiler bug in the code that checks and prints a warning
284    when redefined parametric objects.
285
286    Corrected a bug in the built-in predicate abolish_category/1, which
287    failed to delete import relation clauses between the category being
288    abolished and other categories.
289
290
2912.22.3 - December 30, 2004
292
293    Added a configuration file for XSB 2.7.
294
295    Corrected a bug where the use of alternative compilation directories
296    would fail the first time the logtalk_compile/1-2 or logtalk_load/1-2
297    predicates are used for a given file or library.
298
299    Corrected a bug in the built-in methods asserta/1 and assertz/1 when
300    asserting facts into an object being debugged, which resulted in wrong
301    execution context information being printed when tracing calls to
302    the asserted facts.
303
304    Corrected a bug in the built-in methods asserta/1 and assertz/1 when
305    asserting rules into an object being debugged, which resulted in rule
306    bodies compiled with no information being printed for the rule head
307    when tracing calls to the asserted rules.
308
309    Corrected a bug in the dynamic creation of objects, protocols, and
310    categories when the debug flag is on, which resulted in the table of
311    entities being debugged not being updated.
312
313    Corrected a bug in the handling of exceptions thrown when using the
314    built-in debugger, which resulted in exceptions always being turned
315    into failures.
316
317
3182.22.2 - December 24, 2004
319
320    Improved performance of dynamic creation and compilation of objects,
321    protocols, and categories.
322
323    Improved error-checking code of methods asserta/1 and assertz/1 to
324    prevent asserting of non-callable terms as facts.
325
326    Improved error checking for documenting directives (info/1 and info/2).
327
328    Improved the XSB integration script (make_xsblgt.sh) in order to use the
329    configuration file and the libpaths file available from the $LOGTALKUSER
330    directory.
331
332    Improved installation instructions and installation scripts documentation.
333
334    Added documentation to the user manual on describing predicate exceptions
335    using the info/2 directive.
336
337    Corrected a bug in the predicate_property/2 built-in method when called
338    with the second argument instantiated to the alias/1 property.
339
340
3412.22.1 - December 6, 2004
342
343    Improved installation instructions. Updated the Windows installation
344    JScript script to add the Logtalk directories "misc" and "xml" to the
345    system PATH environment variable and to reuse the environment variable
346    LOGTALKUSER if already defined.
347
348    Added helper batch scripts (misc/cplgtdirs.bat, xml/lgt2html.bat, and
349    xml/lgt2pdf.bat) for easily running the corresponding Windows JScript
350    scripts from the command-line (the two xml/lgt2*.bat scripts run the
351    corresponding *.js scripts stored in the %LOGTALKUSER%/xml directory
352    in order to support user customization).
353
354    Updated the lgt2html.* and lgt2pdf.* shell scripts to use the environment
355    variable LOGTALKUSER instead of LOGTALKHOME for finding supporting files,
356    thus allowing for end-user customization of the scripts and their related
357    files.
358
359    Added documentation on read-only compiler flags (which are defined in the
360    configuration files) to the User Manual.
361
362    Updated the misc/lgt_install.js JScript installer script to workaround a
363    Windows Scripting Host bug which may result in broken shortcuts in the
364    created "Logtalk" program group.
365
366
3672.22.0 - November 29, 2004
368
369    Implemented a notion of library as simply a directory containing source
370    files. Added a new dynamic predicate, logtalk_library_path/2, for
371    specifying library paths. Added a sample file (libpaths/libpaths.pl) for
372    setting library paths for the Logtalk standard library and for all the
373    supplied examples.
374
375    Added support for using the notation <library>(<entity>) with the built-in
376    predicates logtalk_compile/1-2 and logtalk_load/1-2 for compiling and
377    loading source files contained on a library, without the need to first
378    change the current working directory.
379
380    Changed the library and the examples loading instructions to use the new
381    notation <library>(<entity>).
382
383    Improved installation instructions and installation scripts. Added a new
384    environment variable, LOGTALKUSER, for defining the location of the copies
385    of the user-modifiable Logtalk files in a multiple users setup environment.
386
387    Added utility predicates to most configuration files for querying and
388    changing the current working directory (needed for the <library>(<entity>)
389    notation to work).
390
391    Corrected a bug in the code that checks for file existence when compiling
392    or loading source files and source metafiles.
393
394
3952.21.6 - November 15, 2004
396
397    Added support for using alternative directories for storing the Prolog files
398    and the XML documenting files resulting from entity compilation. A new read-
399    only flag, "altdirs", allows the support for alternative directories to be
400    turned on the configuration files of Prolog compilers providing the necessary
401    operating-system access predicates for implementing this feature.
402
403    Improved installation instructions and reporting of default compilation flags
404    at startup.
405
406    Added a sorely missing "Hello World!" example :-)
407
408
4092.21.5 - November 2, 2004
410
411    Added a new optimization compiler flag, "events", which can be used to switch
412    off event-driven programming support when not needed, on a per-object basis,
413    resulting in improved message sending performance.
414
415    Small performance optimization to the runtime creation of dynamic objects,
416    protocols, and categories.
417
418    Updated the error handling code of the built-in predicates create_object/4,
419    create_protocol/3, and create_category/4 in order to throw an instantiation
420    error when called with a non-instantiated argument.
421
422    Updated the benchmarks example to calculate and subtract the benchmark loop
423    time in order to print absolute timings for the benchmarked goals.
424
425    Updated the Qu-Prolog patching instructions to also convert Logtalk source
426    metafiles.
427
428    Fixed a typo on the XSB compatibility notes in the configs/NOTES file.
429
430
4312.21.4 - October 26, 2004
432
433    Corrected a silly bug in the definition of the predicate repeat/1 on the
434    new "benchmarks" example.
435
436
4372.21.3 - October 25, 2004
438
439    Corrected a silly bug in message translation which resulted in a small
440    performance loss. Simplified implementation of message sending predicate
441    ::/2, resulting in a small performance improvement.
442
443    Added a new section on message sending performance to the user manual.
444
445    Added a new example, "benchmarks", for helping measuring performance of
446    Logtalk message sending between Prolog compilers and for comparing message
447    sending with predicate calls in plain Prolog and with calls to modules
448    predicates.
449
450    Updated the YAP configuration file to hide some of the book-keeping tables
451    of the Logtalk runtime engine and to use statistics/2 instead of cputime/0
452    for more accurate timings.
453
454    Updated the Logtalk shell installation script to create the $prefix/bin
455    directory if it does not exist.
456
457    The lgt2pdf.sh and lgt2html.sh shell scripts now use "rm -f" when removing
458    the DTD and XSD files in order to avoid prompting the the user about the file
459    permissions.
460
461    Updated the cplgtdirs.sh shell script to make all copied files user writable.
462
463
4642.21.2 - October 18, 2004
465
466    Added support for declaring grammar rule non-terminals as public, protected,
467    private, dynamic, or discontiguous using the notation Functor//Arity. Added
468    support for documenting non-terminals using the info/2 and mode/2 directives.
469
470    Added support for a new alias/1 predicate property.
471
472    New experimental config file for JIProlog 3.0 (see the configs/NOTES file
473    for details).
474
475    Added a mode bundle for the TextMode 1.0.x (MacOS X) text editor providing
476    syntax highlighting, folding, and code snippets for editing Logtalk source
477    files. Corrected a bug in the syntax coloring of the :-/1-2 operator on the
478    SubEthaEdit 2.x text editor.
479
480
4812.21.1 - September 27, 2004
482
483    Added experimental support for a new built-in method, expand_term/2, which
484    allows access to the Logtalk grammar rule translator. Corrected bug in the
485    expansion of \+/1 in grammar rule bodies. Optimized code generated for
486    message sending calls in the body of grammar rules. Improved error handling
487    of the built-in methods phrase/2 and phrase/3. Added new section on definite
488    clause grammars to the user manual. Added two new objects to the "dcgs"
489    example, dcgtest and bypass, containing test cases for the Logtalk DCG
490    translator and illustrating some programming techniques with grammar rules.
491
492    Corrected a bug in the implementation of the built-in method clause/2 which
493    prevented access to clauses of local dynamic predicates.
494
495    Corrected some dead links on the XHTML manuals.
496
497    Corrected a bug in the syntax coloring of numbers on the SubEthaEdit 2.x
498    text editor.
499
500
5012.21.0 - September 14, 2004
502
503    Added a new predicate directive, alias/3, which allows the definition of
504    alternative predicate names in order to improve readability of inherited
505    features and to solve conflicts between implemented, imported, or inherited
506    predicates.
507
508    Added new example, "aliases", illustrating the use of the new alias/3
509    predicate directive for improving readability of inherited features.
510
511    Added new example, "diamonds", illustrating problems and solutions for the
512    "diamond problem" (multi-inheritance conflicts and ambiguities) using the
513    new alias/3 predicate directive.
514
515    Allow categories to import other categories, i.e. allow categories to be
516    defined as a composition of other categories. This feature should only be
517    used when extending a category without breaking its functional cohesion
518    (for example, when a modified version of a category is needed for importing
519    into several unrelated objects).
520
521    Added new example, "engines", illustrating importing a category from another
522    category.
523
524    Updated the syntax coloring configuration files for the supported text
525    editors for the new alias/3 predicate directive.
526
527    Added autocomplete strings for Logtalk methods and for Logtalk and Prolog
528    built-in predicates and directives to the SubEthaEdit 2.x text editor.
529
530    Corrected a bug which prevented compilation of metafiles containing
531    parametric entities.
532
533
5342.20.2 - August 31, 2004
535
536    Added a Windows JScript script for installing Logtalk. Improved the Windows
537    JScript scripts used for easy integration of Logtalk with selected Prolog
538    compilers.
539
540    Improved user manual section on defining object and category metapredicates
541    and on calling non-stardard Prolog built-in metapredicates. Improved the
542    description of some compiler options.
543
544    Added some files missing from the "errors" example (which should have been
545    included in the previous release).
546
547    Added basic syntax coloring support for the BBEdit 8.x text editor.
548
549
5502.20.1 - August 19, 2004
551
552    Added Windows JScript scripts for easy integration of Logtalk with CIAO and
553    GNU Prolog.
554
555    Added encoding attribute (set to UTF-8) to the xsl:output tag in the
556    lgtxml.xsl, lgthtml.xsl, and lgtxhtml.xsl files.
557
558    Replaced the Windows JScript scripts lgt2pdf.js and lgt2html.js by their
559    final versions (the wrong ones shipped with Logtalk version 2.20.0).
560
561    Updated the "errors" example to illustrate possible conflict errors when
562    using the uses/2 directive.
563
564    Updated the RPM logtalk.spec file to use the .tgz archive extension.
565
566
5672.20.0 - August 16, 2004
568
569    Added support for the uses/2 predicate directive (whose semantics is similar
570    to C++ using-declarations). Updated the uses/1 entity directive to accept as
571    argument a single object identifier.
572
573    Improved installation instructions for Windows users.
574
575    Added four new sample bash shell scripts and Windows JScript scripts for
576    converting XML documenting files to PDF, HTML, and XHTML using several XSL
577    processors.
578
579    Added missing namespace to XSL files in order to generated valid (X)HTML
580    files with recent versions of XSLT processors.
581
582    Updated the User Manual documentation on converting XML documenting files
583    to other formats.
584
585    Removed the texml.xsl XSLT file as the TeXMLatte application it depends on
586    is no longer available.
587
588    Added Windows JScript script for copying the Logtalk examples, library, and
589    xml directories to the user directory.
590
591    Added Windows JScript scripts for easy integration of Logtalk with ECLiPSe,
592    SWI-Prolog, SICStus Prolog, and YAP.
593
594    Added missing extension for source metafiles to the SWI-Prolog hook file.
595   
596    Corrected a bug in the lgtxhtml.xsl XSLT file where a wrong reference to
597    the Logtalk CSS file is being used in the xml-stylesheet tag.
598
599    The iso_initialization_dir/1 compiler option is now a read only flag,
600    defined in the configuration files.
601
602
6032.19.1 - August 2, 2004
604
605    Corrected a bug where entities could not be reloaded if they depend on
606    other, not yet loaded entities.
607
608    Corrected a bug where compiler options would not be used when compiling
609    source metafiles.
610
611    Corrected several typos on the Logtalk manuals.
612
613
6142.19.0 - July 26, 2004
615
616    Added support for defining more than one entity per file using Logtalk
617    source metafiles (*.mlgt), which the runtime engine automatically splits
618    on single entity source files plus loading and compiling helper files.
619
620    Updated the URL used on the automatically generated XML documenting files
621    when compiling entities with the option doctype(web).
622
623    Improved error checking when compiling calls to the {}/1 control construct.
624
625    Corrected several typos and some outdated links on the Logtalk manuals.
626
627
6282.18.0 - July 9, 2004
629
630    Added caching of method lookups in order to improve message processing
631    performance (including messages to self and super calls). Applied several
632    optimizations to runtime translation of messages in order to further
633    improve performance.
634
635    Improved error checking while parsing and compiling messages to self.
636
637    Update ECLiPSe config files to compile the Prolog files generated by Logtalk
638    (when compiling source files) in optimized mode instead of traceable mode.
639
640    Updated description of patches needed for running Logtalk with XSB, added
641    a shell script for easy integration of Logtalk with this Prolog compiler,
642    and corrected a problem with its corresponding config file.
643
644    Added multifile/1 directive to the syntax coloring configuration files of the
645    supported text editors.
646
647
6482.17.2 - June 14, 2004
649
650    Updated the Logtalk compiler to allow compilation of source files which
651    contain only directives and no entity definition.
652
653    Simplified loading of library and example entities by using Logtalk source
654    files as loader files.
655
656    Some improvements to the documentation, including the QUICK_START file and
657    the User Manual for first-time users, and to the example descriptions.
658
659    Corrected a bug in handling of local object operators that are also global
660    operators.
661
662    Corrected a bug where dynamic directives are not being generated for dynamic
663    predicates that lack a scope directive or an initial set of clauses.
664
665    Corrected a bug where local dynamic predicates would need a private scope
666    directive in order to allow clauses of the predicate to be retracted.
667
668    Simplified compilation of dynamic and discontiguous predicate directives.
669
670    Added new "logic" example implementing a translator from logic propositions
671    to conjunctive normal form.
672
673    Corrected a problem with wrong end-on-lines on some files.
674
675    Added a shell script for easy integration of Logtalk with CIAO Prolog.
676
677
6782.17.1 - June 7, 2004
679
680    Added custom handling of specification of predicate exceptions in info/2
681    documenting directives when writing XML documenting files (declared as
682    "exceptions is [Cond1-Term1, Cond2-Term2, ...]"; each pair (Condi, Termi)
683    represents an error condition and its respective exception).
684
685    Changed debugger command "e" to print exception terms instead of exiting
686    Logtalk session.
687
688    Corrected a compilation error with B-Prolog due to operator priorities.
689
690    Corrected a possible problem with the redefinition of loaded entities that
691    define (possibly at runtime) dynamic predicates. All clauses for an entity
692    dynamic predicates are retracted before loading the new entity definition.
693
694    Corrected a potential bug when pretty printing terms with variables in the
695    debugger and in the created XML documenting files.
696
697    Added four more DCGs examples ("walker movements", "iterative shell command
698    parsing", "bill of materials", and "command language").
699   
700    New "puzzles" and "metainterpreters" examples.
701
702    Added a mode bundle for the SubEthaEdit 2.x (MacOS X) text editor providing
703    syntax coloring for editing Logtalk source files. Optimized some of the
704    regular expressions in the syntax coloring files for the Kate/Kwrite and Vim
705    text editors.
706
707    Removed predicate nth/3 from library entities listp, list, and difflist.
708    Replaced by the predicates nth0/3 and nth1/3. Added new predicates nth1/4
709    and nth0/4.
710
711    Updated the config file for Quintus Prolog to make use of the "files"
712    library.
713
714    Added experimental implementations for some Prolog compilers of the library
715    portable protocol for operating system access (systemp.lgt). See the file
716    library/experimental/NOTES for details.
717
718
7192.17.0 - April 26, 2004
720
721    Added built-in debugging support implemented through the definition of a
722    new pseudo-object named "debugger". Added "debug" compiler option. Renamed
723    library entities "debuggerp" and "debugger" to, respectively, "event_dbgp"
724    and "event_dbg".
725
726    Improved installation instructions for multi-user environments. Added
727    a shell script for installing Logtalk in Unix and Unix-like operating
728    systems. Added a shell script for copying Logtalk xml, examples, and
729    library directories to the user home directory.
730
731    Added a logtalk.spec file for building Linux RPMs from sources.
732
733    Added a set of shell scripts for easy integration of Logtalk with ECLiPSe,
734    GNU Prolog, Qu-Prolog, SICStus Prolog, SWI-Prolog, and YAP.
735
736    Corrected bug in the definition of the pseudo-object "user" that resulted
737    in mixed up metapredicate and type predicate properties.
738
739    Removed config files for outdated versions of Qu-Prolog, SWI-Prolog, ECLiPSe,
740    K-Prolog, CIAO, YAP, Amzi! Prolog, LPA Win-Prolog, SICStus Prolog, and XSB.
741
742
7432.16.2 - April 2, 2004
744
745    Corrected a bug in the library category monitor (file library/monitor.lgt)
746    that prevents its compilation.
747
748    Changed the possible values of the read-only flag startup_message (defined
749    in the config files) to "flags" (print banner and flag values), "banner"
750    (print only the banner), and "none" (do not print neither the banner nor the
751    flag values). Default value is "flags".
752
753    Updated the "errors" example to illustrate the error messages thrown when
754    trying to redefine Logtalk built-in control constructs.
755
756    Corrected a small problem with the Logtalk language specification file for
757    Apple's Xcode IDE.
758
759    Added preliminary support for syntax coloring using the Windows text editor
760    Crimson Editor.
761
762
7632.16.1 - March 23, 2004
764
765    The local built-in method parameter/2 can now be used inside categories
766    (but please read the warnings about such practice on the user manual).
767
768    Updated the Logtalk compiler to report an error when the user tries to
769    redefine a message sending or external call control construct inside an
770    object or category.
771
772    Corrected a bug in the compilation of metacalls whose meta-arguments are
773    variables.
774
775    Removed references to file sax.jar from the scripts used to convert XML
776    documenting files into (X)HTML. Updated scripts html.sh, htmlnt.cmd, and
777    htmldos.bat to use XT 20020426a or later version.
778
779    Improved syntax coloring accuracy of built-in predicates and methods for
780    the SubEthaEdit text editor.
781
782    Updated config file for Qu-Prolog 6.4.
783
784
7852.16.0 - March 3, 2004
786
787    Logtalk is now distributed under the Artistic License 2.0.
788
789    Operators declared inside an entity are now local to the entity, not
790    affecting the global operator table (complying with the Logtalk language
791    specification). Input and output of terms from inside objects and
792    categories now work as expected in the presence of local operator
793    declarations. Added a new example named "operators".
794
795    Updated built-in method predicate_property/2 for returning metapredicate/1
796    properties for both Logtalk and Prolog metapredicates.
797
798    Added support for calls to non-ISO Prolog standard built-in metapredicates
799    inside objects and categories. Added support for the declaration of non-ISO
800    Prolog standard metapredicates in the config files.
801
802    Small change to the way the Logtalk compiler reports the compilation of
803    entities. Small optimizations to the compilation of Logtalk source files.
804
805    Corrected a bug where calls to Logtalk built-in predicates would be
806    reported as non-portable when the value of compiler option portability is
807    set to warning.
808
809    New config file for Qu-Prolog 6.4 (see the configs/NOTES file for details).
810
811    Corrected a problem with the syntax coloring of quoted atoms and strings
812    in the SubEthaEdit text editor. Added more accurate syntax highlight for
813    built-in methods and built-in predicates.
814
815    Updated the syntax coloring configuration files for all supported text
816    editors to recognize the file extension used by the config files.
817
818
8192.15.6 - February 9, 2004
820
821    Added "xmlspec" compiler option in order to specify the extension (dtd
822    or xsd) of the file describing the XML documenting files specification.
823
824    Renamed compiler option "named_anonymous_vars" to the more appropriated
825    name "underscore_vars". Changed possible option values to "dont_care" and
826    "singletons" (default).
827
828    Added XSLT file for converting XML documenting files to XHTML 1.0 Strict
829    files. Set the default encoding of all XSLT files to UTF-8.
830
831    Added syntax coloring support for the KDE Kate and Kwrite text editors.
832
833    Improved syntax coloring configuration files for VIM, jEdit, NEdit,
834    SubEthaEdit, and Emacs text editors.
835
836    Removed outdated support for MacOS X Project Builder and added support
837    for the new MacOS X Xcode developer tool.
838
839    Corrected bug in the built-in predicate current_logtalk_flag/2 that
840    prevented some flag values from being returned after using the built-in
841    predicate set_logtalk_flag/2.
842
843    Corrected bug in the shapes example (wrong placement of the declaration
844    of the predicate side/1).
845
846
8472.15.5 - December 30, 2003
848
849    Make operator ^^/1 right-associative for consistency with remaining
850    operator declarations.
851
852    Added file BIBLIOGRAPHY containing a list of Logtalk publications in
853    BibTeX format.
854
855    Added a font-lock file for Emacs providing syntax coloring for editing
856    Logtalk source files.
857
858    Added an implementation of the Smalltalk dependent mechanism to the
859    standard Logtalk library.
860
861    Updated the config file for ECLiPSe 5.4~5.7 with missing ISO Prolog
862    predicate definitions needed for successful compilation of all entities
863    in the Logtalk standard library.
864
865    Updated manual pages to comply with XHTML 1.0 Strict and to provide
866    better navigation.
867
868
8692.15.4 - July 9, 2003
870
871    Corrected a spurious backtracking bug in the DCG rule translator. Added
872    two more examples of DCGs.
873
874    New config file for XSB 2.6. Updated Logtalk compiler to compile cleanly
875    under XSB after applying the patch described in configs/NOTES.
876
877    Updated SWI-Prolog config file to hide compiled entity predicates (requires
878    SWI-Prolog 5.2.3 or later version). New optional file configs/swihook.pl
879    contains hook code that allows Logtalk entities to be compiled and loaded
880    using SWI-Prolog load_files/2 and consult/1 predicates.
881
882    Syntax definition file for the Hydra 1.1 (MacOS X) text editor providing
883    syntax coloring for editing Logtalk source files.
884
885    Updated syntax coloring files for jEdit, NEdit, Vim, and TextPad in order
886    to recognize character code constants (0'x) and the DCG operator -->/2.
887
888
8892.15.3 - June 27, 2003
890
891    Updated experimental support for DCG rules to prevent over-simplification
892    of unification goals in the compilation of rules to clauses. Push-back
893    lists can now be used on rule heads.
894
895    The compilation mode of an entity (static/dynamic) is now stored in the
896    corresponding entity table (implying recompilation of all entities).
897
898    Updated GNU Prolog config file to hide compiled entity predicates.
899
900    Updated SWI-Prolog config file for better integration of Logtalk with
901    this compiler.
902
903
9042.15.2 - April 2, 2003
905
906    Experimental support for DCG rules inside categories and objects. Added
907    built-in methods phrase/2 and phrase/3.
908
909    Updated GNU Prolog config file to not hide compiled entity predicates in
910    order to avoid incompatibilities with dynamic entities.
911
912
9132.15.1 - March 8, 2003
914
915    New example, msglog, of using events and monitors to record, replay, and
916    print user messages.
917
918    Corrected a typo on the jEdit templates that resulted in syntax errors.
919    Corrected wrong year format in info/1 directive in all entity templates.
920    Added missing version info key to jEdit prototype template.
921
922    Corrected documentation of built-in local methods self/1 and sender/1.
923    Updated documentation of built-in local methods parameter/2 and this/1.
924
925
9262.15.0 - February 5, 2003
927
928    Changed "authors" key in info/1 directive to "author".
929
930    Corrected documentation of built-in local method this/1.
931
932    New geometric shapes example implemented in two versions, one
933    prototype-based and the other one class-based.
934
935    Improved support for jEdit text editor by adding a set of programming
936    templates for use with the editor Templates plug-in.
937
938    Added basic support for syntax highlighting and programming templates
939    for MacOS X Project builder.
940
941
9422.14.7 - January 10, 2003
943
944    Corrected a bug in the built-in methods asserta/1 and assertz/1 when
945    asserting predicate rules.
946
947    The built-in predicates logtalk_compile/1-2 and logtalk_load/1-2 now
948    accept both an entity (an atom) or a list of entities (a list of atoms).
949
950    Optimized the code generated when compiling or asserting clauses for
951    dynamic predicates.
952
953    Optimized protected inheritance performance on some Prolog compilers.
954
955
9562.14.6 - December 31, 2002
957
958    Corrected a bug where the opening directive of an object that,
959    simultaneously, implements a protocol, imports a categoty, instantiates
960    a class, and specializes a superclass, will not be recognized.
961
962
9632.14.5 - December 20, 2002
964
965    Simplified dynamic table of predicate declarations by removing two
966    redundant arguments.
967   
968    Corrected a bug where sending messages such as true/0 or !/0 to an
969    unknown object succeeded instead of throwing the correct exception.
970
971    Simplified the code used to generate links in the lgtpdfa4.xsl and
972    lgtpdfus.xsl XSLT files.
973
974
9752.14.4 - November 5, 2002
976
977    Removed definition of depracated built-in predicate logtalk_version/3.
978
979    Show flag names when printing at startup the default flag values.
980
981    Small change to messages printed on console with smart compilation of
982    source files turned on.
983
984    Updated YAP 4.3.x config file to use the YAP "system" library to access
985    the operating system for time, date, and file properties (enabling smart
986    source code compilation).
987
988    Updated the lgtpdfa4.xsl and lgtpdfus.xsl XSLT files to workaround a bug
989    in the PassiveTeX 1.21 XSL:FO processor.
990
991
9922.14.3 - Sptember 16, 2002
993
994    New compiler option, doctype, to set the doctype reference (if any)
995    in the XML documenting files. Default value is "local" for backward
996    compatibility. Updated the user manual section on compiler options.
997
998    The Logtalk built-in predicate logtalk_version/3 should be considered
999    deprecated (use current_logtalk_flag/3 instead). All references to this
1000    predicate have been removed from the manuals.
1001
1002    Updated the jEdit syntax coloring config file for the new jEdit 4.1
1003    version.
1004
1005    Updated the lgtpdfa4.xsl and lgtpdfus.xsl XSLT files for compatibility
1006    with the XSL:FO processors Apache FOP 0.20.4, PassiveTeX, and RenderX
1007    and with the XSL W3C Recommendation of October 15, 2001. Updated the
1008    pdf.bat and pdf.sh scripts to reference the latest version of the
1009    Apache FOP processor (0.20.4).
1010
1011    Changed the shell scripts html.sh and pdf.sh for compatibility with the
1012    sh, bash, and zsh shells.
1013
1014
10152.14.2 - August 26, 2002
1016
1017    Calls to built-in method parameter/2 are now compiled inline, improving
1018    call performance.
1019
1020    Updated Logtalk compiler to clean temporary compilation predicates after
1021    compiling an entity instead of only before compilation.
1022
1023    Updated YAP 4.3.x config file for better Logtalk integration by hiding
1024    all internal compiler, runtime, and compiled entities static predicates.
1025
1026    Updated GNU Prolog config file for better Logtalk integration by hiding
1027    all internal compiler, runtime, and compiled entities predicates.
1028
1029    Updated the XSLT conversion scripts lgtxml.xsl and lgthtml.xsl to correct
1030    some HTML conformance errors in the generated pages.
1031
1032    Corrected some XHTML conformance errors in the manual pages.
1033
1034
10352.14.1 - July 31, 2002
1036
1037    New Windows NT script and updated Unix shell script for batch converting
1038    XML documenting files to HTML. Both scripts also generate an index.html
1039    file containing links to all converted XML documenting files.
1040
1041    Corrected wrong XHTML DOCTYPE declaration in manual pages.
1042
1043
10442.14.0 - July 26, 2002
1045
1046    Renamed all compiler and runtime internal predicates and all auxiliary
1047    predicates in the config files to start with a "$" character.
1048   
1049    New compiler option, code_prefix, to set a prefix for all Prolog code
1050    functors generated by Logtalk when compiling entities. Default is ''.
1051
1052    New compiler option, named_anonymous_vars, that instructs the compiler to
1053    interpret variables that start with an underscore as anonymous variables
1054    (and to not report them as singleton variables). Default value is "off".
1055
1056    Directive info/2 was wrongly declared as a entity directive instead of a
1057    predicate directive.
1058
1059    Converted all manual pages to XHTML 1.0 format. Corrected a wrong link in
1060    the reference manual. Replaced GIF images by PNG versions.
1061
1062    Updated BProlog 6.x config file to workaround the new 6.2 built-in
1063    predicate ::/2 that conflicts with the same named Logtalk message sending
1064    operator.
1065
1066    Removed call to the obsolete built-in predicate nodbgcomp/0 from all
1067    ECLiPSe config files.
1068
1069
10702.13.0 - June 15, 2002
1071
1072    Logtalk now outputs Prolog code using write_canonical/2 instead of
1073    write_term/3. Goals are better portability of the generated Prolog files
1074    and avoid issues with clauses with long bodies for Prolog compilers that
1075    use a term print depth limit to prevent problems with cyclic terms.
1076
1077    Added report of default flag values at Logtalk startup.
1078
1079    Logtalk now prints a warning when redefining parametric objects.
1080
1081    Removed need of an abort/0 predicate from the Logtalk debugger example.
1082    Removed any definition of this predicate from the config files.
1083
1084    Added missing definitions for some ISO built-in predicates to the Amzi!
1085    Prolog 6.2.2 config file.
1086
1087
10882.12.0 - May 25, 2002
1089
1090    New read-only Logtalk flag "version". Corrected exception term generated
1091    when trying to modify a read-only flag using the set_logtalk_flag/2
1092    built-in predicate.
1093
1094    Updated config file for OpenProlog 1.1b5.
1095
1096    New config file for ECLiPSe 5.4.
1097
1098    Renamed config files for CIAO 1.7 (beta of 1.8) to "ciao_aux18.config"
1099    and "ciao18.config".
1100
1101    Updated config file for Amzi! Prolog 6.2.2.
1102
1103    New example of using some of the built-in database handling methods
1104    (dynpred).
1105
1106    Syntax configuration files for jEdit 4.0, VIM 6.1, NEdit 5.2, and
1107    TextPad 4.5 text editors providing syntax highlighting for editing
1108    Logtalk source files.
1109
1110
11112.11.0 - April 22, 2002
1112
1113    Added a "smart compilation" feature to the Logtalk compiler, controlled
1114    by a "smart_compilation" flag. Only available in Prolog compilers that
1115    provide access to file modification dates.
1116
1117    Added a "startup_message" flag to control printing of the Logtalk banner
1118    at startup.
1119
1120    Reworked Logtalk pre-processor compilation and loading reports. Compiler
1121    option "report" now togles between normal reporting (as specified by the
1122    other flags) and silent compilation/loading of source files.
1123
1124
11252.10.0 - April 5, 2002
1126
1127    Scope of object asserted predicates for which there is no declaration is
1128    now a function of the context instead of always being declared public.
1129    Asserting in this, the predicate is declared private, asserting in self,
1130    the predicate is declared protected, otherwise the predicate is declared
1131    public.
1132
1133    Throw an error if a category contains clauses for dynamic predicates.
1134
1135    Updated documentation on categories and built-in methods for database
1136    handling.
1137
1138    Retracting all clauses for a dynamic predicate from an object now allows
1139    an inherited definition to be called when sending the corresponding
1140    message. In previous versions the message just failed.
1141
1142    Added missing entries for the built-in predicates current_logtalk_flag/2
1143    and set_logtalk_flag/2 to the Logtalk compiler built-in predicates table.
1144
1145    Updated config file for Amzi! Prolog 6.1.74.
1146
1147    Updated notes on patching XSB to work with Logtalk.
1148
1149
11502.9.3 - February 9, 2002
1151
1152    New current_logtalk_flag/2 and set_logtalk_flag/2 built-in predicates.
1153
1154    Updated documentation on new built-in predicates.
1155
1156    Renamed SWI-Prolog config file swi330.config to swi.config.
1157
1158    Renamed config file predicate lgt_default_compiler_option/2 to lgt_flag/2.
1159
1160    New XSL stylesheets and shell scripts to convert Logtalk XML entity
1161    documenting files to PDF format using XSL Formating Objects.
1162
1163
11642.9.2 - January 4, 2002
1165
1166    The Logtalk compiler can now print a warning when compiling source files
1167    that use non-ISO defined built-in predicates using a new portability/1
1168    compiler option. Updated the relevant sections of the user manual and the
1169    errors example.
1170
1171    Corrected a compiler bug where the entity relation tables only recorded
1172    the last entry per entity relation type.
1173   
1174    Updated config file for CIAO 1.7#162.<