Menu

Src (SVN)-old Commit Log


Commit Date  
[r985] by unova

Refix for obsoloete perl versions.

1999-07-09 09:57:05 Tree
[r984] by tswift

rewrite concat_atom/2,3 to be linear in size of input string and to be
well-behaved for memory management.

1999-07-08 00:18:29 Tree
[r983] by tswift

Added flatten/2 to basics.

1999-07-07 23:48:51 Tree
[r982] by ejohnson

Made low-level changes to trie structure and code as a lead-in to
adding subsumptive tabling. Also performed a lot of cleanup within
the trie code as well as to the interface between tries and the rest
of the system.

Among the changes:

1) expanded the use of the first field in a trie node to include
information about the type of trie the node is in as well as about the
node itself. These fields subsumed the role that "ftagging" played.

2) renamed trie-related macros with more meaningful and consistent
names.

3) replaced the old format of trie hash tables with a new one. These
now consist of a header and a separate bucket array. A parent node's
"Child" field points to the header, which contains a field identical
to that in a trie node (instr, node & trie type, delete status). It
used to be that a dummy node hanged off of the parent and it pointed
to the hash table, which combined that header and bucket array into a
single memory block.

4) added a root node to all tries, except those containing delay
variables, as these exist currently as simple chains, i.e., the "trie"
is just a single path.

5) separated low-level trie macros into a new file for inclusion into
files containing trie-manipulating routines. Higher-level defs are in
another header file for inclusion in files which merely use tries and
call these routines.

6) Removed global variable "UglyHackForTip."

7) Fixed some "suspicious" code. In particular, care was not taken
when switching back and forth from "tabling-trie" space to
"assert-trie" space (which also includes user-constructed tries). The
switch was made made at the very beginning and end of code blocks
where, somewhere in the middle, a trie-manipulating function was
called. This function call alone would require the switch. But with
other ways to exit the block, execution might never reach the switch
back. Hence, where ever a switch was called for, I "moved them in" to
just around the functions which depended on it. This may not
completely solve the problem, as handling an error occurring inside
one of these trie functions may bypass the switch back. But I think
this is a general problem resulting from the error handling of XSB...

NOTE: these functions are general trie-manipulating functions, so
moving the switch into these functions is not the right thing to do.
The purpose of the switch is to allow these functions to work "in a
different space."

1999-07-06 16:35:25 Tree
[r981] by warren

Defined socket_flush using file_function, for backward compatibility.

1999-07-06 15:54:38 Tree
[r980] by tswift

Small change to test out cvs commit from home.

1999-07-05 17:48:26 Tree
[r979] by kifer

Fixed some inefficiencies in compiler/parser due to frequent use of
atom_codes.

1999-07-05 14:37:24 Tree
[r978] by kifer

fixed bugs related to tracing aggregates.

1999-07-05 06:13:50 Tree
[r977] by kifer

added xsb_sprint_variable to fix the problem with printing vars in
print_pterm: cinterf.c (now fmt_write('%S', f(V)) prints vars the same
way as write(V) does).

1999-07-05 06:13:04 Tree
[r976] by kifer

Prevent backtracking over the print function hook

1999-07-04 18:47:40 Tree
Older >
MongoDB Logo MongoDB