Mark
094cf2ac5d
retract discontiguous non-multifile predicates between consultations ( #1202 , #1058 , #1585 )
2023-08-05 17:42:33 -06:00
Mark
3b67ffa814
overwrite code indices of dynamic_undefined predicates (dynamic, multifile, discontiguous) on export
2023-07-25 13:48:34 -06:00
Mark
af44d91568
Merge branch 'dashu' of https://github.com/coasys/scryer-prolog into coasys-dashu
2023-07-24 11:47:57 -06:00
Fayeed Pawaskar
cf345d8174
wip dashu move
2023-07-17 20:40:41 +05:30
Mark
617c961f88
add is_inbuilt check to err_on_builtin_overwrite ( #1872 )
2023-07-15 10:44:00 -06:00
Mark
ba2cd43144
fix assert(a|z)/1 errors
2023-07-13 17:12:17 -06:00
Mark
12f890e4a2
throw permission_error in compile_assert when attempting to assert a built-in ( #1872 )
2023-07-13 15:03:26 -06:00
Mark
ce890799bc
fix builtin_predicate ( #1819 )
2023-06-27 10:41:15 -06:00
Mark
612861e010
correct reversions after rebase
2023-06-23 14:32:37 -06:00
Mark
d7f5675727
improve call/N implementation ( #1829 )
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
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
d565f5901b
milestone marker for surgery
2023-06-23 13:54:04 -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