Opened 3 years ago

Last modified 19 months ago

#12669 new task

Add some weird Kmettian tests to the test suite

Reported by: dfeuer Owned by:
Priority: normal Milestone:
Component: Test Suite Version: 8.0.1
Keywords: Cc: ekmett
Operating System: Unknown/Multiple Architecture: Unknown/Multiple
Type of failure: None/Unknown Test Case:
Blocked By: Blocking:
Related Tickets: Differential Rev(s):
Wiki Page:


reflection does some funny business essentially coercing between -> and =>. constraints has some code that's very sensitive to superclass cycle detection. And there's some other package (structures?) that coerces between * and # to stick raw MutArr# pointers into arrays. I believe Kmett also uses unsafeCoerce# reallyUnsafePtrEquality# to compare pointers of kind # to others (of possibly different types).

None of these things are anything like officially supported. However, breaking them could be expensive for the ecosystem. Dealing with breakage when someone discovers it months later can be very hard, so I think some of these things should probably be added to the GHC test suite. Failures shouldn't categorically prevent changes from being merged, but they would provide an early warning and get conversations started earlier.

Change History (5)

comment:1 Changed 3 years ago by simonpj

I'm all for it. But please make it clear in the tests what their provenance is, and the remarks in your Description above. Maybe just call them T12669a, T12669b, etc.

comment:2 Changed 3 years ago by goldfire

I'd go a step further than comment:1 and put these kinds of tests in their own directory within the testsuite/tests directory. Something like unsupp (or, if you're feeling verbose -- as I often do -- would_be_nice). Then, when I see a failure as I'm putting in a new feature, my level of disappointment at failing the testsuite will be immediately lowered. Do include a README in the folder describing its purpose. Ideally, each test case would also repeat the info that the behavior is unsupported.

I do fully support the inclusion of these tests in the testsuite. Thanks for suggesting it!

comment:3 Changed 3 years ago by bgamari


Given that 8.2.1-rc1 is imminent, I'm bumping these off to the 8.4

comment:4 Changed 21 months ago by bgamari


This ticket won't be resolved in 8.4; remilestoning for 8.6. Do holler if you are affected by this or would otherwise like to work on it.

comment:5 Changed 19 months ago by bgamari

Milestone: 8.6.1
Type: feature requesttask

Removing milestone as no one is currently actively working on this.

Note: See TracTickets for help on using tickets.