]> Repositorios git - scryer-prolog.git/log
scryer-prolog.git
6 weeks agoImprove CharReader buffering
josd [Sun, 26 Apr 2026 11:42:41 +0000 (13:42 +0200)]
Improve CharReader buffering

7 weeks agoreplace tabs with spaces
Mark Thom [Tue, 21 Apr 2026 23:22:38 +0000 (16:22 -0700)]
replace tabs with spaces

7 weeks agodereference compare_term_test args down from stack (#3286, #3295)
Mark Thom [Tue, 21 Apr 2026 23:02:55 +0000 (16:02 -0700)]
dereference compare_term_test args down from stack (#3286, #3295)

7 weeks agoreplace tabs with spaces
Mark Thom [Tue, 21 Apr 2026 22:02:14 +0000 (15:02 -0700)]
replace tabs with spaces

7 weeks agotake Lis index from rd in copy_var (#3298)
Mark Thom [Tue, 21 Apr 2026 21:31:53 +0000 (14:31 -0700)]
take Lis index from rd in copy_var (#3298)

7 weeks agoMerge pull request #3269 from no382001/quads
Mark Thom [Sun, 19 Apr 2026 00:20:03 +0000 (18:20 -0600)]
Merge pull request #3269 from no382001/quads

fix library paths and module qualification in quadtests.pl

7 weeks agoMerge pull request #3293 from danilp-id/http_server_test
Mark Thom [Sun, 19 Apr 2026 00:17:18 +0000 (18:17 -0600)]
Merge pull request #3293 from danilp-id/http_server_test

http_server test + unignore http_open_hanging

7 weeks agoMerge pull request #3274 from no382001/issue3262
Mark Thom [Sun, 19 Apr 2026 00:16:53 +0000 (18:16 -0600)]
Merge pull request #3274 from no382001/issue3262

fix read/1 on non-TTY stdin blocking until newline

7 weeks agoMerge pull request #3291 from Skgland/update-actions
Mark Thom [Sun, 19 Apr 2026 00:16:00 +0000 (18:16 -0600)]
Merge pull request #3291 from Skgland/update-actions

Update actions

8 weeks agocargo fmt
Danil Platonov [Mon, 13 Apr 2026 02:32:40 +0000 (19:32 -0700)]
cargo fmt

8 weeks agopass scryer path through stream instead of env var
Danil Platonov [Mon, 13 Apr 2026 02:29:39 +0000 (19:29 -0700)]
pass scryer path through stream instead of env var

2 months agohttp server test, and also unignore http client test
Danil Platonov [Sat, 11 Apr 2026 15:59:01 +0000 (08:59 -0700)]
http server test, and also unignore http client test

2 months agoupdate pyTooling/Actions/[email protected] -> pyTooling/Actions/with-post-step...
Skgland [Fri, 10 Apr 2026 22:06:13 +0000 (00:06 +0200)]
update pyTooling/Actions/[email protected] -> pyTooling/Actions/[email protected]

2 months agoupdate actions/[email protected] -> actions/[email protected]
Skgland [Fri, 10 Apr 2026 21:59:59 +0000 (23:59 +0200)]
update actions/[email protected] -> actions/[email protected]

2 months agopin 3rd-party actions
Skgland [Fri, 10 Apr 2026 20:57:13 +0000 (22:57 +0200)]
pin 3rd-party actions

following githubs recommendations[^3rd-p-a] to use full-length commit SHA for 3rd-party actions

setup dependabot to help keep dependencies up-to-date

[^3rd-p-a]: https://docs.github.com/en/actions/reference/security/secure-use#using-third-party-actions

2 months agoupdate docker/build-push-action@v6 -> docker/build-push-action@v7
Skgland [Fri, 10 Apr 2026 21:22:09 +0000 (23:22 +0200)]
update docker/build-push-action@v6 -> docker/build-push-action@v7

2 months agoupdate docker/metadata-action@v5 -> docker/metadata-action@v6
Skgland [Fri, 10 Apr 2026 21:20:39 +0000 (23:20 +0200)]
update docker/metadata-action@v5 -> docker/metadata-action@v6

2 months agoupdate docker/login-action@v3 -> docker/login-action@v4
Skgland [Fri, 10 Apr 2026 21:19:08 +0000 (23:19 +0200)]
update docker/login-action@v3 -> docker/login-action@v4

2 months agoupdate docker/setup-buildx-action@v3 -> docker/setup-buildx-action@v4
Skgland [Fri, 10 Apr 2026 21:18:20 +0000 (23:18 +0200)]
update docker/setup-buildx-action@v3 -> docker/setup-buildx-action@v4

2 months agoupdate actions/download-artifact@v4 -> actions/download-artifact@v8
Skgland [Fri, 10 Apr 2026 21:16:58 +0000 (23:16 +0200)]
update actions/download-artifact@v4 -> actions/download-artifact@v8

2 months agoupdate actions/upload-artifact@v4 -> actions/upload-artifact@v7
Skgland [Fri, 10 Apr 2026 21:13:46 +0000 (23:13 +0200)]
update actions/upload-artifact@v4 -> actions/upload-artifact@v7

2 months agoupdate actions/checkout@v4 -> actions/checkout@v6
Skgland [Fri, 10 Apr 2026 21:10:23 +0000 (23:10 +0200)]
update actions/checkout@v4 -> actions/checkout@v6

2 months agoMerge pull request #3276 from Skgland/cleanup
Mark Thom [Thu, 9 Apr 2026 04:18:32 +0000 (22:18 -0600)]
Merge pull request #3276 from Skgland/cleanup

remove unused file

2 months agoMerge pull request #3273 from no382001/issue2914
Mark Thom [Sat, 4 Apr 2026 19:06:11 +0000 (13:06 -0600)]
Merge pull request #3273 from no382001/issue2914

fix panic in current_prolog_flag/2 when arguments are the same variable

2 months agoMerge pull request #3271 from abmclin/update_rustyline
Mark Thom [Sat, 4 Apr 2026 18:28:35 +0000 (12:28 -0600)]
Merge pull request #3271 from abmclin/update_rustyline

Resolves issue 2694 by updating rustyline to 17.0.2

2 months agoMerge pull request #3266 from Skgland/perf-issue-3265
Mark Thom [Sat, 4 Apr 2026 18:02:29 +0000 (12:02 -0600)]
Merge pull request #3266 from Skgland/perf-issue-3265

perf improvements for 3265

2 months agoremove unused file
Skgland [Thu, 2 Apr 2026 21:29:47 +0000 (23:29 +0200)]
remove unused file

2 months agorestructure based on suggestion
no382001 [Tue, 31 Mar 2026 19:13:40 +0000 (21:13 +0200)]
restructure based on suggestion

Co-authored-by: Bennet Bleßmann <[email protected]>
2 months agofix read/1 on non-TTY stdin blocking until newline #3262
no382001 [Tue, 31 Mar 2026 12:40:20 +0000 (14:40 +0200)]
fix read/1 on non-TTY stdin blocking until newline #3262

2 months agofix panic in current_prolog_flag/2 when arguments are the same variable
no382001 [Tue, 31 Mar 2026 07:48:23 +0000 (09:48 +0200)]
fix panic in current_prolog_flag/2 when arguments are the same variable

2 months agoResolves issue 2694 by updating rustyline to 17.0.2
Alexander McLin [Sun, 29 Mar 2026 18:49:51 +0000 (14:49 -0400)]
Resolves issue 2694 by updating rustyline to 17.0.2

2 months agouse checked_add to prevent silent overflow
Skgland [Fri, 27 Mar 2026 21:00:54 +0000 (22:00 +0100)]
use checked_add to prevent silent overflow

2 months agofix library paths and module qualification in quadtests.pl
no382001 [Fri, 27 Mar 2026 16:33:57 +0000 (17:33 +0100)]
fix library paths and module qualification in quadtests.pl

2 months agohint to the compiler/branch-predictor that
Skgland [Sat, 21 Mar 2026 17:58:40 +0000 (18:58 +0100)]
hint to the compiler/branch-predictor that
we expect p to be in bound

if we are suffiently certain that p can never be oob
unsafe get_unchecked could be used to
eliminate bounds checking all together
which should improve performance further.

2 months agorun rustfmt
Skgland [Sat, 21 Mar 2026 13:24:13 +0000 (14:24 +0100)]
run rustfmt

2 months agoadjust interrupt handling
Skgland [Sat, 21 Mar 2026 13:20:11 +0000 (14:20 +0100)]
adjust interrupt handling

we used to spend ~5.8% of the time on getting the next value of the 0..INSTRUCTIONS_PER_INTERRUPT_POLL iterator

increment on Wrapping<u8> now only takes ~0.58 of the time

2 months agoswitch from Integer to u128
Skgland [Sat, 21 Mar 2026 12:36:40 +0000 (13:36 +0100)]
switch from Integer to u128

- u128 is only 16 bytes instead of 24
- incrementing u128 does not involve heap allocations
- u128 should be sufficent
 it would take more than 2 sextilion years to overflow if we would be incrementing it every tick at 5GHz
   i.e. 2^128-1 / 5 GHz / 60 / 60 / 24 / 356 > 2 sextilion

before this ~3.2% of the execution time of the program in https://github.com/mthom/scryer-prolog/issues/3265#issuecomment-4103176469 was spend in the increment_call_count function, after this change it's down to 0.3%

2 months agoMerge pull request #3243 from danilp-id/master
Mark Thom [Fri, 20 Mar 2026 06:36:58 +0000 (23:36 -0700)]
Merge pull request #3243 from danilp-id/master

fix http stream not being closed fully

2 months agoMerge pull request #3257 from triska/include
Mark Thom [Wed, 18 Mar 2026 06:58:04 +0000 (23:58 -0700)]
Merge pull request #3257 from triska/include

ISO: Implement the include/1 directive

2 months agoretain error context (load/1) when using :- D.
Markus Triska [Mon, 16 Mar 2026 06:36:55 +0000 (07:36 +0100)]
retain error context (load/1) when using :- D.

2 months agoMerge pull request #3258 from no382001/fix_load_xml/3
Mark Thom [Sun, 15 Mar 2026 05:46:03 +0000 (22:46 -0700)]
Merge pull request #3258 from no382001/fix_load_xml/3

load_xml was returning a single term instead of a list of nodes

3 months agoload_xml was returning a single term instead of a list of nodes
no382001 [Tue, 3 Mar 2026 11:34:31 +0000 (12:34 +0100)]
load_xml was returning a single term instead of a list of nodes

3 months agoMerge pull request #3234 from fusiongyro/patch-1
Mark Thom [Tue, 10 Mar 2026 05:09:40 +0000 (22:09 -0700)]
Merge pull request #3234 from fusiongyro/patch-1

Fixed a typo in the documentation for atom_codes/2

3 months agoMerge pull request #3232 from triska/not_si
Mark Thom [Tue, 10 Mar 2026 05:09:09 +0000 (22:09 -0700)]
Merge pull request #3232 from triska/not_si

ADDED: not_si/1

3 months agoMerge pull request #3252 from Skgland/towards-a-crate-without-syn@1
Mark Thom [Tue, 10 Mar 2026 05:08:28 +0000 (22:08 -0700)]
Merge pull request #3252 from Skgland/towards-a-crate-without-syn@1

replace custom modular_bitfields fork with update upstream

3 months agoMerge pull request #3241 from Skgland/parse-error-improvements
Mark Thom [Tue, 10 Mar 2026 05:07:03 +0000 (22:07 -0700)]
Merge pull request #3241 from Skgland/parse-error-improvements

change `ParserError` type

3 months agoMerge pull request #3189 from Skgland/fix-function_casts_as_integer
Mark Thom [Tue, 10 Mar 2026 05:06:33 +0000 (22:06 -0700)]
Merge pull request #3189 from Skgland/fix-function_casts_as_integer

fix `function_casts_as_integer` warning

3 months agoMerge pull request #3260 from thierrymarianne/dealing-with-invalid-utf8-string
Mark Thom [Tue, 10 Mar 2026 03:56:04 +0000 (20:56 -0700)]
Merge pull request #3260 from thierrymarianne/dealing-with-invalid-utf8-string

handle invalid UTF-8 string

3 months agoENHANCED: support quads in included files
Markus Triska [Sat, 7 Mar 2026 08:37:30 +0000 (09:37 +0100)]
ENHANCED: support quads in included files

Suggested by @dcnorris, many thanks!

    https://github.com/mthom/scryer-prolog/issues/634#issuecomment-4003451420

3 months agoadd documentation
Thierry Marianne [Thu, 5 Mar 2026 08:02:59 +0000 (09:02 +0100)]
add documentation

Signed-off-by: Thierry Marianne <[email protected]>
3 months agorevise indentation of raw string
Thierry Marianne [Wed, 4 Mar 2026 14:06:27 +0000 (15:06 +0100)]
revise indentation of raw string

Signed-off-by: Thierry Marianne <[email protected]>
3 months agouse C-string literal
Thierry M. [Wed, 4 Mar 2026 14:01:23 +0000 (15:01 +0100)]
use C-string literal

Co-authored-by: Bennet Bleßmann <[email protected]>
3 months agocargo fmt fixes
Thierry Marianne [Wed, 4 Mar 2026 13:04:47 +0000 (14:04 +0100)]
cargo fmt fixes

Signed-off-by: Thierry Marianne <[email protected]>
3 months agoapply suggestion
Thierry Marianne [Wed, 4 Mar 2026 12:58:08 +0000 (13:58 +0100)]
apply suggestion

Signed-off-by: Thierry Marianne <[email protected]>
3 months agomove test to tests/scryer/ffi.rs
Thierry Marianne [Wed, 4 Mar 2026 12:57:17 +0000 (13:57 +0100)]
move test to tests/scryer/ffi.rs

Signed-off-by: Thierry Marianne <[email protected]>
3 months agouse CStr .to_str() method
Thierry M. [Wed, 4 Mar 2026 12:40:05 +0000 (13:40 +0100)]
use CStr .to_str() method

Co-authored-by: Bennet Bleßmann <[email protected]>
3 months agouse C-string literal
Thierry M. [Wed, 4 Mar 2026 12:33:00 +0000 (13:33 +0100)]
use C-string literal

Co-authored-by: Bennet Bleßmann <[email protected]>
3 months agofix utf-8 panic
Thierry Marianne [Wed, 4 Mar 2026 11:03:21 +0000 (12:03 +0100)]
fix utf-8 panic

Signed-off-by: Thierry Marianne <[email protected]>
3 months agoadd failing test highlighting panic on invalid UTF-8 cstr
Thierry Marianne [Wed, 4 Mar 2026 07:55:11 +0000 (08:55 +0100)]
add failing test highlighting panic on invalid UTF-8 cstr

Signed-off-by: Thierry Marianne <[email protected]>
3 months agoISO: Implement the include/1 directive
Markus Triska [Sat, 28 Feb 2026 13:23:44 +0000 (14:23 +0100)]
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.

3 months agorun apt update before apt install
Skgland [Fri, 20 Feb 2026 22:00:45 +0000 (23:00 +0100)]
run apt update before apt install

https://github.com/orgs/community/discussions/145882#discussioncomment-11447924

3 months agofix warning in CI about using apt in a script
Skgland [Fri, 20 Feb 2026 21:57:44 +0000 (22:57 +0100)]
fix warning in CI about using apt in a script

3 months agorun cargo fmt
Skgland [Fri, 20 Feb 2026 21:52:25 +0000 (22:52 +0100)]
run cargo fmt

3 months agofix clippy lint warning
Skgland [Fri, 20 Feb 2026 21:47:08 +0000 (22:47 +0100)]
fix clippy lint warning

3 months agoremove no longer necessary allows
Skgland [Fri, 20 Feb 2026 21:45:09 +0000 (22:45 +0100)]
remove no longer necessary allows

3 months agoreplace custom modular_bitfields fork with update upstream
Skgland [Fri, 20 Feb 2026 21:37:49 +0000 (22:37 +0100)]
replace custom modular_bitfields fork with update upstream

part of #2468

4 months agomove drop to impl Drop
Danil Platonov [Mon, 26 Jan 2026 12:57:28 +0000 (04:57 -0800)]
move drop to impl Drop

4 months agofix http stream not being closed fully
Danil Platonov [Sun, 25 Jan 2026 11:16:37 +0000 (03:16 -0800)]
fix http stream not being closed fully

4 months agoreduce visibility to pub(crate) to prevent accidentally exposing
Skgland [Sat, 24 Jan 2026 03:20:13 +0000 (04:20 +0100)]
reduce visibility to pub(crate) to prevent accidentally exposing

4 months agofix some lint warnings
Skgland [Sat, 24 Jan 2026 03:13:26 +0000 (04:13 +0100)]
fix some lint warnings

4 months agodon't expose lexical error and provide location
Skgland [Sat, 24 Jan 2026 02:32:42 +0000 (03:32 +0100)]
don't expose lexical error and provide location

4 months agomake ParserError a struct with an enum kind field
Skgland [Sat, 24 Jan 2026 02:24:02 +0000 (03:24 +0100)]
make ParserError a struct with an enum kind field

4 months agoadd location to InvalidSingleQuotedCharacter
Skgland [Sat, 24 Jan 2026 01:23:19 +0000 (02:23 +0100)]
add location to InvalidSingleQuotedCharacter

4 months agomake match exhaustive
Skgland [Sat, 24 Jan 2026 01:22:44 +0000 (02:22 +0100)]
make match exhaustive

4 months agoreplace pairs of usize with location struct
Skgland [Sat, 24 Jan 2026 00:54:29 +0000 (01:54 +0100)]
replace pairs of usize with location struct

4 months agoFixed a typo in the documentation for atom_codes/2
Daniel K Lyons [Tue, 20 Jan 2026 16:54:18 +0000 (09:54 -0700)]
Fixed a typo in the documentation for atom_codes/2

4 months agoADDED: not_si/1
Markus Triska [Sun, 18 Jan 2026 08:57:37 +0000 (09:57 +0100)]
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!

4 months agoMerge pull request #3211 from mthom/setof_correction_and_opt
Mark Thom [Thu, 15 Jan 2026 05:07:10 +0000 (22:07 -0700)]
Merge pull request #3211 from mthom/setof_correction_and_opt

Correct and optimize setof/3 and bagof/3

4 months agoremove unnecessary extra work in findall_with_existential/5 setof_correction_and_opt origin/setof_correction_and_opt
Mark Thom [Tue, 13 Jan 2026 06:47:39 +0000 (22:47 -0800)]
remove unnecessary extra work in findall_with_existential/5

4 months agoremove hashbrown crate
Mark Thom [Tue, 13 Jan 2026 06:13:02 +0000 (22:13 -0800)]
remove hashbrown crate

4 months agoreplace sort_without_dedup/2 with keysort/2
Mark Thom [Fri, 9 Jan 2026 04:29:26 +0000 (20:29 -0800)]
replace sort_without_dedup/2 with keysort/2

4 months agocargo fmt fixes
Mark Thom [Fri, 9 Jan 2026 04:09:12 +0000 (20:09 -0800)]
cargo fmt fixes

4 months agoremove variant_hashing.rs and related instructions
Mark Thom [Thu, 8 Jan 2026 08:27:02 +0000 (00:27 -0800)]
remove variant_hashing.rs and related instructions

4 months agofind variant terms using just sort/2 and (==)/2
Mark Thom [Thu, 8 Jan 2026 08:23:52 +0000 (00:23 -0800)]
find variant terms using just sort/2 and (==)/2

4 months agodo not retain attributes in solutions of findall (#3020)
Mark Thom [Wed, 31 Dec 2025 06:16:25 +0000 (22:16 -0800)]
do not retain attributes in solutions of findall (#3020)

4 months agofix cargo fmt
Mark Thom [Sun, 14 Dec 2025 02:22:15 +0000 (18:22 -0800)]
fix cargo fmt

4 months agoadd variant_hash and is_non_variant to fix setof/3, bagof/3
Mark Thom [Sat, 13 Dec 2025 02:05:47 +0000 (18:05 -0800)]
add variant_hash and is_non_variant to fix setof/3, bagof/3

4 months agoreplace compare_term_test with parallel iterator, add is_not_variant
Mark Thom [Fri, 12 Dec 2025 06:08:16 +0000 (22:08 -0800)]
replace compare_term_test with parallel iterator, add is_not_variant

4 months agouse branch numbers to detect branch subsumption
Mark Thom [Wed, 10 Dec 2025 07:14:24 +0000 (23:14 -0800)]
use branch numbers to detect branch subsumption

4 months agoassert rational(3) as true in tests/builtins.pl
Mark Thom [Sun, 7 Dec 2025 23:15:18 +0000 (15:15 -0800)]
assert rational(3) as true in tests/builtins.pl

4 months agoMerge pull request #3222 from Skgland/reduce-instructions_template
Mark Thom [Tue, 13 Jan 2026 06:22:44 +0000 (23:22 -0700)]
Merge pull request #3222 from Skgland/reduce-instructions_template

move static parts of instructions template directly into instructions module, fix clippy and typos

5 months agorun rustfmt to fix formatting
Skgland [Sat, 10 Jan 2026 17:31:40 +0000 (18:31 +0100)]
run rustfmt to fix formatting

5 months agorestore accidentally removed comment
Bennet Bleßmann [Sat, 10 Jan 2026 17:30:09 +0000 (18:30 +0100)]
restore accidentally removed comment

5 months agofix spelling
Skgland [Sat, 10 Jan 2026 16:53:19 +0000 (17:53 +0100)]
fix spelling

5 months agofix clippy lints
Skgland [Sat, 10 Jan 2026 16:52:34 +0000 (17:52 +0100)]
fix clippy lints

5 months agoextaract the static part of the instructions template directly into the instructions...
Skgland [Sat, 10 Jan 2026 16:48:07 +0000 (17:48 +0100)]
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.

5 months agoMerge pull request #3207 from Skgland/quote-fix-unquote-segv
Mark Thom [Wed, 17 Dec 2025 21:11:21 +0000 (14:11 -0700)]
Merge pull request #3207 from Skgland/quote-fix-unquote-segv

"fix" segv from #3198, #3199, and #3205

6 months agothrow `error(resource_error(memory), [])` when the list length exceeds usize.
Skgland [Tue, 9 Dec 2025 23:04:24 +0000 (00:04 +0100)]
throw `error(resource_error(memory), [])` when the list length exceeds usize.

6 months agoMerge pull request #3177 from triska/use_phrase_to_file
Mark Thom [Tue, 9 Dec 2025 02:23:52 +0000 (19:23 -0700)]
Merge pull request #3177 from triska/use_phrase_to_file

use more recently available phrase_[to|from]_file/3 in example

6 months agoremove overengineered RecursionGuard
Skgland [Mon, 8 Dec 2025 21:27:24 +0000 (22:27 +0100)]
remove overengineered RecursionGuard