root/tags/lgt2222/RELEASE_NOTES

Revision 1822, 51.1 KB (checked in by pmoura, 4 years ago)

Improved error checking for documenting directives (info/1 and info/2).

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