-
Notifications
You must be signed in to change notification settings - Fork 414
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
Resolve and init modules mentioned on command line #18724
Conversation
I'm seeing 184 errors on this branch, most of which exhibit as internal errors of one form or another with the LLVM back-end. E.g., for
The C back-end seems to complain about [edit: Sometimes I'm seeing setfaults / bus errors from the C back-end as well, so I suspect there's a valgrind/asan-style failure at the heart of this] These failures were fishy enough, and the others similar enough on the surface, that I didn't look at other failure cases much. |
Thanks, I'll have a look and see if I can fix inDiffModule.chpl. I can see it has --verify errors currently. |
I have a fix for inDiffModule and I'm going to go ahead and launch a test run. |
Here is the test result with --verify
|
error-cg-arg raises an interesting question about whether nested modules in files specified on the command-line should also be initialized even if they aren't used. I don't have an immediate intuition about that question, but if I had to pick a side quickly, I'd probably say "no." |
With a quick run-through of the rest of the tests, it looked like 1/2 - 1/3 were other cases of nested modules. The noakes, sungeun, elliot, and primers looked like they'd require another look. |
--- Signed-off-by: Michael Ferguson <mppf@users.noreply.github.com>
--- Signed-off-by: Michael Ferguson <mppf@users.noreply.github.com>
--- Signed-off-by: Michael Ferguson <mppf@users.noreply.github.com>
I figured out I could remove the parser global currentFileNamedOnCommandLine as well. --- Signed-off-by: Michael Ferguson <mppf@users.noreply.github.com>
I've adjusted it to consider only top-level modules for
|
Taking a look, it seems that most of these failures are "expected" due to the change, with the exception of a pair of internal errors and two tests that I didn't yet sort out what was happening. Bottom line, this looks close to me:
This was checking that a non-used module didn't affect requirements, but now it will, as it arguably should.
These all seem to be checking that an unused module doesn't get compiled, but not it will be, so new errors are generated.
New dead modules are eliminated because they were considered more than usual?
Internal error—needs a look
Wasn't obvious to me what was happening here. |
--- Signed-off-by: Michael Ferguson <mppf@users.noreply.github.com>
--- Signed-off-by: Michael Ferguson <mppf@users.noreply.github.com>
--- Signed-off-by: Michael Ferguson <mppf@users.noreply.github.com>
--- Signed-off-by: Michael Ferguson <mppf@users.noreply.github.com>
Modules from files named on the command line are now treated differently, so update this test to 'use' / 'import' to make sure to parse the other modules. That allows it to continue to work as it did. --- Signed-off-by: Michael Ferguson <mppf@users.noreply.github.com>
--- Signed-off-by: Michael Ferguson <mppf@users.noreply.github.com>
These tests were relying on the module InvokeIters which is mentioned on the command line not being resolved. But now it is, so adjust these tests accordingly. --- Signed-off-by: Michael Ferguson <mppf@users.noreply.github.com>
--- Signed-off-by: Michael Ferguson <mppf@users.noreply.github.com>
I don't understand why, but this function is currently implemented to only check modules named on the command line for the 'main' function. See issue chapel-lang#19258. --- Signed-off-by: Michael Ferguson <mppf@users.noreply.github.com>
--- Signed-off-by: Michael Ferguson <mppf@users.noreply.github.com>
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Just a couple of suggestions but nothing major
--- Signed-off-by: Michael Ferguson <mppf@users.noreply.github.com>
--- Signed-off-by: Michael Ferguson <mppf@users.noreply.github.com>
Adjust spec wording for main module details Resolves #19258. To clarify the docs for issue #19258. * Describes identifying the "main module" in a new section * use "procedure" instead of "function" when referring to a `proc` (including for `main`) in the Modules chapter * improved the module initialization section to talk about what happens when a particular module is initialized instead of generally describing all module initialization at once * improved the module initialization to indicate top-level modules in files mentioned on the command line are initialized (from PR #18724) Reviewed by @bradcray - thanks!
Restore intended PTRANS.valgrind behavior [reviewed by @aconsroe-hpe] This test's behavior started changing when we started running initialization for all modules named on the command-line in #18724. This is because we were calling main once for the `--main-module` of PTRANS and once for the explicit call to main() in the PTRANS.valgrind module. When writing this, the author (could've been me) presumably imagined that their explicit call to main() was happening and necessary when in fact neither was true. Since we permit users to call main(), the test started working differently / as now intended when #18724 was merged, but not how we expected. Here, I'm removing the explicit call to main() to restore the expected behavior. Thanks to @aconsroe-hpe for helping to diagnose this!
--- Signed-off-by: Paul Cassella <gitgitgit@manetheren.bigw.org>
Remove dead test files and update findUnusedTestFiles Remove a few .bad files whose .futures were removed in #17353 and #18724, and a .compopts file that appears never to have been used. The affected directories pass testing. Update findUnusedTestFiles to skip all .notest files in test/mason due to how often these are to skip directories created at runtime. Also handle a few more special cases in test/distributions/robust/arithmetic/. reviewed by @vasslitvinov and @e-kayrakli merged by @vasslitvinov on behalf of @cassella
This PR changes from the current approach of generating a `ServerRegistration.chpl` file that calls the `registerMe()` function required in all modules to instead move the contents of the `registerMe()` to module-level scope that will add the functions to the command map upon module initialization. All modules that are to be modularly included in the server are now directly specified on the command line. This change is enabled by the work from chapel-lang/chapel#18724, which initializes all modules specified on the command line of a `chpl` call, even if the modules aren't explicitly `use`d. This means that Arkouda will require at least Chapel 1.26 after this change.
…ommand line (#1606) * Update modular build process to initialize modules on command line This PR changes from the current approach of generating a `ServerRegistration.chpl` file that calls the `registerMe()` function required in all modules to instead move the contents of the `registerMe()` to module-level scope that will add the functions to the command map upon module initialization. All modules that are to be modularly included in the server are now directly specified on the command line. This change is enabled by the work from chapel-lang/chapel#18724, which initializes all modules specified on the command line of a `chpl` call, even if the modules aren't explicitly `use`d. This means that Arkouda will require at least Chapel 1.26 after this change. * Convert rest of modules * Update python script to handle non-src dir files * Remove 1.25.1 compat check * Add space caught by Pierce * Update modular building docs * Update MODULAR.md fixed a typo `pat` -> `path` Co-authored-by: pierce314159 <48131946+pierce314159@users.noreply.github.com>
…dules on command line (Bears-R-Us#1606) * Update modular build process to initialize modules on command line This PR changes from the current approach of generating a `ServerRegistration.chpl` file that calls the `registerMe()` function required in all modules to instead move the contents of the `registerMe()` to module-level scope that will add the functions to the command map upon module initialization. All modules that are to be modularly included in the server are now directly specified on the command line. This change is enabled by the work from chapel-lang/chapel#18724, which initializes all modules specified on the command line of a `chpl` call, even if the modules aren't explicitly `use`d. This means that Arkouda will require at least Chapel 1.26 after this change. * Convert rest of modules * Update python script to handle non-src dir files * Remove 1.25.1 compat check * Add space caught by Pierce * Update modular building docs * Update MODULAR.md fixed a typo `pat` -> `path` Co-authored-by: pierce314159 <48131946+pierce314159@users.noreply.github.com>
…dules on command line (Bears-R-Us#1606) * Update modular build process to initialize modules on command line This PR changes from the current approach of generating a `ServerRegistration.chpl` file that calls the `registerMe()` function required in all modules to instead move the contents of the `registerMe()` to module-level scope that will add the functions to the command map upon module initialization. All modules that are to be modularly included in the server are now directly specified on the command line. This change is enabled by the work from chapel-lang/chapel#18724, which initializes all modules specified on the command line of a `chpl` call, even if the modules aren't explicitly `use`d. This means that Arkouda will require at least Chapel 1.26 after this change. * Convert rest of modules * Update python script to handle non-src dir files * Remove 1.25.1 compat check * Add space caught by Pierce * Update modular building docs * Update MODULAR.md fixed a typo `pat` -> `path` Co-authored-by: pierce314159 <48131946+pierce314159@users.noreply.github.com>
For #18714
Related to PR #13369
This PR
Reviewed by @lydia-duncan - thanks!