rpms/yap/F-11 Yap-5.1.3-soname.patch, NONE, 1.1 .cvsignore, 1.4, 1.5 chr_translate.pl, 1.1, 1.2 chr_translate_bootstrap1.pl, 1.1, 1.2 chr_translate_bootstrap2.pl, 1.1, 1.2 guard_entailment.pl, 1.1, 1.2 sources, 1.5, 1.6 yap.spec, 1.23, 1.24
Gérard Milmeister
gemi at fedoraproject.org
Mon Jun 15 20:46:53 UTC 2009
- Previous message (by thread): rpms/globus-rsl/F-11 globus-rsl.spec,1.2,1.3 import.log,1.2,1.3
- Next message (by thread): rpms/yap/devel Yap-5.1.3-soname.patch, NONE, 1.1 .cvsignore, 1.4, 1.5 chr_translate.pl, 1.1, 1.2 chr_translate_bootstrap1.pl, 1.1, 1.2 chr_translate_bootstrap2.pl, 1.1, 1.2 guard_entailment.pl, 1.1, 1.2 sources, 1.5, 1.6 yap.spec, 1.23, 1.24
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
Author: gemi
Update of /cvs/pkgs/rpms/yap/F-11
In directory cvs1.fedora.phx.redhat.com:/tmp/cvs-serv32732/F-11
Modified Files:
.cvsignore chr_translate.pl chr_translate_bootstrap1.pl
chr_translate_bootstrap2.pl guard_entailment.pl sources
yap.spec
Added Files:
Yap-5.1.3-soname.patch
Log Message:
new release 5.1.3
Yap-5.1.3-soname.patch:
--- NEW FILE Yap-5.1.3-soname.patch ---
diff -up Yap-5.1.3/Makefile.in.soname Yap-5.1.3/Makefile.in
--- Yap-5.1.3/Makefile.in.soname 2009-06-15 22:12:57.000000000 +0200
+++ Yap-5.1.3/Makefile.in 2009-06-15 21:59:18.000000000 +0200
@@ -578,16 +578,16 @@ startup: yap at EXEC_SUFFIX@ $(PL_SOURCES)
-rm -f startup
echo "bootstrap('$(srcdir)/pl/init.yap'). module(user). save_program(startup)." | @CROSS_SIMULATOR@ ./yap -b $(srcdir)/pl/boot.yap
-yap at EXEC_SUFFIX@: $(HEADERS) yap.o @YAPLIB at .5.1.3
- $(MPI_CC) $(STANDARD_CFLAGS) $(LDFLAGS) -o yap yap.o @YAPLIB at .5.1.3 $(LIBS) @MPI_LIBS@
+yap at EXEC_SUFFIX@: $(HEADERS) yap.o @YAPLIB@
+ $(MPI_CC) $(STANDARD_CFLAGS) $(LDFLAGS) -o yap yap.o @YAPLIB@ $(LIBS) @MPI_LIBS@
libYap.a: $(LIB_OBJECTS)
-rm -f libYap.a
$(AR) rc libYap.a $(LIB_OBJECTS)
$(RANLIB) libYap.a
- at DYNYAPLIB@.5.1.3: $(LIB_OBJECTS)
- @DYNLIB_LD@ -Wl,-soname=@YAPLIB at .5.1.3 -o @YAPLIB at .5.1.3 $(LIB_OBJECTS) $(LIBS) $(LDFLGS)
+ at DYNYAPLIB@: $(LIB_OBJECTS)
+ @DYNLIB_LD@ -o @YAPLIB@ $(LIB_OBJECTS) $(LIBS) $(LDFLGS)
install: install_bin install_data
@@ -598,7 +598,7 @@ install_unix: startup libYap.a
$(INSTALL_PROGRAM) -m 755 yap at EXEC_SUFFIX@ $(DESTDIR)$(BINDIR)/yap
mkdir -p $(DESTDIR)$(YAPLIBDIR)
$(INSTALL_DATA) startup $(DESTDIR)$(YAPLIBDIR)/startup
- @INSTALL_DLLS@ $(INSTALL_DATA) -m 755 @YAPLIB at .5.1.3 $(DESTDIR)$(LIBDIR)
+ @INSTALL_DLLS@ $(INSTALL_DATA) -m 755 @YAPLIB@ $(DESTDIR)$(LIBDIR)
mkdir -p $(DESTDIR)$(SHAREDIR)/Yap
mkdir -p $(DESTDIR)$(SHAREDIR)/Yap/pl
mkdir -p $(DESTDIR)$(SHAREDIR)/Yap/swi
@@ -643,7 +643,7 @@ install_win32: startup
(cd library/tries; make install)
@ENABLE_CPLINT@ (cd cplint; make install)
-install_library: @YAPLIB at .5.1.3
+install_library: @YAPLIB@
mkdir -p $(DESTDIR)$(INCLUDEDIR)
for h in $(HEADERS); do $(INSTALL) $$h $(DESTDIR)$(INCLUDEDIR); done
Index: .cvsignore
===================================================================
RCS file: /cvs/pkgs/rpms/yap/F-11/.cvsignore,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -p -r1.4 -r1.5
--- .cvsignore 1 May 2006 10:59:04 -0000 1.4
+++ .cvsignore 15 Jun 2009 20:46:22 -0000 1.5
@@ -1 +1,5 @@
-Yap-5.1.1.tar.gz
+Yap-5.1.3.tar.gz
+chr_translate_bootstrap1.pl
+chr_translate_bootstrap2.pl
+chr_translate.pl
+guard_entailment.pl
View full diff with command:
/usr/bin/cvs -f diff -kk -u -p -N -r 1.1 -r 1.2 chr_translate.pl
Index: chr_translate.pl
===================================================================
RCS file: /cvs/pkgs/rpms/yap/F-11/chr_translate.pl,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -p -r1.1 -r1.2
--- chr_translate.pl 1 May 2006 10:55:44 -0000 1.1
+++ chr_translate.pl 15 Jun 2009 20:46:22 -0000 1.2
@@ -1,33 +1,77 @@
/* Generated by CHR bootstrap compiler
From: chr_translate.chr
- Date: [77,111,110,32,77,97,121,32,32,49,32,49,50,58,50,50,58,49,51,32,50,48,48,54,10]
+ Date: Mon Jun 15 21:44:05 2009
+
DO NOT EDIT. EDIT THE CHR FILE INSTEAD
*/
-:-module(chr_translate,[chr_translate/2]).
+:-module(chr_translate,[chr_translate/2,chr_translate_line_info/3]).
:-use_module(chr_runtime).
-:-style_check((-singleton)).
-:-style_check((-discontiguous)).
-:-use_module(library(lists)).
-:-use_module(hprolog).
+:-style_check(-discontiguous).
+:-use_module(library(lists),[member/2,append/3,reverse/2,permutation/2,last/2]).
+:-use_module(library(ordsets)).
+:-use_module(library(aggregate)).
+:-use_module(library(apply_macros)).
+:-use_module(library(occurs)).
:-use_module(library(assoc)).
+:-use_module(hprolog).
:-use_module(pairlist).
-:-use_module(library(ordsets)).
:-use_module(a_star).
:-use_module(listmap).
:-use_module(clean_code).
:-use_module(builtins).
:-use_module(find).
+:-use_module(binomialheap).
:-use_module(guard_entailment).
:-use_module(chr_compiler_options).
:-use_module(chr_compiler_utility).
+:-use_module(chr_compiler_errors).
:-include(chr_op).
:-op(1150,fx,chr_type).
+:-op(1150,fx,chr_declaration).
:-op(1130,xfx,--->).
-:-op(1150,fx,+).
-:-op(1150,fx,-).
-:-op(1150,fx,?).
+:-op(980,fx,+).
+:-op(980,fx,-).
+:-op(980,fx,?).
+:-op(1150,fx,constraints).
+:-op(1150,fx,chr_constraint).
+format_storetype(multi_store(A)) :-
+ !,
+ maplist(format_storetype,A).
+format_storetype(atomic_constants(A,B,_)) :-
+ format(' * a trie index on the argument(s) ~w for the ground terms ~w
+',[A,B]).
+format_storetype(ground_constants(A,B,_)) :-
+ format(' * a trie index on the argument(s) ~w for the ground terms ~w
+',[A,B]).
+format_storetype(A) :-
+ format(' * ~w
+',[A]).
+get_constraint_arg_type(A,B,C) :-
+ get_constraint_type(A,D),
+ nth1(B,D,E),
+ unalias_type(E,C).
+partial_store(ground_constants(_,_,incomplete)).
+partial_store(atomic_constants(_,_,incomplete)).
+late_allocation_analysis(A) :-
+ ( chr_pp_flag(late_allocation,on) ->
+ maplist(late_allocation,A)
+ ;
+ true
+ ).
+late_allocation(A) :-
+ late_allocation(A,0).
+late_allocation(A,B) :-
+ allocation_occurrence(A,B),
+ !.
+late_allocation(A,B) :-
+ C is B+1,
+ late_allocation(A,C).
+stored_in_guard_before_next_kept_occurrence(A,B) :-
+ chr_pp_flag(store_in_guards,on),
+ C is B+1,
+ stored_in_guard_lookahead(A,C).
set_constraint_indices(A) :-
set_constraint_indices(A,1).
set_constraint_indices([],A) :-
@@ -38,10 +82,13 @@ set_constraint_indices([A|B],C) :-
(
chr_pp_flag(debugable,on)
;
- may_trigger(A)
+ \+only_ground_indexed_arguments(A),
+ is_stored(A)
;
is_stored(A),
get_store_type(A,default)
+ ;
+ get_store_type(A,var_assoc_store(_,_))
) ->
constraint_index(A,C),
D is C+1,
@@ -49,47 +96,81 @@ set_constraint_indices([A|B],C) :-
;
set_constraint_indices(B,C)
).
+type_indexed_identifier_structure(A,B) :-
+ type_indexed_identifier_name(A,type_indexed_identifier_struct,C),
+ get_type_indexed_identifier_size(A,D),
+ functor(B,C,D).
+type_indexed_identifier_name(A,B,C) :-
+ ( atom(A) ->
+ D=A
+ ;
+ term_to_atom(A,D)
+ ),
+ atom_concat_list([B,'_',D],C).
chr_translate(A,B) :-
+ chr_translate_line_info(A,bootstrap,B).
+chr_translate_line_info(A,B,C) :-
+ chr_banner,
+ restart_after_flattening(A,D),
init_chr_pp_flags,
- partition_clauses(A,C,D,E),
- check_declared_constraints(C),
- ( C==[] ->
- insert_declarations(E,B)
- ;
- generate_show_constraint(C,F,D,G),
- add_constraints(F),
- add_rules(G),
- check_rules(G,F),
- add_occurrences(G),
- functional_dependency_analysis(G),
- set_semantics_rules(G),
- symmetry_analysis(G),
- guard_simplification,
- storage_analysis(F),
- observation_analysis(F),
- ai_observation_analysis(F),
- late_allocation(F),
- assume_constraint_stores(F),
- set_constraint_indices(F),
- constraints_code(F,H),
- validate_store_type_assumptions(F),
- store_management_preds(F,I),
- insert_declarations(E,J),
- chr_module_declaration(K),
- append_lists([J,I,H,K],B)
- ).
+ chr_source_file(B),
+ partition_clauses(D,E,F,G),
+ chr_compiler_options:sanity_check,
+ dump_code(D),
+ check_declared_constraints(E),
+ generate_show_constraint(E,H,F,I),
+ add_constraints(H),
+ add_rules(I),
+ generate_never_stored_rules(H,J),
+ add_rules(J),
+ append(I,J,K),
+ chr_analysis(K,H,D),
+ time('constraint code generation',chr_translate:constraints_code(H,L)),
+ time('validate store assumptions',chr_translate:validate_store_type_assumptions(H)),
+ phase_end(validate_store_type_assumptions),
+ used_states_known,
+ time('store code generation',chr_translate:store_management_preds(H,M)),
+ insert_declarations(G,N),
+ chr_module_declaration(O),
+ append([M,L,O,[end_of_file]],P),
+ clean_clauses(P,Q),
+ append([N,Q],C),
+ dump_code(C),
+ !.
+chr_analysis(A,B,C) :-
+ check_rules(A,B),
+ time('type checking',chr_translate:static_type_check),
+ collect_constants(A,B,C),
+ add_occurrences(A),
+ time('functional dependency',chr_translate:functional_dependency_analysis(A)),
+ time('set semantics',chr_translate:set_semantics_rules(A)),
+ time('symmetry analysis',chr_translate:symmetry_analysis(A)),
+ time('guard simplification',chr_translate:guard_simplification),
+ time('late storage',chr_translate:storage_analysis(B)),
+ time(observation,chr_translate:observation_analysis(B)),
+ time('ai observation',chr_translate:ai_observation_analysis(B)),
+ time('late allocation',chr_translate:late_allocation_analysis(B)),
+ partial_wake_analysis,
+ time('assume constraint stores',chr_translate:assume_constraint_stores(B)),
+ time('default constraint indices',chr_translate:set_constraint_indices(B)),
+ time('check storedness assertions',chr_translate:check_storedness_assertions(B)),
[...27441 lines suppressed...]
+ 'chr gen_id'(E),
+ nb_getval('$chr_store_multi_hash_chr_translate____set_occurrence_code_id___3-12',F),
+ insert_ht(F,k(A,B),D).
+occurrence_code_id(A,B,C) :-
+ D=suspension(E,active,A,B,C),
+ 'chr gen_id'(E),
+ nb_getval('$chr_store_multi_hash_chr_translate____occurrence_code_id___3-12',F),
+ insert_ht(F,k(A,B),D).
+get_occurrence_code_id(A,B,C) :-
+ nb_getval('$chr_store_multi_hash_chr_translate____occurrence_code_id___3-12',G),
+ lookup_ht(G,k(A,B),F),
'chr sbag_member'(D,F),
- D=suspension(_,mutable(active),_,_,_,_,_,E),
- E=B,
+ D=suspension(_,active,_,_,E),
!,
- ( var(C) ->
+ C=E.
+get_occurrence_code_id(A,B,_) :-
+ ( B==0 ->
true
;
- remove_constraint_internal(C,_,G),
- ( G==yes ->
- '$delete_from_store_ai_not_observed/2'(C)
- ;
- true
- )
+ format('no occurrence code for ~w!
+',[A:B])
).
-'ai_not_observed/2__1'(_,_,A) :-
- activate_constraint(B,_,A,_),
- ( B==yes ->
- '$insert_in_store_ai_not_observed/2'(A)
+chr_constants(A,B) :-
+ C=suspension(D,active,_,A,B),
+ 'chr gen_id'(D),
+ nb_getval('$chr_store_global_ground_chr_translate____chr_constants___2',E),
+ F=[C|E],
+ b_setval('$chr_store_global_ground_chr_translate____chr_constants___2',F),
+ ( E=[G|_] ->
+ setarg(3,G,F)
;
true
- ).
-ai_is_observed(A,B) :-
- '$via1_multi_hash_ai_not_observed/2-1'(A,E),
+ ),
+ nb_getval('$chr_store_multi_hash_chr_translate____chr_constants___2-1',H),
+ insert_ht(H,A,C).
+get_chr_constants(A,B) :-
+ ground(A),
+ nb_getval('$chr_store_multi_hash_chr_translate____chr_constants___2-1',F),
+ lookup_ht(F,A,E),
'chr sbag_member'(C,E),
- C=suspension(_,mutable(active),_,_,_,_,_,D),
- D=B,
+ C=suspension(_,active,_,_,D),
!,
- fail.
-ai_is_observed(_,_).
-depends_on_as(A,B,C) :-
- 'depends_on_as/3__0'(A,B,C,_).
-'depends_on_as/3__0'(A,B,C,D) :-
- '$via1_multi_hash_final_answer_pattern/2-1'(B,E),
- !,
- allocate_constraint(true,D,depends_on_as(A,B,C),[A,B,C]),
- 'depends_on_as/3__0__0'(E,A,B,C,D).
-'depends_on_as/3__0__0'([],A,B,C,D) :-
- 'depends_on_as/3__1'(A,B,C,D).
-'depends_on_as/3__0__0'([G|I],A,B,C,D) :-
- ( G=suspension(_,mutable(active),_,_,_,_,E,F),
- E==B,
- '$via1_multi_hash_final_answer_pattern/2-1'(C,H) ->
- 'depends_on_as/3__0__1'(H,F,G,I,A,B,C,D)
- ;
- 'depends_on_as/3__0__0'(I,A,B,C,D)
- ).
-'depends_on_as/3__0__1'([],_,_,E,A,B,C,D) :-
- 'depends_on_as/3__0__0'(E,A,B,C,D).
-'depends_on_as/3__0__1'([J|K],F,A,G,B,C,D,E) :-
- ( J=suspension(_,mutable(active),_,_,_,_,H,I),
- J\==A,
- H==D,
- O=t(141,E,A,J),
- 'chr novel_production'(E,O),
- 'chr novel_production'(A,O),
- 'chr novel_production'(J,O) ->
- 'chr extend_history'(E,O),
- activate_constraint(M,_,E,N),
- ( M==yes ->
- '$insert_in_store_depends_on_as/3'(E)
+ B=D.
+get_chr_constants(A,B) :-
+ chr_warning(internal,'No constants found for key ~w.
+',[A]),
+ B=[].
+add_chr_constant(A,B) :-
+ nb_getval('$chr_store_multi_hash_chr_translate____chr_constants___2-1',L),
+ lookup_ht(L,A,E),
+ 'chr sbag_member'(C,E),
+ C=suspension(_,active,_,_,D),
+ !,
+ setarg(2,C,removed),
+ arg(3,C,G),
+ ( var(G) ->
+ nb_getval('$chr_store_global_ground_chr_translate____chr_constants___2',H),
+ H=[_|I],
+ b_setval('$chr_store_global_ground_chr_translate____chr_constants___2',I),
+ ( I=[J|_] ->
+ setarg(3,J,_)
;
true
- ),
- ai_observation_lub(F,I,L),
- final_answer_pattern(B,L),
- ( E=suspension(_,mutable(active),_,mutable(N),_,_,_,_,_) ->
- 'chr update_mutable'(inactive,mutable(active)),
- 'depends_on_as/3__0__1'(K,F,A,G,B,C,D,E)
+ )
+ ;
+ G=[_,_|I],
+ setarg(2,G,I),
+ ( I=[J|_] ->
+ setarg(3,J,G)
;
true
)
- ;
- 'depends_on_as/3__0__1'(K,F,A,G,B,C,D,E)
- ).
-'depends_on_as/3__0'(A,B,C,D) :-
- allocate_constraint(true,D,depends_on_as(A,B,C),[A,B,C]),
- 'depends_on_as/3__1'(A,B,C,D).
-'depends_on_as/3__1'(_,_,_,A) :-
- activate_constraint(B,_,A,_),
- ( B==yes ->
- '$insert_in_store_depends_on_as/3'(A)
- ;
+ ),
+ nb_getval('$chr_store_multi_hash_chr_translate____chr_constants___2-1',K),
+ delete_ht(K,A,C),
+ sort([B|D],F),
+ chr_constants(A,F).
+add_chr_constant(A,B) :-
+ chr_constants(A,[B]).
+print_chr_constants :-
+ print_chr_constants___0__0(_).
+print_chr_constants___0__0(A) :-
+ nb_getval('$chr_store_global_ground_chr_translate____chr_constants___2',B),
+ !,
+ A=suspension(C,not_stored_yet,_),
+ 'chr gen_id'(C),
+ print_chr_constants___0__0__0__1(B,A).
+print_chr_constants___0__0__0__1([],A) :-
+ print_chr_constants___0__1(A).
+print_chr_constants___0__0__0__1([D|E],A) :-
+ ( D=suspension(_,active,_,B,C) ->
+ format(' * chr_constants ~w : ~w.
+',[B,C]),
+ print_chr_constants___0__0__0__1(E,A)
+ ;
+ print_chr_constants___0__0__0__1(E,A)
+ ).
+print_chr_constants___0__0(A) :-
+ A=suspension(B,not_stored_yet,_),
+ 'chr gen_id'(B),
+ print_chr_constants___0__1(A).
+print_chr_constants___0__1(A) :-
+ ( var(A) ->
true
+ ;
+ arg(2,A,F),
+ setarg(2,A,removed),
+ ( F==not_stored_yet ->
+ true
+ ;
+ arg(3,A,B),
+ ( var(B) ->
+ nb_getval('$chr_store_global_ground_chr_translate____print_chr_constants___0',C),
+ C=[_|D],
+ b_setval('$chr_store_global_ground_chr_translate____print_chr_constants___0',D),
+ ( D=[E|_] ->
+ setarg(3,E,_)
+ ;
+ true
+ )
+ ;
+ B=[_,_|D],
+ setarg(2,B,D),
+ ( D=[E|_] ->
+ setarg(3,E,B)
+ ;
+ true
+ )
+ )
+ )
).
+end_of_file.
Index: chr_translate_bootstrap1.pl
===================================================================
RCS file: /cvs/pkgs/rpms/yap/F-11/chr_translate_bootstrap1.pl,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -p -r1.1 -r1.2
--- chr_translate_bootstrap1.pl 1 May 2006 10:55:44 -0000 1.1
+++ chr_translate_bootstrap1.pl 15 Jun 2009 20:46:22 -0000 1.2
@@ -1,19 +1,22 @@
/* Generated by CHR bootstrap compiler
From: chr_translate_bootstrap1.chr
- Date: [77,111,110,32,77,97,121,32,32,49,32,49,50,58,50,49,58,51,51,32,50,48,48,54,10]
+ Date: Mon Jun 15 21:43:46 2009
+
DO NOT EDIT. EDIT THE CHR FILE INSTEAD
*/
:-module(chr_translate_bootstrap1,[chr_translate/2]).
:-use_module(chr_runtime).
-:-style_check(-singleton).
:-style_check(-discontiguous).
-:-use_module(library(lists)).
+:-use_module(chr_runtime).
+:-style_check(-discontiguous).
+:-use_module(chr_runtime).
+:-style_check(-discontiguous).
+:-use_module(library(lists),[append/3,member/2,permutation/2,reverse/2]).
+:-use_module(library(ordsets)).
:-use_module(hprolog).
-:-use_module(library(assoc)).
:-use_module(pairlist).
-:-use_module(library(ordsets)).
:-include(chr_op2).
chr_translate(A,B) :-
init_chr_pp_flags,
@@ -27,14 +30,14 @@ chr_translate(A,B) :-
set_constraint_indices(C,1),
store_management_preds(C,G),
constraints_code(C,F,H),
- append_lists([E,G,H],B)
+ append([E,G,H],B)
),
chr_clear.
store_management_preds(A,B) :-
generate_attach_detach_a_constraint_all(A,C),
generate_attach_increment(D),
generate_attr_unify_hook(E),
- append_lists([C,D,E],B).
+ append([C,D,E],B).
partition_clauses([],[],[],[]).
partition_clauses([A|B],C,D,E) :-
( rule(A,F) ->
@@ -75,7 +78,7 @@ partition_clauses([A|B],C,D,E) :-
E=I
)
;
- ( A=option(L,M) ->
+ ( A=(:-chr_option(L,M)) ->
handle_option(L,M),
C=G,
D=H,
@@ -88,12 +91,12 @@ partition_clauses([A|B],C,D,E) :-
),
partition_clauses(B,G,H,I).
is_declaration(A,B) :-
- ( A=(:-C) ->
- true
+ A=(:-C),
+ (
+ C=..[chr_constraint,D]
;
- A=C
+ C=..[chr_constraint,D]
),
- C=..[constraints,D],
conj2list(D,B).
rule(A,B) :-
A=(C at D),
@@ -211,7 +214,7 @@ check_pragma(passive(A),B,C) :-
check_pragma(A,B,C) :-
A=unique(_,_),
!,
- format('CHR compiler WARNING: undocument pragma ~w in ~@.
+ format('CHR compiler WARNING: undocumented pragma ~w in ~@.
',[A,format_rule(B,C)]),
format(' `--> Only use this pragma if you know what you are doing.
',[]).
@@ -300,7 +303,7 @@ set_chr_pp_flags([A-B|C]) :-
set_chr_pp_flag(A,B),
set_chr_pp_flags(C).
set_chr_pp_flag(A,B) :-
- atom_concat('$chr_pp_',A,C),
+ atomic_concat('$chr_pp_',A,C),
nb_setval(C,B).
chr_pp_flag_definition(unique_analyse_optimise,[on,off]).
chr_pp_flag_definition(check_unnecessary_active,[full,simplification,off]).
@@ -311,7 +314,7 @@ chr_pp_flag_definition(guard_locks,[on,o
chr_pp_flag_definition(check_attachments,[on,off]).
chr_pp_flag_definition(debugable,[off,on]).
chr_pp_flag(A,B) :-
- atom_concat('$chr_pp_',A,C),
+ atomic_concat('$chr_pp_',A,C),
nb_getval(C,D),
( D==[] ->
chr_pp_flag_definition(A,[B|_])
@@ -328,7 +331,7 @@ generate_attach_detach_a_constraint_all(
E=[]
),
generate_attach_detach_a_constraint_all(B,F),
- append_lists([D,E,F],C).
+ append([D,E,F],C).
generate_attach_a_constraint(A,[B,C]) :-
generate_attach_a_constraint_empty_list(A,B),
get_max_constraint_index(D),
@@ -359,13 +362,13 @@ generate_attach_a_constraint_t_p(A/B,C)
or_pattern(K,L),
get_max_constraint_index(M),
make_attr(M,N,O,P),
- nth(K,O,Q),
- substitute(Q,O,[H|Q],R),
+ nth1(K,O,Q),
+ substitute_eq(Q,O,[H|Q],R),
make_attr(M,N,R,S),
- substitute(Q,O,[H],T),
+ substitute_eq(Q,O,[H],T),
make_attr(M,U,T,V),
- copy_term(O,W),
- nth(K,W,[H]),
+ copy_term_nat(O,W),
+ nth1(K,W,[H]),
chr_delete(W,[H],X),
set_elems(X,[]),
make_attr(M,L,W,Y),
@@ -403,10 +406,10 @@ generate_detach_a_constraint_t_p(A/B,C)
and_pattern(K,M),
get_max_constraint_index(N),
make_attr(N,O,P,Q),
- nth(K,P,R),
- substitute(R,P,[],S),
+ nth1(K,P,R),
+ substitute_eq(R,P,[],S),
make_attr(N,T,S,U),
- substitute(R,P,V,W),
+ substitute_eq(R,P,V,W),
make_attr(N,O,W,X),
get_target_module(Y),
Z=((get_attr(F,Y,A1)->A1=Q,(O/\L=:=L->'chr sbag_del_element'(R,H,V),(V==[]->T is O/\M,(T==0->del_attr(F,Y);put_attr(F,Y,U));put_attr(F,Y,X));true);true),J),
@@ -816,7 +819,7 @@ unique_analyse_optimise_main([A|B],C,D,[
J=ids(O,P),
apply_unique_patterns_to_constraints(M,O,H,Q),
apply_unique_patterns_to_constraints(N,P,H,R),
- append_lists([Q,R,K],S),
+ append([Q,R,K],S),
E=pragma(I,J,S,L),
T is C+1,
unique_analyse_optimise_main(B,T,H,F).
@@ -839,9 +842,9 @@ apply_unique_pattern(A,B,C,D) :-
),
D=unique(B,L).
subsumes(A,B,C) :-
- empty_assoc(D),
+ empty_ds(D),
subsumes_aux(A,B,D,E),
- assoc_to_list(E,F),
+ ds_to_list(E,F),
build_unifier(F,C).
subsumes_aux(A,B,C,D) :-
( compound(B),
@@ -855,13 +858,13 @@ subsumes_aux(A,B,C,D) :-
)
;
( var(B),
- get_assoc(A,C,G) ->
+ get_ds(A,C,G) ->
G==B,
D=C
)
;
var(B),
- put_assoc(A,C,B,D)
+ put_ds(A,C,B,D)
).
subsumes_aux(0,_,_,A,A) :-
!.
@@ -885,11 +888,10 @@ discover_unique_pattern(A,B,C) :-
term_variables(G,L),
select_pragma_unique_variables(K,L,M),
N=unique(G,M),
- copy_term(N,C),
- ( prolog_flag(verbose,O),
- O==yes ->
+ copy_term_nat(N,C),
+ ( verbosity_on ->
format('Found unique pattern ~w in rule ~d~@
-',[C,B,(F=yes(P)->write([58,32]),write(P);true)])
+',[C,B,(F=yes(O)->write([58,32]),write(O);true)])
;
true
).
@@ -1108,10 +1110,10 @@ rest_heads_retrieval_and_matching_n([A|B
;
get_constraint_index(S/T,C1),
make_attr(A1,_,D1,Q),
- nth(C1,D1,B1)
+ nth1(C1,D1,B1)
),
different_from_other_susps(A,L,F,G,E1),
- create_get_mutable(active,Z,F1),
+ create_get_mutable_ref(active,Z,F1),
G1=('chr sbag_member'(L,B1),L=Y,F1,E1,W),
( member(unique(C,H1),E),
check_unique_keys(H1,N) ->
@@ -1137,7 +1139,7 @@ check_unique_keys([A|B],C) :-
lookup_eq(C,A,_),
check_unique_keys(B,C).
different_from_other_susps(A,B,C,D,E) :-
- ( bagof(F,G^(nth(G,C,H),\+A\=H,nth(G,D,I),F=(B\==I)),J) ->
+ ( bagof(F,G^(nth1(G,C,H),\+A\=H,nth1(G,D,I),F=(B\==I)),J) ->
list2conj(J,E)
;
E=true
@@ -1166,7 +1168,7 @@ common_variables(A,B,C) :-
gen_get_mod_constraints(A,B,C) :-
get_target_module(D),
( A==[] ->
- B=('chr global_term_ref_1'(E),get_attr(E,D,F),F=C)
+ B=('chr default_store'(E),get_attr(E,D,F),F=C)
;
( A=[G] ->
H='chr via_1'(G,I)
@@ -1331,7 +1333,7 @@ simpagation_head2_prelude(A,B,C,D/E,F,G,
functor(B,U,V),
get_constraint_index(U/V,W),
make_attr(S,_,X,Q),
- nth(W,X,T)
+ nth1(W,X,T)
),
( F==[0] ->
gen_cond_allocation(I,J,D/E,K,Y)
@@ -1373,7 +1375,7 @@ simpagation_head2_worker_body(A,B,C,D,E,
head_info(B,Z,A1,_,_,B1),
head_arg_matches(B1,T,C1,D1),
E1=..[suspension,_,F1,_,_,_,_|A1],
- create_get_mutable(active,F1,G1),
+ create_get_mutable_ref(active,F1,G1),
H1=(O=E1,G1),
(
(
@@ -1426,8 +1428,8 @@ simpagation_head2_worker_body(A,B,C,D,E,
gen_state_cond_call(A,B,C,D,E) :-
length(F,B),
G=..[suspension,_,H,_,I,_,_|F],
- create_get_mutable(active,H,J),
- create_get_mutable(D,I,K),
+ create_get_mutable_ref(active,H,J),
+ create_get_mutable_ref(D,I,K),
E=(A=G,J,K->'chr update_mutable'(inactive,H),C;true).
simpagation_head2_worker_end(A,B,C/D,E,F,G) :-
head_info(A,D,_,_,H,I),
@@ -1492,7 +1494,7 @@ propagation_prelude(A,[B|C],D,E/F,G,H,I)
functor(B,Y,Z),
make_attr(W,_,A1,U),
get_constraint_index(Y/Z,B1),
- nth(B1,A1,X)
+ nth1(B1,A1,X)
),
( G==[0] ->
gen_cond_allocation(J,K,E/F,L,C1)
@@ -1521,7 +1523,7 @@ propagation_body(A,B,C,D,E,F/G,H,I,J) :-
functor(A,_,S),
gen_vars(S,T),
U=..[suspension,_,V,_,_,_,_|T],
- create_get_mutable(active,V,W),
+ create_get_mutable_ref(active,V,W),
X=(Q=U,W),
Y=[[Q|R]|M],
build_head(F,G,H,Y,Z),
@@ -1615,7 +1617,7 @@ propagation_accumulator([A|B],[C|D],E,F/
head_arg_matches(T,N,U,V),
W=..[suspension,_,X,_,_,_,_|R],
different_from_other_susps(C,S,D,O,Y),
- create_get_mutable(active,X,Z),
+ create_get_mutable_ref(active,X,Z),
A1=(S=W,Z,Y,U),
functor(A,B1,C1),
passive_head_via(A,[C|D],[],V,D1,E1,F1),
@@ -1626,7 +1628,7 @@ propagation_accumulator([A|B],[C|D],E,F/
;
get_constraint_index(B1/C1,I1),
make_attr(G1,_,J1,E1),
- nth(I1,J1,H1)
+ nth1(I1,J1,H1)
),
inc_id(H,K1),
L1=[[S|P]|M],
@@ -1733,7 +1735,7 @@ order_score_vars([A|B],C,D,E,F) :-
G=E
),
order_score_vars(B,C,D,G,F).
-create_get_mutable(A,B,C) :-
+create_get_mutable_ref(A,B,C) :-
C=(B=mutable(A)).
clean_clauses([],[]).
clean_clauses([A|B],[C|D]) :-
@@ -1841,13 +1843,13 @@ build_head(A,B,C,D,E) :-
E=..[F|D].
buildName(A,B,C,D) :-
atom_concat(A,/,E),
- atom_concat(E,B,F),
+ atomic_concat(E,B,F),
buildName_(C,F,D).
buildName_([],A,A).
buildName_([A|B],C,D) :-
buildName_(B,C,E),
atom_concat(E,'__',F),
- atom_concat(F,A,D).
+ atomic_concat(F,A,D).
vars_susp(A,B,C,D) :-
length(B,A),
append(B,[C],D).
@@ -1884,7 +1886,20 @@ atom_concat_list([A],A) :-
!.
atom_concat_list([A|B],C) :-
atom_concat_list(B,D),
- atom_concat(A,D,C).
+ atomic_concat(A,D,C).
+atomic_concat(A,B,C) :-
+ make_atom(A,D),
+ make_atom(B,E),
+ atom_concat(D,E,C).
+make_atom(A,B) :-
+ ( atom(A) ->
+ B=A
+ ;
+ ( number(A) ->
+ number_codes(A,C),
+ atom_codes(B,C)
+ )
+ ).
set_elems([],_).
set_elems([A|B],A) :-
set_elems(B,A).
@@ -1897,15 +1912,18 @@ select2(A,B,[C|D],[E|F],[C|G],[E|H]) :-
pair_all_with([],_,[]).
pair_all_with([A|B],C,[A-C|D]) :-
pair_all_with(B,C,D).
+verbosity_on :-
+ prolog_flag(verbose,A),
+ A==yes.
'attach_constraint/2'([],_).
'attach_constraint/2'([A|B],C) :-
- ( get_attr(A,chr_translate_bootstrap1,L) ->
- L=v(J,D,E,F,G,H,I),
- ( J/\1=:=1 ->
- put_attr(A,chr_translate_bootstrap1,v(J,[C|D],E,F,G,H,I))
+ ( get_attr(A,chr_translate_bootstrap1,D) ->
+ D=v(E,F,G,H,I,J,K),
+ ( E/\1=:=1 ->
+ put_attr(A,chr_translate_bootstrap1,v(E,[C|F],G,H,I,J,K))
;
- K is J\/1,
- put_attr(A,chr_translate_bootstrap1,v(K,[C],E,F,G,H,I))
+ L is E\/1,
+ put_attr(A,chr_translate_bootstrap1,v(L,[C],G,H,I,J,K))
)
;
put_attr(A,chr_translate_bootstrap1,v(1,[C],[],[],[],[],[]))
@@ -1913,19 +1931,19 @@ pair_all_with([A|B],C,[A-C|D]) :-
'attach_constraint/2'(B,C).
'detach_constraint/2'([],_).
'detach_constraint/2'([A|B],C) :-
- ( get_attr(A,chr_translate_bootstrap1,M) ->
- M=v(J,D,E,F,G,H,I),
- ( J/\1=:=1 ->
- 'chr sbag_del_element'(D,C,L),
+ ( get_attr(A,chr_translate_bootstrap1,D) ->
+ D=v(E,F,G,H,I,J,K),
+ ( E/\1=:=1 ->
+ 'chr sbag_del_element'(F,C,L),
( L==[] ->
- K is J/\ -2,
- ( K==0 ->
+ M is E/\ -2,
+ ( M==0 ->
del_attr(A,chr_translate_bootstrap1)
;
- put_attr(A,chr_translate_bootstrap1,v(K,[],E,F,G,H,I))
+ put_attr(A,chr_translate_bootstrap1,v(M,[],G,H,I,J,K))
)
;
- put_attr(A,chr_translate_bootstrap1,v(J,L,E,F,G,H,I))
+ put_attr(A,chr_translate_bootstrap1,v(E,L,G,H,I,J,K))
)
;
true
@@ -1936,13 +1954,13 @@ pair_all_with([A|B],C,[A-C|D]) :-
'detach_constraint/2'(B,C).
'attach_constraint_count/1'([],_).
'attach_constraint_count/1'([A|B],C) :-
- ( get_attr(A,chr_translate_bootstrap1,L) ->
- L=v(J,D,E,F,G,H,I),
- ( J/\2=:=2 ->
- put_attr(A,chr_translate_bootstrap1,v(J,D,[C|E],F,G,H,I))
+ ( get_attr(A,chr_translate_bootstrap1,D) ->
+ D=v(E,F,G,H,I,J,K),
+ ( E/\2=:=2 ->
+ put_attr(A,chr_translate_bootstrap1,v(E,F,[C|G],H,I,J,K))
;
- K is J\/2,
- put_attr(A,chr_translate_bootstrap1,v(K,D,[C],F,G,H,I))
+ L is E\/2,
+ put_attr(A,chr_translate_bootstrap1,v(L,F,[C],H,I,J,K))
)
;
put_attr(A,chr_translate_bootstrap1,v(2,[],[C],[],[],[],[]))
@@ -1950,19 +1968,19 @@ pair_all_with([A|B],C,[A-C|D]) :-
'attach_constraint_count/1'(B,C).
'detach_constraint_count/1'([],_).
'detach_constraint_count/1'([A|B],C) :-
- ( get_attr(A,chr_translate_bootstrap1,M) ->
- M=v(J,D,E,F,G,H,I),
- ( J/\2=:=2 ->
- 'chr sbag_del_element'(E,C,L),
+ ( get_attr(A,chr_translate_bootstrap1,D) ->
+ D=v(E,F,G,H,I,J,K),
+ ( E/\2=:=2 ->
+ 'chr sbag_del_element'(G,C,L),
( L==[] ->
- K is J/\ -3,
- ( K==0 ->
+ M is E/\ -3,
+ ( M==0 ->
del_attr(A,chr_translate_bootstrap1)
;
- put_attr(A,chr_translate_bootstrap1,v(K,D,[],F,G,H,I))
+ put_attr(A,chr_translate_bootstrap1,v(M,F,[],H,I,J,K))
)
;
- put_attr(A,chr_translate_bootstrap1,v(J,D,L,F,G,H,I))
+ put_attr(A,chr_translate_bootstrap1,v(E,F,L,H,I,J,K))
)
;
true
@@ -1973,13 +1991,13 @@ pair_all_with([A|B],C,[A-C|D]) :-
'detach_constraint_count/1'(B,C).
'attach_constraint_index/2'([],_).
'attach_constraint_index/2'([A|B],C) :-
- ( get_attr(A,chr_translate_bootstrap1,L) ->
- L=v(J,D,E,F,G,H,I),
- ( J/\4=:=4 ->
- put_attr(A,chr_translate_bootstrap1,v(J,D,E,[C|F],G,H,I))
+ ( get_attr(A,chr_translate_bootstrap1,D) ->
+ D=v(E,F,G,H,I,J,K),
+ ( E/\4=:=4 ->
+ put_attr(A,chr_translate_bootstrap1,v(E,F,G,[C|H],I,J,K))
;
- K is J\/4,
- put_attr(A,chr_translate_bootstrap1,v(K,D,E,[C],G,H,I))
+ L is E\/4,
+ put_attr(A,chr_translate_bootstrap1,v(L,F,G,[C],I,J,K))
)
;
put_attr(A,chr_translate_bootstrap1,v(4,[],[],[C],[],[],[]))
@@ -1987,19 +2005,19 @@ pair_all_with([A|B],C,[A-C|D]) :-
'attach_constraint_index/2'(B,C).
'detach_constraint_index/2'([],_).
'detach_constraint_index/2'([A|B],C) :-
- ( get_attr(A,chr_translate_bootstrap1,M) ->
- M=v(J,D,E,F,G,H,I),
- ( J/\4=:=4 ->
- 'chr sbag_del_element'(F,C,L),
+ ( get_attr(A,chr_translate_bootstrap1,D) ->
+ D=v(E,F,G,H,I,J,K),
+ ( E/\4=:=4 ->
+ 'chr sbag_del_element'(H,C,L),
( L==[] ->
- K is J/\ -5,
- ( K==0 ->
+ M is E/\ -5,
+ ( M==0 ->
del_attr(A,chr_translate_bootstrap1)
;
- put_attr(A,chr_translate_bootstrap1,v(K,D,E,[],G,H,I))
+ put_attr(A,chr_translate_bootstrap1,v(M,F,G,[],I,J,K))
)
;
- put_attr(A,chr_translate_bootstrap1,v(J,D,E,L,G,H,I))
+ put_attr(A,chr_translate_bootstrap1,v(E,F,G,L,I,J,K))
)
;
true
@@ -2010,13 +2028,13 @@ pair_all_with([A|B],C,[A-C|D]) :-
'detach_constraint_index/2'(B,C).
'attach_max_constraint_index/1'([],_).
'attach_max_constraint_index/1'([A|B],C) :-
- ( get_attr(A,chr_translate_bootstrap1,L) ->
- L=v(J,D,E,F,G,H,I),
- ( J/\8=:=8 ->
- put_attr(A,chr_translate_bootstrap1,v(J,D,E,F,[C|G],H,I))
+ ( get_attr(A,chr_translate_bootstrap1,D) ->
+ D=v(E,F,G,H,I,J,K),
+ ( E/\8=:=8 ->
+ put_attr(A,chr_translate_bootstrap1,v(E,F,G,H,[C|I],J,K))
;
- K is J\/8,
- put_attr(A,chr_translate_bootstrap1,v(K,D,E,F,[C],H,I))
+ L is E\/8,
+ put_attr(A,chr_translate_bootstrap1,v(L,F,G,H,[C],J,K))
)
;
put_attr(A,chr_translate_bootstrap1,v(8,[],[],[],[C],[],[]))
@@ -2024,19 +2042,19 @@ pair_all_with([A|B],C,[A-C|D]) :-
'attach_max_constraint_index/1'(B,C).
'detach_max_constraint_index/1'([],_).
'detach_max_constraint_index/1'([A|B],C) :-
- ( get_attr(A,chr_translate_bootstrap1,M) ->
- M=v(J,D,E,F,G,H,I),
- ( J/\8=:=8 ->
- 'chr sbag_del_element'(G,C,L),
+ ( get_attr(A,chr_translate_bootstrap1,D) ->
+ D=v(E,F,G,H,I,J,K),
+ ( E/\8=:=8 ->
+ 'chr sbag_del_element'(I,C,L),
( L==[] ->
- K is J/\ -9,
- ( K==0 ->
+ M is E/\ -9,
+ ( M==0 ->
del_attr(A,chr_translate_bootstrap1)
;
- put_attr(A,chr_translate_bootstrap1,v(K,D,E,F,[],H,I))
+ put_attr(A,chr_translate_bootstrap1,v(M,F,G,H,[],J,K))
)
;
- put_attr(A,chr_translate_bootstrap1,v(J,D,E,F,L,H,I))
+ put_attr(A,chr_translate_bootstrap1,v(E,F,G,H,L,J,K))
)
;
true
@@ -2047,13 +2065,13 @@ pair_all_with([A|B],C,[A-C|D]) :-
'detach_max_constraint_index/1'(B,C).
'attach_target_module/1'([],_).
'attach_target_module/1'([A|B],C) :-
- ( get_attr(A,chr_translate_bootstrap1,L) ->
- L=v(J,D,E,F,G,H,I),
- ( J/\16=:=16 ->
- put_attr(A,chr_translate_bootstrap1,v(J,D,E,F,G,[C|H],I))
+ ( get_attr(A,chr_translate_bootstrap1,D) ->
+ D=v(E,F,G,H,I,J,K),
+ ( E/\16=:=16 ->
+ put_attr(A,chr_translate_bootstrap1,v(E,F,G,H,I,[C|J],K))
;
- K is J\/16,
- put_attr(A,chr_translate_bootstrap1,v(K,D,E,F,G,[C],I))
+ L is E\/16,
+ put_attr(A,chr_translate_bootstrap1,v(L,F,G,H,I,[C],K))
)
;
put_attr(A,chr_translate_bootstrap1,v(16,[],[],[],[],[C],[]))
@@ -2061,19 +2079,19 @@ pair_all_with([A|B],C,[A-C|D]) :-
'attach_target_module/1'(B,C).
'detach_target_module/1'([],_).
'detach_target_module/1'([A|B],C) :-
- ( get_attr(A,chr_translate_bootstrap1,M) ->
- M=v(J,D,E,F,G,H,I),
- ( J/\16=:=16 ->
- 'chr sbag_del_element'(H,C,L),
+ ( get_attr(A,chr_translate_bootstrap1,D) ->
+ D=v(E,F,G,H,I,J,K),
+ ( E/\16=:=16 ->
+ 'chr sbag_del_element'(J,C,L),
( L==[] ->
- K is J/\ -17,
- ( K==0 ->
+ M is E/\ -17,
+ ( M==0 ->
del_attr(A,chr_translate_bootstrap1)
;
- put_attr(A,chr_translate_bootstrap1,v(K,D,E,F,G,[],I))
+ put_attr(A,chr_translate_bootstrap1,v(M,F,G,H,I,[],K))
)
;
- put_attr(A,chr_translate_bootstrap1,v(J,D,E,F,G,L,I))
+ put_attr(A,chr_translate_bootstrap1,v(E,F,G,H,I,L,K))
)
;
true
@@ -2084,13 +2102,13 @@ pair_all_with([A|B],C,[A-C|D]) :-
'detach_target_module/1'(B,C).
'attach_attached/2'([],_).
'attach_attached/2'([A|B],C) :-
- ( get_attr(A,chr_translate_bootstrap1,L) ->
- L=v(J,D,E,F,G,H,I),
- ( J/\32=:=32 ->
- put_attr(A,chr_translate_bootstrap1,v(J,D,E,F,G,H,[C|I]))
+ ( get_attr(A,chr_translate_bootstrap1,D) ->
+ D=v(E,F,G,H,I,J,K),
+ ( E/\32=:=32 ->
+ put_attr(A,chr_translate_bootstrap1,v(E,F,G,H,I,J,[C|K]))
;
- K is J\/32,
- put_attr(A,chr_translate_bootstrap1,v(K,D,E,F,G,H,[C]))
+ L is E\/32,
+ put_attr(A,chr_translate_bootstrap1,v(L,F,G,H,I,J,[C]))
)
;
put_attr(A,chr_translate_bootstrap1,v(32,[],[],[],[],[],[C]))
@@ -2098,19 +2116,19 @@ pair_all_with([A|B],C,[A-C|D]) :-
'attach_attached/2'(B,C).
'detach_attached/2'([],_).
'detach_attached/2'([A|B],C) :-
- ( get_attr(A,chr_translate_bootstrap1,M) ->
- M=v(J,D,E,F,G,H,I),
- ( J/\32=:=32 ->
- 'chr sbag_del_element'(I,C,L),
+ ( get_attr(A,chr_translate_bootstrap1,D) ->
+ D=v(E,F,G,H,I,J,K),
+ ( E/\32=:=32 ->
+ 'chr sbag_del_element'(K,C,L),
( L==[] ->
- K is J/\ -33,
- ( K==0 ->
+ M is E/\ -33,
+ ( M==0 ->
del_attr(A,chr_translate_bootstrap1)
;
- put_attr(A,chr_translate_bootstrap1,v(K,D,E,F,G,H,[]))
+ put_attr(A,chr_translate_bootstrap1,v(M,F,G,H,I,J,[]))
)
;
- put_attr(A,chr_translate_bootstrap1,v(J,D,E,F,G,H,L))
+ put_attr(A,chr_translate_bootstrap1,v(E,F,G,H,I,J,L))
)
;
true
@@ -2120,77 +2138,77 @@ pair_all_with([A|B],C,[A-C|D]) :-
),
'detach_attached/2'(B,C).
attach_increment([],_).
-attach_increment([O|P],v(G,A,B,C,D,E,F)) :-
- 'chr not_locked'(O),
- ( get_attr(O,chr_translate_bootstrap1,D1) ->
- D1=v(N,H,I,J,K,L,M),
- sort(H,Q),
- 'chr merge_attributes'(A,Q,R),
- sort(I,S),
- 'chr merge_attributes'(B,S,T),
- sort(J,U),
- 'chr merge_attributes'(C,U,V),
- sort(K,W),
- 'chr merge_attributes'(D,W,X),
- sort(L,Y),
- 'chr merge_attributes'(E,Y,Z),
- sort(M,A1),
- 'chr merge_attributes'(F,A1,B1),
- C1 is G\/N,
- put_attr(O,chr_translate_bootstrap1,v(C1,R,T,V,X,Z,B1))
- ;
- put_attr(O,chr_translate_bootstrap1,v(G,A,B,C,D,E,F))
- ),
- attach_increment(P,v(G,A,B,C,D,E,F)).
-chr_translate_bootstrap1:attr_unify_hook(v(G,A,B,C,D,E,F),H1) :-
- sort(A,O),
- sort(B,P),
- sort(C,Q),
- sort(D,R),
- sort(E,S),
- sort(F,T),
- ( var(H1) ->
- ( get_attr(H1,chr_translate_bootstrap1,I1) ->
- I1=v(N,H,I,J,K,L,M),
- sort(H,U),
- 'chr merge_attributes'(O,U,V),
- sort(I,W),
- 'chr merge_attributes'(P,W,X),
- sort(J,Y),
- 'chr merge_attributes'(Q,Y,Z),
- sort(K,A1),
- 'chr merge_attributes'(R,A1,B1),
- sort(L,C1),
- 'chr merge_attributes'(S,C1,D1),
- sort(M,E1),
- 'chr merge_attributes'(T,E1,F1),
- G1 is G\/N,
- put_attr(H1,chr_translate_bootstrap1,v(G1,V,X,Z,B1,D1,F1)),
- 'chr run_suspensions_loop'([V,X,Z,B1,D1,F1])
- ;
- put_attr(H1,chr_translate_bootstrap1,v(G,O,P,Q,R,S,T)),
- 'chr run_suspensions_loop'([O,P,Q,R,S,T])
- )
- ;
- ( compound(H1) ->
- term_variables(H1,J1),
- attach_increment(J1,v(G,O,P,Q,R,S,T))
+attach_increment([A|B],v(C,D,E,F,G,H,I)) :-
+ 'chr not_locked'(A),
+ ( get_attr(A,chr_translate_bootstrap1,J) ->
+ J=v(K,L,M,N,O,P,Q),
+ sort(L,R),
+ 'chr merge_attributes'(D,R,S),
+ sort(M,T),
+ 'chr merge_attributes'(E,T,U),
+ sort(N,V),
+ 'chr merge_attributes'(F,V,W),
+ sort(O,X),
+ 'chr merge_attributes'(G,X,Y),
+ sort(P,Z),
+ 'chr merge_attributes'(H,Z,A1),
+ sort(Q,B1),
+ 'chr merge_attributes'(I,B1,C1),
+ D1 is C\/K,
+ put_attr(A,chr_translate_bootstrap1,v(D1,S,U,W,Y,A1,C1))
+ ;
+ put_attr(A,chr_translate_bootstrap1,v(C,D,E,F,G,H,I))
+ ),
+ attach_increment(B,v(C,D,E,F,G,H,I)).
+chr_translate_bootstrap1:attr_unify_hook(v(A,B,C,D,E,F,G),H) :-
+ sort(B,I),
+ sort(C,J),
+ sort(D,K),
+ sort(E,L),
+ sort(F,M),
+ sort(G,N),
+ ( var(H) ->
+ ( get_attr(H,chr_translate_bootstrap1,O) ->
+ O=v(P,Q,R,S,T,U,V),
+ sort(Q,W),
+ 'chr merge_attributes'(I,W,X),
+ sort(R,Y),
+ 'chr merge_attributes'(J,Y,Z),
+ sort(S,A1),
+ 'chr merge_attributes'(K,A1,B1),
+ sort(T,C1),
+ 'chr merge_attributes'(L,C1,D1),
+ sort(U,E1),
+ 'chr merge_attributes'(M,E1,F1),
+ sort(V,G1),
+ 'chr merge_attributes'(N,G1,H1),
+ I1 is A\/P,
+ put_attr(H,chr_translate_bootstrap1,v(I1,X,Z,B1,D1,F1,H1)),
+ 'chr run_suspensions_loop'([X,Z,B1,D1,F1,H1])
+ ;
+ put_attr(H,chr_translate_bootstrap1,v(A,I,J,K,L,M,N)),
+ 'chr run_suspensions_loop'([I,J,K,L,M,N])
+ )
+ ;
+ ( compound(H) ->
+ term_variables(H,J1),
+ attach_increment(J1,v(A,I,J,K,L,M,N))
;
true
),
- 'chr run_suspensions_loop'([O,P,Q,R,S,T])
+ 'chr run_suspensions_loop'([I,J,K,L,M,N])
).
constraint(A,B) :-
'constraint/2__0'(A,B,_).
'constraint/2__0'(A,B,C) :-
- 'chr via_1'(A,E),
- get_attr(E,chr_translate_bootstrap1,F),
- F=v(K,J,_,_,_,_,_),
- K/\1=:=1,
- ( 'chr sbag_member'(D,J),
- D=suspension(_,I,_,_,_,_,G,H),
+ 'chr via_1'(A,D),
+ get_attr(D,chr_translate_bootstrap1,E),
+ E=v(F,G,_,_,_,_,_),
+ F/\1=:=1,
+ ( 'chr sbag_member'(H,G),
+ H=suspension(_,I,_,_,_,_,J,K),
I=mutable(active),
- G==A ->
+ J==A ->
true
),
!,
@@ -2200,16 +2218,16 @@ constraint(A,B) :-
'chr remove_constraint_internal'(C,L),
'detach_constraint/2'(L,C)
),
- B=H.
+ B=K.
'constraint/2__0'(A,B,C) :-
- 'chr via_1'(B,E),
- get_attr(E,chr_translate_bootstrap1,F),
- F=v(K,J,_,_,_,_,_),
- K/\1=:=1,
- 'chr sbag_member'(D,J),
- D=suspension(_,I,_,_,_,_,G,H),
+ 'chr via_1'(B,D),
+ get_attr(D,chr_translate_bootstrap1,E),
+ E=v(F,G,_,_,_,_,_),
+ F/\1=:=1,
+ 'chr sbag_member'(H,G),
+ H=suspension(_,I,_,_,_,_,J,K),
I=mutable(active),
- H==B,
+ K==B,
!,
( var(C) ->
true
@@ -2217,7 +2235,7 @@ constraint(A,B) :-
'chr remove_constraint_internal'(C,L),
'detach_constraint/2'(L,C)
),
- A=G.
+ A=J.
'constraint/2__0'(A,B,C) :-
( var(C) ->
'chr insert_constraint_internal'(D,C,chr_translate_bootstrap1:'constraint/2__0'(A,B,C),constraint,[A,B])
@@ -2228,13 +2246,13 @@ constraint(A,B) :-
constraint_count(A) :-
'constraint_count/1__0'(A,_).
'constraint_count/1__0'(A,B) :-
- 'chr global_term_ref_1'(D),
- get_attr(D,chr_translate_bootstrap1,E),
- E=v(I,_,H,_,_,_,_),
- I/\2=:=2,
- 'chr sbag_member'(C,H),
- C=suspension(_,G,_,_,_,_,F),
- G=mutable(active),
+ 'chr default_store'(C),
+ get_attr(C,chr_translate_bootstrap1,D),
+ D=v(E,_,F,_,_,_,_),
+ E/\2=:=2,
+ 'chr sbag_member'(G,F),
+ G=suspension(_,H,_,_,_,_,I),
+ H=mutable(active),
!,
( var(B) ->
true
@@ -2242,7 +2260,7 @@ constraint_count(A) :-
'chr remove_constraint_internal'(B,J),
'detach_constraint_count/1'(J,B)
),
- A=F.
+ A=I.
'constraint_count/1__0'(A,B) :-
( var(B) ->
'chr insert_constraint_internal'(C,B,chr_translate_bootstrap1:'constraint_count/1__0'(A,B),constraint_count,[A])
@@ -2262,16 +2280,16 @@ constraint_index(A,B) :-
get_constraint_index(A,B) :-
'get_constraint_index/2__0'(A,B,_).
'get_constraint_index/2__0'(A,B,_) :-
- 'chr via_1'(A,D),
- get_attr(D,chr_translate_bootstrap1,E),
- E=v(J,_,_,I,_,_,_),
- J/\4=:=4,
- 'chr sbag_member'(C,I),
- C=suspension(_,H,_,_,_,_,F,G),
+ 'chr via_1'(A,C),
+ get_attr(C,chr_translate_bootstrap1,D),
+ D=v(E,_,_,F,_,_,_),
+ E/\4=:=4,
+ 'chr sbag_member'(G,F),
+ G=suspension(_,H,_,_,_,_,I,J),
H=mutable(active),
- F==A,
+ I==A,
!,
- B=G.
+ B=J.
'get_constraint_index/2__0'(_,_,_) :-
!,
fail.
@@ -2287,15 +2305,15 @@ max_constraint_index(A) :-
get_max_constraint_index(A) :-
'get_max_constraint_index/1__0'(A,_).
'get_max_constraint_index/1__0'(A,_) :-
- 'chr global_term_ref_1'(C),
- get_attr(C,chr_translate_bootstrap1,D),
- D=v(H,_,_,_,G,_,_),
- H/\8=:=8,
- 'chr sbag_member'(B,G),
- B=suspension(_,F,_,_,_,_,E),
- F=mutable(active),
+ 'chr default_store'(B),
+ get_attr(B,chr_translate_bootstrap1,C),
+ C=v(D,_,_,_,E,_,_),
+ D/\8=:=8,
+ 'chr sbag_member'(F,E),
+ F=suspension(_,G,_,_,_,_,H),
+ G=mutable(active),
!,
- A=E.
+ A=H.
'get_max_constraint_index/1__0'(_,_) :-
!,
fail.
@@ -2311,30 +2329,30 @@ target_module(A) :-
get_target_module(A) :-
'get_target_module/1__0'(A,_).
'get_target_module/1__0'(A,_) :-
- 'chr global_term_ref_1'(C),
- get_attr(C,chr_translate_bootstrap1,D),
- D=v(H,_,_,_,_,G,_),
- H/\16=:=16,
- 'chr sbag_member'(B,G),
- B=suspension(_,F,_,_,_,_,E),
- F=mutable(active),
+ 'chr default_store'(B),
+ get_attr(B,chr_translate_bootstrap1,C),
+ C=v(D,_,_,_,_,E,_),
+ D/\16=:=16,
+ 'chr sbag_member'(F,E),
+ F=suspension(_,G,_,_,_,_,H),
+ G=mutable(active),
!,
- A=E.
+ A=H.
'get_target_module/1__0'(A,_) :-
!,
A=user.
attached(A,B) :-
'attached/2__0'(A,B,_).
'attached/2__0'(A,_,B) :-
- 'chr via_1'(A,D),
- get_attr(D,chr_translate_bootstrap1,E),
- E=v(J,_,_,_,_,_,I),
- J/\32=:=32,
- 'chr sbag_member'(C,I),
- C=suspension(_,H,_,_,_,_,F,G),
+ 'chr via_1'(A,C),
+ get_attr(C,chr_translate_bootstrap1,D),
+ D=v(E,_,_,_,_,_,F),
+ E/\32=:=32,
+ 'chr sbag_member'(G,F),
+ G=suspension(_,H,_,_,_,_,I,J),
H=mutable(active),
- F==A,
- G==yes,
+ I==A,
+ J==yes,
!,
( var(B) ->
true
@@ -2346,26 +2364,26 @@ attached(A,B) :-
B==yes,
'chr via_1'(A,D),
get_attr(D,chr_translate_bootstrap1,E),
- E=v(G,_,_,_,_,_,F),
- G/\32=:=32,
+ E=v(F,_,_,_,_,_,G),
+ F/\32=:=32,
!,
( var(C) ->
'chr allocate_constraint'(chr_translate_bootstrap1:'attached/2__0'(A,B,C),C,attached,[A,B])
;
true
),
- 'attached/2__0__0'(F,A,B,C).
+ 'attached/2__0__0'(G,A,B,C).
'attached/2__0__0'([],A,B,C) :-
'attached/2__1'(A,B,C).
-'attached/2__0__0'([D|E],A,B,C) :-
- ( D=suspension(_,G,_,_,_,_,F,_),
- G=mutable(active),
- F==A ->
- 'chr remove_constraint_internal'(D,H),
- 'detach_attached/2'(H,D),
- 'attached/2__0__0'(E,A,B,C)
+'attached/2__0__0'([A|B],C,D,E) :-
+ ( A=suspension(_,F,_,_,_,_,G,_),
+ F=mutable(active),
+ G==C ->
+ 'chr remove_constraint_internal'(A,H),
+ 'detach_attached/2'(H,A),
+ 'attached/2__0__0'(B,C,D,E)
;
- 'attached/2__0__0'(E,A,B,C)
+ 'attached/2__0__0'(B,C,D,E)
).
'attached/2__0'(A,B,C) :-
( var(C) ->
@@ -2375,15 +2393,15 @@ attached(A,B) :-
),
'attached/2__1'(A,B,C).
'attached/2__1'(A,_,B) :-
- 'chr via_1'(A,D),
- get_attr(D,chr_translate_bootstrap1,E),
- E=v(J,_,_,_,_,_,I),
- J/\32=:=32,
- 'chr sbag_member'(C,I),
- C=suspension(_,H,_,_,_,_,F,G),
+ 'chr via_1'(A,C),
+ get_attr(C,chr_translate_bootstrap1,D),
+ D=v(E,_,_,_,_,_,F),
+ E/\32=:=32,
+ 'chr sbag_member'(G,F),
+ G=suspension(_,H,_,_,_,_,I,J),
H=mutable(active),
- F==A,
- G==no,
+ I==A,
+ J==no,
!,
( var(B) ->
true
@@ -2395,35 +2413,35 @@ attached(A,B) :-
B==no,
'chr via_1'(A,D),
get_attr(D,chr_translate_bootstrap1,E),
- E=v(G,_,_,_,_,_,F),
- G/\32=:=32,
+ E=v(F,_,_,_,_,_,G),
+ F/\32=:=32,
!,
- 'attached/2__1__0'(F,A,B,C).
+ 'attached/2__1__0'(G,A,B,C).
'attached/2__1__0'([],A,B,C) :-
'attached/2__2'(A,B,C).
-'attached/2__1__0'([D|E],A,B,C) :-
- ( D=suspension(_,G,_,_,_,_,F,_),
- G=mutable(active),
- F==A ->
- 'chr remove_constraint_internal'(D,H),
- 'detach_attached/2'(H,D),
- 'attached/2__1__0'(E,A,B,C)
+'attached/2__1__0'([A|B],C,D,E) :-
+ ( A=suspension(_,F,_,_,_,_,G,_),
+ F=mutable(active),
+ G==C ->
+ 'chr remove_constraint_internal'(A,H),
+ 'detach_attached/2'(H,A),
+ 'attached/2__1__0'(B,C,D,E)
;
- 'attached/2__1__0'(E,A,B,C)
+ 'attached/2__1__0'(B,C,D,E)
).
'attached/2__1'(A,B,C) :-
'attached/2__2'(A,B,C).
'attached/2__2'(A,B,C) :-
B==maybe,
- 'chr via_1'(A,E),
- get_attr(E,chr_translate_bootstrap1,F),
- F=v(K,_,_,_,_,_,J),
- K/\32=:=32,
- ( 'chr sbag_member'(D,J),
- D=suspension(_,I,_,_,_,_,G,H),
+ 'chr via_1'(A,D),
+ get_attr(D,chr_translate_bootstrap1,E),
+ E=v(F,_,_,_,_,_,G),
+ F/\32=:=32,
+ ( 'chr sbag_member'(H,G),
+ H=suspension(_,I,_,_,_,_,J,K),
I=mutable(active),
- G==A,
- H==maybe ->
+ J==A,
+ K==maybe ->
true
),
!,
@@ -2439,16 +2457,16 @@ attached(A,B) :-
is_attached(A) :-
'is_attached/1__0'(A,_).
'is_attached/1__0'(A,_) :-
- 'chr via_1'(A,C),
- get_attr(C,chr_translate_bootstrap1,D),
- D=v(I,_,_,_,_,_,H),
- I/\32=:=32,
- 'chr sbag_member'(B,H),
- B=suspension(_,G,_,_,_,_,E,F),
+ 'chr via_1'(A,B),
+ get_attr(B,chr_translate_bootstrap1,C),
+ C=v(D,_,_,_,_,_,E),
+ D/\32=:=32,
+ 'chr sbag_member'(F,E),
+ F=suspension(_,G,_,_,_,_,H,I),
G=mutable(active),
- E==A,
+ H==A,
!,
- ( F==no ->
+ ( I==no ->
fail
;
true
@@ -2458,27 +2476,27 @@ is_attached(A) :-
chr_clear :-
'chr_clear/0__0'(_).
'chr_clear/0__0'(A) :-
- 'chr global_term_ref_1'(B),
+ 'chr default_store'(B),
get_attr(B,chr_translate_bootstrap1,C),
- C=v(E,D,_,_,_,_,_),
- E/\1=:=1,
+ C=v(D,E,_,_,_,_,_),
+ D/\1=:=1,
!,
( var(A) ->
'chr allocate_constraint'(chr_translate_bootstrap1:'chr_clear/0__0'(A),A,chr_clear,[])
;
true
),
- 'chr_clear/0__0__0'(D,A).
+ 'chr_clear/0__0__0'(E,A).
'chr_clear/0__0__0'([],A) :-
'chr_clear/0__1'(A).
-'chr_clear/0__0__0'([B|C],A) :-
- ( B=suspension(_,D,_,_,_,_,_,_),
+'chr_clear/0__0__0'([A|B],C) :-
+ ( A=suspension(_,D,_,_,_,_,_,_),
D=mutable(active) ->
- 'chr remove_constraint_internal'(B,E),
- 'detach_constraint/2'(E,B),
- 'chr_clear/0__0__0'(C,A)
+ 'chr remove_constraint_internal'(A,E),
+ 'detach_constraint/2'(E,A),
+ 'chr_clear/0__0__0'(B,C)
;
- 'chr_clear/0__0__0'(C,A)
+ 'chr_clear/0__0__0'(B,C)
).
'chr_clear/0__0'(A) :-
( var(A) ->
@@ -2488,102 +2506,102 @@ chr_clear :-
),
'chr_clear/0__1'(A).
'chr_clear/0__1'(A) :-
- 'chr global_term_ref_1'(B),
+ 'chr default_store'(B),
get_attr(B,chr_translate_bootstrap1,C),
- C=v(E,_,D,_,_,_,_),
- E/\2=:=2,
+ C=v(D,_,E,_,_,_,_),
+ D/\2=:=2,
!,
- 'chr_clear/0__1__0'(D,A).
+ 'chr_clear/0__1__0'(E,A).
'chr_clear/0__1__0'([],A) :-
'chr_clear/0__2'(A).
-'chr_clear/0__1__0'([B|C],A) :-
- ( B=suspension(_,D,_,_,_,_,_),
+'chr_clear/0__1__0'([A|B],C) :-
+ ( A=suspension(_,D,_,_,_,_,_),
D=mutable(active) ->
- 'chr remove_constraint_internal'(B,E),
- 'detach_constraint_count/1'(E,B),
- 'chr_clear/0__1__0'(C,A)
+ 'chr remove_constraint_internal'(A,E),
+ 'detach_constraint_count/1'(E,A),
+ 'chr_clear/0__1__0'(B,C)
;
- 'chr_clear/0__1__0'(C,A)
+ 'chr_clear/0__1__0'(B,C)
).
'chr_clear/0__1'(A) :-
'chr_clear/0__2'(A).
'chr_clear/0__2'(A) :-
- 'chr global_term_ref_1'(B),
+ 'chr default_store'(B),
get_attr(B,chr_translate_bootstrap1,C),
- C=v(E,_,_,D,_,_,_),
- E/\4=:=4,
+ C=v(D,_,_,E,_,_,_),
+ D/\4=:=4,
!,
- 'chr_clear/0__2__0'(D,A).
+ 'chr_clear/0__2__0'(E,A).
'chr_clear/0__2__0'([],A) :-
'chr_clear/0__3'(A).
-'chr_clear/0__2__0'([B|C],A) :-
- ( B=suspension(_,D,_,_,_,_,_,_),
+'chr_clear/0__2__0'([A|B],C) :-
+ ( A=suspension(_,D,_,_,_,_,_,_),
D=mutable(active) ->
- 'chr remove_constraint_internal'(B,E),
- 'detach_constraint_index/2'(E,B),
- 'chr_clear/0__2__0'(C,A)
+ 'chr remove_constraint_internal'(A,E),
+ 'detach_constraint_index/2'(E,A),
+ 'chr_clear/0__2__0'(B,C)
;
- 'chr_clear/0__2__0'(C,A)
+ 'chr_clear/0__2__0'(B,C)
).
'chr_clear/0__2'(A) :-
'chr_clear/0__3'(A).
'chr_clear/0__3'(A) :-
- 'chr global_term_ref_1'(B),
+ 'chr default_store'(B),
get_attr(B,chr_translate_bootstrap1,C),
- C=v(E,_,_,_,D,_,_),
- E/\8=:=8,
+ C=v(D,_,_,_,E,_,_),
+ D/\8=:=8,
!,
- 'chr_clear/0__3__0'(D,A).
+ 'chr_clear/0__3__0'(E,A).
'chr_clear/0__3__0'([],A) :-
'chr_clear/0__4'(A).
-'chr_clear/0__3__0'([B|C],A) :-
- ( B=suspension(_,D,_,_,_,_,_),
+'chr_clear/0__3__0'([A|B],C) :-
+ ( A=suspension(_,D,_,_,_,_,_),
D=mutable(active) ->
- 'chr remove_constraint_internal'(B,E),
- 'detach_max_constraint_index/1'(E,B),
- 'chr_clear/0__3__0'(C,A)
+ 'chr remove_constraint_internal'(A,E),
+ 'detach_max_constraint_index/1'(E,A),
+ 'chr_clear/0__3__0'(B,C)
;
- 'chr_clear/0__3__0'(C,A)
+ 'chr_clear/0__3__0'(B,C)
).
'chr_clear/0__3'(A) :-
'chr_clear/0__4'(A).
'chr_clear/0__4'(A) :-
- 'chr global_term_ref_1'(B),
+ 'chr default_store'(B),
get_attr(B,chr_translate_bootstrap1,C),
- C=v(E,_,_,_,_,D,_),
- E/\16=:=16,
+ C=v(D,_,_,_,_,E,_),
+ D/\16=:=16,
!,
- 'chr_clear/0__4__0'(D,A).
+ 'chr_clear/0__4__0'(E,A).
'chr_clear/0__4__0'([],A) :-
'chr_clear/0__5'(A).
-'chr_clear/0__4__0'([B|C],A) :-
- ( B=suspension(_,D,_,_,_,_,_),
+'chr_clear/0__4__0'([A|B],C) :-
+ ( A=suspension(_,D,_,_,_,_,_),
D=mutable(active) ->
- 'chr remove_constraint_internal'(B,E),
- 'detach_target_module/1'(E,B),
- 'chr_clear/0__4__0'(C,A)
+ 'chr remove_constraint_internal'(A,E),
+ 'detach_target_module/1'(E,A),
+ 'chr_clear/0__4__0'(B,C)
;
- 'chr_clear/0__4__0'(C,A)
+ 'chr_clear/0__4__0'(B,C)
).
'chr_clear/0__4'(A) :-
'chr_clear/0__5'(A).
'chr_clear/0__5'(A) :-
- 'chr global_term_ref_1'(B),
+ 'chr default_store'(B),
get_attr(B,chr_translate_bootstrap1,C),
- C=v(E,_,_,_,_,_,D),
- E/\32=:=32,
+ C=v(D,_,_,_,_,_,E),
+ D/\32=:=32,
!,
- 'chr_clear/0__5__0'(D,A).
+ 'chr_clear/0__5__0'(E,A).
'chr_clear/0__5__0'([],A) :-
'chr_clear/0__6'(A).
-'chr_clear/0__5__0'([B|C],A) :-
- ( B=suspension(_,D,_,_,_,_,_,_),
+'chr_clear/0__5__0'([A|B],C) :-
+ ( A=suspension(_,D,_,_,_,_,_,_),
D=mutable(active) ->
- 'chr remove_constraint_internal'(B,E),
- 'detach_attached/2'(E,B),
- 'chr_clear/0__5__0'(C,A)
+ 'chr remove_constraint_internal'(A,E),
+ 'detach_attached/2'(E,A),
+ 'chr_clear/0__5__0'(B,C)
;
- 'chr_clear/0__5__0'(C,A)
+ 'chr_clear/0__5__0'(B,C)
).
'chr_clear/0__5'(A) :-
'chr_clear/0__6'(A).
Index: chr_translate_bootstrap2.pl
===================================================================
RCS file: /cvs/pkgs/rpms/yap/F-11/chr_translate_bootstrap2.pl,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -p -r1.1 -r1.2
--- chr_translate_bootstrap2.pl 1 May 2006 10:55:44 -0000 1.1
+++ chr_translate_bootstrap2.pl 15 Jun 2009 20:46:22 -0000 1.2
@@ -1,23 +1,21 @@
/* Generated by CHR bootstrap compiler
From: chr_translate_bootstrap2.chr
- Date: [77,111,110,32,77,97,121,32,32,49,32,49,50,58,50,49,58,51,55,32,50,48,48,54,10]
+ Date: Mon Jun 15 21:43:47 2009
+
DO NOT EDIT. EDIT THE CHR FILE INSTEAD
*/
:-module(chr_translate,[chr_translate/2]).
:-use_module(chr_runtime).
-:-style_check(-singleton).
:-style_check(-discontiguous).
:-use_module(chr_runtime).
:-use_module(chr_hashtable_store).
-:-style_check(-singleton).
:-style_check(-discontiguous).
-:-use_module(library(lists)).
+:-use_module(library(lists),[append/3,append/2,member/2,delete/3,reverse/2,permutation/2]).
+:-use_module(library(ordsets)).
:-use_module(hprolog).
-:-use_module(library(assoc)).
:-use_module(pairlist).
-:-use_module(library(ordsets)).
:-use_module(a_star).
:-use_module(clean_code).
:-use_module(builtins).
@@ -42,7 +40,7 @@ chr_translate(A,B) :-
store_management_preds(C,H),
insert_declarations(E,I),
chr_module_declaration(J),
- append_lists([I,H,G,J],B)
+ append([I,H,G,J],B)
).
store_management_preds(A,B) :-
generate_attach_detach_a_constraint_all(A,C),
@@ -52,12 +50,16 @@ store_management_preds(A,B) :-
generate_extra_clauses(A,G),
generate_insert_delete_constraints(A,H),
generate_store_code(A,I),
- append_lists([C,D,E,F,G,H,I],B).
+ append([C,D,E,F,G,H,I],B).
+specific_declarations([(:-use_module(chr_runtime)),(:-use_module(chr_hashtable_store)),(:-style_check(-discontiguous))|A],A).
insert_declarations(A,B) :-
- ( A=[(:-module(C,D))|E] ->
- B=[(:-module(C,D)),(:-use_module(chr_runtime)),(:-use_module(chr_hashtable_store)),(:-style_check(-singleton)),(:-style_check(-discontiguous))|E]
+ specific_declarations(C,D),
+ ( A=[(:-module(E,F))|G] ->
+ B=[(:-module(E,F))|C],
+ D=G
;
- B=[(:-use_module(chr_runtime)),(:-use_module(chr_hashtable_store)),(:-style_check(-singleton)),(:-style_check(-discontiguous))|A]
+ B=C,
+ D=A
).
chr_module_declaration(A) :-
get_target_module(B),
@@ -106,25 +108,31 @@ partition_clauses([A|B],C,D,E) :-
E=I
)
;
- ( A=option(L,M) ->
+ ( A=(:-chr_option(L,M)) ->
handle_option(L,M),
C=G,
D=H,
E=I
)
;
+ ( A=(:-chr_type _) ->
+ C=G,
+ D=H,
+ E=I
+ )
+ ;
C=G,
D=H,
E=[A|I]
),
partition_clauses(B,G,H,I).
is_declaration(A,B) :-
- ( A=(:-C) ->
- true
+ A=(:-C),
+ (
+ C=..[chr_constraint,D]
;
- A=C
+ C=..[chr_constraint,D]
),
- C=..[constraints,D],
conj2list(D,B).
parse_rule(A,B) :-
A=(C at D),
@@ -250,7 +258,7 @@ check_pragma(A,B) :-
!,
B=pragma(_,_,_,_,E),
pragma_unique(E,C,D),
- format('CHR compiler WARNING: undocument pragma ~w in ~@.
+ format('CHR compiler WARNING: undocumented pragma ~w in ~@.
',[A,format_rule(B)]),
format(' `--> Only use this pragma if you know what you are doing.
',[]).
@@ -386,7 +394,7 @@ handle_option(A,B) :-
option_definition(optimize,experimental,A) :-
A=[unique_analyse_optimise-on,check_unnecessary_active-full,reorder_heads-on,set_semantics_rule-on,check_attachments-on,guard_via_reschedule-on].
option_definition(optimize,full,A) :-
- A=[unique_analyse_optimise-on,check_unnecessary_active-full,reorder_heads-on,set_semantics_rule-on,check_attachments-on,guard_via_reschedule-on].
+ A=[unique_analyse_optimise-off,check_unnecessary_active-full,reorder_heads-on,set_semantics_rule-on,check_attachments-on,guard_via_reschedule-on].
option_definition(optimize,sicstus,A) :-
A=[unique_analyse_optimise-off,check_unnecessary_active-simplification,reorder_heads-off,set_semantics_rule-off,check_attachments-off,guard_via_reschedule-off].
option_definition(optimize,off,A) :-
@@ -415,6 +423,7 @@ option_definition(debug,off,A) :-
A=[debugable-off].
option_definition(type_definition,_,[]).
option_definition(type_declaration,_,[]).
+option_definition(verbosity,_,[]).
init_chr_pp_flags :-
chr_pp_flag_definition(A,[B|_]),
set_chr_pp_flag(A,B),
@@ -454,7 +463,7 @@ generate_attach_detach_a_constraint_all(
E=[]
),
generate_attach_detach_a_constraint_all(B,F),
- append_lists([D,E,F],C).
+ append([D,E,F],C).
generate_attach_a_constraint(A,[B,C]) :-
generate_attach_a_constraint_empty_list(A,B),
get_max_constraint_index(D),
@@ -491,13 +500,13 @@ generate_attach_body_n(A/B,C,D,E) :-
or_pattern(F,G),
get_max_constraint_index(H),
make_attr(H,I,J,K),
- nth(F,J,L),
- substitute(L,J,[D|L],M),
+ nth1(F,J,L),
+ substitute_eq(L,J,[D|L],M),
make_attr(H,I,M,N),
- substitute(L,J,[D],O),
+ substitute_eq(L,J,[D],O),
make_attr(H,P,O,Q),
- copy_term(J,R),
- nth(F,R,[D]),
+ copy_term_nat(J,R),
+ nth1(F,R,[D]),
delete(R,[D],S),
set_elems(S,[]),
make_attr(H,G,R,T),
@@ -541,10 +550,10 @@ generate_detach_body_n(A/B,C,D,E) :-
and_pattern(F,H),
get_max_constraint_index(I),
make_attr(I,J,K,L),
- nth(F,K,M),
- substitute(M,K,[],N),
+ nth1(F,K,M),
+ substitute_eq(M,K,[],N),
make_attr(I,O,N,P),
- substitute(M,K,Q,R),
+ substitute_eq(M,K,Q,R),
make_attr(I,J,R,S),
get_target_module(T),
E=(get_attr(C,T,U)->U=L,(J/\G=:=G->'chr sbag_del_element'(M,D,Q),(Q==[]->O is J/\H,(O==0->del_attr(C,T);put_attr(C,T,P));put_attr(C,T,S));true);true).
@@ -611,13 +620,13 @@ generate_extra_clauses(A,[B,C,D,E,F]) :-
generate_allocate_clause(D),
generate_insert_constraint_internal(F).
generate_remove_clause(A) :-
- A=(remove_constraint_internal(B,C,D):-arg(2,B,E),E=mutable(F),'chr update_mutable'(removed,E),(compound(F)->C=[],D=no;F==removed->C=[],D=no;D=yes,chr_indexed_variables(B,C))).
+ A=(remove_constraint_internal(B,C,D):-arg(2,B,E),'chr get_mutable'(F,E),'chr update_mutable'(removed,E),(compound(F)->C=[],D=no;F==removed->C=[],D=no;D=yes,chr_indexed_variables(B,C))).
generate_activate_clause(A) :-
- A=(activate_constraint(B,C,D,E):-arg(2,D,F),F=mutable(G),'chr update_mutable'(active,F),(nonvar(E)->true;arg(4,D,H),H=mutable(I),E is I+1,'chr update_mutable'(E,H)),(compound(G)->term_variables(G,C),'chr none_locked'(C),B=yes;G==removed->chr_indexed_variables(D,C),B=yes;C=[],B=no)).
+ A=(activate_constraint(B,C,D,E):-arg(2,D,F),'chr get_mutable'(G,F),'chr update_mutable'(active,F),(nonvar(E)->true;arg(4,D,H),'chr get_mutable'(I,H),E is I+1,'chr update_mutable'(E,H)),(compound(G)->term_variables(G,C),'chr none_locked'(C),B=yes;G==removed->chr_indexed_variables(D,C),B=yes;C=[],B=no)).
generate_allocate_clause(A) :-
- A=(allocate_constraint(B,C,D,E):-C=..[suspension,F,G,B,H,I,D|E],H=mutable(0),'chr empty_history'(J),I=mutable(J),chr_indexed_variables(C,K),G=mutable(passive(K)),'chr gen_id'(F)).
+ A=(allocate_constraint(B,C,D,E):-C=..[suspension,F,G,B,H,I,D|E],'chr create_mutable'(0,H),'chr empty_history'(J),'chr create_mutable'(J,I),chr_indexed_variables(C,K),'chr create_mutable'(passive(K),G),'chr gen_id'(F)).
generate_insert_constraint_internal(A) :-
- A=(insert_constraint_internal(yes,B,C,D,E,F):-C=..[suspension,G,H,D,I,J,E|F],chr_indexed_variables(C,B),'chr none_locked'(B),H=mutable(active),I=mutable(0),J=mutable(K),'chr empty_history'(K),'chr gen_id'(G)).
+ A=(insert_constraint_internal(yes,B,C,D,E,F):-C=..[suspension,G,H,D,I,J,E|F],chr_indexed_variables(C,B),'chr none_locked'(B),'chr create_mutable'(active,H),'chr create_mutable'(0,I),'chr empty_history'(K),'chr create_mutable'(K,J),'chr gen_id'(G)).
global_indexed_variables_clause(A,B) :-
( forsome(C,A,chr_translate:may_trigger(C)) ->
D=(E=..[_,_,_,_,_,_,F|_],'$indexed_variables'(F,G))
@@ -730,12 +739,14 @@ generate_insert_constraint_body(default,
;
generate_attach_body_n(A,E,B,F)
),
- C=('chr global_term_ref_1'(E),F).
+ C=('chr default_store'(E),F).
generate_insert_constraint_body(multi_hash(A),B,C,D) :-
generate_multi_hash_insert_constraint_bodies(A,B,C,D).
generate_insert_constraint_body(global_ground,A,B,C) :-
global_ground_store_name(A,D),
- C=(nb_getval(D,E),b_setval(D,[B|E])).
+ make_get_store_goal(D,E,F),
+ make_update_store_goal(D,[B|E],G),
+ C=(F,G).
generate_insert_constraint_body(multi_store(A),B,C,D) :-
find_with_var_identity(E,[C],(member(F,A),chr_translate:generate_insert_constraint_body(F,B,C,E)),G),
list2conj(G,D).
@@ -743,7 +754,8 @@ generate_multi_hash_insert_constraint_bo
generate_multi_hash_insert_constraint_bodies([A|B],C,D,(E,F)) :-
multi_hash_store_name(C,A,G),
multi_hash_key(C,A,D,H,I),
- E=(H,nb_getval(G,J),insert_ht(J,I,D)),
+ make_get_store_goal(G,J,K),
+ E=(H,K,insert_ht(J,I,D)),
generate_multi_hash_insert_constraint_bodies(B,C,D,F).
generate_delete_constraint(A,B,C) :-
make_name('$delete_from_store_',B,D),
@@ -755,16 +767,18 @@ generate_delete_constraint_body(default,
get_max_constraint_index(D),
( D==1 ->
generate_detach_body_1(A,E,B,F),
- C=('chr global_term_ref_1'(E),F)
+ C=('chr default_store'(E),F)
;
generate_detach_body_n(A,E,B,F),
- C=('chr global_term_ref_1'(E),F)
+ C=('chr default_store'(E),F)
).
generate_delete_constraint_body(multi_hash(A),B,C,D) :-
generate_multi_hash_delete_constraint_bodies(A,B,C,D).
generate_delete_constraint_body(global_ground,A,B,C) :-
global_ground_store_name(A,D),
- C=(nb_getval(D,E),'chr sbag_del_element'(E,B,F),b_setval(D,F)).
+ make_get_store_goal(D,E,F),
+ make_update_store_goal(D,G,H),
+ C=(F,'chr sbag_del_element'(E,B,G),H).
generate_delete_constraint_body(multi_store(A),B,C,D) :-
find_with_var_identity(E,[C],(member(F,A),chr_translate:generate_delete_constraint_body(F,B,C,E)),G),
list2conj(G,D).
@@ -772,7 +786,8 @@ generate_multi_hash_delete_constraint_bo
generate_multi_hash_delete_constraint_bodies([A|B],C,D,(E,F)) :-
multi_hash_store_name(C,A,G),
multi_hash_key(C,A,D,H,I),
- E=(H,nb_getval(G,J),delete_ht(J,I,D)),
+ make_get_store_goal(G,J,K),
+ E=(H,K,delete_ht(J,I,D)),
generate_multi_hash_delete_constraint_bodies(B,C,D,F).
generate_delete_constraint_call(A,B,C) :-
make_name('$delete_from_store_',A,D),
@@ -803,19 +818,22 @@ multi_store_generate_store_code([A|B],C,
multi_hash_store_initialisations([],_,A,A).
multi_hash_store_initialisations([A|B],C,D,E) :-
multi_hash_store_name(C,A,F),
- D=[(:-new_ht(G),nb_setval(F,G))|H],
- multi_hash_store_initialisations(B,C,H,E).
+ make_init_store_goal(F,G,H),
+ D=[(:-new_ht(G),H)|I],
+ multi_hash_store_initialisations(B,C,I,E).
global_ground_store_initialisation(A,B,C) :-
global_ground_store_name(A,D),
- B=[(:-nb_setval(D,[]))|C].
+ make_init_store_goal(D,[],E),
+ B=[(:-E)|C].
multi_hash_via_lookups([],_,A,A).
multi_hash_via_lookups([A|B],C,D,E) :-
multi_hash_via_lookup_name(C,A,F),
G=..[F,H,I],
multi_hash_store_name(C,A,J),
- K=(nb_getval(J,L),lookup_ht(L,H,I)),
- D=[(G:-K)|M],
- multi_hash_via_lookups(B,C,M,E).
+ make_get_store_goal(J,K,L),
+ M=(L,lookup_ht(K,H,I)),
+ D=[(G:-M)|N],
+ multi_hash_via_lookups(B,C,N,E).
multi_hash_via_lookup_name(A/B,C,D) :-
( integer(C) ->
E=C
@@ -886,7 +904,7 @@ enumerate_store_body(default,A,B,C) :-
get_constraint_index(A,D),
get_target_module(E),
get_max_constraint_index(F),
- G=('chr global_term_ref_1'(H),get_attr(H,E,I)),
+ G=('chr default_store'(H),get_attr(H,E,I)),
( F>1 ->
J is D+1,
K=(arg(J,I,L),'chr sbag_member'(B,L))
@@ -898,12 +916,14 @@ enumerate_store_body(multi_hash([A|_]),B
multi_hash_enumerate_store_body(A,B,C,D).
enumerate_store_body(global_ground,A,B,C) :-
global_ground_store_name(A,D),
- C=(nb_getval(D,E),'chr sbag_member'(B,E)).
+ make_get_store_goal(D,E,F),
+ C=(F,'chr sbag_member'(B,E)).
enumerate_store_body(multi_store(A),B,C,D) :-
once((member(E,A),enumerate_store_body(E,B,C,D))).
multi_hash_enumerate_store_body(A,B,C,D) :-
multi_hash_store_name(B,A,E),
- D=(nb_getval(E,F),value_ht(F,C)).
+ make_get_store_goal(E,F,G),
+ D=(G,value_ht(F,C)).
check_attachments(A) :-
( chr_pp_flag(check_attachments,on) ->
check_constraint_attachments(A)
@@ -1084,35 +1104,6 @@ gen_uncond_attach_goal(A,B,C,D) :-
),
generate_insert_constraint_call(A,B,H),
C=(activate_constraint(I,G,B,D),(I==yes->H,F;true)).
-occurrences_code(A,B,C,D,E,F,G) :-
- ( A>B ->
- E=D,
- F=G
- ;
- occurrence_code(A,C,D,H,F,I),
- J is A+1,
- occurrences_code(J,B,C,H,E,I,G)
- ).
-occurrences_code(A,B,C,D,E,F) :-
- get_occurrence(B,A,G,H),
- ( is_passive(G,H) ->
- D=C,
- E=F
- ;
- get_rule(G,I),
- I=pragma(rule(J,K,_,_),ids(L,M),_,_,_),
- ( select2(L,J,H,N,O,P) ->
- D=C,
- head1_code(N,P,O,I,B,C,E,F)
- ;
- ( select2(M,K,H,Q,R,S) ->
- length(S,T),
- head2_code(Q,S,R,I,T,B,C,E,U),
- inc_id(C,D),
- gen_alloc_inc_clause(B,C,U,F)
- )
- )
- ).
rules_code([],_,A,A,B,B).
rules_code([A|B],C,D,E,F,G) :-
rule_code(A,C,D,H,F,I),
@@ -1338,7 +1329,7 @@ unique_analyse_optimise_main([A|B],C,D,[
apply_unique_patterns_to_constraints(O,Q,H,S),
globalize_unique_pragmas(R,M),
globalize_unique_pragmas(S,M),
- append_lists([R,S,K],T),
+ append([R,S,K],T),
E=pragma(I,J,T,L,M),
U is C+1,
unique_analyse_optimise_main(B,U,H,F).
@@ -1358,16 +1349,14 @@ apply_unique_patterns_to_constraints([A|
apply_unique_pattern(A,B,C,D) :-
C=unique(E,F),
subsumes(A,E,G),
- ( setof(H,I^J^K^(member(I,F),lookup_eq(G,I,J),term_variables(J,K),member(H,K)),L) ->
- true
- ;
- L=[]
- ),
- D=unique(B,L).
+ find_with_var_identity(H,G,(member(I,F),lookup_eq(G,I,J),term_variables(J,K),member(H,K)),L),
+ sort(L,M),
+ N=M,
+ D=unique(B,N).
subsumes(A,B,C) :-
- empty_assoc(D),
+ empty_ds(D),
subsumes_aux(A,B,D,E),
- assoc_to_list(E,F),
+ ds_to_list(E,F),
build_unifier(F,C).
subsumes_aux(A,B,C,D) :-
( compound(B),
@@ -1381,13 +1370,13 @@ subsumes_aux(A,B,C,D) :-
)
;
( var(B),
- get_assoc(A,C,G) ->
+ get_ds(A,C,G) ->
G==B,
D=C
)
;
var(B),
- put_assoc(A,C,B,D)
+ put_ds(A,C,B,D)
).
subsumes_aux(0,_,_,A,A) :-
!.
@@ -1416,11 +1405,10 @@ discover_unique_pattern(A,B,C) :-
term_variables(I,L),
select_pragma_unique_variables(K,L,M),
N=unique(I,M),
- copy_term(N,C),
- ( prolog_flag(verbose,O),
- O==yes ->
+ copy_term_nat(N,C),
+ ( verbosity_on ->
format('Found unique pattern ~w in rule ~d~@
-',[C,B,(E=yes(P)->write([58,32]),write(P);true)])
+',[C,B,(E=yes(O)->write([58,32]),write(O);true)])
;
true
).
@@ -1611,7 +1599,7 @@ rest_heads_retrieval_and_matching_n([A|B
;
get_constraint_index(Q/R,X),
make_attr(V,_,Y,T),
- nth(X,Y,W)
+ nth1(X,Y,W)
)
;
lookup_passive_head(S,A,[H|F],N,I,W),
@@ -1621,7 +1609,7 @@ rest_heads_retrieval_and_matching_n([A|B
head_arg_matches(A1,N,B1,C1),
D1=..[suspension,_,E1,_,_,_,_|Z],
different_from_other_susps(A,L,F,G,F1),
- create_get_mutable(active,E1,G1),
+ create_get_mutable_ref(active,E1,G1),
H1=('chr sbag_member'(L,W),L=D1,G1,F1,B1),
( member(unique(C,I1),E),
check_unique_keys(I1,N) ->
@@ -1647,7 +1635,7 @@ check_unique_keys([A|B],C) :-
lookup_eq(C,A,_),
check_unique_keys(B,C).
different_from_other_susps(A,B,C,D,E) :-
- ( bagof(F,G^(nth(G,C,H),\+A\=H,nth(G,D,I),F=(B\==I)),J) ->
+ ( bagof(F,G^(nth1(G,C,H),\+A\=H,nth1(G,D,I),F=(B\==I)),J) ->
list2conj(J,E)
;
E=true
@@ -1676,7 +1664,7 @@ common_variables(A,B,C) :-
gen_get_mod_constraints(A,B,C) :-
get_target_module(D),
( A==[] ->
- B=('chr global_term_ref_1'(E),get_attr(E,D,F),F=C)
+ B=('chr default_store'(E),get_attr(E,D,F),F=C)
;
( A=[G] ->
H='chr via_1'(G,I)
@@ -1701,7 +1689,7 @@ guard_body_copies2(A,B,C,D) :-
term_variables(I,N),
term_variables(L,O),
( chr_pp_flag(guard_locks,on),
- bagof('chr lock'(P)-'chr unlock'(P),Q^(member(Q,N),lookup_eq(B,Q,P),memberchk_eq(P,O)),R) ->
+ find_with_var_identity('chr lock'(P)-'chr unlock'(P),B,(member(Q,N),lookup_eq(B,Q,P),memberchk_eq(P,O)),R) ->
once(pairup(S,T,R))
;
S=[],
@@ -1864,7 +1852,7 @@ simpagation_head2_worker_body(A,B,C,D,E,
head_info(B,B1,C1,_,_,D1),
head_arg_matches(D1,S,E1,F1),
G1=..[suspension,_,H1,_,_,_,_|C1],
- create_get_mutable(active,H1,I1),
+ create_get_mutable_ref(active,H1,I1),
J1=(N=G1,I1),
(
(
@@ -1917,8 +1905,8 @@ simpagation_head2_worker_body(A,B,C,D,E,
gen_state_cond_call(A,B,C,D,E) :-
length(F,B),
G=..[suspension,_,H,_,I,_,_|F],
- create_get_mutable(active,H,J),
- create_get_mutable(D,I,K),
+ create_get_mutable_ref(active,H,J),
+ create_get_mutable_ref(D,I,K),
E=(A=G,J,K->'chr update_mutable'(inactive,H),C;true).
simpagation_head2_worker_end(A,B,C/D,E,F,G) :-
head_info(A,D,_,_,H,I),
@@ -1993,7 +1981,7 @@ propagation_body(A,B,C,D,E,F/G,H,I,J) :-
functor(A,_,S),
gen_vars(S,T),
U=..[suspension,_,V,_,_,_,_|T],
- create_get_mutable(active,V,W),
+ create_get_mutable_ref(active,V,W),
X=(Q=U,W),
Y=[[Q|R]|M],
build_head(F,G,H,Y,Z),
@@ -2087,7 +2075,7 @@ propagation_accumulator([A|B],[C|D],E,F/
head_arg_matches(T,N,U,V),
W=..[suspension,_,X,_,_,_,_|R],
different_from_other_susps(C,S,D,O,Y),
- create_get_mutable(active,X,Z),
+ create_get_mutable_ref(active,X,Z),
A1=(S=W,Z,Y,U),
lookup_passive_head(A,[C|D],V,B1,C1),
inc_id(H,D1),
@@ -2192,7 +2180,7 @@ order_score_vars([A|B],C,D,E,F) :-
G=E
),
order_score_vars(B,C,D,G,F).
-create_get_mutable(A,B,C) :-
+create_get_mutable_ref(A,B,C) :-
C=(B=mutable(A)).
gen_var(_).
gen_vars(A,B) :-
@@ -2213,13 +2201,13 @@ build_head(A,B,C,D,E) :-
E=..[F|D].
buildName(A,B,C,D) :-
atom_concat(A,/,E),
- atom_concat(E,B,F),
+ atomic_concat(E,B,F),
buildName_(C,F,D).
buildName_([],A,A).
buildName_([A|B],C,D) :-
buildName_(B,C,E),
atom_concat(E,'__',F),
- atom_concat(F,A,D).
+ atomic_concat(F,A,D).
vars_susp(A,B,C,D) :-
length(B,A),
append(B,[C],D).
@@ -2267,7 +2255,20 @@ atom_concat_list([A],A) :-
!.
atom_concat_list([A|B],C) :-
atom_concat_list(B,D),
- atom_concat(A,D,C).
+ atomic_concat(A,D,C).
+atomic_concat(A,B,C) :-
+ make_atom(A,D),
+ make_atom(B,E),
+ atom_concat(D,E,C).
+make_atom(A,B) :-
+ ( atom(A) ->
+ B=A
+ ;
+ ( number(A) ->
+ number_codes(A,C),
+ atom_codes(B,C)
+ )
+ ).
make_name(A,B/C,D) :-
atom_concat_list([A,B,/,C],D).
set_elems([],_).
@@ -2296,7 +2297,7 @@ lookup_passive_head(default,A,B,C,D,E) :
functor(A,I,J),
get_constraint_index(I/J,K),
make_attr(H,_,L,F),
- nth(K,L,E)
+ nth1(K,L,E)
).
lookup_passive_head(multi_hash(A),B,_,C,D,E) :-
once((member(F,A),multi_hash_key_args(F,B,G),translate(G,C,H))),
@@ -2312,7 +2313,7 @@ lookup_passive_head(multi_hash(A),B,_,C,
lookup_passive_head(global_ground,A,_,_,B,C) :-
functor(A,D,E),
global_ground_store_name(D/E,F),
- B=nb_getval(F,C),
+ make_get_store_goal(F,C,B),
update_store_type(D/E,global_ground).
lookup_passive_head(multi_store(A),B,C,D,E,F) :-
once((member(G,A),lookup_passive_head(G,B,C,D,E,F))).
@@ -2347,12 +2348,15 @@ validate_store_type_assumptions([]).
validate_store_type_assumptions([A|B]) :-
validate_store_type_assumption(A),
validate_store_type_assumptions(B).
+verbosity_on :-
+ prolog_flag(verbose,A),
+ A==yes.
attr_unify_hook(_,_) :-
write('ERROR: Unexpected triggering of attr_unify_hook/2 in module '),
writeln(chr_translate).
remove_constraint_internal(A,B,C) :-
arg(2,A,D),
- D=mutable(E),
+ 'chr get_mutable'(E,D),
'chr update_mutable'(removed,D),
( compound(E) ->
B=[],
@@ -2368,13 +2372,13 @@ remove_constraint_internal(A,B,C) :-
).
activate_constraint(A,B,C,D) :-
arg(2,C,E),
- E=mutable(F),
+ 'chr get_mutable'(F,E),
'chr update_mutable'(active,E),
( nonvar(D) ->
true
;
arg(4,C,G),
- G=mutable(H),
+ 'chr get_mutable'(H,G),
D is H+1,
'chr update_mutable'(D,G)
),
@@ -2393,21 +2397,21 @@ activate_constraint(A,B,C,D) :-
).
allocate_constraint(A,B,C,D) :-
B=..[suspension,E,F,A,G,H,C|D],
- G=mutable(0),
+ 'chr create_mutable'(0,G),
'chr empty_history'(I),
- H=mutable(I),
+ 'chr create_mutable'(I,H),
chr_indexed_variables(B,J),
- F=mutable(passive(J)),
+ 'chr create_mutable'(passive(J),F),
'chr gen_id'(E).
chr_indexed_variables(_,[]).
insert_constraint_internal(yes,A,B,C,D,E) :-
B=..[suspension,F,G,C,H,I,D|E],
chr_indexed_variables(B,A),
'chr none_locked'(A),
- G=mutable(active),
- H=mutable(0),
- I=mutable(J),
+ 'chr create_mutable'(active,G),
+ 'chr create_mutable'(0,H),
'chr empty_history'(J),
+ 'chr create_mutable'(J,I),
'chr gen_id'(F).
'$insert_in_store_constraint/2'(A) :-
arg(8,A,B),
@@ -2573,19 +2577,14 @@ insert_constraint_internal(yes,A,B,C,D,E
'chr sbag_del_element'(D,A,E),
b_setval('$chr_store_global_ground_chr_translate:allocation_occurrence/2',E).
'$insert_in_store_rule/2'(A) :-
- nb_getval('$chr_store_global_ground_chr_translate:rule/2',B),
- b_setval('$chr_store_global_ground_chr_translate:rule/2',[A|B]),
- arg(7,A,C),
- nb_getval('$chr_store_multi_hash_chr_translate:rule/2-1',D),
- insert_ht(D,C,A),
+ arg(7,A,B),
+ nb_getval('$chr_store_multi_hash_chr_translate:rule/2-1',C),
+ insert_ht(C,B,A),
true.
'$delete_from_store_rule/2'(A) :-
- nb_getval('$chr_store_global_ground_chr_translate:rule/2',B),
- 'chr sbag_del_element'(B,A,C),
- b_setval('$chr_store_global_ground_chr_translate:rule/2',C),
- arg(7,A,D),
- nb_getval('$chr_store_multi_hash_chr_translate:rule/2-1',E),
- delete_ht(E,D,A),
+ arg(7,A,B),
+ nb_getval('$chr_store_multi_hash_chr_translate:rule/2-1',C),
+ delete_ht(C,B,A),
true.
'$enumerate_suspensions'(A) :-
(
@@ -2640,8 +2639,8 @@ insert_constraint_internal(yes,A,B,C,D,E
nb_getval('$chr_store_multi_hash_chr_translate:allocation_occurrence/2-1',R),
value_ht(R,A)
;
- nb_getval('$chr_store_global_ground_chr_translate:rule/2',S),
- 'chr sbag_member'(A,S)
+ nb_getval('$chr_store_multi_hash_chr_translate:rule/2-1',S),
+ value_ht(S,A)
).
:-new_ht(A),nb_setval('$chr_store_multi_hash_chr_translate:constraint/2-2',A).
'$via1_multi_hash_constraint/2-2'(A,B) :-
@@ -2700,7 +2699,6 @@ insert_constraint_internal(yes,A,B,C,D,E
nb_getval('$chr_store_multi_hash_chr_translate:allocation_occurrence/2-1',C),
lookup_ht(C,A,B).
:-nb_setval('$chr_store_global_ground_chr_translate:allocation_occurrence/2',[]).
-:-nb_setval('$chr_store_global_ground_chr_translate:rule/2',[]).
:-new_ht(A),nb_setval('$chr_store_multi_hash_chr_translate:rule/2-1',A).
'$via1_multi_hash_rule/2-1'(A,B) :-
nb_getval('$chr_store_multi_hash_chr_translate:rule/2-1',C),
@@ -2871,25 +2869,47 @@ attached(A,B) :-
'attached/2__2'(A,B,C) :-
B==maybe,
'$via1_multi_hash_attached/2-1'(A,E),
- ( 'chr sbag_member'(D,E),
+ (
+ 'chr sbag_member'(D,E),
D=suspension(_,H,_,_,_,_,F,G),
H=mutable(active),
F==A,
- G==maybe ->
- true
- ),
- !,
- ( var(C) ->
- true
+ G==maybe,
+ !,
+ ( var(C) ->
+ true
+ ;
+ remove_constraint_internal(C,_,I),
+ ( I==yes ->
+ '$delete_from_store_attached/2'(C)
+ ;
+ true
+ )
+ )
;
- remove_constraint_internal(C,_,I),
+ !,
+ 'attached/2__2__0'(E,A,B,C)
+ ).
+'attached/2__2__0'([],A,B,C) :-
+ 'attached/2__3'(A,B,C).
+'attached/2__2__0'([D|E],A,B,C) :-
+ ( D=suspension(_,H,_,_,_,_,F,G),
+ H=mutable(active),
+ F==A,
+ G==maybe ->
+ remove_constraint_internal(D,_,I),
( I==yes ->
- '$delete_from_store_attached/2'(C)
+ '$delete_from_store_attached/2'(D)
;
true
- )
+ ),
+ 'attached/2__2__0'(E,A,B,C)
+ ;
+ 'attached/2__2__0'(E,A,B,C)
).
-'attached/2__2'(_,_,A) :-
+'attached/2__2'(A,B,C) :-
+ 'attached/2__3'(A,B,C).
+'attached/2__3'(_,_,A) :-
activate_constraint(B,_,A,_),
( B==yes ->
'$insert_in_store_attached/2'(A)
@@ -2910,30 +2930,56 @@ is_attached(A) :-
!.
indexed_argument(A,B) :-
'indexed_argument/2__0'(A,B,_).
-'indexed_argument/2__0'(A,B,_) :-
- '$via1_multi_hash_indexed_argument/2-1'(A,D),
- ( 'chr sbag_member'(C,D),
- C=suspension(_,G,_,_,_,_,E,F),
- G=mutable(active),
- E==A,
- F==B ->
- true
- ),
- !.
'indexed_argument/2__0'(A,B,C) :-
- insert_constraint_internal(_,_,C,chr_translate:'indexed_argument/2__0'(A,B,C),indexed_argument(A,B),[A,B]),
- '$insert_in_store_indexed_argument/2'(C).
+ '$via1_multi_hash_indexed_argument/2-1'(A,E),
+ (
+ 'chr sbag_member'(D,E),
+ D=suspension(_,H,_,_,_,_,F,G),
+ H=mutable(active),
+ F==A,
+ G==B,
+ !
+ ;
+ !,
+ allocate_constraint(chr_translate:'indexed_argument/2__0'(A,B,C),C,indexed_argument(A,B),[A,B]),
+ 'indexed_argument/2__0__0'(E,A,B,C)
+ ).
+'indexed_argument/2__0__0'([],A,B,C) :-
+ 'indexed_argument/2__1'(A,B,C).
+'indexed_argument/2__0__0'([D|E],A,B,C) :-
+ ( D=suspension(_,H,_,_,_,_,F,G),
+ H=mutable(active),
+ F==A,
+ G==B ->
+ remove_constraint_internal(D,_,I),
+ ( I==yes ->
+ '$delete_from_store_indexed_argument/2'(D)
+ ;
+ true
+ ),
+ 'indexed_argument/2__0__0'(E,A,B,C)
+ ;
+ 'indexed_argument/2__0__0'(E,A,B,C)
+ ).
+'indexed_argument/2__0'(A,B,C) :-
+ allocate_constraint(chr_translate:'indexed_argument/2__0'(A,B,C),C,indexed_argument(A,B),[A,B]),
+ 'indexed_argument/2__1'(A,B,C).
+'indexed_argument/2__1'(_,_,A) :-
+ activate_constraint(B,_,A,_),
+ ( B==yes ->
+ '$insert_in_store_indexed_argument/2'(A)
+ ;
+ true
+ ).
is_indexed_argument(A,B) :-
'is_indexed_argument/2__0'(A,B,_).
'is_indexed_argument/2__0'(A,B,_) :-
'$via1_multi_hash_indexed_argument/2-1'(A,D),
- ( 'chr sbag_member'(C,D),
- C=suspension(_,G,_,_,_,_,E,F),
- G=mutable(active),
- E==A,
- F==B ->
- true
- ),
+ 'chr sbag_member'(C,D),
+ C=suspension(_,G,_,_,_,_,E,F),
+ G=mutable(active),
+ E==A,
+ F==B,
!.
'is_indexed_argument/2__0'(_,_,_) :-
!,
@@ -3020,26 +3066,23 @@ update_store_type(A,B) :-
C=suspension(_,G,_,_,_,_,E,F),
G=mutable(active),
E==A,
- 'chr lock'(B),
- 'chr lock'(F),
- member(B,F),
- 'chr unlock'(B),
- 'chr unlock'(F),
- !.
-'update_store_type/2__0'(A,B,_) :-
- '$via1_multi_hash_actual_store_types/2-1'(A,D),
- 'chr sbag_member'(C,D),
- C=suspension(_,G,_,_,_,_,E,F),
- G=mutable(active),
- E==A,
- !,
- remove_constraint_internal(C,_,H),
- ( H==yes ->
- '$delete_from_store_actual_store_types/2'(C)
+ (
+ 'chr lock'(B),
+ 'chr lock'(F),
+ member(B,F),
+ 'chr unlock'(B),
+ 'chr unlock'(F),
+ !
;
- true
- ),
- actual_store_types(A,[B|F]).
+ !,
+ remove_constraint_internal(C,_,H),
+ ( H==yes ->
+ '$delete_from_store_actual_store_types/2'(C)
+ ;
+ true
+ ),
+ actual_store_types(A,[B|F])
+ ).
'update_store_type/2__0'(A,B,_) :-
!,
actual_store_types(A,[B]).
@@ -3246,27 +3289,28 @@ occurrence(A,B,C,D) :-
'occurrence/4__0'(A,B,C,D,_).
'occurrence/4__0'(A,B,C,D,E) :-
allocate_constraint(chr_translate:'occurrence/4__0'(A,B,C,D,E),E,occurrence(A,B,C,D),[A,B,C,D]),
- 'chr novel_production'(E,46),
- !,
- 'chr extend_history'(E,46),
- activate_constraint(F,_,E,G),
- ( F==yes ->
- '$insert_in_store_occurrence/4'(E)
+ (
+ 'chr novel_production'(E,46),
+ !,
+ 'chr extend_history'(E,46),
+ activate_constraint(F,_,E,G),
+ ( F==yes ->
+ '$insert_in_store_occurrence/4'(E)
+ ;
+ true
+ ),
+ max_occurrence(A,B),
+ ( E=suspension(_,H,_,I,_,_,_,_,_,_),
+ H=mutable(active),
+ I=mutable(G) ->
+ 'chr update_mutable'(inactive,H),
+ 'occurrence/4__1'(A,B,C,D,E)
+ ;
+ true
+ )
;
- true
- ),
- max_occurrence(A,B),
- ( E=suspension(_,H,_,I,_,_,_,_,_,_),
- H=mutable(active),
- I=mutable(G) ->
- 'chr update_mutable'(inactive,H),
'occurrence/4__1'(A,B,C,D,E)
- ;
- true
).
-'occurrence/4__0'(A,B,C,D,E) :-
- allocate_constraint(chr_translate:'occurrence/4__0'(A,B,C,D,E),E,occurrence(A,B,C,D),[A,B,C,D]),
- 'occurrence/4__1'(A,B,C,D,E).
'occurrence/4__1'(A,B,C,D,E) :-
'$via1_multi_hash_allocation_occurrence/2-1'(A,F),
!,
@@ -3430,38 +3474,34 @@ get_occurrence(A,B,C,D) :-
fail.
max_occurrence(A,B) :-
'max_occurrence/2__0'(A,B,_).
-'max_occurrence/2__0'(A,B,_) :-
- '$via1_multi_hash_max_occurrence/2-1'(A,D),
- ( 'chr sbag_member'(C,D),
- C=suspension(_,G,_,_,_,_,E,F),
- G=mutable(active),
- E==A ->
- true
- ),
- F>=B,
- !.
'max_occurrence/2__0'(A,B,C) :-
- '$via1_multi_hash_max_occurrence/2-1'(A,D),
- !,
- allocate_constraint(chr_translate:'max_occurrence/2__0'(A,B,C),C,max_occurrence(A,B),[A,B]),
- 'max_occurrence/2__0__0'(D,A,B,C).
+ '$via1_multi_hash_max_occurrence/2-1'(A,E),
+ (
+ 'chr sbag_member'(D,E),
+ D=suspension(_,H,_,_,_,_,F,G),
+ H=mutable(active),
+ F==A,
+ G>=B,
+ !
+ ;
+ !,
+ allocate_constraint(chr_translate:'max_occurrence/2__0'(A,B,C),C,max_occurrence(A,B),[A,B]),
+ 'max_occurrence/2__0__0'(E,A,B,C)
+ ).
'max_occurrence/2__0__0'([],A,B,C) :-
'max_occurrence/2__1'(A,B,C).
'max_occurrence/2__0__0'([D|E],A,B,C) :-
( D=suspension(_,H,_,_,_,_,F,G),
H=mutable(active),
- F==A ->
- ( B>=G ->
- remove_constraint_internal(D,_,I),
- ( I==yes ->
- '$delete_from_store_max_occurrence/2'(D)
- ;
- true
- ),
- 'max_occurrence/2__0__0'([],A,B,C)
+ F==A,
+ B>=G ->
+ remove_constraint_internal(D,_,I),
+ ( I==yes ->
+ '$delete_from_store_max_occurrence/2'(D)
;
- 'max_occurrence/2__0__0'([],A,B,C)
- )
+ true
+ ),
+ 'max_occurrence/2__0__0'(E,A,B,C)
;
'max_occurrence/2__0__0'(E,A,B,C)
).
@@ -3479,12 +3519,10 @@ get_max_occurrence(A,B) :-
'get_max_occurrence/2__0'(A,B,_).
'get_max_occurrence/2__0'(A,B,_) :-
'$via1_multi_hash_max_occurrence/2-1'(A,D),
- ( 'chr sbag_member'(C,D),
- C=suspension(_,G,_,_,_,_,E,F),
- G=mutable(active),
- E==A ->
- true
- ),
+ 'chr sbag_member'(C,D),
+ C=suspension(_,G,_,_,_,_,E,F),
+ G=mutable(active),
+ E==A,
!,
B=F.
'get_max_occurrence/2__0'(_,A,_) :-
@@ -3493,60 +3531,46 @@ get_max_occurrence(A,B) :-
allocation_occurrence(A,B) :-
'allocation_occurrence/2__0'(A,B,_).
'allocation_occurrence/2__0'(A,B,_) :-
- '$via1_multi_hash_occurrence/4-1'(A,I),
- nb_getval('$chr_store_global_ground_chr_translate:rule/2',D),
- 'chr sbag_member'(C,D),
- C=suspension(_,G,_,_,_,_,E,F),
- G=mutable(active),
- 'chr sbag_member'(H,I),
- H=suspension(_,N,_,_,_,_,J,K,L,M),
- N=mutable(active),
- J==A,
- K==B,
- L==E,
- 'chr lock'(F),
- 'chr lock'(M),
- F=pragma(_,ids(_,_),_,_,_),
- member(M,_),
- 'chr unlock'(F),
- 'chr unlock'(M),
- !,
- O is B+1,
- allocation_occurrence(A,O).
-'allocation_occurrence/2__0'(A,B,_) :-
- '$via1_multi_hash_occurrence/4-1'(A,I),
- nb_getval('$chr_store_global_ground_chr_translate:rule/2',D),
- 'chr sbag_member'(C,D),
- C=suspension(_,G,_,_,_,_,E,F),
- G=mutable(active),
- 'chr sbag_member'(H,I),
- H=suspension(_,M,_,_,_,_,J,K,L,_),
- M=mutable(active),
- J==A,
- K==B,
- L==E,
- 'chr lock'(F),
- F=pragma(rule(_,_,_,true),_,_,_,_),
- 'chr unlock'(F),
- !,
- N is B+1,
- allocation_occurrence(A,N).
-'allocation_occurrence/2__0'(A,B,_) :-
'$via1_multi_hash_occurrence/4-1'(A,D),
'chr sbag_member'(C,D),
C=suspension(_,I,_,_,_,_,E,F,G,H),
I=mutable(active),
E==A,
F==B,
- '$via1_multi_hash_passive/2-1'(G,K),
- 'chr sbag_member'(J,K),
- J=suspension(_,N,_,_,_,_,L,M),
- N=mutable(active),
- L==G,
- M==H,
- !,
- O is B+1,
- allocation_occurrence(A,O).
+ (
+ '$via1_multi_hash_rule/2-1'(G,K),
+ 'chr sbag_member'(J,K),
+ J=suspension(_,N,_,_,_,_,L,M),
+ N=mutable(active),
+ L==G,
+ 'chr lock'(M),
+ (
+ 'chr lock'(H),
+ M=pragma(_,ids(_,_),_,_,_),
+ member(H,_),
+ 'chr unlock'(M),
+ 'chr unlock'(H),
+ !,
+ O is B+1,
+ allocation_occurrence(A,O)
+ ;
+ M=pragma(rule(_,_,_,true),_,_,_,_),
+ 'chr unlock'(M),
+ !,
+ P is B+1,
+ allocation_occurrence(A,P)
+ )
+ ;
+ '$via1_multi_hash_passive/2-1'(G,R),
+ 'chr sbag_member'(Q,R),
+ Q=suspension(_,U,_,_,_,_,S,T),
+ U=mutable(active),
+ S==G,
+ T==H,
+ !,
+ V is B+1,
+ allocation_occurrence(A,V)
+ ).
'allocation_occurrence/2__0'(A,B,C) :-
insert_constraint_internal(_,_,C,chr_translate:'allocation_occurrence/2__0'(A,B,C),allocation_occurrence(A,B),[A,B]),
'$insert_in_store_allocation_occurrence/2'(C).
View full diff with command:
/usr/bin/cvs -f diff -kk -u -p -N -r 1.1 -r 1.2 guard_entailment.pl
Index: guard_entailment.pl
===================================================================
RCS file: /cvs/pkgs/rpms/yap/F-11/guard_entailment.pl,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -p -r1.1 -r1.2
--- guard_entailment.pl 1 May 2006 10:55:44 -0000 1.1
+++ guard_entailment.pl 15 Jun 2009 20:46:22 -0000 1.2
@@ -1,22 +1,24 @@
/* Generated by CHR bootstrap compiler
From: guard_entailment.chr
- Date: [77,111,110,32,77,97,121,32,32,49,32,49,50,58,50,49,58,53,55,32,50,48,48,54,10]
+ Date: Mon Jun 15 21:43:57 2009
+
DO NOT EDIT. EDIT THE CHR FILE INSTEAD
*/
:-module(guard_entailment,[entails_guard/2,simplify_guards/5]).
:-use_module(chr_runtime).
-:-style_check((-singleton)).
-:-style_check((-discontiguous)).
-:-use_module(library(lists)).
+:-style_check(-discontiguous).
+:-include(chr_op).
:-use_module(hprolog).
:-use_module(builtins).
+:-use_module(chr_compiler_errors).
entails_guard(A,B) :-
copy_term_nat((A,B),(C,D)),
term_variables(C,E),
variables(E),
- entails_guard2(C),
+ sort(C,F),
+ entails_guard2(F),
!,
test(D),
!,
@@ -29,10 +31,11 @@ simplify_guards(A,B,C,D,E) :-
copy_term_nat((A,C),(F,G)),
term_variables(F,H),
variables(H),
- entails_guard2(F),
+ sort(F,I),
+ entails_guard2(I),
!,
- simplify(G,I),
- simplified(C,I,D,B,E),
+ simplify(G,J),
+ simplified(C,J,D,B,E),
!,
cleanup.
simplified([],[],[],A,A).
@@ -78,7 +81,7 @@ try(A,B) :-
( known(A) ->
true
;
- format(' ERROR: entailment checker: this is not supposed to happen.
+ chr_error(internal,'Entailment Checker: try/2.
',[])
),
( test(B) ->
@@ -86,14 +89,6 @@ try(A,B) :-
;
true
).
-lookup([],[],_,_) :-
- fail.
-lookup([A|B],[C|D],E,F) :-
- ( E==A ->
- F=C
- ;
- lookup(B,D,E,F)
- ).
add_args_unif([],[],true).
add_args_unif([A|B],[C|D],(A=C,E)) :-
add_args_unif(B,D,E).
@@ -112,38 +107,36 @@ all_unique_vars([A|B],C,D) :-
\+memberchk_eq(A,D),
all_unique_vars(B,[A|D]).
:-use_module(chr(chr_runtime)).
-:-use_module(chr(chr_hashtable_store)).
-:-use_module(library('clp/clp_events')).
-'attach_known/1'([],_).
-'attach_known/1'([A|B],C) :-
- ( get_attr(A,guard_entailment,H) ->
- H=v(F,D,E),
- ( F/\1=:=1 ->
- put_attr(A,guard_entailment,v(F,[C|D],E))
+attach_variables___1([],_).
+attach_variables___1([A|B],C) :-
+ ( get_attr(A,guard_entailment,A1) ->
+ A1=v(Y,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X),
+ ( Y/\1=:=1 ->
+ B1=v(Y,[C|D],E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X)
;
- G is F\/1,
- put_attr(A,guard_entailment,v(G,[C],E))
- )
+ Z is Y\/1,
+ B1=v(Z,[C],E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X)
+ ),
+ put_attr(A,guard_entailment,B1)
;
- put_attr(A,guard_entailment,v(1,[C],[]))
+ put_attr(A,guard_entailment,v(1,[C],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[]))
),
- true,
- 'attach_known/1'(B,C).
-'detach_known/1'([],_).
-'detach_known/1'([A|B],C) :-
- ( get_attr(A,guard_entailment,I) ->
- I=v(F,D,E),
- ( F/\1=:=1 ->
- 'chr sbag_del_element'(D,C,H),
- ( H==[] ->
- G is F/\ -2,
- ( G==0 ->
+ attach_variables___1(B,C).
+detach_variables___1([],_).
+detach_variables___1([A|B],C) :-
+ ( get_attr(A,guard_entailment,B1) ->
+ B1=v(Y,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X),
+ ( Y/\1=:=1 ->
+ 'chr sbag_del_element'(D,C,A1),
+ ( A1==[] ->
+ Z is Y/\ -2,
+ ( Z==0 ->
del_attr(A,guard_entailment)
;
- put_attr(A,guard_entailment,v(G,[],E))
+ put_attr(A,guard_entailment,v(Z,[],E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X))
)
;
- put_attr(A,guard_entailment,v(F,H,E))
+ put_attr(A,guard_entailment,v(Y,A1,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X))
)
;
true
@@ -151,37 +144,37 @@ all_unique_vars([A|B],C,D) :-
;
true
),
- 'detach_known/1'(B,C).
-'attach_variables/1'([],_).
-'attach_variables/1'([A|B],C) :-
- ( get_attr(A,guard_entailment,H) ->
- H=v(F,D,E),
- ( F/\2=:=2 ->
- put_attr(A,guard_entailment,v(F,D,[C|E]))
+ detach_variables___1(B,C).
+'attach_known/1_1_$default___1'([],_).
+'attach_known/1_1_$default___1'([A|B],C) :-
+ ( get_attr(A,guard_entailment,A1) ->
+ A1=v(Y,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X),
+ ( Y/\2=:=2 ->
+ B1=v(Y,D,[C|E],F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X)
;
- G is F\/2,
- put_attr(A,guard_entailment,v(G,D,[C]))
- )
+ Z is Y\/2,
+ B1=v(Z,D,[C],F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X)
+ ),
+ put_attr(A,guard_entailment,B1)
;
- put_attr(A,guard_entailment,v(2,[],[C]))
+ put_attr(A,guard_entailment,v(2,[],[C],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[]))
),
- true,
- 'attach_variables/1'(B,C).
-'detach_variables/1'([],_).
-'detach_variables/1'([A|B],C) :-
- ( get_attr(A,guard_entailment,I) ->
- I=v(F,D,E),
- ( F/\2=:=2 ->
- 'chr sbag_del_element'(E,C,H),
- ( H==[] ->
- G is F/\ -3,
- ( G==0 ->
+ 'attach_known/1_1_$default___1'(B,C).
+'detach_known/1_1_$default___1'([],_).
+'detach_known/1_1_$default___1'([A|B],C) :-
+ ( get_attr(A,guard_entailment,B1) ->
+ B1=v(Y,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X),
+ ( Y/\2=:=2 ->
+ 'chr sbag_del_element'(E,C,A1),
+ ( A1==[] ->
+ Z is Y/\ -3,
+ ( Z==0 ->
del_attr(A,guard_entailment)
;
- put_attr(A,guard_entailment,v(G,D,[]))
+ put_attr(A,guard_entailment,v(Z,D,[],F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X))
)
;
- put_attr(A,guard_entailment,v(F,D,H))
+ put_attr(A,guard_entailment,v(Y,D,A1,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X))
)
;
[...20601 lines suppressed...]
+ 'known/1_1_$special_fail/0___0__15'.
+'known/1_1_$special_fail/0___0__15' :-
+ nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\==/2___2',A),
+ !,
+ 'known/1_1_$special_fail/0___0__15__0__40'(A).
+'known/1_1_$special_fail/0___0__15__0__40'([]) :-
+ 'known/1_1_$special_fail/0___0__16'.
+'known/1_1_$special_fail/0___0__15__0__40'([A|B]) :-
+ ( A=suspension(_,active,_,_,_,_,_) ->
+ A=suspension(_,_,_,_,_,H,I),
+ setarg(2,A,removed),
+ term_variables(term(H,I),C),
+ arg(5,A,D),
+ ( var(D) ->
+ nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\==/2___2',E),
+ E=[_|F],
+ b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\==/2___2',F),
+ ( F=[G|_] ->
+ setarg(5,G,_)
+ ;
+ true
+ )
+ ;
+ D=[_,_|F],
+ setarg(2,D,F),
+ ( F=[G|_] ->
+ setarg(5,G,D)
+ ;
+ true
+ )
+ ),
+ 'detach_known/1_1_$special_\\==/2___2'(C,A),
+ 'known/1_1_$special_fail/0___0__15__0__40'(B)
+ ;
+ 'known/1_1_$special_fail/0___0__15__0__40'(B)
+ ).
+'known/1_1_$special_fail/0___0__15' :-
+ 'known/1_1_$special_fail/0___0__16'.
+'known/1_1_$special_fail/0___0__16' :-
+ nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_==/2___2',A),
+ !,
+ 'known/1_1_$special_fail/0___0__16__0__41'(A).
+'known/1_1_$special_fail/0___0__16__0__41'([]) :-
+ 'known/1_1_$special_fail/0___0__17'.
+'known/1_1_$special_fail/0___0__16__0__41'([A|B]) :-
+ ( A=suspension(_,active,_,_,_,_,_) ->
+ A=suspension(_,_,_,_,_,H,I),
+ setarg(2,A,removed),
+ term_variables(term(H,I),C),
+ arg(5,A,D),
+ ( var(D) ->
+ nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_==/2___2',E),
+ E=[_|F],
+ b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_==/2___2',F),
+ ( F=[G|_] ->
+ setarg(5,G,_)
+ ;
+ true
+ )
+ ;
+ D=[_,_|F],
+ setarg(2,D,F),
+ ( F=[G|_] ->
+ setarg(5,G,D)
+ ;
+ true
+ )
+ ),
+ 'detach_known/1_1_$special_==/2___2'(C,A),
+ 'known/1_1_$special_fail/0___0__16__0__41'(B)
+ ;
+ 'known/1_1_$special_fail/0___0__16__0__41'(B)
+ ).
+'known/1_1_$special_fail/0___0__16' :-
+ 'known/1_1_$special_fail/0___0__17'.
+'known/1_1_$special_fail/0___0__17' :-
+ nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=</2___2',A),
+ !,
+ 'known/1_1_$special_fail/0___0__17__0__46'(A).
+'known/1_1_$special_fail/0___0__17__0__46'([]) :-
+ 'known/1_1_$special_fail/0___0__18'.
+'known/1_1_$special_fail/0___0__17__0__46'([A|B]) :-
+ ( A=suspension(_,active,_,_,_,_,_) ->
+ A=suspension(_,_,_,_,_,H,I),
+ setarg(2,A,removed),
+ term_variables(term(H,I),C),
+ arg(5,A,D),
+ ( var(D) ->
+ nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=</2___2',E),
+ E=[_|F],
+ b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_=</2___2',F),
+ ( F=[G|_] ->
+ setarg(5,G,_)
+ ;
+ true
+ )
+ ;
+ D=[_,_|F],
+ setarg(2,D,F),
+ ( F=[G|_] ->
+ setarg(5,G,D)
+ ;
+ true
+ )
+ ),
+ 'detach_known/1_1_$special_=</2___2'(C,A),
+ 'known/1_1_$special_fail/0___0__17__0__46'(B)
+ ;
+ 'known/1_1_$special_fail/0___0__17__0__46'(B)
+ ).
+'known/1_1_$special_fail/0___0__17' :-
+ 'known/1_1_$special_fail/0___0__18'.
+'known/1_1_$special_fail/0___0__18' :-
+ nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=:=/2___2',A),
+ !,
+ 'known/1_1_$special_fail/0___0__18__0__47'(A).
+'known/1_1_$special_fail/0___0__18__0__47'([]) :-
+ 'known/1_1_$special_fail/0___0__19'.
+'known/1_1_$special_fail/0___0__18__0__47'([A|B]) :-
+ ( A=suspension(_,active,_,_,_,_,_) ->
+ A=suspension(_,_,_,_,_,H,I),
+ setarg(2,A,removed),
+ term_variables(term(H,I),C),
+ arg(5,A,D),
+ ( var(D) ->
+ nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=:=/2___2',E),
+ E=[_|F],
+ b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_=:=/2___2',F),
+ ( F=[G|_] ->
+ setarg(5,G,_)
+ ;
+ true
+ )
+ ;
+ D=[_,_|F],
+ setarg(2,D,F),
+ ( F=[G|_] ->
+ setarg(5,G,D)
+ ;
+ true
+ )
+ ),
+ 'detach_known/1_1_$special_=:=/2___2'(C,A),
+ 'known/1_1_$special_fail/0___0__18__0__47'(B)
+ ;
+ 'known/1_1_$special_fail/0___0__18__0__47'(B)
+ ).
+'known/1_1_$special_fail/0___0__18' :-
+ 'known/1_1_$special_fail/0___0__19'.
+'known/1_1_$special_fail/0___0__19' :-
+ nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$default___1',A),
+ !,
+ 'known/1_1_$special_fail/0___0__19__0__50'(A).
+'known/1_1_$special_fail/0___0__19__0__50'([]) :-
+ 'known/1_1_$special_fail/0___0__20'.
+'known/1_1_$special_fail/0___0__19__0__50'([A|B]) :-
+ ( A=suspension(_,active,_,_,_) ->
+ A=suspension(_,_,_,_,H),
+ setarg(2,A,removed),
+ term_variables(H,C),
+ arg(4,A,D),
+ ( var(D) ->
+ nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$default___1',E),
+ E=[_|F],
+ b_setval('$chr_store_global_list_guard_entailment____known/1_1_$default___1',F),
+ ( F=[G|_] ->
+ setarg(4,G,_)
+ ;
+ true
+ )
+ ;
+ D=[_,_|F],
+ setarg(2,D,F),
+ ( F=[G|_] ->
+ setarg(4,G,D)
+ ;
+ true
+ )
+ ),
+ 'detach_known/1_1_$default___1'(C,A),
+ 'known/1_1_$special_fail/0___0__19__0__50'(B)
+ ;
+ 'known/1_1_$special_fail/0___0__19__0__50'(B)
+ ).
+'known/1_1_$special_fail/0___0__19' :-
+ 'known/1_1_$special_fail/0___0__20'.
+'known/1_1_$special_fail/0___0__20' :-
+ A=suspension(B,active,_),
+ 'chr gen_id'(B),
+ nb_getval('$chr_store_global_ground_guard_entailment____known/1_1_$special_fail/0___0',C),
+ D=[A|C],
+ b_setval('$chr_store_global_ground_guard_entailment____known/1_1_$special_fail/0___0',D),
+ ( C=[E|_] ->
+ setarg(3,E,D)
;
true
).
:-multifile chr:'$chr_module'/1.
chr:'$chr_module'(guard_entailment).
+end_of_file.
Index: sources
===================================================================
RCS file: /cvs/pkgs/rpms/yap/F-11/sources,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -p -r1.5 -r1.6
--- sources 1 May 2006 10:59:04 -0000 1.5
+++ sources 15 Jun 2009 20:46:22 -0000 1.6
@@ -1 +1,5 @@
-1f5c26642a27158c98f6c2fac56d3dad Yap-5.1.1.tar.gz
+d04265acead9286b363f7209ac382490 Yap-5.1.3.tar.gz
+89b0825d04a5615b78ca0ff67908b047 chr_translate_bootstrap1.pl
+ebbc6fe2972f03696e8b5397b0076726 chr_translate_bootstrap2.pl
+773fa939564fb229fc7e541e5a74515a chr_translate.pl
+72541b7579caf15bebe19fc2fc80dd08 guard_entailment.pl
Index: yap.spec
===================================================================
RCS file: /cvs/pkgs/rpms/yap/F-11/yap.spec,v
retrieving revision 1.23
retrieving revision 1.24
diff -u -p -r1.23 -r1.24
--- yap.spec 1 Mar 2009 05:04:11 -0000 1.23
+++ yap.spec 15 Jun 2009 20:46:22 -0000 1.24
@@ -1,12 +1,12 @@
Name: yap
-Version: 5.1.1
-Release: 13%{?dist}
+Version: 5.1.3
+Release: 1%{?dist}
Summary: High-performance Prolog Compiler
Group: Development/Languages
License: Artistic 2.0 or LGPLv2+
-Source: http://www.ncc.up.pt/~vsc/Yap/current/Yap-5.1.1.tar.gz
+Source: http://www.ncc.up.pt/~vsc/Yap/current/Yap-%{version}.tar.gz
Source1: guard_entailment.pl
Source2: chr_translate_bootstrap1.pl
Source3: chr_translate_bootstrap2.pl
@@ -53,12 +53,15 @@ Documentation for Yap.
%patch2 -p1
%patch3 -p1
+find -name CVS -print0 | xargs -0 rm -rf
cp %{SOURCE1} %{SOURCE2} %{SOURCE3} %{SOURCE4} LGPL/chr
# remove redundant rpath
sed -i '/-Wl,-R/d' configure
-# properly link dynamically
-sed -i 's/SHLIB_LD=.*/SHLIB_LD="gcc -shared"/' configure
+# add soname to library
+sed -i 's/@YAPLIB@/@YAPLIB at .%{version}/g' Makefile.in
+sed -i 's/@DYNYAPLIB@/@DYNYAPLIB at .%{version}/g' Makefile.in
+sed -i 's/@DYNLIB_LD@/@DYNLIB_LD@ -Wl,-soname=@YAPLIB at .%{version} /g' Makefile.in
find -name Makefile.in | xargs sed -i 's|$(ROOTDIR)/lib|$(ROOTDIR)/%{_lib}|'
find -name Makefile.in | xargs sed -i 's|$(EROOTDIR)/lib|$(EROOTDIR)/%{_lib}|'
@@ -89,9 +92,11 @@ find -name '*.lgt' -exec chmod 0644 '{}'
find -name '*.h' -exec chmod 0644 '{}' ';'
find -name '*.c' -exec chmod 0644 '{}' ';'
+(cd $RPM_BUILD_ROOT%{_libdir}; ln -sf libYap.so.%{version} libYap.so)
+
# move examples to docdir
mkdir -p $RPM_BUILD_ROOT%{_docdir}/%{name}-%{version}
-mv $RPM_BUILD_ROOT%{_datadir}/Yap/examples $RPM_BUILD_ROOT%{_docdir}/%{name}-%{version}
+#mv $RPM_BUILD_ROOT%{_datadir}/Yap/examples $RPM_BUILD_ROOT%{_docdir}/%{name}-%{version}
rm -rf $RPM_BUILD_ROOT%{_datadir}/Yap/clpbn/examples
%post
@@ -119,20 +124,18 @@ rm -rf $RPM_BUILD_ROOT
%{_bindir}/yap
%{_datadir}/Yap
%{_libdir}/Yap
-%{_libdir}/libYap.so
+%{_libdir}/libYap.so*
%{_infodir}/*
%files devel
%defattr(-,root,root,-)
-%{_libdir}/libYap.a
+%{_libdir}/libYap.so
%{_includedir}/Yap
%files docs
%defattr(-,root,root,-)
-%doc docs/*.html
-%doc docs/yap.pdf
%doc LGPL/pillow/doc/pillow_doc_html/*
%doc LGPL/pillow/doc/article.ps.gz
%doc --parent Logtalk/manuals
@@ -140,13 +143,13 @@ rm -rf $RPM_BUILD_ROOT
%changelog
+* Mon Jun 15 2009 Gerard Milmeister <gemi at bluewin.ch> - 5.1.3-1
+- new release 5.1.3
+
* Sun Mar 01 2009 Ralf Corsépius <corsepiu at fedoraproject.org> - 5.1.1-13
- Add Yap-5.1.1-config.sub.patch:
Upgrade outdated config.sub to fix rebuild breakdown on ppc64.
-* Wed Feb 25 2009 Fedora Release Engineering <rel-eng at lists.fedoraproject.org> - 5.1.1-12
-- Rebuilt for https://fedoraproject.org/wiki/Fedora_11_Mass_Rebuild
-
* Fri Jul 11 2008 Tom "spot" Callaway <tcallawa at redhat.com> - 5.1.1-11
- fix license tag
- Previous message (by thread): rpms/globus-rsl/F-11 globus-rsl.spec,1.2,1.3 import.log,1.2,1.3
- Next message (by thread): rpms/yap/devel Yap-5.1.3-soname.patch, NONE, 1.1 .cvsignore, 1.4, 1.5 chr_translate.pl, 1.1, 1.2 chr_translate_bootstrap1.pl, 1.1, 1.2 chr_translate_bootstrap2.pl, 1.1, 1.2 guard_entailment.pl, 1.1, 1.2 sources, 1.5, 1.6 yap.spec, 1.23, 1.24
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
More information about the fedora-extras-commits
mailing list