Mark Thom
789f662ec8
fix match_partial_string, compare_pstr_to_string ( #1451 )
2022-04-30 19:51:19 -06:00
Mark Thom
ed89c43e48
catch existence_error exceptions from top-level calls to attribute_goals/3 ( #1432 )
2022-04-24 20:59:00 -06:00
Mark Thom
16137ace0e
unify structures from left to right ( #1396 )
2022-04-22 19:00:42 -06:00
Mark Thom
05c14d5780
fix comparisons to partial string tails ( #1420 )
2022-04-14 22:14:23 -06:00
Mark Thom
0876d46880
unmark dereferenced cells in term_variables/2 ( #1412 )
2022-04-09 12:15:46 -06:00
Mark Thom
ed803d30cd
dereference bindings returned by stackful iterator ( #1410 , #1411 )
2022-04-09 11:47:54 -06:00
Mark Thom
f3167f6b5f
add forwarding bit to all heap cells ( #1384 )
2022-04-05 20:34:27 -06:00
Mark Thom
8c99d748e2
allocate floats in dedicated buffer
2022-04-05 20:34:27 -06:00
Mark Thom
86176dce8d
compare complete strings to one another in write_literal_to_var ( #1388 )
2022-04-03 01:37:19 -06:00
Mark Thom
c490d818fb
fix dif/2 crash ( #1378 )
2022-03-29 18:39:45 -06:00
Mark Thom
94d7c6dc5f
fix functor/3 arity check ( #1366 )
2022-03-25 18:07:22 -06:00
Mark Thom
067e2633af
compare TypedArenaPtr<T> by value not pointer ( #1362 )
2022-03-22 00:55:44 -06:00
Mark Thom
c2fc33afec
correct float version of sign/1 ( #1360 )
2022-03-19 15:55:23 -06:00
Mark Thom
1808597258
compare functor arity first ( #1327 )
2022-03-06 16:37:21 -07:00
Mark Thom
d55d5f15ae
compare '[]' in pstr_comparator of compare_term_test ( #1299 )
2022-02-25 23:57:27 -07:00
Mark Thom
775bd3a08b
unify '' to [] in unify_complete_string ( #1292 , #1288 )
2022-02-25 23:01:08 -07:00
Mark Thom
d92d8bce89
recognize [] as equivalent to "" in unify_atom ( #1288 )
2022-02-22 23:45:58 -07:00
Mark Thom
5b829636cb
build CStr's to vars in write_literal_to_var ( #1284 )
2022-02-15 22:33:29 -07:00
Mark Thom
4ddacc707d
add range check to arg/3 ( #1250 )
2022-01-29 12:50:09 -07:00
Mark Thom
a562793fce
don't read into the heap while incrementing self.s ( #1233 , #1245 )
2022-01-25 20:37:29 -07:00
Mark Thom
955e1799c8
flatten the instruction dispatch loop
2022-01-06 22:09:36 -07:00
Mark Thom
3db86f1e25
relocate most instruction routines from MachineState to Machine
2022-01-06 21:46:23 -07:00
Mark Thom
6f9b6a29c4
remove LocalCodePtr::IndexingBuf
2022-01-06 21:44:41 -07:00
Mark Thom
4211151fe6
fix unify_float
2022-01-06 21:44:41 -07:00
Mark Thom
48c1d05151
use heap_loc to refer to 0-arity atom instead of str_loc
2022-01-06 21:44:41 -07:00
Mark Thom
cd129e32a7
fix bugs revealed by src/tests/builtins.pl
2022-01-06 21:44:41 -07:00
Mark Thom
fb4e627e62
fix various partial string bugs (copying using them in arg/3)
2022-01-06 21:44:41 -07:00
Mark Thom
bc613eeff9
fix number not recognizing floats
2022-01-06 21:44:41 -07:00
Mark Thom
073f281f1e
fix arg/3 bug
2022-01-06 21:44:41 -07:00
Mark Thom
a0a86d0f62
unmark cell bits in occurs check
2022-01-06 21:44:41 -07:00
Mark Thom
b24e7cce38
support comparison and unification of cyclic partial strings
2022-01-06 21:44:41 -07:00
Mark Thom
ffd1b7069f
greatly reduce the number of goal expansions done in callable if/then/else
2022-01-06 21:44:41 -07:00
Mark Thom
0404c3bd94
use new heap term representation
2022-01-06 21:44:38 -07:00
Mark Thom
5d2b0377d8
reset attributed variables queue when backtracking ( #678 , etc.)
2021-09-27 19:12:24 -06:00
Mark Thom
533d1ea9ab
set self.dynamic_mode to FirstOrNext::Next independently of succeed or failure in dynamic indexing instructions (prompted by #922 )
2021-05-04 20:56:25 -06:00
Mark Thom
b21a096516
add read/2 and nl/1 ( #896 )
2021-05-01 16:12:00 -06:00
Mark Thom
d0b25de554
add user_error stream ( #917 )
2021-04-30 21:58:03 -06:00
Mark Thom
7520fe7000
use occurs check when enabled in UnifyValue ( #885 )
2021-03-22 22:05:03 -06:00
Mark Thom
10af206024
make chars callable ( #713 )
2021-03-17 19:50:41 -06:00
Mark Thom
d4d47182b4
fix is_cyclic_term ( #864 )
2021-03-10 16:11:48 -07:00
Mark Thom
1b9db035ba
call project_attributes from top-level ( #846 )
2021-03-04 16:05:06 -07:00
Mark Thom
3f1cfd2995
introduce bind_fn, use in applicable Fact/Query instructions ( #841 )
2021-02-28 16:19:06 -07:00
Mark Thom
08e2b601f1
pop non-composite terms from iter stack in is_cyclic_term
2021-02-28 12:28:19 -07:00
Mark Thom
101ed9a633
add error value to occurs_check prolog flag ( #783 )
2021-02-28 11:44:23 -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
a367812348
add occurs_check flag ( #309 )
2021-02-28 10:41:32 -07:00
Mark Thom
064d261357
implement logical update semantics for dynamic database predicates
2021-02-27 23:33:10 -07:00
Mark Thom
6c447da730
no longer generate a choice point in bb_b_put/2 ( #742 )
2021-02-22 18:27:30 -07:00
Mark Thom
1dabe95899
remove tidy_trail
2021-02-07 15:39:48 -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