Commit Graph
100 Commits
Author SHA1 Message Date
Mark Thom a03f00628b do not print error messages if .scryerrc[.pl] does not exist (#842) 2021-02-28 17:57:35 -07:00
Mark Thom 360485d830 print errors arising from term and goal expansion calls from loader.pl 2021-02-28 16:19:37 -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
Mark Thom 81ecd17b93 Merge pull request #838 from Skgland/librarify
Split main.rs into lib.rs and bin/scryer-prolog.rs
2021-02-28 11:39:24 -07:00
Mark Thom f935060b2b restore .scryerrc loading 2021-02-28 11:03:55 -07:00
Mark Thom a367812348 add occurs_check flag (#309) 2021-02-28 10:41:32 -07:00
Mark Thom 8e6a89b279 enable op declarations with lists of operands using term expansion (#839) 2021-02-28 09:15:03 -07:00
Mark Thom 0747697d10 add lines read from devour_whitespace (#836) 2021-02-28 02:09:53 -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 590a0b8077 update the parser with the number of lines already read by the underlying stream (#836) 2021-02-27 23:56:58 -07:00
Mark Thom 064d261357 implement logical update semantics for dynamic database predicates 2021-02-27 23:33:10 -07:00
Mark Thom adb96710bf Merge pull request #837 from triska/rebis-dev
Small improvements for Rebis
2021-02-25 15:17:16 -07:00
Mark Thom 3eb6357892 Merge pull request #835 from triska/lambda
ADDED: library(lambda) by Ulrich Neumerkel
2021-02-25 14:26:41 -07:00
Mark Thom 4d72845c58 add copy_term_nat/2 (#795) 2021-02-22 22:39:34 -07:00
Mark Thom 9067f76bd6 no longer delay verify_attributes for cut instructions (#807) 2021-02-22 18:33:35 -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 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 f6498f2a7b anonymize singleton variables in iso_ext.pl, charsio.pl 2021-02-21 19:20:42 -07:00
Mark Thom 0ef5f7f9b1 issue singleton variable warnings from loader.pl (#812) 2021-02-21 19:20:42 -07:00
Mark Thom a323a4dd8e wrap stream instances in one Rc<RefCell<..>>, use Ref/RefMut to access stream options 2021-02-21 19:20:42 -07:00
Mark Thom d5581ffd05 Merge pull request #834 from aarroyoc/rebis-http
Fix HTTP server in rebis
2021-02-21 13:32:09 -07:00
Mark Thom 465ab2fa34 Merge pull request #830 from aarroyoc/rebis-http
Fix HTTP server on Rebis. Breaking change
2021-02-21 12:10:09 -07:00
Mark Thom d60bfef924 tweak bimetatrans_tests.pl 2021-02-21 12:08:36 -07:00
Mark Thom 5225587ff5 add set_prolog_flag to declarations recognized by loader.pl 2021-02-21 12:08:14 -07:00
Mark Thom fec790e108 correct comment before call meta_predicate declarations 2021-02-20 19:10:34 -07:00
Mark Thom eb5ea28bcd add 'e' as evaluable functor for Euler's constant (#832) 2021-02-20 18:32:04 -07:00
Mark Thom a9fe2ab5c4 use env::current_dir in Machine::current_dir (#833) 2021-02-20 18:25:34 -07:00
Mark Thom f2db0886dd move to a local num-rug-adapter crate addressing #822 2021-02-19 17:35:10 -07:00
Mark Thom f6926a9642 remove nl after top-level use_module (#818) 2021-02-19 14:36:30 -07:00
Mark Thom d3442bb08f qualify command-line specified goals with user: (#820) 2021-02-19 14:12:34 -07:00
Mark Thom a08f5c3016 treat LocalCodePtr::Halt received at lookup_local_instr as an interrupt (#823) 2021-02-19 13:44:22 -07:00
Mark Thom eff892ccb8 add qualified imports use_module library modules 2021-02-18 17:58:16 -07:00
Mark Thom 3831a371a4 Merge pull request #829 from aarroyoc/uuidv4
UUIDv4 library
2021-02-18 14:29:06 -07:00
Mark Thom c272e4d1e8 use add_dynamically_generated_module in get_or_insert_local_code_index 2021-02-18 14:15:28 -07:00
Mark Thom d69b7f41f2 add '$remove_module_exports' to loader.rs 2021-02-18 14:08:25 -07:00
Mark Thom c8a47d839a Merge pull request #828 from triska/rebis-dev
enable meta_predicate/1 declarations
2021-02-18 12:21:21 -07:00
Mark Thom e8f8f34a76 Merge pull request #827 from triska/rebis-dev
add appropriate meta_predicate/1 declarations
2021-02-18 12:15:12 -07:00
Mark Thom d4d283480f Merge pull request #826 from triska/rebis-dev
add appropriate meta_predicate/1 declarations
2021-02-18 11:17:00 -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 2a70ca375c restore support for tabling and delimited continuations (#779) 2021-02-17 16:18:49 -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 7670b81633 remove VNs variable from loader.pl 2021-02-17 13:31:58 -07:00
Mark Thom f9b98f97b6 remove unnecessary cause of failure in parser, qualify call to op_/3 in builtins.pl 2021-02-17 11:56:58 -07:00
Mark Thom 00bf39204d add missing variable checks in various places 2021-02-17 11:12:19 -07:00
Mark Thom e9ba3ad223 handle user:goal_expansion, but not Target:goal_expansion, explicitly in loader.pl 2021-02-17 01:19:51 -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 b24f68eee7 remove vestigial uses of constant_eq 2021-02-11 19:22:03 -07:00
Mark Thom 72c1a0222c Box LoadStatePayload when storing it in the heap 2021-02-11 19:21:20 -07:00
Mark Thom bd97083268 remove unused is_internal function from indexing.rs 2021-02-11 18:51:21 -07:00
Mark Thom e7cf5d4f3d use machine-generated PartialEq instance for hashing Constant (#817) 2021-02-11 18:40:23 -07:00
Mark Thom 2429971bcd update call/N indices in user-level code_dir in addition to those of pre-loaded modules 2021-02-11 15:38:30 -07:00
Mark Thom 170a71bd02 offset SwitchOnTerm's Internal indices only if the proper instructions were emitted 2021-02-11 15:38:16 -07:00
Mark Thom 14efbb1356 roll back extent of heap when loads are complete in loader.pl 2021-02-11 15:37:43 -07:00
Mark Thom 20cd0dd77a use IndexMap over HashMap in prolog_parser 2021-02-11 15:35:14 -07:00
Mark Thom 2db1fac1eb break out of the first inner loop if constants contains no key in remove_constant_indices (#816) 2021-02-10 14:13:37 -07:00
Mark Thom ce8490ed41 Merge pull request #813 from triska/rebis-dev
~| now incorporates the number of characters described so far
2021-02-09 17:57:08 -07:00
Mark Thom 7e208984de reset merging_ptr offset before insertion of each overlapping constant (#816) 2021-02-09 17:18:00 -07:00
Mark Thom 4d29a3ae3c check for control functors (,/;/->) before jumping to internal interpretation (#815) 2021-02-09 16:40:25 -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 30602c0849 clean up implementation of (->)/2, (;)/2, and (,)/2 2021-02-07 21:13:27 -07:00
Mark Thom 1dabe95899 remove tidy_trail 2021-02-07 15:39:48 -07:00
Mark Thom 4995c0ed94 append .pl to names of files that do not exist in loader.pl 2021-02-07 15:38:03 -07:00
Mark Thom df82dbe5f5 use parent() instead of ancestors().next() in load_context_directory() 2021-02-07 13:51:01 -07:00
Mark Thom de9c74e1d9 Merge branch 'Skgland-clean_up' into rebis-dev 2021-02-07 00:34:57 -07:00
Mark Thom 3f950490f9 set rustyline to check the cursor position (#802), don't add .pl extension to files in loader.pl (#800) 2021-02-06 13:47:26 -07:00
Mark Thom 49b1c1368e remove dynamic clause declaration for clause internal 2021-02-05 23:16:42 -07:00
Mark Thom bdb5df104a shed module names from arguments of the (->)/2, (,)/2, (;)/2 predicates 2021-02-05 22:50:57 -07:00
Mark Thom 700778e574 collate paths as atoms in loader.pl (#778) 2021-02-05 20:18:56 -07: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 927871d73d Merge branch 'rebis-dev' of https://github.com/mthom/scryer-prolog into rebis-dev 2021-02-05 17:17:14 -07:00
Mark Thom 62419e975f bootstrap the top-level by calling ''/1 as in master (#790) 2021-02-05 17:16:42 -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 84da884211 Merge pull request #798 from triska/rebis-dev
CLP(ℤ) enhancements for Rebis
2021-02-05 13:24:53 -07:00
Mark Thom 1bc8e9aebf make load_context_path/2 handle .pl file extensions, remove commented out code 2021-02-05 13:13:54 -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 804858d736 remove defunct reset function (#782) 2021-02-04 21:02:37 -07:00
Mark Thom 222be9cf6c modify rightmost_power/2 to ignore module qualification on (^)/2 (#794) 2021-02-04 20:51:55 -07:00
Mark Thom 75a52f032b perform goal expansion in call/N (#788, #797) 2021-02-04 20:40:48 -07:00
Mark Thom a9e0a51059 Merge pull request #793 from triska/rebis-dev
preliminary workaround for #788
2021-02-04 12:51:09 -07:00
Mark Thom e17eb01f76 respect module context in expand_module_names (#788) 2021-02-03 16:47:22 -07:00
Mark Thom 2fe55e4715 resolve calls to tranpose_ and same_length in lists.pl (#790) 2021-02-03 16:38:46 -07:00
Mark Thom a8a82e45a0 introduce cuts over indexed (:)/2 of dcgs:phrase_/3 (#786) 2021-02-03 16:03:15 -07:00
Mark Thom fcba140ffe Merge pull request #787 from triska/rebis-dev
add meta_predicate declaration for with_local_attributes/3
2021-02-03 15:51:15 -07:00
Mark Thom 94392f248c enable phrase_ rules for module resolved grammars (#785) 2021-02-03 15:48:12 -07:00
Mark Thom cab0e4395a manually expand module names in higher-order predicates of lists.pl and give call_residue_vars/2 a meta-predicate definition 2021-02-03 15:37:16 -07:00
Mark Thom 88ad2ee103 restore cut after dcg_constr check (#784) 2021-02-03 15:21:20 -07:00
Mark Thom 48f3f4ca37 add meta-predicate declarations to reif library 2021-02-03 12:46:33 -07:00
Mark Thom f3ab17a3c0 Merge branch 'master' into rebis-dev 2021-02-03 12:00:00 -07:00
Mark Thom 5749d43fb6 restore prolog_parser test files (#782) 2021-02-03 11:20:55 -07:00
Mark Thom f5d808e68f do not traverse data structures when binding to local variables in unify_with_occurs_check (#781) 2021-02-03 11:11:22 -07:00
Mark Thom 88f1160e2b use find_inner_choice_instr when appending an indexed clause to an indexed subsequence 2021-02-03 01:22:13 -07:00
Mark Thom e928a0aaea expand attributed variable goals 2021-02-02 21:47:59 -07:00
Mark Thom a2447ecaa3 replace Char '!' with QueryTerm::BlockedCut 2021-02-02 21:03:26 -07:00
Mark Thom 09a089d5f1 set target_pos' clause_start correctly in append_compiled_clause 2021-02-02 21:02:08 -07:00