Commit Graph

4531 Commits

Author SHA1 Message Date
Markus Triska
b41563e976 ENHANCED: support quads in included files
Suggested by @dcnorris, many thanks!

    https://github.com/mthom/scryer-prolog/issues/634#issuecomment-4003451420
2026-03-07 09:37:30 +01:00
Thierry Marianne
ead2fccdbb add documentation
Signed-off-by: Thierry Marianne <thierry@marianne.io>
2026-03-05 09:03:31 +01:00
Thierry Marianne
817c584993 revise indentation of raw string
Signed-off-by: Thierry Marianne <thierry@marianne.io>
2026-03-04 15:06:27 +01:00
Thierry M.
e00112b92f use C-string literal
Co-authored-by: Bennet Bleßmann <3877590+Skgland@users.noreply.github.com>
2026-03-04 15:01:23 +01:00
Thierry Marianne
4bd0ff0fcb cargo fmt fixes
Signed-off-by: Thierry Marianne <thierry@marianne.io>
2026-03-04 14:04:47 +01:00
Thierry Marianne
ed59aa05b0 apply suggestion
Signed-off-by: Thierry Marianne <thierry@marianne.io>
2026-03-04 14:01:17 +01:00
Thierry Marianne
16ed1040d2 move test to tests/scryer/ffi.rs
Signed-off-by: Thierry Marianne <thierry@marianne.io>
2026-03-04 14:01:17 +01:00
Thierry M.
fa21ff4813 use CStr .to_str() method
Co-authored-by: Bennet Bleßmann <3877590+Skgland@users.noreply.github.com>
2026-03-04 14:00:44 +01:00
Thierry M.
891f7fc892 use C-string literal
Co-authored-by: Bennet Bleßmann <3877590+Skgland@users.noreply.github.com>
2026-03-04 13:59:53 +01:00
Thierry Marianne
fae9ca1bb9 fix utf-8 panic
Signed-off-by: Thierry Marianne <thierry@marianne.io>
2026-03-04 12:45:58 +01:00
Thierry Marianne
ac71cff338 add failing test highlighting panic on invalid UTF-8 cstr
Signed-off-by: Thierry Marianne <thierry@marianne.io>
2026-03-04 12:45:48 +01:00
Markus Triska
8f39bee463 ISO: Implement the include/1 directive
Quoting from the standard:

    7.4.2.7 include/1

    If F is an implementation defined ground term designating
    a Prolog text unit, then Prolog text P1 which contains
    a directive include(F) is identical to a Prolog text P2
    obtained by replacing the directive include(F) in P1 by
    the Prolog text denoted by F.

Example:

    :- include("hello.pl").

This addresses #583 and #634.
2026-02-28 14:49:13 +01:00
Skgland
2dc904aa73 run apt update before apt install
https://github.com/orgs/community/discussions/145882#discussioncomment-11447924
2026-02-20 23:00:45 +01:00
Skgland
0ceab41b39 fix warning in CI about using apt in a script 2026-02-20 22:57:44 +01:00
Skgland
2a79d6fc40 run cargo fmt 2026-02-20 22:52:25 +01:00
Skgland
49e49b425d fix clippy lint warning 2026-02-20 22:47:08 +01:00
Skgland
7d0d61d789 remove no longer necessary allows 2026-02-20 22:45:09 +01:00
Skgland
5ef5a3f30a replace custom modular_bitfields fork with update upstream
part of #2468
2026-02-20 22:40:33 +01:00
Danil Platonov
337d9c5583 move drop to impl Drop 2026-01-26 04:57:28 -08:00
Danil Platonov
26523139a8 fix http stream not being closed fully 2026-01-25 03:16:37 -08:00
Skgland
65aadb3b88 reduce visibility to pub(crate) to prevent accidentally exposing 2026-01-24 04:20:13 +01:00
Skgland
dfad71bc6e fix some lint warnings 2026-01-24 04:13:26 +01:00
Skgland
d8c6fa1fe5 don't expose lexical error and provide location 2026-01-24 04:08:41 +01:00
Skgland
18b476af28 make ParserError a struct with an enum kind field 2026-01-24 04:08:40 +01:00
Skgland
bd233fedfd add location to InvalidSingleQuotedCharacter 2026-01-24 04:08:40 +01:00
Skgland
083546442d make match exhaustive 2026-01-24 04:08:40 +01:00
Skgland
3343188756 replace pairs of usize with location struct 2026-01-24 04:08:40 +01:00
Daniel K Lyons
ed36aa7313 Fixed a typo in the documentation for atom_codes/2 2026-01-20 09:54:18 -07:00
Markus Triska
0dc94ecc0b ADDED: not_si/1
For a recent example that would benefit from this, see "Prolog Basics
Explained with Pokémon" by @alexpetros:

    https://unplannedobsolescence.com/blog/prolog-basics-pokemon/

Thank you a lot!
2026-01-18 09:58:31 +01:00
Mark Thom
453a88f03e Merge pull request #3211 from mthom/setof_correction_and_opt
Correct and optimize setof/3 and bagof/3
2026-01-14 22:07:10 -07:00
Mark Thom
c79fd74331 remove unnecessary extra work in findall_with_existential/5 2026-01-14 20:39:48 -08:00
Mark Thom
e446b13376 remove hashbrown crate 2026-01-14 20:39:48 -08:00
Mark Thom
a83f412251 replace sort_without_dedup/2 with keysort/2 2026-01-14 20:39:48 -08:00
Mark Thom
1a8c4f9b03 cargo fmt fixes 2026-01-14 20:39:48 -08:00
Mark Thom
c2e1ded852 remove variant_hashing.rs and related instructions 2026-01-14 20:39:48 -08:00
Mark Thom
70220687f4 find variant terms using just sort/2 and (==)/2 2026-01-14 20:39:48 -08:00
Mark Thom
69a367d1c9 do not retain attributes in solutions of findall (#3020) 2026-01-14 20:39:48 -08:00
Mark Thom
e2bdf59c81 fix cargo fmt 2026-01-14 20:39:48 -08:00
Mark Thom
6284aa3a3f add variant_hash and is_non_variant to fix setof/3, bagof/3 2026-01-14 20:39:48 -08:00
Mark Thom
29cd80510b replace compare_term_test with parallel iterator, add is_not_variant 2026-01-14 20:39:45 -08:00
Mark Thom
9089f9ddb4 use branch numbers to detect branch subsumption 2026-01-14 20:34:06 -08:00
Mark Thom
16dc10ee96 assert rational(3) as true in tests/builtins.pl 2026-01-14 20:34:06 -08:00
Mark Thom
4e8f338870 Merge pull request #3222 from Skgland/reduce-instructions_template
move static parts of instructions template directly into instructions module, fix clippy and typos
2026-01-12 23:22:44 -07:00
Skgland
b14e363d5e run rustfmt to fix formatting 2026-01-10 18:31:40 +01:00
Bennet Bleßmann
87f89545bb restore accidentally removed comment 2026-01-10 18:30:09 +01:00
Skgland
5064760b1e fix spelling 2026-01-10 18:13:59 +01:00
Skgland
eca4262be6 fix clippy lints 2026-01-10 17:52:34 +01:00
Skgland
73c26bed2a extaract the static part of the instructions template directly into the instructions module
This way goto source doesn't end up in a generated file for those parts and they can be edited directly.
I have way too often accidentally edited the generated file.
2026-01-10 17:48:07 +01:00
Mark Thom
172b6a6f8f Merge pull request #3207 from Skgland/quote-fix-unquote-segv
"fix" segv from #3198, #3199, and #3205
2025-12-17 14:11:21 -07:00
Skgland
129cca53ed throw error(resource_error(memory), []) when the list length exceeds usize. 2025-12-10 00:04:24 +01:00