]> Repositorios git - scryer-prolog.git/log
scryer-prolog.git
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 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 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

6 months agofix another integer overflow
Skgland [Mon, 8 Dec 2025 18:59:43 +0000 (19:59 +0100)]
fix another integer overflow

6 months agodon't calculate panic message eagerly
Skgland [Sun, 7 Dec 2025 22:06:09 +0000 (23:06 +0100)]
don't calculate panic message eagerly

6 months agohandle overflown in Heap::with_cell_capacity
Skgland [Sun, 7 Dec 2025 21:59:00 +0000 (22:59 +0100)]
handle overflown in Heap::with_cell_capacity

6 months agohandle oob heap index calculation
Skgland [Sun, 7 Dec 2025 20:45:13 +0000 (21:45 +0100)]
handle oob heap index calculation

6 months agouse checked multiplication in heap_index! macro
Skgland [Sun, 7 Dec 2025 20:31:24 +0000 (21:31 +0100)]
use checked multiplication in heap_index! macro

6 months agoprevent multiply with overflow resulting in odd errors/segv
Skgland [Sun, 7 Dec 2025 20:27:24 +0000 (21:27 +0100)]
prevent multiply with overflow resulting in odd errors/segv

6 months agodetect recursive throw_resource_error and panic instead of causing a segmentation...
Skgland [Sun, 7 Dec 2025 20:08:17 +0000 (21:08 +0100)]
detect recursive throw_resource_error and panic instead of causing a segmentation fault

6 months agodeny `function_casts_as_integer` warnings
Skgland [Thu, 27 Nov 2025 19:11:55 +0000 (20:11 +0100)]
deny `function_casts_as_integer` warnings

6 months agofix `function_casts_as_integer` warning
Skgland [Thu, 27 Nov 2025 19:07:13 +0000 (20:07 +0100)]
fix `function_casts_as_integer` warning

Comparing addresses of function pointers is brittle.

Functions may be duplicated resulting in function pointers to the same function to compare !=.
Functions may be merged/de-duplicated resulting in function pointers to different function to compare ==.

The later shouldn't be relevant here as the function differ in behavior, but mentioning it for completeness.

6 months agofix backtrack_on_resource_error around choice instructions
Mark Thom [Thu, 4 Dec 2025 02:13:00 +0000 (18:13 -0800)]
fix backtrack_on_resource_error around choice instructions

6 months agoMerge pull request #3185 from mthom/install_verify_attr_opt
Mark Thom [Thu, 4 Dec 2025 02:10:46 +0000 (19:10 -0700)]
Merge pull request #3185 from mthom/install_verify_attr_opt

Optimize `verify_attr` by removing the need to scan instructions

6 months agoMerge pull request #3164 from Skgland/alloc_errors2
Mark Thom [Thu, 4 Dec 2025 02:10:22 +0000 (19:10 -0700)]
Merge pull request #3164 from Skgland/alloc_errors2

handle machine heap/stack allocation error

6 months agoMerge pull request #3147 from jjtolton/error-termination-flag
Mark Thom [Tue, 2 Dec 2025 07:24:46 +0000 (00:24 -0700)]
Merge pull request #3147 from jjtolton/error-termination-flag

Add -t flag for custom toplevel (replaces --halt-on-error)

6 months agoMerge pull request #3179 from triska/meetups
Mark Thom [Tue, 2 Dec 2025 06:55:46 +0000 (23:55 -0700)]
Merge pull request #3179 from triska/meetups

update meetups

6 months agoMerge pull request #3180 from triska/foldl_6
Mark Thom [Tue, 2 Dec 2025 06:55:34 +0000 (23:55 -0700)]
Merge pull request #3180 from triska/foldl_6

ADDED: foldl/6, addressing #2973

6 months agocorrections to arithmetic expression compilation install_verify_attr_opt origin/install_verify_attr_opt
Mark Thom [Fri, 28 Nov 2025 05:03:56 +0000 (21:03 -0800)]
corrections to arithmetic expression compilation