changeset 43:fc5259b6167e

auto-Update generated slides by script
author Takahiro SHIMIZU <anatofuz@cr.ie.u-ryukyu.ac.jp>
date Mon, 14 May 2018 15:36:32 +0900
parents 7c19d3c0d027
children 8c7be076e6e6
files lib/template.md slides/2018/05/08/memo.txt slides/2018/05/08/slide.md slides/2018/05/08/zip.txt slides/2018/05/14/memo.txt
diffstat 5 files changed, 282 insertions(+), 186 deletions(-) [+]
line wrap: on
line diff
--- a/lib/template.md	Tue May 08 15:26:10 2018 +0900
+++ b/lib/template.md	Mon May 14 15:36:32 2018 +0900
@@ -4,9 +4,17 @@
 lang: Japanese
 
 
-# 研究内容
-* OS
+# 研究目的
+- Perl5の後継言語として開発されているPerl6はMoarVMと呼ばれるVMを搭載している.
+- Perl6はMoarVM,JVM,JavaScript上で動くRakudoと呼ばれる実装と,コンパイラ開発者用のサブセットであるNQPが主な実装となっている.
+- 現在Perl6及びMoarVMは全体的な速度がPerl5と比較し低下しており,実務として利用できるレベルに達していない.
+- さらにPerl6の実装自体巨大なcase-switch文など見通しが悪くなっている.
+- この問題を解決するために現在当研究室で開発している継続を中心にしたContinuation based Cを用いて改良を行う
+- CbCの設計理念からVMの実装と親和性が高い事も推測できる為,実際にCbCを用いてどのようにVMが実装できるかを検証する
 
-# hoge
+# 今週の進捗
 * foo
-    * puyo
+    * puyohoge
+
+# 来週の予定
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/slides/2018/05/08/memo.txt	Mon May 14 15:36:32 2018 +0900
@@ -0,0 +1,4 @@
+今日の進捗
+
+- MoarVMの資料を読み解く
+- CbCで実装するべき場所を考察する
--- a/slides/2018/05/08/slide.md	Tue May 08 15:26:10 2018 +0900
+++ b/slides/2018/05/08/slide.md	Mon May 14 15:36:32 2018 +0900
@@ -4,210 +4,135 @@
 lang: Japanese
 
 
-# 研究内容
+# 研究目的
 - Perl5の後継言語として開発されているPerl6はMoarVMと呼ばれるVMを搭載している.
-- Perl6はMoarVM,JVM上で動くRakudoと呼ばれる実装と,コンパイラ開発者用のサブセットであるNQPが主な実装となっている.
+- Perl6はMoarVM,JVM,JavaScript上で動くRakudoと呼ばれる実装と,コンパイラ開発者用のサブセットであるNQPが主な実装となっている.
 - 現在Perl6及びMoarVMは全体的な速度がPerl5と比較し低下しており,実務として利用できるレベルに達していない.
-- またPerl6の実装自体巨大なcase-switch文など見通しが悪くなっている.
-- 本研究では継続を中心に開発されたContinuation based Cを用いてMoarVMの改良を検討する.
+- さらにPerl6の実装自体巨大なcase-switch文など見通しが悪くなっている.
+- この問題を解決するために現在当研究室で開発している継続を中心にしたContinuation based Cを用いて改良を行う
+- CbCの設計理念からVMの実装と親和性が高い事も推測できる為,実際にCbCを用いてどのようにVMが実装できるかを検証する
+
+# 研究内容
+- MoarVMの主にCase文をCbCに書き換える
+- ちょっと早くしたい
 
 # 今週の進捗
 
-- dalmoreでCbCgccでMoarVM/NQPが動きました
-
-# MoarVMのclone
-
-- MoarVMをgithubからcloneする
+- YAPC::EUで発表されたMoarVMの資料を読んでいました
+    - cf. http://www.jnthn.net/papers/2013-yapceu-moarvm.pdf
+- MoarVMの実装を読み始めました
+    - mercurialにMoarVMをあげました
+- オープンソースカンファレンスについては何も出来てないです…
+- 進捗管理君を書いてました
 
-```
-$ git clone https://github.com/MoarVM/MoarVM.git
-```
-
-# MoarVMのmake
-
-- Perlの`Configure.pl`を叩いてMakefileを生成する
-    - 別のディレクトリからは叩け無い仕様に成っていた
-
-```
-./Configure.pl --cc /usr/local/x86-cbc/bin/gcc --debug --compiler gcc --prefix=/mnt/dalmore-home/one/src/build_perl6/MoarVM`
-```
+# 6model
 
-- オプション
-- cc
-    - コンパイラのパスを設定する
-- debug
-    - debugオプション
-- compiler
-    - コンパイラの種類を指定する
-    - gcc, clang, clをサポートしている
--  toolchain <toolchain>
-    - "posix", "gnu", "bsd" and "msvc"のツールチェインを選択可能
-- prefix
-    - make installの先を指定
+- Perl6のオブジェクトパターン
+- `Object`
+- `Stable`
+    - How(Meta-object)
+    - REPR
+    - WHAT
+    - WHO
+    - Method キャッシュ
+    - 型キャッシュ
+- `Flags,owner`
+- `GC stuff`
+- `<body>`からなる
 
-# llvmでの実行
+# CbCの書き換え
 
-```
-(dalmore) ./Configure.pl --cc /usr/local/cbclang/bin/clang
-```
+- case文の書き換え
+- なるべく巨大なものを選択
+- spesh以下のファイルが比較的巨大なcase文
+- `static void optimize_bb_switch`
+    - `spesh/optimize.c`
+    - 最適化のスイッチ部分
+    - かなり巨大
+- 他には
+    - `containers.c`
+    - `serialization.c`
+    - unicodeの文字処理部分
 
-- セグフォで死ぬ
+# 書き換えている箇所
 
-```
-0.      Program arguments: /net/open/CentOS/local/cbclang/bin/clang-7.0 -cc1 -triple x86_64-unknown-linux-gnu -emit-obj -disable-free -main-f
-ile-name io.c -mrelocation-model pic -pic-level 2 -mthread-model posix -fmath-errno -masm-verbose -mconstructor-aliases -munwind-tables -fuse
--init-array -target-cpu x86-64 -dwarf-column-info -debug-info-kind=limited -dwarf-version=4 -debugger-tuning=gdb -momit-leaf-frame-pointer -c
-overage-notes-file /mnt/dalmore-home/one/src/MoarVM/src/platform/posix/io.gcno -resource-dir /net/open/CentOS/local/cbclang/lib/clang/7.0.0 -
-D NDEBUG -D _REENTRANT -D _FILE_OFFSET_BITS=64 -D DEBUG_HELPERS -D MVM_TRACING=0 -D MVM_CGOTO=1 -D MVM_RDTSCP=1 -D MVM_BUILD_SHARED -I 3rdpar
-ty/libuv/include -I 3rdparty/libuv/src -I 3rdparty/libatomicops/src -I 3rdparty/libtommath -I 3rdparty/dyncall/dynload -I 3rdparty/dyncall/dy
-ncall -I 3rdparty/dyncall/dyncallback -I 3rdparty/sha1 -I 3rdparty/tinymt -I 3rdparty/dynasm -I 3rdparty/cmp -I 3rdparty -I src -internal-isy
-stem /usr/local/include -internal-isystem /net/open/CentOS/local/cbclang/lib/clang/7.0.0/include -internal-externc-isystem /include -internal
--externc-isystem /usr/include -O3 -Werror=declaration-after-statement -Werror=pointer-arith -fdebug-compilation-dir /mnt/dalmore-home/one/src
-/MoarVM -ferror-limit 19 -fmessage-length 136 -fobjc-runtime=gcc -fdiagnostics-show-option -fcolor-diagnostics -vectorize-loops -vectorize-sl
-p -o src/platform/posix/io.o -x c src/platform/posix/io.c
-1.      <eof> parser at end of file
-clang-7.0: error: unable to execute command: Segmentation fault
-clang-7.0: error: clang frontend command failed due to signal (use -v to see invocation)
-clang version 7.0.0
-Target: x86_64-unknown-linux-gnu
-Thread model: posix
-InstalledDir: /usr/local/cbclang/bin
-clang-7.0: note: diagnostic msg: PLEASE submit a bug report to https://bugs.llvm.org/ and include the crash backtrace, preprocessed source, a
-nd associated run script.
-clang-7.0: note: diagnostic msg:
-********************
+```c
+static void optimize_bb_switch(MVMThreadContext *tc, MVMSpeshGraph *g, MVMSpeshBB *bb,
+                        MVMSpeshPlanned *p) {
+    MVMSpeshCallInfo arg_info;
+    /* Look for instructions that are interesting to optimize. */
+    MVMSpeshIns *ins = bb->first_ins;
+    while (ins) {
+        switch (ins->info->opcode) {
+        case MVM_SSA_PHI:
+            analyze_phi(tc, g, ins);
+            break;
+        case MVM_OP_set:
+            copy_facts(tc, g, ins->operands[0], ins->operands[1]);
+            break;
+        case MVM_OP_isnull:
+            optimize_isnull(tc, g, bb, ins);
+            break;
+        case MVM_OP_istrue:
+        case MVM_OP_isfalse:
+            optimize_istrue_isfalse(tc, g, bb, ins);
+            break;
+        case MVM_OP_if_i:
+        case MVM_OP_unless_i:
+        case MVM_OP_if_n:
+        case MVM_OP_unless_n:
+            optimize_iffy(tc, g, ins, bb);
+            break;
+        case MVM_OP_if_o:
+        case MVM_OP_unless_o:
+            optimize_object_conditional(tc, g, ins, bb);
+            break;
+        case MVM_OP_not_i:
+            optimize_not_i(tc, g, ins, bb);
+            break;
+        case MVM_OP_prepargs:
+            arg_info.cs = g->sf->body.cu->body.callsites[ins->operands[0].callsite_idx];
+            arg_info.prepargs_ins = ins;
+            arg_info.prepargs_bb  = bb;
+            break;
+        case MVM_OP_arg_i:
+        case MVM_OP_arg_n:
+        case MVM_OP_arg_s:
+        case MVM_OP_arg_o: {
 
-PLEASE ATTACH THE FOLLOWING FILES TO THE BUG REPORT:
-Preprocessed source(s) and associated run script(s) are located at:
-clang-7.0: note: diagnostic msg: /tmp/io-e696e2.c
-clang-7.0: note: diagnostic msg: /tmp/io-e696e2.sh
-clang-7.0: note: diagnostic msg:
-
-********************
-```
-
-# make
-
-```
-$ make -j 50 && make install
-```
-
-- 何故かsrc側にもmoarのバイナリが生成された
-- `/mnt/dalmore-home/one/src/build_perl6/MoarVM/bin`にMoarのバイナリが生成
-
-
-# NQPのmake
-
-
-```
-+dalmore+one ./Configure.pl --prefix=/mnt/dalmore-home/one/src/build_perl6/nqp --backends=moar --with-moar=/mnt/dalmore-home/one/src/build_perl6/MoarVM/bin/moar
 ```
 
-- オプション
-- `prefix` 
-    - ビルド先
-- `backends`
-    - NQPが走るVMを選択する
-- `--with-moar`
-    - MoarVMを使う場合MoarVMのパス
-
-# バージョン
+# 現在
 
-```
-Creating tools/build/install-jvm-runner.pl ...
+- case文の書き換えの部分をどうするか悩んでいます
 
-===SORRY!===
-Found /mnt/dalmore-home/one/src/build_perl6/MoarVM/bin/moar version 2018.04-1-g577857a, which is too old. Wanted at least 2018.04-18-ge7d79d8
-69
-
-No suitable MoarVM (moar executable) found using the --prefix
-(You can get a MoarVM built automatically with --gen-moar.)
-```
-
-- MoarVMとバージョンが異なるらしくエラーが発生した
+```c
 
-```
-/mnt/dalmore-home/one/src/build_perl6/MoarVM/bin/moar --libpath=src/vm/moar/stage0 src/vm/moar/stage0/nqp.moarvm --bootstrap --module-path=ge
-n/moar/stage1 --setting-path=gen/moar/stage1 \
-    --setting=NQPCORE --no-regex-lib --target=mbc \
-    --output=gen/moar/stage1/NQPP6QRegex.moarvm gen/moar/stage1/NQPP6QRegex.nqp
-/usr/bin/perl -MExtUtils::Command -e mkpath gen/moar/stage1/gen
-/usr/bin/perl tools/build/gen-version.pl /mnt/dalmore-home/one/src/build_perl6/nqp /mnt/dalmore-home/one/src/build_perl6/nqp/share/nqp/lib >
-gen/moar/stage1/nqp-config.nqp
-Can't locate Digest/SHA.pm in @INC (@INC contains: /usr/local/lib64/perl5 /usr/local/share/perl5 /usr/lib64/perl5/vendor_perl /usr/share/perl
-5/vendor_perl /usr/lib64/perl5 /usr/share/perl5 .) at tools/build/gen-version.pl line 9.
-BEGIN failed--compilation aborted at tools/build/gen-version.pl line 9.
-make: *** [gen/moar/stage1/nqp.moarvm] Error 2
-```
+//XXX TODO 書き換えてる
+__code optimize_bb_switch_cbc(MVMThreadContext *tc, MVMSpeshGraph *g, MVMSpeshBB *bb,
+                        MVMSpeshPlanned *p) {
+    MVMSpeshCallInfo arg_info;
+    /* Look for instructions that are interesting to optimize. */
+    MVMSpeshIns *ins = bb->first_ins;
 
-- バージョンを更新したところ`Digest::SHA`が入っていないエラーが発生した
-
-# Perlモジュールの追加
+    if (ins){
+        goto optimize_bb_switch_cbc_ins(ins->next);
+    }
+}
 
-- 最近のPerlのモジュールinstallツールのcpanmをoneにいれました
-- `yum install perl-devel`を実行してperlのコアモジュールを追加した
-- `curl -L https://cpanmin.us | perl - --sudo App::cpanminus `
-- `cpanm --force Digest::SHA`
+__code optimize_bb_switch_cbc_ins(MVMSpeshIns *ins){
+
+    if (ins){
+        goto optimize_bb_switch_cbc_ins(ins->next);
+    }
 
 
-# MacOSX上でのgccのエラー
+    goto optimize_bb_switch_cbc_ins(ins->next);
+}
 
 ```
-$./Configure.pl --prefix=/Users/anatofuz/workspace/cr/Basic/build_perl6 --cc /Users/anatofuz/workspace/cr/build_gcc/bin/gcc --compiler gcc
-```
 
-これを実行すると
+# 今週のTODO
 
-```
-compiling 3rdparty/libuv/src/unix/darwin-proctitle.o
-compiling 3rdparty/libuv/src/unix/fsevents.o
-In file included from /System/Library/Frameworks/Security.framework/Headers/AuthSession.h:32:0,
-                 from /System/Library/Frameworks/Security.framework/Headers/Security.h:43,
-                 from /System/Library/Frameworks/CoreServices.framework/Frameworks/OSServices.framework/Headers/CSIdentity.h:43,
-                 from /System/Library/Frameworks/CoreServices.framework/Frameworks/OSServices.framework/Headers/OSServices.h:27,
-                 from /System/Library/Frameworks/CoreServices.framework/Frameworks/LaunchServices.framework/Headers/IconsCore.h:23,
-                 from /System/Library/Frameworks/CoreServices.framework/Frameworks/LaunchServices.framework/Headers/LaunchServices.h:22,
-                 from /System/Library/Frameworks/CoreServices.framework/Headers/CoreServices.h:39,
-                 from /System/Library/Frameworks/ApplicationServices.framework/Headers/ApplicationServices.h:23,
-                 from 3rdparty/libuv/src/unix/darwin-proctitle.c:33:
-/System/Library/Frameworks/Security.framework/Headers/Authorization.h:193:7: error: variably modified 'bytes' at file scope
-  char bytes[kAuthorizationExternalFormLength];
-       ^~~~~
-In file included from /System/Library/Frameworks/Security.framework/Headers/AuthSession.h:32:0,
-                 from /System/Library/Frameworks/Security.framework/Headers/Security.h:43,
-                 from /System/Library/Frameworks/CoreServices.framework/Frameworks/OSServices.framework/Headers/CSIdentity.h:43,
-                 from /System/Library/Frameworks/CoreServices.framework/Frameworks/OSServices.framework/Headers/OSServices.h:27,
-                 from /System/Library/Frameworks/CoreServices.framework/Frameworks/LaunchServices.framework/Headers/IconsCore.h:23,
-                 from /System/Library/Frameworks/CoreServices.framework/Frameworks/LaunchServices.framework/Headers/LaunchServices.h:22,
-                 from /System/Library/Frameworks/CoreServices.framework/Headers/CoreServices.h:39,
-                 from 3rdparty/libuv/src/unix/fsevents.c:49:
-/System/Library/Frameworks/Security.framework/Headers/Authorization.h:193:7: error: variably modified 'bytes' at file scope
-  char bytes[kAuthorizationExternalFormLength];
-       ^~~~~
-make: *** [3rdparty/libuv/src/unix/fsevents.o] Error 1
-make: *** Waiting for unfinished jobs....
-In file included from /System/Library/Frameworks/CoreGraphics.framework/Headers/CGContext.h:18:0,
-                 from /System/Library/Frameworks/CoreGraphics.framework/Headers/CGBitmapContext.h:9,
-                 from /System/Library/Frameworks/CoreGraphics.framework/Headers/CoreGraphics.h:11,
-                 from /System/Library/Frameworks/ApplicationServices.framework/Headers/ApplicationServices.h:35,
-                 from 3rdparty/libuv/src/unix/darwin-proctitle.c:33:
-/System/Library/Frameworks/CoreGraphics.framework/Headers/CGFont.h:53:40: error: initializer element is not constant
- static const CGFontIndex kCGGlyphMax = kCGFontIndexMax;
-                                        ^~~~~~~~~~~~~~~
-In file included from /System/Library/Frameworks/CoreGraphics.framework/Headers/CGContext.h:21:0,
-                 from /System/Library/Frameworks/CoreGraphics.framework/Headers/CGBitmapContext.h:9,
-                 from /System/Library/Frameworks/CoreGraphics.framework/Headers/CoreGraphics.h:11,
-                 from /System/Library/Frameworks/ApplicationServices.framework/Headers/ApplicationServices.h:35,
-                 from 3rdparty/libuv/src/unix/darwin-proctitle.c:33:
-/System/Library/Frameworks/CoreGraphics.framework/Headers/CGPath.h:391:15: error: expected identifier or '(' before '^' token
- typedef void (^CGPathApplyBlock)(const CGPathElement * element);
-               ^
-/System/Library/Frameworks/CoreGraphics.framework/Headers/CGPath.h:393:53: error: unknown type name 'CGPathApplyBlock'
- CG_EXTERN void CGPathApplyWithBlock(CGPathRef path, CGPathApplyBlock CF_NOESCAPE block)
-                                                     ^~~~~~~~~~~~~~~~
-make: *** [3rdparty/libuv/src/unix/darwin-proctitle.o] Error 1
-```
-
-
-とフレームワークのコンパイルエラーが発生する.
-これはbrew経由で入れたgcc-7でも発生した
+- case文をどうにかして書き換える
+- 試しにコンパイル
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/slides/2018/05/08/zip.txt	Mon May 14 15:36:32 2018 +0900
@@ -0,0 +1,156 @@
+2018-05-01----
+作業ログ
+- one/src以下で実行
+
+`git clone https://github.com/MoarVM/MoarVM.git`
+
+- MoarVMをclone
+MoarVMの書き換え
+
+(dalmore) `./Configure.pl --cc /usr/local/cbclang/bin/clang`
+make -j 70
+
+# セグフォで死ぬ
+
+0.      Program arguments: /net/open/CentOS/local/cbclang/bin/clang-7.0 -cc1 -triple x86_64-unknown-linux-gnu -emit-obj -disable-free -main-file-name io.c -mrelocation-model pic -pic-level 2 -mthread-model posix -fmath-errno -masm-verbose -mconstructor-aliases -munwind-tables -fuse-init-array -target-cpu x86-64 -dwarf-column-info -debug-info-kind=limited -dwarf-version=4 -debugger-tuning=gdb -momit-leaf-frame-pointer -coverage-notes-file /mnt/dalmore-home/one/src/MoarVM/src/platform/posix/io.gcno -resource-dir /net/open/CentOS/local/cbclang/lib/clang/7.0.0 -D NDEBUG -D _REENTRANT -D _FILE_OFFSET_BITS=64 -D DEBUG_HELPERS -D MVM_TRACING=0 -D MVM_CGOTO=1 -D MVM_RDTSCP=1 -D MVM_BUILD_SHARED -I 3rdparty/libuv/include -I 3rdparty/libuv/src -I 3rdparty/libatomicops/src -I 3rdparty/libtommath -I 3rdparty/dyncall/dynload -I 3rdparty/dyncall/dyncall -I 3rdparty/dyncall/dyncallback -I 3rdparty/sha1 -I 3rdparty/tinymt -I 3rdparty/dynasm -I 3rdparty/cmp -I 3rdparty -I src -internal-isystem /usr/local/include -internal-isystem /net/open/CentOS/local/cbclang/lib/clang/7.0.0/include -internal-externc-isystem /include -internal-externc-isystem /usr/include -O3 -Werror=declaration-after-statement -Werror=pointer-arith -fdebug-compilation-dir /mnt/dalmore-home/one/src/MoarVM -ferror-limit 19 -fmessage-length 136 -fobjc-runtime=gcc -fdiagnostics-show-option -fcolor-diagnostics -vectorize-loops -vectorize-slp -o src/platform/posix/io.o -x c src/platform/posix/io.c
+1.      <eof> parser at end of file
+clang-7.0: error: unable to execute command: Segmentation fault
+clang-7.0: error: clang frontend command failed due to signal (use -v to see invocation)
+clang version 7.0.0
+Target: x86_64-unknown-linux-gnu
+Thread model: posix
+InstalledDir: /usr/local/cbclang/bin
+clang-7.0: note: diagnostic msg: PLEASE submit a bug report to https://bugs.llvm.org/ and include the crash backtrace, preprocessed source, and associated run script.
+clang-7.0: note: diagnostic msg:
+********************
+
+PLEASE ATTACH THE FOLLOWING FILES TO THE BUG REPORT:
+Preprocessed source(s) and associated run script(s) are located at:
+clang-7.0: note: diagnostic msg: /tmp/io-e696e2.c
+clang-7.0: note: diagnostic msg: /tmp/io-e696e2.sh
+clang-7.0: note: diagnostic msg:
+
+********************
+
+`./Configure.pl --cc /usr/local/x86-cbc/bin/gcc --debug --compiler gcc --prefix=/mnt/dalmore-home/one/src/build_MoarVM`
+` make -C ../MoarVM -j 70`
+` make install`
+`+dalmore+one ./Configure.pl --cc /usr/local/x86-cbc/bin/gcc --debug --compiler gcc --prefix=/mnt/dalmore-home/one/src/build_perl6/MoarVM`
+
+実行
+
+`make  -j 70`
+
+何故かsrc側にlinkされていないmoarが生成される
+
+`make install` で両方にリンクが離れる
+
+とりあえずこれでbuildが通る
+
+```
++dalmore+one ./Configure.pl --prefix=/mnt/dalmore-home/one/src/build_perl6/nqp --backends=moar --with-moar=/mnt/dalmore-home/one/src/build_perl6/MoarVM/bin/moar
+
+Creating tools/build/install-jvm-runner.pl ...
+
+===SORRY!===
+Found /mnt/dalmore-home/one/src/build_perl6/MoarVM/bin/moar version 2018.04-1-g577857a, which is too old. Wanted at least 2018.04-18-ge7d79d869
+
+No suitable MoarVM (moar executable) found using the --prefix
+(You can get a MoarVM built automatically with --gen-moar.)
+```
+
+MoarVMが古いと何を付けられる
+
+
+```
++dalmore+one ./Configure.pl --prefix=/mnt/dalmore-home/one/src/build_perl6/nqp --backends=moar --with-moar=/mnt/dalmore-home/one/src/build_perl6/MoarVM/bin/moar
+
+Creating tools/build/install-jvm-runner.pl ...
+Cleaning up ...
+You can now use 'make' to build NQP.
+After that, 'make test' will run some tests and
+'make install' will install NQP.
++dalmore+one make install
+/usr/bin/perl -MExtUtils::Command -e mkpath gen/moar/stage1/gen
+/usr/bin/perl tools/build/gen-cat.pl moar src/how/Archetypes.nqp src/how/RoleToRoleApplier.nqp src/how/NQPConcreteRoleHOW.nqp src/how/RoleToClassApplier.nqp src/how/NQPCurriedRoleHOW.nqp src/how/NQPParametricRoleHOW.nqp src/how/NQPClassHO
+W.nqp src/how/NQPNativeHOW.nqp src/how/NQPAttribute.nqp src/how/NQPModuleHOW.nqp src/how/EXPORTHOW.nqp  > gen/moar/stage1/nqpmo.nqp
+/mnt/dalmore-home/one/src/build_perl6/MoarVM/bin/moar --libpath=src/vm/moar/stage0 src/vm/moar/stage0/nqp.moarvm --bootstrap --setting=NULL --no-regex-lib --target=mbc \
+    --output=gen/moar/stage1/nqpmo.moarvm gen/moar/stage1/nqpmo.nqp
+/mnt/dalmore-home/one/src/build_perl6/MoarVM/bin/moar --libpath=src/vm/moar/stage0 src/vm/moar/stage0/nqp.moarvm --bootstrap --setting=NULL --no-regex-lib --target=mbc \
+    --output=gen/moar/stage1/ModuleLoader.moarvm src/vm/moar/ModuleLoader.nqp
+/usr/bin/perl -MExtUtils::Command -e mkpath gen/moar/stage1/gen
+/usr/bin/perl tools/build/gen-cat.pl moar src/core/NativeTypes.nqp src/core/NQPRoutine.nqp src/core/NQPMu.nqp src/core/NQPCapture.nqp src/core/IO.nqp src/core/Regex.nqp src/core/Hash.nqp src/core/NQPLock.nqp src/core/testing.nqp src/core/
+YOUAREHERE.nqp  > gen/moar/stage1/NQPCORE.setting
+/mnt/dalmore-home/one/src/build_perl6/MoarVM/bin/moar --libpath=src/vm/moar/stage0 src/vm/moar/stage0/nqp.moarvm --bootstrap --module-path=gen/moar/stage1 --setting=NULL --no-regex-lib --target=mbc \
+    --output=gen/moar/stage1/NQPCORE.setting.moarvm gen/moar/stage1/NQPCORE.setting
+/usr/bin/perl -MExtUtils::Command -e mkpath gen/moar/stage1/gen
+/usr/bin/perl tools/build/gen-cat.pl moar src/QAST/CompileTimeValue.nqp src/QAST/SpecialArg.nqp src/QAST/Children.nqp src/QAST/Node.nqp src/QAST/NodeList.nqp src/QAST/Regex.nqp src/QAST/IVal.nqp src/QAST/NVal.nqp src/QAST/SVal.nqp src/QAS
+T/BVal.nqp src/QAST/WVal.nqp src/QAST/Want.nqp src/QAST/Var.nqp src/QAST/VarWithFallback.nqp src/QAST/ParamTypeCheck.nqp src/QAST/Op.nqp src/QAST/VM.nqp src/QAST/Stmts.nqp src/QAST/Stmt.nqp src/QAST/Block.nqp src/QAST/Unquote.nqp src/QAST
+/CompUnit.nqp src/QAST/InlinePlaceholder.nqp  > gen/moar/stage1/QASTNode.nqp
+/mnt/dalmore-home/one/src/build_perl6/MoarVM/bin/moar --libpath=src/vm/moar/stage0 src/vm/moar/stage0/nqp.moarvm --bootstrap --module-path=gen/moar/stage1 --setting-path=gen/moar/stage1 \
+    --setting=NQPCORE --no-regex-lib --target=mbc \
+    --output=gen/moar/stage1/QASTNode.moarvm gen/moar/stage1/QASTNode.nqp
+/usr/bin/perl -MExtUtils::Command -e mkpath gen/moar/stage1/gen
+/usr/bin/perl tools/build/gen-cat.pl moar src/QRegex/NFA.nqp src/QRegex/Cursor.nqp  > gen/moar/stage1/QRegex.nqp
+/mnt/dalmore-home/one/src/build_perl6/MoarVM/bin/moar --libpath=src/vm/moar/stage0 src/vm/moar/stage0/nqp.moarvm --bootstrap --module-path=gen/moar/stage1 --setting-path=gen/moar/stage1 \
+    --setting=NQPCORE --no-regex-lib --target=mbc \
+    --output=gen/moar/stage1/QRegex.moarvm gen/moar/stage1/QRegex.nqp
+/usr/bin/perl -MExtUtils::Command -e mkpath gen/moar/stage1/gen
+/usr/bin/perl tools/build/gen-cat.pl moar src/vm/moar/HLL/Backend.nqp src/HLL/Grammar.nqp src/HLL/Actions.nqp src/HLL/Compiler.nqp src/HLL/CommandLine.nqp src/HLL/World.nqp src/HLL/sprintf.nqp  > gen/moar/stage1/NQPHLL.nqp
+/mnt/dalmore-home/one/src/build_perl6/MoarVM/bin/moar --libpath=src/vm/moar/stage0 src/vm/moar/stage0/nqp.moarvm --bootstrap --module-path=gen/moar/stage1 --setting-path=gen/moar/stage1 \
+    --setting=NQPCORE --no-regex-lib --target=mbc \
+    --output=gen/moar/stage1/NQPHLL.moarvm gen/moar/stage1/NQPHLL.nqp
+/mnt/dalmore-home/one/src/build_perl6/MoarVM/bin/moar --libpath=src/vm/moar/stage0 src/vm/moar/stage0/nqp.moarvm --bootstrap --module-path=gen/moar/stage1 --setting-path=gen/moar/stage1 \
+    --setting=NQPCORE --no-regex-lib --target=mbc \
+    --output=gen/moar/stage1/MASTOps.moarvm /mnt/dalmore-home/one/src/build_perl6/MoarVM/bin/../share/nqp/lib/MAST/Ops.nqp
+/mnt/dalmore-home/one/src/build_perl6/MoarVM/bin/moar --libpath=src/vm/moar/stage0 src/vm/moar/stage0/nqp.moarvm --bootstrap --module-path=gen/moar/stage1 --setting-path=gen/moar/stage1 \
+    --setting=NQPCORE --no-regex-lib --target=mbc \
+    --output=gen/moar/stage1/MASTNodes.moarvm /mnt/dalmore-home/one/src/build_perl6/MoarVM/bin/../share/nqp/lib/MAST/Nodes.nqp
+/usr/bin/perl -MExtUtils::Command -e mkpath gen/moar/stage1/gen
+/usr/bin/perl tools/build/gen-cat.pl moar src/vm/moar/QAST/QASTRegexCompilerMAST.nqp src/vm/moar/QAST/QASTOperationsMAST.nqp src/vm/moar/QAST/QASTCompilerMAST.nqp  > gen/moar/stage1/QAST.nqp
+/mnt/dalmore-home/one/src/build_perl6/MoarVM/bin/moar --libpath=src/vm/moar/stage0 src/vm/moar/stage0/nqp.moarvm --bootstrap --module-path=gen/moar/stage1 --setting-path=gen/moar/stage1 \
+    --setting=NQPCORE --no-regex-lib --target=mbc \
+    --output=gen/moar/stage1/QAST.moarvm gen/moar/stage1/QAST.nqp
+/usr/bin/perl -MExtUtils::Command -e mkpath gen/moar/stage1/gen
+/usr/bin/perl tools/build/gen-cat.pl moar src/QRegex/P6Regex/Grammar.nqp src/QRegex/P6Regex/Actions.nqp src/QRegex/P6Regex/Compiler.nqp src/QRegex/P6Regex/Optimizer.nqp  > gen/moar/stage1/NQPP6QRegex.nqp
+/mnt/dalmore-home/one/src/build_perl6/MoarVM/bin/moar --libpath=src/vm/moar/stage0 src/vm/moar/stage0/nqp.moarvm --bootstrap --module-path=gen/moar/stage1 --setting-path=gen/moar/stage1 \
+    --setting=NQPCORE --no-regex-lib --target=mbc \
+    --output=gen/moar/stage1/NQPP6QRegex.moarvm gen/moar/stage1/NQPP6QRegex.nqp
+/usr/bin/perl -MExtUtils::Command -e mkpath gen/moar/stage1/gen
+/usr/bin/perl tools/build/gen-version.pl /mnt/dalmore-home/one/src/build_perl6/nqp /mnt/dalmore-home/one/src/build_perl6/nqp/share/nqp/lib > gen/moar/stage1/nqp-config.nqp
+Can't locate Digest/SHA.pm in @INC (@INC contains: /usr/local/lib64/perl5 /usr/local/share/perl5 /usr/lib64/perl5/vendor_perl /usr/share/perl5/vendor_perl /usr/lib64/perl5 /usr/share/perl5 .) at tools/build/gen-version.pl line 9.
+BEGIN failed--compilation aborted at tools/build/gen-version.pl line 9.
+make: *** [gen/moar/stage1/nqp.moarvm] Error 2
+```
+
+
+# cpanmを入れようとしたところ終了
+
+```
++dalmore+one curl -L https://cpanmin.us | perl - --sudo App::cpanminus  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
+                                 Dload  Upload   Total   Spent    Left  Speed
+100  295k  100  295k    0     0   864k      0 --:--:-- --:--:-- --:--:--  864k
+--> Working on App::cpanminus
+Fetching http://www.cpan.org/authors/id/M/MI/MIYAGAWA/App-cpanminus-1.7044.tar.gz ... OK
+==> Found dependencies: ExtUtils::MakeMaker
+--> Working on ExtUtils::MakeMaker
+Fetching http://www.cpan.org/authors/id/B/BI/BINGOS/ExtUtils-MakeMaker-7.34.tar.gz ... OK
+Configuring ExtUtils-MakeMaker-7.34 ... OK
+Can't locate ExtUtils/Manifest.pm in @INC (@INC contains: FatPacked::13507464=HASH(0xce1b88) /usr/local/lib64/perl5 /usr/local/share/perl5 /usr/lib64/perl5/vendor_perl /usr/share/perl5/vendor_perl /usr/lib64/perl5 /usr/share/perl5 .) at - line 132.
+```
+
+どうも 'perl-devel' が入っていないのが原因の用
+
+
+----------
+2018-05-07----
+remo
+
+----------
+2018-05-08----
+今日の進捗
+
+- MoarVMの資料を読み解く
+- CbCで実装するべき場所を考察する
+
+----------
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/slides/2018/05/14/memo.txt	Mon May 14 15:36:32 2018 +0900
@@ -0,0 +1,3 @@
+今日の進捗
+
+