Skip to content
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

declaration lists break 'config type' #5039

Closed
bradcray opened this issue Dec 15, 2016 · 1 comment
Closed

declaration lists break 'config type' #5039

bradcray opened this issue Dec 15, 2016 · 1 comment

Comments

@bradcray
Copy link
Member

Bug Report

Summary of Problem

It seems that config type statements that define multiple symbols don't work. See test/types/config/twoConfigsOneDecl.chpl for an example.

Steps to Reproduce

Source Code:

config type randType = uint(32),
            char = int(8);

Compile command:
chpl twoConfigsOneDecl.chpl

Execution command:
N/A (gets internal error)

Configuration Information

  • Output of chpl --version: 1.14.0.7f81ddd
  • Output of $CHPL_HOME/util/printchplenv --anonymize: N/A
  • Back-end compiler and version, e.g. gcc --version or clang --version: N/A
  • (For Cray systems only) Output of module list: N/A
bradcray added a commit that referenced this issue Dec 15, 2016
Upgrade release fasta ; reduce diffs between versions

[reviewed by @benharsh and a bit by @ronawho as well]

This commit upgrades the release version of fasta to incorporate elements from the fasta-blc.chpl version (notably the parallelism) along with several stylistic changes made to prepare it for submission. It also updates the fasta-blc[-numa].chpl versions to reduce the diff with the release version.

As part of this change, I switched the arrays of random numbers over to use 'randType' which is an alias for a 'uint(32)' and this had a positive performance benefit of reducing the execution time from ~2.7s on the shootout box to ~2.0s. However, in further simplifying/clarifying the loop structure of the main 'for i in..." work chunking loop, I switched it to use zero-based indexing which eliminated the need to initialize the atomic arrays to 1 for the initial condition. For reasons I can't explain, this bumped the execution time up to ~2.2s on the shootout machine. The only explanation I can come up with is that that parallel array assignment somehow warms up the tasking interface...or something. In the study versions, I left this initialization in (re-initializing the atomics to 0) to capture the difference on the shootout box and see how it behaved on other systems.

One other change I made, but which didn't work, was to set up a 'config type' for 'char' aliasing it to 'int(8)'. It seems that having two config types in a single statement causes an internal error in the compiler, so I backed away from this change and filed a bug and issue #5039 against it instead.
@daviditen daviditen self-assigned this Oct 23, 2017
daviditen added a commit that referenced this issue Oct 24, 2017
…tement

Allow multiple config type declarations in one statement

[reviewed by @noakesmichael]

In the function handleConfigTypes allow multiple declarations in one statement
by accepting a BlockStmt containing config type DefExprs, and handle that block
recursively.

Fixes the future test/types/config/twoConfigsOneDecl.chpl, issue #5039.
@daviditen
Copy link
Member

Fixed by PR #7637.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants