# HG changeset patch # User anatofuz # Date 1612082248 -32400 # Node ID fad87973f26a254659260fecc40346ac643f64e1 # Parent 0915f0d49a2369b63efdbd13faf224199dbed831 add gears flow diff -r 0915f0d49a23 -r fad87973f26a paper/chapter/02-perl.tex --- a/paper/chapter/02-perl.tex Sun Jan 31 16:56:48 2021 +0900 +++ b/paper/chapter/02-perl.tex Sun Jan 31 17:37:28 2021 +0900 @@ -49,15 +49,9 @@ \end{itemize} これらのPerlスクリプトはプログラマが自分で動かすことはない。 -GearsOSではビルドツールにCMakeを利用している。 -CMakeはautomakeなどのMakeファイルを作成するツールに相当するものである。 -GearsOSでプログラミングする際は、ビルドしたいプロジェクトをCMakeLists.txtに記述する。 -CMakeは自身がコンパイルをすることはなく、ビルドツールであるmakeやninja-buildに処理を移譲している。 -CMakeはmakeやninja-buildが実行可能なMakefile、 build.ninjaの生成までを担当する。 - Perlスクリプトの実行手順はCMakeLists.txtに記述しており、 makeやninja-buildでのビルド時に呼び出される。(ソースコード \ref{src:cmake1}) -\lstinputlisting[label=src:cmake1, caption=CMakeList.txt内でのPerlの実行部分]{src/cmakefile.txt.1} +\lstinputlisting[label=src:cmake1, caption=CMakeList.txt内でのPerlの実行部分]{src/cmakefile.1.txt} \begin{figure}[htp] \begin{center} diff -r 0915f0d49a23 -r fad87973f26a paper/chapter/gears.tex --- a/paper/chapter/gears.tex Sun Jan 31 16:56:48 2021 +0900 +++ b/paper/chapter/gears.tex Sun Jan 31 17:37:28 2021 +0900 @@ -1,5 +1,26 @@ \chapter{GearsOS} +GearsOSとはContinuation Based Cを用いて実装しているOSプロジェクトである。 +CodeGearとDataGearを基本単位として実行する。 +GearsOSはOSとして実行する側面と、 CbCのシンタックスを拡張した言語フレームワークとしての側面がある。 + +\section{GearsOSのビルドシステム} +GearsOSではビルドツールにCMakeを利用している。 +CMakeはautomakeなどのMakeファイルを作成するツールに相当するものである。 +GearsOSでプログラミングする際は、ビルドしたいプロジェクトをCMakeLists.txtに記述する。 +CMakeは自身がコンパイルをすることはなく、ビルドツールであるmakeやninja-buildに処理を移譲している。 +CMakeはmakeやninja-buildが実行可能なMakefile、 build.ninjaの生成までを担当する。 + +ビルドフローを図\ref{fig:gearsbuild1}に示す。 + +\begin{figure}[htp] + \begin{center} + \includegraphics[width=120mm]{drawio/geasflow1.pdf} + \end{center} + \caption{GearsOSのビルドフロー} + \label{fig:gearsbuild1} + \end{figure} + \section{pmake} GearsOSをビルドする場合は、x86アーキテクチャのマシンからビルドするのが殆どである。 この場合ビルドしたバイナリはx86向けのバイナリとなる。 diff -r 0915f0d49a23 -r fad87973f26a paper/drawio/geasflow1.drawio --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/paper/drawio/geasflow1.drawio Sun Jan 31 17:37:28 2021 +0900 @@ -0,0 +1,1 @@ +7VhRU6MwEP41nbl70ClQqH1sq+c9nKM3vRn1MUKE2JBgCJb6629DQqHQ9jhr1XPupWW/JEuy336bhJ4zjfNzgZLoggeY9ux+kPec055tDz0PfhWw1IBr9zUQChJoyKqAGXnGBiy7ZSTA6VpHyTmVJFkHfc4Y9uUahoTgi/Vu95yuvzVBIW4BMx/RNnpNAhlp9MQeVvh3TMKofLPljXRLjMrOZiVphAK+qEHOWc+ZCs6lforzKaYqdmVc9LhvW1pXExOYyS4Dnme/ssy7Hi1H45NLJ3tm7OfjkWEnlctywTiA9RuTCxnxkDNEzyp0InjGAqy89sGq+vzgPAHQAvABS7k0ZKJMcoAiGVPTinMib2rPt8rVsWus09x4LoxlaTApljd1ozZKmdWwwirHpVLw+Yo6BxC9YrXMrYE0UMoz4eMd0SsTEokQyx393BXdIBPMYwwzhHECUyTJ0/o8kEnYcNWv4hQeDK1/QbHx+4RoZt7Usz0K053cc1hwnXzvMeNlw1Fa0DeGDhCcvGqEp1D9X2Gh3p36giSydAkz1F51n3Z2UQrKVVm0iIjEswQVAV5A7VjPEZQmWs73JFe5tpXIJywkzndT2Q69GWB7RpymOlkDYy8qrVulgKO6zkvw1ely3kORB1WJ3VElW6h6G5XYB1LJOUYihdaZjlJHmcBekahHxmUHrdwhfx4WOXCZSUoYNniAxPwSRhFZVMPjvnsoHVn9ho5s+9htK8napCTXPRClJ//3tj1U63ZU7fA9VetuVW2aIPZy1U7vpsWZMk4IxaKmWu3239jcBu6H29yG+1fZwSa+cI79TKI7GAtnfEI7F9oPQZTnfDiiRhuIamY7C8bqggWWT1GaEr+IDxKyDb/KUaMdv1p83A3hKbHOtci84YqTIhnLQ2JDR47ViLqupWZU/QbWcOT1/+BIF9uWo4LB1bL3uAn0DyS/6QWaK+V9iYt/VTsZYQ/oa1cZgnZkQ3mUhEzlEOQAVGBnohRG4F4+Ng0xCQK9ZWOYXiF9vSsmKnxFQN1Jzz1VvmCX1kvYmYF7adhpcmu3NWwPNiTpwSRsbbr4bdcw4+rc+MmU6r5QqU1Hq3viWyl103Xkc3PXKo4v5a7p6PW4A7P6XKe7V988nbPf \ No newline at end of file diff -r 0915f0d49a23 -r fad87973f26a paper/drawio/geasflow1.pdf Binary file paper/drawio/geasflow1.pdf has changed diff -r 0915f0d49a23 -r fad87973f26a paper/master_paper.pdf Binary file paper/master_paper.pdf has changed diff -r 0915f0d49a23 -r fad87973f26a paper/src/cmakefile.1.txt --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/paper/src/cmakefile.1.txt Sun Jan 31 17:37:28 2021 +0900 @@ -0,0 +1,28 @@ +macro( GearsCommand ) + set( _OPTIONS_ARGS ) + set( _ONE_VALUE_ARGS TARGET ) + set( _MULTI_VALUE_ARGS SOURCES ) + cmake_parse_arguments( _Gears "${_OPTIONS_ARGS}" "${_ONE_VALUE_ARGS}" "${_MULTI_VALUE_ARGS}" ${ARGN} ) + + set (_Gears_CSOURCES) + foreach(i ${_Gears_SOURCES}) + if (${i} MATCHES "\\.cbc") + string(REGEX REPLACE "(.*).cbc" "c/\\1.c" j ${i}) + add_custom_command ( + OUTPUT ${j} + DEPENDS ${i} + COMMAND "perl" "generate_stub.pl" "-o" ${j} ${i} + ) + elseif (${i} MATCHES "\\.cu") + string(REGEX REPLACE "(.*).cu" "c/\\1.ptx" j ${i}) + add_custom_command ( + OUTPUT ${j} + DEPENDS ${i} + COMMAND nvcc ${NVCCFLAG} -c -ptx -o ${j} ${i} + ) + else() + set(j ${i}) + endif() + list(APPEND _Gears_CSOURCES ${j}) + endforeach(i) +