root/tags/lgt2240/RELEASE_NOTES

Revision 2071, 61.5 KB (checked in by pmoura, 4 years ago)

Added release date for LOgtalk version 2.24.0.

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