]> Repositorios git - scryer-prolog.git/log
scryer-prolog.git
2 years agoMerge pull request #2010 from aarroyoc/update-website-0.9.2
Mark Thom [Sun, 10 Sep 2023 23:45:45 +0000 (17:45 -0600)]
Merge pull request #2010 from aarroyoc/update-website-0.9.2

Update INDEX.dj

2 years agoUpdate website to mention 0.9.2 and playground
Adrián Arroyo Calle [Sun, 10 Sep 2023 21:12:10 +0000 (23:12 +0200)]
Update website to mention 0.9.2 and playground

2 years agoMerge pull request #2008 from triska/clpb_improvements
Mark Thom [Sat, 9 Sep 2023 06:40:30 +0000 (00:40 -0600)]
Merge pull request #2008 from triska/clpb_improvements

Various CLP(B) improvements

2 years agoremove code that is not needed in Scryer Prolog
Markus Triska [Sat, 9 Sep 2023 05:23:34 +0000 (07:23 +0200)]
remove code that is not needed in Scryer Prolog

2 years agoremove more attributes so that they do not appear in residual goals
Markus Triska [Fri, 8 Sep 2023 21:19:10 +0000 (23:19 +0200)]
remove more attributes so that they do not appear in residual goals

2 years agomove compatibility predicates and meta_predicate/1 declarations so that they are...
Markus Triska [Fri, 8 Sep 2023 21:12:33 +0000 (23:12 +0200)]
move compatibility predicates and meta_predicate/1 declarations so that they are correctly taken into account

2 years agoMerge pull request #2006 from infogulch/wasm-ci
Mark Thom [Sat, 9 Sep 2023 05:34:59 +0000 (23:34 -0600)]
Merge pull request #2006 from infogulch/wasm-ci

Add wasm build steps

2 years agoMerge pull request #2007 from triska/rust_1_70
Mark Thom [Sat, 9 Sep 2023 05:34:36 +0000 (23:34 -0600)]
Merge pull request #2007 from triska/rust_1_70

update required Rust version

2 years agoshorter partition/5, relying on first instantiated argument indexing
Markus Triska [Fri, 8 Sep 2023 20:47:59 +0000 (22:47 +0200)]
shorter partition/5, relying on first instantiated argument indexing

2 years agoadd meta_predicate/1 declaration for include/3 and exclude/3
Markus Triska [Fri, 8 Sep 2023 20:41:49 +0000 (22:41 +0200)]
add meta_predicate/1 declaration for include/3 and exclude/3

2 years agoshorter include/3 and exclude/3, relying on improved indexing
Markus Triska [Fri, 8 Sep 2023 20:40:50 +0000 (22:40 +0200)]
shorter include/3 and exclude/3, relying on improved indexing

2 years agoadd licensing information, addressing part of #1798
Markus Triska [Fri, 8 Sep 2023 20:37:18 +0000 (22:37 +0200)]
add licensing information, addressing part of #1798

2 years agoupdate required Rust version
Markus Triska [Sat, 9 Sep 2023 05:30:23 +0000 (07:30 +0200)]
update required Rust version

2 years agoAdd wasm build steps
Joe Taber [Sat, 9 Sep 2023 00:25:36 +0000 (19:25 -0500)]
Add wasm build steps

2 years agoMerge pull request #2004 from triska/generalize_description
Mark Thom [Fri, 8 Sep 2023 22:11:06 +0000 (16:11 -0600)]
Merge pull request #2004 from triska/generalize_description

this holds for all architectures (also 32-bit systems)

2 years agoMerge pull request #2003 from triska/clpz_comment
Mark Thom [Fri, 8 Sep 2023 21:22:49 +0000 (15:22 -0600)]
Merge pull request #2003 from triska/clpz_comment

update comment

2 years agothis holds for all architectures (also 32-bit systems)
Markus Triska [Fri, 8 Sep 2023 21:22:36 +0000 (23:22 +0200)]
this holds for all architectures (also 32-bit systems)

2 years agoupdate comment
Markus Triska [Fri, 8 Sep 2023 20:33:55 +0000 (22:33 +0200)]
update comment

2 years agoMerge pull request #1986 from rujialiu/wasm32-support
Mark Thom [Fri, 8 Sep 2023 17:15:51 +0000 (11:15 -0600)]
Merge pull request #1986 from rujialiu/wasm32-support

Basic WebAssembly support with minimal Javascript API #615

2 years agoBasic WebAssembly support with minimal Javascript API #615. Currently 6/12 crypto...
Rujia Liu [Fri, 8 Sep 2023 09:27:22 +0000 (17:27 +0800)]
Basic WebAssembly support with minimal Javascript API #615. Currently 6/12 crypto functions supported. Tested in browser with all default features disabled.

2 years agocheck atom == ',' in ambiguity_check mirroring logic in print_op_addendum (#2000)
Mark [Tue, 5 Sep 2023 20:56:26 +0000 (14:56 -0600)]
check atom == ',' in ambiguity_check mirroring logic in print_op_addendum (#2000)

2 years agoremove error printing redundancy and inconsistent state resulting from file_load_clea...
Mark [Tue, 5 Sep 2023 19:52:18 +0000 (13:52 -0600)]
remove error printing redundancy and inconsistent state resulting from file_load_cleanup (#1995)

2 years agoMerge pull request #1980 from Skgland/atomtable
Mark Thom [Tue, 5 Sep 2023 18:32:20 +0000 (12:32 -0600)]
Merge pull request #1980 from Skgland/atomtable

make AtomTable consurrency safe

2 years agoMerge pull request #1997 from triska/countall
Mark Thom [Tue, 5 Sep 2023 18:04:52 +0000 (12:04 -0600)]
Merge pull request #1997 from triska/countall

Corrections to countall/2

2 years agocall_with_inference_limit/3 should fail if inference limit is exceeded and R term...
Mark [Tue, 5 Sep 2023 17:51:06 +0000 (11:51 -0600)]
call_with_inference_limit/3 should fail if inference limit is exceeded and R term is not inference_limit_exceeded (#1977)

2 years agoFIXED: documentation of countall/2 (#1976)
Markus Triska [Tue, 5 Sep 2023 17:42:55 +0000 (19:42 +0200)]
FIXED: documentation of countall/2 (#1976)

2 years agomake F64Table concurency safe
Bennet Bleßmann [Sat, 2 Sep 2023 20:27:43 +0000 (22:27 +0200)]
make F64Table concurency safe

2 years agoremove locks from AtomTable
Bennet Bleßmann [Sat, 2 Sep 2023 19:31:01 +0000 (21:31 +0200)]
remove locks from AtomTable

there are technically still two locks
- the Mutex to serialize consurrent updates to the AtomTable
- the RwLock as part of GLOBAL_ATOM_TABLE

the former is the age lock of RESIZE ATOM TABLE in <https://arxiv.org/pdf/1608.00989.pdf>, though we use it for the whole update as we don't match the whole structure and can't reserve an atom slot as is, so we need to also lock concurrent updates without resizing

the later should be uncontendet as we only write AtomTable::new iff the current value is a dangling Weak

2 years ago[WIP] move towards lockless AtomTable
Bennet Bleßmann [Mon, 28 Aug 2023 21:24:27 +0000 (23:24 +0200)]
[WIP] move towards lockless AtomTable

2 years agoFIXED: countall/2 for zero solutions (#1996)
Markus Triska [Tue, 5 Sep 2023 17:39:05 +0000 (19:39 +0200)]
FIXED: countall/2 for zero solutions (#1996)

Example:

    ?- countall(false, 0).
       true.

2 years agofix `rust_beta_channel` feature
Skgland [Sun, 27 Aug 2023 20:23:22 +0000 (22:23 +0200)]
fix `rust_beta_channel` feature

2 years agofix accidentally left in println!()
Skgland [Sun, 27 Aug 2023 20:22:59 +0000 (22:22 +0200)]
fix accidentally left in println!()

2 years agoraise msrv for OnceLock support
Skgland [Sun, 27 Aug 2023 18:05:12 +0000 (20:05 +0200)]
raise msrv for OnceLock support

2 years agoadd comment why blocking_write is not used
Skgland [Sun, 27 Aug 2023 17:58:08 +0000 (19:58 +0200)]
add comment why blocking_write is not used

2 years agofix deadlock in `load_library_as_stream`
Skgland [Sun, 27 Aug 2023 17:56:55 +0000 (19:56 +0200)]
fix deadlock in `load_library_as_stream`

2 years ago[WIP] fix deadlock in AtomTable::build_with
Bennet Bleßmann [Mon, 28 Aug 2023 21:04:30 +0000 (23:04 +0200)]
[WIP] fix deadlock in AtomTable::build_with

2 years ago[WIP] make AtomTable concurrentcy ready
Skgland [Fri, 25 Aug 2023 23:10:49 +0000 (01:10 +0200)]
[WIP] make AtomTable concurrentcy ready

2 years agorun cargo fmt
Skgland [Fri, 25 Aug 2023 23:29:53 +0000 (01:29 +0200)]
run cargo fmt

2 years agocorrect inference counting over index backtracking, built-ins (#1977, #1987)
Mark [Mon, 4 Sep 2023 23:15:05 +0000 (17:15 -0600)]
correct inference counting over index backtracking, built-ins (#1977, #1987)

2 years agoMerge pull request #1991 from triska/discoverable_flags
Mark Thom [Mon, 4 Sep 2023 00:39:24 +0000 (18:39 -0600)]
Merge pull request #1991 from triska/discoverable_flags

FIXED: make occurs_check and answer_write_options flags discoverable

2 years agoMerge pull request #1990 from triska/clpb_max
Mark Thom [Mon, 4 Sep 2023 00:39:12 +0000 (18:39 -0600)]
Merge pull request #1990 from triska/clpb_max

remove clpb_max/1 attribute for residual goal projection

2 years agoFIXED: make occurs_check and answer_write_options flags discoverable
Markus Triska [Sun, 3 Sep 2023 22:49:40 +0000 (00:49 +0200)]
FIXED: make occurs_check and answer_write_options flags discoverable

Quoting from 7.11 Flags:

   NOTE - A built-in predicate current_prolog_flag(Flag, Value)
   (8.17.2) enables a program to discover all the flags supported
   by a processor and their current values.

2 years agoupdate answer
Markus Triska [Sun, 3 Sep 2023 20:01:38 +0000 (22:01 +0200)]
update answer

2 years agountabify
Markus Triska [Sun, 3 Sep 2023 19:57:51 +0000 (21:57 +0200)]
untabify

2 years agoremove clpb_max/1 attribute for residual goal projection
Markus Triska [Sun, 3 Sep 2023 19:47:58 +0000 (21:47 +0200)]
remove clpb_max/1 attribute for residual goal projection

Example:

    ?- sat(A+B), weighted_maximum([1,1], [A,B], Max).
       A = 1, B = 1, Max = 2.

2 years agoMerge pull request #1988 from triska/answer_write_options
Mark Thom [Sun, 3 Sep 2023 17:36:40 +0000 (11:36 -0600)]
Merge pull request #1988 from triska/answer_write_options

ADDED: New Prolog flag, answer_write_options.

2 years agoMerge pull request #1989 from triska/mention_binaries
Mark Thom [Sun, 3 Sep 2023 17:36:07 +0000 (11:36 -0600)]
Merge pull request #1989 from triska/mention_binaries

mention precompiled binaries

2 years agomention precompiled binaries
Markus Triska [Sun, 3 Sep 2023 12:12:46 +0000 (14:12 +0200)]
mention precompiled binaries

2 years agoADDED: New Prolog flag, answer_write_options.
Markus Triska [Sun, 3 Sep 2023 07:33:16 +0000 (09:33 +0200)]
ADDED: New Prolog flag, answer_write_options.

This lets us specify additional write options used by the top level
for writing answers.

2 years agorefine is/2 compilation so errors are thrown when expected without needlessly allocat...
Mark [Tue, 29 Aug 2023 22:42:23 +0000 (16:42 -0600)]
refine is/2 compilation so errors are thrown when expected without needlessly allocating (#1974, #1984)

2 years agodon't compile is instruction if bound to anonymous variable (#1974)
Mark [Tue, 29 Aug 2023 21:26:08 +0000 (15:26 -0600)]
don't compile is instruction if bound to anonymous variable (#1974)

2 years agoupdate Cargo.toml version numbers and bump version number v0.9.2
Mark [Mon, 28 Aug 2023 19:23:56 +0000 (13:23 -0600)]
update Cargo.toml version numbers and bump version number

2 years agoMerge pull request #1978 from aarroyoc/ci-32-bits
Mark Thom [Sun, 27 Aug 2023 18:49:20 +0000 (12:49 -0600)]
Merge pull request #1978 from aarroyoc/ci-32-bits

32 bit CI for Linux

2 years agoMerge pull request #1979 from triska/normalize_space
Mark Thom [Sun, 27 Aug 2023 18:48:48 +0000 (12:48 -0600)]
Merge pull request #1979 from triska/normalize_space

ENHANCED: rudimentary implementation of normalize_space

2 years ago32 bit CI for Linux
Adrián Arroyo Calle [Sat, 26 Aug 2023 07:28:46 +0000 (09:28 +0200)]
32 bit CI for Linux

2 years agoreplace adjacent whitespace characters with a single SPACE character
Markus Triska [Sun, 27 Aug 2023 10:55:29 +0000 (12:55 +0200)]
replace adjacent whitespace characters with a single SPACE character

2 years agoENHANCED: rudimentary implementation of normalize_space
Markus Triska [Sun, 27 Aug 2023 07:56:30 +0000 (09:56 +0200)]
ENHANCED: rudimentary implementation of normalize_space

This removes leading and trailing whitespace from the text. Whitespace
within the string is not yet considered.

2 years agoMerge pull request #1972 from rujialiu/32-bit-support
Mark Thom [Fri, 25 Aug 2023 16:51:15 +0000 (10:51 -0600)]
Merge pull request #1972 from rujialiu/32-bit-support

32-bit system support #615 #1509 (WIP)

2 years ago32-bit system support, addressing all (at most) 4GB addresses of RAM.
Rujia Liu [Thu, 24 Aug 2023 12:05:40 +0000 (20:05 +0800)]
32-bit system support, addressing all (at most) 4GB addresses of RAM.

2 years agoMerge pull request #1973 from triska/clpz
Mark Thom [Tue, 22 Aug 2023 21:04:33 +0000 (15:04 -0600)]
Merge pull request #1973 from triska/clpz

CLP(ℤ) improvements, notably related to queue handling

2 years agoattach more propagators before starting propagation
Markus Triska [Mon, 21 Aug 2023 19:52:28 +0000 (21:52 +0200)]
attach more propagators before starting propagation

This prevents repeated triggering of already attached propagators
while new propagators are being attached to involved variables.

2 years agoremove optional (+)/1 prefix in get_atts/2 and put_atts/2 calls
Markus Triska [Sun, 20 Aug 2023 19:38:33 +0000 (21:38 +0200)]
remove optional (+)/1 prefix in get_atts/2 and put_atts/2 calls

The (+)/1 prefix in get_atts/2 at line 4219 by itself already causes a
greater than 15% slowdown for the benchmark shown in #1730:

    ?- N #= 2^14,
       time(((between(1, N, _),
              X #\= Y,
              false)
            ; true)).

The performance impact is not a good reason to remove the optional
(+)/1 prefix! Performance issues should be addressed at the root, in
this case get_atts/2 (#1962). We should never manually work around
performance issues in built-in predicates.

In contrast, readability is a good argument, and I find the calls
slightly easier to read without the optional (+)/1 prefix.

The prefix is now consistently omitted when possible.

2 years agouse pneq/2
Markus Triska [Tue, 15 Aug 2023 19:50:15 +0000 (21:50 +0200)]
use pneq/2

2 years agoenforce same queue in more constraints
Markus Triska [Tue, 15 Aug 2023 19:44:39 +0000 (21:44 +0200)]
enforce same queue in more constraints

2 years agoappend the entire queues instead of inserting each element individually
Markus Triska [Tue, 15 Aug 2023 19:43:19 +0000 (21:43 +0200)]
append the entire queues instead of inserting each element individually

2 years agoadapt query to Scryer Prolog
Markus Triska [Tue, 15 Aug 2023 19:39:32 +0000 (21:39 +0200)]
adapt query to Scryer Prolog

2 years agoupdate answers
Markus Triska [Tue, 15 Aug 2023 19:38:56 +0000 (21:38 +0200)]
update answers

2 years agouse can_be/2
Markus Triska [Tue, 15 Aug 2023 19:36:59 +0000 (21:36 +0200)]
use can_be/2

2 years agoMerge pull request #1967 from rujialiu/optional-features
Mark Thom [Mon, 21 Aug 2023 17:42:03 +0000 (11:42 -0600)]
Merge pull request #1967 from rujialiu/optional-features

Allow users to disable optional features

2 years agoAllow users to disable optional features. Needed for wasm32 support (see #615).
Rujia Liu [Mon, 21 Aug 2023 02:01:24 +0000 (10:01 +0800)]
Allow users to disable optional features. Needed for wasm32 support (see #615).

2 years agoMerge pull request #1968 from rujialiu/atom-64bit
Mark Thom [Sun, 20 Aug 2023 17:50:58 +0000 (11:50 -0600)]
Merge pull request #1968 from rujialiu/atom-64bit

Make Atom 64-bit regardless of architecture

2 years agoMerge pull request #1970 from triska/crrl
Mark Thom [Sun, 20 Aug 2023 17:24:37 +0000 (11:24 -0600)]
Merge pull request #1970 from triska/crrl

switch to using crrl for scalar multiplication on Curve25519

2 years agoENHANCED: more extensive type checking in curve25519_scalar_mult/3
Markus Triska [Sun, 20 Aug 2023 12:42:34 +0000 (14:42 +0200)]
ENHANCED: more extensive type checking in curve25519_scalar_mult/3

2 years agoswitch to using crrl for scalar multiplication on Curve25519
Markus Triska [Sun, 20 Aug 2023 11:40:30 +0000 (13:40 +0200)]
switch to using crrl for scalar multiplication on Curve25519

This is to facilitate WASM compilation as currently worked on
by @rujialiu in #615. Many thanks, and many thanks to @pornin
for crrl which makes this possible!

2 years agoMake Atom 64-bit regardless of architecture
Rujia Liu [Sun, 20 Aug 2023 11:43:13 +0000 (19:43 +0800)]
Make Atom 64-bit regardless of architecture

2 years agoMerge pull request #1964 from triska/master
Mark Thom [Thu, 17 Aug 2023 21:18:25 +0000 (15:18 -0600)]
Merge pull request #1964 from triska/master

use newly available double_quotes/1 write option in portray_clause_//1

2 years agouse newly available double_quotes/1 write option in portray_clause_//1
Markus Triska [Thu, 17 Aug 2023 21:05:21 +0000 (23:05 +0200)]
use newly available double_quotes/1 write option in portray_clause_//1

2 years agoMerge pull request #1963 from triska/master
Mark Thom [Mon, 14 Aug 2023 18:18:45 +0000 (12:18 -0600)]
Merge pull request #1963 from triska/master

ENHANCED: domain error in zcompare/3 (#1723)

2 years agoENHANCED: domain error in zcompare/3 (#1723)
Markus Triska [Mon, 14 Aug 2023 15:54:18 +0000 (17:54 +0200)]
ENHANCED: domain error in zcompare/3 (#1723)

2 years agoMerge pull request #1961 from triska/succ
Mark Thom [Sat, 12 Aug 2023 20:35:21 +0000 (14:35 -0600)]
Merge pull request #1961 from triska/succ

ADDED: succ/2, part of the Prologue for Prolog

2 years agoreorder tests, per https://github.com/mthom/scryer-prolog/pull/1961#pullrequestreview...
Markus Triska [Fri, 11 Aug 2023 21:41:54 +0000 (23:41 +0200)]
reorder tests, per https://github.com/mthom/scryer-prolog/pull/1961#pullrequestreview-1574380588

2 years agoADDED: succ/2, part of the Prologue for Prolog
Markus Triska [Fri, 11 Aug 2023 20:46:46 +0000 (22:46 +0200)]
ADDED: succ/2, part of the Prologue for Prolog

Specification:

   https://www.complang.tuwien.ac.at/ulrich/iso-prolog/prologue#succ

2 years agoshed CodeIndex for control predicates in disjuncts.rs (#1791)
Mark [Sun, 6 Aug 2023 07:26:01 +0000 (01:26 -0600)]
shed CodeIndex for control predicates in disjuncts.rs (#1791)

2 years agoretract discontiguous non-multifile predicates between consultations (#1202, #1058...
Mark [Sat, 5 Aug 2023 18:15:28 +0000 (12:15 -0600)]
retract discontiguous non-multifile predicates between consultations (#1202, #1058, #1585)

2 years agoMerge pull request #1950 from triska/chars_si
Mark Thom [Fri, 4 Aug 2023 21:25:42 +0000 (15:25 -0600)]
Merge pull request #1950 from triska/chars_si

ENHANCED: more efficient chars_si/1, using specialized predicates of Scryer

2 years agoENHANCED: more efficient chars_si/1, using specialized predicates of Scryer
Markus Triska [Fri, 4 Aug 2023 19:18:00 +0000 (21:18 +0200)]
ENHANCED: more efficient chars_si/1, using specialized predicates of Scryer

Source:

    https://github.com/mthom/scryer-prolog/issues/1947#issuecomment-1665113488

2 years agoMerge pull request #1948 from triska/chars_si
Mark Thom [Fri, 4 Aug 2023 00:34:19 +0000 (18:34 -0600)]
Merge pull request #1948 from triska/chars_si

add character_si/1 and use it to correct chars_si/1

2 years agoadd character_si/1 and use it to correct chars_si/1
Markus Triska [Thu, 3 Aug 2023 20:27:13 +0000 (22:27 +0200)]
add character_si/1 and use it to correct chars_si/1

This addresses #1947.

2 years agoallocate negator results in arena (#1898)
Mark [Thu, 3 Aug 2023 01:50:27 +0000 (19:50 -0600)]
allocate negator results in arena (#1898)

2 years agoMerge pull request #1943 from triska/dead_skeleton
Mark Thom [Wed, 2 Aug 2023 22:32:27 +0000 (16:32 -0600)]
Merge pull request #1943 from triska/dead_skeleton

FIXED: do not attach constraint if the propagator is already entailed and killed

2 years agoFIXED: do not attach constraint if the propagator is already entailed and killed
Markus Triska [Wed, 2 Aug 2023 22:26:40 +0000 (00:26 +0200)]
FIXED: do not attach constraint if the propagator is already entailed and killed

Example:

    ?- A#=A//A#==>B,A-B=1-1.
       A = 1, B = 1.

This addresses #1941.

2 years agoMerge pull request #1938 from triska/remove_auxiliary_constraints
Mark Thom [Mon, 31 Jul 2023 20:52:34 +0000 (14:52 -0600)]
Merge pull request #1938 from triska/remove_auxiliary_constraints

ENHANCED: forget auxiliary constraints set up by the propagator for multiplication

2 years agoMerge pull request #1939 from triska/oncology_trial_design
Mark Thom [Mon, 31 Jul 2023 20:52:21 +0000 (14:52 -0600)]
Merge pull request #1939 from triska/oncology_trial_design

better wording, applying the feedback of @dcnorris. Thank you a lot!

2 years agobetter wording, applying the feedback from @dcnorris. Thank you a lot!
Markus Triska [Mon, 31 Jul 2023 20:03:43 +0000 (22:03 +0200)]
better wording, applying the feedback from @dcnorris. Thank you a lot!

2 years agoENHANCED: forget auxiliary constraints set up by the propagator for multiplication
Markus Triska [Mon, 31 Jul 2023 19:57:25 +0000 (21:57 +0200)]
ENHANCED: forget auxiliary constraints set up by the propagator for multiplication

This addresses the issue raised in https://github.com/mthom/scryer-prolog/discussions/1937.

2 years agoMerge pull request #1929 from Skgland/master
Mark Thom [Sat, 29 Jul 2023 16:52:36 +0000 (10:52 -0600)]
Merge pull request #1929 from Skgland/master

detect and prevent concurrent AtomTable use

2 years agofix spelling
Bennet Bleßmann [Sat, 29 Jul 2023 11:11:00 +0000 (13:11 +0200)]
fix spelling

2 years agohandle atom table resize
Bennet Bleßmann [Sat, 29 Jul 2023 09:08:32 +0000 (11:08 +0200)]
handle atom table resize

* bumping serial_test dev-dependency due to broken should_panic handling in old version

2 years agodetect and prevent² concurrent AtomTable use
Bennet Bleßmann [Thu, 27 Jul 2023 21:35:57 +0000 (23:35 +0200)]
detect and prevent² concurrent AtomTable use

²in the case of `#[cfg(not(test))]` there is still a toctou race as I am not sufficently familiar with Atomics

2 years agoMerge pull request #1927 from triska/ascii_punctuation
Mark Thom [Thu, 27 Jul 2023 20:51:01 +0000 (14:51 -0600)]
Merge pull request #1927 from triska/ascii_punctuation

FIXED: correct handling of ascii_punctuation in char_type/2 (#1926)