Mark Thom
a7e93db363
improve retract/1 and related predicates ( #1598 )
2023-01-22 21:04:41 -07:00
Mark Thom
f9e3bdb6b0
restore free list usage on structures in facts without crashing lgtunit loader
2023-01-13 18:35:13 -07:00
Mark Thom
0c4d93f01f
remove add_term_to_free_list from AddToList ( #1684 )
2023-01-10 18:24:48 -07:00
Mark Thom
bb624cc971
use free lists to allow register re-use ( #1612 )
2023-01-08 12:11:04 -07:00
Mark Thom
d16312a314
use existing bindings in compile_is ( #1545 )
2022-11-14 20:58:07 -07:00
Mark Thom
c90dd80ece
revise UnsafeVarMarker ( #1545 )
2022-11-14 20:57:51 -07:00
Mark Thom
edea1273c8
trim get_structure and put_structure arities when last arg is an index ptr ( #1536 )
2022-10-26 23:36:07 -06:00
Mark Thom
1ffbf63d20
inline metacalls
2022-10-26 23:36:07 -06:00
Mark Thom
987bbdecf5
improve efficiency of call/N, replace '$call_with_default_policy' with
...
'$call_with_inference_counting'
2022-06-12 22:34:07 -06:00
Mark Thom
e9bb35c895
emit indexing instructions in single clauses of dynamic predicates
2022-06-04 23:43:48 -06:00
Mark Thom
ab4f93dcee
do not emit indexing instructions for single clause subsequences ( #1503 )
2022-06-04 15:29:00 -06:00
Mark Thom
bef8eb538c
throw a representation error if max arity is exceeded ( #1483 )
2022-05-22 00:03:55 -06:00
Mark Thom
4d23542ef3
add max arity checks at various stages ( #1459 )
2022-05-21 12:32:48 -06:00
Mark Thom
0f502fff84
compact lists of characters to partial strings in read_term_from_heap ( #1452 , #1453 )
2022-05-03 19:12:16 -06:00
Mark Thom
72536037ca
remove redundant register assignments in numeric comparisons ( #1438 , #1448 )
2022-04-29 09:16:22 -06:00
Mark Thom
e4eefc92f4
remove redundant skip_stub_try_me_else condition ( #1444 )
2022-04-29 09:16:22 -06:00
Mark Thom
68b4951bc9
replace SliceDeque with VecDeque
2022-04-25 22:55:28 -06:00
Mark Thom
66075bf45b
mark unsafe variables and substitute temporary variables in is/2 when appropriate ( #1430 )
2022-04-17 17:33:09 -06:00
Mark Thom
35b8f69f92
fix panic caused by jmp offset off by one error ( #1429 )
2022-04-17 12:22:34 -06:00
Mark Thom
23bfb4da50
advance arg in arithmetic comparison code ( #1367 )
2022-03-25 17:30:47 -06:00
Mark Thom
0c19c56909
mark variables in ArithmeticEvaluator ( #690 )
2022-03-05 17:57:10 -07:00
Mark Thom
42da543980
group predicate subsequences by first instantiated arg ( #1053 )
2022-02-08 23:34:42 -07:00
Mark Thom
955e1799c8
flatten the instruction dispatch loop
2022-01-06 22:09:36 -07:00
Mark Thom
cd129e32a7
fix bugs revealed by src/tests/builtins.pl
2022-01-06 21:44:41 -07:00
Mark Thom
0404c3bd94
use new heap term representation
2022-01-06 21:44:38 -07:00
Skgland
2f428b7261
split into lib and bin
...
* makes most pub things in src/ pub(crate) as not to expose things accidentally
* only those things needed by src/bin/scryer-prolog.rs and tests/scryer.rs
should be pub
* split src/main.rs into src/lib.rs and src/bin/scryer-prolog.rs
* add tests folder and run most of the files in src/tests with cargo test
added bytes method to Stream in src/machine/streams.rs to check if stdout is as expected
2021-02-28 19:21:30 +01:00
Mark Thom
064d261357
implement logical update semantics for dynamic database predicates
2021-02-27 23:33:10 -07:00
Skgland
5041042925
rename prolog_parser_rebis to prolog_parser
...
also remove remaining extern crate statements that slipped through earlier
2021-02-06 22:13:34 +01:00
Skgland
8e5954f36f
remove use statements from main.rs that temporary replaced extern crate and fixed paths that previously used them
2021-02-06 22:13:04 +01:00
Skgland
b53ef148a0
remove extern crate declaration and fix outfall (macros now need to be imported into scope)
...
using use declarations in main.rs so that use paths don't need to be updated as well, this will be done in a later commit
2021-02-06 22:12:31 +01:00
Mark Thom
a239007db0
target prolog_parser_rebis on crates.io
2021-01-30 22:03:07 -07:00
Mark Thom
a4d15bfb88
move to a predicate-based module system, move to loader.[rs|pl]-based compilation, add support for incremental clause compilation
2021-01-30 21:07:51 -07:00
notoria
706d842102
Renamed find_optimal_index to first_instantiated_index
2020-12-21 20:27:53 +01:00
notoria
ecc059bf8b
Organized changes into find_optimal_index
2020-12-21 12:19:21 +01:00
notoria
ec2c5a9b2c
Simplified the code, removed first_arg, the Option
2020-12-19 21:04:17 +01:00
notoria
657e4f12bb
Implemented a different way to index clauses
2020-12-19 14:52:38 +01:00
Mark Thom
b9a53e441e
support number/1
2020-11-03 23:38:55 -07:00
Mark Thom
33325f1574
remove vestigial prolog/ directory ( #444 )
2020-06-12 18:26:38 -06:00