Skgland
b2130c2a48
run cargo fmt
2023-09-05 19:12:17 +02:00
Mark
af44d91568
Merge branch 'dashu' of https://github.com/coasys/scryer-prolog into coasys-dashu
2023-07-24 11:47:57 -06:00
Mark
85bc544fb9
dereference TermWriteResult variables sooner in read_term_body ( #1894 )
2023-07-18 15:39:51 -06:00
Mark
56f6772422
call write_read_term_options if read_term_from_chars/3 succeeds by unifying Term to end_of_file ( #1892 )
2023-07-18 12:15:20 -06:00
Mark
42a50474da
remove read/{1,2} as a builtin, write read options upon EOF, throw better domain errors in parse_read_term_options/2
2023-07-17 16:45:03 -06:00
Mark
cf367024fd
add specialized EOF handling for user input ( #1892 )
2023-07-17 14:38:26 -06:00
Mark
a154a34f87
omit anonymous variables from read_term variable_names and singletons lists
2023-07-17 13:20:10 -06:00
Mark
86c90d77dd
do a better job handling EOF in read_term ( #1887 )
2023-07-17 13:19:30 -06:00
Fayeed Pawaskar
cf345d8174
wip dashu move
2023-07-17 20:40:41 +05:30
Mark
de10ccfdee
re-factor options handling of read_term into read_term_body ( #1887 )
2023-07-15 21:52:54 -06:00
Mark
4fd37335f5
use lookahead to skip inapplicable clauses ( #1028 , #1502 )
2023-07-12 14:39:02 -06:00
Mark
067b5998ee
clarify EOF error across stream types and predicates ( #1867 , #1870 )
2023-07-08 13:38:52 -06:00
Mark
483e4568a2
add scc_block to MachineState to avoid SCC cleanup terms being deallocated too early ( #1427 )
2023-07-06 11:20:49 -06:00
Markus Triska
3b9b9e75c4
make double_quotes write option not dependent on double_quotes flag
...
This gives consistent results without depending on another flag.
2023-07-05 21:37:11 +02:00
Mark
9cdad087ef
add double_quotes write option for printing to strings, enable it at toplevel
2023-07-03 12:09:05 -06:00
Mark
c36bd4dc07
introduce CutPoint heap tag so that they can be offset by call_continuation/1
2023-06-29 12:14:15 -06:00
Mark
749dedf477
read from machine stack in stackful pre-order iterator ( #1812 )
2023-06-23 14:11:31 -06:00
Mark
e0f49e8f43
optionally read from machine stack in stackful pre-order iterator ( #1812 )
2023-06-23 14:11:31 -06:00
Mark
8e4465315f
use same logic to print Chars and Atoms ( #1804 )
2023-06-23 14:11:31 -06:00
Mark
0e583d620a
implement new disjunction compilation
2023-06-23 14:11:31 -06:00
Mark Thom
b9c9de5222
add classifications and occurrence counting
2023-06-23 13:54:46 -06:00
Mark Thom
a7e93db363
improve retract/1 and related predicates ( #1598 )
2023-01-22 21:04:41 -07:00
Mark Thom
cf63e8375d
track attr_var_init lengths on the stack ( #1667 )
2022-12-16 20:10:17 -07:00
Mark Thom
8781e03863
cache ball terms before unifying in handle_ball/3 ( #1608 )
2022-10-26 23:36:07 -06:00
Mark Thom
140149f051
fix crash in read_term ( #1616 )
2022-10-26 23:36:07 -06:00
Mark Thom
1ffbf63d20
inline metacalls
2022-10-26 23:36:07 -06:00
Mark Thom
bef8eb538c
throw a representation error if max arity is exceeded ( #1483 )
2022-05-22 00:03:55 -06:00
Euan Lacy
c2a87f898e
fix: remove unnecessary string & vec allocations
2022-05-10 18:10:18 +01:00
Euan Lacy
aaa75c3ffc
wip: basic completion of predicates
2022-05-10 18:10:18 +01:00
Mark Thom
9cefb33388
correct loading of variable name strings in write_term/3
2022-03-08 22:00:12 -07:00
Mark Thom
f3f3dccf8e
reference partial strings properly in read_term ( #1271 )
2022-02-06 15:14:18 -07:00
Mark Thom
37e34c5209
reset instruction pointers with calls, make HCPrinter::range_from safe ( #1233 )
2022-01-31 21:24:19 -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
06313cac64
update README.md
2022-01-07 00:17:17 -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
708c3bc3ce
dereference first argument of (is)/2
2022-01-06 21:44:41 -07:00
Mark Thom
b24df6e195
properly iterate over read terms in MachineState::read_term
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
975c1ca62c
fix stream errors
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
9d06229cba
create read_term/3 variable lists in order of variable occurrence within terms
2021-12-23 13:31:49 -07:00
Mark Thom
5d2b0377d8
reset attributed variables queue when backtracking ( #678 , etc.)
2021-09-27 19:12:24 -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
3f1cfd2995
introduce bind_fn, use in applicable Fact/Query instructions ( #841 )
2021-02-28 16:19:06 -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