Open benharsh opened 7 years ago
@bradcray : Here's an issue we can use to track the removal of _value
from tests and modules.
@benharsh - do you think some of these changes would fall into the "good first issue" category? Consider adding the tag & putting a 1-line "if this is your first issue" thing at the top?
Perhaps, but I already have a branch going for many of the low-hanging cases. I'll look over the remainder once that branch goes in.
Re test/distributions/vass/changeBoundingBox.chpl
: its use of _value is a workaround for an issue of the domain map object's lifetime. Also, I believe we now have another implementation of this idea that's officially in the modules. So the value of preserving this test is quite low.
The array, domain, and distribution records all have a field named
_value
. This is a potentially-privatized class representing the array/domain/dist implementation. In the past users have been forced to use this field to access the underlying implementation in a non-standard way that could change out from under them in the next release.This issue will be used to track remaining uses of
_value
in our tests and standard modules. Further issues may be spawned if we are unable to replace the use of_value
with something better. I would recommend that we eventually make_value
a private method, but then I'm not sure how we would write tests to verify/inspect internal state. It is also unclear to me how we should expose things like bulk-transfer and RADopt for use in distributions.Below I have categorized tests and standard modules based on how they use
_value
. Some tests may appear in multiple categories.Iterators
Leader/Follower forwarding
modules/standard/DynamicIters.chpl
modules/standard/Random.chpl
test/distributions/bradc/assoc/UserMapAssoc.chpl
test/functions/iterators/sungeun/forwarding/forwardDefaultArr.chpl
test/functions/iterators/sungeun/forwarding/forwardDefaultDom.chpl
test/functions/iterators/sungeun/localDataPar.chpl
test/reductions/bharshbarg/reduceWithoutTag.chpl
test/studies/comd/elegant/arrayOfStructs/util/Simulation.chpl
test/studies/labelprop/Graph.chpl
L/F forwarding that can be standalone
Can use existing methods
use .targetLocales or .localSubdomain
modules/standard/UtilReplicatedVar.chpl
test/distributions/bradc/extremeBlock.chpl
test/studies/comd/llnl/CoMD.chpl
test/studies/comd/llnl/utils/forceeam.chpl
test/studies/hpcc/PTRANS/jglewis/ptrans_2011-blkcyc.chpl
test/studies/hpcc/PTRANS/jglewis/ptrans_2011.chpl
test/studies/stencil9/stencil9-explicit.chpl
test/studies/cholesky/jglewis/version2/elemental/
block_distribution/elemental_cholesky_symmetric_index_ranges_block.chpl
elemental_cholesky_symmetric_index_ranges_alt.chpl
fully_blocked/elemental_cholesky_fully_blocked.chpl
strided/elemental_cholesky_symmetric_strided.chpl
unsymmetric_indices/elemental_cholesky_unsymmetric_index_ranges.chpl
use eltType or idxType
test/distributions/robust/associative/basic/array_iter.chpl
test/distributions/robust/associative/basic/domain_iter.chpl
test/distributions/robust/associative/basic/promotion.chpl
test/distributions/robust/associative/basic/reduce.chpl
test/distributions/robust/associative/basic/whole_array_assign.chpl
test/distributions/robust/associative/basic/whole_domain_assign.chpl
test/distributions/robust/associative/basic/zipper.chpl
test/extern/sungeun/sizeof.chpl
test/modules/packages/Sort/correctness/sorty.chpl
test/optimizations/sungeun/RADOpt/access.chpl
test/studies/hpcc/common/bradc/Block1D.chpl
Use c_ptrTo instead of internal data fields
test/arrays/deitz/rowMajor.chpl
domain.dim
test/optimizations/bulkcomm/alberto/Block/ArrayAssignment.chpl
test/optimizations/bulkcomm/alberto/Cyclic/ArrayAssignment.chpl
Query information about doms/dists/arrays
DefaultRectangular queries
The following tests want to print
blk
. Could they usedisplayRepresentation
instead? Doesn't look like the output is disabled by default anyways.test/optimizations/bulkcomm/alberto/Block/perfTest_v2.chpl
test/optimizations/bulkcomm/alberto/Cyclic/perfTest_v2.chpl
Associative queries
Wants internal information:
tableSize
.test/domains/johnk/capacityAssoc.chpl
Sparse
The following tests want to know about: parentDom, compressRows, nnz, startIdx, idx, data, etc. Note that python allows users to access and modify idx/startIdx/data directly. We may also want to consider how we intend to implement matrix-matrix multiplication. Do we want
LinearAlgebra.Sparse
to be using_value
?test/arrays/ferguson/semantic-examples/4-sparse-subdomain-change-parent.chpl
test/sparse/CS/correctness.chpl
test/sparse/CS/multiplication/correctness.chpl
test/sparse/CS/multiplication/performance.chpl
Block queries
The following test wants
boundingBox
.test/distributions/bharshbarg/stridedBoundingBox.chpl
Stencil queries
The following tests want: fluff, periodic, or some internals.
test/distributions/bharshbarg/stencil/slice.chpl
test/distributions/bharshbarg/stencil/util.chpl
Miscellaneous
Testing for a specific domain-map
These tests want to check if an array/dom/dist is implemented with a specific domain-map within a where-clause.
modules/standard/UtilReplicatedVar.chpl
test/distributions/bradc/where/dispatchBasedOnDist-workaround.chpl
Printing class type
test/arrays/vass/initialization-mapped-1.chpl
test/users/vass/type-tests.isSubtype.chpl
Compare class pointers
test/distributions/vass/negative-ref-count-dmap.chpl
[ ]
test/distributions/robust/arithmetic/driver.chpl
Forwarding
Arrays
test/classes/vass/generic-method-with-param-arg-1.chpl
These could use forwarding, but not sure if we want to expose these particular methods:
test/distributions/dm/t1.chpl
test/distributions/dm/t9.chpl
test/users/vass/crash1callDestructorsMain.chpl
Distributions
Wants secondary method
Block.changeBoundingBox
.test/distributions/vass/changeBoundingBox.chpl
Tests that use internals
domain map implemented in test
test/studies/comd/elegant/arrayOfStructs/util/AccumStencilDist.chpl
test/studies/hpcc/common/bradc/Block1D.chpl
test/users/aroonsharma/CyclicZipOpt.chpl
test/users/aroonsharma/MyBlockCyclic.chpl
Bulk-transfer tests
I think it's reasonable to have tests that check an internal API is working. I doubt we want users to be calling bulk-transfer methods themselves, but we do want domain-map authors to be able to call them.
test/optimizations/bulkcomm/asenjo/redistBlockToCyclic/FFT_bulk.chpl
test/optimizations/bulkcomm/asenjo/redistBlockToCyclic/PARACR-BC-bulk.chpl
test/optimizations/bulkcomm/asenjo/testGasnet/puts-gets-commNone.chpl
test/optimizations/bulkcomm/asenjo/testGasnet/puts-gets-strdlvl0.chpl
test/optimizations/bulkcomm/asenjo/testGasnet/puts-gets.chpl
test/optimizations/bulkcomm/bharshbarg/util.chpl
test/optimizations/sungeun/bulk_transfer/chpl_comm_get.chpl
test/optimizations/sungeun/bulk_transfer/chpl_comm_put.chpl
Partial reduction tests
Lots of secondary methods on distributions and other uses of _value here. Do we expect domain-map authors to need to use _value?
test/users/engin/partial_reduction_support/modules/dsiMethods.chpl
test/users/engin/partial_reduction_support/modules/templates.chpl
test/users/engin/partial_reduction_support/template_tests/templateTest.chpl
test/users/engin/partial_reduction_support/template_tests/templateTestCSR.chpl
test/users/engin/partial_reduction_support/template_tests/templateTestDist.chpl
test/users/engin/partial_reduction_support/template_tests/templateTestDistBlockCyc.chpl
test/users/engin/partial_reduction_support/template_tests/templateTestDistCyc.chpl
test/users/engin/partial_reduction_support/template_tests/templateTestDistSpsBlk.chpl
test/users/engin/partial_reduction_support/template_tests/templateTestSparse.chpl
test/users/engin/partial_reduction_support/unit_tests/densePartialThese.chpl
test/users/engin/partial_reduction_support/unit_tests/partialDomainBlock.chpl
test/users/engin/partial_reduction_support/unit_tests/partialDomainCyclic.chpl
test/users/engin/partial_reduction_support/unit_tests/partialDomainDefaultRectangular.chpl
test/users/engin/partial_reduction_support/unit_tests/sparsePartialThese.chpl
Tests that could be removed?
Remove entirely
test/studies/ssca2/kristyn/
(NOTEST'd since 2011)test/classes/vass/generic-method-with-param-arg-{2,3}.chpl
(untouched since 2011, uses old syntax, bug checked elsewhere)test/arrays/marybeth/CMO_array.chpl
(has limped along for years, notested in Feb 2017)test/distributions/diten/domainMethodNewDist.chpl
(initially written for old syntax no longer in use)test/optimizations/bulkcomm/asenjo/redistBlockToCyclic/BlockToCyclic.chpl
test/release/examples/benchmarks/miniMD/explicit/helpers/initMD.chpl
test/studies/hpcc/common/bradc/Block1D.chpl
(uses seem to be notest'd)Remove part
test/studies/hpcc/FFT/diten/fft.chpl
(one function)Unknown
test/distributions/dm/t2.chpl
test/distributions/dm/t8.chpl
test/functions/vass/ref-intent-bug-1small.chpl
test/functions/vass/ref-intent-bug-2big.chpl
test/memory/diten/useArrInBegin.chpl
test/multilocale/deitz/needMultiLocales/privateLimitedDistributedArrayClass2.chpl
test/optimizations/bulkcomm/asenjo/stencilDR/v2/stencil.chpl
test/optimizations/widepointers/slicing.chpl
test/studies/hpcc/HPL/vass/hpl.hpcc2012.chpl
test/studies/hpcc/HPL/vass/hpl.performance.chpl
test/studies/hpcc/HPL/vass/schurComplement.chpl
test/studies/labelprop/labelprop-tweets.chpl