Open lydia-duncan opened 1 year ago
Current failures with main:
[Error matching program output for release/examples/benchmarks/hpcc/variants/ra-cleanloop] [Error matching program output for release/examples/benchmarks/hpcc/variants/ra-unordered-atomics] [Error matching program output for release/examples/benchmarks/hpcc/variants/stream-promoted] [Error matching program output for release/examples/benchmarks/hpcc/fft] [Error matching program output for release/examples/benchmarks/hpcc/hpl] [Error matching program output for release/examples/benchmarks/hpcc/ptrans] [Error matching program output for release/examples/benchmarks/hpcc/ra-atomics] [Error matching program output for release/examples/benchmarks/hpcc/ra] [Error matching program output for release/examples/benchmarks/hpcc/stream-ep] [Error matching program output for release/examples/benchmarks/hpcc/stream] [Error matching program output for release/examples/benchmarks/isx/isx (execopts: 1)] [Error matching program output for release/examples/benchmarks/isx/isx (execopts: 2)] [Error matching program output for release/examples/benchmarks/isx/isx (execopts: 3)] [Error matching program output for release/examples/benchmarks/lcals/LCALSMain] [Error matching program output for release/examples/benchmarks/lulesh/lulesh (compopts: 1, execopts: 1)] [Error matching program output for release/examples/benchmarks/lulesh/lulesh (compopts: 1, execopts: 2)] [Error matching program output for release/examples/benchmarks/lulesh/lulesh (compopts: 1, execopts: 3)] [Error matching program output for release/examples/benchmarks/lulesh/lulesh (compopts: 1, execopts: 4)] [Error matching program output for release/examples/benchmarks/lulesh/lulesh (compopts: 1, execopts: 5)] [Error matching program output for release/examples/benchmarks/lulesh/lulesh (compopts: 2, execopts: 1)] [Error matching program output for release/examples/benchmarks/lulesh/lulesh (compopts: 2, execopts: 2)] [Error matching program output for release/examples/benchmarks/lulesh/lulesh (compopts: 2, execopts: 3)] [Error matching program output for release/examples/benchmarks/lulesh/lulesh (compopts: 2, execopts: 4)] [Error matching program output for release/examples/benchmarks/lulesh/lulesh (compopts: 2, execopts: 5)] [Error matching program output for release/examples/benchmarks/lulesh/test3DLulesh (compopts: 1, execopts: 1)] [Error matching program output for release/examples/benchmarks/lulesh/test3DLulesh (compopts: 1, execopts: 2)] [Error matching program output for release/examples/benchmarks/lulesh/test3DLulesh (compopts: 1, execopts: 3)] [Error matching program output for release/examples/benchmarks/lulesh/test3DLulesh (compopts: 2, execopts: 1)] [Error matching program output for release/examples/benchmarks/lulesh/test3DLulesh (compopts: 2, execopts: 2)] [Error matching program output for release/examples/benchmarks/lulesh/test3DLulesh (compopts: 2, execopts: 3)] [Error matching program output for release/examples/benchmarks/miniMD/miniMD (compopts: 1)] [Error matching program output for release/examples/benchmarks/miniMD/miniMD (compopts: 2)] [Error matching program output for release/examples/benchmarks/shootout/binarytrees] [Error matching program output for release/examples/benchmarks/shootout/chameneosredux-fast] [Error matching program output for release/examples/benchmarks/shootout/chameneosredux] [Error matching program output for release/examples/benchmarks/shootout/fannkuchredux] [Error matching program output for release/examples/benchmarks/shootout/knucleotide] [Error matching program output for release/examples/benchmarks/shootout/mandelbrot-fast] [Error matching program output for release/examples/benchmarks/shootout/mandelbrot] [Error matching program output for release/examples/benchmarks/shootout/meteor] [Error matching program output for release/examples/benchmarks/shootout/nbody] [Error matching program output for release/examples/benchmarks/shootout/revcomp-fast] [Error matching program output for release/examples/patterns/readcsv] [Error matching program output for release/examples/primers/chplvis/chplvis1] [Error matching program output for release/examples/primers/chplvis/chplvis2] [Error matching program output for release/examples/primers/chplvis/chplvis3] [Error matching program output for release/examples/primers/chplvis/chplvis4] [Error matching program output for release/examples/primers/LinearAlgebralib] [Error matching program output for release/examples/primers/associative] [Error matching program output for release/examples/primers/atomics] [Error matching program output for release/examples/primers/distributions] [Error matching program output for release/examples/primers/domains] [Error matching program output for release/examples/primers/interopWithC] [Error matching program output for release/examples/primers/learnChapelInYMinutes] [Error matching program output for release/examples/primers/listOps] [Error matching program output for release/examples/primers/locales] [Error matching program output for release/examples/primers/modules] [Error matching program output for release/examples/primers/parIters] [Error matching program output for release/examples/primers/randomNumbers] [Error matching program output for release/examples/primers/ranges] [Error matching program output for release/examples/primers/reductions] [Error matching program output for release/examples/primers/replicated] [Error matching program output for release/examples/primers/sparse] [Error matching program output for release/examples/primers/specialMethods] [Error matching program output for release/examples/spec/Arrays/assoc-add-index] [Error matching program output for release/examples/spec/Arrays/sparse-error] [Error matching program output for release/examples/spec/Classes/delete] [Error matching program output for release/examples/spec/Data_Parallelism/promotes-default] [Error matching program output for release/examples/spec/Domains/associativeDomain] [Error matching program output for release/examples/spec/Expressions/let] [Error matching program output for release/examples/spec/Iterators/recursive] [Error matching program output for release/examples/spec/Memory_Consistency_Model/syncSpinWait] [Error matching program output for release/examples/spec/Ranges/rangeAdd] [Error matching program output for release/examples/spec/Records/recordDeinitializer] [Error matching program output for release/examples/spec/Records/userhash] [Error matching program output for release/examples/spec/Statements/manage1] [Error matching program output for release/examples/spec/Statements/manage2] [Error matching program output for release/examples/spec/Statements/manage3] [Error matching program output for release/examples/spec/Tuples/omit-component-decl] [Error matching program output for release/examples/users-guide/base/zip] [Error matching program output for release/examples/hello4-datapar-dist]
There are 57 distinct failure modes among these tests. The dmapped ones in the primers and spec have already been resolved by Jeremiah, but the rest currently remain.
Some of these failure modes should not be adjusted for, since they are of features that we intend to examine and eventually stabilize in some form. Others can be addressed today, so I will try to do so.
Here's the per-test breakdown of failure modes:
And here's the per-failure mode breakdown, in order of when the failure mode was encountered when traversing the log file:
Took a look at the "Default initialization of range with boundKind.low/boundKind.high" failures because conceptually it seemed reasonable to resolve. That ended up being because of this line in the BlockCycDist implementation.
On the one hand, the warning made it look like it was something the user was doing that triggered the failure when it was BlockCycDist and it was a bit annoying to track down where it was actually happening. On the other hand, BlockCycDist itself is unstable, so it's not really a problem for it to use unstable things - anyone who's using it is probably tuning out unstable warnings to some degree?
My thought on those cases is:
Basically, in both cases, we should stop shining a light on things that we don't really want users putting much weight on at this point.
[edit: also, is it weird that we're getting an unstable warning in a distribution module? Does that suggest that my belief that they were treated as MOD_STANDARD is incorrect?]
Looked through the other cases:
ChplConfig.CHPL_COMM
For many of these, I think we could use @riftEmber's new query. For the ones that check against ugni
, I think they're just trying to decide whether network atomics are supported to decide whether to use on-clauses vs. rmos vs. atomics. But I don't know how much we rely on those defaults anyway in our testing (vs. just explicitly saying which variant we want). Checking the ml-compopts file, it looks like it's explicit.
dataParTasksPerLocale
For the HPCCProblemSize.chpl case, I suspect we could just use maxTaskPar and that would take care of all cases other than ra-atomics.chpl
DimensionalDist2D
I'd remove hpl from the release/examples and this distribution from the primer
RangeChunk foreach loops
I'd move lcals out of the release
readln
The answer is clear—stabilize readln()! :D
compareAndSwap
I think these could be rewritten to use compareExchange, which I think is stable?
divCeilPos
can we cast to uint and use divCeil?
hasSingleLocalSubdomain on arrays localSubdomains on arrays
If we remove BlockCyclic from this primer, I believe these would go away as well.
writeXF readXX
These would be good to address...
Update: I'm taking a pass on the distributions primer now.
[edit: Now up here: https://github.com/chapel-lang/chapel/pull/23465 with no unstable warnings]
also, is it weird that we're getting an unstable warning in a distribution module? Does that suggest that my belief that they were treated as MOD_STANDARD is incorrect?
This is specific to that particular unstable warning. The unstable warning is handled in code in the body of the ChapelRange function rather than through the @unstable
attribute, so it isn't subject to the compiler's controls and detection about whether the code triggering the warning is in the standard modules or not.
There's probably a way to get it to be handled appropriately, but that seemed like a rabbit hole when there were potentially other quick fixes that could be made before code freeze
When I ran the release/examples test directory with
--warn-unstable
today, I encountered 70 failures. This number may increase between now and feature freeze, so it's probably best to do a fresh run then.