]> Repositorios git - scryer-prolog.git/log
scryer-prolog.git
6 weeks agofix ArenaPtr payload offset logic
Skgland [Sat, 25 Apr 2026 14:39:53 +0000 (16:39 +0200)]
fix ArenaPtr payload offset logic

the old logic would be incorrect if the payload has higher alignment than the ArenaHeader i.e. when there is padding between the ArenaHeader and the Payload

6 weeks agodon't erase ptr type early when construction a Cons HeapCellValue
Skgland [Wed, 22 Apr 2026 21:22:27 +0000 (23:22 +0200)]
don't erase ptr type early when construction a Cons HeapCellValue

rather than passing an address as usize pass the ArenaHeader pointer
similarly don't return a u8 ptr but use a ArenaHeader pointer instead

Don't convert the pointer to a ConsPtr by going through native endian
bytes in between.
We are exploiting the fact that the 3 least significant bytes are zero
for pointer to types of alignment 8 and we expect these to line up with
the f, m, and tag field at the end of the ConsPtr struct, but using
native endiannes for this would only work on big endian systems.

6 weeks agofix unused import warning on windows
Skgland [Wed, 22 Apr 2026 20:42:35 +0000 (22:42 +0200)]
fix unused import warning on windows

6 weeks agofix large enum variant size difference warning of PermVarAllocation
Skgland [Fri, 17 Apr 2026 23:29:28 +0000 (01:29 +0200)]
fix large enum variant size difference warning of PermVarAllocation

by wrapping BranchNumber in an Arc.
PermVarAllocation::Done had size 208 and is now down to 32.
A Box rather than an Arc would be smaller, but it looks like BranchNumber/BranchDesignator are clones a bunch so I expect it to be beneficial to reduce allocations both of the Box itself as well as its content.

7 weeks agoremove unused HeapCellValueView
Skgland [Fri, 17 Apr 2026 19:48:53 +0000 (21:48 +0200)]
remove unused HeapCellValueView

it is identical to HeapCellValueTag

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.