@@ -325,35 +325,19 @@ All tests meet or exceed the baseline (20260312T075000):
325325
326326## Known Issues (Remaining Moo Test Failures)
327327
328+ All remaining test failures are expected and require Java features that are not available:
329+
328330### Issue: DEMOLISH Not Being Called (Expected - Not Supported)
329- **Tests affected**: t/ demolish-basics .t (3 failures)
331+ **Tests affected**: demolish-* .t (6 failures)
330332**Symptom**: Object destructors (DEMOLISH methods) are not called when objects go out of scope
331333**Root cause**: DESTROY/fork/threads are not supported in PerlOnJava (they compile but throw at runtime)
332334**Status**: Expected failure - these features are out of scope for PerlOnJava
333335
334- ### Issue: SUPER::new Not Working in Extended Classes - FIXED (Phase 13)
335- **Tests affected**: t/extends-non-moo.t
336- **Symptom**: `Undefined subroutine &Package::SUPER::new called`
337- **Root cause**: Only `SUPER::method` was supported, not `Package::SUPER::method`
338- **Status**: ✅ FIXED - RuntimeCode.java now handles `::SUPER::` pattern
339-
340- ### Issue: Regex Escaping in Error Messages (quotemeta) - FIXED (Phase 12)
341- **Tests affected**: t/accessor-coerce.t, t/accessor-isa.t (many failures)
342- **Symptom**: `plus\_ three` vs `plus_three`, `less\_ than\_ three` vs `less_than_three`
343- **Root cause**: quotemeta was escaping `_` (underscore) which Perl doesn' t escape
344- ** Status ** : ✅ FIXED - StringOperators . java now treats `_` as alphanumeric
345-
346- ### Issue : Role Application Error Messages
347- ** Tests affected** : t/ compose- roles. t (4 failures)
348- ** Symptom ** : Missing error messages when required attributes are not provided
349- ** Root cause** : Error throwing in role composition may not propagate correctly
350- ** Status ** : Needs investigation
351-
352- ### Issue : Spurious " Odd number of elements in anonymous hash" Warnings
353- ** Tests affected** : Various tests when run via TAP :: Harness
354- ** Symptom ** : Warnings appear in TAP :: Harness but not when running tests directly
355- ** Root cause** : Unknown - standard Perl does NOT emit these warnings
356- ** Status ** : Needs investigation - add stack trace to RuntimeHash . java to identify source
336+ ### Issue: Weak References Not Supported (Expected - Java GC Limitation)
337+ **Tests affected**: accessor-weaken*.t (20 failures), no-moo.t (5 failures)
338+ **Symptom**: Weak references don' t work as expected in Java ' s garbage collector
339+ **Root cause**: Java' s GC is fundamentally different from Perl ' s reference counting
340+ **Status**: Expected failure - would require extensive changes to RuntimeScalar
357341
358342## Remaining jcpan Improvements
359343
@@ -686,33 +670,25 @@ Moo tests run via `jcpan -t Moo`. Recent fixes (Phases 12-13) should improve pas
686670 - `parseStackTraceElement()` returns the `#line`-adjusted filename for caller() reporting
687671 - **Result**: Tests 15, 18 now PASS; tests 19-26 now run (were previously skipped due to parse errors)
688672
673+ - [x] Phase 38: croak-locations.t tests 27-28 now passing (2026-03-17)
674+ - Tests 27-28 were listed as failing but now pass without additional changes
675+ - The fixes from Phase 29 (correct line numbers) and Phase 37 (#line directive) resolved these
676+ - Test 27: Delegated method croak now correctly reports call site
677+ - Test 28: Role default isa now correctly reports application location
678+ - **Result**: croak-locations.t 29/29 tests passing (100%)
679+
689680### Current Status
690681
691- **Test Results (after Phase 37 ):**
692- - **Moo**: 64 /71 test programs passing (90 %), 806 /839 subtests passing (96%)
682+ **Test Results (after Phase 38 - croak-locations.t fully passing ):**
683+ - **Moo**: 65 /71 test programs passing (91.5 %), 808 /839 subtests passing (96.3 %)
693684- **Mo**: 28/28 test programs passing (100%), 144/144 subtests passing (100%)
694685
695- **Remaining Failures (categorized):**
696- 1. **accessor-weaken tests** (20 failures) - Expected, weak references not supported in Java GC
697- 2. **croak-locations.t** (2 failures) - Tests 27, 28: delegated method croak and role default isa
698- 3. **demolish tests** (6 failures) - Expected, DESTROY not supported
699- 4. **no-moo.t** (5 failures) - Namespace cleanup requires weak references
700-
701- **croak-locations.t test 27 analysis**:
702- - Test: `Method::Generate::Accessor::_generate_delegation - user croak`
703- - Expected: `LocationTestFile line 22` (where delegated method is called)
704- - Got: `(eval N) line 50` (internal constructor code)
705- - Issue: Carp is blaming the generated constructor instead of the user' s call site
706- - This is a deeper Carp stack- walking issue with Sub :: Quote - generated code
707-
708- ** croak- locations. t test 28 analysis** :
709- - Test : `Moo :: Role :: create_class_with_roles - default fails isa`
710- - Expected : `LocationTestFile line 21 ` (where `apply_roles_to_object` is called)
711- - Got : `LocationTestFile line 18 ` (where the object was created)
712- - Issue : Carp is blaming object creation instead of role application
713- - Related to how default values and isa checks interact with stack walking
714-
715- ** Expected failures** (not fixable without fundamental changes):
686+ **Remaining Failures (all expected - require Java features not available):**
687+ 1. **accessor-weaken*.t** (20 failures) - Weak references not supported in Java GC
688+ 2. **demolish-*.t** (6 failures) - DESTROY not supported
689+ 3. **no-moo.t** (5 failures) - Namespace cleanup requires weak references
690+
691+ **All remaining failures require fundamental Java GC limitations:**
716692- Weak references: accessor-weaken tests (20), no-moo.t cleanup (5)
717693- DESTROY/GC: demolish tests (6)
718694
@@ -799,36 +775,32 @@ that didn't communicate with the compiler's strict checking.
799775#### Phase 36: croak-locations.t Tests 15, 18 (Completed)
800776**Status**: Completed 2026-03-17 (merged into Phase 37 above)
801777
802- Tests 15 and 18 are now fixed. The remaining tests 27 - 28 involve:
803- - Test 27 : Delegated method croak - Carp blames generated code instead of call site
804- - Test 28 : Role default isa - Carp blames object creation instead of role application
805-
806- These require deeper investigation into how Carp walks the stack for Sub :: Quote - generated code.
778+ Tests 15 and 18 are now fixed. Tests 27-28 were also fixed by Phase 29 and 37 (see Phase 38).
807779
808780---
809781
810- ** Revised Priority Order ** (considering deferred implementations ):
782+ **Revised Priority Order** (all high-impact items completed ):
811783
812784| Priority | Phase | Impact | Status | Effort |
813785|----------|-------|--------|--------|--------|
814786| 1 | ~~B::Deparse (33)~~ | ~~1 test~~ | **Completed** | ~~Medium~~ |
815787| 2 | ~~Mo strict.t (35)~~ | ~~1 test~~ | **Completed** | ~~Low~~ |
816788| 3 | ~~Interpreter caller() (34)~~ | ~~Parity~~ | **Completed** | ~~Medium~~ |
817789| 4 | ~~croak-locations.t 15,18 (36/37)~~ | ~~2 tests~~ | **Completed** | ~~Medium~~ |
818- | 5 | ** croak- locations. t 27 ,28 ** | 2 tests | Complex | High |
790+ | 5 | ~~ croak-locations.t 27,28~~ | ~~ 2 tests~~ | **Completed** | ~~ High~~ |
819791| 6 | DESTROY (31) | 6 tests | **Deferred** | High |
820792| 7 | Weak References (32) | 25 tests | **Deferred** | High |
821793
822- ** Actionable items** (can be investigated):
823- 1. ** croak- locations. t 27 - 28 ** : Complex Carp stack walking for Sub :: Quote - generated code
824-
825- ** Deferred ** (need design maturation):
826- - Phase 31 (DESTROY ): Requires scope- based tracking, complex GC interaction
794+ **All actionable items completed!** Remaining failures (31 subtests) require:
795+ - Phase 31 (DESTROY): Scope-based tracking, complex GC interaction
827796- Phase 32 (Weak refs): Memory impact concern, need alternative to adding field
828797
829- ** Achievable test improvement without deferred features** :
830- - Current : 64 / 71 Moo tests (90 % ), 806 / 839 subtests (96 % ), 28 / 28 Mo tests (100 % )
831- - The bulk of remaining failures (31 tests) require DESTROY or weak refs
798+ **Final achievable state reached**:
799+ - Moo: 65/71 test programs (91.5%), 808/839 subtests (96.3%)
800+ - Mo: 28/28 test programs (100%), 144/144 subtests (100%)
801+
802+ The 31 remaining failing subtests all require DESTROY or weak reference support,
803+ which are fundamentally limited by Java' s GC model.
832804
833805### PR Information
834806- ** Branch ** : `feature/ moo- support` (PR #319 - merged)
0 commit comments