root/tags/lgt2220/RELEASE_NOTES

Revision 1743, 49.2 KB (checked in by pmoura, 4 years ago)

Improved documentation.

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