root/tags/lgt2252/RELEASE_NOTES

Revision 2260, 64.5 KB (checked in by pmoura, 3 years ago)

Corrected a bug on the makeall_lgt.sh shell script that failed to properly detect unsuccessful completion of individual Prolog integration scripts.

  • 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.25.2
4
5Copyright (c) 1998-2005 Paulo Moura.  All Rights Reserved.
6=================================================================
7
8
9RELEASE NOTES
10=============
11
12
132.25.2 - August 11, 2005
14
15    Updated Logtalk installation and Prolog integration scripts in order to
16    detect a wrongly defined LOGTALKHOME environment variable.
17
18    Corrected a bug on the lgt_install.sh and make*lgt.sh shell scripts where
19    the wrong variable was being referenced when testing the existence of the
20    installation directory prefix.
21
22    Corrected a bug on the makeall_lgt.sh shell script that failed to properly
23    detect unsuccessful completion of individual Prolog integration scripts.
24
25
262.25.1 - August 8, 2005
27
28    Added support for using the "source-highlight" package (version 2.0 or
29    later) by Lorenzo Bettini with Logtalk source files.
30
31    Several optimizations to the syntax coloring configuration files of most
32    of the supported text editors. Added support for code folding to the Vim,
33    Kate, and TextMate text editors.
34
35    Updated the SWI-Prolog shell integration script (make_swilgt.sh) to use
36    either "swipl" or "pl" as the name of the Prolog executable, depending
37    on the host operating system.
38
39    Modified the way entity prefixes are generated for compiled code in order
40    to further minimize possible conflicts resulting from the same prefix being
41    used for different entities (bug report and fix by Brian Hulley). Changes
42    to the prefix format are also reflected on the names of the automatically
43    generated XML documenting files.
44
45    Updated the lgt2html.* and lgt2xml.* documenting scripts in order to index
46    parametric objects using the notation <entity>/<number of parameters>.
47
48    Corrected a bug on the lgtxml.xsl XSLT file where links to related files
49    pointed to .html files instead of .xml files.
50
51    Updated the lgt_install.sh and the make_*lgt.sh shell scripts to check and
52    report invalid installation directory prefixes.
53
54    Added a new state-space search problem, "salt3.lgt", contributed by Paula
55    Marisa Sampaio, to the "searching" example.
56
57
582.25.0 - May 23, 2005
59
60    Logtalk compiler is now source file-based instead of entity-based. Thus,
61    a source file may now contain any number of entities, without the need of
62    using source metafiles. Therefore, this version drops support for source
63    metafiles and the .mlgt file name extension.
64
65    The experimental encoding/1 directive, when used, must be the first term
66    on a source file.  Added an entry to the reference manual describing the
67    directive. Improved "encodings" example.
68
69    Added a new method, debugging/1, to the "debugger" pseudo-object for
70    querying the system about entities compiled in debug mode.
71
72    Improved source file and entity compilation and loading reporting. In
73    particular, when using library notation for source files, the Logtalk
74    compiler now prints the library path containing the source files being
75    compiled or loaded.
76
77    Added new shell scripts, makeall_lgt.*, which run all the make_*lgt.*
78    shell scripts in sequence.
79
80    Simplified compiler reporting of singleton variables in directives and
81    clauses.
82
83    Added an adaption of the "timetables" LPA Prolog++ example.
84
85    Updated B-Prolog config file for the new 6.7 #2 version. Dropped support
86    for older versions of B-Prolog.
87
88
892.24.0 - April 22, 2005
90
91    Added experimental support for a encoding/1 directive for declaring the
92    text character encoding of a source file. This directive is fully based
93    on a directive with the same name and with similar semantics found on
94    recent development versions of SWI-Prolog. For now, this directive only
95    works with SWI-Prolog as most Prolog compilers lack support for dealing
96    with different text encodings. Added new flag "supports_encoding_dir".
97    Added a new example, "encodings", of using the new encoding/1 directive.
98
99    When a source file contains an encoding/1 directive, the XML documenting
100    files will use the same encoding. When no encoding/1 directive is present,
101    the XML documenting files will assume UTF-8 encoding.
102
103    Added new info/1 documenting directive key, "parameters", allowing the
104    declaration of both parameter names and parameter descriptions. Added new
105    info/1 documenting directive key, "remarks", allowing general remarks
106    about an entity to be stated. Added new info/2 documenting directive key,
107    "arguments", allowing declaration of both predicate argument names and
108    predicate argument descriptions. Added new info/2 documenting directive
109    key, "examples", allowing the representation of predicate call examples.
110
111    Much improved and accurate reporting of non-portable predicate calls when
112    using the "portability" flag.
113
114    Added a new directory to the Logtalk distribution, "contributions", which
115    will be used for user-contributed code. On this release, it contains an
116    implementation of the ISO 8601 standard by Daniel L. Dudley, providing a
117    library of useful date predicates.
118
119    Added new lgt2xml.* shell scripts for generating (X)HTML indexes of XML
120    documenting files.
121
122    Rewritten the lgtxhtml.xsl, lgthtml.xsl, lgtxml.xsl XSLT scripts in order
123    to make it easier to define alternative CSS files for the generated HTML
124    files. Rewritten the lgtpdfa4.xsl and lgtpdfus.xsl XSLT scripts in order
125    to improve appearance of the generated PDF files.
126
127    Improved the documentation of the "benchmarks" example and added new
128    predicates for running batches of benchmark tests and for generating
129    lists of known size for the benchmark tests of static code.
130
131    Corrected a bug in the lgt2html.*, lgt2pdf.*, and cplgtdirs.sh shell
132    scripts which resulted in failed transformations whenever the LOGTALKHOME
133    and LOGTALKUSER environment variables or the output directory contained
134    spaces or accented characters.
135
136    Added workaround for Prolog compilers that define operators other than
137    ','/2 that cannot be redefined (such as new B-Prolog 6.7).
138
139    Added a Logtalk "clip" file for the TextPad Windows text editor.
140
141    Renamed directory "misc" to the more meaningful name "scripts".
142
143    Corrected a bug in the implementation of the built-in database methods
144    asserta/1 and assertz/1 when asserting facts on objects compiled in debug
145    mode.
146
147    Corrected a bug in the method leash/1 of the built-in pseudo-object
148    "debugger", which failed to accept an empty list as a valid argument.
149
150    Corrected a bug in the header of the automatically generated XML
151    documenting files when using the XML Schema specification (logtalk.xsd),
152    which could prevented validation when the compiler flag "doctype" is set
153    to "web".
154
155    Corrected a compilation bug where Prolog clauses written outside entities
156    on source metafiles would have their order reversed. Simplified splitting
157    of source metafiles.
158
159    Corrected a compilation bug where Prolog clauses written before an entity
160    opening directive would not be copied to the generated Prolog file.
161
162    Corrected a bug on the "roots" example in the object "class" which failed
163    to properly test the validity of new object identifiers.
164
165    Corrected a bug in the syntax coloring file for the Vim text editor, which
166    resulted in an error message when opening a Logtalk source file for the
167    first time.
168
169
1702.23.1 - March 7, 2005
171
172    Simplified message sending compilation, improving performance of both
173    entity compilation and runtime top-level message sending.
174
175    Simplified implementation and improved performance of the built-in method
176    current_predicate/2.
177
178    Updated the runtime error handler for top-level ::/2 calls to recognize
179    non-existing predicate exceptions thrown by XSB, SICStus Prolog, CIAO,
180    B-Prolog, and recent development versions of SWI-Prolog. Rewritten the
181    ::/2 predicate in order to minimize the overhead of the catch/3 calls
182    associated with the runtime error handler, thus improving performance.
183
184    Expanded the benchmarks example to test performance of the built-in
185    database methods.
186
187    Lookup caches are now cleaned before loading a redefined entity in order
188    to avoid potential problems with entity initialization goals containing
189    message sending calls (previous versions cleaned the caches only after
190    entity loading).
191
192    When reloading an object, its tables of dynamic predicate declarations
193    and dynamic predicate definitions are now reseted.
194
195    Corrected a compatibility problem with the "birds" example due to the use
196    of an operator not available in some Prolog compilers.
197
198
1992.23.0 - February 21, 2005
200
201    Optimized the code generated for local calls to the built-in predicates
202    asserta/1, assertz/1, retract/1, and retractall/1, when the argument is
203    a dynamic predicate declared by a scope directive in the object making
204    the calls.
205
206    Added caching of predicate compiled forms for dynamic facts when used
207    with the database built-in methods clause/2, asserta/1, assertz/1,
208    retract/1, and retractall/1, resulting in a significant performance
209    improvement when using an object's dynamic database. Improved performance
210    of the database built-in methods abolish/1, asserta/1, assertz/1, clause/2,
211    retract/1, and retractall/1 when the cache is not used.
212
213    Corrected a bug on the implementation of the built-in methods asserta/1
214    and assertz/1 that prevented asserting of rules.
215
216    Corrected a bug on the implementation of built-in methods retractall/1,
217    retract/1, and clause/2 that allowed access to local dynamic predicates
218    from outside the container object.
219
220    Added a runtime error handler for top-level ::/2 calls which tries to deal
221    with exceptions thrown by calling non-existing predicates by translating
222    Logtalk generated internal predicate names to user names.
223
224    Print the total number of warnings after a call to the Logtalk built-in
225    predicates logtalk_compile/1-2 and logtalk_load/1-2.
226
227
2282.22.5 - February 9, 2005
229
230    Added scripts for easy integration of Logtalk with K-Prolog. Updated the
231    K-Prolog config file, correcting a showstopper bug and enabling support
232    for using the "library" notation for loading source files.
233
234    Updated JIProlog config file in order to allow smart compilation of source
235    files.
236
237    Changed format of preprocessor and runtime dynamic predicates that deal
238    with predicate indicators for better performance.
239
240    Simplified implementation of Logtalk built-in methods asserta/1 and
241    assertz/1.
242
243    Corrected a performance bug with calls to built-in predicates from objects
244    and categories.
245
246    Corrected spurious backtracking occurring on some calls to the built-in
247    predicate define_events/5.
248
249    Updated shell script "misc/cplgtdirs.sh" to prevent copy of Logtalk files
250    when the destination directory already exists (thus avoiding overriding
251    any user-modified files when upgrading Logtalk).
252
253    Added syntax coloring for the predicate logtalk_library_path/2 to the
254    supported text editors. Updated the syntax coloring file for the TextMate
255    text editor, adding some missing ISO Prolog predicates.
256
257    Improved printing of lists of unknown referenced entities, misspelt calls,
258    and singleton variables when compiling source files. Simplified handling
259    of references to unknown entities.
260
261    Added workaround for Prolog compilers with broken read_term/3 singletons/1
262    option.
263
264    Updated the Logtalk compiler/runtime and the documentation to always
265    use the expression "compiler flag" instead of "compiler option" for
266    consistency. Other minor documentation improvements.
267
268    Corrected a bug with the abolishing of dynamic entities where the clauses
269    corresponding to the alias/3 directive are not being abolished.
270
271    Added new predicates '$lgt_call'/9 and '$lgt_once'/9 to all config files.
272
273    Simplified and improved performance of compilation of directives containing
274    predicate indicators.
275
276
2772.22.4 - January 12, 2005
278
279    Simplified method lookup cache tables, resulting in a small message
280    sending performance speedup. Improved method lookup caching for
281    parametric objects. Added support for caching method lookups for
282    parametric objects whose parameters contain cyclic terms.
283
284    Added a new category, "assignvars", to the Logtalk standard library,
285    containing an adaptation of the implementation of logical assignable
286    variables developed by Nobukuni Kino. Added a new example, "assignvars",
287    illustrating some possible uses of assignable variables in the context
288    of parametric objects.
289
290    Simplified compilation of op/3 directives: there is no longer need to
291    repeat the directives both before and inside an entity in order to make
292    the operators global and also use them in the compilation process.
293
294    Simplified installation instructions.
295
296    Corrected a compiler bug in the code that checks and prints a warning
297    when redefined parametric objects.
298
299    Corrected a bug in the built-in predicate abolish_category/1, which
300    failed to delete import relation clauses between the category being
301    abolished and other categories.
302
303
3042.22.3 - December 30, 2004
305
306    Added a configuration file for XSB 2.7.
307
308    Corrected a bug where the use of alternative compilation directories
309    would fail the first time the logtalk_compile/1-2 or logtalk_load/1-2
310    predicates are used for a given file or library.
311
312    Corrected a bug in the built-in methods asserta/1 and assertz/1 when
313    asserting facts into an object being debugged, which resulted in wrong
314    execution context information being printed when tracing calls to
315    the asserted facts.
316
317    Corrected a bug in the built-in methods asserta/1 and assertz/1 when
318    asserting rules into an object being debugged, which resulted in rule
319    bodies compiled with no information being printed for the rule head
320    when tracing calls to the asserted rules.
321
322    Corrected a bug in the dynamic creation of objects, protocols, and
323    categories when the debug flag is on, which resulted in the table of
324    entities being debugged not being updated.
325
326    Corrected a bug in the handling of exceptions thrown when using the
327    built-in debugger, which resulted in exceptions always being turned
328    into failures.
329
330
3312.22.2 - December 24, 2004
332
333    Improved performance of dynamic creation and compilation of objects,
334    protocols, and categories.
335
336    Improved error-checking code of methods asserta/1 and assertz/1 to
337    prevent asserting of non-callable terms as facts.
338
339    Improved error checking for documenting directives (info/1 and info/2).
340
341    Improved the XSB integration script (make_xsblgt.sh) in order to use the
342    configuration file and the libpaths file available from the $LOGTALKUSER
343    directory.
344
345    Improved installation instructions and installation scripts documentation.
346
347    Added documentation to the user manual on describing predicate exceptions
348    using the info/2 directive.
349
350    Corrected a bug in the predicate_property/2 built-in method when called
351    with the second argument instantiated to the alias/1 property.
352
353
3542.22.1 - December 6, 2004
355
356    Improved installation instructions. Updated the Windows installation
357    JScript script to add the Logtalk directories "misc" and "xml" to the
358    system PATH environment variable and to reuse the environment variable
359    LOGTALKUSER if already defined.
360
361    Added helper batch scripts (misc/cplgtdirs.bat, xml/lgt2html.bat, and
362    xml/lgt2pdf.bat) for easily running the corresponding Windows JScript
363    scripts from the command-line (the two xml/lgt2*.bat scripts run the
364    corresponding *.js scripts stored in the %LOGTALKUSER%/xml directory
365    in order to support user customization).
366
367    Updated the lgt2html.* and lgt2pdf.* shell scripts to use the environment
368    variable LOGTALKUSER instead of LOGTALKHOME for finding supporting files,
369    thus allowing for end-user customization of the scripts and their related
370    files.
371
372    Added documentation on read-only compiler flags (which are defined in the
373    configuration files) to the User Manual.
374
375    Updated the misc/lgt_install.js JScript installer script to workaround a
376    Windows Scripting Host bug which may result in broken shortcuts in the
377    created "Logtalk" program group.
378
379
3802.22.0 - November 29, 2004
381
382    Implemented a notion of library as simply a directory containing source
383    files. Added a new dynamic predicate, logtalk_library_path/2, for
384    specifying library paths. Added a sample file (libpaths/libpaths.pl) for
385    setting library paths for the Logtalk standard library and for all the
386    supplied examples.
387
388    Added support for using the notation <library>(<entity>) with the built-in
389    predicates logtalk_compile/1-2 and logtalk_load/1-2 for compiling and
390    loading source files contained on a library, without the need to first
391    change the current working directory.
392
393    Changed the library and the examples loading instructions to use the new
394    notation <library>(<entity>).
395
396    Improved installation instructions and installation scripts. Added a new
397    environment variable, LOGTALKUSER, for defining the location of the copies
398    of the user-modifiable Logtalk files in a multiple users setup environment.
399
400    Added utility predicates to most configuration files for querying and
401    changing the current working directory (needed for the <library>(<entity>)
402    notation to work).
403
404    Corrected a bug in the code that checks for file existence when compiling
405    or loading source files and source metafiles.
406
407
4082.21.6 - November 15, 2004
409
410    Added support for using alternative directories for storing the Prolog files
411    and the XML documenting files resulting from entity compilation. A new read-
412    only flag, "altdirs", allows the support for alternative directories to be
413    turned on the configuration files of Prolog compilers providing the necessary
414    operating-system access predicates for implementing this feature.
415
416    Improved installation instructions and reporting of default compilation flags
417    at startup.
418
419    Added a sorely missing "Hello World!" example :-)
420
421
4222.21.5 - November 2, 2004
423
424    Added a new optimization compiler flag, "events", which can be used to switch
425    off event-driven programming support when not needed, on a per-object basis,
426    resulting in improved message sending performance.
427
428    Small performance optimization to the runtime creation of dynamic objects,
429    protocols, and categories.
430
431    Updated the error handling code of the built-in predicates create_object/4,
432    create_protocol/3, and create_category/4 in order to throw an instantiation
433    error when called with a non-instantiated argument.
434
435    Updated the benchmarks example to calculate and subtract the benchmark loop
436    time in order to print absolute timings for the benchmarked goals.
437
438    Updated the Qu-Prolog patching instructions to also convert Logtalk source
439    metafiles.
440
441    Fixed a typo on the XSB compatibility notes in the configs/NOTES file.
442
443
4442.21.4 - October 26, 2004
445
446    Corrected a silly bug in the definition of the predicate repeat/1 on the
447    new "benchmarks" example.
448
449
4502.21.3 - October 25, 2004
451
452    Corrected a silly bug in message translation which resulted in a small
453    performance loss. Simplified implementation of message sending predicate
454    ::/2, resulting in a small performance improvement.
455
456    Added a new section on message sending performance to the user manual.
457
458    Added a new example, "benchmarks", for helping measuring performance of
459    Logtalk message sending between Prolog compilers and for comparing message
460    sending with predicate calls in plain Prolog and with calls to modules
461    predicates.
462
463    Updated the YAP configuration file to hide some of the book-keeping tables
464    of the Logtalk runtime engine and to use statistics/2 instead of cputime/0
465    for more accurate timings.
466
467    Updated the Logtalk shell installation script to create the $prefix/bin
468    directory if it does not exist.
469
470    The lgt2pdf.sh and lgt2html.sh shell scripts now use "rm -f" when removing
471    the DTD and XSD files in order to avoid prompting the the user about the file
472    permissions.
473
474    Updated the cplgtdirs.sh shell script to make all copied files user writable.
475
476
4772.21.2 - October 18, 2004
478
479    Added support for declaring grammar rule non-terminals as public, protected,
480    private, dynamic, or discontiguous using the notation Functor//Arity. Added
481    support for documenting non-terminals using the info/2 and mode/2 directives.
482
483    Added support for a new alias/1 predicate property.
484
485    New experimental config file for JIProlog 3.0 (see the configs/NOTES file
486    for details).
487
488    Added a mode bundle for the TextMode 1.0.x (MacOS X) text editor providing
489    syntax highlighting, folding, and code snippets for editing Logtalk source
490    files. Corrected a bug in the syntax coloring of the :-/1-2 operator on the
491    SubEthaEdit 2.x text editor.
492
493
4942.21.1 - September 27, 2004
495
496    Added experimental support for a new built-in method, expand_term/2, which
497    allows access to the Logtalk grammar rule translator. Corrected bug in the
498    expansion of \+/1 in grammar rule bodies. Optimized code generated for
499    message sending calls in the body of grammar rules. Improved error handling
500    of the built-in methods phrase/2 and phrase/3. Added new section on definite
501    clause grammars to the user manual. Added two new objects to the "dcgs"
502    example, dcgtest and bypass, containing test cases for the Logtalk DCG
503    translator and illustrating some programming techniques with grammar rules.
504
505    Corrected a bug in the implementation of the built-in method clause/2 which
506    prevented access to clauses of local dynamic predicates.
507
508    Corrected some dead links on the XHTML manuals.
509
510    Corrected a bug in the syntax coloring of numbers on the SubEthaEdit 2.x
511    text editor.
512
513
5142.21.0 - September 14, 2004
515
516    Added a new predicate directive, alias/3, which allows the definition of
517    alternative predicate names in order to improve readability of inherited
518    features and to solve conflicts between implemented, imported, or inherited
519    predicates.
520
521    Added new example, "aliases", illustrating the use of the new alias/3
522    predicate directive for improving readability of inherited features.
523
524    Added new example, "diamonds", illustrating problems and solutions for the
525    "diamond problem" (multi-inheritance conflicts and ambiguities) using the
526    new alias/3 predicate directive.
527
528    Allow categories to import other categories, i.e. allow categories to be
529    defined as a composition of other categories. This feature should only be
530    used when extending a category without breaking its functional cohesion
531    (for example, when a modified version of a category is needed for importing
532    into several unrelated objects).
533
534    Added new example, "engines", illustrating importing a category from another
535    category.
536
537    Updated the syntax coloring configuration files for the supported text
538    editors for the new alias/3 predicate directive.
539
540    Added autocomplete strings for Logtalk methods and for Logtalk and Prolog
541    built-in predicates and directives to the SubEthaEdit 2.x text editor.
542
543    Corrected a bug which prevented compilation of metafiles containing
544    parametric entities.
545
546
5472.20.2 - August 31, 2004
548
549    Added a Windows JScript script for installing Logtalk. Improved the Windows
550    JScript scripts used for easy integration of Logtalk with selected Prolog
551    compilers.
552
553    Improved user manual section on defining object and category metapredicates
554    and on calling non-stardard Prolog built-in metapredicates. Improved the
555    description of some compiler options.
556
557    Added some files missing from the "errors" example (which should have been
558    included in the previous release).
559
560    Added basic syntax coloring support for the BBEdit 8.x text editor.
561
562
5632.20.1 - August 19, 2004
564
565    Added Windows JScript scripts for easy integration of Logtalk with CIAO and
566    GNU Prolog.
567
568    Added encoding attribute (set to UTF-8) to the xsl:output tag in the
569    lgtxml.xsl, lgthtml.xsl, and lgtxhtml.xsl files.
570
571    Replaced the Windows JScript scripts lgt2pdf.js and lgt2html.js by their
572    final versions (the wrong ones shipped with Logtalk version 2.20.0).
573
574    Updated the "errors" example to illustrate possible conflict errors when
575    using the uses/2 directive.
576
577    Updated the RPM logtalk.spec file to use the .tgz archive extension.
578
579
5802.20.0 - August 16, 2004
581
582    Added support for the uses/2 predicate directive (whose semantics is similar
583    to C++ using-declarations). Updated the uses/1 entity directive to accept as
584    argument a single object identifier.
585
586    Improved installation instructions for Windows users.
587
588    Added four new sample bash shell scripts and Windows JScript scripts for
589    converting XML documenting files to PDF, HTML, and XHTML using several XSL
590    processors.
591
592    Added missing namespace to XSL files in order to generated valid (X)HTML
593    files with recent versions of XSLT processors.
594
595    Updated the User Manual documentation on converting XML documenting files
596    to other formats.
597
598    Removed the texml.xsl XSLT file as the TeXMLatte application it depends on
599    is no longer available.
600
601    Added Windows JScript script for copying the Logtalk examples, library, and
602    xml directories to the user directory.
603
604    Added Windows JScript scripts for easy integration of Logtalk with ECLiPSe,
605    SWI-Prolog, SICStus Prolog, and YAP.
606
607    Added missing extension for source metafiles to the SWI-Prolog hook file.
608   
609    Corrected a bug in the lgtxhtml.xsl XSLT file where a wrong reference to
610    the Logtalk CSS file is being used in the xml-stylesheet tag.
611
612    The iso_initialization_dir/1 compiler option is now a read only flag,
613    defined in the configuration files.
614
615
6162.19.1 - August 2, 2004
617
618    Corrected a bug where entities could not be reloaded if they depend on
619    other, not yet loaded entities.
620
621    Corrected a bug where compiler options would not be used when compiling
622    source metafiles.
623
624    Corrected several typos on the Logtalk manuals.
625
626
6272.19.0 - July 26, 2004
628
629    Added support for defining more than one entity per file using Logtalk
630    source metafiles (*.mlgt), which the runtime engine automatically splits
631    on single entity source files plus loading and compiling helper files.
632
633    Updated the URL used on the automatically generated XML documenting files
634    when compiling entities with the option doctype(web).
635
636    Improved error checking when compiling calls to the {}/1 control construct.
637
638    Corrected several typos and some outdated links on the Logtalk manuals.
639
640
6412.18.0 - July 9, 2004
642
643    Added caching of method lookups in order to improve message processing
644    performance (including messages to self and super calls). Applied several
645    optimizations to runtime translation of messages in order to further
646    improve performance.
647
648    Improved error checking while parsing and compiling messages to self.
649
650    Update ECLiPSe config files to compile the Prolog files generated by Logtalk
651    (when compiling source files) in optimized mode instead of traceable mode.
652
653    Updated description of patches needed for running Logtalk with XSB, added
654    a shell script for easy integration of Logtalk with this Prolog compiler,
655    and corrected a problem with its corresponding config file.
656
657    Added multifile/1 directive to the syntax coloring configuration files of the
658    supported text editors.
659
660
6612.17.2 - June 14, 2004
662
663    Updated the Logtalk compiler to allow compilation of source files which
664    contain only directives and no entity definition.
665
666    Simplified loading of library and example entities by using Logtalk source
667    files as loader files.
668
669    Some improvements to the documentation, including the QUICK_START file and
670    the User Manual for first-time users, and to the example descriptions.
671
672    Corrected a bug in handling of local object operators that are also global
673    operators.
674
675    Corrected a bug where dynamic directives are not being generated for dynamic
676    predicates that lack a scope directive or an initial set of clauses.
677
678    Corrected a bug where local dynamic predicates would need a private scope
679    directive in order to allow clauses of the predicate to be retracted.
680
681    Simplified compilation of dynamic and discontiguous predicate directives.
682
683    Added new "logic" example implementing a translator from logic propositions
684    to conjunctive normal form.
685
686    Corrected a problem with wrong end-on-lines on some files.
687
688    Added a shell script for easy integration of Logtalk with CIAO Prolog.
689
690
6912.17.1 - June 7, 2004
692
693    Added custom handling of specification of predicate exceptions in info/2
694    documenting directives when writing XML documenting files (declared as
695    "exceptions is [Cond1-Term1, Cond2-Term2, ...]"; each pair (Condi, Termi)
696    represents an error condition and its respective exception).
697
698    Changed debugger command "e" to print exception terms instead of exiting
699    Logtalk session.
700
701    Corrected a compilation error with B-Prolog due to operator priorities.
702
703    Corrected a possible problem with the redefinition of loaded entities that
704    define (possibly at runtime) dynamic predicates. All clauses for an entity
705    dynamic predicates are retracted before loading the new entity definition.
706
707    Corrected a potential bug when pretty printing terms with variables in the
708    debugger and in the created XML documenting files.
709
710    Added four more DCGs examples ("walker movements", "iterative shell command
711    parsing", "bill of materials", and "command language").
712   
713    New "puzzles" and "metainterpreters" examples.
714
715    Added a mode bundle for the SubEthaEdit 2.x (MacOS X) text editor providing
716    syntax coloring for editing Logtalk source files. Optimized some of the
717    regular expressions in the syntax coloring files for the Kate/Kwrite and Vim
718    text editors.
719
720    Removed predicate nth/3 from library entities listp, list, and difflist.
721    Replaced by the predicates nth0/3 and nth1/3. Added new predicates nth1/4
722    and nth0/4.
723
724    Updated the config file for Quintus Prolog to make use of the "files"
725    library.
726
727    Added experimental implementations for some Prolog compilers of the library
728    portable protocol for operating system access (systemp.lgt). See the file
729    library/experimental/NOTES for details.
730
731
7322.17.0 - April 26, 2004
733
734    Added built-in debugging support implemented through the definition of a
735    new pseudo-object named "debugger". Added "debug" compiler option. Renamed
736    library entities "debuggerp" and "debugger" to, respectively, "event_dbgp"
737    and "event_dbg".
738
739    Improved installation instructions for multi-user environments. Added
740    a shell script for installing Logtalk in Unix and Unix-like operating
741    systems. Added a shell script for copying Logtalk xml, examples, and
742    library directories to the user home directory.
743
744    Added a logtalk.spec file for building Linux RPMs from sources.
745
746    Added a set of shell scripts for easy integration of Logtalk with ECLiPSe,
747    GNU Prolog, Qu-Prolog, SICStus Prolog, SWI-Prolog, and YAP.
748
749    Corrected bug in the definition of the pseudo-object "user" that resulted
750    in mixed up metapredicate and type predicate properties.
751
752    Removed config files for outdated versions of Qu-Prolog, SWI-Prolog, ECLiPSe,
753    K-Prolog, CIAO, YAP, Amzi! Prolog, LPA Win-Prolog, SICStus Prolog, and XSB.
754
755
7562.16.2 - April 2, 2004
757
758    Corrected a bug in the library category monitor (file library/monitor.lgt)
759    that prevents its compilation.
760
761    Changed the possible values of the read-only flag startup_message (defined
762    in the config files) to "flags" (print banner and flag values), "banner"
763    (print only the banner), and "none" (do not print neither the banner nor the
764    flag values). Default value is "flags".
765
766    Updated the "errors" example to illustrate the error messages thrown when
767    trying to redefine Logtalk built-in control constructs.
768
769    Corrected a small problem with the Logtalk language specification file for
770    Apple's Xcode IDE.
771
772    Added preliminary support for syntax coloring using the Windows text editor
773    Crimson Editor.
774
775
7762.16.1 - March 23, 2004
777
778    The local built-in method parameter/2 can now be used inside categories
779    (but please read the warnings about such practice on the user manual).
780
781    Updated the Logtalk compiler to report an error when the user tries to
782    redefine a message sending or external call control construct inside an
783    object or category.
784
785    Corrected a bug in the compilation of metacalls whose meta-arguments are
786    variables.
787
788    Removed references to file sax.jar from the scripts used to convert XML
789    documenting files into (X)HTML. Updated scripts html.sh, htmlnt.cmd, and
790    htmldos.bat to use XT 20020426a or later version.
791
792    Improved syntax coloring accuracy of built-in predicates and methods for
793    the SubEthaEdit text editor.
794
795    Updated config file for Qu-Prolog 6.4.
796
797
7982.16.0 - March 3, 2004
799
800    Logtalk is now distributed under the Artistic License 2.0.
801
802    Operators declared inside an entity are now local to the entity, not
803    affecting the global operator table (complying with the Logtalk language
804    specification). Input and output of terms from inside objects and
805    categories now work as expected in the presence of local operator
806    declarations. Added a new example named "operators".
807
808    Updated built-in method predicate_property/2 for returning metapredicate/1
809    properties for both Logtalk and Prolog metapredicates.
810
811    Added support for calls to non-ISO Prolog standard built-in metapredicates
812    inside objects and categories. Added support for the declaration of non-ISO
813    Prolog standard metapredicates in the config files.
814
815    Small change to the way the Logtalk compiler reports the compilation of
816    entities. Small optimizations to the compilation of Logtalk source files.
817
818    Corrected a bug where calls to Logtalk built-in predicates would be
819    reported as non-portable when the value of compiler option portability is
820    set to warning.
821
822    New config file for Qu-Prolog 6.4 (see the configs/NOTES file for details).
823
824    Corrected a problem with the syntax coloring of quoted atoms and strings
825    in the SubEthaEdit text editor. Added more accurate syntax highlight for
826    built-in methods and built-in predicates.
827
828    Updated the syntax coloring configuration files for all supported text
829    editors to recognize the file extension used by the config files.
830
831
8322.15.6 - February 9, 2004
833
834    Added "xmlspec" compiler option in order to specify the extension (dtd
835    or xsd) of the file describing the XML documenting files specification.
836
837    Renamed compiler option "named_anonymous_vars" to the more appropriated
838    name "underscore_vars". Changed possible option values to "dont_care" and
839    "singletons" (default).
840
841    Added XSLT file for converting XML documenting files to XHTML 1.0 Strict
842    files. Set the default encoding of all XSLT files to UTF-8.
843
844    Added syntax coloring support for the KDE Kate and Kwrite text editors.
845
846    Improved syntax coloring configuration files for VIM, jEdit, NEdit,
847    SubEthaEdit, and Emacs text editors.
848
849    Removed outdated support for MacOS X Project Builder and added support
850    for the new MacOS X Xcode developer tool.
851
852    Corrected bug in the built-in predicate current_logtalk_flag/2 that
853    prevented some flag values from being returned after using the built-in
854    predicate set_logtalk_flag/2.
855
856    Corrected bug in the shapes example (wrong placement of the declaration
857    of the predicate side/1).
858
859
8602.15.5 - December 30, 2003
861
862    Make operator ^^/1 right-associative for consistency with remaining
863    operator declarations.
864
865    Added file BIBLIOGRAPHY containing a list of Logtalk publications in
866    BibTeX format.
867
868    Added a font-lock file for Emacs providing syntax coloring for editing
869    Logtalk source files.
870
871    Added an implementation of the Smalltalk dependent mechanism to the
872    standard Logtalk library.
873
874    Updated the config file for ECLiPSe 5.4~5.7 with missing ISO Prolog
875    predicate definitions needed for successful compilation of all entities
876    in the Logtalk standard library.
877
878    Updated manual pages to comply with XHTML 1.0 Strict and to provide
879    better navigation.
880
881
8822.15.4 - July 9, 2003
883
884    Corrected a spurious backtracking bug in the DCG rule translator. Added
885    two more examples of DCGs.
886
887    New config file for XSB 2.6. Updated Logtalk compiler to compile cleanly
888    under XSB after applying the patch described in configs/NOTES.
889
890    Updated SWI-Prolog config file to hide compiled entity predicates (requires
891    SWI-Prolog 5.2.3 or later version). New optional file configs/swihook.pl
892    contains hook code that allows Logtalk entities to be compiled and loaded
893    using SWI-Prolog load_files/2 and consult/1 predicates.
894
895    Syntax definition file for the Hydra 1.1 (MacOS X) text editor providing
896    syntax coloring for editing Logtalk source files.
897
898    Updated syntax coloring files for jEdit, NEdit, Vim, and TextPad in order
899    to recognize character code constants (0'x) and the DCG operator -->/2.
900
901
9022.15.3 - June 27, 2003
903
904    Updated experimental support for DCG rules to prevent over-simplification
905    of unification goals in the compilation of rules to clauses. Push-back
906    lists can now be used on rule heads.
907
908    The compilation mode of an entity (static/dynamic) is now stored in the
909    corresponding entity table (implying recompilation of all entities).
910
911    Updated GNU Prolog config file to hide compiled entity predicates.
912
913    Updated SWI-Prolog config file for better integration of Logtalk with
914    this compiler.
915
916
9172.15.2 - April 2, 2003
918
919    Experimental support for DCG rules inside categories and objects. Added
920    built-in methods phrase/2 and phrase/3.
921
922    Updated GNU Prolog config file to not hide compiled entity predicates in
923    order to avoid incompatibilities with dynamic entities.
924
925
9262.15.1 - March 8, 2003
927
928    New example, msglog, of using events and monitors to record, replay, and
929    print user messages.
930
931    Corrected a typo on the jEdit templates that resulted in syntax errors.
932    Corrected wrong year format in info/1 directive in all entity templates.
933    Added missing version info key to jEdit prototype template.
934
935    Corrected documentation of built-in local methods self/1 and sender/1.
936    Updated documentation of built-in local methods parameter/2 and this/1.
937
938
9392.15.0 - February 5, 2003
940
941    Changed "authors" key in info/1 directive to "author".
942
943    Corrected documentation of built-in local method this/1.
944
945    New geometric shapes example implemented in two versions, one
946    prototype-based and the other one class-based.
947
948    Improved support for jEdit text editor by adding a set of programming
949    templates for use with the editor Templates plug-in.
950
951    Added basic support for syntax highlighting and programming templates
952    for MacOS X Project builder.
953
954
9552.14.7 - January 10, 2003
956
957    Corrected a bug in the built-in methods asserta/1 and assertz/1 when
958    asserting predicate rules.
959
960    The built-in predicates logtalk_compile/1-2 and logtalk_load/1-2 now
961    accept both an entity (an atom) or a list of entities (a list of atoms).
962
963    Optimized the code generated when compiling or asserting clauses for
964    dynamic predicates.
965
966    Optimized protected inheritance performance on some Prolog compilers.
967
968
9692.14.6 - December 31, 2002
970
971    Corrected a bug where the opening directive of an object that,
972    simultaneously, implements a protocol, imports a categoty, instantiates
973    a class, and specializes a superclass, will not be recognized.
974
975
9762.14.5 - December 20, 2002
977
978    Simplified dynamic table of predicate declarations by removing two
979    redundant arguments.
980   
981    Corrected a bug where sending messages such as true/0 or !/0 to an
982    unknown object succeeded instead of throwing the correct exception.
983
984    Simplified the code used to generate links in the lgtpdfa4.xsl and
985    lgtpdfus.xsl XSLT files.
986
987
9882.14.4 - November 5, 2002
989
990    Removed definition of depracated built-in predicate logtalk_version/3.
991
992    Show flag names when printing at startup the default flag values.
993
994    Small change to messages printed on console with smart compilation of
995    source files turned on.
996
997    Updated YAP 4.3.x config file to use the YAP "system" library to access
998    the operating system for time, date, and file properties (enabling smart
999    source code compilation).
1000
1001    Updated the lgtpdfa4.xsl and lgtpdfus.xsl XSLT files to workaround a bug
1002    in the PassiveTeX 1.21 XSL:FO processor.
1003
1004
10052.14.3 - Sptember 16, 2002
1006
1007    New compiler option, doctype, to set the doctype reference (if any)
1008    in the XML documenting files. Default value is "local" for backward
1009    compatibility. Updated the user manual section on compiler options.
1010
1011    The Logtalk built-in predicate logtalk_version/3 should be considered
1012    deprecated (use current_logtalk_flag/3 instead). All references to this
1013    predicate have been removed from the manuals.
1014
1015    Updated the jEdit syntax coloring config file for the new jEdit 4.1
1016    version.
1017
1018    Updated the lgtpdfa4.xsl and lgtpdfus.xsl XSLT files for compatibility
1019    with the XSL:FO processors Apache FOP 0.20.4, PassiveTeX, and RenderX
1020    and with the XSL W3C Recommendation of October 15, 2001. Updated the
1021    pdf.bat and pdf.sh scripts to reference the latest version of the
1022    Apache FOP processor (0.20.4).
1023
1024    Changed the shell scripts html.sh and pdf.sh for compatibility with the
1025    sh, bash, and zsh shells.
1026
1027
10282.14.2 - August 26, 2002
1029
1030    Calls to built-in method parameter/2 are now compiled inline, improving
1031    call performance.
1032
1033    Updated Logtalk compiler to clean temporary compilation predicates after
1034    compiling an entity instead of only before compilation.
1035
1036    Updated YAP 4.3.x config file for better Logtalk integration by hiding
1037    all internal compiler, runtime, and compiled entities static predicates.
1038
1039    Updated GNU Prolog config file for better Logtalk integration by hiding
1040    all internal compiler, runtime, and compiled entities predicates.
1041
1042    Updated the XSLT conversion scripts lgtxml.xsl and lgthtml.xsl to correct
1043    some HTML conformance errors in the generated pages.
1044
1045    Corrected some XHTML conformance errors in the manual pages.
1046
1047
10482.14.1 - July 31, 2002
1049
1050    New Windows NT script and updated Unix shell script for batch converting
1051    XML documenting files to HTML. Both scripts also generate an index.html
1052    file containing links to all converted XML documenting files.
1053
1054    Corrected wrong XHTML DOCTYPE declaration in manual pages.
1055
1056
10572.14.0 - July 26, 2002
1058
1059    Renamed all compiler and runtime internal predicates and all auxiliary
1060    predicates in the config files to start with a "$" character.
1061   
1062    New compiler option, code_prefix, to set a prefix for all Prolog code
1063    functors generated by Logtalk when compiling entities. Default is ''.
1064
1065    New compiler option, named_anonymous_vars, that instructs the compiler to
1066    interpret variables that start with an underscore as anonymous variables
1067    (and to not report them as singleton variables). Default value is "off".
1068
1069    Directive info/2 was wrongly declared as a entity directive instead of a
1070    predicate directive.
1071
1072    Converted all manual pages to XHTML 1.0 format. Corrected a wrong link in
1073    the reference manual. Replaced GIF images by PNG versions.
1074
1075    Updated BProlog 6.x config file to workaround the new 6.2 built-in
1076    predicate ::/2 that conflicts with the same named Logtalk message sending
1077    operator.
1078
1079    Removed call to the obsolete built-in predicate nodbgcomp/0 from all
1080    ECLiPSe config files.
1081
1082
10832.13.0 - June 15, 2002
1084
1085    Logtalk now outputs Prolog code using write_canonical/2 instead of
1086    write_term/3. Goals are better portability of the generated Prolog files
1087    and avoid issues with clauses with long bodies for Prolog compilers that
1088    use a term print depth limit to prevent problems with cyclic terms.
1089
1090    Added report of default flag values at Logtalk startup.
1091
1092    Logtalk now prints a warning when redefining parametric objects.
1093
1094    Removed need of an abort/0 predicate from the Logtalk debugger example.
1095    Removed any definition of this predicate from the config files.
1096
1097    Added missing definitions for some ISO built-in predicates to the Amzi!
1098    Prolog 6.2.2 config file.
1099
1100
11012.12.0 - May 25, 2002
1102
1103    New read-only Logtalk flag "version". Corrected exception term generated
1104    when trying to modify a read-only flag using the set_logtalk_flag/2
1105    built-in predicate.
1106
1107    Updated config file for OpenProlog 1.1b5.
1108
1109    New config file for ECLiPSe 5.4.
1110
1111    Renamed config files for CIAO 1.7 (beta of 1.8) to "ciao_aux18.config"
1112    and "ciao18.config".
1113
1114    Updated config file for Amzi! Prolog 6.2.2.
1115
1116    New example of using some of the built-in database handling methods
1117    (dynpred).
1118
1119    Syntax configuration files for jEdit 4.0, VIM 6.1, NEdit 5.2, and
1120    TextPad 4.5 text editors providing syntax highlighting for editing
1121    Logtalk source files.
1122
1123
11242.11.0 - April 22, 2002
1125
1126    Added a "smart compilation" feature to the Logtalk compiler, controlled
1127    by a "smart_compilation" flag. Only available in Prolog compilers that
1128    provide access to file modification dates.
1129
1130    Added a "startup_message" flag to control printing of the Logtalk banner
1131    at startup.
1132
1133    Reworked Logtalk pre-processor compilation and loading reports. Compiler
1134    option "report" now togles between normal reporting (as specified by the
1135    other flags) and silent compilation/loading of source files.
1136
1137
11382.10.0 - April 5, 2002
1139
1140    Scope of object asserted predicates for which there is no declaration is
1141    now a function of the context instead of always being declared public.
1142    Asserting in this, the predicate is declared private, asserting in self,
1143    the predicate is declared protected, otherwise the predicate is declared
1144    public.
1145
1146    Throw an error if a category contains clauses for dynamic predicates.
1147
1148    Updated documentation on categories and built-in methods for database
1149    handling.
1150
1151    Retracting all clauses for a dynamic predicate from an object now allows
1152    an inherited definition to be called when sending the corresponding
1153    message. In previous versions the message just failed.
1154
1155    Added missing entries for the built-in predicates current_logtalk_flag/2
1156    and set_logtalk_flag/2 to the Logtalk compiler built-in predicates table.
1157
1158    Updated config file for Amzi! Prolog 6.1.74.
1159
1160    Updated notes on patching XSB to work with Logtalk.
1161
1162
11632.9.3 - February 9, 2002
1164
1165    New current_logtalk_flag/2 and set_logtalk_flag/2 built-in predicates.
1166
1167    Updated documentation on new built-in predicates.
1168
1169    Renamed SWI-Prolog config file swi330.config to swi.config.
1170
1171    Renamed config file predicate lgt_default_compiler_option/2 to lgt_flag/2.
1172
1173    New XS