root/tags/lgt2213/RELEASE_NOTES

Revision 1639, 46.5 KB (checked in by pmoura, 4 years ago)

Updated the cplgtdirs.sh shell script to make all copied files user writable.

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