Bug #1501

charmc fails to deal with rvalue references

Added by Nils Deppe 9 months ago. Updated 3 days ago.

Target version:
Start date:
Due date:
% Done:



This is probably related to issue #1500, but having an entry method take an rvalue reference causes the charmc script to choke on the CI file. e.g. line 3 of:

entry void observe_reduction_data(
        const Instance_t&,
        ReductionObservationData<Instance_t, ElementId<VolumeDim>, VolumeDim>&&);

Since rvalue references aren't implemented until C++11 this cannot be resolved until at least Charm++ v6.9.0


#1 Updated by Eric Bohm 6 months ago

  • Assignee set to Phil Miller

#2 Updated by Sam White about 2 months ago

Is this fix in gerrit now somewhere? I thought it was, but I guess I was mistaken...

#3 Updated by Phil Miller about 1 month ago

  • Description updated (diff)

#4 Updated by Sam White about 1 month ago

  • Category set to Charmxi

#5 Updated by Phil Miller about 1 month ago addresses the performance concern here, in that (non-inline) entry method implementations will always be passed arguments as rvalue references. The interface declarations still won't parse rvalue reference syntax, but they can just be written as call-by-value arguments, and the generated code will take them as const& anyway.

#6 Updated by Phil Miller 22 days ago

  • Assignee changed from Phil Miller to Evan Ramos

Reassign to Evan based on discussion with Eric B. Confer on how important this work is to schedule in the near future.

#7 Updated by Evan Ramos 12 days ago

This patch adds rvalue references to charmxi's parsing grammar. I'm not sure if this is enough to fix the bug, but I would appreciate feedback and testing.

#8 Updated by Evan Ramos 11 days ago

  • Status changed from New to In Progress

#9 Updated by Evan Ramos 3 days ago

  • Status changed from In Progress to Implemented

In testing this patch, a .ci file containing an rvalue reference function parameter was successfully parsed. Nils, if it would not be too much trouble, could you cherry-pick this patch and test it against the case reported in this issue description?

Also available in: Atom PDF