From 2b8b25da07c2204cb81fb3be7d5585a59f2a1361 Mon Sep 17 00:00:00 2001 From: pmoura Date: Thu, 26 Jun 2003 14:52:54 +0000 Subject: [PATCH] Logtalk 2.15.3 release files. git-svn-id: https://yap.svn.sf.net/svnroot/yap/trunk@839 b08c6af1-5177-4d33-ba66-4b1c6b8b522a --- Logtalk/QUICK_START | 2 +- Logtalk/README | 2 +- Logtalk/RELEASE_NOTES | 17 +- Logtalk/UPGRADING | 5 +- Logtalk/examples/NOTES | 2 +- Logtalk/examples/birds/NOTES | 2 +- Logtalk/examples/birds/SCRIPT | 2 +- Logtalk/examples/bricks/NOTES | 2 +- Logtalk/examples/bricks/SCRIPT | 2 +- Logtalk/examples/classvars/NOTES | 2 +- Logtalk/examples/classvars/SCRIPT | 2 +- Logtalk/examples/dcgs/NOTES | 2 +- Logtalk/examples/dcgs/SCRIPT | 2 +- Logtalk/examples/dynpred/NOTES | 2 +- Logtalk/examples/dynpred/SCRIPT | 2 +- Logtalk/examples/errors/NOTES | 2 +- Logtalk/examples/inheritance/NOTES | 2 +- Logtalk/examples/inheritance/SCRIPT | 2 +- Logtalk/examples/instmethods/NOTES | 2 +- Logtalk/examples/instmethods/SCRIPT | 2 +- Logtalk/examples/lo/NOTES | 2 +- Logtalk/examples/lo/planner/NOTES | 2 +- Logtalk/examples/lo/planner/SCRIPT | 2 +- Logtalk/examples/lo/travellers/NOTES | 2 +- Logtalk/examples/lo/travellers/SCRIPT | 2 +- Logtalk/examples/lpa/NOTES | 2 +- Logtalk/examples/lpa/SCRIPT | 2 +- Logtalk/examples/metapredicates/NOTES | 2 +- Logtalk/examples/metapredicates/SCRIPT | 2 +- Logtalk/examples/mi/NOTES | 2 +- Logtalk/examples/mi/SCRIPT | 2 +- Logtalk/examples/miscellaneous/NOTES | 2 +- Logtalk/examples/miscellaneous/SCRIPT | 2 +- Logtalk/examples/msglog/NOTES | 2 +- Logtalk/examples/msglog/SCRIPT | 2 +- Logtalk/examples/parametric/NOTES | 2 +- Logtalk/examples/parametric/SCRIPT | 2 +- Logtalk/examples/points/NOTES | 2 +- Logtalk/examples/points/SCRIPT | 2 +- Logtalk/examples/polygons/NOTES | 2 +- Logtalk/examples/polygons/SCRIPT | 2 +- Logtalk/examples/profiling/NOTES | 2 +- Logtalk/examples/profiling/SCRIPT | 2 +- Logtalk/examples/reflection/NOTES | 2 +- Logtalk/examples/reflection/SCRIPT | 2 +- Logtalk/examples/relations/NOTES | 2 +- Logtalk/examples/relations/SCRIPT | 2 +- Logtalk/examples/roots/NOTES | 2 +- Logtalk/examples/roots/SCRIPT | 2 +- Logtalk/examples/searching/NOTES | 2 +- Logtalk/examples/searching/SCRIPT | 2 +- Logtalk/examples/shapes/NOTES | 2 +- Logtalk/examples/shapes/ch/NOTES | 2 +- Logtalk/examples/shapes/ch/SCRIPT | 2 +- Logtalk/examples/shapes/ph/NOTES | 2 +- Logtalk/examples/shapes/ph/SCRIPT | 2 +- Logtalk/examples/sicstus/NOTES | 2 +- Logtalk/examples/sicstus/SCRIPT | 2 +- Logtalk/examples/symdiff/NOTES | 2 +- Logtalk/examples/symdiff/SCRIPT | 2 +- Logtalk/examples/viewpoints/NOTES | 2 +- Logtalk/examples/viewpoints/SCRIPT | 2 +- Logtalk/library/NOTES | 6 +- Logtalk/library/SCRIPT | 2 +- Logtalk/library/all.notes | 2 +- Logtalk/library/dates.notes | 2 +- Logtalk/library/debugging.notes | 2 +- Logtalk/library/events.notes | 2 +- Logtalk/library/hierarchies.notes | 2 +- Logtalk/library/list.lgt | 13 +- Logtalk/library/listp.lgt | 8 +- Logtalk/library/metapredicates.notes | 2 +- Logtalk/library/random.notes | 2 +- Logtalk/library/types.notes | 2 +- Logtalk/manuals/NOTES | 2 +- Logtalk/manuals/index.html | 6 +- Logtalk/wenv/NOTES | 2 +- Logtalk/wenv/jedit/NOTES | 2 +- Logtalk/wenv/nedit/NOTES | 2 +- Logtalk/wenv/pb/NOTES | 2 +- Logtalk/wenv/textpad/NOTES | 2 +- Logtalk/wenv/vim/NOTES | 2 +- Logtalk/xml/NOTES | 2 +- Logtalk/xml/ie50.xsl | 2 +- Logtalk/xml/lgthtml.xsl | 2 +- Logtalk/xml/lgtpdfa4.xsl | 2 +- Logtalk/xml/lgtpdfus.xsl | 2 +- Logtalk/xml/lgtxml.xsl | 2 +- Logtalk/xml/logtalk.dtd | 2 +- Logtalk/xml/logtalk.xsd | 2 +- Logtalk/xml/texml.xsl | 2 +- library/logtalk/logtalk.pl | 317 +++++++++++++------------ library/logtalk/yap430.config | 2 +- 93 files changed, 293 insertions(+), 251 deletions(-) diff --git a/Logtalk/QUICK_START b/Logtalk/QUICK_START index 9bc42ddb6..5ddb7785c 100644 --- a/Logtalk/QUICK_START +++ b/Logtalk/QUICK_START @@ -1,6 +1,6 @@ ================================================================= Logtalk - Object oriented extension to Prolog -Release 2.15.2 +Release 2.15.3 Copyright (c) 1998-2003 Paulo Moura. All Rights Reserved. ================================================================= diff --git a/Logtalk/README b/Logtalk/README index 5fcd48133..3812ce092 100644 --- a/Logtalk/README +++ b/Logtalk/README @@ -1,6 +1,6 @@ ================================================================= Logtalk - Object oriented extension to Prolog -Release 2.15.2 +Release 2.15.3 Copyright (c) 1998-2003 Paulo Moura. All Rights Reserved. ================================================================= diff --git a/Logtalk/RELEASE_NOTES b/Logtalk/RELEASE_NOTES index 758b9b373..9de6591db 100644 --- a/Logtalk/RELEASE_NOTES +++ b/Logtalk/RELEASE_NOTES @@ -1,6 +1,6 @@ ================================================================= Logtalk - Object oriented extension to Prolog -Release 2.15.2 +Release 2.15.3 Copyright (c) 1998-2003 Paulo Moura. All Rights Reserved. ================================================================= @@ -10,6 +10,21 @@ RELEASE NOTES ============= +2.15.3 - June 27, 2003 + + Updated experimental support for DCG rules to prevent over-simplification + of unification goals in the compilation of rules to clauses. Push-back + lists can now be used on rule heads. + + The compilation mode of an entity (static/dynamic) is now stored in the + corresponding entity table (implying recompilation of all entities). + + Updated GNU Prolog config file to hide compiled entity predicates. + + Updated SWI-Prolog config file for better integration of Logtalk with + this compiler. + + 2.15.2 - April 2, 2003 Experimental support for DCG rules inside categories and objects. Added diff --git a/Logtalk/UPGRADING b/Logtalk/UPGRADING index 99be8abad..79b097c3f 100644 --- a/Logtalk/UPGRADING +++ b/Logtalk/UPGRADING @@ -1,6 +1,6 @@ ================================================================= Logtalk - Object oriented extension to Prolog -Release 2.15.2 +Release 2.15.3 Copyright (c) 1998-2003 Paulo Moura. All Rights Reserved. ================================================================= @@ -58,3 +58,6 @@ Logtalk version 2.15.0 changes the "authors" key in the directive info/1 to this change. If you use the directive info/1 in your programs, you will need to apply this change to take advantage of automatic generation of documenting files. + +Logtalk version 2.15.3 changes the format of the runtime entity tables, +impliying recompilation of all objects, protocols, and categories. diff --git a/Logtalk/examples/NOTES b/Logtalk/examples/NOTES index 5902d4ea3..c256d27d1 100644 --- a/Logtalk/examples/NOTES +++ b/Logtalk/examples/NOTES @@ -1,6 +1,6 @@ ================================================================= Logtalk - Object oriented extension to Prolog -Release 2.15.2 +Release 2.15.3 Copyright (c) 1998-2003 Paulo Moura. All Rights Reserved. ================================================================= diff --git a/Logtalk/examples/birds/NOTES b/Logtalk/examples/birds/NOTES index 59e7a76f7..839c02a00 100644 --- a/Logtalk/examples/birds/NOTES +++ b/Logtalk/examples/birds/NOTES @@ -1,6 +1,6 @@ ================================================================= Logtalk - Object oriented extension to Prolog -Release 2.15.2 +Release 2.15.3 Copyright (c) 1998-2003 Paulo Moura. All Rights Reserved. ================================================================= diff --git a/Logtalk/examples/birds/SCRIPT b/Logtalk/examples/birds/SCRIPT index 1b1398efa..95e39b39d 100644 --- a/Logtalk/examples/birds/SCRIPT +++ b/Logtalk/examples/birds/SCRIPT @@ -1,6 +1,6 @@ ================================================================= Logtalk - Object oriented extension to Prolog -Release 2.15.2 +Release 2.15.3 Copyright (c) 1998-2003 Paulo Moura. All Rights Reserved. ================================================================= diff --git a/Logtalk/examples/bricks/NOTES b/Logtalk/examples/bricks/NOTES index 771152259..52c92d781 100644 --- a/Logtalk/examples/bricks/NOTES +++ b/Logtalk/examples/bricks/NOTES @@ -1,6 +1,6 @@ ================================================================= Logtalk - Object oriented extension to Prolog -Release 2.15.2 +Release 2.15.3 Copyright (c) 1998-2003 Paulo Moura. All Rights Reserved. ================================================================= diff --git a/Logtalk/examples/bricks/SCRIPT b/Logtalk/examples/bricks/SCRIPT index d82b206fa..d9a41274a 100644 --- a/Logtalk/examples/bricks/SCRIPT +++ b/Logtalk/examples/bricks/SCRIPT @@ -1,6 +1,6 @@ ================================================================= Logtalk - Object oriented extension to Prolog -Release 2.15.2 +Release 2.15.3 Copyright (c) 1998-2003 Paulo Moura. All Rights Reserved. ================================================================= diff --git a/Logtalk/examples/classvars/NOTES b/Logtalk/examples/classvars/NOTES index 4c606f894..3d429c264 100644 --- a/Logtalk/examples/classvars/NOTES +++ b/Logtalk/examples/classvars/NOTES @@ -1,6 +1,6 @@ ================================================================= Logtalk - Object oriented extension to Prolog -Release 2.15.2 +Release 2.15.3 Copyright (c) 1998-2003 Paulo Moura. All Rights Reserved. ================================================================= diff --git a/Logtalk/examples/classvars/SCRIPT b/Logtalk/examples/classvars/SCRIPT index 64516dc6c..6175540e1 100644 --- a/Logtalk/examples/classvars/SCRIPT +++ b/Logtalk/examples/classvars/SCRIPT @@ -1,6 +1,6 @@ ================================================================= Logtalk - Object oriented extension to Prolog -Release 2.15.2 +Release 2.15.3 Copyright (c) 1998-2003 Paulo Moura. All Rights Reserved. ================================================================= diff --git a/Logtalk/examples/dcgs/NOTES b/Logtalk/examples/dcgs/NOTES index 44a789635..889f9eb3c 100644 --- a/Logtalk/examples/dcgs/NOTES +++ b/Logtalk/examples/dcgs/NOTES @@ -1,6 +1,6 @@ ================================================================= Logtalk - Object oriented extension to Prolog -Release 2.15.2 +Release 2.15.3 Copyright (c) 1998-2003 Paulo Moura. All Rights Reserved. ================================================================= diff --git a/Logtalk/examples/dcgs/SCRIPT b/Logtalk/examples/dcgs/SCRIPT index 37fea47e4..41c5c717c 100644 --- a/Logtalk/examples/dcgs/SCRIPT +++ b/Logtalk/examples/dcgs/SCRIPT @@ -1,6 +1,6 @@ ================================================================= Logtalk - Object oriented extension to Prolog -Release 2.15.2 +Release 2.15.3 Copyright (c) 1998-2003 Paulo Moura. All Rights Reserved. ================================================================= diff --git a/Logtalk/examples/dynpred/NOTES b/Logtalk/examples/dynpred/NOTES index 469cb61c0..189483cd6 100644 --- a/Logtalk/examples/dynpred/NOTES +++ b/Logtalk/examples/dynpred/NOTES @@ -1,6 +1,6 @@ ================================================================= Logtalk - Object oriented extension to Prolog -Release 2.15.2 +Release 2.15.3 Copyright (c) 1998-2003 Paulo Moura. All Rights Reserved. ================================================================= diff --git a/Logtalk/examples/dynpred/SCRIPT b/Logtalk/examples/dynpred/SCRIPT index 4d7aa1241..28a4fd589 100644 --- a/Logtalk/examples/dynpred/SCRIPT +++ b/Logtalk/examples/dynpred/SCRIPT @@ -1,6 +1,6 @@ ================================================================= Logtalk - Object oriented extension to Prolog -Release 2.15.2 +Release 2.15.3 Copyright (c) 1998-2003 Paulo Moura. All Rights Reserved. ================================================================= diff --git a/Logtalk/examples/errors/NOTES b/Logtalk/examples/errors/NOTES index b2a933a4f..27665ca54 100644 --- a/Logtalk/examples/errors/NOTES +++ b/Logtalk/examples/errors/NOTES @@ -1,6 +1,6 @@ ================================================================= Logtalk - Object oriented extension to Prolog -Release 2.15.2 +Release 2.15.3 Copyright (c) 1998-2003 Paulo Moura. All Rights Reserved. ================================================================= diff --git a/Logtalk/examples/inheritance/NOTES b/Logtalk/examples/inheritance/NOTES index 4037a8116..f9b0e26be 100644 --- a/Logtalk/examples/inheritance/NOTES +++ b/Logtalk/examples/inheritance/NOTES @@ -1,6 +1,6 @@ ================================================================= Logtalk - Object oriented extension to Prolog -Release 2.15.2 +Release 2.15.3 Copyright (c) 1998-2003 Paulo Moura. All Rights Reserved. ================================================================= diff --git a/Logtalk/examples/inheritance/SCRIPT b/Logtalk/examples/inheritance/SCRIPT index d51478b2d..e5e7d36e1 100644 --- a/Logtalk/examples/inheritance/SCRIPT +++ b/Logtalk/examples/inheritance/SCRIPT @@ -1,6 +1,6 @@ ================================================================= Logtalk - Object oriented extension to Prolog -Release 2.15.2 +Release 2.15.3 Copyright (c) 1998-2003 Paulo Moura. All Rights Reserved. ================================================================= diff --git a/Logtalk/examples/instmethods/NOTES b/Logtalk/examples/instmethods/NOTES index 4986dc13a..ffa0b9b9b 100644 --- a/Logtalk/examples/instmethods/NOTES +++ b/Logtalk/examples/instmethods/NOTES @@ -1,6 +1,6 @@ ================================================================= Logtalk - Object oriented extension to Prolog -Release 2.15.2 +Release 2.15.3 Copyright (c) 1998-2003 Paulo Moura. All Rights Reserved. ================================================================= diff --git a/Logtalk/examples/instmethods/SCRIPT b/Logtalk/examples/instmethods/SCRIPT index 91fda65ce..c7926a73e 100644 --- a/Logtalk/examples/instmethods/SCRIPT +++ b/Logtalk/examples/instmethods/SCRIPT @@ -1,6 +1,6 @@ ================================================================= Logtalk - Object oriented extension to Prolog -Release 2.15.2 +Release 2.15.3 Copyright (c) 1998-2003 Paulo Moura. All Rights Reserved. ================================================================= diff --git a/Logtalk/examples/lo/NOTES b/Logtalk/examples/lo/NOTES index 09d01792c..2e9fe6622 100644 --- a/Logtalk/examples/lo/NOTES +++ b/Logtalk/examples/lo/NOTES @@ -1,6 +1,6 @@ ================================================================= Logtalk - Object oriented extension to Prolog -Release 2.15.2 +Release 2.15.3 Copyright (c) 1998-2003 Paulo Moura. All Rights Reserved. ================================================================= diff --git a/Logtalk/examples/lo/planner/NOTES b/Logtalk/examples/lo/planner/NOTES index f6f853b25..796275827 100644 --- a/Logtalk/examples/lo/planner/NOTES +++ b/Logtalk/examples/lo/planner/NOTES @@ -1,6 +1,6 @@ ================================================================= Logtalk - Object oriented extension to Prolog -Release 2.15.2 +Release 2.15.3 Copyright (c) 1998-2003 Paulo Moura. All Rights Reserved. ================================================================= diff --git a/Logtalk/examples/lo/planner/SCRIPT b/Logtalk/examples/lo/planner/SCRIPT index 9bd52395f..b32daae52 100644 --- a/Logtalk/examples/lo/planner/SCRIPT +++ b/Logtalk/examples/lo/planner/SCRIPT @@ -1,6 +1,6 @@ ================================================================= Logtalk - Object oriented extension to Prolog -Release 2.15.2 +Release 2.15.3 Copyright (c) 1998-2003 Paulo Moura. All Rights Reserved. ================================================================= diff --git a/Logtalk/examples/lo/travellers/NOTES b/Logtalk/examples/lo/travellers/NOTES index d3bdaddad..c59f2af4f 100644 --- a/Logtalk/examples/lo/travellers/NOTES +++ b/Logtalk/examples/lo/travellers/NOTES @@ -1,6 +1,6 @@ ================================================================= Logtalk - Object oriented extension to Prolog -Release 2.15.2 +Release 2.15.3 Copyright (c) 1998-2003 Paulo Moura. All Rights Reserved. ================================================================= diff --git a/Logtalk/examples/lo/travellers/SCRIPT b/Logtalk/examples/lo/travellers/SCRIPT index ad909c6a3..67b91840f 100644 --- a/Logtalk/examples/lo/travellers/SCRIPT +++ b/Logtalk/examples/lo/travellers/SCRIPT @@ -1,6 +1,6 @@ ================================================================= Logtalk - Object oriented extension to Prolog -Release 2.15.2 +Release 2.15.3 Copyright (c) 1998-2003 Paulo Moura. All Rights Reserved. ================================================================= diff --git a/Logtalk/examples/lpa/NOTES b/Logtalk/examples/lpa/NOTES index 94d11b03e..748938172 100644 --- a/Logtalk/examples/lpa/NOTES +++ b/Logtalk/examples/lpa/NOTES @@ -1,6 +1,6 @@ ================================================================= Logtalk - Object oriented extension to Prolog -Release 2.15.2 +Release 2.15.3 Copyright (c) 1998-2003 Paulo Moura. All Rights Reserved. ================================================================= diff --git a/Logtalk/examples/lpa/SCRIPT b/Logtalk/examples/lpa/SCRIPT index c3fa62a5e..2fe21d9bd 100644 --- a/Logtalk/examples/lpa/SCRIPT +++ b/Logtalk/examples/lpa/SCRIPT @@ -1,6 +1,6 @@ ================================================================= Logtalk - Object oriented extension to Prolog -Release 2.15.2 +Release 2.15.3 Copyright (c) 1998-2003 Paulo Moura. All Rights Reserved. ================================================================= diff --git a/Logtalk/examples/metapredicates/NOTES b/Logtalk/examples/metapredicates/NOTES index e56a42759..52eee8e88 100644 --- a/Logtalk/examples/metapredicates/NOTES +++ b/Logtalk/examples/metapredicates/NOTES @@ -1,6 +1,6 @@ ================================================================= Logtalk - Object oriented extension to Prolog -Release 2.15.2 +Release 2.15.3 Copyright (c) 1998-2003 Paulo Moura. All Rights Reserved. ================================================================= diff --git a/Logtalk/examples/metapredicates/SCRIPT b/Logtalk/examples/metapredicates/SCRIPT index f4ebaf61a..bac2439a3 100644 --- a/Logtalk/examples/metapredicates/SCRIPT +++ b/Logtalk/examples/metapredicates/SCRIPT @@ -1,6 +1,6 @@ ================================================================= Logtalk - Object oriented extension to Prolog -Release 2.15.2 +Release 2.15.3 Copyright (c) 1998-2003 Paulo Moura. All Rights Reserved. ================================================================= diff --git a/Logtalk/examples/mi/NOTES b/Logtalk/examples/mi/NOTES index 6f59e26a6..9cee94a7c 100644 --- a/Logtalk/examples/mi/NOTES +++ b/Logtalk/examples/mi/NOTES @@ -1,6 +1,6 @@ ================================================================= Logtalk - Object oriented extension to Prolog -Release 2.15.2 +Release 2.15.3 Copyright (c) 1998-2003 Paulo Moura. All Rights Reserved. ================================================================= diff --git a/Logtalk/examples/mi/SCRIPT b/Logtalk/examples/mi/SCRIPT index d5f49afb9..9239e4213 100644 --- a/Logtalk/examples/mi/SCRIPT +++ b/Logtalk/examples/mi/SCRIPT @@ -1,6 +1,6 @@ ================================================================= Logtalk - Object oriented extension to Prolog -Release 2.15.2 +Release 2.15.3 Copyright (c) 1998-2003 Paulo Moura. All Rights Reserved. ================================================================= diff --git a/Logtalk/examples/miscellaneous/NOTES b/Logtalk/examples/miscellaneous/NOTES index 117cbe75f..9532d08d6 100644 --- a/Logtalk/examples/miscellaneous/NOTES +++ b/Logtalk/examples/miscellaneous/NOTES @@ -1,6 +1,6 @@ ================================================================= Logtalk - Object oriented extension to Prolog -Release 2.15.2 +Release 2.15.3 Copyright (c) 1998-2003 Paulo Moura. All Rights Reserved. ================================================================= diff --git a/Logtalk/examples/miscellaneous/SCRIPT b/Logtalk/examples/miscellaneous/SCRIPT index d95ca98c5..919b48c45 100644 --- a/Logtalk/examples/miscellaneous/SCRIPT +++ b/Logtalk/examples/miscellaneous/SCRIPT @@ -1,6 +1,6 @@ ================================================================= Logtalk - Object oriented extension to Prolog -Release 2.15.2 +Release 2.15.3 Copyright (c) 1998-2003 Paulo Moura. All Rights Reserved. ================================================================= diff --git a/Logtalk/examples/msglog/NOTES b/Logtalk/examples/msglog/NOTES index 82692430c..575b8f8ff 100644 --- a/Logtalk/examples/msglog/NOTES +++ b/Logtalk/examples/msglog/NOTES @@ -1,6 +1,6 @@ ================================================================= Logtalk - Object oriented extension to Prolog -Release 2.15.2 +Release 2.15.3 Copyright (c) 1998-2003 Paulo Moura. All Rights Reserved. ================================================================= diff --git a/Logtalk/examples/msglog/SCRIPT b/Logtalk/examples/msglog/SCRIPT index e1d812a7f..b4ec3d35a 100644 --- a/Logtalk/examples/msglog/SCRIPT +++ b/Logtalk/examples/msglog/SCRIPT @@ -1,6 +1,6 @@ ================================================================= Logtalk - Object oriented extension to Prolog -Release 2.15.2 +Release 2.15.3 Copyright (c) 1998-2003 Paulo Moura. All Rights Reserved. ================================================================= diff --git a/Logtalk/examples/parametric/NOTES b/Logtalk/examples/parametric/NOTES index ee55dde2e..6d994c417 100644 --- a/Logtalk/examples/parametric/NOTES +++ b/Logtalk/examples/parametric/NOTES @@ -1,6 +1,6 @@ ================================================================= Logtalk - Object oriented extension to Prolog -Release 2.15.2 +Release 2.15.3 Copyright (c) 1998-2003 Paulo Moura. All Rights Reserved. ================================================================= diff --git a/Logtalk/examples/parametric/SCRIPT b/Logtalk/examples/parametric/SCRIPT index a18b5e790..2a0b96d3c 100644 --- a/Logtalk/examples/parametric/SCRIPT +++ b/Logtalk/examples/parametric/SCRIPT @@ -1,6 +1,6 @@ ================================================================= Logtalk - Object oriented extension to Prolog -Release 2.15.2 +Release 2.15.3 Copyright (c) 1998-2003 Paulo Moura. All Rights Reserved. ================================================================= diff --git a/Logtalk/examples/points/NOTES b/Logtalk/examples/points/NOTES index 02eb42056..87d1eaef9 100644 --- a/Logtalk/examples/points/NOTES +++ b/Logtalk/examples/points/NOTES @@ -1,6 +1,6 @@ ================================================================= Logtalk - Object oriented extension to Prolog -Release 2.15.2 +Release 2.15.3 Copyright (c) 1998-2003 Paulo Moura. All Rights Reserved. ================================================================= diff --git a/Logtalk/examples/points/SCRIPT b/Logtalk/examples/points/SCRIPT index 214640f3d..a75f62b44 100644 --- a/Logtalk/examples/points/SCRIPT +++ b/Logtalk/examples/points/SCRIPT @@ -1,6 +1,6 @@ ================================================================= Logtalk - Object oriented extension to Prolog -Release 2.15.2 +Release 2.15.3 Copyright (c) 1998-2003 Paulo Moura. All Rights Reserved. ================================================================= diff --git a/Logtalk/examples/polygons/NOTES b/Logtalk/examples/polygons/NOTES index 61f74c236..014fa8a89 100644 --- a/Logtalk/examples/polygons/NOTES +++ b/Logtalk/examples/polygons/NOTES @@ -1,6 +1,6 @@ ================================================================= Logtalk - Object oriented extension to Prolog -Release 2.15.2 +Release 2.15.3 Copyright (c) 1998-2003 Paulo Moura. All Rights Reserved. ================================================================= diff --git a/Logtalk/examples/polygons/SCRIPT b/Logtalk/examples/polygons/SCRIPT index 8127cf066..eeb858730 100644 --- a/Logtalk/examples/polygons/SCRIPT +++ b/Logtalk/examples/polygons/SCRIPT @@ -1,6 +1,6 @@ ================================================================= Logtalk - Object oriented extension to Prolog -Release 2.15.2 +Release 2.15.3 Copyright (c) 1998-2003 Paulo Moura. All Rights Reserved. ================================================================= diff --git a/Logtalk/examples/profiling/NOTES b/Logtalk/examples/profiling/NOTES index 35f98d06c..bd475084a 100644 --- a/Logtalk/examples/profiling/NOTES +++ b/Logtalk/examples/profiling/NOTES @@ -1,6 +1,6 @@ ================================================================= Logtalk - Object oriented extension to Prolog -Release 2.15.2 +Release 2.15.3 Copyright (c) 1998-2003 Paulo Moura. All Rights Reserved. ================================================================= diff --git a/Logtalk/examples/profiling/SCRIPT b/Logtalk/examples/profiling/SCRIPT index dccf39dc3..a22de8334 100644 --- a/Logtalk/examples/profiling/SCRIPT +++ b/Logtalk/examples/profiling/SCRIPT @@ -1,6 +1,6 @@ ================================================================= Logtalk - Object oriented extension to Prolog -Release 2.15.2 +Release 2.15.3 Copyright (c) 1998-2003 Paulo Moura. All Rights Reserved. ================================================================= diff --git a/Logtalk/examples/reflection/NOTES b/Logtalk/examples/reflection/NOTES index 5ab40f432..360b902e1 100644 --- a/Logtalk/examples/reflection/NOTES +++ b/Logtalk/examples/reflection/NOTES @@ -1,6 +1,6 @@ ================================================================= Logtalk - Object oriented extension to Prolog -Release 2.15.2 +Release 2.15.3 Copyright (c) 1998-2003 Paulo Moura. All Rights Reserved. ================================================================= diff --git a/Logtalk/examples/reflection/SCRIPT b/Logtalk/examples/reflection/SCRIPT index 04d7f07fc..ab080e05a 100644 --- a/Logtalk/examples/reflection/SCRIPT +++ b/Logtalk/examples/reflection/SCRIPT @@ -1,6 +1,6 @@ ================================================================= Logtalk - Object oriented extension to Prolog -Release 2.15.2 +Release 2.15.3 Copyright (c) 1998-2003 Paulo Moura. All Rights Reserved. ================================================================= diff --git a/Logtalk/examples/relations/NOTES b/Logtalk/examples/relations/NOTES index f875c31e8..89bf09130 100644 --- a/Logtalk/examples/relations/NOTES +++ b/Logtalk/examples/relations/NOTES @@ -1,6 +1,6 @@ ================================================================= Logtalk - Object oriented extension to Prolog -Release 2.15.2 +Release 2.15.3 Copyright (c) 1998-2003 Paulo Moura. All Rights Reserved. ================================================================= diff --git a/Logtalk/examples/relations/SCRIPT b/Logtalk/examples/relations/SCRIPT index 3e9f6f4d6..f6fa928c6 100644 --- a/Logtalk/examples/relations/SCRIPT +++ b/Logtalk/examples/relations/SCRIPT @@ -1,6 +1,6 @@ ================================================================= Logtalk - Object oriented extension to Prolog -Release 2.15.2 +Release 2.15.3 Copyright (c) 1998-2003 Paulo Moura. All Rights Reserved. ================================================================= diff --git a/Logtalk/examples/roots/NOTES b/Logtalk/examples/roots/NOTES index 1746f6ecb..d927b6fe1 100644 --- a/Logtalk/examples/roots/NOTES +++ b/Logtalk/examples/roots/NOTES @@ -1,6 +1,6 @@ ================================================================= Logtalk - Object oriented extension to Prolog -Release 2.15.2 +Release 2.15.3 Copyright (c) 1998-2003 Paulo Moura. All Rights Reserved. ================================================================= diff --git a/Logtalk/examples/roots/SCRIPT b/Logtalk/examples/roots/SCRIPT index d36170176..05650070f 100644 --- a/Logtalk/examples/roots/SCRIPT +++ b/Logtalk/examples/roots/SCRIPT @@ -1,6 +1,6 @@ ================================================================= Logtalk - Object oriented extension to Prolog -Release 2.15.2 +Release 2.15.3 Copyright (c) 1998-2003 Paulo Moura. All Rights Reserved. ================================================================= diff --git a/Logtalk/examples/searching/NOTES b/Logtalk/examples/searching/NOTES index 3f343d38c..89ec6dd30 100644 --- a/Logtalk/examples/searching/NOTES +++ b/Logtalk/examples/searching/NOTES @@ -1,6 +1,6 @@ ================================================================= Logtalk - Object oriented extension to Prolog -Release 2.15.2 +Release 2.15.3 Copyright (c) 1998-2003 Paulo Moura. All Rights Reserved. ================================================================= diff --git a/Logtalk/examples/searching/SCRIPT b/Logtalk/examples/searching/SCRIPT index 297607ea5..8d12bde3b 100644 --- a/Logtalk/examples/searching/SCRIPT +++ b/Logtalk/examples/searching/SCRIPT @@ -1,6 +1,6 @@ ================================================================= Logtalk - Object oriented extension to Prolog -Release 2.15.2 +Release 2.15.3 Copyright (c) 1998-2003 Paulo Moura. All Rights Reserved. ================================================================= diff --git a/Logtalk/examples/shapes/NOTES b/Logtalk/examples/shapes/NOTES index d5cea05fb..23a9eac20 100644 --- a/Logtalk/examples/shapes/NOTES +++ b/Logtalk/examples/shapes/NOTES @@ -1,6 +1,6 @@ ================================================================= Logtalk - Object oriented extension to Prolog -Release 2.15.2 +Release 2.15.3 Copyright (c) 1998-2003 Paulo Moura. All Rights Reserved. ================================================================= diff --git a/Logtalk/examples/shapes/ch/NOTES b/Logtalk/examples/shapes/ch/NOTES index aef0d80b7..79a5e3283 100644 --- a/Logtalk/examples/shapes/ch/NOTES +++ b/Logtalk/examples/shapes/ch/NOTES @@ -1,6 +1,6 @@ ================================================================= Logtalk - Object oriented extension to Prolog -Release 2.15.2 +Release 2.15.3 Copyright (c) 1998-2003 Paulo Moura. All Rights Reserved. ================================================================= diff --git a/Logtalk/examples/shapes/ch/SCRIPT b/Logtalk/examples/shapes/ch/SCRIPT index 6ab7e5ec8..b4b93e91d 100644 --- a/Logtalk/examples/shapes/ch/SCRIPT +++ b/Logtalk/examples/shapes/ch/SCRIPT @@ -1,6 +1,6 @@ ================================================================= Logtalk - Object oriented extension to Prolog -Release 2.15.2 +Release 2.15.3 Copyright (c) 1998-2003 Paulo Moura. All Rights Reserved. ================================================================= diff --git a/Logtalk/examples/shapes/ph/NOTES b/Logtalk/examples/shapes/ph/NOTES index 46bdccf9b..7dd6681ec 100644 --- a/Logtalk/examples/shapes/ph/NOTES +++ b/Logtalk/examples/shapes/ph/NOTES @@ -1,6 +1,6 @@ ================================================================= Logtalk - Object oriented extension to Prolog -Release 2.15.2 +Release 2.15.3 Copyright (c) 1998-2003 Paulo Moura. All Rights Reserved. ================================================================= diff --git a/Logtalk/examples/shapes/ph/SCRIPT b/Logtalk/examples/shapes/ph/SCRIPT index f1f20d275..a4c1898c9 100644 --- a/Logtalk/examples/shapes/ph/SCRIPT +++ b/Logtalk/examples/shapes/ph/SCRIPT @@ -1,6 +1,6 @@ ================================================================= Logtalk - Object oriented extension to Prolog -Release 2.15.2 +Release 2.15.3 Copyright (c) 1998-2003 Paulo Moura. All Rights Reserved. ================================================================= diff --git a/Logtalk/examples/sicstus/NOTES b/Logtalk/examples/sicstus/NOTES index 6bd4d6e96..a59cf25fc 100644 --- a/Logtalk/examples/sicstus/NOTES +++ b/Logtalk/examples/sicstus/NOTES @@ -1,6 +1,6 @@ ================================================================= Logtalk - Object oriented extension to Prolog -Release 2.15.2 +Release 2.15.3 Copyright (c) 1998-2003 Paulo Moura. All Rights Reserved. ================================================================= diff --git a/Logtalk/examples/sicstus/SCRIPT b/Logtalk/examples/sicstus/SCRIPT index 8c0f9a60d..a6418039f 100644 --- a/Logtalk/examples/sicstus/SCRIPT +++ b/Logtalk/examples/sicstus/SCRIPT @@ -1,6 +1,6 @@ ================================================================= Logtalk - Object oriented extension to Prolog -Release 2.15.2 +Release 2.15.3 Copyright (c) 1998-2003 Paulo Moura. All Rights Reserved. ================================================================= diff --git a/Logtalk/examples/symdiff/NOTES b/Logtalk/examples/symdiff/NOTES index 2e32fa42e..dcf26ae95 100644 --- a/Logtalk/examples/symdiff/NOTES +++ b/Logtalk/examples/symdiff/NOTES @@ -1,6 +1,6 @@ ================================================================= Logtalk - Object oriented extension to Prolog -Release 2.15.2 +Release 2.15.3 Copyright (c) 1998-2003 Paulo Moura. All Rights Reserved. ================================================================= diff --git a/Logtalk/examples/symdiff/SCRIPT b/Logtalk/examples/symdiff/SCRIPT index b92d71c0e..6026e8219 100644 --- a/Logtalk/examples/symdiff/SCRIPT +++ b/Logtalk/examples/symdiff/SCRIPT @@ -1,6 +1,6 @@ ================================================================= Logtalk - Object oriented extension to Prolog -Release 2.15.2 +Release 2.15.3 Copyright (c) 1998-2003 Paulo Moura. All Rights Reserved. ================================================================= diff --git a/Logtalk/examples/viewpoints/NOTES b/Logtalk/examples/viewpoints/NOTES index e513c957f..9dc0aebf8 100644 --- a/Logtalk/examples/viewpoints/NOTES +++ b/Logtalk/examples/viewpoints/NOTES @@ -1,6 +1,6 @@ ================================================================= Logtalk - Object oriented extension to Prolog -Release 2.15.2 +Release 2.15.3 Copyright (c) 1998-2003 Paulo Moura. All Rights Reserved. ================================================================= diff --git a/Logtalk/examples/viewpoints/SCRIPT b/Logtalk/examples/viewpoints/SCRIPT index 042916cb9..002906499 100644 --- a/Logtalk/examples/viewpoints/SCRIPT +++ b/Logtalk/examples/viewpoints/SCRIPT @@ -1,6 +1,6 @@ ================================================================= Logtalk - Object oriented extension to Prolog -Release 2.15.2 +Release 2.15.3 Copyright (c) 1998-2003 Paulo Moura. All Rights Reserved. ================================================================= diff --git a/Logtalk/library/NOTES b/Logtalk/library/NOTES index 267b4bdcc..49734689e 100644 --- a/Logtalk/library/NOTES +++ b/Logtalk/library/NOTES @@ -1,6 +1,6 @@ ================================================================= Logtalk - Object oriented extension to Prolog -Release 2.15.2 +Release 2.15.3 Copyright (c) 1998-2003 Paulo Moura. All Rights Reserved. ================================================================= @@ -31,7 +31,9 @@ Some files represent work in progress and are not loaded by default by any loader utility file. Some of the code in this library is based on public domain Prolog code, -in particular, code adopted from the Edinburgh Prolog library. +in particular, code adopted from the Edinburgh Prolog library. The definition +of predicate reverse/2 in object list is from Richard O'Keefe and can be found +in its book "The Craft of Prolog". By default, compiling any group of entities described above generates a .xml documenting file for each compiled entity (object, category, or protocol). diff --git a/Logtalk/library/SCRIPT b/Logtalk/library/SCRIPT index 612239ae4..ee847671f 100644 --- a/Logtalk/library/SCRIPT +++ b/Logtalk/library/SCRIPT @@ -1,6 +1,6 @@ ================================================================= Logtalk - Object oriented extension to Prolog -Release 2.15.2 +Release 2.15.3 Copyright (c) 1998-2003 Paulo Moura. All Rights Reserved. ================================================================= diff --git a/Logtalk/library/all.notes b/Logtalk/library/all.notes index f716d425a..a465c1bcd 100644 --- a/Logtalk/library/all.notes +++ b/Logtalk/library/all.notes @@ -1,7 +1,7 @@ ================================================================= Logtalk - Object oriented extension to Prolog -Release 2.15.2 +Release 2.15.3 Copyright (c) 1998-2003 Paulo Moura. All Rights Reserved. ================================================================= diff --git a/Logtalk/library/dates.notes b/Logtalk/library/dates.notes index 1ed2503f2..d548f6444 100644 --- a/Logtalk/library/dates.notes +++ b/Logtalk/library/dates.notes @@ -1,6 +1,6 @@ ================================================================= Logtalk - Object oriented extension to Prolog -Release 2.15.2 +Release 2.15.3 Copyright (c) 1998-2003 Paulo Moura. All Rights Reserved. ================================================================= diff --git a/Logtalk/library/debugging.notes b/Logtalk/library/debugging.notes index f7ebb8dc7..10f7f8b50 100644 --- a/Logtalk/library/debugging.notes +++ b/Logtalk/library/debugging.notes @@ -1,6 +1,6 @@ ================================================================= Logtalk - Object oriented extension to Prolog -Release 2.15.2 +Release 2.15.3 Copyright (c) 1998-2003 Paulo Moura. All Rights Reserved. ================================================================= diff --git a/Logtalk/library/events.notes b/Logtalk/library/events.notes index d4e4e1c9c..8ee8e8e74 100644 --- a/Logtalk/library/events.notes +++ b/Logtalk/library/events.notes @@ -1,6 +1,6 @@ ================================================================= Logtalk - Object oriented extension to Prolog -Release 2.15.2 +Release 2.15.3 Copyright (c) 1998-2003 Paulo Moura. All Rights Reserved. ================================================================= diff --git a/Logtalk/library/hierarchies.notes b/Logtalk/library/hierarchies.notes index 72725d7d8..a1c3d0220 100644 --- a/Logtalk/library/hierarchies.notes +++ b/Logtalk/library/hierarchies.notes @@ -1,6 +1,6 @@ ================================================================= Logtalk - Object oriented extension to Prolog -Release 2.15.2 +Release 2.15.3 Copyright (c) 1998-2003 Paulo Moura. All Rights Reserved. ================================================================= diff --git a/Logtalk/library/list.lgt b/Logtalk/library/list.lgt index 3084c1554..34b1a19dd 100644 --- a/Logtalk/library/list.lgt +++ b/Logtalk/library/list.lgt @@ -5,9 +5,9 @@ :- info([ - version is 1.0, + version is 1.1, author is 'Paulo Moura', - date is 2000/7/24, + date is 2003/4/25, comment is 'List predicates.']). @@ -182,14 +182,13 @@ reverse(List, Reversed) :- - same_length(List, Reversed), - reverse(List, [], Reversed). + reverse(List, [], Reversed, Reversed). - reverse([], Reversed, Reversed). + reverse([], Reversed, Reversed, []). - reverse([Head| Tail], List, Reversed) :- - reverse(Tail, [Head| List], Reversed). + reverse([Head| Tail], List, Reversed, [_| Bound]) :- + reverse(Tail, [Head| List], Reversed, Bound). same_length([], []). diff --git a/Logtalk/library/listp.lgt b/Logtalk/library/listp.lgt index 7a7996fee..7e19d7ada 100644 --- a/Logtalk/library/listp.lgt +++ b/Logtalk/library/listp.lgt @@ -3,9 +3,9 @@ :- info([ - version is 1.0, + version is 1.1, author is 'Paulo Moura', - date is 2000/7/24, + date is 2003/4/17, comment is 'List protocol.']). @@ -20,7 +20,7 @@ :- public(delete/3). - :- mode(delete(+list, @term, ?list), one). + :- mode(delete(@list, @term, ?list), one). :- info(delete/3, [comment is 'Deletes from a list all ocurrences of an element returning the list of remaining elements.', @@ -29,7 +29,7 @@ :- public(delete_matches/3). - :- mode(delete_matches(+list, @term, ?list), one). + :- mode(delete_matches(@list, @term, ?list), one). :- info(delete_matches/3, [comment is 'Deletes all matching elements from a list, returning the list of remaining elements.', diff --git a/Logtalk/library/metapredicates.notes b/Logtalk/library/metapredicates.notes index b839b9d14..b7bd0adad 100644 --- a/Logtalk/library/metapredicates.notes +++ b/Logtalk/library/metapredicates.notes @@ -1,6 +1,6 @@ ================================================================= Logtalk - Object oriented extension to Prolog -Release 2.15.2 +Release 2.15.3 Copyright (c) 1998-2003 Paulo Moura. All Rights Reserved. ================================================================= diff --git a/Logtalk/library/random.notes b/Logtalk/library/random.notes index de606df5a..84a06e6d1 100644 --- a/Logtalk/library/random.notes +++ b/Logtalk/library/random.notes @@ -1,6 +1,6 @@ ================================================================= Logtalk - Object oriented extension to Prolog -Release 2.15.2 +Release 2.15.3 Copyright (c) 1998-2003 Paulo Moura. All Rights Reserved. ================================================================= diff --git a/Logtalk/library/types.notes b/Logtalk/library/types.notes index f8598c95a..0a8038772 100644 --- a/Logtalk/library/types.notes +++ b/Logtalk/library/types.notes @@ -1,6 +1,6 @@ ================================================================= Logtalk - Object oriented extension to Prolog -Release 2.15.2 +Release 2.15.3 Copyright (c) 1998-2003 Paulo Moura. All Rights Reserved. ================================================================= diff --git a/Logtalk/manuals/NOTES b/Logtalk/manuals/NOTES index 001cc44d5..5ec267e24 100644 --- a/Logtalk/manuals/NOTES +++ b/Logtalk/manuals/NOTES @@ -1,6 +1,6 @@ ================================================================= Logtalk - Object oriented extension to Prolog -Release 2.15.2 +Release 2.15.3 Copyright (c) 1998-2003 Paulo Moura. All Rights Reserved. ================================================================= diff --git a/Logtalk/manuals/index.html b/Logtalk/manuals/index.html index 18ffd25b0..5fa0160ae 100644 --- a/Logtalk/manuals/index.html +++ b/Logtalk/manuals/index.html @@ -7,14 +7,14 @@ - Logtalk 2.15.2 Documentation + Logtalk 2.15.3 Documentation
-

Logtalk 2.15.2

+

Logtalk 2.15.3

Documentation

@@ -45,7 +45,7 @@


-Last updated on: March 30, 2003 +Last updated on: June 4, 2003

Valid XHTML 1.0! diff --git a/Logtalk/wenv/NOTES b/Logtalk/wenv/NOTES index 5a174b767..383404df3 100644 --- a/Logtalk/wenv/NOTES +++ b/Logtalk/wenv/NOTES @@ -1,6 +1,6 @@ ================================================================= Logtalk - Object oriented extension to Prolog -Release 2.15.2 +Release 2.15.3 Copyright (c) 1998-2003 Paulo Moura. All Rights Reserved. ================================================================= diff --git a/Logtalk/wenv/jedit/NOTES b/Logtalk/wenv/jedit/NOTES index 8878d7bea..6e9963856 100644 --- a/Logtalk/wenv/jedit/NOTES +++ b/Logtalk/wenv/jedit/NOTES @@ -1,6 +1,6 @@ ================================================================= Logtalk - Object oriented extension to Prolog -Release 2.15.2 +Release 2.15.3 Copyright (c) 1998-2003 Paulo Moura. All Rights Reserved. ================================================================= diff --git a/Logtalk/wenv/nedit/NOTES b/Logtalk/wenv/nedit/NOTES index 7f0126aaf..6261954d5 100644 --- a/Logtalk/wenv/nedit/NOTES +++ b/Logtalk/wenv/nedit/NOTES @@ -1,6 +1,6 @@ ================================================================= Logtalk - Object oriented extension to Prolog -Release 2.15.2 +Release 2.15.3 Copyright (c) 1998-2003 Paulo Moura. All Rights Reserved. ================================================================= diff --git a/Logtalk/wenv/pb/NOTES b/Logtalk/wenv/pb/NOTES index 157c3047c..77f4ea440 100644 --- a/Logtalk/wenv/pb/NOTES +++ b/Logtalk/wenv/pb/NOTES @@ -1,6 +1,6 @@ ================================================================= Logtalk - Object oriented extension to Prolog -Release 2.15.2 +Release 2.15.3 Copyright (c) 1998-2003 Paulo Moura. All Rights Reserved. ================================================================= diff --git a/Logtalk/wenv/textpad/NOTES b/Logtalk/wenv/textpad/NOTES index 784ae9b92..3c46765d7 100644 --- a/Logtalk/wenv/textpad/NOTES +++ b/Logtalk/wenv/textpad/NOTES @@ -1,6 +1,6 @@ ================================================================= Logtalk - Object oriented extension to Prolog -Release 2.15.2 +Release 2.15.3 Copyright (c) 1998-2003 Paulo Moura. All Rights Reserved. ================================================================= diff --git a/Logtalk/wenv/vim/NOTES b/Logtalk/wenv/vim/NOTES index 6c6e63f60..9ef7642e8 100644 --- a/Logtalk/wenv/vim/NOTES +++ b/Logtalk/wenv/vim/NOTES @@ -1,6 +1,6 @@ ================================================================= Logtalk - Object oriented extension to Prolog -Release 2.15.2 +Release 2.15.3 Copyright (c) 1998-2003 Paulo Moura. All Rights Reserved. ================================================================= diff --git a/Logtalk/xml/NOTES b/Logtalk/xml/NOTES index 182c64caf..c91d4a67c 100644 --- a/Logtalk/xml/NOTES +++ b/Logtalk/xml/NOTES @@ -1,6 +1,6 @@ ================================================================= Logtalk - Object oriented extension to Prolog -Release 2.15.2 +Release 2.15.3 Copyright (c) 1998-2003 Paulo Moura. All Rights Reserved. ================================================================= diff --git a/Logtalk/xml/ie50.xsl b/Logtalk/xml/ie50.xsl index 1d30e69fa..ecd04cbce 100644 --- a/Logtalk/xml/ie50.xsl +++ b/Logtalk/xml/ie50.xsl @@ -8,7 +8,7 @@ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % Logtalk - Object oriented extension to Prolog -% Release 2.15.2 +% Release 2.15.3 % % Copyright (c) 1998-2003 Paulo Moura. All Rights Reserved. % diff --git a/Logtalk/xml/lgthtml.xsl b/Logtalk/xml/lgthtml.xsl index 17c6c2a20..d896be848 100644 --- a/Logtalk/xml/lgthtml.xsl +++ b/Logtalk/xml/lgthtml.xsl @@ -14,7 +14,7 @@ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % Logtalk - Object oriented extension to Prolog -% Release 2.15.2 +% Release 2.15.3 % % Copyright (c) 1998-2003 Paulo Moura. All Rights Reserved. % diff --git a/Logtalk/xml/lgtpdfa4.xsl b/Logtalk/xml/lgtpdfa4.xsl index 408961478..a5812ca09 100644 --- a/Logtalk/xml/lgtpdfa4.xsl +++ b/Logtalk/xml/lgtpdfa4.xsl @@ -9,7 +9,7 @@ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % Logtalk - Object oriented extension to Prolog -% Release 2.15.2 +% Release 2.15.3 % % Copyright (c) 1998-2003 Paulo Moura. All Rights Reserved. % diff --git a/Logtalk/xml/lgtpdfus.xsl b/Logtalk/xml/lgtpdfus.xsl index f760c7357..1cc5fd73d 100644 --- a/Logtalk/xml/lgtpdfus.xsl +++ b/Logtalk/xml/lgtpdfus.xsl @@ -9,7 +9,7 @@ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % Logtalk - Object oriented extension to Prolog -% Release 2.15.2 +% Release 2.15.3 % % Copyright (c) 1998-2003 Paulo Moura. All Rights Reserved. % diff --git a/Logtalk/xml/lgtxml.xsl b/Logtalk/xml/lgtxml.xsl index 98c991427..ba2eef923 100644 --- a/Logtalk/xml/lgtxml.xsl +++ b/Logtalk/xml/lgtxml.xsl @@ -14,7 +14,7 @@ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % Logtalk - Object oriented extension to Prolog -% Release 2.15.2 +% Release 2.15.3 % % Copyright (c) 1998-2003 Paulo Moura. All Rights Reserved. % diff --git a/Logtalk/xml/logtalk.dtd b/Logtalk/xml/logtalk.dtd index 703a6ed13..53fc4e565 100644 --- a/Logtalk/xml/logtalk.dtd +++ b/Logtalk/xml/logtalk.dtd @@ -3,7 +3,7 @@ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % Logtalk - Object oriented extension to Prolog -% Release 2.15.2 +% Release 2.15.3 % % Copyright (c) 1998-2003 Paulo Moura. All Rights Reserved. % diff --git a/Logtalk/xml/logtalk.xsd b/Logtalk/xml/logtalk.xsd index 809e554b1..35849854a 100644 --- a/Logtalk/xml/logtalk.xsd +++ b/Logtalk/xml/logtalk.xsd @@ -15,7 +15,7 @@ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % Logtalk - Object oriented extension to Prolog -% Release 2.15.2 +% Release 2.15.3 % % Copyright (c) 1998-2003 Paulo Moura. All Rights Reserved. % diff --git a/Logtalk/xml/texml.xsl b/Logtalk/xml/texml.xsl index 8a01586b6..a9fde5618 100644 --- a/Logtalk/xml/texml.xsl +++ b/Logtalk/xml/texml.xsl @@ -12,7 +12,7 @@ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % Logtalk - Object oriented extension to Prolog -% Release 2.15.2 +% Release 2.15.3 % % Copyright (c) 1998-2003 Paulo Moura. All Rights Reserved. % diff --git a/library/logtalk/logtalk.pl b/library/logtalk/logtalk.pl index 66821dcd9..ee1123264 100644 --- a/library/logtalk/logtalk.pl +++ b/library/logtalk/logtalk.pl @@ -2,7 +2,7 @@ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % Logtalk - Object oriented extension to Prolog -% Release 2.15.2 +% Release 2.15.3 % % Copyright (c) 1998-2003 Paulo Moura. All Rights Reserved. % @@ -54,9 +54,9 @@ % tables of loaded entities and respective relationships -:- dynamic('$lgt_current_protocol_'/2). % '$lgt_current_protocol_'(Ptc, Prefix) -:- dynamic('$lgt_current_category_'/2). % '$lgt_current_category_'(Ctg, Prefix) -:- dynamic('$lgt_current_object_'/5). % '$lgt_current_object_'(Obj, Prefix, Dcl, Def, Super) +:- dynamic('$lgt_current_protocol_'/3). % '$lgt_current_protocol_'(Ptc, Prefix, Type) +:- dynamic('$lgt_current_category_'/3). % '$lgt_current_category_'(Ctg, Prefix, Type) +:- dynamic('$lgt_current_object_'/6). % '$lgt_current_object_'(Obj, Prefix, Dcl, Def, Super, Type) :- dynamic('$lgt_implements_protocol_'/3). % '$lgt_implements_protocol_'(ObjOrCtg, Ptc, Scope) :- dynamic('$lgt_imports_category_'/3). % '$lgt_imports_category_'(Obj, Ctg, Scope) @@ -174,7 +174,7 @@ current_object(Obj) :- throw(error(type_error(object_identifier, Obj), current_object(Obj))). current_object(Obj) :- - '$lgt_current_object_'(Obj, _, _, _, _). + '$lgt_current_object_'(Obj, _, _, _, _, _). @@ -186,7 +186,7 @@ current_protocol(Ptc) :- throw(error(type_error(protocol_identifier, Ptc), current_protocol(Ptc))). current_protocol(Ptc) :- - '$lgt_current_protocol_'(Ptc, _). + '$lgt_current_protocol_'(Ptc, _, _). @@ -198,7 +198,7 @@ current_category(Ctg) :- throw(error(type_error(category_identifier, Ctg), current_category(Ctg))). current_category(Ctg) :- - '$lgt_current_category_'(Ctg, _). + '$lgt_current_category_'(Ctg, _, _). @@ -217,12 +217,7 @@ object_property(Obj, Prop) :- object_property(user, built_in). object_property(Obj, Prop) :- - '$lgt_current_object_'(Obj, Prefix, _, _, _), - functor(Pred, Prefix, 7), - ('$lgt_predicate_property'(Pred, (dynamic)) -> - Prop = (dynamic) - ; - Prop = static). + '$lgt_current_object_'(Obj, _, _, _, _, Prop). @@ -239,12 +234,7 @@ category_property(Ctg, Prop) :- throw(error(domain_error(category_property, Prop), category_property(Ctg, Prop))). category_property(Ctg, Prop) :- - '$lgt_current_category_'(Ctg, Prefix), - functor(Pred, Prefix, 2), - ('$lgt_predicate_property'(Pred, (dynamic)) -> - Prop = (dynamic) - ; - Prop = static). + '$lgt_current_category_'(Ctg, _, Prop). @@ -261,12 +251,7 @@ protocol_property(Ptc, Prop) :- throw(error(domain_error(protocol_property, Prop), protocol_property(Ptc, Prop))). protocol_property(Ptc, Prop) :- - '$lgt_current_protocol_'(Ptc, Prefix), - functor(Pred, Prefix, 1), - ('$lgt_predicate_property'(Pred, (dynamic)) -> - Prop = (dynamic) - ; - Prop = static). + '$lgt_current_protocol_'(Ptc, _, Prop). @@ -281,15 +266,15 @@ create_object(Obj, Rels, Dirs, Clauses) :- throw(error(type_error(object_identifier, Obj), create_object(Obj, Rels, Dirs, Clauses))). create_object(Obj, Rels, Dirs, Clauses) :- - '$lgt_current_object_'(Obj, _, _, _, _), + '$lgt_current_object_'(Obj, _, _, _, _, _), throw(error(permission_error(replace, object, Obj), create_object(Obj, Rels, Dirs, Clauses))). create_object(Obj, Rels, Dirs, Clauses) :- - '$lgt_current_category_'(Obj, _), + '$lgt_current_category_'(Obj, _, _), throw(error(permission_error(replace, category, Obj), create_object(Obj, Rels, Dirs, Clauses))). create_object(Obj, Rels, Dirs, Clauses) :- - '$lgt_current_protocol_'(Obj, _), + '$lgt_current_protocol_'(Obj, _, _), throw(error(permission_error(replace, protocol, Obj), create_object(Obj, Rels, Dirs, Clauses))). create_object(Obj, Rels, Dirs, Clauses) :- @@ -329,15 +314,15 @@ create_category(Ctg, Rels, Dirs, Clauses) :- throw(error(type_error(category_identifier, Ctg), create_category(Ctg, Rels, Dirs, Clauses))). create_category(Ctg, Rels, Dirs, Clauses) :- - '$lgt_current_category_'(Ctg, _), + '$lgt_current_category_'(Ctg, _, _), throw(error(permission_error(replace, category, Ctg), create_category(Ctg, Rels, Dirs, Clauses))). create_category(Ctg, Rels, Dirs, Clauses) :- - '$lgt_current_object_'(Ctg, _, _, _, _), + '$lgt_current_object_'(Ctg, _, _, _, _, _), throw(error(permission_error(replace, object, Ctg), create_category(Ctg, Rels, Dirs, Clauses))). create_category(Ctg, Rels, Dirs, Clauses) :- - '$lgt_current_protocol_'(Ctg, _), + '$lgt_current_protocol_'(Ctg, _, _), throw(error(permission_error(replace, protocol, Ctg), create_category(Ctg, Rels, Dirs, Clauses))). create_category(Ctg, Rels, Dirs, Clauses) :- @@ -377,15 +362,15 @@ create_protocol(Ptc, Rels, Dirs) :- throw(error(type_error(protocol_identifier, Ptc), create_protocol(Ptc, Rels, Dirs))). create_protocol(Ptc, Rels, Dirs) :- - '$lgt_current_protocol_'(Ptc, _), + '$lgt_current_protocol_'(Ptc, _, _), throw(error(permission_error(replace, protocol, Ptc), create_protocol(Ptc, Rels, Dirs))). create_protocol(Ptc, Rels, Dirs) :- - '$lgt_current_object_'(Ptc, _, _, _, _), + '$lgt_current_object_'(Ptc, _, _, _, _, _), throw(error(permission_error(replace, object, Ptc), create_protocol(Ptc, Rels, Dirs))). create_protocol(Ptc, Rels, Dirs) :- - '$lgt_current_category_'(Ptc, _), + '$lgt_current_category_'(Ptc, _, _), throw(error(permission_error(replace, category, Ptc), create_protocol(Ptc, Rels, Dirs))). create_protocol(Ptc, Rels, Dirs) :- @@ -419,8 +404,8 @@ abolish_object(Obj) :- throw(error(type_error(object_identifier, Obj), abolish_object(Obj))). abolish_object(Obj) :- - '$lgt_current_object_'(Obj, Prefix, _, _, _) -> - (object_property(Obj, (dynamic)) -> + '$lgt_current_object_'(Obj, Prefix, _, _, _, Type) -> + (Type = (dynamic) -> '$lgt_once'(Prefix, Dcl, Def, Super, IDcl, IDef, DDcl, DDef), forall( '$lgt_call'(Def, _, _, _, _, Pred), @@ -440,7 +425,7 @@ abolish_object(Obj) :- abolish(DDcl/2), abolish(DDef/5), abolish(Prefix/7), - retractall('$lgt_current_object_'(Obj, _, _, _, _)), + retractall('$lgt_current_object_'(Obj, _, _, _, _, _)), retractall('$lgt_extends_object_'(Obj, _, _)), retractall('$lgt_instantiates_class_'(Obj, _, _)), retractall('$lgt_specializes_class_'(Obj, _, _)), @@ -464,8 +449,8 @@ abolish_category(Ctg) :- throw(error(type_error(category_identifier, Ctg), abolish_category(Ctg))). abolish_category(Ctg) :- - '$lgt_current_category_'(Ctg, Prefix) -> - (category_property(Ctg, (dynamic)) -> + '$lgt_current_category_'(Ctg, Prefix, Type) -> + (Type = (dynamic) -> '$lgt_once'(Prefix, Dcl, Def), forall( '$lgt_call'(Def, _, _, _, _, Pred), @@ -475,7 +460,7 @@ abolish_category(Ctg) :- abolish(Dcl/5), abolish(Def/5), abolish(Prefix/2), - retractall('$lgt_current_category_'(Ctg, _)), + retractall('$lgt_current_category_'(Ctg, _, _)), retractall('$lgt_implements_protocol_'(Ctg, _, _)) ; throw(error(permission_error(modify, static_category, Ctg), abolish_category(Ctg)))) @@ -495,13 +480,13 @@ abolish_protocol(Ptc) :- throw(error(type_error(protocol_identifier, Ptc), abolish_protocol(Ptc))). abolish_protocol(Ptc) :- - '$lgt_current_protocol_'(Ptc, Prefix) -> - (protocol_property(Ptc, (dynamic)) -> + '$lgt_current_protocol_'(Ptc, Prefix, Type) -> + (Type = (dynamic) -> '$lgt_once'(Prefix, Dcl), abolish(Dcl/4), abolish(Dcl/5), abolish(Prefix/1), - retractall('$lgt_current_protocol_'(Ptc, _)), + retractall('$lgt_current_protocol_'(Ptc, _, _)), retractall('$lgt_extends_protocol_'(Ptc, _, _)) ; throw(error(permission_error(modify, static_protocol, Ptc), abolish_protocol(Ptc)))) @@ -773,7 +758,7 @@ define_events(Event, Obj, Msg, Sender, Monitor) :- define_events(Event, Obj, Msg, Sender, Monitor) :- var(Event), !, - '$lgt_current_object_'(Monitor, _, _, Def, _), + '$lgt_current_object_'(Monitor, _, _, Def, _, _), '$lgt_call'(Def, before(Obj, Msg, Sender), Monitor, Monitor, Monitor, BCall, _), '$lgt_call'(Def, after(Obj, Msg, Sender), Monitor, Monitor, Monitor, ACall, _), retractall('$lgt_before_'(Obj, Msg, Sender, Monitor, _)), @@ -782,13 +767,13 @@ define_events(Event, Obj, Msg, Sender, Monitor) :- assertz('$lgt_after_'(Obj, Msg, Sender, Monitor, ACall)). define_events(before, Obj, Msg, Sender, Monitor) :- - '$lgt_current_object_'(Monitor, _, _, Def, _), + '$lgt_current_object_'(Monitor, _, _, Def, _, _), '$lgt_call'(Def, before(Obj, Msg, Sender), Monitor, Monitor, Monitor, Call, _), retractall('$lgt_before_'(Obj, Msg, Sender, Monitor, _)), assertz('$lgt_before_'(Obj, Msg, Sender, Monitor, Call)). define_events(after, Obj, Msg, Sender, Monitor) :- - '$lgt_current_object_'(Monitor, _, _, Def, _), + '$lgt_current_object_'(Monitor, _, _, Def, _, _), '$lgt_call'(Def, after(Obj, Msg, Sender), Monitor, Monitor, Monitor, Call, _), retractall('$lgt_after_'(Obj, Msg, Sender, Monitor, _)), assertz('$lgt_after_'(Obj, Msg, Sender, Monitor, Call)). @@ -1088,7 +1073,7 @@ current_logtalk_flag(Flag, Value) :- \+ '$lgt_flag_'(Flag, _), '$lgt_default_flag'(Flag, Value). -current_logtalk_flag(version, version(2, 15, 2)). +current_logtalk_flag(version, version(2, 15, 3)). @@ -1104,7 +1089,7 @@ current_logtalk_flag(version, version(2, 15, 2)). % checks if an object exists at runtime '$lgt_obj_exists'(Obj, Pred, Sender) :- - \+ '$lgt_current_object_'(Obj, _, _, _, _) -> + \+ '$lgt_current_object_'(Obj, _, _, _, _, _) -> throw(error(existence_error(object, Obj), Obj::Pred, Sender)) ; true. @@ -1129,7 +1114,7 @@ current_logtalk_flag(version, version(2, 15, 2)). throw(error(type_error(predicate_indicator, Functor/Arity), Obj::current_predicate(Functor/Arity), Sender)). '$lgt_current_predicate'(Obj, Functor/Arity, Sender, _) :- - \+ '$lgt_current_object_'(Obj, _, _, _, _), + \+ '$lgt_current_object_'(Obj, _, _, _, _, _), throw(error(existence_error(object, Obj), Obj::current_predicate(Functor/Arity), Sender)). '$lgt_current_predicate'(Obj, Functor/Arity, Sender, Scope) :- @@ -1137,12 +1122,12 @@ current_logtalk_flag(version, version(2, 15, 2)). nonvar(Arity), !, functor(Pred, Functor, Arity), - '$lgt_current_object_'(Obj, _, Dcl, _, _), + '$lgt_current_object_'(Obj, _, Dcl, _, _, _), '$lgt_once'(Dcl, Pred, PScope, _, _, SContainer, _), once((\+ \+ PScope = Scope; Sender = SContainer)). '$lgt_current_predicate'(Obj, Functor/Arity, Sender, Scope) :- - '$lgt_current_object_'(Obj, _, Dcl, _, _), + '$lgt_current_object_'(Obj, _, Dcl, _, _, _), findall( Functor/Arity-(PScope, SContainer), ('$lgt_call'(Dcl, Pred, PScope, _, _, SContainer, _), @@ -1192,11 +1177,11 @@ current_logtalk_flag(version, version(2, 15, 2)). throw(error(type_error(callable, Pred), Obj::predicate_property(Pred, Prop), Sender)). '$lgt_predicate_property'(Obj, Pred, Prop, Sender, _) :- - \+ '$lgt_current_object_'(Obj, _, _, _, _), + \+ '$lgt_current_object_'(Obj, _, _, _, _, _), throw(error(existence_error(object, Obj), Obj::predicate_property(Pred, Prop), Sender)). '$lgt_predicate_property'(Obj, Pred, Prop, Sender, Scope) :- - '$lgt_current_object_'(Obj, _, Dcl, Def, _), + '$lgt_current_object_'(Obj, _, Dcl, Def, _, _), '$lgt_once'(Dcl, Pred, PScope, Type, Meta, SContainer, TContainer), !, once((\+ \+ PScope = Scope; Sender = SContainer)), @@ -1259,7 +1244,7 @@ current_logtalk_flag(version, version(2, 15, 2)). throw(error(type_error(integer, Arity), Obj::abolish(Functor/Arity), Sender)). '$lgt_abolish'(Obj, Functor/Arity, Sender, Scope) :- - '$lgt_current_object_'(Obj, Prefix, Dcl, _, _) -> + '$lgt_current_object_'(Obj, Prefix, Dcl, _, _, _) -> ((functor(Pred, Functor, Arity), '$lgt_once'(Dcl, Pred, PScope, Compilation, _, SContainer, _)) -> ((\+ \+ PScope = Scope; Sender = SContainer) -> @@ -1313,12 +1298,12 @@ current_logtalk_flag(version, version(2, 15, 2)). throw(error(type_error(callable, Body), Obj::asserta((Head:-Body)), Sender)). '$lgt_asserta'(Obj, Clause, Sender, _) :- - \+ '$lgt_current_object_'(Obj, _, _, _, _), + \+ '$lgt_current_object_'(Obj, _, _, _, _, _), throw(error(existence_error(object, Obj), Obj::asserta(Clause), Sender)). '$lgt_asserta'(Obj, (Head:-Body), Sender, Scope) :- !, - '$lgt_current_object_'(Obj, Prefix, _, _, _), + '$lgt_current_object_'(Obj, Prefix, _, _, _, _), '$lgt_once'(Prefix, Dcl, Def, _, _, _, DDcl, DDef), ('$lgt_once'(Dcl, Head, PScope, Type, Meta, SContainer, _) -> true @@ -1355,7 +1340,7 @@ current_logtalk_flag(version, version(2, 15, 2)). throw(error(permission_error(modify, static_predicate, Head), Obj::asserta((Head:-Body)), Sender))). '$lgt_asserta'(Obj, Head, Sender, Scope) :- - '$lgt_current_object_'(Obj, Prefix, _, _, _), + '$lgt_current_object_'(Obj, Prefix, _, _, _, _), '$lgt_once'(Prefix, Dcl, Def, _, _, _, DDcl, DDef), ('$lgt_once'(Dcl, Head, PScope, Type, _, SContainer, _) -> true @@ -1400,12 +1385,12 @@ current_logtalk_flag(version, version(2, 15, 2)). throw(error(type_error(callable, Body), Obj::assertz((Head:-Body)), Sender)). '$lgt_assertz'(Obj, Clause, Sender, _) :- - \+ '$lgt_current_object_'(Obj, _, _, _, _), + \+ '$lgt_current_object_'(Obj, _, _, _, _, _), throw(error(existence_error(object, Obj), Obj::assertz(Clause), Sender)). '$lgt_assertz'(Obj, (Head:-Body), Sender, Scope) :- !, - '$lgt_current_object_'(Obj, Prefix, _, _, _), + '$lgt_current_object_'(Obj, Prefix, _, _, _, _), '$lgt_once'(Prefix, Dcl, Def, _, _, _, DDcl, DDef), ('$lgt_once'(Dcl, Head, PScope, Type, Meta, SContainer, _) -> true @@ -1442,7 +1427,7 @@ current_logtalk_flag(version, version(2, 15, 2)). throw(error(permission_error(modify, static_predicate, Head), Obj::assertz((Head:-Body)), Sender))). '$lgt_assertz'(Obj, Head, Sender, Scope) :- - '$lgt_current_object_'(Obj, Prefix, _, _, _), + '$lgt_current_object_'(Obj, Prefix, _, _, _, _), '$lgt_once'(Prefix, Dcl, Def, _, _, _, DDcl, DDef), ('$lgt_once'(Dcl, Head, PScope, Type, _, SContainer, _) -> true @@ -1484,11 +1469,11 @@ current_logtalk_flag(version, version(2, 15, 2)). throw(error(type_error(callable, Body), Obj::clause(Head, Body), Sender)). '$lgt_clause'(Obj, Head, Body, Sender, _) :- - \+ '$lgt_current_object_'(Obj, _, _, _, _), + \+ '$lgt_current_object_'(Obj, _, _, _, _, _), throw(error(existence_error(object, Obj), Obj::clause(Head, Body), Sender)). '$lgt_clause'(Obj, Head, Body, Sender, Scope) :- - '$lgt_current_object_'(Obj, Prefix, _, _, _), + '$lgt_current_object_'(Obj, Prefix, _, _, _, _), '$lgt_once'(Prefix, Dcl, Def, _, _, _, _, DDef), ('$lgt_once'(Dcl, Head, PScope, Type, _, SContainer, _) -> (Type = (dynamic) -> @@ -1526,12 +1511,12 @@ current_logtalk_flag(version, version(2, 15, 2)). throw(error(type_error(callable, Head), Obj::retract((Head:-Body)), Sender)). '$lgt_retract'(Obj, Clause, Sender, _) :- - \+ '$lgt_current_object_'(Obj, _, _, _, _), + \+ '$lgt_current_object_'(Obj, _, _, _, _, _), throw(error(existence_error(object, Obj), Obj::retract(Clause), Sender)). '$lgt_retract'(Obj, (Head:-Body), Sender, Scope) :- !, - '$lgt_current_object_'(Obj, Prefix, _, _, _), + '$lgt_current_object_'(Obj, Prefix, _, _, _, _), '$lgt_once'(Prefix, Dcl, Def, _, _, _, _, DDef), ('$lgt_once'(Dcl, Head, PScope, Type, _, SContainer, _) -> (Type = (dynamic) -> @@ -1555,7 +1540,7 @@ current_logtalk_flag(version, version(2, 15, 2)). throw(error(existence_error(predicate_declaration, Head), Obj::retract((Head:-Body)), Sender))). '$lgt_retract'(Obj, Head, Sender, Scope) :- - '$lgt_current_object_'(Obj, Prefix, _, _, _), + '$lgt_current_object_'(Obj, Prefix, _, _, _, _), '$lgt_once'(Prefix, Dcl, Def, _, _, _, _, DDef), ('$lgt_once'(Dcl, Head, PScope, Type, _, SContainer, _) -> (Type = (dynamic) -> @@ -1591,11 +1576,11 @@ current_logtalk_flag(version, version(2, 15, 2)). throw(error(type_error(callable, Head), Obj::retractall(Head), Sender)). '$lgt_retractall'(Obj, Head, Sender, _) :- - \+ '$lgt_current_object_'(Obj, _, _, _, _), + \+ '$lgt_current_object_'(Obj, _, _, _, _, _), throw(error(existence_error(object, Obj), Obj::retractall(Head), Sender)). '$lgt_retractall'(Obj, Head, Sender, Scope) :- - '$lgt_current_object_'(Obj, Prefix, _, _, _), + '$lgt_current_object_'(Obj, Prefix, _, _, _, _), '$lgt_once'(Prefix, Dcl, Def, _, _, _, _, DDef), ('$lgt_once'(Dcl, Head, PScope, Type, _, SContainer, _) -> (Type = (dynamic) -> @@ -1631,7 +1616,7 @@ current_logtalk_flag(version, version(2, 15, 2)). % '$lgt_phrase'(+ruleset, ?list) % -% removes duplicated and redeclared predicates +% phrase/2 built-in method '$lgt_phrase'(Obj, Ruleset, Input, Sender, Scope) :- catch( @@ -1643,7 +1628,7 @@ current_logtalk_flag(version, version(2, 15, 2)). % '$lgt_phrase'(+ruleset, ?list, ?list) % -% removes duplicated and redeclared predicates +% phrase/3 built-in method '$lgt_phrase'(Obj, Ruleset, Input, Rest, Sender, _) :- var(Ruleset), @@ -1663,11 +1648,19 @@ current_logtalk_flag(version, version(2, 15, 2)). \+ '$lgt_proper_list'(Rest), throw(error(type_error(list, Rest), Obj::phrase(Ruleset, Input, Rest), Sender)). +'$lgt_phrase'(_, [], Input, Rest, _, _) :- + !, + Input = Rest. + +'$lgt_phrase'(_, [Head| Tail], Input, Rest, _, _) :- + !, + '$lgt_append'([Head| Tail], Rest, Input). + '$lgt_phrase'(Obj, Ruleset, Input, Rest, Sender, Scope) :- Ruleset =.. [Functor| Args], '$lgt_append'(Args, [Input, Rest], Args2), Pred =.. [Functor| Args2], - '$lgt_current_object_'(Obj, _, Dcl, Def, _), + '$lgt_current_object_'(Obj, _, Dcl, Def, _, _), ('$lgt_once'(Dcl, Pred, PScope, _, _, SContainer, _) -> ((\+ \+ PScope = Scope; Sender = SContainer) -> '$lgt_once'(Def, Pred, Sender, Obj, Obj, Call, _), @@ -1707,7 +1700,7 @@ current_logtalk_flag(version, version(2, 15, 2)). % '$lgt_send_to_self_nv'(+object, +term, +object) '$lgt_send_to_self_nv'(Self, Pred, This) :- - '$lgt_current_object_'(Self, _, Dcl, Def, _), + '$lgt_current_object_'(Self, _, Dcl, Def, _, _), ('$lgt_call'(Dcl, Pred, Scope, _, _, SContainer, _) -> ((Scope = p(_); This = SContainer) -> '$lgt_once'(Def, Pred, This, Self, Self, Call, _), @@ -1726,7 +1719,7 @@ current_logtalk_flag(version, version(2, 15, 2)). '$lgt_send_to_object'(Obj, Pred, Sender) :- nonvar(Obj) -> - ('$lgt_current_object_'(Obj, _, Dcl, Def, _) -> + ('$lgt_current_object_'(Obj, _, Dcl, Def, _, _) -> (nonvar(Pred) -> ('$lgt_call'(Dcl, Pred, Scope, _, _, _, _) -> (Scope = p(p(_)) -> @@ -1756,7 +1749,7 @@ current_logtalk_flag(version, version(2, 15, 2)). % '$lgt_send_to_object_nv'(+object, +term, +object) '$lgt_send_to_object_nv'(Obj, Pred, Sender) :- - '$lgt_current_object_'(Obj, _, Dcl, Def, _) -> + '$lgt_current_object_'(Obj, _, Dcl, Def, _, _) -> ('$lgt_call'(Dcl, Pred, Scope, _, _, _, _) -> (Scope = p(p(_)) -> '$lgt_once'(Def, Pred, Sender, Obj, Obj, Call, _), @@ -1791,10 +1784,10 @@ current_logtalk_flag(version, version(2, 15, 2)). % '$lgt_send_to_super_nv'(+object, +term, +object, +object) '$lgt_send_to_super_nv'(Self, Pred, This, Sender) :- - '$lgt_current_object_'(Self, _, Dcl, _, _), + '$lgt_current_object_'(Self, _, Dcl, _, _, _), ('$lgt_call'(Dcl, Pred, Scope, _, _, SContainer, _) -> ((Scope = p(_); This = SContainer) -> - '$lgt_current_object_'(This, _, _, _, Super), + '$lgt_current_object_'(This, _, _, _, Super, _), '$lgt_once'(Super, Pred, Sender, This, Self, Call, Container), (Container \= This -> call(Call) @@ -1821,7 +1814,7 @@ current_logtalk_flag(version, version(2, 15, 2)). (Obj = user -> call(Pred) ; - '$lgt_current_object_'(Obj, Prefix, _, _, _), + '$lgt_current_object_'(Obj, Prefix, _, _, _, _), '$lgt_prefix'(Context, Prefix), '$lgt_sender'(Context, Sender), '$lgt_this'(Context, Obj), @@ -1839,7 +1832,7 @@ current_logtalk_flag(version, version(2, 15, 2)). '$lgt_sender'(Context, Sender), '$lgt_this'(Context, This), '$lgt_self'(Context, Self), - '$lgt_current_object_'(This, _, _, Def, _), + '$lgt_current_object_'(This, _, _, Def, _, _), ('$lgt_call'(Def, Pred, Sender, This, Self, Call) -> call(Call) ; @@ -1861,7 +1854,7 @@ current_logtalk_flag(version, version(2, 15, 2)). % the following clauses correspond to a virtual % compilation of the pseudo-object user -'$lgt_current_object_'(user, user0_, user0__dcl, user0__def, _). +'$lgt_current_object_'(user, user0_, user0__dcl, user0__def, _, static). user0_(user0__dcl, user0__def, _, _, _, _, _). @@ -1904,15 +1897,15 @@ user0__def(Pred, _, _, _, Pred, user). atom_concat('$lgt_', _, Functor). '$lgt_hidden_functor'(Functor) :- - '$lgt_current_category_'(_, Prefix), + '$lgt_current_category_'(_, Prefix, _), atom_concat(Prefix, _, Functor). '$lgt_hidden_functor'(Functor) :- - '$lgt_current_object_'(_, Prefix, _, _, _), + '$lgt_current_object_'(_, Prefix, _, _, _, _), atom_concat(Prefix, _, Functor). '$lgt_hidden_functor'(Functor) :- - '$lgt_current_protocol_'(_, Prefix), + '$lgt_current_protocol_'(_, Prefix, _), atom_concat(Prefix, _, Functor). @@ -1962,7 +1955,7 @@ user0__def(Pred, _, _, _, Pred, user). % prints a warning if an entity of the same name is already loaded '$lgt_report_redefined_entity'(Entity) :- - '$lgt_current_object_'(Entity, _, _, _, _), + '$lgt_current_object_'(Entity, _, _, _, _, _), !, write('WARNING! redefining object '), write(Entity), nl. @@ -1972,17 +1965,17 @@ user0__def(Pred, _, _, _, Pred, user). catch(number_codes(Arity, Codes2), _, fail), atom_codes(Functor, Codes1), functor(Loaded, Functor, Arity), - '$lgt_current_object_'(Loaded, _, _, _, _), + '$lgt_current_object_'(Loaded, _, _, _, _, _), !, write('WARNING! redefining object '), write(Entity), nl. '$lgt_report_redefined_entity'(Entity) :- - '$lgt_current_protocol_'(Entity, _), + '$lgt_current_protocol_'(Entity, _, _), !, write('WARNING! redefining protocol '), write(Entity), nl. '$lgt_report_redefined_entity'(Entity) :- - '$lgt_current_category_'(Entity, _), + '$lgt_current_category_'(Entity, _, _), !, write('WARNING! redefining category '), write(Entity), nl. @@ -2464,7 +2457,10 @@ user0__def(Pred, _, _, _, Pred, user). % dynamic entity directive '$lgt_tr_directive'((dynamic), []) :- - assertz('$lgt_entity_comp_mode_'((dynamic))). + !, + assertz('$lgt_entity_comp_mode_'((dynamic))), + '$lgt_entity_'(Type, _, _, _), + '$lgt_update_entity_comp_mode'(Type). '$lgt_tr_directive'(initialization, [Goal]) :- @@ -3534,7 +3530,7 @@ user0__def(Pred, _, _, _, Pred, user). assertz('$lgt_object_'(Obj, Prefix, Dcl, Def, Super, IDcl, IDef, DDcl, DDef)), Term =.. [Prefix, Dcl, Def, Super, IDcl, IDef, DDcl, DDef], assertz('$lgt_entity_functors_'(Term)), - assertz('$lgt_rclause_'('$lgt_current_object_'(Obj, Prefix, Dcl, Def, Super))), + assertz('$lgt_rclause_'('$lgt_current_object_'(Obj, Prefix, Dcl, Def, Super, static))), assertz('$lgt_entity_'(object, Obj, Prefix, Dcl)). @@ -3550,7 +3546,7 @@ user0__def(Pred, _, _, _, Pred, user). assertz('$lgt_category_'(Ctg, Prefix, Dcl, Def)), Term =.. [Prefix, Dcl, Def], assertz('$lgt_entity_functors_'(Term)), - assertz('$lgt_rclause_'('$lgt_current_category_'(Ctg, Prefix))), + assertz('$lgt_rclause_'('$lgt_current_category_'(Ctg, Prefix, static))), assertz('$lgt_entity_'(category, Ctg, Prefix, Dcl)). @@ -3566,11 +3562,30 @@ user0__def(Pred, _, _, _, Pred, user). assertz('$lgt_protocol_'(Ptc, Prefix, Dcl)), Term =.. [Prefix, Dcl], assertz('$lgt_entity_functors_'(Term)), - assertz('$lgt_rclause_'('$lgt_current_protocol_'(Ptc, Prefix))), + assertz('$lgt_rclause_'('$lgt_current_protocol_'(Ptc, Prefix, static))), assertz('$lgt_entity_'(protocol, Ptc, Prefix, Dcl)). +% '$lgt_update_entity_comp_mode'(+atom) +% +% updates the entity compilation mode to "dynamic" +% (entities are static by default) + +'$lgt_update_entity_comp_mode'(object) :- + retract('$lgt_rclause_'('$lgt_current_object_'(Obj, Prefix, Dcl, Def, Super, _))), + assertz('$lgt_rclause_'('$lgt_current_object_'(Obj, Prefix, Dcl, Def, Super, (dynamic)))). + +'$lgt_update_entity_comp_mode'(protocol) :- + retract('$lgt_rclause_'('$lgt_current_protocol_'(Ptc, Prefix, _))), + assertz('$lgt_rclause_'('$lgt_current_protocol_'(Ptc, Prefix, (dynamic)))). + +'$lgt_update_entity_comp_mode'(category) :- + retract('$lgt_rclause_'('$lgt_current_category_'(Ctg, Prefix, _))), + assertz('$lgt_rclause_'('$lgt_current_category_'(Ctg, Prefix, (dynamic)))). + + + % '$lgt_tr_implements_protocol'(+list, +object_identifier) % '$lgt_tr_implements_protocol'(+list, +category_identifier) % @@ -3769,7 +3784,7 @@ user0__def(Pred, _, _, _, Pred, user). '$lgt_report_unknown_objects' :- findall( Obj, - ('$lgt_referenced_object_'(Obj), \+ ('$lgt_current_object_'(Obj, _, _, _, _); '$lgt_entity_'(_, Obj, _, _))), + ('$lgt_referenced_object_'(Obj), \+ ('$lgt_current_object_'(Obj, _, _, _, _, _); '$lgt_entity_'(_, Obj, _, _))), Objs), (Objs \= [] -> write('WARNING! references to unknown objects: '), writeq(Objs), nl @@ -3785,7 +3800,7 @@ user0__def(Pred, _, _, _, Pred, user). '$lgt_report_unknown_protocols' :- findall( Ptc, - ('$lgt_referenced_protocol_'(Ptc), \+ ('$lgt_current_protocol_'(Ptc, _); '$lgt_entity_'(_, Ptc, _, _))), + ('$lgt_referenced_protocol_'(Ptc), \+ ('$lgt_current_protocol_'(Ptc, _, _); '$lgt_entity_'(_, Ptc, _, _))), Ptcs), (Ptcs \= [] -> write('WARNING! references to unknown protocols: '), writeq(Ptcs), nl @@ -3801,7 +3816,7 @@ user0__def(Pred, _, _, _, Pred, user). '$lgt_report_unknown_categories' :- findall( Ctg, - ('$lgt_referenced_category_'(Ctg), \+ ('$lgt_current_category_'(Ctg, _); '$lgt_entity_'(_, Ctg, _, _))), + ('$lgt_referenced_category_'(Ctg), \+ ('$lgt_current_category_'(Ctg, _, _); '$lgt_entity_'(_, Ctg, _, _))), Ctgs), (Ctgs \= [] -> write('WARNING! references to unknown categories: '), writeq(Ctgs), nl @@ -5004,9 +5019,9 @@ user0__def(Pred, _, _, _, Pred, user). '$lgt_retract_old_relation_clauses'(Entity) :- - retractall('$lgt_current_object_'(Entity, _, _, _, _)), - retractall('$lgt_current_protocol_'(Entity, _)), - retractall('$lgt_current_category_'(Entity, _)), + retractall('$lgt_current_object_'(Entity, _, _, _, _, _)), + retractall('$lgt_current_protocol_'(Entity, _, _)), + retractall('$lgt_current_category_'(Entity, _, _)), retractall('$lgt_implements_protocol_'(Entity, _, _)), retractall('$lgt_imports_category_'(Entity, _, _)), retractall('$lgt_instantiates_class_'(Entity, _, _)), @@ -5580,24 +5595,34 @@ user0__def(Pred, _, _, _, Pred, user). '$lgt_dcg_rule'((RHead --> RBody), CHead) :- RBody == [], !, - '$lgt_dcg_head'(RHead, CHead, S, S). + '$lgt_dcg_head'(RHead, CHead, _, _, S, S, _). '$lgt_dcg_rule'((RHead --> RBody), (CHead :- CBody)) :- - '$lgt_dcg_head'(RHead, CHead, S0, S), + '$lgt_dcg_head'(RHead, CHead, Body, Body2, S0, S, S1), '$lgt_dcg_body'(RBody, Body, S0, S), - '$lgt_dcg_fold_unifications'(Body, CBody, S0, S). + '$lgt_dcg_fold_unifications'(Body2, CBody, S1). -% '$lgt_dcg_head'(@dcghead, -head, @var, @var) +% '$lgt_dcg_head'(@dcghead, -head, @goal, -goal, @var, @var, -var) % % translates DCG rule head to a Prolog clause head +% (the last argument returns the variable representing the ouput list) -'$lgt_dcg_head'(Nonterminal, _, _, _) :- - var(Nonterminal), +'$lgt_dcg_head'(RHead, _, _, _, _, _, _) :- + var(RHead), throw(instantiation_error). -'$lgt_dcg_head'(Nonterminal, CHead, S0, S) :- +'$lgt_dcg_head'((_, Terminals), _, _, _, _, _, _) :- + \+ '$lgt_proper_list'(Terminals), + throw(type_error(list, Terminals)). + +'$lgt_dcg_head'((Nonterminal, Terminals), CHead, Body, (Body,Goal), S0, S, S1) :- + !, + '$lgt_dcg_terminals'(Terminals, Goal, S1, S), + '$lgt_dcg_goal'(Nonterminal, CHead, S0, S1). + +'$lgt_dcg_head'(Nonterminal, CHead, Body, Body, S0, S, S) :- '$lgt_dcg_goal'(Nonterminal, CHead, S0, S). @@ -5638,18 +5663,16 @@ user0__def(Pred, _, _, _, Pred, user). '$lgt_dcg_body'(!, (!, S0=S), S0, S) :- !. -'$lgt_dcg_body'([], (S0=S), S0, S) :- - !. - '$lgt_dcg_body'(\+ RGoal, CGoal, S0, S) :- !, '$lgt_dcg_body'((RGoal -> {fail};{true}), CGoal, S0, S). -'$lgt_dcg_body'([Terminal| Terminals], (CGoal,CGoals), S0, S) :- +'$lgt_dcg_body'([], (S0=S), S0, S) :- + !. + +'$lgt_dcg_body'([Terminal| Terminals], CGoal, S0, S) :- !, - '$lgt_dcg_terminal'(Terminal, CGoal, S0, S1), - '$lgt_dcg_body'(Terminals, Goals, S1, S), - '$lgt_dcg_simplify_terminals'(Goals, CGoals). + '$lgt_dcg_terminals'([Terminal| Terminals], CGoal, S0, S). '$lgt_dcg_body'(Non_terminal, CGoal, S0, S) :- '$lgt_dcg_goal'(Non_terminal, CGoal, S0, S). @@ -5671,49 +5694,52 @@ user0__def(Pred, _, _, _, Pred, user). -% '$lgt_dcg_goal'(@goal, -goal, @var, @var) +% '$lgt_dcg_terminals'(@list, -goal, @var, @var) % -% translate terminal; note that we don't use the traditional 'C'/3 predicate +% translate list of terminals -'$lgt_dcg_terminal'(Goal, S0=[Goal|S], S0, S). +'$lgt_dcg_terminals'(Terminals, S0=List, S0, S) :- + '$lgt_dcg_terminals'(Terminals, S, List). + + +'$lgt_dcg_terminals'([], S, S). + +'$lgt_dcg_terminals'([Terminal| Terminals], S, [Terminal| Rest]) :- + '$lgt_dcg_terminals'(Terminals, S, Rest). -% '$lgt_dcg_fold_unifications'(+goal, -goal) +% '$lgt_dcg_fold_unifications'(+goal, -goal, @var) % -% folds redundant calls to =/2 by calling the unification goals +% folds redundant calls to =/2 by calling the unification +% goals execept for output unifications -'$lgt_dcg_fold_unifications'((Goal1 -> Goal2), (SGoal1 -> SGoal2), S0, S) :- +'$lgt_dcg_fold_unifications'((Goal1 -> Goal2), (SGoal1 -> SGoal2), S) :- !, - '$lgt_dcg_fold_unifications'(Goal1, SGoal1, S0, S), - (Goal2 = (_,_) -> - '$lgt_dcg_fold_unifications'(Goal2, SGoal2, S0, S) - ; - Goal2 = SGoal2). + '$lgt_dcg_fold_unifications'(Goal1, SGoal1, S), + '$lgt_dcg_fold_unifications'(Goal2, SGoal2, S). -'$lgt_dcg_fold_unifications'((Goal1;Goal2), (SGoal1;SGoal2), S0, S) :- +'$lgt_dcg_fold_unifications'((Goal1;Goal2), (SGoal1;SGoal2), S) :- !, - '$lgt_dcg_fold_unifications'(Goal1, SGoal1, S0, S), - '$lgt_dcg_fold_unifications'(Goal2, SGoal2, S0, S). + '$lgt_dcg_fold_unifications'(Goal1, SGoal1, S), + '$lgt_dcg_fold_unifications'(Goal2, SGoal2, S). -'$lgt_dcg_fold_unifications'((Goal1,Goal2), Body, S0, S) :- +'$lgt_dcg_fold_unifications'((Goal1,Goal2), SGoal, S) :- !, - '$lgt_dcg_fold_unifications'(Goal1, SGoal1, S0, S), - '$lgt_dcg_fold_unifications'(Goal2, SGoal2, S0, S), - '$lgt_dcg_simplify_and'((SGoal1,SGoal2), Body). + '$lgt_dcg_fold_unifications'(Goal1, SGoal1, S), + '$lgt_dcg_fold_unifications'(Goal2, SGoal2, S), + '$lgt_dcg_simplify_and'((SGoal1,SGoal2), SGoal). -'$lgt_dcg_fold_unifications'(S1=S2, S0=S, S0, S) :- - S1 == S0, - S2 == S, +'$lgt_dcg_fold_unifications'(S1=S2, S1=S2, S) :- + (S1 == S; S2 == S), % avoid output unifications !. -'$lgt_dcg_fold_unifications'(S1=S2, true, S0, S) :- - var(S2), - (S1 \== S0; S2 \== S), +'$lgt_dcg_fold_unifications'(S1=S2, true, _) :- + var(S2), % avoid unification with list of terminals !, S1 = S2. -'$lgt_dcg_fold_unifications'(Body, Body, _, _). +'$lgt_dcg_fold_unifications'(Goal, Goal, _). @@ -5721,6 +5747,16 @@ user0__def(Pred, _, _, _, Pred, user). % % removes redundant calls to true/0 and flats a conjunction of goals +'$lgt_dcg_simplify_and'((Goal1 -> Goal2), (SGoal1 -> SGoal2)) :- + !, + '$lgt_dcg_simplify_and'(Goal1, SGoal1), + '$lgt_dcg_simplify_and'(Goal2, SGoal2). + +'$lgt_dcg_simplify_and'((Goal1;Goal2), (SGoal1;SGoal2)) :- + !, + '$lgt_dcg_simplify_and'(Goal1, SGoal1), + '$lgt_dcg_simplify_and'(Goal2, SGoal2). + '$lgt_dcg_simplify_and'(((Goal1,Goal2),Goal3), Body) :- !, '$lgt_dcg_simplify_and'((Goal1,(Goal2,Goal3)), Body). @@ -5741,19 +5777,6 @@ user0__def(Pred, _, _, _, Pred, user). -% '$lgt_dcg_simplify_terminals'(+goal, -goal) -% -% simplifies code generated for list of terminals by folding the chain of unifications - -'$lgt_dcg_simplify_terminals'((S=L,Goal1), Goal2) :- - !, - S = L, - '$lgt_dcg_simplify_terminals'(Goal1, Goal2). - -'$lgt_dcg_simplify_terminals'(Goal, Goal). - - - %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % diff --git a/library/logtalk/yap430.config b/library/logtalk/yap430.config index fd99ab7c3..30ed737d4 100644 --- a/library/logtalk/yap430.config +++ b/library/logtalk/yap430.config @@ -1,7 +1,7 @@ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % Logtalk - Object oriented extension to Prolog -% Release 2.15.2 +% Release 2.15.3 % % configuration file for YAP Prolog 4.3.23 or later %