fix ; -> and ! in meta-call (again)
fix peek and read git-svn-id: https://yap.svn.sf.net/svnroot/yap/trunk@207 b08c6af1-5177-4d33-ba66-4b1c6b8b522a
This commit is contained in:
parent
e5a7cd1c10
commit
45a0bc7aef
@ -140,6 +140,8 @@ typedef struct idb_queue
|
|||||||
#define FunctorHash(t) (Unsigned(t)>>4)
|
#define FunctorHash(t) (Unsigned(t)>>4)
|
||||||
#define NumberHash(t) (Unsigned(IntOfTerm(t)))
|
#define NumberHash(t) (Unsigned(IntOfTerm(t)))
|
||||||
|
|
||||||
|
#define LARGE_IDB_LINK_TABLE 1
|
||||||
|
|
||||||
/* traditionally, YAP used a link table to recover IDB terms*/
|
/* traditionally, YAP used a link table to recover IDB terms*/
|
||||||
#define IDB_LINK_TABLE 1
|
#define IDB_LINK_TABLE 1
|
||||||
#if LARGE_IDB_LINK_TABLE
|
#if LARGE_IDB_LINK_TABLE
|
||||||
@ -1371,7 +1373,7 @@ CreateDBStruct(Term Tm, DBProp p, int InFlag)
|
|||||||
nar = pp->Contents + Unsigned(NOfCells);
|
nar = pp->Contents + Unsigned(NOfCells);
|
||||||
}
|
}
|
||||||
#ifdef IDB_LINK_TABLE
|
#ifdef IDB_LINK_TABLE
|
||||||
woar = WordPtr(nar);
|
woar = (link_entry *)nar;
|
||||||
memcpy((void *)woar,(const void *)LinkAr,(size_t)(NOfLinks*sizeof(link_entry)));
|
memcpy((void *)woar,(const void *)LinkAr,(size_t)(NOfLinks*sizeof(link_entry)));
|
||||||
woar += NOfLinks;
|
woar += NOfLinks;
|
||||||
#ifdef ALIGN_LONGS
|
#ifdef ALIGN_LONGS
|
||||||
|
@ -2603,6 +2603,7 @@ do_gc(Int predarity, CELL *current_env, yamop *nextop)
|
|||||||
old_vars = new_vars = 0;
|
old_vars = new_vars = 0;
|
||||||
TrueHB = HB;
|
TrueHB = HB;
|
||||||
num_bs = 0;
|
num_bs = 0;
|
||||||
|
printf("vsc: Starting with %p: %x vs %p->%p %p->\n", (CELL *)0x90da350, *(CELL *)0x90da350, AtomBase, HeapTop, H0);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
#ifdef DEBUG
|
#ifdef DEBUG
|
||||||
@ -2694,6 +2695,7 @@ do_gc(Int predarity, CELL *current_env, yamop *nextop)
|
|||||||
(unsigned long int)(ASP-H));
|
(unsigned long int)(ASP-H));
|
||||||
}
|
}
|
||||||
#ifdef DEBUG
|
#ifdef DEBUG
|
||||||
|
printf("vsc: Finishing with %p: %x vs %p->%p %p->\n", (CELL *)0x90da350, *(CELL *)0x90da350, AtomBase, HeapTop, H0);
|
||||||
check_global();
|
check_global();
|
||||||
#endif
|
#endif
|
||||||
return(effectiveness);
|
return(effectiveness);
|
||||||
|
@ -1296,6 +1296,8 @@ PlUnGetc (int sno)
|
|||||||
register StreamDesc *s = &Stream[sno];
|
register StreamDesc *s = &Stream[sno];
|
||||||
Int ch;
|
Int ch;
|
||||||
|
|
||||||
|
if (s->stream_getc != PlUnGetc)
|
||||||
|
return(s->stream_getc(sno));
|
||||||
ch = s->och;
|
ch = s->och;
|
||||||
if (s->status & InMemory_Stream_f) {
|
if (s->status & InMemory_Stream_f) {
|
||||||
s->stream_getc = MemGetc;
|
s->stream_getc = MemGetc;
|
||||||
@ -2778,7 +2780,9 @@ p_read (void)
|
|||||||
|
|
||||||
/* Scans the term using stack space */
|
/* Scans the term using stack space */
|
||||||
eot_before_eof = FALSE;
|
eot_before_eof = FALSE;
|
||||||
if ((Stream[c_input_stream].status & (Promptable_Stream_f|Pipe_Stream_f|Socket_Stream_f|Eof_Stream_f|InMemory_Stream_f)) || CharConversionTable != NULL)
|
if ((Stream[c_input_stream].status & (Promptable_Stream_f|Pipe_Stream_f|Socket_Stream_f|Eof_Stream_f|InMemory_Stream_f)) ||
|
||||||
|
CharConversionTable != NULL ||
|
||||||
|
Stream[c_input_stream].stream_getc != PlGetc)
|
||||||
tokstart = tokptr = toktide = tokenizer (Stream[c_input_stream].stream_getc_for_read, Stream[c_input_stream].stream_getc);
|
tokstart = tokptr = toktide = tokenizer (Stream[c_input_stream].stream_getc_for_read, Stream[c_input_stream].stream_getc);
|
||||||
else {
|
else {
|
||||||
tokstart = tokptr = toktide = fast_tokenizer ();
|
tokstart = tokptr = toktide = fast_tokenizer ();
|
||||||
|
15
pl/boot.yap
15
pl/boot.yap
@ -652,13 +652,16 @@ incore(G) :- '$execute'(G).
|
|||||||
'$execute_within'(A),
|
'$execute_within'(A),
|
||||||
'$last_execute_within'(B).
|
'$last_execute_within'(B).
|
||||||
|
|
||||||
';'(A,B) :- ((A = ( T->G) -> '$execute_within'(T), !, '$execute_within'(G) ;
|
% Be careful with -> cutting through
|
||||||
'$execute_within'(A) );
|
';'(A,B) :- (A = ( T->G) ->
|
||||||
'$execute_within'(B) ).
|
( '$execute_within'(T) -> '$execute_within'(G) ; '$execute_within'(A) ; '$execute_within'(B) )
|
||||||
|
;
|
||||||
|
( '$execute_within'(A) ; '$execute_within'(B) ) ).
|
||||||
|
|
||||||
'|'(A,B) :- ((A = ( T->G) -> '$execute_within'(T), !, '$execute_within'(G) ;
|
'|'(A,B) :- (A = ( T->G) ->
|
||||||
'$execute_within'(A) );
|
( '$execute_within'(T) -> '$execute_within'(G) ; '$execute_within'(A) ; '$execute_within'(B) )
|
||||||
'$execute_within'(B) ).
|
;
|
||||||
|
( '$execute_within'(A) ; '$execute_within'(B) ) ).
|
||||||
|
|
||||||
|
|
||||||
'->'(A,B) :-
|
'->'(A,B) :-
|
||||||
|
@ -246,6 +246,7 @@ reconsult(Fs) :-
|
|||||||
( '$access_yap_flags'(15, 0) -> true ; halt).
|
( '$access_yap_flags'(15, 0) -> true ; halt).
|
||||||
|
|
||||||
'$skip_unix_comments'(Stream) :-
|
'$skip_unix_comments'(Stream) :-
|
||||||
|
write(hello), nl,
|
||||||
'$peek_byte'(Stream, 0'#), !, % 35 is ASCII for #
|
'$peek_byte'(Stream, 0'#), !, % 35 is ASCII for #
|
||||||
'$get0_line_codes'(Stream, _),
|
'$get0_line_codes'(Stream, _),
|
||||||
'$skip_unix_comments'(Stream).
|
'$skip_unix_comments'(Stream).
|
||||||
|
Reference in New Issue
Block a user