changeset 110:4f34c642e9fb

...
author anatofuz <anatofuz@cr.ie.u-ryukyu.ac.jp>
date Sat, 06 Feb 2021 15:09:52 +0900
parents 198088f668cd
children 4642d2f215d2
files paper/chapter/05-perl.tex paper/master_paper.pdf paper/src/genData.h
diffstat 3 files changed, 48 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/paper/chapter/05-perl.tex	Sat Feb 06 14:37:27 2021 +0900
+++ b/paper/chapter/05-perl.tex	Sat Feb 06 15:09:52 2021 +0900
@@ -138,8 +138,8 @@
 連想配列は、最初のキーがInterfaceの名前であり、 Implementがある場合はInterfaceに対応する値のvalueに、implという連想配列が入れ子で入っている。
 この中にInterfaceを実装しているImplの型情報が記録されている。
 
+\lstinputlisting[label=src:queueTree, caption=context.hに出力するDataGearの集合]{src/queueTree.pl}
 
-\lstinputlisting[label=src:queueTree, caption=context.hに出力するDataGearの集合]{src/queueTree.pl}
 
 \begin{figure}[htbp]
   \begin{center}
@@ -149,6 +149,14 @@
   \label{fig:generate_context_3}
  \end{figure}
 
+ 作製されたcontext.hのunion Dataの定義をソースコード\ref{src:genData}に示す。
+context.hのunion Dataは、アルファベット順でソートされ、 Interface、Implの順で記述される。
+ここにはデバッグ用に変換した定義ファイルのパスがコメントで埋め込まれる。
+また、多重include防止用のマクロも生成される。
+
+\lstinputlisting[label=src:genData, caption=生成されたcontext.hのunion Data定義]{src/genData.h}
+
+
 \subsection{Interface定義のincludeファイルの解決}
 
 DataGearの定義を自動でcontext.hに生成することが可能となった。
Binary file paper/master_paper.pdf has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/paper/src/genData.h	Sat Feb 06 15:09:52 2021 +0900
@@ -0,0 +1,39 @@
+union Data {
+    ///home/anatofuz/src/firefly/hg/Gears/Gears/src/parallel_execution/../parallel_execution/Atomic.h
+#ifndef ATOMIC_STRUCT
+    struct Atomic {
+        union Data* atomic;
+...
+#else
+    struct Node;
+#endif
+    ///home/anatofuz/src/firefly/hg/Gears/Gears/src/parallel_execution/../parallel_execution/examples/DPPMC/Phils.h
+#ifndef PHILS_STRUCT
+    struct Phils {
+        union Data* phils;
+        enum Code putdown_lfork;
+        enum Code putdown_rfork;
+        enum Code thinking;
+        enum Code pickup_rfork;
+        enum Code pickup_lfork;
+        enum Code eating;
+        enum Code next;
+    } Phils;
+#define PHILS_STRUCT
+#else
+    struct Phils;
+#endif
+    ///home/anatofuz/src/firefly/hg/Gears/Gears/src/parallel_execution/../parallel_execution/examples/DPPMC/PhilsImpl.h
+#ifndef PHILSIMPL_STRUCT
+    struct PhilsImpl {
+        int self;
+        struct AtomicT_int* Leftfork;
+        struct AtomicT_int* Rightfork;
+        enum Code next;
+    } PhilsImpl;
+#define PHILSIMPL_STRUCT
+#else
+    struct PhilsImpl;
+#endif
+...
+}