root/tags/lgt2221/RELEASE_NOTES

Revision 1779, 50.3 KB (checked in by pmoura, 4 years ago)

Updated pages for Logtalk release 2.22.1.

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