]> Repositorios git - scryer-prolog.git/log
scryer-prolog.git
5 weeks agoMerge branch 'js/read' into js/integration js/integration
Javier Sagredo [Wed, 17 Jun 2026 22:25:36 +0000 (00:25 +0200)]
Merge branch 'js/read' into js/integration

5 weeks agoMerge branch 'js/sleep' into js/integration
Javier Sagredo [Wed, 17 Jun 2026 22:25:29 +0000 (00:25 +0200)]
Merge branch 'js/sleep' into js/integration

5 weeks agoRaise interrupt exception on Ctrl-C at the read prompt
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.

5 weeks agoMake sleep/1 interruptible by Ctrl-C
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.

5 weeks agoRaise interrupt exception on Ctrl-C at the read prompt
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.

5 weeks agoMake sleep/1 interruptible by Ctrl-C
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.

5 weeks agoMerge branch 'js/rustls' into js/integration
Javier Sagredo [Tue, 16 Jun 2026 22:38:06 +0000 (00:38 +0200)]
Merge branch 'js/rustls' into js/integration

5 weeks agoMerge branch 'js/pio-phrase-from-stream' 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

5 weeks agoMerge branch 'js/tls-process-docs' 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

5 weeks agoChange to rustls and expose optional client certificate
Javier Sagredo [Mon, 15 Jun 2026 22:09:35 +0000 (00:09 +0200)]
Change to rustls and expose optional client certificate

5 weeks agoProper backtracking on interrupted socket/http listeners
Javier Sagredo [Tue, 16 Jun 2026 21:49:12 +0000 (23:49 +0200)]
Proper backtracking on interrupted socket/http listeners

5 weeks agoBetter visuals for documentation in library(tls), library(process)
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.

6 weeks agoAllow using non-terminating streams in phrase_from_stream
Javier Sagredo [Mon, 15 Jun 2026 21:14:18 +0000 (23:14 +0200)]
Allow using non-terminating streams in phrase_from_stream

6 weeks agoMerge pull request #3331 from adri326/rawblock-safety
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

7 weeks agoMerge pull request #3363 from Skgland/adjust-discussion-3359-test
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

7 weeks agoMerge pull request #3364 from Skgland/finish-msrv-bump-cleanup
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

7 weeks agoremove unecessary use of LayzLock
Skgland [Fri, 5 Jun 2026 18:47:20 +0000 (20:47 +0200)]
remove unecessary use of LayzLock

AtomicBool::new const

7 weeks agofix lint warnings
Skgland [Fri, 5 Jun 2026 18:45:18 +0000 (20:45 +0200)]
fix lint warnings

7 weeks agocleanup after msrv bump
Skgland [Fri, 5 Jun 2026 18:44:38 +0000 (20:44 +0200)]
cleanup after msrv bump

7 weeks agoadjust regression test for discussion 3359
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

7 weeks agoMerge pull request #3299 from danilp-id/interrupt_test
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

7 weeks agofix merge
Danil Platonov [Thu, 4 Jun 2026 19:25:54 +0000 (12:25 -0700)]
fix merge

7 weeks agoMerge branch 'master' into interrupt_test
Danil Platonov [Thu, 4 Jun 2026 19:08:36 +0000 (12:08 -0700)]
Merge branch 'master' into interrupt_test

7 weeks agoMerge pull request #3362 from danilp-id/socket_interrupt
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

7 weeks agohandle interrupts for tcp server
Danil Platonov [Thu, 4 Jun 2026 09:41:11 +0000 (02:41 -0700)]
handle interrupts for tcp server

7 weeks agoMerge pull request #3352 from danilp-id/http_interrupt
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

7 weeks agoMerge pull request #3360 from Skgland/fix-discussion-3359
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

7 weeks agoignore added test on i686-unknown-linux-gnu
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

7 weeks agofix discussion 3359
Skgland [Wed, 3 Jun 2026 19:09:58 +0000 (21:09 +0200)]
fix discussion 3359

7 weeks agoadd regression test for discussion 3359
Skgland [Wed, 3 Jun 2026 19:09:39 +0000 (21:09 +0200)]
add regression test for discussion 3359

7 weeks agoMerge pull request #3357 from Skgland/fix-issue3346
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

7 weeks agouse Notify instead of Sender
Danil Platonov [Tue, 2 Jun 2026 07:49:00 +0000 (00:49 -0700)]
use Notify instead of Sender

7 weeks agofix parallel heap iter
Skgland [Mon, 1 Jun 2026 21:59:37 +0000 (23:59 +0200)]
fix parallel heap iter

7 weeks agouse a pair for ParallelHeapIter
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

8 weeks agounused code for unimplemented shutdown on timeout feature
Danil Platonov [Sat, 30 May 2026 22:59:16 +0000 (15:59 -0700)]
unused code for unimplemented shutdown on timeout feature

8 weeks agocargo fmt
Danil Platonov [Sat, 30 May 2026 22:56:18 +0000 (15:56 -0700)]
cargo fmt

8 weeks agoallow to stop and start http server at will with SIGINT, stop the server on uncaught...
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

8 weeks agoTest that SIGINT interrupts non-terminating goals on unix.
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.

8 weeks agoMerge pull request #3347 from drzv/im7-compat2 HEAD master origin/HEAD origin/master
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

2 months agoMerge pull request #3272 from abmclin/windows_improve_notty_stdin_support
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

2 months agoshowterm.el: use new magick command by default, fallback to convert
drzv [Tue, 26 May 2026 12:14:54 +0000 (08:14 -0400)]
showterm.el: use new magick command by default, fallback to convert

2 months agoshowterm.el: revert #3338
drzv [Tue, 26 May 2026 01:55:01 +0000 (01:55 +0000)]
showterm.el: revert #3338

2 months agoIssue 3264: rebase and update dependencies
Alexander McLin [Mon, 25 May 2026 22:24:24 +0000 (18:24 -0400)]
Issue 3264: rebase and update dependencies

2 months agoIssue 3264 add rationale comment & `#[allow(...)]`
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

2 months agoIssue 3264: refactor `supported_terminal`
Alexander McLin [Sun, 12 Apr 2026 12:42:15 +0000 (08:42 -0400)]
Issue 3264: refactor `supported_terminal`

Use better code style

2 months agoIssue 3264: reformat to conform to style guidelines
Alexander McLin [Sat, 11 Apr 2026 01:57:23 +0000 (21:57 -0400)]
Issue 3264: reformat to conform to style guidelines

2 months agoFixes issue 3264 by adding a fallback read mode when reading from non-tty stdin on...
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

2 months agoMerge pull request #3342 from Skgland/pdl-pairs
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

2 months agoMerge pull request #3310 from Skgland/process_wait-release
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`

2 months agoMerge pull request #3320 from Skgland/all-pure-rust
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

2 months agoMerge pull request #3317 from Skgland/optimize-put_back_char
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

2 months agomerge crypto-impure feature into feature crypto-full
Skgland [Mon, 25 May 2026 17:07:20 +0000 (19:07 +0200)]
merge crypto-impure feature into feature crypto-full

2 months agomore spelling fixes
Skgland [Mon, 25 May 2026 14:39:37 +0000 (16:39 +0200)]
more spelling fixes

2 months agofix spelling
Skgland [Sun, 24 May 2026 21:55:19 +0000 (23:55 +0200)]
fix spelling

2 months agocleanup
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

2 months agocheck individual features in CI
Skgland [Mon, 27 Apr 2026 20:53:05 +0000 (22:53 +0200)]
check individual features in CI

2 months agomake crypto depending on ring optional
Skgland [Sat, 25 Apr 2026 19:17:48 +0000 (21:17 +0200)]
make crypto depending on ring optional

2 months agoMerge pull request #3290 from abmclin/bump-rustyline-version-18
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

2 months agoMerge pull request #3338 from drzv/master
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

2 months agoMerge pull request #3312 from Skgland/big-endian-miri
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

2 months agoconfigure linker via env var insread of .cargo/config.toml
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

2 months agofix missing description
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

2 months agoadd a feature for things that are simple to cross-compile
Skgland [Mon, 27 Apr 2026 19:33:08 +0000 (21:33 +0200)]
add a feature for things that are simple to cross-compile

2 months agofix miri not being passed the target
Skgland [Sat, 25 Apr 2026 22:17:33 +0000 (00:17 +0200)]
fix miri not being passed the target

2 months agofix ci and setup cross-compilation
Skgland [Sat, 25 Apr 2026 19:41:59 +0000 (21:41 +0200)]
fix ci and setup cross-compilation

2 months 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 months agofix spelling again
Skgland [Sun, 24 May 2026 08:30:30 +0000 (10:30 +0200)]
fix spelling again

2 months agoremove out-dated comment and fix spelling/grammar
Skgland [Sun, 24 May 2026 08:25:24 +0000 (10:25 +0200)]
remove out-dated comment and fix spelling/grammar

2 months 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 months 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 months 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 months agofix spelling
Skgland [Sat, 23 May 2026 09:28:45 +0000 (11:28 +0200)]
fix spelling

2 months 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 months 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 months 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 months 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 months 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 months 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

2 months agoreuse tabu list
Skgland [Sun, 17 May 2026 18:50:37 +0000 (20:50 +0200)]
reuse tabu list

2 months agoensure pdl is pushed/popped in pairs
Skgland [Sun, 17 May 2026 17:45:55 +0000 (19:45 +0200)]
ensure pdl is pushed/popped in pairs

2 months agoCall ImageMagick with make-process. Redirect stderr to separate buffer
drzv [Thu, 14 May 2026 19:10:05 +0000 (19:10 +0000)]
Call ImageMagick with make-process. Redirect stderr to separate buffer

2 months 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

2 months 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

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

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

2 months 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

2 months agoRawBlock: finish proof of safety and defragment after growing
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.

2 months agoRawBlock: switch to Cell or AtomicPtr instead of UnsafeCell
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`.

2 months agoRawBlock: seal `base` and add Stack::index_dangling_or_frame
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.

2 months agoRawBlock: seal most fields, replace `top` with a `capacity` field
Emilie Burgun [Sun, 10 May 2026 11:53:58 +0000 (13:53 +0200)]
RawBlock: seal most fields, replace `top` with a `capacity` field

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

2 months agoBump Cargo.toml `rust-version` to `1.93.1`
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

2 months 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!

2 months 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

2 months agoun-ignore lorem_ipsum tests as they are no longer slow
Skgland [Thu, 30 Apr 2026 17:54:39 +0000 (19:54 +0200)]
un-ignore lorem_ipsum tests as they are no longer slow

2 months agooptimize CharReader
Skgland [Thu, 30 Apr 2026 17:44:31 +0000 (19:44 +0200)]
optimize CharReader

2 months agouse a function rather than a closure
Skgland [Thu, 30 Apr 2026 17:02:27 +0000 (19:02 +0200)]
use a function rather than a closure

2 months agoadd a test with bad utf-8
Skgland [Thu, 30 Apr 2026 17:01:34 +0000 (19:01 +0200)]
add a test with bad utf-8

3 months agooptimize put_back_char
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.

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