root/tags/lgt2202/RELEASE_NOTES

Revision 1454, 42.5 KB (checked in by pmoura, 4 years ago)

Added basic syntax coloring support for the BBEdit 8.x text editor.

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