Branch: refs/heads/yves/namespace
Home: https://github.com/Perl/perl5
Commit: 8328b0a2ce44fbadbfae838778f20da72b5f3a84
https://github.com/Perl/perl5/commit/8328b0a2ce44fbadbfae838778f20da72b5f3a84
Author: Yves Orton <[email protected]>
Date: 2026-08-28 (Fri, 28 Aug 2026)
Changed paths:
M .gitignore
M MANIFEST.SKIP
Log Message:
-----------
Ignore agent related content
Commit: 1928316ca29f9e290277b398fd659cd04d225ebf
https://github.com/Perl/perl5/commit/1928316ca29f9e290277b398fd659cd04d225ebf
Author: Yves Orton <[email protected]>
Date: 2026-08-28 (Fri, 28 Aug 2026)
Changed paths:
M MANIFEST
M cop.h
M dump.c
M embed.fnc
M embed.h
M embedvar.h
M ext/Opcode/Opcode.pm
M ext/XS-APItest/APItest.pm
M ext/XS-APItest/APItest.xs
M ext/XS-APItest/APItest_runtime_helpers.xs
A ext/XS-APItest/t/generator-runtime.t
M feature.h
M gv.c
M intrpvar.h
M keywords.c
M keywords.h
M lib/B/Deparse-core.t
M lib/B/Deparse.pm
M lib/B/Op_private.pm
M lib/feature.pm
M opcode.h
M opnames.h
M perl.h
M perly.act
M perly.h
M perly.tab
M perly.y
M pod/perl.pod
A pod/perlasync.pod
M pod/perldelta.pod
M pod/perldiag.pod
M pod/perlexperiment.pod
M pod/perlfunc.pod
M pp.c
M pp_ctl.c
M pp_proto.h
M proto.h
M regen/feature.pl
M regen/keywords.pl
M regen/opcodes
M run.c
M sv.c
M t/op/coreamp.t
M t/op/coresubs.t
A t/op/generator.t
M toke.c
M win32/pod.mak
Log Message:
-----------
add a generator syntax
Commit: 6433455e0055b2436222f5c5554d1d83f0d74861
https://github.com/Perl/perl5/commit/6433455e0055b2436222f5c5554d1d83f0d74861
Author: Yves Orton <[email protected]>
Date: 2026-08-28 (Fri, 28 Aug 2026)
Changed paths:
A generator_plan.md
Log Message:
-----------
add the plan
Commit: 3bc7ca52a821ed036adf01203753ea282643da99
https://github.com/Perl/perl5/commit/3bc7ca52a821ed036adf01203753ea282643da99
Author: Yves Orton <[email protected]>
Date: 2026-08-28 (Fri, 28 Aug 2026)
Changed paths:
M cop.h
M embed.fnc
M embed.h
M proto.h
M run.c
Log Message:
-----------
Pass initial arguments into generators
Commit: 5e9f108c636f77d37d305533f2dd5862de222571
https://github.com/Perl/perl5/commit/5e9f108c636f77d37d305533f2dd5862de222571
Author: Yves Orton <[email protected]>
Date: 2026-08-28 (Fri, 28 Aug 2026)
Changed paths:
M cop.h
M embed.fnc
M embed.h
M generator_plan.md
M lib/B/Op_private.pm
M opcode.h
M perly.act
M perly.h
M perly.tab
M perly.y
M pp_ctl.c
M proto.h
M regen/opcodes
M run.c
Log Message:
-----------
Pass arguments and lists through generators
Commit: 4d204fe4be858089d570bb2e3f806ad4cc35da66
https://github.com/Perl/perl5/commit/4d204fe4be858089d570bb2e3f806ad4cc35da66
Author: Yves Orton <[email protected]>
Date: 2026-08-28 (Fri, 28 Aug 2026)
Changed paths:
M embed.h
M generator_plan.md
M perly.act
M perly.h
M perly.tab
M perly.y
M pod/perlasync.pod
M pp_ctl.c
M proto.h
M run.c
M t/op/generator.t
Log Message:
-----------
Test and document parameterized generators
Commit: a9f40271514768480d0db74c2e3fb96023e0cbea
https://github.com/Perl/perl5/commit/a9f40271514768480d0db74c2e3fb96023e0cbea
Author: Yves Orton <[email protected]>
Date: 2026-08-28 (Fri, 28 Aug 2026)
Changed paths:
M cop.h
M embed.fnc
Log Message:
-----------
Track generator return state
Commit: 19f8b301fb260bba5ad14ac3a9f15f5bd7bf5741
https://github.com/Perl/perl5/commit/19f8b301fb260bba5ad14ac3a9f15f5bd7bf5741
Author: Yves Orton <[email protected]>
Date: 2026-08-28 (Fri, 28 Aug 2026)
Changed paths:
M embed.fnc
Log Message:
-----------
Normalize generator API declarations
Commit: cd76ec2646eec32cfc30c2cd5c150f7b2284c7b9
https://github.com/Perl/perl5/commit/cd76ec2646eec32cfc30c2cd5c150f7b2284c7b9
Author: Yves Orton <[email protected]>
Date: 2026-08-28 (Fri, 28 Aug 2026)
Changed paths:
M pod/perlasync.pod
M pod/perldiag.pod
Log Message:
-----------
Document generator argument diagnostics
Commit: 4331ab2b1e9f1567b82d41aceae3ab2fda4deafa
https://github.com/Perl/perl5/commit/4331ab2b1e9f1567b82d41aceae3ab2fda4deafa
Author: Yves Orton <[email protected]>
Date: 2026-08-28 (Fri, 28 Aug 2026)
Changed paths:
M pod/perlasync.pod
M run.c
M t/op/generator.t
Log Message:
-----------
Return first generator value in scalar context
Commit: 69ac6b47ccc6a10dcabd0d072cf7496b91964040
https://github.com/Perl/perl5/commit/69ac6b47ccc6a10dcabd0d072cf7496b91964040
Author: Stevan Little <[email protected]>
Date: 2026-08-28 (Fri, 28 Aug 2026)
Changed paths:
M class.c
A class.h
M embed.fnc
M embed.h
M hv.c
M hv.h
M lib/B/Deparse.pm
M lib/B/Op_private.pm
M op.c
M opcode.h
M opnames.h
M pad.c
M pad.h
M perly.y
M pp.c
M pp_proto.h
M proto.h
M regen/keywords.pl
M regen/opcodes
M sv.c
A t/role/examples/001-currency.t
A t/role/examples/002-shard-migrator.t
A t/role/examples/003-lambda-terms.t
A t/role/examples/004-native-types.t
A t/role/role.t
A t/role/role_compose.t
A t/role/role_conflict_resolution.t
A t/role/role_does.t
A t/role/role_does_method.t
A t/role/role_does_semantics.t
A t/role/role_field_composition.t
A t/role/role_field_conflicts.t
A t/role/role_fields.t
A t/role/role_requires.t
M toke.c
M universal.c
Log Message:
-----------
class: roles v3 -- algebraic composition with conflict detection and 'does'
This commit adds roles to the 'use feature "class"' system (originally
introduced in Perl 5.38). It supersedes the earlier roles-v1 and
roles-v2 work.
== Overview ==
A role is declared with the 'role' keyword and consumed by a class or
another role with the :does attribute:
role Printable {
method print { say $self->to_string }
}
class Document :does(Printable) {
field $content :param;
method to_string { $content }
}
:does accepts a parenthesised list: :does(RoleA, RoleB).
Roles may contain fields, methods (including required method stubs),
and ADJUST blocks. Fields and methods from composed roles are installed
into the consumer's stash at seal time.
== Proto-Role Algebra ==
The core of this implementation is a proto_role_t (class.h) that every
class and role builds during parsing. It captures:
- method_slot_t: name, origin bitset, CV pointer, and provenance
(from_field pointer, non-NULL for :reader/:writer generated
accessors)
- field_slot_t: PADNAME pointer and origin bitset
- An origin_set_t (U32 bitset) where each composing role gets one bit
Composition is a sorted merge-join (S_merge_method_slots,
S_merge_field_slots) that ORs origin bits. The algebra is:
Required origin_set == 0 (pure obligation)
Defined popcount == 1 (one provider)
Conflicted popcount > 1 (multiple providers)
This makes associativity and commutativity structurally guaranteed.
Resolution (S_proto_role_resolve) runs after composition and checks:
- Conflicted slot: consumer must provide an explicit method. A
generated accessor (:reader/:writer) does not count. An inherited
method does not count. All unresolved conflicts are collected and
reported in one croak.
- Required slot: consumer explicit method OR inherited method
satisfies it. Unresolved required slots at class seal time are
errors; at role seal time they propagate.
Diamond composition is handled correctly: the bitset means same-origin
methods collapse without conflict.
== Nominal and Structural Role Checks ==
Three ways to test role membership:
$obj->does('RoleName') nominal: walks xhv_class_roles transitively
$obj does RoleName infix operator (like 'isa'), guards with
feature 'class'
$obj->DOES('RoleName') structural: walks the role's proto-role
method_slots and verifies each Defined
method still dispatches to the role's
original CvSTASH; generated accessors
(from_field != NULL) are skipped
->does and ->DOES can disagree when a subclass overrides a role method;
this is intentional.
== Bug Fix ==
Also fixes a segfault when a class with a unit-style declaration
(class Foo; ...) inherits from another class. The unit-class path was
not initialising xhv_class_suspended_initfields_compcv before the
superclass ADJUST blocks ran. (GH #20890)
== Memory ==
proto_role_t is retained after sealing so that ->DOES can do structural
checks at runtime. hv_undef_flags() now calls proto_role_free() in the
class/role cleanup block so the struct and its ref-counted contents are
freed when the stash is eventually destroyed.
== Tests ==
New test files under t/role/:
role.t basic role machinery
role_compose.t method and field composition
role_does.t :does attribute validation
role_does_semantics.t ->does / 'does' / isa semantics
role_does_method.t ->does, infix 'does', ->DOES
role_field_composition.t field inheritance through roles
role_field_conflicts.t field conflict detection
role_fields.t role field behaviour
role_requires.t required method stubs
role_conflict_resolution.t conflict detection and resolution rules
examples/ four worked examples
Co-Authored-By: Claude Sonnet 4.6 <[email protected]>
Commit: ba76daf005dbd7426cec4993a033cc0f68860bd1
https://github.com/Perl/perl5/commit/ba76daf005dbd7426cec4993a033cc0f68860bd1
Author: Stevan Little <[email protected]>
Date: 2026-08-28 (Fri, 28 Aug 2026)
Changed paths:
M MANIFEST
M class.c
M t/op/universal.t
Log Message:
-----------
fix CI failures: MANIFEST, perldiag, Opcode tag, universal.t, compiler warning
MANIFEST: add class.h and all t/role/*.t test files.
pod/perldiag.pod: add entries for all new diagnostics introduced by
the roles implementation:
- Cannot '%s' outside of a 'class' or 'role'
- Cannot create role %s as it already has a non-empty @ISA
- Cannot define role "%s" as it is already a class
- Cannot reopen existing role "%s"
- Field %s conflicts between "%s" and "%s"
- Method %s conflicts between "%s" and "%s"
- Method %s is required by role %s but not provided by "%s"
- role is experimental
- Roles cannot use :isa
- Too many roles in a single composition (max %d)
- Unexpected characters while parsing :does attribute: %s
- :does attribute requires a role but "%s" is not one
- proto_role_compose_and_install: role has no proto-role (S debugging)
ext/Opcode/Opcode.pm: add 'does' to the tagged opname list alongside
'isa'.
t/op/universal.t: update expected UNIVERSAL:: method list to include
'does', which is now installed alongside 'isa', 'can', etc.
class.c: remove unused 'stash' parameter from S_apply_one_role() to
fix the compiler warning. Change the DEBUGGING fallback warn to use
Perl_ck_warner_d(packWARN(WARN_DEBUGGING)) so diag.t can verify its
severity and category.
Co-Authored-By: Claude Sonnet 4.6 <[email protected]>
Commit: 56dd12582d47eb7d52f94b31cf20dc1500128bd3
https://github.com/Perl/perl5/commit/56dd12582d47eb7d52f94b31cf20dc1500128bd3
Author: Stevan Little <[email protected]>
Date: 2026-08-28 (Fri, 28 Aug 2026)
Changed paths:
M gv.c
M t/op/coreamp.t
M t/op/coresubs.t
Log Message:
-----------
fix -Dusethreads CI failures: does/role in CORE:: and version bump
- gv.c: add KEY_does and KEY_role to S_maybe_add_coresub's return-NULL
switch, so CORE::does and CORE::role are not registered as callable
CORE:: subs (same treatment as KEY_isa, KEY_class, etc.)
- t/op/coresubs.t: add 'does' and 'role' to %unsupported
- t/op/coreamp.t: add 'does' and 'role' to %nottest_words
- lib/B/Deparse.pm: bump version 1.89 -> 1.90 for porting/cmp_version.t
Co-Authored-By: Claude Sonnet 4.6 <[email protected]>
Commit: 37c3ecc06092c35abeec18ad4ade290a766f4a86
https://github.com/Perl/perl5/commit/37c3ecc06092c35abeec18ad4ade290a766f4a86
Author: Stevan Little <[email protected]>
Date: 2026-08-28 (Fri, 28 Aug 2026)
Changed paths:
M class.c
M t/role/role.t
M t/role/role_compose.t
M t/role/role_does.t
M t/role/role_requires.t
Log Message:
-----------
class: fix transitive required-method propagation through role chains
After composing role B :does(A), B's stored proto-role was only the pre-
composition snapshot (B's own methods), so required methods from A were
lost when a class later composed B. This caused no error when a class
failed to satisfy a transitively-required method.
Fix: after role composition, append any Required slots from the composed
proto that are not already in the stored proto-role. Defined slots are
intentionally NOT propagated - only the role's own method implementations
are stored, since the structural DOES check verifies CvSTASH == rolestash.
Also fix the eval "use VERSION" issue in role tests: replace inner "use v5.36"
with "use strict" since "use VERSION" is forbidden in nested evals once a
v5.39+ version is in scope. Update test regexes to match the actual error
message format our implementation produces.
Co-Authored-By: Claude Sonnet 4.6 <[email protected]>
Commit: 238cb612729f0b308a7f6679e488fbe3326f040b
https://github.com/Perl/perl5/commit/238cb612729f0b308a7f6679e488fbe3326f040b
Author: Yves Orton <[email protected]>
Date: 2026-08-28 (Fri, 28 Aug 2026)
Changed paths:
M MANIFEST
M class.c
M class.h
M embed.fnc
M embed.h
M hv.h
M keywords.c
M keywords.h
M lib/B/Deparse.pm
M lib/B/Op_private.pm
M lib/UNIVERSAL.pm
M op.c
M opcode.h
M opnames.h
M pad.c
M perly.act
M perly.h
M perly.tab
M perly.y
M pod/perlclass.pod
M pod/perldiag.pod
M pp.c
M pp_proto.h
M proto.h
M regen/keywords.pl
M regen/opcodes
M t/TEST
M t/harness
M t/role/examples/001-currency.t
M t/role/examples/002-shard-migrator.t
M t/role/examples/003-lambda-terms.t
M t/role/examples/004-native-types.t
M t/role/role_compose.t
M t/role/role_conflict_resolution.t
R t/role/role_does.t
R t/role/role_does_method.t
R t/role/role_does_semantics.t
M t/role/role_field_composition.t
M t/role/role_field_conflicts.t
M t/role/role_fields.t
A t/role/role_implements.t
A t/role/role_implements_method.t
A t/role/role_implements_semantics.t
M t/role/role_requires.t
M toke.c
M universal.c
Log Message:
-----------
role: delegate DOES through implements
Commit: 16ef200ee81cdad825ab0e4b4723cbf265c2911e
https://github.com/Perl/perl5/commit/16ef200ee81cdad825ab0e4b4723cbf265c2911e
Author: Yves Orton <[email protected]>
Date: 2026-08-28 (Fri, 28 Aug 2026)
Changed paths:
M builtin.c
M class.c
M embed.fnc
M embed.h
M lib/builtin.pm
M proto.h
Log Message:
-----------
class: add package_implements builtin
Commit: 7f5fce798d97e0c154a3fe7c0dd0a0f8776c75f5
https://github.com/Perl/perl5/commit/7f5fce798d97e0c154a3fe7c0dd0a0f8776c75f5
Author: Yves Orton <[email protected]>
Date: 2026-08-28 (Fri, 28 Aug 2026)
Changed paths:
M builtin.c
M class.c
M dist/Data-Dumper/Dumper.pm
M dist/Data-Dumper/Dumper.xs
M embed.fnc
M embed.h
M lib/builtin.pm
M proto.h
A t/class/object_hash.t
Log Message:
-----------
class: expose shallow object hash conversion
Commit: 4c203fcc631aae90dca6a2a2148f9e948adc318b
https://github.com/Perl/perl5/commit/4c203fcc631aae90dca6a2a2148f9e948adc318b
Author: Yves Orton <[email protected]>
Date: 2026-08-28 (Fri, 28 Aug 2026)
Changed paths:
M dist/Data-Dumper/Changes
M dist/Data-Dumper/Dumper.pm
M dist/Data-Dumper/Dumper.xs
Log Message:
-----------
Data-Dumper: document class object support
Commit: e5a187edb7dc93fee46c877c6c5a981cca4501c1
https://github.com/Perl/perl5/commit/e5a187edb7dc93fee46c877c6c5a981cca4501c1
Author: Yves Orton <[email protected]>
Date: 2026-08-28 (Fri, 28 Aug 2026)
Changed paths:
M dist/Data-Dumper/Dumper.xs
Log Message:
-----------
Data-Dumper: guard class API by generated macro
Commit: 9b981a43de72a1350be98edb1ad015eb53d8d2ce
https://github.com/Perl/perl5/commit/9b981a43de72a1350be98edb1ad015eb53d8d2ce
Author: Yves Orton <[email protected]>
Date: 2026-08-28 (Fri, 28 Aug 2026)
Changed paths:
M pod/perldelta.pod
Log Message:
-----------
Data-Dumper: document class object support in perldelta
Commit: f1ab50f9b05035f3269ed1aed462e82b2fd43f37
https://github.com/Perl/perl5/commit/f1ab50f9b05035f3269ed1aed462e82b2fd43f37
Author: Yves Orton <[email protected]>
Date: 2026-08-28 (Fri, 28 Aug 2026)
Changed paths:
M builtin.c
M class.c
Log Message:
-----------
class: document object conversion APIs
Commit: 55af04bb04dd1886e223504f1f57eecbf6118202
https://github.com/Perl/perl5/commit/55af04bb04dd1886e223504f1f57eecbf6118202
Author: Yves Orton <[email protected]>
Date: 2026-08-28 (Fri, 28 Aug 2026)
Changed paths:
M MANIFEST
Log Message:
-----------
class: add object hash conversion test to manifest
Commit: 833a98291eba91679e0deb3e883b3f8b39757e65
https://github.com/Perl/perl5/commit/833a98291eba91679e0deb3e883b3f8b39757e65
Author: Yves Orton <[email protected]>
Date: 2026-08-28 (Fri, 28 Aug 2026)
Changed paths:
M MANIFEST
R t/role/examples/001-currency.t
R t/role/examples/002-shard-migrator.t
R t/role/examples/003-lambda-terms.t
R t/role/examples/004-native-types.t
M t/role/role.t
M t/role/role_compose.t
M t/role/role_conflict_resolution.t
M t/role/role_field_composition.t
M t/role/role_field_conflicts.t
M t/role/role_fields.t
M t/role/role_implements.t
M t/role/role_implements_method.t
M t/role/role_implements_semantics.t
M t/role/role_requires.t
M universal.c
Log Message:
-----------
role: align tests with core harness and DOES fallback
Commit: 0ed7a5992eedbe8fdbc5f3750aa9c2691aea4094
https://github.com/Perl/perl5/commit/0ed7a5992eedbe8fdbc5f3750aa9c2691aea4094
Author: Yves Orton <[email protected]>
Date: 2026-08-28 (Fri, 28 Aug 2026)
Changed paths:
M MANIFEST
M builtin.c
M class.c
M class.h
M ext/Opcode/Opcode.pm
M lib/B/Deparse-core.t
M lib/UNIVERSAL.pm
M lib/builtin.pm
M opcode.h
M pod/perldiag.pod
M regen/opcodes
M run.c
M sv.c
M t/op/universal.t
Log Message:
-----------
class: clone role metadata with threaded stashes
Commit: 05c56463a9c6a395c2b6776fb3bfe46e7461cac9
https://github.com/Perl/perl5/commit/05c56463a9c6a395c2b6776fb3bfe46e7461cac9
Author: Yves Orton <[email protected]>
Date: 2026-08-28 (Fri, 28 Aug 2026)
Changed paths:
M class.c
Log Message:
-----------
class: preserve field index sentinel type
Commit: addf49caf9f16a82bef12e590891d9207f86fc9c
https://github.com/Perl/perl5/commit/addf49caf9f16a82bef12e590891d9207f86fc9c
Author: Yves Orton <[email protected]>
Date: 2026-08-28 (Fri, 28 Aug 2026)
Changed paths:
M class.c
Log Message:
-----------
class: keep field map bounds signed
Commit: 60e076e23eab0468dca4e1fdbebd5972a4eff8b7
https://github.com/Perl/perl5/commit/60e076e23eab0468dca4e1fdbebd5972a4eff8b7
Author: Yves Orton <[email protected]>
Date: 2026-08-28 (Fri, 28 Aug 2026)
Changed paths:
M t/op/coreamp.t
Log Message:
-----------
tests: silence experimental comparison warnings in coreamp
Commit: b6281ea0f51031c279c1970f314a402857fdc553
https://github.com/Perl/perl5/commit/b6281ea0f51031c279c1970f314a402857fdc553
Author: Yves Orton <[email protected]>
Date: 2026-08-29 (Sat, 29 Aug 2026)
Changed paths:
M class.c
M embed.h
M ext/Opcode/Opcode.pm
M perly.act
M perly.h
M perly.tab
M perly.y
M pod/perldiag.pod
Log Message:
-----------
class: restore safe method parse cleanup
Commit: 1bb05e8aa5f26ad2a301dcea2825bd134515b2cd
https://github.com/Perl/perl5/commit/1bb05e8aa5f26ad2a301dcea2825bd134515b2cd
Author: Yves Orton <[email protected]>
Date: 2026-08-29 (Sat, 29 Aug 2026)
Changed paths:
M MANIFEST
A dist/p5-matrix-utils/Changes
A dist/p5-matrix-utils/XS_DESIGN.md
A dist/p5-matrix-utils/lib/MNIST.pm
A dist/p5-matrix-utils/lib/Matrix.pm
A dist/p5-matrix-utils/lib/Scalar.pm
A dist/p5-matrix-utils/lib/Tensor.pm
A dist/p5-matrix-utils/lib/Vector.pm
A dist/p5-matrix-utils/t/matrix-utils.t
Log Message:
-----------
dist: add p5-matrix-utils prototype
Commit: 8faead5c6b4b7c6b0ce8c3ed5b14f5fd8244064d
https://github.com/Perl/perl5/commit/8faead5c6b4b7c6b0ce8c3ed5b14f5fd8244064d
Author: Yves Orton <[email protected]>
Date: 2026-08-29 (Sat, 29 Aug 2026)
Changed paths:
M MANIFEST
A dist/p5-matrix-utils/NEURAL_NETWORK_FEATURES.md
A dist/p5-matrix-utils/NOTES.md
A dist/p5-matrix-utils/OPTIMIZATION_OPPORTUNITIES.md
A dist/p5-matrix-utils/OPTIMIZATION_SUCCESS.md
A dist/p5-matrix-utils/OPTIMIZATION_V2_RESULTS.md
A dist/p5-matrix-utils/TRAINING_SUCCESS.md
A dist/p5-matrix-utils/examples/README.md
A dist/p5-matrix-utils/examples/benchmark.pl
A dist/p5-matrix-utils/examples/idx_format_info.md
A dist/p5-matrix-utils/examples/matrix_bench.pl
A dist/p5-matrix-utils/examples/mnist_network.pl
A dist/p5-matrix-utils/examples/mnist_training.pl
A dist/p5-matrix-utils/examples/xor_training.pl
A dist/p5-matrix-utils/t/000-tensor/010-access.t
A dist/p5-matrix-utils/t/000-tensor/020-constructors.t
A dist/p5-matrix-utils/t/000-tensor/030-math.t
A dist/p5-matrix-utils/t/000-tensor/040-comparisons.t
A dist/p5-matrix-utils/t/000-tensor/050-logical-math.t
A dist/p5-matrix-utils/t/000-tensor/060-numerical.t
A dist/p5-matrix-utils/t/000-tensor/070-reductions.t
A dist/p5-matrix-utils/t/010-core/001-scalar.t
A dist/p5-matrix-utils/t/010-core/010-reduce_data_array.t
A dist/p5-matrix-utils/t/010-core/020-ops.t
A dist/p5-matrix-utils/t/010-core/120-ops.t
A dist/p5-matrix-utils/t/100-vector/110-access.t
A dist/p5-matrix-utils/t/100-vector/120-scalar.t
A dist/p5-matrix-utils/t/100-vector/130-matrix.t
A dist/p5-matrix-utils/t/100-vector/150-math.t
A dist/p5-matrix-utils/t/100-vector/160-concat.t
A dist/p5-matrix-utils/t/100-vector/170-reductions.t
A dist/p5-matrix-utils/t/100-vector/180-comparisons.t
A dist/p5-matrix-utils/t/100-vector/190-logical-math.t
A dist/p5-matrix-utils/t/200-matrix/210-access.t
A dist/p5-matrix-utils/t/200-matrix/220-constructors.t
A dist/p5-matrix-utils/t/200-matrix/230-operations.t
A dist/p5-matrix-utils/t/200-matrix/250-math.t
A dist/p5-matrix-utils/t/200-matrix/260-concat-stack.t
A dist/p5-matrix-utils/t/200-matrix/270-accessors.t
A dist/p5-matrix-utils/t/200-matrix/280-reductions.t
A dist/p5-matrix-utils/t/200-matrix/290-comparisons.t
A dist/p5-matrix-utils/t/200-matrix/300-logical-math.t
Log Message:
-----------
dist: import complete p5-matrix-utils tree
Commit: 745cfbfbba53ea559e5b142d8e16c466c7aba8ae
https://github.com/Perl/perl5/commit/745cfbfbba53ea559e5b142d8e16c466c7aba8ae
Author: Yves Orton <[email protected]>
Date: 2026-08-29 (Sat, 29 Aug 2026)
Changed paths:
M MANIFEST
A dist/p5-matrix-utils/XS.xs
A dist/p5-matrix-utils/lib/Tensor/XS.pm
A dist/p5-matrix-utils/t/xs-native.t
Log Message:
-----------
dist: add native Tensor XS storage prototype
Commit: 48e8b8573c1655512efe21ccba0e88378a7c1595
https://github.com/Perl/perl5/commit/48e8b8573c1655512efe21ccba0e88378a7c1595
Author: Yves Orton <[email protected]>
Date: 2026-08-29 (Sat, 29 Aug 2026)
Changed paths:
A dist/p5-matrix-utils/Makefile.PL
Log Message:
-----------
dist: retain Tensor::XS build metadata
Commit: 74744c7d991afe7d11d43262c5b0ba31dd34f12e
https://github.com/Perl/perl5/commit/74744c7d991afe7d11d43262c5b0ba31dd34f12e
Author: Yves Orton <[email protected]>
Date: 2026-08-29 (Sat, 29 Aug 2026)
Changed paths:
M dist/p5-matrix-utils/XS_DESIGN.md
Log Message:
-----------
dist: record Tensor XS migration status
Commit: d65f64a8b170d632bcbd3d27cd4410ae211683a8
https://github.com/Perl/perl5/commit/d65f64a8b170d632bcbd3d27cd4410ae211683a8
Author: Yves Orton <[email protected]>
Date: 2026-08-29 (Sat, 29 Aug 2026)
Changed paths:
M dist/p5-matrix-utils/XS.xs
M dist/p5-matrix-utils/t/xs-native.t
Log Message:
-----------
dist: make native tensor access coordinate based
Commit: 6e816203758338d7b0070bbf87ba8117320b0cd1
https://github.com/Perl/perl5/commit/6e816203758338d7b0070bbf87ba8117320b0cd1
Author: Yves Orton <[email protected]>
Date: 2026-08-29 (Sat, 29 Aug 2026)
Changed paths:
M dist/p5-matrix-utils/XS_DESIGN.md
Log Message:
-----------
dist: update Tensor XS design status
Commit: 7dcfe1af3e884d37a146b08ad62f01a1c843a99f
https://github.com/Perl/perl5/commit/7dcfe1af3e884d37a146b08ad62f01a1c843a99f
Author: Yves Orton <[email protected]>
Date: 2026-08-29 (Sat, 29 Aug 2026)
Changed paths:
M dist/p5-matrix-utils/XS.xs
M dist/p5-matrix-utils/t/xs-native.t
Log Message:
-----------
dist: accept nested native tensor data
Commit: 6ae704f81b66b6bf435854f828872a052d600c40
https://github.com/Perl/perl5/commit/6ae704f81b66b6bf435854f828872a052d600c40
Author: Yves Orton <[email protected]>
Date: 2026-08-29 (Sat, 29 Aug 2026)
Changed paths:
M dist/p5-matrix-utils/XS.xs
M dist/p5-matrix-utils/XS_DESIGN.md
M dist/p5-matrix-utils/t/xs-native.t
Log Message:
-----------
dist: use conventional tensor strides
Commit: 1d352aaccdbf5b3fb873255b58a8368d870b6705
https://github.com/Perl/perl5/commit/1d352aaccdbf5b3fb873255b58a8368d870b6705
Author: Yves Orton <[email protected]>
Date: 2026-08-29 (Sat, 29 Aug 2026)
Changed paths:
M dist/p5-matrix-utils/XS.xs
M dist/p5-matrix-utils/t/xs-native.t
Log Message:
-----------
dist: make native tensor bulk loads atomic
Commit: 817e776b5f259454752196a2cf6e25897f18086d
https://github.com/Perl/perl5/commit/817e776b5f259454752196a2cf6e25897f18086d
Author: Yves Orton <[email protected]>
Date: 2026-08-29 (Sat, 29 Aug 2026)
Changed paths:
M dist/p5-matrix-utils/XS.xs
M dist/p5-matrix-utils/t/xs-native.t
Log Message:
-----------
dist: add native tensor flat indexing
Commit: 92affa04beb6157e14b1ed41fb5c033ff8949937
https://github.com/Perl/perl5/commit/92affa04beb6157e14b1ed41fb5c033ff8949937
Author: Yves Orton <[email protected]>
Date: 2026-08-29 (Sat, 29 Aug 2026)
Changed paths:
M dist/p5-matrix-utils/XS_DESIGN.md
Log Message:
-----------
dist: document native tensor indexing
Commit: 2ab7bb9184741450c432e5ff6a757ef6c4ecccfe
https://github.com/Perl/perl5/commit/2ab7bb9184741450c432e5ff6a757ef6c4ecccfe
Author: Yves Orton <[email protected]>
Date: 2026-08-29 (Sat, 29 Aug 2026)
Changed paths:
M dist/p5-matrix-utils/XS.xs
M dist/p5-matrix-utils/XS_DESIGN.md
M dist/p5-matrix-utils/t/xs-native.t
Log Message:
-----------
dist: harden native tensor blob layout
Commit: 1a9e797cba62c3be4de31679df19484019695bb4
https://github.com/Perl/perl5/commit/1a9e797cba62c3be4de31679df19484019695bb4
Author: Yves Orton <[email protected]>
Date: 2026-08-29 (Sat, 29 Aug 2026)
Changed paths:
M dist/p5-matrix-utils/XS.xs
Log Message:
-----------
dist: validate native tensor blob boundaries
Commit: f39f9477118f584c96960438a21a4ce50ffedfb0
https://github.com/Perl/perl5/commit/f39f9477118f584c96960438a21a4ce50ffedfb0
Author: Yves Orton <[email protected]>
Date: 2026-08-29 (Sat, 29 Aug 2026)
Changed paths:
M dist/p5-matrix-utils/XS_DESIGN.md
Log Message:
-----------
dist: define extensible tensor dtype model
Commit: a8ab04465af5adafbd028925368c7728e9aa49ab
https://github.com/Perl/perl5/commit/a8ab04465af5adafbd028925368c7728e9aa49ab
Author: Yves Orton <[email protected]>
Date: 2026-08-29 (Sat, 29 Aug 2026)
Changed paths:
M dist/p5-matrix-utils/XS.xs
M dist/p5-matrix-utils/XS_DESIGN.md
M dist/p5-matrix-utils/lib/Tensor/XS.pm
M dist/p5-matrix-utils/t/xs-native.t
Log Message:
-----------
dist: add descriptor-driven tensor dtypes
Commit: 9d9251bbc68e08e24939e893ff62d8253c4a126c
https://github.com/Perl/perl5/commit/9d9251bbc68e08e24939e893ff62d8253c4a126c
Author: Yves Orton <[email protected]>
Date: 2026-08-29 (Sat, 29 Aug 2026)
Changed paths:
M dist/p5-matrix-utils/XS.xs
M dist/p5-matrix-utils/XS_DESIGN.md
M dist/p5-matrix-utils/lib/Tensor.pm
Log Message:
-----------
dist: back Tensor with native XS storage
Commit: f0581cc7b198d5478bbf63b2a4c414c083cf7932
https://github.com/Perl/perl5/commit/f0581cc7b198d5478bbf63b2a4c414c083cf7932
Author: Yves Orton <[email protected]>
Date: 2026-08-29 (Sat, 29 Aug 2026)
Changed paths:
M dist/p5-matrix-utils/XS.xs
M dist/p5-matrix-utils/lib/Tensor.pm
Log Message:
-----------
dist: finish native Tensor storage bridge
Commit: 26d569ac7f308f61617b6d97e582f8721bfa2b9e
https://github.com/Perl/perl5/commit/26d569ac7f308f61617b6d97e582f8721bfa2b9e
Author: Yves Orton <[email protected]>
Date: 2026-08-29 (Sat, 29 Aug 2026)
Changed paths:
M dist/p5-matrix-utils/XS_DESIGN.md
M dist/p5-matrix-utils/t/000-tensor/010-access.t
M dist/p5-matrix-utils/t/000-tensor/020-constructors.t
M dist/p5-matrix-utils/t/000-tensor/030-math.t
M dist/p5-matrix-utils/t/000-tensor/040-comparisons.t
M dist/p5-matrix-utils/t/000-tensor/050-logical-math.t
M dist/p5-matrix-utils/t/000-tensor/060-numerical.t
M dist/p5-matrix-utils/t/000-tensor/070-reductions.t
M dist/p5-matrix-utils/t/010-core/001-scalar.t
M dist/p5-matrix-utils/t/010-core/010-reduce_data_array.t
M dist/p5-matrix-utils/t/010-core/120-ops.t
M dist/p5-matrix-utils/t/100-vector/110-access.t
M dist/p5-matrix-utils/t/100-vector/170-reductions.t
M dist/p5-matrix-utils/t/100-vector/180-comparisons.t
M dist/p5-matrix-utils/t/100-vector/190-logical-math.t
M dist/p5-matrix-utils/t/200-matrix/210-access.t
M dist/p5-matrix-utils/t/200-matrix/260-concat-stack.t
M dist/p5-matrix-utils/t/200-matrix/270-accessors.t
M dist/p5-matrix-utils/t/200-matrix/280-reductions.t
M dist/p5-matrix-utils/t/200-matrix/290-comparisons.t
M dist/p5-matrix-utils/t/200-matrix/300-logical-math.t
Log Message:
-----------
dist: remove Test::Exception from tensor tests
Commit: 149fa74f87c9848097d1127cf6cfa3c80f398f8a
https://github.com/Perl/perl5/commit/149fa74f87c9848097d1127cf6cfa3c80f398f8a
Author: Yves Orton <[email protected]>
Date: 2026-08-29 (Sat, 29 Aug 2026)
Changed paths:
M dist/p5-matrix-utils/Changes
M dist/p5-matrix-utils/Makefile.PL
Log Message:
-----------
dist: package native tensor classes and tests
Commit: 53701cc9bafd6dcefe0c325df3bb2a3f809c8c6f
https://github.com/Perl/perl5/commit/53701cc9bafd6dcefe0c325df3bb2a3f809c8c6f
Author: Yves Orton <[email protected]>
Date: 2026-08-29 (Sat, 29 Aug 2026)
Changed paths:
M generator_plan.md
Log Message:
-----------
generator: plan swappable execution context
Commit: 72654909eb3d7a3621ba8944be87519c36771a90
https://github.com/Perl/perl5/commit/72654909eb3d7a3621ba8944be87519c36771a90
Author: Yves Orton <[email protected]>
Date: 2026-08-29 (Sat, 29 Aug 2026)
Changed paths:
M generator_plan.md
Log Message:
-----------
generator: document context ownership lifecycle
Commit: 093ebf375efb85a2b7749c21654741febcc659ae
https://github.com/Perl/perl5/commit/093ebf375efb85a2b7749c21654741febcc659ae
Author: Yves Orton <[email protected]>
Date: 2026-08-29 (Sat, 29 Aug 2026)
Changed paths:
M Configure
M MANIFEST
M Makefile.SH
M cop.h
A dist/Tensor-XS/Changes
A dist/Tensor-XS/Makefile.PL
A dist/Tensor-XS/NEURAL_NETWORK_FEATURES.md
A dist/Tensor-XS/NOTES.md
A dist/Tensor-XS/OPTIMIZATION_OPPORTUNITIES.md
A dist/Tensor-XS/OPTIMIZATION_SUCCESS.md
A dist/Tensor-XS/OPTIMIZATION_V2_RESULTS.md
A dist/Tensor-XS/TRAINING_SUCCESS.md
A dist/Tensor-XS/XS.xs
A dist/Tensor-XS/XS_DESIGN.md
A dist/Tensor-XS/examples/README.md
A dist/Tensor-XS/examples/benchmark.pl
A dist/Tensor-XS/examples/idx_format_info.md
A dist/Tensor-XS/examples/matrix_bench.pl
A dist/Tensor-XS/examples/mnist_network.pl
A dist/Tensor-XS/examples/mnist_training.pl
A dist/Tensor-XS/examples/xor_training.pl
A dist/Tensor-XS/lib/MNIST.pm
A dist/Tensor-XS/lib/Matrix.pm
A dist/Tensor-XS/lib/Scalar.pm
A dist/Tensor-XS/lib/Tensor.pm
A dist/Tensor-XS/lib/Tensor/XS.pm
A dist/Tensor-XS/lib/Vector.pm
A dist/Tensor-XS/t/000-tensor/010-access.t
A dist/Tensor-XS/t/000-tensor/020-constructors.t
A dist/Tensor-XS/t/000-tensor/030-math.t
A dist/Tensor-XS/t/000-tensor/040-comparisons.t
A dist/Tensor-XS/t/000-tensor/050-logical-math.t
A dist/Tensor-XS/t/000-tensor/060-numerical.t
A dist/Tensor-XS/t/000-tensor/070-reductions.t
A dist/Tensor-XS/t/010-core/001-scalar.t
A dist/Tensor-XS/t/010-core/010-reduce_data_array.t
A dist/Tensor-XS/t/010-core/020-ops.t
A dist/Tensor-XS/t/010-core/120-ops.t
A dist/Tensor-XS/t/100-vector/110-access.t
A dist/Tensor-XS/t/100-vector/120-scalar.t
A dist/Tensor-XS/t/100-vector/130-matrix.t
A dist/Tensor-XS/t/100-vector/150-math.t
A dist/Tensor-XS/t/100-vector/160-concat.t
A dist/Tensor-XS/t/100-vector/170-reductions.t
A dist/Tensor-XS/t/100-vector/180-comparisons.t
A dist/Tensor-XS/t/100-vector/190-logical-math.t
A dist/Tensor-XS/t/200-matrix/210-access.t
A dist/Tensor-XS/t/200-matrix/220-constructors.t
A dist/Tensor-XS/t/200-matrix/230-operations.t
A dist/Tensor-XS/t/200-matrix/250-math.t
A dist/Tensor-XS/t/200-matrix/260-concat-stack.t
A dist/Tensor-XS/t/200-matrix/270-accessors.t
A dist/Tensor-XS/t/200-matrix/280-reductions.t
A dist/Tensor-XS/t/200-matrix/290-comparisons.t
A dist/Tensor-XS/t/200-matrix/300-logical-math.t
A dist/Tensor-XS/t/matrix-utils.t
A dist/Tensor-XS/t/xs-native.t
R dist/p5-matrix-utils/Changes
R dist/p5-matrix-utils/Makefile.PL
R dist/p5-matrix-utils/NEURAL_NETWORK_FEATURES.md
R dist/p5-matrix-utils/NOTES.md
R dist/p5-matrix-utils/OPTIMIZATION_OPPORTUNITIES.md
R dist/p5-matrix-utils/OPTIMIZATION_SUCCESS.md
R dist/p5-matrix-utils/OPTIMIZATION_V2_RESULTS.md
R dist/p5-matrix-utils/TRAINING_SUCCESS.md
R dist/p5-matrix-utils/XS.xs
R dist/p5-matrix-utils/XS_DESIGN.md
R dist/p5-matrix-utils/examples/README.md
R dist/p5-matrix-utils/examples/benchmark.pl
R dist/p5-matrix-utils/examples/idx_format_info.md
R dist/p5-matrix-utils/examples/matrix_bench.pl
R dist/p5-matrix-utils/examples/mnist_network.pl
R dist/p5-matrix-utils/examples/mnist_training.pl
R dist/p5-matrix-utils/examples/xor_training.pl
R dist/p5-matrix-utils/lib/MNIST.pm
R dist/p5-matrix-utils/lib/Matrix.pm
R dist/p5-matrix-utils/lib/Scalar.pm
R dist/p5-matrix-utils/lib/Tensor.pm
R dist/p5-matrix-utils/lib/Tensor/XS.pm
R dist/p5-matrix-utils/lib/Vector.pm
R dist/p5-matrix-utils/t/000-tensor/010-access.t
R dist/p5-matrix-utils/t/000-tensor/020-constructors.t
R dist/p5-matrix-utils/t/000-tensor/030-math.t
R dist/p5-matrix-utils/t/000-tensor/040-comparisons.t
R dist/p5-matrix-utils/t/000-tensor/050-logical-math.t
R dist/p5-matrix-utils/t/000-tensor/060-numerical.t
R dist/p5-matrix-utils/t/000-tensor/070-reductions.t
R dist/p5-matrix-utils/t/010-core/001-scalar.t
R dist/p5-matrix-utils/t/010-core/010-reduce_data_array.t
R dist/p5-matrix-utils/t/010-core/020-ops.t
R dist/p5-matrix-utils/t/010-core/120-ops.t
R dist/p5-matrix-utils/t/100-vector/110-access.t
R dist/p5-matrix-utils/t/100-vector/120-scalar.t
R dist/p5-matrix-utils/t/100-vector/130-matrix.t
R dist/p5-matrix-utils/t/100-vector/150-math.t
R dist/p5-matrix-utils/t/100-vector/160-concat.t
R dist/p5-matrix-utils/t/100-vector/170-reductions.t
R dist/p5-matrix-utils/t/100-vector/180-comparisons.t
R dist/p5-matrix-utils/t/100-vector/190-logical-math.t
R dist/p5-matrix-utils/t/200-matrix/210-access.t
R dist/p5-matrix-utils/t/200-matrix/220-constructors.t
R dist/p5-matrix-utils/t/200-matrix/230-operations.t
R dist/p5-matrix-utils/t/200-matrix/250-math.t
R dist/p5-matrix-utils/t/200-matrix/260-concat-stack.t
R dist/p5-matrix-utils/t/200-matrix/270-accessors.t
R dist/p5-matrix-utils/t/200-matrix/280-reductions.t
R dist/p5-matrix-utils/t/200-matrix/290-comparisons.t
R dist/p5-matrix-utils/t/200-matrix/300-logical-math.t
R dist/p5-matrix-utils/t/matrix-utils.t
R dist/p5-matrix-utils/t/xs-native.t
M dist/threads/lib/threads.pm
M dist/threads/threads.xs
M embedvar.h
M ext/B/B.pm
M ext/B/B.xs
M ext/XS-APItest/APItest_runtime_helpers.xs
M intrpvar.h
M lib/.gitignore
M makedef.pl
M pad.h
M perl.c
M perl.h
M regen/embed.pl
M sv.c
M win32/FindExt.pm
M win32/GNUmakefile
M win32/Makefile
Log Message:
-----------
core: make execution context swappable and configure Tensor::XS
Commit: 9a2206ea08b45e65d8e6e749ea10571b34966e05
https://github.com/Perl/perl5/commit/9a2206ea08b45e65d8e6e749ea10571b34966e05
Author: Yves Orton <[email protected]>
Date: 2026-08-29 (Sat, 29 Aug 2026)
Changed paths:
M cop.h
M embed.fnc
M embed.h
M ext/XS-APItest/APItest_runtime_helpers.xs
M proto.h
M run.c
Log Message:
-----------
generator: switch process state by context pointer
Commit: 392839748c958bebd965ae6688c64aee8134008c
https://github.com/Perl/perl5/commit/392839748c958bebd965ae6688c64aee8134008c
Author: Yves Orton <[email protected]>
Date: 2026-08-29 (Sat, 29 Aug 2026)
Changed paths:
M perl.c
Log Message:
-----------
interpreter: initialize unthreaded execution context
Commit: 330d164ef1473c3ef51a08a2e4a3ef13a42b2790
https://github.com/Perl/perl5/commit/330d164ef1473c3ef51a08a2e4a3ef13a42b2790
Author: Yves Orton <[email protected]>
Date: 2026-08-29 (Sat, 29 Aug 2026)
Changed paths:
M generator_plan.md
Log Message:
-----------
generator: record execution-context validation
Commit: 08df9595f0c163f3696b534308fa2e2d9ec68050
https://github.com/Perl/perl5/commit/08df9595f0c163f3696b534308fa2e2d9ec68050
Author: Yves Orton <[email protected]>
Date: 2026-08-29 (Sat, 29 Aug 2026)
Changed paths:
M lib/overload.pm
Log Message:
-----------
overload: suppress intentional redefinition warnings
Commit: 8605b0b495f4ccd3d53fdcd49a7357e3f0743bc3
https://github.com/Perl/perl5/commit/8605b0b495f4ccd3d53fdcd49a7357e3f0743bc3
Author: Yves Orton <[email protected]>
Date: 2026-08-29 (Sat, 29 Aug 2026)
Changed paths:
M makedef.pl
Log Message:
-----------
makedef: omit execution-context members from exports
Commit: f8cf96748f270e4461858d99b5a38fe13e657a01
https://github.com/Perl/perl5/commit/f8cf96748f270e4461858d99b5a38fe13e657a01
Author: Yves Orton <[email protected]>
Date: 2026-08-29 (Sat, 29 Aug 2026)
Changed paths:
M Porting/Maintainers.pl
Log Message:
-----------
maintainers: register Cpanel::JSON::XS
Commit: bef80c5f67184725349c3b2dcea8681c6f7652ea
https://github.com/Perl/perl5/commit/bef80c5f67184725349c3b2dcea8681c6f7652ea
Author: Yves Orton <[email protected]>
Date: 2026-08-29 (Sat, 29 Aug 2026)
Changed paths:
M t/class/gh22169.t
Log Message:
-----------
class: silence intentional replacement warning in gh22169 test
Commit: e6ed1fa66c6bd4e42b1bb1049f3fa9280d49aecb
https://github.com/Perl/perl5/commit/e6ed1fa66c6bd4e42b1bb1049f3fa9280d49aecb
Author: Yves Orton <[email protected]>
Date: 2026-08-29 (Sat, 29 Aug 2026)
Changed paths:
M MANIFEST
M Makefile.SH
M Porting/Maintainers.pl
M Porting/sync-with-cpan
A cpan/Cpanel-JSON-XS/.appveyor.yml
A cpan/Cpanel-JSON-XS/.github/FUNDING.yml
A cpan/Cpanel-JSON-XS/.github/workflows/testsuite.yml
A cpan/Cpanel-JSON-XS/.whitesource
A cpan/Cpanel-JSON-XS/XS.pm
A cpan/Cpanel-JSON-XS/XS.xs
A cpan/Cpanel-JSON-XS/XS/Boolean.pm
A cpan/Cpanel-JSON-XS/XS/Type.pm
A cpan/Cpanel-JSON-XS/bin/cpanel_json_xs
A cpan/Cpanel-JSON-XS/eg/bench
A cpan/Cpanel-JSON-XS/t/00_load.t
A cpan/Cpanel-JSON-XS/t/01_utf8.t
A cpan/Cpanel-JSON-XS/t/02_error.t
A cpan/Cpanel-JSON-XS/t/03_types.t
A cpan/Cpanel-JSON-XS/t/04_dwiw_encode.t
A cpan/Cpanel-JSON-XS/t/05_dwiw_decode.t
A cpan/Cpanel-JSON-XS/t/06_pc_pretty.t
A cpan/Cpanel-JSON-XS/t/07_pc_esc.t
A cpan/Cpanel-JSON-XS/t/08_pc_base.t
A cpan/Cpanel-JSON-XS/t/08_pc_base_nv.t
A cpan/Cpanel-JSON-XS/t/09_pc_extra_number.t
A cpan/Cpanel-JSON-XS/t/104_sortby.t
A cpan/Cpanel-JSON-XS/t/105_esc_slash.t
A cpan/Cpanel-JSON-XS/t/106_allow_barekey.t
A cpan/Cpanel-JSON-XS/t/107_allow_singlequote.t
A cpan/Cpanel-JSON-XS/t/108_decode.t
A cpan/Cpanel-JSON-XS/t/109_encode.t
A cpan/Cpanel-JSON-XS/t/10_pc_keysort.t
A cpan/Cpanel-JSON-XS/t/110_bignum.t
A cpan/Cpanel-JSON-XS/t/112_upgrade.t
A cpan/Cpanel-JSON-XS/t/113_overloaded_eq.t
A cpan/Cpanel-JSON-XS/t/114_decode_prefix.t
A cpan/Cpanel-JSON-XS/t/115_tie_ixhash.t
A cpan/Cpanel-JSON-XS/t/116_incr_parse_fixed.t
A cpan/Cpanel-JSON-XS/t/117_numbers.t
A cpan/Cpanel-JSON-XS/t/118_type.t
A cpan/Cpanel-JSON-XS/t/119_type_decode.t
A cpan/Cpanel-JSON-XS/t/11_pc_expo.t
A cpan/Cpanel-JSON-XS/t/120_type_all_string.t
A cpan/Cpanel-JSON-XS/t/121_memleak.t
A cpan/Cpanel-JSON-XS/t/122_type_encode.t
A cpan/Cpanel-JSON-XS/t/125_shared_boolean.t
A cpan/Cpanel-JSON-XS/t/12_blessed.t
A cpan/Cpanel-JSON-XS/t/13_limit.t
A cpan/Cpanel-JSON-XS/t/14_latin1.t
A cpan/Cpanel-JSON-XS/t/15_prefix.t
A cpan/Cpanel-JSON-XS/t/16_tied.t
A cpan/Cpanel-JSON-XS/t/17_relaxed.t
A cpan/Cpanel-JSON-XS/t/18_json_checker.t
A cpan/Cpanel-JSON-XS/t/19_incr.t
A cpan/Cpanel-JSON-XS/t/20_faihu.t
A cpan/Cpanel-JSON-XS/t/20_unknown.t
A cpan/Cpanel-JSON-XS/t/21_evans.t
A cpan/Cpanel-JSON-XS/t/22_comment_at_eof.t
A cpan/Cpanel-JSON-XS/t/23_array_ctx.t
A cpan/Cpanel-JSON-XS/t/24_freeze_recursion.t
A cpan/Cpanel-JSON-XS/t/25_boolean.t
A cpan/Cpanel-JSON-XS/t/26_duplicate.t
A cpan/Cpanel-JSON-XS/t/30_jsonspec.t
A cpan/Cpanel-JSON-XS/t/31_bom.t
A cpan/Cpanel-JSON-XS/t/52_object.t
A cpan/Cpanel-JSON-XS/t/53_readonly.t
A cpan/Cpanel-JSON-XS/t/54_stringify.t
A cpan/Cpanel-JSON-XS/t/55_modifiable.t
A cpan/Cpanel-JSON-XS/t/96_interop.t
A cpan/Cpanel-JSON-XS/t/96_interop_pp.t
A cpan/Cpanel-JSON-XS/t/96_mojo.t
A cpan/Cpanel-JSON-XS/t/97_unshare_hek.t
A cpan/Cpanel-JSON-XS/t/98_56only.t
A cpan/Cpanel-JSON-XS/t/99_binary.t
A cpan/Cpanel-JSON-XS/t/_unicode_handling.pm
A cpan/Cpanel-JSON-XS/t/appveyor-test.bat
A cpan/Cpanel-JSON-XS/t/test_parsing/i_number_neg_int_huge_exp.json
A cpan/Cpanel-JSON-XS/t/test_parsing/i_number_pos_double_huge_exp.json
A cpan/Cpanel-JSON-XS/t/test_parsing/i_object_key_lone_2nd_surrogate.json
A
cpan/Cpanel-JSON-XS/t/test_parsing/i_string_1st_surrogate_but_2nd_missing.json
A
cpan/Cpanel-JSON-XS/t/test_parsing/i_string_1st_valid_surrogate_2nd_invalid.json
A
cpan/Cpanel-JSON-XS/t/test_parsing/i_string_UTF-16_invalid_lonely_surrogate.json
A cpan/Cpanel-JSON-XS/t/test_parsing/i_string_UTF-16_invalid_surrogate.json
A cpan/Cpanel-JSON-XS/t/test_parsing/i_string_UTF-8_invalid_sequence.json
A
cpan/Cpanel-JSON-XS/t/test_parsing/i_string_incomplete_surrogate_and_escape_valid.json
A cpan/Cpanel-JSON-XS/t/test_parsing/i_string_incomplete_surrogate_pair.json
A
cpan/Cpanel-JSON-XS/t/test_parsing/i_string_incomplete_surrogates_escape_valid.json
A
cpan/Cpanel-JSON-XS/t/test_parsing/i_string_inverted_surrogates_U+1D11E.json
A cpan/Cpanel-JSON-XS/t/test_parsing/i_string_lone_second_surrogate.json
A cpan/Cpanel-JSON-XS/t/test_parsing/i_string_not_in_unicode_range.json
A cpan/Cpanel-JSON-XS/t/test_parsing/i_string_truncated-utf-8.json
A cpan/Cpanel-JSON-XS/t/test_parsing/i_string_unicode_U+10FFFE_nonchar.json
A cpan/Cpanel-JSON-XS/t/test_parsing/i_string_unicode_U+1FFFE_nonchar.json
A cpan/Cpanel-JSON-XS/t/test_parsing/i_string_unicode_U+FDD0_nonchar.json
A cpan/Cpanel-JSON-XS/t/test_parsing/i_string_unicode_U+FFFE_nonchar.json
A cpan/Cpanel-JSON-XS/t/test_parsing/i_structure_500_nested_arrays.json
A cpan/Cpanel-JSON-XS/t/test_parsing/i_structure_UTF-8_BOM_empty_object.json
A cpan/Cpanel-JSON-XS/t/test_parsing/n_array_1_true_without_comma.json
A cpan/Cpanel-JSON-XS/t/test_parsing/n_array_a_invalid_utf8.json
A cpan/Cpanel-JSON-XS/t/test_parsing/n_array_colon_instead_of_comma.json
A cpan/Cpanel-JSON-XS/t/test_parsing/n_array_comma_after_close.json
A cpan/Cpanel-JSON-XS/t/test_parsing/n_array_comma_and_number.json
A cpan/Cpanel-JSON-XS/t/test_parsing/n_array_double_comma.json
A cpan/Cpanel-JSON-XS/t/test_parsing/n_array_double_extra_comma.json
A cpan/Cpanel-JSON-XS/t/test_parsing/n_array_extra_close.json
A cpan/Cpanel-JSON-XS/t/test_parsing/n_array_extra_comma.json
A cpan/Cpanel-JSON-XS/t/test_parsing/n_array_incomplete.json
A cpan/Cpanel-JSON-XS/t/test_parsing/n_array_incomplete_invalid_value.json
A cpan/Cpanel-JSON-XS/t/test_parsing/n_array_inner_array_no_comma.json
A cpan/Cpanel-JSON-XS/t/test_parsing/n_array_invalid_utf8.json
A
cpan/Cpanel-JSON-XS/t/test_parsing/n_array_items_separated_by_semicolon.json
A cpan/Cpanel-JSON-XS/t/test_parsing/n_array_just_comma.json
A cpan/Cpanel-JSON-XS/t/test_parsing/n_array_just_minus.json
A cpan/Cpanel-JSON-XS/t/test_parsing/n_array_missing_value.json
A cpan/Cpanel-JSON-XS/t/test_parsing/n_array_newlines_unclosed.json
A cpan/Cpanel-JSON-XS/t/test_parsing/n_array_number_and_comma.json
A cpan/Cpanel-JSON-XS/t/test_parsing/n_array_number_and_several_commas.json
A
cpan/Cpanel-JSON-XS/t/test_parsing/n_array_spaces_vertical_tab_formfeed.json
A cpan/Cpanel-JSON-XS/t/test_parsing/n_array_star_inside.json
A cpan/Cpanel-JSON-XS/t/test_parsing/n_array_unclosed.json
A cpan/Cpanel-JSON-XS/t/test_parsing/n_array_unclosed_trailing_comma.json
A cpan/Cpanel-JSON-XS/t/test_parsing/n_array_unclosed_with_new_lines.json
A
cpan/Cpanel-JSON-XS/t/test_parsing/n_array_unclosed_with_object_inside.json
A cpan/Cpanel-JSON-XS/t/test_parsing/n_incomplete_false.json
A cpan/Cpanel-JSON-XS/t/test_parsing/n_incomplete_null.json
A cpan/Cpanel-JSON-XS/t/test_parsing/n_incomplete_true.json
A cpan/Cpanel-JSON-XS/t/test_parsing/n_number_++.json
A cpan/Cpanel-JSON-XS/t/test_parsing/n_number_+1.json
A cpan/Cpanel-JSON-XS/t/test_parsing/n_number_+Inf.json
A cpan/Cpanel-JSON-XS/t/test_parsing/n_number_-01.json
A cpan/Cpanel-JSON-XS/t/test_parsing/n_number_-1.0..json
A cpan/Cpanel-JSON-XS/t/test_parsing/n_number_-2..json
A cpan/Cpanel-JSON-XS/t/test_parsing/n_number_-NaN.json
A cpan/Cpanel-JSON-XS/t/test_parsing/n_number_.-1.json
A cpan/Cpanel-JSON-XS/t/test_parsing/n_number_.2e-3.json
A cpan/Cpanel-JSON-XS/t/test_parsing/n_number_0.1.2.json
A cpan/Cpanel-JSON-XS/t/test_parsing/n_number_0.3e+.json
A cpan/Cpanel-JSON-XS/t/test_parsing/n_number_0.3e.json
A cpan/Cpanel-JSON-XS/t/test_parsing/n_number_0.e1.json
A cpan/Cpanel-JSON-XS/t/test_parsing/n_number_0_capital_E+.json
A cpan/Cpanel-JSON-XS/t/test_parsing/n_number_0_capital_E.json
A cpan/Cpanel-JSON-XS/t/test_parsing/n_number_0e+.json
A cpan/Cpanel-JSON-XS/t/test_parsing/n_number_0e.json
A cpan/Cpanel-JSON-XS/t/test_parsing/n_number_1.0e+.json
A cpan/Cpanel-JSON-XS/t/test_parsing/n_number_1.0e-.json
A cpan/Cpanel-JSON-XS/t/test_parsing/n_number_1.0e.json
A cpan/Cpanel-JSON-XS/t/test_parsing/n_number_1_000.json
A cpan/Cpanel-JSON-XS/t/test_parsing/n_number_1eE2.json
A cpan/Cpanel-JSON-XS/t/test_parsing/n_number_2.e+3.json
A cpan/Cpanel-JSON-XS/t/test_parsing/n_number_2.e-3.json
A cpan/Cpanel-JSON-XS/t/test_parsing/n_number_2.e3.json
A cpan/Cpanel-JSON-XS/t/test_parsing/n_number_9.e+.json
A cpan/Cpanel-JSON-XS/t/test_parsing/n_number_Inf.json
A cpan/Cpanel-JSON-XS/t/test_parsing/n_number_NaN.json
A
cpan/Cpanel-JSON-XS/t/test_parsing/n_number_U+FF11_fullwidth_digit_one.json
A cpan/Cpanel-JSON-XS/t/test_parsing/n_number_expression.json
A cpan/Cpanel-JSON-XS/t/test_parsing/n_number_hex_1_digit.json
A cpan/Cpanel-JSON-XS/t/test_parsing/n_number_hex_2_digits.json
A cpan/Cpanel-JSON-XS/t/test_parsing/n_number_infinity.json
A cpan/Cpanel-JSON-XS/t/test_parsing/n_number_invalid+-.json
A cpan/Cpanel-JSON-XS/t/test_parsing/n_number_invalid-negative-real.json
A
cpan/Cpanel-JSON-XS/t/test_parsing/n_number_invalid-utf-8-in-bigger-int.json
A cpan/Cpanel-JSON-XS/t/test_parsing/n_number_invalid-utf-8-in-exponent.json
A cpan/Cpanel-JSON-XS/t/test_parsing/n_number_invalid-utf-8-in-int.json
A cpan/Cpanel-JSON-XS/t/test_parsing/n_number_minus_infinity.json
A
cpan/Cpanel-JSON-XS/t/test_parsing/n_number_minus_sign_with_trailing_garbage.json
A cpan/Cpanel-JSON-XS/t/test_parsing/n_number_minus_space_1.json
A
cpan/Cpanel-JSON-XS/t/test_parsing/n_number_neg_int_starting_with_zero.json
A cpan/Cpanel-JSON-XS/t/test_parsing/n_number_neg_real_without_int_part.json
A cpan/Cpanel-JSON-XS/t/test_parsing/n_number_neg_with_garbage_at_end.json
A cpan/Cpanel-JSON-XS/t/test_parsing/n_number_real_garbage_after_e.json
A
cpan/Cpanel-JSON-XS/t/test_parsing/n_number_real_with_invalid_utf8_after_e.json
A
cpan/Cpanel-JSON-XS/t/test_parsing/n_number_real_without_fractional_part.json
A cpan/Cpanel-JSON-XS/t/test_parsing/n_number_starting_with_dot.json
A cpan/Cpanel-JSON-XS/t/test_parsing/n_number_then_00.json
A cpan/Cpanel-JSON-XS/t/test_parsing/n_number_with_alpha.json
A cpan/Cpanel-JSON-XS/t/test_parsing/n_number_with_alpha_char.json
A cpan/Cpanel-JSON-XS/t/test_parsing/n_number_with_leading_zero.json
A cpan/Cpanel-JSON-XS/t/test_parsing/n_object_bad_value.json
A cpan/Cpanel-JSON-XS/t/test_parsing/n_object_bracket_key.json
A cpan/Cpanel-JSON-XS/t/test_parsing/n_object_comma_instead_of_colon.json
A cpan/Cpanel-JSON-XS/t/test_parsing/n_object_double_colon.json
A cpan/Cpanel-JSON-XS/t/test_parsing/n_object_emoji.json
A cpan/Cpanel-JSON-XS/t/test_parsing/n_object_garbage_at_end.json
A cpan/Cpanel-JSON-XS/t/test_parsing/n_object_key_with_single_quotes.json
A cpan/Cpanel-JSON-XS/t/test_parsing/n_object_missing_colon.json
A cpan/Cpanel-JSON-XS/t/test_parsing/n_object_missing_key.json
A cpan/Cpanel-JSON-XS/t/test_parsing/n_object_missing_semicolon.json
A cpan/Cpanel-JSON-XS/t/test_parsing/n_object_missing_value.json
A cpan/Cpanel-JSON-XS/t/test_parsing/n_object_no-colon.json
A cpan/Cpanel-JSON-XS/t/test_parsing/n_object_non_string_key.json
A
cpan/Cpanel-JSON-XS/t/test_parsing/n_object_non_string_key_but_huge_number_instead.json
A
cpan/Cpanel-JSON-XS/t/test_parsing/n_object_pi_in_key_and_trailing_comma.json
A cpan/Cpanel-JSON-XS/t/test_parsing/n_object_repeated_null_null.json
A cpan/Cpanel-JSON-XS/t/test_parsing/n_object_several_trailing_commas.json
A cpan/Cpanel-JSON-XS/t/test_parsing/n_object_single_quote.json
A cpan/Cpanel-JSON-XS/t/test_parsing/n_object_trailing_comma.json
A cpan/Cpanel-JSON-XS/t/test_parsing/n_object_trailing_comment.json
A cpan/Cpanel-JSON-XS/t/test_parsing/n_object_trailing_comment_open.json
A
cpan/Cpanel-JSON-XS/t/test_parsing/n_object_trailing_comment_slash_open.json
A
cpan/Cpanel-JSON-XS/t/test_parsing/n_object_trailing_comment_slash_open_incomplete.json
A cpan/Cpanel-JSON-XS/t/test_parsing/n_object_two_commas_in_a_row.json
A cpan/Cpanel-JSON-XS/t/test_parsing/n_object_unquoted_key.json
A cpan/Cpanel-JSON-XS/t/test_parsing/n_object_unterminated-value.json
A cpan/Cpanel-JSON-XS/t/test_parsing/n_object_with_single_string.json
A cpan/Cpanel-JSON-XS/t/test_parsing/n_object_with_trailing_garbage.json
A cpan/Cpanel-JSON-XS/t/test_parsing/n_single_space.json
A cpan/Cpanel-JSON-XS/t/test_parsing/n_string_1_surrogate_then_escape.json
A cpan/Cpanel-JSON-XS/t/test_parsing/n_string_1_surrogate_then_escape_u.json
A
cpan/Cpanel-JSON-XS/t/test_parsing/n_string_1_surrogate_then_escape_u1.json
A
cpan/Cpanel-JSON-XS/t/test_parsing/n_string_1_surrogate_then_escape_u1x.json
A
cpan/Cpanel-JSON-XS/t/test_parsing/n_string_UTF-16_incomplete_surrogate.json
A cpan/Cpanel-JSON-XS/t/test_parsing/n_string_UTF8_surrogate_U+D800.json
A
cpan/Cpanel-JSON-XS/t/test_parsing/n_string_accentuated_char_no_quotes.json
A cpan/Cpanel-JSON-XS/t/test_parsing/n_string_backslash_00.json
A cpan/Cpanel-JSON-XS/t/test_parsing/n_string_escape_x.json
A cpan/Cpanel-JSON-XS/t/test_parsing/n_string_escaped_backslash_bad.json
A cpan/Cpanel-JSON-XS/t/test_parsing/n_string_escaped_ctrl_char_tab.json
A cpan/Cpanel-JSON-XS/t/test_parsing/n_string_escaped_emoji.json
A cpan/Cpanel-JSON-XS/t/test_parsing/n_string_incomplete_escape.json
A
cpan/Cpanel-JSON-XS/t/test_parsing/n_string_incomplete_escaped_character.json
A
cpan/Cpanel-JSON-XS/t/test_parsing/n_string_incomplete_surrogate_escape_invalid.json
A cpan/Cpanel-JSON-XS/t/test_parsing/n_string_invalid-utf-8-in-escape.json
A cpan/Cpanel-JSON-XS/t/test_parsing/n_string_invalid_backslash_esc.json
A cpan/Cpanel-JSON-XS/t/test_parsing/n_string_invalid_unicode_escape.json
A cpan/Cpanel-JSON-XS/t/test_parsing/n_string_invalid_utf-8.json
A cpan/Cpanel-JSON-XS/t/test_parsing/n_string_invalid_utf8_after_escape.json
A cpan/Cpanel-JSON-XS/t/test_parsing/n_string_iso_latin_1.json
A
cpan/Cpanel-JSON-XS/t/test_parsing/n_string_leading_uescaped_thinspace.json
A
cpan/Cpanel-JSON-XS/t/test_parsing/n_string_lone_utf8_continuation_byte.json
A cpan/Cpanel-JSON-XS/t/test_parsing/n_string_no_quotes_with_bad_escape.json
A cpan/Cpanel-JSON-XS/t/test_parsing/n_string_overlong_sequence_2_bytes.json
A cpan/Cpanel-JSON-XS/t/test_parsing/n_string_overlong_sequence_6_bytes.json
A
cpan/Cpanel-JSON-XS/t/test_parsing/n_string_overlong_sequence_6_bytes_null.json
A cpan/Cpanel-JSON-XS/t/test_parsing/n_string_single_doublequote.json
A cpan/Cpanel-JSON-XS/t/test_parsing/n_string_single_quote.json
A
cpan/Cpanel-JSON-XS/t/test_parsing/n_string_single_string_no_double_quotes.json
A cpan/Cpanel-JSON-XS/t/test_parsing/n_string_start_escape_unclosed.json
A cpan/Cpanel-JSON-XS/t/test_parsing/n_string_unescaped_crtl_char.json
A cpan/Cpanel-JSON-XS/t/test_parsing/n_string_unescaped_newline.json
A cpan/Cpanel-JSON-XS/t/test_parsing/n_string_unescaped_tab.json
A cpan/Cpanel-JSON-XS/t/test_parsing/n_string_unicode_CapitalU.json
A cpan/Cpanel-JSON-XS/t/test_parsing/n_string_with_trailing_garbage.json
A cpan/Cpanel-JSON-XS/t/test_parsing/n_structure_100000_opening_arrays.json
A cpan/Cpanel-JSON-XS/t/test_parsing/n_structure_U+2060_word_joined.json
A cpan/Cpanel-JSON-XS/t/test_parsing/n_structure_UTF8_BOM_no_data.json
A cpan/Cpanel-JSON-XS/t/test_parsing/n_structure_array_trailing_garbage.json
A
cpan/Cpanel-JSON-XS/t/test_parsing/n_structure_array_with_extra_array_close.json
A
cpan/Cpanel-JSON-XS/t/test_parsing/n_structure_array_with_unclosed_string.json
A
cpan/Cpanel-JSON-XS/t/test_parsing/n_structure_ascii-unicode-identifier.json
A cpan/Cpanel-JSON-XS/t/test_parsing/n_structure_capitalized_True.json
A cpan/Cpanel-JSON-XS/t/test_parsing/n_structure_close_unopened_array.json
A
cpan/Cpanel-JSON-XS/t/test_parsing/n_structure_comma_instead_of_closing_brace.json
A cpan/Cpanel-JSON-XS/t/test_parsing/n_structure_double_array.json
A cpan/Cpanel-JSON-XS/t/test_parsing/n_structure_end_array.json
A cpan/Cpanel-JSON-XS/t/test_parsing/n_structure_incomplete_UTF8_BOM.json
A cpan/Cpanel-JSON-XS/t/test_parsing/n_structure_lone-invalid-utf-8.json
A cpan/Cpanel-JSON-XS/t/test_parsing/n_structure_lone-open-bracket.json
A cpan/Cpanel-JSON-XS/t/test_parsing/n_structure_lt.gt.json
A cpan/Cpanel-JSON-XS/t/test_parsing/n_structure_ltnullgt.json
A cpan/Cpanel-JSON-XS/t/test_parsing/n_structure_no_data.json
A
cpan/Cpanel-JSON-XS/t/test_parsing/n_structure_null-byte-outside-string.json
A
cpan/Cpanel-JSON-XS/t/test_parsing/n_structure_number_with_trailing_garbage.json
A
cpan/Cpanel-JSON-XS/t/test_parsing/n_structure_object_followed_by_closing_object.json
A
cpan/Cpanel-JSON-XS/t/test_parsing/n_structure_object_unclosed_no_value.json
A cpan/Cpanel-JSON-XS/t/test_parsing/n_structure_object_with_comment.json
A
cpan/Cpanel-JSON-XS/t/test_parsing/n_structure_object_with_trailing_garbage.json
A cpan/Cpanel-JSON-XS/t/test_parsing/n_structure_open_array_apostrophe.json
A cpan/Cpanel-JSON-XS/t/test_parsing/n_structure_open_array_comma.json
A cpan/Cpanel-JSON-XS/t/test_parsing/n_structure_open_array_object.json
A cpan/Cpanel-JSON-XS/t/test_parsing/n_structure_open_array_open_object.json
A cpan/Cpanel-JSON-XS/t/test_parsing/n_structure_open_array_open_string.json
A cpan/Cpanel-JSON-XS/t/test_parsing/n_structure_open_array_string.json
A cpan/Cpanel-JSON-XS/t/test_parsing/n_structure_open_object.json
A
cpan/Cpanel-JSON-XS/t/test_parsing/n_structure_open_object_close_array.json
A cpan/Cpanel-JSON-XS/t/test_parsing/n_structure_open_object_comma.json
A cpan/Cpanel-JSON-XS/t/test_parsing/n_structure_open_object_open_array.json
A
cpan/Cpanel-JSON-XS/t/test_parsing/n_structure_open_object_open_string.json
A
cpan/Cpanel-JSON-XS/t/test_parsing/n_structure_open_object_string_with_apostrophes.json
A cpan/Cpanel-JSON-XS/t/test_parsing/n_structure_open_open.json
A cpan/Cpanel-JSON-XS/t/test_parsing/n_structure_single_point.json
A cpan/Cpanel-JSON-XS/t/test_parsing/n_structure_single_star.json
A cpan/Cpanel-JSON-XS/t/test_parsing/n_structure_trailing_#.json
A
cpan/Cpanel-JSON-XS/t/test_parsing/n_structure_uescaped_LF_before_string.json
A cpan/Cpanel-JSON-XS/t/test_parsing/n_structure_unclosed_array.json
A
cpan/Cpanel-JSON-XS/t/test_parsing/n_structure_unclosed_array_partial_null.json
A
cpan/Cpanel-JSON-XS/t/test_parsing/n_structure_unclosed_array_unfinished_false.json
A
cpan/Cpanel-JSON-XS/t/test_parsing/n_structure_unclosed_array_unfinished_true.json
A cpan/Cpanel-JSON-XS/t/test_parsing/n_structure_unclosed_object.json
A cpan/Cpanel-JSON-XS/t/test_parsing/n_structure_unicode-identifier.json
A
cpan/Cpanel-JSON-XS/t/test_parsing/n_structure_whitespace_U+2060_word_joiner.json
A cpan/Cpanel-JSON-XS/t/test_parsing/n_structure_whitespace_formfeed.json
A cpan/Cpanel-JSON-XS/t/test_parsing/y_array_arraysWithSpaces.json
A cpan/Cpanel-JSON-XS/t/test_parsing/y_array_empty-string.json
A cpan/Cpanel-JSON-XS/t/test_parsing/y_array_empty.json
A cpan/Cpanel-JSON-XS/t/test_parsing/y_array_ending_with_newline.json
A cpan/Cpanel-JSON-XS/t/test_parsing/y_array_false.json
A cpan/Cpanel-JSON-XS/t/test_parsing/y_array_heterogeneous.json
A cpan/Cpanel-JSON-XS/t/test_parsing/y_array_null.json
A cpan/Cpanel-JSON-XS/t/test_parsing/y_array_with_1_and_newline.json
A cpan/Cpanel-JSON-XS/t/test_parsing/y_array_with_leading_space.json
A cpan/Cpanel-JSON-XS/t/test_parsing/y_array_with_several_null.json
A cpan/Cpanel-JSON-XS/t/test_parsing/y_array_with_trailing_space.json
A cpan/Cpanel-JSON-XS/t/test_parsing/y_number.json
A cpan/Cpanel-JSON-XS/t/test_parsing/y_number_0e+1.json
A cpan/Cpanel-JSON-XS/t/test_parsing/y_number_0e1.json
A cpan/Cpanel-JSON-XS/t/test_parsing/y_number_after_space.json
A cpan/Cpanel-JSON-XS/t/test_parsing/y_number_double_close_to_zero.json
A cpan/Cpanel-JSON-XS/t/test_parsing/y_number_double_huge_neg_exp.json
A cpan/Cpanel-JSON-XS/t/test_parsing/y_number_huge_exp.json
A cpan/Cpanel-JSON-XS/t/test_parsing/y_number_int_with_exp.json
A cpan/Cpanel-JSON-XS/t/test_parsing/y_number_minus_zero.json
A cpan/Cpanel-JSON-XS/t/test_parsing/y_number_negative_int.json
A cpan/Cpanel-JSON-XS/t/test_parsing/y_number_negative_one.json
A cpan/Cpanel-JSON-XS/t/test_parsing/y_number_negative_zero.json
A cpan/Cpanel-JSON-XS/t/test_parsing/y_number_real_capital_e.json
A cpan/Cpanel-JSON-XS/t/test_parsing/y_number_real_capital_e_neg_exp.json
A cpan/Cpanel-JSON-XS/t/test_parsing/y_number_real_capital_e_pos_exp.json
A cpan/Cpanel-JSON-XS/t/test_parsing/y_number_real_exponent.json
A cpan/Cpanel-JSON-XS/t/test_parsing/y_number_real_fraction_exponent.json
A cpan/Cpanel-JSON-XS/t/test_parsing/y_number_real_neg_exp.json
A cpan/Cpanel-JSON-XS/t/test_parsing/y_number_real_neg_overflow.json
A cpan/Cpanel-JSON-XS/t/test_parsing/y_number_real_pos_exponent.json
A cpan/Cpanel-JSON-XS/t/test_parsing/y_number_real_pos_overflow.json
A cpan/Cpanel-JSON-XS/t/test_parsing/y_number_real_underflow.json
A cpan/Cpanel-JSON-XS/t/test_parsing/y_number_simple_int.json
A cpan/Cpanel-JSON-XS/t/test_parsing/y_number_simple_real.json
A cpan/Cpanel-JSON-XS/t/test_parsing/y_number_too_big_neg_int.json
A cpan/Cpanel-JSON-XS/t/test_parsing/y_number_too_big_pos_int.json
A cpan/Cpanel-JSON-XS/t/test_parsing/y_number_very_big_negative_int.json
A cpan/Cpanel-JSON-XS/t/test_parsing/y_object.json
A cpan/Cpanel-JSON-XS/t/test_parsing/y_object_basic.json
A cpan/Cpanel-JSON-XS/t/test_parsing/y_object_duplicated_key.json
A cpan/Cpanel-JSON-XS/t/test_parsing/y_object_duplicated_key_and_value.json
A cpan/Cpanel-JSON-XS/t/test_parsing/y_object_empty.json
A cpan/Cpanel-JSON-XS/t/test_parsing/y_object_empty_key.json
A cpan/Cpanel-JSON-XS/t/test_parsing/y_object_escaped_null_in_key.json
A cpan/Cpanel-JSON-XS/t/test_parsing/y_object_extreme_numbers.json
A cpan/Cpanel-JSON-XS/t/test_parsing/y_object_long_strings.json
A cpan/Cpanel-JSON-XS/t/test_parsing/y_object_simple.json
A cpan/Cpanel-JSON-XS/t/test_parsing/y_object_string_unicode.json
A cpan/Cpanel-JSON-XS/t/test_parsing/y_object_with_newlines.json
A
cpan/Cpanel-JSON-XS/t/test_parsing/y_string_1_2_3_bytes_UTF-8_sequences.json
A
cpan/Cpanel-JSON-XS/t/test_parsing/y_string_UTF-16_Surrogates_U+1D11E_MUSICAL_SYMBOL_G_CLEF.json
A cpan/Cpanel-JSON-XS/t/test_parsing/y_string_accepted_surrogate_pair.json
A cpan/Cpanel-JSON-XS/t/test_parsing/y_string_accepted_surrogate_pairs.json
A cpan/Cpanel-JSON-XS/t/test_parsing/y_string_allowed_escapes.json
A
cpan/Cpanel-JSON-XS/t/test_parsing/y_string_backslash_and_u_escaped_zero.json
A cpan/Cpanel-JSON-XS/t/test_parsing/y_string_backslash_doublequotes.json
A cpan/Cpanel-JSON-XS/t/test_parsing/y_string_comments.json
A cpan/Cpanel-JSON-XS/t/test_parsing/y_string_double_escape_a.json
A cpan/Cpanel-JSON-XS/t/test_parsing/y_string_double_escape_n.json
A cpan/Cpanel-JSON-XS/t/test_parsing/y_string_escaped_control_character.json
A cpan/Cpanel-JSON-XS/t/test_parsing/y_string_escaped_noncharacter.json
A cpan/Cpanel-JSON-XS/t/test_parsing/y_string_in_array.json
A
cpan/Cpanel-JSON-XS/t/test_parsing/y_string_in_array_with_leading_space.json
A cpan/Cpanel-JSON-XS/t/test_parsing/y_string_last_surrogates_1_and_2.json
A cpan/Cpanel-JSON-XS/t/test_parsing/y_string_newline_uescaped.json
A
cpan/Cpanel-JSON-XS/t/test_parsing/y_string_nonCharacterInUTF-8_U+10FFFF.json
A
cpan/Cpanel-JSON-XS/t/test_parsing/y_string_nonCharacterInUTF-8_U+1FFFF.json
A
cpan/Cpanel-JSON-XS/t/test_parsing/y_string_nonCharacterInUTF-8_U+FFFF.json
A cpan/Cpanel-JSON-XS/t/test_parsing/y_string_null_escape.json
A cpan/Cpanel-JSON-XS/t/test_parsing/y_string_one-byte-utf-8.json
A cpan/Cpanel-JSON-XS/t/test_parsing/y_string_pi.json
A cpan/Cpanel-JSON-XS/t/test_parsing/y_string_simple_ascii.json
A cpan/Cpanel-JSON-XS/t/test_parsing/y_string_space.json
A cpan/Cpanel-JSON-XS/t/test_parsing/y_string_three-byte-utf-8.json
A cpan/Cpanel-JSON-XS/t/test_parsing/y_string_two-byte-utf-8.json
A cpan/Cpanel-JSON-XS/t/test_parsing/y_string_u+2028_line_sep.json
A cpan/Cpanel-JSON-XS/t/test_parsing/y_string_u+2029_par_sep.json
A cpan/Cpanel-JSON-XS/t/test_parsing/y_string_uEscape.json
A cpan/Cpanel-JSON-XS/t/test_parsing/y_string_unescaped_char_delete.json
A cpan/Cpanel-JSON-XS/t/test_parsing/y_string_unicode.json
A cpan/Cpanel-JSON-XS/t/test_parsing/y_string_unicodeEscapedBackslash.json
A cpan/Cpanel-JSON-XS/t/test_parsing/y_string_unicode_2.json
A
cpan/Cpanel-JSON-XS/t/test_parsing/y_string_unicode_U+200B_ZERO_WIDTH_SPACE.json
A
cpan/Cpanel-JSON-XS/t/test_parsing/y_string_unicode_U+2064_invisible_plus.json
A
cpan/Cpanel-JSON-XS/t/test_parsing/y_string_unicode_escaped_double_quote.json
A cpan/Cpanel-JSON-XS/t/test_parsing/y_string_utf16.json
A cpan/Cpanel-JSON-XS/t/test_parsing/y_string_utf16be.json
A cpan/Cpanel-JSON-XS/t/test_parsing/y_string_utf32.json
A cpan/Cpanel-JSON-XS/t/test_parsing/y_string_utf32be.json
A cpan/Cpanel-JSON-XS/t/test_parsing/y_string_utf8.json
A cpan/Cpanel-JSON-XS/t/test_parsing/y_string_with_del_character.json
A cpan/Cpanel-JSON-XS/t/test_parsing/y_structure_lonely_false.json
A cpan/Cpanel-JSON-XS/t/test_parsing/y_structure_lonely_int.json
A cpan/Cpanel-JSON-XS/t/test_parsing/y_structure_lonely_negative_real.json
A cpan/Cpanel-JSON-XS/t/test_parsing/y_structure_lonely_null.json
A cpan/Cpanel-JSON-XS/t/test_parsing/y_structure_lonely_string.json
A cpan/Cpanel-JSON-XS/t/test_parsing/y_structure_lonely_true.json
A cpan/Cpanel-JSON-XS/t/test_parsing/y_structure_string_empty.json
A cpan/Cpanel-JSON-XS/t/test_parsing/y_structure_trailing_newline.json
A cpan/Cpanel-JSON-XS/t/test_parsing/y_structure_true_in_array.json
A cpan/Cpanel-JSON-XS/t/test_parsing/y_structure_whitespace_array.json
A cpan/Cpanel-JSON-XS/t/test_transform/number_1.0.json
A cpan/Cpanel-JSON-XS/t/test_transform/number_1.000000000000000005.json
A cpan/Cpanel-JSON-XS/t/test_transform/number_1000000000000000.json
A cpan/Cpanel-JSON-XS/t/test_transform/number_10000000000000000999.json
A cpan/Cpanel-JSON-XS/t/test_transform/number_1e-999.json
A cpan/Cpanel-JSON-XS/t/test_transform/number_1e6.json
A cpan/Cpanel-JSON-XS/t/test_transform/object_key_nfc_nfd.json
A cpan/Cpanel-JSON-XS/t/test_transform/object_key_nfd_nfc.json
A cpan/Cpanel-JSON-XS/t/test_transform/object_same_key_different_values.json
A cpan/Cpanel-JSON-XS/t/test_transform/object_same_key_same_value.json
A cpan/Cpanel-JSON-XS/t/test_transform/object_same_key_unclear_values.json
A
cpan/Cpanel-JSON-XS/t/test_transform/string_1_escaped_invalid_codepoint.json
A cpan/Cpanel-JSON-XS/t/test_transform/string_1_invalid_codepoint.json
A
cpan/Cpanel-JSON-XS/t/test_transform/string_2_escaped_invalid_codepoints.json
A cpan/Cpanel-JSON-XS/t/test_transform/string_2_invalid_codepoints.json
A
cpan/Cpanel-JSON-XS/t/test_transform/string_3_escaped_invalid_codepoints.json
A cpan/Cpanel-JSON-XS/t/test_transform/string_3_invalid_codepoints.json
A cpan/Cpanel-JSON-XS/t/test_transform/string_with_escaped_NULL.json
A cpan/Cpanel-JSON-XS/t/zero-mojibake.t
A cpan/Cpanel-JSON-XS/typemap
A cpan/Cpanel-JSON-XS/xt/changes.t
A cpan/Cpanel-JSON-XS/xt/checkchanges.t
A cpan/Cpanel-JSON-XS/xt/gh70-asan.t
A cpan/Cpanel-JSON-XS/xt/kwalitee.t
A cpan/Cpanel-JSON-XS/xt/leaktrace.t
A cpan/Cpanel-JSON-XS/xt/manifest.t
A cpan/Cpanel-JSON-XS/xt/meta.t
A cpan/Cpanel-JSON-XS/xt/perl_minimum_version.t
A cpan/Cpanel-JSON-XS/xt/pod-coverage.t
A cpan/Cpanel-JSON-XS/xt/pod-spell-mistakes.t
A cpan/Cpanel-JSON-XS/xt/pod-spelling.t
A cpan/Cpanel-JSON-XS/xt/pod.t
M lib/.gitignore
M win32/GNUmakefile
M win32/Makefile
Log Message:
-----------
core: add Cpanel::JSON::XS
Commit: df5d3d31646d1051905a16f78efc150a791cc2b6
https://github.com/Perl/perl5/commit/df5d3d31646d1051905a16f78efc150a791cc2b6
Author: Yves Orton <[email protected]>
Date: 2026-08-29 (Sat, 29 Aug 2026)
Changed paths:
M t/harness
Log Message:
-----------
harness: prioritize tests without saved timings
Commit: 3129ae8fe2b87cdebb38e4506c703b049a3facaf
https://github.com/Perl/perl5/commit/3129ae8fe2b87cdebb38e4506c703b049a3facaf
Author: Yves Orton <[email protected]>
Date: 2026-08-29 (Sat, 29 Aug 2026)
Changed paths:
M MANIFEST
R cpan/Cpanel-JSON-XS/.appveyor.yml
R cpan/Cpanel-JSON-XS/.github/FUNDING.yml
R cpan/Cpanel-JSON-XS/.github/workflows/testsuite.yml
R cpan/Cpanel-JSON-XS/.whitesource
M cpan/Cpanel-JSON-XS/XS.xs
M cpan/Cpanel-JSON-XS/bin/cpanel_json_xs
M cpan/Cpanel-JSON-XS/eg/bench
M cpan/Cpanel-JSON-XS/t/20_unknown.t
M t/porting/filenames.t
A utils/cpanel_json_xs.PL
Log Message:
-----------
core: finish Cpanel JSON XS integration cleanup
Commit: 4fe6037377693a38ab0bb2c789f6a79a6ec5c1a3
https://github.com/Perl/perl5/commit/4fe6037377693a38ab0bb2c789f6a79a6ec5c1a3
Author: Yves Orton <[email protected]>
Date: 2026-08-29 (Sat, 29 Aug 2026)
Changed paths:
A .agent/skills/perl-configure-build-system/SKILL.md
A
.agent/skills/perl-configure-build-system/references/configure-build-system.md
A .agent/skills/perl-core-archaeology/SKILL.md
A .agent/skills/perl-core-archaeology/references/core-archaeology.md
A .agent/skills/perl-core-build-test-debug/SKILL.md
A .agent/skills/perl-core-build-test-debug/references/testing-debugging.md
A .agent/skills/perl-core-docs-release/SKILL.md
A .agent/skills/perl-core-docs-release/references/docs-release.md
A .agent/skills/perl-core-hacking/SKILL.md
A .agent/skills/perl-core-hacking/references/core-change-workflow.md
A .agent/skills/perl-core-orientation/SKILL.md
A .agent/skills/perl-core-orientation/references/source-map.md
A .agent/skills/perl-core-portability/SKILL.md
A .agent/skills/perl-core-portability/references/core-portability.md
A .agent/skills/perl-embed-fnc/SKILL.md
A .agent/skills/perl-embed-fnc/references/embed-fnc-guide.md
A .agent/skills/perl-generated-files/SKILL.md
A .agent/skills/perl-generated-files/references/generated-files.md
A .agent/skills/perl-language-library/SKILL.md
A .agent/skills/perl-language-library/references/language-library.md
A .agent/skills/perl-parser-optree-ops/SKILL.md
A .agent/skills/perl-parser-optree-ops/references/parser-optree-ops.md
A .agent/skills/perl-regex-engine/SKILL.md
A .agent/skills/perl-regex-engine/references/regex-engine-map.md
A .agent/skills/perl-sv-magic-memory/SKILL.md
A .agent/skills/perl-sv-magic-memory/references/sv-magic-memory.md
A .agent/skills/perl-xs-embedding/SKILL.md
A .agent/skills/perl-xs-embedding/references/xs-embedding.md
M .gitignore
A AGENTS.md
R AI_POLICY.md
A CLAUDE.md
Log Message:
-----------
add skills
Commit: 416af500f94f87ec352bf915c07b610fbda4f2e9
https://github.com/Perl/perl5/commit/416af500f94f87ec352bf915c07b610fbda4f2e9
Author: Yves Orton <[email protected]>
Date: 2026-08-29 (Sat, 29 Aug 2026)
Changed paths:
M MANIFEST
M MANIFEST.SKIP
Log Message:
-----------
porting: exclude agent files from the distribution manifest
Commit: 73c6a743e080fdd3532e2a95ee59e34c7a1ecf1e
https://github.com/Perl/perl5/commit/73c6a743e080fdd3532e2a95ee59e34c7a1ecf1e
Author: Yves Orton <[email protected]>
Date: 2026-08-29 (Sat, 29 Aug 2026)
Changed paths:
M MANIFEST
M embed.fnc
M embed.h
M feature.h
M keywords.c
M keywords.h
M lib/feature.pm
M op.c
M perly.act
M perly.h
M perly.tab
M perly.y
M pod/perl.pod
M pod/perldelta.pod
A pod/perlnamespace.pod
M pod/perlsyn.pod
M proto.h
M regen/feature.pl
M regen/keywords.pl
A t/comp/namespaces.t
M toke.c
Log Message:
-----------
core: add lexical namespace foundation
Commit: 0431bedc16d492189ab566a55bd499390a52e58c
https://github.com/Perl/perl5/commit/0431bedc16d492189ab566a55bd499390a52e58c
Author: Yves Orton <[email protected]>
Date: 2026-08-29 (Sat, 29 Aug 2026)
Changed paths:
M lib/feature.pm
M lib/warnings.pm
M pod/perlfunc.pod
M regen/feature.pl
M regen/warnings.pl
M t/comp/namespaces.t
M toke.c
M warnings.h
Log Message:
-----------
core: mark namespaces as experimental
Commit: 6945cbb0eb0dc7fa499154129c2dc64d2f34e7d1
https://github.com/Perl/perl5/commit/6945cbb0eb0dc7fa499154129c2dc64d2f34e7d1
Author: Yves Orton <[email protected]>
Date: 2026-08-29 (Sat, 29 Aug 2026)
Changed paths:
M toke.c
Log Message:
-----------
core: resolve namespace-qualified symbols
Commit: db2f74d0af7b2be7103c53b4d4669c280b2a06c9
https://github.com/Perl/perl5/commit/db2f74d0af7b2be7103c53b4d4669c280b2a06c9
Author: Yves Orton <[email protected]>
Date: 2026-08-29 (Sat, 29 Aug 2026)
Changed paths:
M MANIFEST
M op.c
M pod/perldiag.pod
M pod/perlfunc.pod
M win32/pod.mak
Log Message:
-----------
core: document namespace APIs and diagnostics
Commit: 8b16b14182aa4db5135ca0539dab5a40deca8aec
https://github.com/Perl/perl5/commit/8b16b14182aa4db5135ca0539dab5a40deca8aec
Author: Yves Orton <[email protected]>
Date: 2026-08-29 (Sat, 29 Aug 2026)
Changed paths:
M t/comp/namespaces.t
M t/op/coreamp.t
M t/op/coresubs.t
Log Message:
-----------
tests: cover namespace test setup and keyword warnings
Commit: c8c19e19db65a40899ed37939606dd032ebfd4f4
https://github.com/Perl/perl5/commit/c8c19e19db65a40899ed37939606dd032ebfd4f4
Author: Yves Orton <[email protected]>
Date: 2026-08-29 (Sat, 29 Aug 2026)
Changed paths:
M gv.c
Log Message:
-----------
core: exclude namespace keywords from CORE subs
Commit: 2e2458d3175bad79ed4e06cda63c3e893ce8e991
https://github.com/Perl/perl5/commit/2e2458d3175bad79ed4e06cda63c3e893ce8e991
Author: Yves Orton <[email protected]>
Date: 2026-08-29 (Sat, 29 Aug 2026)
Changed paths:
M t/comp/namespaces.t
M toke.c
Log Message:
-----------
namespaces: support explicit CORE boundaries
Commit: b9a33dc9e9dd1553cdd44c4c351cf76949bf4209
https://github.com/Perl/perl5/commit/b9a33dc9e9dd1553cdd44c4c351cf76949bf4209
Author: Yves Orton <[email protected]>
Date: 2026-08-29 (Sat, 29 Aug 2026)
Changed paths:
M ext/Pod-Functions/t/Functions.t
M t/comp/namespaces.t
M t/porting/test_bootstrap.t
M toke.c
Log Message:
-----------
tests: restore feature-off namespace compatibility
Commit: 9fe887ea559b9df3e1a236b6b2674569d0f1e0a6
https://github.com/Perl/perl5/commit/9fe887ea559b9df3e1a236b6b2674569d0f1e0a6
Author: Yves Orton <[email protected]>
Date: 2026-08-29 (Sat, 29 Aug 2026)
Changed paths:
M lib/B/Deparse-core.t
Log Message:
-----------
tests: account for namespace keywords in deparse sanity check
Commit: afee758d9ea5259e67892fc0c4893e02df5a7996
https://github.com/Perl/perl5/commit/afee758d9ea5259e67892fc0c4893e02df5a7996
Author: Yves Orton <[email protected]>
Date: 2026-08-29 (Sat, 29 Aug 2026)
Changed paths:
M lib/B/Deparse-core.t
Log Message:
-----------
tests: silence experimental comparison warnings
Compare: https://github.com/Perl/perl5/compare/8328b0a2ce44%5E...afee758d9ea5
To unsubscribe from these emails, change your notification settings at
https://github.com/Perl/perl5/settings/notifications