root/tags/lgt2210/RELEASE_NOTES

Revision 1497, 43.9 KB (checked in by pmoura, 4 years ago)

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