fix atom_codes

git-svn-id: https://yap.svn.sf.net/svnroot/yap/trunk@1238 b08c6af1-5177-4d33-ba66-4b1c6b8b522a
This commit is contained in:
vsc 2005-01-31 17:47:57 +00:00
parent ee8e119602
commit 3fce73a11f
3 changed files with 38 additions and 17 deletions

View File

@ -25,9 +25,9 @@
:- dynamic node/4, reachable_from_evidence/2, evidence/2. :- dynamic node/4, reachable_from_evidence/2, evidence/2.
% %
% new evidence storagea algorithm. The idea is that instead of % new evidence storage algorithm. The idea is that instead of
% redoing all the evidence every time we query the network, we shall % redoing all the evidence every time we query the network, we shall
% keep a precompiled version around. The precompiled % keep a precompiled version around.
% %
% the format is as follows: % the format is as follows:
% evidence_store:parent(Key,ParentList,[EvidenceChildren]) % evidence_store:parent(Key,ParentList,[EvidenceChildren])

View File

@ -459,15 +459,14 @@ debugging :-
'$action'(10,_,_,_,_) :- % newline creep '$action'(10,_,_,_,_) :- % newline creep
( recorded('$spy_skip',_,R), erase(R), fail ; true ), ( recorded('$spy_skip',_,R), erase(R), fail ; true ),
'$set_yap_flags'(10,1). '$set_yap_flags'(10,1).
'$action'(33,_,_,_,_) :- !, % ! g execute '$action'(0'!,_,_,_,_) :- !, % ! g execute
read(user,G), read(user,G),
% don't allow yourself to be caught by creep. % don't allow yourself to be caught by creep.
'$access_yap_flags'(10, CL), '$access_yap_flags'(10, CL),
'$set_yap_flags'(10, 0), '$set_yap_flags'(10, 0),
( '$execute'(G) -> true ; true), ( '$execute'(G) -> true ; true),
'$set_yap_flags'(10, CL), '$set_yap_flags'(10, CL),
!, % '$skipeol'(0'!),
'$skipeol'(33),
fail. fail.
'$action'(0'<,_,_,_,_) :- !, % <Depth '$action'(0'<,_,_,_,_) :- !, % <Depth
'$new_deb_depth', '$new_deb_depth',

View File

@ -477,20 +477,42 @@ garbage_collect_atoms :-
'$good_character_code'(X) :- integer(X), X > -2, X < 256. '$good_character_code'(X) :- integer(X), X > -2, X < 256.
atom_concat(X,Y,At) :- atom_concat(X,Y,At) :-
var(X), var(Y), !, (
atom_length(At,Len), nonvar(X), nonvar(Y)
'$atom_contact_split'(At,0,Len,X,Y). ->
/* Let atom_chars do our error handling */ atom_concat([X,Y],At)
atom_concat(X,Y,At) :- ;
atom_concat([X,Y],At). atom(At) ->
atom_length(At,Len),
'$atom_contact_split'(At,0,Len,X,Y)
;
var(At) ->
'$do_error'(instantiation_error,atom_concat(X,Y,At))
;
'$do_error'(type_error(atom,At),atomic_concant(X,Y,At))
).
atomic_concat(X,Y,At) :- atomic_concat(X,Y,At) :-
var(X), var(Y), !, (
atom_length(At,Len), nonvar(X), nonvar(Y)
'$atom_contact_split'(At,0,Len,X,Y). ->
/* Let atom_chars do our error handling */ atomic_concat([X,Y],At)
atomic_concat(X,Y,At) :- ;
atomic_concat([X,Y],At). atom(At) ->
atom_length(At,Len),
'$atom_contact_split'(At,0,Len,X,Y)
;
number(At) ->
number_codes(At,Codes),
'$append'(X0,Y0,Codes),
name(X,X0),
name(Y,Y0)
;
var(At) ->
'$do_error'(instantiation_error,atomic_concat(X,Y,At))
;
'$do_error'(type_error(atomic,At),atomic_concant(X,Y,At))
).
'$atom_contact_split'(At,Len,Len,X,Y) :- !, '$atom_contact_split'(At,Len,Len,X,Y) :- !,
'$atom_split'(At,Len,X,Y). '$atom_split'(At,Len,X,Y).