Mark
98b0ab3409
improve call/N implementation ( #1829 )
2023-06-10 17:32:18 -06:00
Mark
b656700294
read from machine stack in stackful pre-order iterator ( #1812 )
2023-05-28 12:59:01 -06:00
Mark Thom
9366a48d6d
introduce InlineTermStream to avoid arena allocations during call_inline ( #1576 )
2022-11-09 00:01:01 +01:00
Mark Thom
d4c0277065
don't return ops with priority 0 when building set for current_op ( #1571 )
2022-10-26 23:36:07 -06:00
Mark Thom
ea95a7900c
deduplicate index ptr inlining for 0-arity atoms ( #1538 )
2022-10-26 23:36:07 -06:00
Mark Thom
6b05ee5130
streamline assertz/1, asserta/1
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
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
68b4951bc9
replace SliceDeque with VecDeque
2022-04-25 22:55:28 -06:00
Mark Thom
e88ec6736c
add (:) meta-predicate argument indicator ( #1302 )
2022-03-13 13:54:58 -06:00
Mark Thom
8762647b55
wrap meta-predicate specifications in functors ( #1330 )
2022-03-07 22:36:52 -07:00
Mark Thom
5a132aaff4
throw error instead of overwriting builtin export ( #1225 )
2022-01-18 19:16:14 -07:00
Mark Thom
955e1799c8
flatten the instruction dispatch loop
2022-01-06 22:09:36 -07:00
Mark Thom
520121b2b2
remove skeletons from replaced modules
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
10bb6ab3bb
restore old thread_goals to fix top-level solutions printing bug
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
b21a096516
add read/2 and nl/1 ( #896 )
2021-05-01 16:12:00 -06:00
Mark Thom
bba836dc31
fail on undefined multifile/discontiguous/dynamic predicates ( #915 )
2021-04-30 21:46:50 -06:00
Mark Thom
7e4cfede7d
fix use of local skeletons to reload predicates ( #919 )
2021-04-27 02:01:00 -06:00
Mark Thom
0cb731c584
remove redundant retraction records for incremental compilation
2021-03-22 15:27:45 -06:00
Mark Thom
5f7abda22d
remove operators declared at user-level from files when reloading
2021-03-16 18:30:34 -06:00
Mark Thom
51424aed32
clear user-level definitions when reloading a file ( #455 )
2021-03-16 02:30:09 -06: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
8c7494885f
set compilation_target of assert loader to match that of predicate qualifier
2021-02-28 00:27:50 -07:00
Mark Thom
064d261357
implement logical update semantics for dynamic database predicates
2021-02-27 23:33:10 -07:00
Mark Thom
1a9f6f06df
consume whitespace before reading a term in loader.pl, modify prolog_load_context at file key to better reflect loading context, use it when reporting singleton variables ( #812 )
2021-02-22 13:23:22 -07:00
Mark Thom
5f8bdc564b
extend existing local predicate skeletons in LoadState::compile
2021-02-22 02:00:25 -07:00
Mark Thom
0ef5f7f9b1
issue singleton variable warnings from loader.pl ( #812 )
2021-02-21 19:20:42 -07:00
Mark Thom
eff892ccb8
add qualified imports use_module library modules
2021-02-18 17:58:16 -07:00
Mark Thom
d69b7f41f2
add '$remove_module_exports' to loader.rs
2021-02-18 14:08:25 -07:00
Mark Thom
f5ad845d57
try to canonicalize to absolute path in current_dir(), use it in setting LoadContext directories ( #821 )
2021-02-17 18:49:51 -07:00
Mark Thom
396c589743
add second term expansion to capture the addition of hook predicates to the expansion process in loader.pl, loader.rs
2021-02-17 15:39:52 -07:00
Mark Thom
6b6666be47
support discontiguous and multifile declarations
2021-02-16 22:08:32 -07:00
Mark Thom
e2a413df78
compile scoped clauses from loader.pl
2021-02-13 19:41:04 -07:00
Mark Thom
72c1a0222c
Box LoadStatePayload when storing it in the heap
2021-02-11 19:21:20 -07:00
Mark Thom
195273f01d
throw exceptions when modules do not contain claimed exports
2021-02-09 12:17:34 -07:00
Mark Thom
cc7e21170f
correct faulty removal of clauses in abolish/1
2021-02-08 19:02:26 -07:00
Mark Thom
df82dbe5f5
use parent() instead of ancestors().next() in load_context_directory()
2021-02-07 13:51:01 -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
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
a104b35cea
gather initialization goals and call them once load succeeds ( #792 )
2021-02-05 18:42:30 -07:00
Mark Thom
bbbf95705b
implement abolish/1
2021-02-05 18:35:06 -07:00
Mark Thom
3fc2c4223b
delay premature set_switch_var_offset_* calls in retract_clause, add module resolution for asserta/assertz/retract/clause
2021-02-05 17:12:25 -07:00
Mark Thom
2d7f31a60d
implement dynamic, multifile, and discontiguous properties and callable type checking for predicate_property/2
2021-02-05 02:16:14 -07:00
Mark Thom
75a52f032b
perform goal expansion in call/N ( #788 , #797 )
2021-02-04 20:40:48 -07:00
Mark Thom
4e29099ed9
export loader's public predicates from builtins, handle module resolution from DCGs
2021-02-02 15:43:52 -07:00
Mark Thom
8900df6f13
add built_in to predicate_property
2021-02-02 15:03:14 -07:00