root/tags/lgt2250/RELEASE_NOTES

Revision 2140, 62.6 KB (checked in by pmoura, 4 years ago)

Added new shell script, makeall_lgt.js, which runs all the make_*lgt.js shell scripts in sequence.

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