Changeset 5048
- Timestamp:
- 06/26/09 18:43:49 (9 months ago)
- Location:
- trunk
- Files:
-
- 2 modified
-
compiler/logtalk.pl (modified) (7 diffs)
-
RELEASE_NOTES.txt (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
trunk/compiler/logtalk.pl
r5047 r5048 3629 3629 3630 3630 3631 % '$lgt_call_built_in'(+callable, + execution_context)3631 % '$lgt_call_built_in'(+callable, +callable, +execution_context) 3632 3632 % 3633 3633 % needed for runtime translation of dynamic clauses, for dealing 3634 3634 % with meta-calls that turn out to be calls to built-in predicates, 3635 3635 % and for dealing with <</2 calls to redefined built-in predicates 3636 3637 '$lgt_call_built_in'(Pred, ExCtx) :- 3636 % 3637 % the first argument, Pred, is the original predicate call, while the second 3638 % argument, MetaExPred, is equal to the first argument for normal predicates 3639 % but is meta-argument expanded for non-redefined built-in meta-predicates 3640 3641 '$lgt_call_built_in'(Pred, MetaExPred, ExCtx) :- 3638 3642 ( '$lgt_exec_ctx'(ExCtx, This, _), 3639 3643 '$lgt_current_object_'(This, _, _, Def, _, _, _, _, DDef, _, _), … … 3645 3649 ) 3646 3650 ; % call the built-in predicate: 3647 call( Pred)3651 call(MetaExPred) 3648 3652 ). 3649 3653 … … 9154 9158 % Prolog proprietary, built-in meta-predicates 9155 9159 9156 '$lgt_tr_body'(Pred, '$lgt_call_built_in'( TPred, ExCtx), DPred, Ctx) :-9160 '$lgt_tr_body'(Pred, '$lgt_call_built_in'(Pred, TPred, ExCtx), DPred, Ctx) :- 9157 9161 '$lgt_pl_built_in'(Pred), 9158 9162 functor(Pred, Functor, Arity), … … 9182 9186 ( Type == control_construct -> 9183 9187 DGoal =.. [Functor| DArgs], 9184 DPred = '$lgt_call_built_in'( DGoal, Ctx)9185 ; DPred = '$lgt_dbg_goal'(Pred, '$lgt_call_built_in'( TPred, ExCtx), ExCtx)9188 DPred = '$lgt_call_built_in'(Pred, DGoal, Ctx) 9189 ; DPred = '$lgt_dbg_goal'(Pred, '$lgt_call_built_in'(Pred, TPred, ExCtx), ExCtx) 9186 9190 ). 9187 9191 … … 9189 9193 % Logtalk and Prolog built-in predicates 9190 9194 9191 '$lgt_tr_body'(Pred, '$lgt_call_built_in'(Pred, ExCtx), '$lgt_dbg_goal'(Pred, '$lgt_call_built_in'(Pred, ExCtx), ExCtx), Ctx) :-9195 '$lgt_tr_body'(Pred, '$lgt_call_built_in'(Pred, Pred, ExCtx), '$lgt_dbg_goal'(Pred, '$lgt_call_built_in'(Pred, Pred, ExCtx), ExCtx), Ctx) :- 9192 9196 '$lgt_built_in'(Pred), 9193 9197 functor(Pred, Functor, Arity), … … 12127 12131 TPred =.. [Functor| TArgs]. 12128 12132 12129 '$lgt_fix_pred_calls'('$lgt_call_built_in'(Pred, ExCtx), TPred) :-12130 !, % calls to Logtalk and Prolog built-in predicates12133 '$lgt_fix_pred_calls'('$lgt_call_built_in'(Pred, MetaExPred, ExCtx), TPred) :- 12134 !, % calls to Logtalk and Prolog built-in (meta-)predicates 12131 12135 ( '$lgt_pp_redefined_built_in_'(Pred, ExCtx, TPred) -> 12132 12136 true 12133 ; '$lgt_fix_pred_calls'( Pred, TPred)12137 ; '$lgt_fix_pred_calls'(MetaExPred, TPred) 12134 12138 ). 12135 12139 … … 12204 12208 \+ '$lgt_pp_defs_nt_'(Functor, Arity), % non-terminal not defined in object/category and 12205 12209 ExtArity is Arity + 2, 12206 \+ '$lgt_pp_defs_pred_'(Functor, ExtArity), % no corresponding predicate is defined12207 \+ '$lgt_pp_dynamic_'(Functor, ExtArity), % no dynamic directive for the corresponding predicate12208 once(( '$lgt_pp_public_'(Functor, ExtArity) % but there is a scope directive for the non-terminal12209 ; '$lgt_pp_protected_'(Functor, ExtArity) % or the corresponding predicate12210 \+ '$lgt_pp_defs_pred_'(Functor, ExtArity), % no corresponding predicate is defined 12211 \+ '$lgt_pp_dynamic_'(Functor, ExtArity), % no dynamic directive for the corresponding predicate 12212 once(( '$lgt_pp_public_'(Functor, ExtArity) % but there is a scope directive for the non-terminal 12213 ; '$lgt_pp_protected_'(Functor, ExtArity) % or the corresponding predicate 12210 12214 ; '$lgt_pp_private_'(Functor, ExtArity) 12211 12215 )). -
trunk/RELEASE_NOTES.txt
r5047 r5048 29 29 grammar rules. 30 30 31 Fixed a bug where a failed load of a settings file could be reported as 32 successful. 31 Corrected a bug where a failed load of a settings file could be reported 32 as successful. 33 34 Corrected a bug when compiling an object or category normal predicate that 35 redefines a built-in Prolog meta-predicate. 33 36 34 37 Added missing dynamic directives in the definition of the pseudo-objects
