]> Repositorios git - scryer-prolog.git/log
scryer-prolog.git
2 weeks agoadd miri CI for a big endian target
Skgland [Sat, 25 Apr 2026 19:27:03 +0000 (21:27 +0200)]
add miri CI for a big endian target

2 weeks agoMerge pull request #3311 from Skgland/cleanup2
Mark Thom [Sun, 24 May 2026 00:27:50 +0000 (18:27 -0600)]
Merge pull request #3311 from Skgland/cleanup2

some cleanup and fixes

2 weeks agoMerge pull request #3333 from 0nkery/lazy-lock
Mark Thom [Sat, 23 May 2026 15:51:22 +0000 (09:51 -0600)]
Merge pull request #3333 from 0nkery/lazy-lock

replace lazy_static macro with std::sync::LazyLock

2 weeks agoMerge pull request #3345 from triska/meetups
Mark Thom [Sat, 23 May 2026 15:51:06 +0000 (09:51 -0600)]
Merge pull request #3345 from triska/meetups

link to Scryer Prolog Meetup 2026 page and its announcement

2 weeks agolink to Scryer Prolog Meetup 2026 page and its announcement
Markus Triska [Sat, 23 May 2026 08:14:15 +0000 (10:14 +0200)]
link to Scryer Prolog Meetup 2026 page and its announcement

2 weeks agoMerge pull request #3336 from 0nkery/fix-between-doc
Mark Thom [Sat, 23 May 2026 05:04:05 +0000 (23:04 -0600)]
Merge pull request #3336 from 0nkery/fix-between-doc

fix var mode in between/3 documentation

2 weeks agoMerge pull request #3334 from Skgland/stable-order
Mark Thom [Sat, 23 May 2026 04:56:13 +0000 (22:56 -0600)]
Merge pull request #3334 from Skgland/stable-order

use BTree{Map,Set} to ensure a stable order based on the key/entry

2 weeks agoMerge pull request #3328 from Skgland/update-libffi
Mark Thom [Sat, 23 May 2026 04:53:49 +0000 (22:53 -0600)]
Merge pull request #3328 from Skgland/update-libffi

upgrade libffi dependency

2 weeks agoMerge pull request #3316 from josd/master
Mark Thom [Sat, 23 May 2026 04:52:27 +0000 (22:52 -0600)]
Merge pull request #3316 from josd/master

Improve CharReader buffering

2 weeks agoMerge pull request #3323 from triska/VATmiraal
Mark Thom [Sat, 23 May 2026 04:45:39 +0000 (22:45 -0600)]
Merge pull request #3323 from triska/VATmiraal

add link to VATmiraal, https://vatmiraal.be

4 weeks agofix var mode in between/3 documentation
Dmitrii Shlagov [Thu, 14 May 2026 14:25:33 +0000 (16:25 +0200)]
fix var mode in between/3 documentation

4 weeks agouse BTree{Map,Set} to ensure a stable order based on the key/entry even if filesystem...
Skgland [Wed, 13 May 2026 22:50:37 +0000 (00:50 +0200)]
use BTree{Map,Set} to ensure a stable order based on the key/entry even if filesystem enumeration order changes

this should help with reproducibility

4 weeks agoroll back gitignore changes
Dmitrii Shlagov [Tue, 12 May 2026 15:14:19 +0000 (17:14 +0200)]
roll back gitignore changes

4 weeks agoremove redundant closure
Dmitry Shlagoff [Tue, 12 May 2026 14:12:33 +0000 (16:12 +0200)]
remove redundant closure

4 weeks agoreplace lazy_static macro with std::sync::LazyLock
Dmitry Shlagoff [Tue, 12 May 2026 13:39:35 +0000 (15:39 +0200)]
replace lazy_static macro with std::sync::LazyLock

4 weeks agoupgrade libffi dependency
Skgland [Fri, 8 May 2026 20:36:41 +0000 (22:36 +0200)]
upgrade libffi dependency

5 weeks agoexplanation of product
Markus Triska [Sun, 3 May 2026 09:00:14 +0000 (11:00 +0200)]
explanation of product

See posting by @constraintAutomaton at:

    https://github.com/mthom/scryer-prolog/pull/3323#issuecomment-4365798844

Many thanks!

5 weeks agoadd link to VATmiraal, https://vatmiraal.be
Markus Triska [Sun, 3 May 2026 07:51:42 +0000 (09:51 +0200)]
add link to VATmiraal, https://vatmiraal.be

6 weeks agoImprove CharReader buffering
josd [Sun, 26 Apr 2026 11:42:41 +0000 (13:42 +0200)]
Improve CharReader buffering

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!