]>
Repositorios git - scryer-prolog.git/log
Javier Sagredo [Wed, 17 Jun 2026 22:25:36 +0000 (00:25 +0200)]
Merge branch 'js/read' into js/integration
Javier Sagredo [Wed, 17 Jun 2026 22:25:29 +0000 (00:25 +0200)]
Merge branch 'js/sleep' into js/integration
Javier Sagredo [Wed, 17 Jun 2026 22:02:07 +0000 (00:02 +0200)]
Raise interrupt exception on Ctrl-C at the read prompt
While rustyline holds the terminal in raw mode, Ctrl-C is delivered as
`ReadlineError::Interrupted` rather than as a `SIGINT`, so the ctrlc handler
never sets the `INTERRUPT` flag. `call_readline` also pushed Interrupted
into the generic IO-error arm, which read_term then mis-classified as
`end_of_file` so Ctrl-C at a `read/1` prompt unified `end_of_file` instead
of interrupting.
Handle `ReadlineError::Interrupted` explicitly: set `INTERRUPT` and return an
Interrupted IO error. `read_term` now checks the flag in its error arm and
raises the interrupt exception instead of falling through to the EOF or
syntax-error handling.
Javier Sagredo [Wed, 17 Jun 2026 21:58:29 +0000 (23:58 +0200)]
Make sleep/1 interruptible by Ctrl-C
sleep/1 previously called a single blocking std::thread::sleep for the
whole duration, which runs to completion regardless of SIGINT. The
interrupt flag was only polled by the dispatch loop every 256
instructions, so a sleep-dominated loop kept running for a
nondeterministic number of extra iterations after Ctrl-C.
Sleep in 50ms slices and poll interrupt_occured() between them, throwing
the interrupt exception promptly when the flag is set.
Javier Sagredo [Wed, 17 Jun 2026 11:04:12 +0000 (13:04 +0200)]
Raise interrupt exception on Ctrl-C at the read prompt
While rustyline holds the terminal in raw mode, Ctrl-C is delivered as
ReadlineError::Interrupted rather than as a SIGINT, so the ctrlc handler
never sets the INTERRUPT flag. call_readline also lumped Interrupted
into the generic IO-error arm, which read_term then mis-classified as
end_of_file -- so Ctrl-C at a read/1 prompt unified end_of_file instead
of interrupting.
Handle ReadlineError::Interrupted explicitly: set INTERRUPT and return an
Interrupted IO error. read_term now checks the flag in its error arm and
raises the interrupt exception instead of falling through to the EOF or
syntax-error handling.
Javier Sagredo [Wed, 17 Jun 2026 10:57:33 +0000 (12:57 +0200)]
Make sleep/1 interruptible by Ctrl-C
sleep/1 previously called a single blocking std::thread::sleep for the
whole duration, which runs to completion regardless of SIGINT. The
interrupt flag was only polled by the dispatch loop every 256
instructions, so a sleep-dominated loop kept running for a
nondeterministic number of extra iterations after Ctrl-C.
Sleep in 50ms slices and poll interrupt_occured() between them, throwing
the interrupt exception promptly when the flag is set.
Javier Sagredo [Tue, 16 Jun 2026 22:38:06 +0000 (00:38 +0200)]
Merge branch 'js/rustls' into js/integration
Javier Sagredo [Tue, 16 Jun 2026 22:26:41 +0000 (00:26 +0200)]
Merge branch 'js/pio-phrase-from-stream' into js/integration
Javier Sagredo [Tue, 16 Jun 2026 22:26:22 +0000 (00:26 +0200)]
Merge branch 'js/tls-process-docs' into js/integration
Javier Sagredo [Mon, 15 Jun 2026 22:09:35 +0000 (00:09 +0200)]
Change to rustls and expose optional client certificate
Javier Sagredo [Tue, 16 Jun 2026 21:49:12 +0000 (23:49 +0200)]
Proper backtracking on interrupted socket/http listeners
Javier Sagredo [Mon, 15 Jun 2026 21:43:40 +0000 (23:43 +0200)]
Better visuals for documentation in library(tls), library(process)
1. Trailing whitespaces makes Doclog not render lists as lists.
2. TLS module documentation was only visible in Prolog source code.
Javier Sagredo [Mon, 15 Jun 2026 21:14:18 +0000 (23:14 +0200)]
Allow using non-terminating streams in phrase_from_stream
Mark Thom [Thu, 11 Jun 2026 07:38:04 +0000 (00:38 -0700)]
Merge pull request #3331 from adri326/rawblock-safety
Prove safety of RawBlock and support multi-threaded usages
Mark Thom [Fri, 5 Jun 2026 20:55:21 +0000 (13:55 -0700)]
Merge pull request #3363 from Skgland/adjust-discussion-3359-test
adjust regression test for discussion 3359
Mark Thom [Fri, 5 Jun 2026 20:54:49 +0000 (13:54 -0700)]
Merge pull request #3364 from Skgland/finish-msrv-bump-cleanup
finish msrv bump cleanup
Skgland [Fri, 5 Jun 2026 18:47:20 +0000 (20:47 +0200)]
remove unecessary use of LayzLock
AtomicBool::new const
Skgland [Fri, 5 Jun 2026 18:45:18 +0000 (20:45 +0200)]
fix lint warnings
Skgland [Fri, 5 Jun 2026 18:44:38 +0000 (20:44 +0200)]
cleanup after msrv bump
Skgland [Fri, 5 Jun 2026 18:27:22 +0000 (20:27 +0200)]
adjust regression test for discussion 3359
- incorporate fix from https://github.com/mthom/scryer-prolog/commit/
3a2d57db33d49139d13c1e8cfba6eb3d79bcec19 #commitcomment-
187528793
- mark as should panic rather than ignored, this ensures that the test will be updated should this get fixed
Mark Thom [Thu, 4 Jun 2026 20:11:08 +0000 (13:11 -0700)]
Merge pull request #3299 from danilp-id/interrupt_test
Test: SIGINT should be able to interrupt non-terminating goals on linux
Danil Platonov [Thu, 4 Jun 2026 19:25:54 +0000 (12:25 -0700)]
fix merge
Danil Platonov [Thu, 4 Jun 2026 19:08:36 +0000 (12:08 -0700)]
Merge branch 'master' into interrupt_test
Mark Thom [Thu, 4 Jun 2026 17:56:09 +0000 (10:56 -0700)]
Merge pull request #3362 from danilp-id/socket_interrupt
Handle interrupts for socket_server_accept/4
Danil Platonov [Thu, 4 Jun 2026 09:41:11 +0000 (02:41 -0700)]
handle interrupts for tcp server
Mark Thom [Wed, 3 Jun 2026 20:36:21 +0000 (13:36 -0700)]
Merge pull request #3352 from danilp-id/http_interrupt
Interrupts support for http server + other improvements
Mark Thom [Wed, 3 Jun 2026 20:35:56 +0000 (13:35 -0700)]
Merge pull request #3360 from Skgland/fix-discussion-3359
Fix discussion 3359
Skgland [Wed, 3 Jun 2026 20:05:07 +0000 (22:05 +0200)]
ignore added test on i686-unknown-linux-gnu
appears to have been broken even before
d50d42509903dc3cc1841eb757a703753de84754
so has a different cause that needs to be investigated
Skgland [Wed, 3 Jun 2026 19:09:58 +0000 (21:09 +0200)]
fix discussion 3359
Skgland [Wed, 3 Jun 2026 19:09:39 +0000 (21:09 +0200)]
add regression test for discussion 3359
Mark Thom [Wed, 3 Jun 2026 05:19:21 +0000 (22:19 -0700)]
Merge pull request #3357 from Skgland/fix-issue3346
ensure ParallelHeapIter pushes its stack in pairs and fix 3346
Danil Platonov [Tue, 2 Jun 2026 07:49:00 +0000 (00:49 -0700)]
use Notify instead of Sender
Skgland [Mon, 1 Jun 2026 21:59:37 +0000 (23:59 +0200)]
fix parallel heap iter
Skgland [Mon, 1 Jun 2026 21:58:17 +0000 (23:58 +0200)]
use a pair for ParallelHeapIter
to ensure it is pushed popped in pairs
Danil Platonov [Sat, 30 May 2026 22:59:16 +0000 (15:59 -0700)]
unused code for unimplemented shutdown on timeout feature
Danil Platonov [Sat, 30 May 2026 22:56:18 +0000 (15:56 -0700)]
cargo fmt
Danil Platonov [Sat, 30 May 2026 22:47:50 +0000 (15:47 -0700)]
allow to stop and start http server at will with SIGINT, stop the server on uncaught throws, display timing info for each request, use setup_call_cleanup in more places to avoid potential leaks, when handler for a path doesn't have a matching case, throw a detailed error instead of silently continuing
Danil Platonov [Sat, 30 May 2026 18:45:57 +0000 (11:45 -0700)]
Test that SIGINT interrupts non-terminating goals on unix.
Cleanup: use tokio::test instead of special test helpers
Added pty_exec.py helper script to run binaries with a pseudoterminal attached (bug won't trigger otherwise).
Tested CI to fail on all unixes (ubuntu+macos) with older rustyline, and pass with new one.
Mark Thom [Thu, 28 May 2026 23:34:52 +0000 (16:34 -0700)]
Merge pull request #3347 from drzv/im7-compat2
showterm.el: use new magick command by default, fallback to convert
Mark Thom [Tue, 26 May 2026 20:01:23 +0000 (14:01 -0600)]
Merge pull request #3272 from abmclin/windows_improve_notty_stdin_support
Windows improve notty stdin support to resolve issue 3264
drzv [Tue, 26 May 2026 12:14:54 +0000 (08:14 -0400)]
showterm.el: use new magick command by default, fallback to convert
drzv [Tue, 26 May 2026 01:55:01 +0000 (01:55 +0000)]
showterm.el: revert #3338
Alexander McLin [Mon, 25 May 2026 22:24:24 +0000 (18:24 -0400)]
Issue 3264: rebase and update dependencies
Alexander McLin [Tue, 14 Apr 2026 19:27:52 +0000 (15:27 -0400)]
Issue 3264 add rationale comment & `#[allow(...)]`
Explain why no multibyte UTF-8 encoding support
Disable `bytes()` clippy warning about performance penalty due to unbuffered bytes
Alexander McLin [Sun, 12 Apr 2026 12:42:15 +0000 (08:42 -0400)]
Issue 3264: refactor `supported_terminal`
Use better code style
Alexander McLin [Sat, 11 Apr 2026 01:57:23 +0000 (21:57 -0400)]
Issue 3264: reformat to conform to style guidelines
Alexander McLin [Mon, 30 Mar 2026 01:29:48 +0000 (21:29 -0400)]
Fixes issue 3264 by adding a fallback read mode when reading from non-tty stdin on Windows
Mark Thom [Mon, 25 May 2026 21:10:02 +0000 (15:10 -0600)]
Merge pull request #3342 from Skgland/pdl-pairs
ensure pdl is pushed/popped in pairs and reuse tabu_list allocation by moving it from a local variable into the machine state
Mark Thom [Mon, 25 May 2026 21:08:37 +0000 (15:08 -0600)]
Merge pull request #3310 from Skgland/process_wait-release
add `release(Bool)` option to `process_wait/3`
Mark Thom [Mon, 25 May 2026 20:36:04 +0000 (14:36 -0600)]
Merge pull request #3320 from Skgland/all-pure-rust
add a feature for enabling all features that don't pull in non pure rust dependencies
Mark Thom [Mon, 25 May 2026 20:03:31 +0000 (14:03 -0600)]
Merge pull request #3317 from Skgland/optimize-put_back_char
optimize put_back_char
Skgland [Mon, 25 May 2026 17:07:20 +0000 (19:07 +0200)]
merge crypto-impure feature into feature crypto-full
Skgland [Mon, 25 May 2026 14:39:37 +0000 (16:39 +0200)]
more spelling fixes
Skgland [Sun, 24 May 2026 21:55:19 +0000 (23:55 +0200)]
fix spelling
Skgland [Mon, 27 Apr 2026 20:54:36 +0000 (22:54 +0200)]
cleanup
- fix some warnings and mark others as expected
- make use of the msrv bump to 1.93.1 and cleanup compat and workarounds
Skgland [Mon, 27 Apr 2026 20:53:05 +0000 (22:53 +0200)]
check individual features in CI
Skgland [Sat, 25 Apr 2026 19:17:48 +0000 (21:17 +0200)]
make crypto depending on ring optional
Mark Thom [Sun, 24 May 2026 19:27:00 +0000 (13:27 -0600)]
Merge pull request #3290 from abmclin/bump-rustyline-version-18
bump `Rust` version to 1.93.1 and bump `rustyline` to version 18.0.0
Mark Thom [Sun, 24 May 2026 19:22:33 +0000 (13:22 -0600)]
Merge pull request #3338 from drzv/master
Use make-process to call imagemagick in showterm.el
Mark Thom [Sun, 24 May 2026 19:22:00 +0000 (13:22 -0600)]
Merge pull request #3312 from Skgland/big-endian-miri
run miri for a big-endian target
Skgland [Sun, 24 May 2026 17:02:59 +0000 (19:02 +0200)]
configure linker via env var insread of .cargo/config.toml
someone might already have a .cargo/config.toml
Skgland [Sun, 24 May 2026 17:02:23 +0000 (19:02 +0200)]
fix missing description
Github documentation states that it is a required field and my linter complained
https://docs.github.com/en/actions/reference/workflows-and-actions/metadata-syntax#description
Skgland [Mon, 27 Apr 2026 19:33:08 +0000 (21:33 +0200)]
add a feature for things that are simple to cross-compile
Skgland [Sat, 25 Apr 2026 22:17:33 +0000 (00:17 +0200)]
fix miri not being passed the target
Skgland [Sat, 25 Apr 2026 19:41:59 +0000 (21:41 +0200)]
fix ci and setup cross-compilation
Skgland [Sat, 25 Apr 2026 19:27:03 +0000 (21:27 +0200)]
add miri CI for a big endian target
Skgland [Sun, 24 May 2026 08:30:30 +0000 (10:30 +0200)]
fix spelling again
Skgland [Sun, 24 May 2026 08:25:24 +0000 (10:25 +0200)]
remove out-dated comment and fix spelling/grammar
Mark Thom [Sun, 24 May 2026 00:27:50 +0000 (18:27 -0600)]
Merge pull request #3311 from Skgland/cleanup2
some cleanup and fixes
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
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
Skgland [Sat, 23 May 2026 09:28:45 +0000 (11:28 +0200)]
fix spelling
Markus Triska [Sat, 23 May 2026 08:14:15 +0000 (10:14 +0200)]
link to Scryer Prolog Meetup 2026 page and its announcement
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
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
Mark Thom [Sat, 23 May 2026 04:53:49 +0000 (22:53 -0600)]
Merge pull request #3328 from Skgland/update-libffi
upgrade libffi dependency
Mark Thom [Sat, 23 May 2026 04:52:27 +0000 (22:52 -0600)]
Merge pull request #3316 from josd/master
Improve CharReader buffering
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
Skgland [Sun, 17 May 2026 18:50:37 +0000 (20:50 +0200)]
reuse tabu list
Skgland [Sun, 17 May 2026 17:45:55 +0000 (19:45 +0200)]
ensure pdl is pushed/popped in pairs
drzv [Thu, 14 May 2026 19:10:05 +0000 (19:10 +0000)]
Call ImageMagick with make-process. Redirect stderr to separate buffer
Dmitrii Shlagov [Thu, 14 May 2026 14:25:33 +0000 (16:25 +0200)]
fix var mode in between/3 documentation
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
Dmitrii Shlagov [Tue, 12 May 2026 15:14:19 +0000 (17:14 +0200)]
roll back gitignore changes
Dmitry Shlagoff [Tue, 12 May 2026 14:12:33 +0000 (16:12 +0200)]
remove redundant closure
Dmitry Shlagoff [Tue, 12 May 2026 13:39:35 +0000 (15:39 +0200)]
replace lazy_static macro with std::sync::LazyLock
Emilie Burgun [Sun, 10 May 2026 18:00:02 +0000 (20:00 +0200)]
RawBlock: finish proof of safety and defragment after growing
After calling `grow()`, the new head would jump to `old_capacity` rather
than staying to the same offset.
In practice this only loses a few bytes at most.
Emilie Burgun [Sun, 10 May 2026 17:21:36 +0000 (19:21 +0200)]
RawBlock: switch to Cell or AtomicPtr instead of UnsafeCell
This is the first step towards enabling multithreading on AtomTable.
For now RawBlock will default to using Cell, which yields a byte-
equivalent compiled output.
Also adds an `atomic` feature, which, when enabled, will make RawBlock
use an AtomicPtr instead, ensuring that it implements `Sync`.
Emilie Burgun [Sun, 10 May 2026 13:07:08 +0000 (15:07 +0200)]
RawBlock: seal `base` and add Stack::index_dangling_or_frame
Direct accesses to `base` are replaced with dedicated methods with
explicit safety requirements.
Emilie Burgun [Sun, 10 May 2026 11:53:58 +0000 (13:53 +0200)]
RawBlock: seal most fields, replace `top` with a `capacity` field
Skgland [Fri, 8 May 2026 20:36:41 +0000 (22:36 +0200)]
upgrade libffi dependency
Alexander McLin [Tue, 5 May 2026 13:58:05 +0000 (09:58 -0400)]
Bump Cargo.toml `rust-version` to `1.93.1`
MSRV discussion settled on `1.93.1` to align with upcoming Debian stable releases
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!
Markus Triska [Sun, 3 May 2026 07:51:42 +0000 (09:51 +0200)]
add link to VATmiraal, https://vatmiraal.be
Skgland [Thu, 30 Apr 2026 17:54:39 +0000 (19:54 +0200)]
un-ignore lorem_ipsum tests as they are no longer slow
Skgland [Thu, 30 Apr 2026 17:44:31 +0000 (19:44 +0200)]
optimize CharReader
Skgland [Thu, 30 Apr 2026 17:02:27 +0000 (19:02 +0200)]
use a function rather than a closure
Skgland [Thu, 30 Apr 2026 17:01:34 +0000 (19:01 +0200)]
add a test with bad utf-8
Skgland [Sun, 26 Apr 2026 11:43:04 +0000 (13:43 +0200)]
optimize put_back_char
Always encode the char directly into the buffer.
Only shift the buffer content if there isn't enough room in the front.
josd [Sun, 26 Apr 2026 11:42:41 +0000 (13:42 +0200)]
Improve CharReader buffering