root/tags/lgt2223/RELEASE_NOTES

Revision 1837, 52.2 KB (checked in by pmoura, 4 years ago)

Corrected a bug in the handling of exceptions thrown when using the built-in debugger, which resulted in exceptions always being turned into failures.

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