forked from chapel-lang/chapel
-
Notifications
You must be signed in to change notification settings - Fork 0
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Sparse Matrix-vector multiplication #2
Open
wongalvis14
wants to merge
438
commits into
master
Choose a base branch
from
sparse-matvec
base: master
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
d649017
to
f3dd284
Compare
See e.g. coerce-owned-types-on-init.chpl var x:Parent = new owned Child();
PR chapel-lang#8083 disallowed coercions when processing type arguments, but allowed it for class heirachy. This commit adjusts new logic in ResolutionCandidate to follow that rule.
for test/classes/deitz/types/type_in_class3.chpl but the following commit is also necessary
for test/classes/deitz/types/type_in_class3.chpl
See test/classes/diten/class_nest_simple.chpl
Relevant for test/errhandling/lydia/notAnErrorSubtype-thrown.chpl
See test/modules/diten/returnClassDiffModule4.chpl
See test enhancements for the cases now working, including creating other nilability variant of owned/shared.
and always allow borrowing from a c_void_ptr...
For getDomainMap.chpl spec test
See extern/ferguson/externblock/fptr3
…cpp so that they get cleaned up
See param/bharshbarg/paramFieldType
…e-memleaks Fix memory leaks in test-radix-bucketizer.chpl Resolves chapel-lang#13569, plugging the memory leak in test/library/packages/Sort/correctness/test-radix-bucketizer.chpl When setting up the AST for a task reduce intent, I was using PRIM_ASSIGN instead of calling the `=` function (which is a really bad idea when used on an array btw) to store the result of globalOp.generate() into the outer variable. Also, the task-private shadow variables were not getting autoDestroy-ed. This fixes these bugs. While there, add multi-arg versions of `Expr::insertAfter(Expr*)`, for convenience. A single varargs version instead would be even nicer. r: @mppf
When we built the module on a CLE5 machine, we needed to load a newer cmake and python in order to build llvm. That's not needed on CLE6 or newer, so stop loading them. Note that the arm module already stopped doing this since it was running on a newer machine. Additionally remove the code from the shasta module, it isn't building llvm support yet, but when it does this code won't be needed.
…asterip Replace use of GASNET_MASTERIP and GASNET_WORKERIP with their new counterparts Replaces GASNET_MASTERIP and GASNET_WORKERIP in the common cron script for gasnet darwin testing. This should exhibit no change in behavior, as the runtime will set them based on the values of the environment variables that replace them, CHPL_RT_MASTERIP and CHPL_RT_WORKERIP.
…module-build Stop loading a cmake module for the XC-x86 module build [reviewed by @gbtitus] When we built the module on a CLE5 machine, we needed to load a newer cmake and python in order to build llvm. That's not needed on CLE6 or newer, so stop loading them. Note that the arm module already stopped doing this since it was running on a newer machine. Additionally, remove the code from the shasta module. It isn't building llvm support yet, but when it does this code won't be needed.
When the module gets moved to modules/packages/, these sorts of updates will no longer be necessary because our script about library line numbers will trigger. While it remains a "user code", we do still want to ensure that line numbers are accurate, though.
Fix line numbers on this .bad file [pointed out by Michael, not reviewed] When the module gets moved to modules/packages/, these sorts of updates will no longer be necessary because our script about library line numbers will trigger. While it remains a "user code", we do still want to ensure that line numbers are accurate, though.
The machine we're building on doesn't have the versions we used to pin to. Pick defaults that should be ok for nightly testing, but likely not for an official release. We'll revisit this later, but for now just try to get nightly testing going again.
…gen-compilers Temporarily bump our xc-x86 gen compilers The machine we're building on doesn't have the versions we used to pin to. Pick defaults that should be ok for nightly testing, but likely not for an official release. We'll revisit this later, but for now just try to get nightly testing going again.
…educe-example Add a reproducer for chapel-lang#13569 While chapel-lang#13569 was fixed in chapel-lang#13604, we would like to have a dedicated small reproducer to ensure that the issue stays in check.
Allow loading a default module, and change what version of libsci is being pinned to for cce
More attempts to fix XC-x86 module Allow loading a default module, and change what version of libsci is being pinned to for cce
…est-good Address analysis/alias/array-of-classes.chpl failures with NUMA Follow-on to PR chapel-lang#13447. Test change only, not reviewed.
…ctory As a result, make abiIncompatible's compopts file into a directory wide COMPOPTS file. These pass today without changes (as expected)
…n Python We were expecting this to require effort, but Python seems to be being nice and allowing the conversion/converting the type into the type we want on its own. Going to test on linux to be certain it isn't just a clang thing.
…lang#13649) Add a future for the German sharp S upper/lower case anomaly (chapel-lang#13649) [new future, not reviewed] As discussed in chapel-lang#13648 , the Unicode German sharp S takes up a different number of bytes for its upper vs. lower case versions. This change adds a future to track the string methods' assumption that the upper and lower case versions would encode to the same number of bytes. Tested on Cygwin, Darwin, and Linux (including Cray XC systems).
Updates towards enabling nilability checks For Cray/chapel-private#305 This PR addresses about the first 100 failures with --no-legacy-nilable-clases. We are working on getting clean testing in that mode in preparation for enabling it by default. Compiler changes: * normalizes e.g. `_owned(anymanaged MyClass)` to `_owned(borrowed MyClass)` * improves error checking for PRIM_INIT_VAR and for errorIfNonNilableType when checking for default initialization. In particular, allow some default-init/assign patterns through the use of FLAG_INITIALIZED_LATER. Module changes: * use nilable types in SparseBlockDom * bulkAdd_help uses a `locale?` in the addOn argument * Add error for setting a class type to `nil` via cast or `=` * Adjusts makeArrayFromOpaque for nilibility * Adds a work-around for associative arrays of `owned` * Adjusts DistributedBag / DistributedDeque for nilability * Adjusts the TOML module for nilability and to remove `=` overloads on classes chapel-lang#5358 (comment) and adjusts mason code to use the new TOML `set` methods * Adjusts ZMQ.chpl to compile with nilability checking enabled by adjusting the initializers to remove the possibility that any fields store `nil`. * Adjusts the conditional in the read function for a channel to make a copy of the argument to read in to - in order avoid default initializing, which does not work for non-nilable types. * Adjusts the Spawn module to always initialize the `home` field. Also adjusts a number of tests to pass with `--no-legacy-nilable-classes`. r: @benharsh @ben-albrecht -- merged on behalf of @mppf
GSoC 2019: Adds Primitive for calculating number of test functions [contributed by @krishnadey30, reviewed by Lydia] This PR adds a primitive `populate tests` which returns the number of test functions in a file. This also define two primitives `get test by name` and `get test by index` whose functionalities will be added soon. This PR adds test for `populate tests` Passed a full paratest with futures
…stsOnly Add tests of Python single locale interoperability with Chapel strings [reviewed by @dlongnecke-cray] It turns out, due to the magic of Cython, this just works. The tests lock in the behavior with the expected error messages from the C version (ensuring that `--library-python` doesn't hide them for some reason), and that functions that take, return, or both take and return Chapel strings are converted appropriately. Passed on linux and darwin when Python 3 has the appropriate settings. Skipped when Python is not set up for using Cython.
wongalvis14
pushed a commit
that referenced
this pull request
Aug 13, 2019
* Implement some previously-missing checks. * Improve the error messages in some cases. * Minor fixes in two existing tests. * Add testing of all combinations of nilability and memory management of lhs and rhs when initializing a variable this way: var lhs: <lhs type> = rhs; The tests are added under: test/classes/errors/nilability-init-var/ Some improvements are implemented as additional `init=` methods or otherwise in the modules. Other improvements are from compiler changes. In some cases, the following code: var lhs: <lhs type> = rhs; compilerError("something"); results in compilerError() firing, whereas without that call the compiler would report an error on the `var lhs` line. This is because the `var lhs` error would be reported in `insertAndResolveCasts(fn)`, which is called after `resolveBlockStmt(fn->body)` completes successfully. Some of the compiler changes in this PR make the compiler still report the `var lhs` error even in the presence of a subsequent compilerError(). The all-combinations tests were created by running this script: classes/errors/nilability-generate.chpl then manually adjusting two files to comment out compilerError(), see below. I set to test them with --no-codegen, to save testing time. This is a consideration because 28 of them compile without errors. FUTURE WORK * Remove the error upon `var lhs: <shared?> = <owned!>`, which is legal. See `init-var-oknil-shared-from-nonnil-owned.future` * The following cases would still fire compilerError() despite an error in the preceding `var lhs` line. I commented out compilerError() in those tests to trigger the desired error messages. We want to see those messages ahead of compilerError(). init-var-nonnil-borrowed-from-oknil-nil.chpl init-var-nonnil-unmanaged-from-oknil-nil.chpl * In chapel-lang#11118 we preferred the error message pattern `cannot assign to <lhs> from <rhs>`. There are a few places in the modules and in the compiler that either switch the order or say `assign <lhs> to <rhs>`. It would be nice to make those consistent with chapel-lang#11118. Reviewed by / with suggestions from: @mppf, @lydia-duncan
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
No description provided.