root/tags/lgt293/RELEASE_NOTES

Revision 79, 20.3 KB (checked in by pmoura, 7 years ago)

This commit was manufactured by cvs2svn to create tag 'lgt293'.

  • 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.9.3
4
5Copyright (c) 1998-2002 Paulo Moura.  All Rights Reserved.
6=================================================================
7
8
9RELEASE NOTES
10=============
11
12
132.9.3 - February 9, 2002
14
15    New current_logtalk_flag/2 and set_logtalk_flag/2 built-in predicates.
16
17    Updated documentation on new built-in predicates.
18
19    Renamed SWI-Prolog config file swi330.config to swi.config.
20
21    Renamed config file predicate lgt_default_compiler_option/2 to lgt_flag/2.
22
23    New XSL stylesheets and shell scripts to convert Logtalk XML entity
24    documenting files to PDF format using XSL Formating Objects.
25
26
272.9.2 - January 4, 2002
28
29    The Logtalk compiler can now print a warning when compiling source files
30    that use non-ISO defined built-in predicates using a new portability/1
31    compiler option. Updated the relevant sections of the user manual and the
32    errors example.
33
34    Corrected a compiler bug where the entity relation tables only recorded
35    the last entry per entity relation type.
36   
37    Updated config file for CIAO 1.7#162.
38
39
402.9.1 - December 5, 2001
41
42    Logtalk compiler now prints a warning when redefining or replacing an
43    existing entity.
44
45    Corrected a compiler bug in the error checking code for the info/1
46    and info/2 directives.
47
48    Changed the order of object loading in the "mi" example to avoid
49    suporious warning messages.
50   
51    Added a new problem ("bridge") to the "searching" example. Improved
52    "performance" monitor to give correct reports on alternative solutions.
53    Corrected a bug in the "water jug" state space example.
54
55
562.9.0 - October 22, 2001
57
58    Added config files for CIAO Prolog 1.7p115 and B-Prolog 6.0.
59
60    Compiling and loading an entity that contains references to unknown
61    entities (by default) prints a warning. Updated user and reference
62    manuals.
63
64    Rewrited all the compiler warning/error code and output messages.
65
66    Changed compiled code functors postfixes from "_sdcl" and "_sdef" to
67    "_idcl" and "_idef" (implies recompilation of all objects, protocols,
68    and categories).
69
70    Changed all occurrences and references to the term "entity_scope" to
71    "scope".
72
73    Removed some redundant productions from the Logtalk grammar.
74
75    Updated documentation on the xml directory. Renamed some of the .xsl
76    files. Added sample scripts to batch convert .xml files to .html files.
77   
78    Added a new loader utility file, all.loader, to load all library files
79    loaded by the other loader files.
80
81    Started work on documenting the Logtalk pre-processor/compiler source
82    file.
83
84    New "errors" example. Updated the "inheritance" example.
85
86
872.8.4 - March 9, 2001
88
89    Updated config files for BinProlog 8.0, K-Prolog 5.01, XSB 2.3, and
90    Amzi! Prolog 4.103~5.0.
91   
92    New config file for Amzi! Prolog 6.1 beta.
93
94    Corrected an incomplete entity definition in the Logtalk XML DTD.
95    Rewrite the Logtalk XSLT files for improved compatibility with XSLT
96    processors regarding handling of whitespace.
97
98    A first cut of a XML Schema for the Logtalk XML documentation files
99    (file xml/logtalk.xsd).
100
101    Small improvements to the documentation.
102
103
1042.8.3 - November 21, 2000
105
106    Corrected a bug where sending a message for a built-in method to an
107    unknown object fails instead of generating the expected exception.
108
109    Put some ocorrences of atoms public, mode, and type between ()'s to
110    avoid compilation errors in BinProlog 8.0 and other Prolog compilers
111    that declare these atoms as operators.
112
113    Corrected the definition of the state space of the "Missionaires and
114    Cannibals" problem in the "searching" example that resulted in some
115    wrong solutions.
116
117
1182.8.2 - November 5, 2000
119
120    New .xsl file to convert .xml files to TeXML files.
121
122    Fixed a problem with explicit compilation options being correctly parsed
123    but not processed.
124
125    Corrected a bug regarding default init options definition for the
126    points, polygons, and bricks examples. Updated category initialization
127    in roots example.
128
129
1302.8.1 - October 28, 2000
131
132    New config file for K-Prolog 5.0.
133
134    Improved compiler error detection and reporting of invalid directives
135    and clauses.
136   
137    Corrected a problem with some Prolog compilers where compiling a file
138    containing syntax errors may not close the file after the errors are
139    reported.
140
141    Many small improvements to all documentation.
142   
143    Small improvements to the .xsl files and to the output of .xml files.
144
145
1462.8.0 - October 1, 2000
147
148    I have found just a few days ago that I have uploaded to the Logtalk web
149    server a development version of Logtalk 2.7.0 instead of the final one!
150    To avoid confusions I decided to release a new version.
151
152    Changed implementation of the logtalk_compile/1-2 and logtalk_load/1-2
153    predicates to only accept a list of entities instead of either an entity
154    or a list of entities, simplifying and improving the performance of these
155    predicates. Improved error reporting for the logtalk_compile/1 and
156    logtalk_load/1 predicates. Updated relevant sessions in the user and
157    reference manuals.
158
159    Simplified the implementation of the following predicates, by sharing
160    the error checking code with the corresponding extended versions:
161    implements_protocol/2, imports_category/2, instantiates_class/2,
162    specializes_class/2, extends_protocol/2, and extends_object/2.
163
164    Completed some missing library file dependencies documentation in some
165    examples.
166
167    New version of the QUICK_START help file. Updated tutorial.
168
169
1702.7.0 - August 24, 2000
171
172    First release of the Logtalk standard library of objects, protocols and
173    categories.
174
175    Rewritten all examples to use the new Logtalk standard library.
176
177    New logtalk_load/2 and logtalk_compile/2 Logtalk built-in predicates,
178    accepting a list of compiler options. See the User and Reference Manuals
179    for details.
180
181    New XSLT file for viewing .xml files in Microsoft Internet Explorer 5.5
182    for Windows after installing the latest Microsoft XML Parser Preview
183    Release. Small improvements in all XSLT files.
184
185    Starting with this version all config files need to provide a definition
186    for the compare/3 predicate if it is not built-in in the corresponding
187    Prolog compiler. Also, default Logtalk compiler options are now also set
188    in the config files using the lgt_default_compiler_option/2 predicate.
189
190    Updated config file for CIAO 1.6p1. See the configs/NOTES file for
191    details.
192
193
1942.6.2 - July 4, 2000
195
196    Improved performance and error checking for the built-in predicates
197    create_object/4, create_protocol/3 and create_category/4.
198
199    Updated config file for BinProlog 7.83.
200
201    Many small updates to all documentation.
202
203    New PDF versions of the documentation formated for printing (with page
204    numbers, table of contents and index)are now available in both A4 and
205    US letter formats.
206
207
2082.6.1 - May 5, 2000
209
210    Modified the structure of the automatically generated XML documenting
211    files to improve XSL translation performance. Added a new, more standard
212    compliant, XSL file to generate HTML files and renamed the old one to
213    ie5.xsl. See the xml/NOTES file for details. Corrected an error in the
214    logtalk.css CSS file.   
215
216    Modified the definitions of predicates lgt_file_extension/2 and
217    lgt_file_name/2 in all config files.
218
219    Updated all the user manual sessions related to automatic documentation.
220
221    Updated all HTML documentation for future XHTML 1.0 conformance.
222
223    Start adding documenting directives to most examples.
224
225
2262.6.0 - April 27, 2000
227
228    Added support for documentation of objects, protocols, and categories,
229    using automatic generation of XML files.
230
231    Added info/1 and info/2 directives for documenting objects, protocols,
232    categories, and predicates. Added definition of documentation file name
233    extension and default file names for the DTD and XSL files to the config
234    files.
235
236    Improved error checking for the built-in predicates create_object/4,
237    create_protocol/3 and create_category/4 to also detect invalid entity
238    identifiers.
239
240    Updated the user and reference manuals to describe the new automatic
241    documenting features.
242
243    Updated all HTML documentation to conform to HTML 4.01 strict standard.
244
245    Corrected some wrong cross-reference links and titles in the reference
246    and user manuals HTML pages.
247
248    PDF versions of the manuals and tutorial are now available in both A4
249    and US letter formats.
250
251    Corrected two errors in the searching example, one in the definition of
252    the farmer problem state space and the other when backtracking over
253    performance reports.
254
255
2562.5.2 - March 7, 2000
257
258    Updated manuals to clarify some limitations of declaring and defining
259    dynamic predicates inside categories and documented a way of using the
260    built-in local method this/1 to access object parameters.
261
262    Removed references to parametric categories from the Logtalk
263    documentation (at runtime we can only access object parameters,
264    not category parameters).
265
266    Corrected two wrong declarations of built-in methods (forall/2 and
267    retractall/1) in the Logtalk pre-processor.
268
269    Corrected bug where predicates declared in dynamic entities may have
270    a "static" instead of a "dynamic" property.
271
272    Corrected a bug in category compilation that prevented a dynamic category
273    from being abolished. Speedup predicate definition lookups for categories.
274
275
2762.5.1 - February 18, 2000
277
278    Two new examples: birds, a bird identification expert system adopted
279    (with permission) from an Amzi example, and viewpoints, a set of
280    prototypes showing how to do property sharing and value sharing in
281    Logtalk.
282
283    Renamed config file yap421.config to yap430.config to match the name of
284    the new YAP 4.3.0 public release (named 4.2.1 while on beta testing).
285
286    Partial config file for Trinc Prolog R3.
287
288
2892.5.0 - December 29, 1999
290
291    The Logtalk pre-processor now accepts arbitrary clauses and directives
292    to appear in a file before an opening entity directive. The clauses and
293    directives are added unchanged to the compiled file.
294
295    Improved performance for all kinds of message sending.
296
297    Two new examples: reflection, showing how to implement a simple
298    class-based reflective system, and symdiff, showing how to use
299    parametric objects to implement symbolic expression differentiation
300    and simplification.
301
302    Updated config file for the beta 8 release of SWI-Prolog 3.3.0.
303
304
3052.4.0 - December 1, 1999
306
307    Logtalk is now an Open Source project, available under Perl's Artistic
308    license.
309
310    Two new examples: instmethods, ilustrating the use of instance defined
311    methods, and classvars, showing how to implement class variables.
312
313    Updated Logtalk grammar to explicitly allow for user-defined types
314    in mode/2 directives.
315
316    New config files for SWI-Prolog 3.3.0, SICStus Prolog 3.8 and CIAO
317    Prolog 1.4p0 (incomplete).
318
319    Updated config file for B-Prolog 4.0.
320
321    Updated config file for GNU Prolog to use the new call_with_args()
322    built-in predicate added in version 1.1.0.
323
324    Updated config file for YAP Prolog to use the new call_with_args()
325    built-in predicate added in version 4.2.1.
326
327
3282.3.1 - September 22, 1999
329
330    Logtalk pre-processor updated to only report one warning per redefined
331    Logtalk or Prolog built-in predicate.
332
333    Changed some occurrences of atom "public" to "(public)" in
334    compiler/logtalk.pl file to avoid syntax errors in Prolog compilers
335    (like BinProlog) that define "public" as an operator. Also put some
336    terms between ()'s to avoid syntax errors with ALS Prolog 3.1
337
338    Update config file for ALS Prolog to work with version 3.1.
339
340    Updated configs/NOTES file include a workaround to use Logtalk with
341    XSB 2.0, some guidelines on how to write loader utility files for
342    BinProlog 7.50, and a bug in ALS Prolog 3.1 that affects Logtalk.
343
344
3452.3.0 - September 12, 1999
346
347    Metapredicate information is now stored with the other predicate
348    properties, instead of being discarded after compiling the clauses of
349    a metapredicate. Added predicate property metapredicate/1. It is now
350    possible to assert clauses for dynamic metapredicates.
351
352    Corrected a bug in the processing of metacalls in pseudo-object user.
353
354    Corrected a bug in the implementation of private inheritance.
355    Improved performance of protected inheritance.
356
357    Corrected failure of processing initialization/1 and op/3 directives in
358    create_object/4, create_category/4 and create_protocol/3 built-in
359    predicates.
360
361    Corrected a bug when calling private static category predicates from
362    importing objects. Simplified code generated for categories.
363
364    Rewrite code for the built-in method current_predicate/1 to avoid
365    duplicated or wrong results when overriding predicate declarations
366    and to ensure that all possible argument type errors are detected.
367
368    Changed compilation of classes that do not instantiate any (meta)class
369    in order to throw the correct exception when a message is sent to them.
370
371    Changed compilation of root objects (that do not instantiate, specialize
372    or extend other objects) so that calls to "super" (^^/1) fail (as they
373    should) instead of generating a "predicate does not exist" error message.
374
375    Changed implementation of "super" calls (^^/1) to avoid a potential
376    endless loop problem when using these calls from the inheritance root
377    object of a reflexive class-based systems.
378
379    Pre-processor now checks for callable and object identifier errors.
380    Runtime now checks for non-instantiated messages.
381
382    Added new example (inheritance) about public, protected and private
383    inheritance.
384
385    Updated metapredicates, lo, kernel, and types examples. Most of the
386    code in the last two examples is being updated to form the basis of an
387    upcoming Logtalk standard library.
388
389    Small changes in the pre-processor/runtime code for compatibility with
390    ECLiPSe 4.2.2. Updated config files for this Prolog compiler.
391
392    Rewrite some predicates in the config files for SWI-Prolog and LPA
393    Mac & WIN Prologs for improved performance.
394
395    New tutorial session about events and monitors.
396
397    Updated documentation to match the changes made in this version.
398
399
4002.2.0 - July 10, 1999
401
402    Implemented public, protected and private object inheritance, protocol
403    implementation and category importation.
404   
405    New Logtalk built-in predicates instantiates_class/3, extends_object/3,
406    extends_protocol/3, specializes_class/3, imports_category/3 and
407    implements_protocol/3. The third argument returns the relation scope.
408
409    Pre-processor now checks most directive errors.
410
411    Changed ^^/1 (super call) implementation to only allow the use of a
412    single predicate call for argument and to retain the original sender
413    of the message (see the updated sicstus example).
414
415    Fixed bug that prevented directives with a variable number of arguments
416    (like dynamic(), public(), uses(), ...) being recognized.
417
418    Changed definition of predicate read_term/3 in the configs files of Amzi!,
419    Aquarius, Arity, Eclipse, IC, K, LPA Mac&WIN, Master and XSB to always
420    instantiates the singleton variables list to the empty list. Needed to
421    prevent backtracking problems in logtalk_load/1 and logtalk_compile/1
422    predicates.
423
424    Removed choice-point in processing metacalls in predicate definitions.
425
426    A banner with the Logtalk version is printed after loading the runtime/
427    pre-processor.
428
429    Removed variables example. The category attributes is now part of the
430    kernel example. Corrected some warmless syntax errors in directives in
431    kernel/attributes.lgt, kernel/monitor.lgt and miscellaneous/queens.lgt.
432
433    Changed name of blocks example to bricks and object "block" to "brick"
434    in order to avoid problems with some Prolog compilers that use the atom
435    "block" for operators or built-in predicates.
436
437
4382.1.0 - May 11, 1999
439
440    Fixed some bugs in the definition of the pseudo-object user when sending
441    the message predicate_property/2.
442
443    Renamed config file for Calypso to GNU Prolog.
444
445    New config file for LPA WinProlog 4.0.
446
447    Corrected the omission in the documentation of the Logtalk grammar of the
448    built_in entity property.
449
450    New tutorial pages about building reflective class-based systems.
451
452    Modified pre-processor to compile throw/1 as a control structure to
453    ensure compatibility with the GNU-Prolog compiler.
454
455    Modified pre-processor to ensure compatibility with Prolog compilers that
456    use immediate update semantics instead of the ISO logical database update.
457
458    Improved simplification of compiled object and category clauses.
459
460    Rewrite and clean up pre-processor code for better compiler performance.
461
462    Several updates to the examples files.
463
464    Changed all example loader files to wrap the call to logtalk_load/1 inside
465    an initialization/1 directive for ISO standard compliance.
466
467
4682.0 GM - February 9, 1999
469
470    Removed some redundant choice-points that are being created when
471    compiling Logtalk entities.
472
473    Small compilation speed optimizations.
474
475    Logtalk compiled files now contain the declarations for the message
476    sending operators to ensure compatibility with some Prolog compilers.
477
478    Changed the way Logtalk pre-processor writes directives to ensure
479    compatibility with some Prolog compilers. Corrected a bug in the
480    processing of the op/3 directive.
481
482    Updated PrologII+ config file for version 4.5.
483
484    Changed the definitions of catch/3 and throw/1 in the config files for
485    LPA Prolog compilers.
486
487    New config file for MasterProlog 4.1; removed config file for the
488    old BIM Prolog 4.0.
489
490    Corrected an error in the config file for OpenProlog in the definiton
491    of the write_term/3 predicate.
492
493    Added a safer definition for write_term/3 predicate in the config 
494    files for Amzi, Aquarius, Arity, Eclipse, IC, K, LPA Mac, LPA Win,
495    and XSB Prolog compilers.
496
497    Added a QUICK_START file.
498
499
5002.0 Beta 3 - February 1, 1999
501
502    Closed some encapsulation holes in the implementation of super calls.
503
504    Changed Logtalk pre-processor to use write_term/3 instead of write/2 and
505    writeq/2 to workaround some compatibility problems with some Prolog
506    compilers.
507
508    Changed mode operators priority and type to be compatible with the ISO
509    standard.
510
511    Modified definition of predicate read_term/3 in the config file for Amzi
512    compiler to return the atom end_of_file instead of '!EOF' at the end of
513    a file (this prevented Logtalk to complete compilation any file under
514    this compiler). Improved detection of built-in predicates while compiling.
515
516    Removed config file for wamcc. This compiler have been replaced by
517    Calypso (developed by the same author).
518
519    Updated K-Prolog config file for version 4.50.
520
521    Improved documentation of template config file.
522
523    Added SCRIPT files to the kernel and types examples.
524
525    Updated Tutorial and User and Reference Manuals.
526
527    New end user license.
528
529
5302.0 Beta 2 - November 16, 1998
531
532    Built-ins logtalk_compile/1 and logtalk_load/1 updated to match
533    the documentation regarding thrown errors and to accept a list of
534    entities to compile/load.
535
536    Modified the examples loader utility files to make only a call to
537    logtalk_load/1 by using a list of entities. This should make it easy to
538    modify these files for compilers that don't support arbritrary queries
539    in a file.
540
541    Logtalk runtime no longer tries to catch some of the errors thrown
542    by ::/2.
543
544    Added to all config files a Logtalk predicate to check if a file
545    exists in the current working directory (used by the logtalk_load/1
546    and logtalk_compile/1 Logtalk built-in predicates).
547
548    New configs files for the K-Prolog 4.14 and Calypso 1.0b6 Prolog
549    compilers.
550
551    Completed the config file for Open Prolog 1.03d38 (with the exception
552    of lgt_current_date/3 that still have a dummy definition).
553
554    Added a missing definition for Logtalk predicate forall/2 to the config
555    file for Prolog II+ 4.4.
556
557    Modified Logtalk pre-processor/runtime to avoid syntax errors when
558    running on Open Prolog or Calypso and to remove some redundant
559    choice-points that are being created when compiling categories and
560    protocols.
561
562    Modified some examples that use operators to avoid syntax errors in
563    some Prolog compilers.
564
565    Modified the implementation of the built-in method
566    predicate_property/2 to avoid duplicate answers and to throw an
567    instantiation error if the first argument is not bound.
568
569    Modified definition of the pseudo-object user to hide Logtalk pre-
570    processor predicates from the current_predicate/1 built-in method and
571    to ensure that the predicate_property/2 built-in method returns
572    Logtalk defined predicate properties for built-in Logtalk and Prolog
573    predicates.
574
575    Modified Prolog code generated by the pre-processor to further minimize
576    possible conflicts with user defined predicates.
577
578    Added a lgt_predicate_property/2 predicate to the config files to
579    improve Logtalk portability.
580
581    Updated Tutorial and User and Reference Manuals.
582
583
5842.0 Beta 1 - October 18, 1998
585
586    Added basic support for implementation multi-inheritance.
587
588    Logtalk pre-processor updated to try to detect misspelt local
589    predicate calls.
590
591    First public beta.
592
593
5942.0 Alpha 1 - July, 1998
595
596    First release for registered users.
Note: See TracBrowser for help on using the browser.