Merge branch 'charm' of charmgit:charm into charm
authorAaron Becker <akbecker@gmail.com>
Tue, 21 Dec 2010 03:20:31 +0000 (21:20 -0600)
committerAaron Becker <akbecker@gmail.com>
Tue, 21 Dec 2010 03:20:31 +0000 (21:20 -0600)
examples/charm++/hello/1darray/hello.C
examples/charm++/hello/1darray/hello.ci
src/ck-core/ckreduction.h
src/langs/charj/tests/fib/Fib.cj
src/langs/charj/tests/unit/ObjectField.cj
src/util/pup_stl.h
src/xlat-i/xi-symbol.C

index a983c5f3eaaa2d82da1a044704150236074dcda4..8f73ce10796f40c7ed24465aad21e93394e739ad 100644 (file)
@@ -1,4 +1,5 @@
 #include <stdio.h>
+#include "pup_stl.h"
 #include "hello.decl.h"
 
 /*readonly*/ CProxy_Main mainProxy;
@@ -25,7 +26,7 @@ public:
     arr[0].SayHi(17);
   };
 
-  void done(void)
+  void done(std::map<int, int> x)
   {
     CkPrintf("All done\n");
     CkExit();
@@ -51,7 +52,7 @@ public:
       thisProxy[thisIndex+1].SayHi(hiNo+1);
     else 
       //We've been around once-- we're done.
-      mainProxy.done();
+      mainProxy.done(std::make_pair(1, 1));
   }
 };
 
index 312b25f57136167e87c1f182ff6d2e34c462e517..de2d52fc60352d5960a5954719901e2a5c6403ab 100644 (file)
@@ -4,7 +4,8 @@ mainmodule hello {
 
   mainchare Main {
     entry Main(CkArgMsg *m);
-    entry void done(void);
+    entry void done(std::map<int, int> x);
+    //entry void done(std::vector<int> x);
   };
 
   array [1D] Hello {
index df8636406bb9f9ca40d8e9500d6204e964a2e884..f3a4d5e90260209fd60c1f9f75bdba795d13d417 100644 (file)
@@ -406,6 +406,13 @@ class Group : public CkReductionMgr
 };
 
 
+template <typename T>
+class Reducer {
+    T operator()(T*, size_t);
+
+};
+
+
 
 
 
index e4065b7e6dc50895aba137691f56229e9768d29f..36bc4ce4cafe0a1dc614698be40545a70631aedd 100644 (file)
@@ -1,6 +1,4 @@
 
-package tests;
-
 readonly Main@ main;
 
 public mainchare Main {
@@ -9,7 +7,7 @@ public mainchare Main {
     public entry Main(CkArgMsg m) {
         if (m.argc < 2) n = 16;
         else n = atoi(m.argv[1]);
-        main = thishandle;
+        main = thisProxy;
         Fib@ fib = new Fib@(true, n, thishandle);
     }
 
@@ -40,8 +38,8 @@ public chare Fib {
             partialResult = seq_fib(n);
             passUp();
         } else {
-            Fib@ child1 = new Fib@(false, n-1, thishandle);
-            Fib@ child2 = new Fib@(false, n-2, thishandle);
+            Fib@ child1 = new Fib@(false, n-1, thisProxy);
+            Fib@ child2 = new Fib@(false, n-2, thisProxy);
             partialResult = 0;
             pendingChildren = 2;
         }
index a1445d1e2569a104f2f798783d0b79f649f9d6e4..6a5da524c3f665b88948128204bd9ca66953c834 100644 (file)
@@ -1,7 +1,7 @@
 package tests.unit;
 
 public class Foo {
-    public Foo(int _x) { property = _x; }
+    //public Foo(int _x) { property = _x; }
     public int property;
 }
 
@@ -18,13 +18,15 @@ public class SimpleClass {
         m.property++;
         m.property = 0;
         m.foo.property++;
-        Foo n = new Foo(m.foo.property);
-        this.method(m.property);
-        method(n.property);
-        delete n;
+        method1(m.property, m.foo);
+        //Foo n = new Foo(m.foo.property);
+        //this.method(m.property);
+        //method(n.property);
+        //delete n;
     }
 
-    void method(int x) { }
+    void method1(int x) { }
+    void method2(int x, Foo f) { }
 
     Bar get_m() {
         return m;
index c8120a5f5919bcf19a27dfcb643ec63d159c4350..96250364f1d77164f6fec9bc6078e724f589be00 100644 (file)
@@ -29,7 +29,6 @@ Orion Sky Lawlor, olawlor@acm.org, 7/22/2002
 #include "pup.h"
 
 /*************** Simple classes ***************/
-
 // Non-const version is required for puping std::pair
 template <class A,class B>
 inline void operator|(PUP::er &p,typename std::pair<A,B> &v)
index d1b29248be9a1b57773196a1872b49bf6362a755..0ace9144ab1572866848d566b10e4f4808815acc 100644 (file)
@@ -3086,9 +3086,6 @@ void Entry::genChareDecl(XStr& str)
   } else {
     // entry method declaration
     str << "    "<<retType<<" "<<name<<"("<<paramType(1,1)<<");\n";
-    if (isReductionTarget()) {
-        str << "    " << "void _" << name << "_redn_wrapper(CkReductionMsg* m);\n";
-    }
   }
 }
 
@@ -3127,9 +3124,13 @@ void Entry::genChareDefs(XStr& str)
     str << "}\n";
   }
   if (isReductionTarget()) {
-      XStr retStr;
-      str << makeDecl(retStr, 1) << "::" << name << "_redn_wrapper(CkReductionMsg* m)\n{\n";
-      str << "}\n\n";
+      XStr retStr; retStr<<retType;
+      str << retType << " " << indexName(); //makeDecl(retStr, 1)
+      str << "::_" << name << "_redn_wrapper(CkReductionMsg* m)\n{\n"
+          << "  char* impl_buf = (char*)m->getData();\n";
+      XStr precall;
+      genCall(str, precall);
+      str << "  delete m;\n}\n\n";
   }
 }
 
@@ -4245,6 +4246,9 @@ void Entry::genIndexDecls(XStr& str)
   if (param->isMarshalled()) {
     str << "    static void _marshallmessagepup_"<<epStr()<<"(PUP::er &p,void *msg);\n";
   }
+  if (isReductionTarget()) {
+    str << "    static void _" << name << "_redn_wrapper(CkReductionMsg* m);\n";
+  }
 }
 
 void Entry::genDecls(XStr& str)