Mercurial > hg > Members > ikki > CbC_log
view log28pm_impl.txt @ 1:81cf42d17859
add log
author | ichikitakahiro <e165713@ie.u-ryukyu.ac.jp> |
---|---|
date | Sun, 28 Feb 2021 18:08:51 +0900 |
parents | |
children |
line wrap: on
line source
Last login: Sun Feb 28 14:06:53 on ttys002 ichikitakahiro % cd !$ cd '$@' cd: no such file or directory: $@ ichikitakahiro % cd ~/src/firefly/hg/Gears/Gears/src/parallel_execution/ ichikitakahiro % vim examples/pop_and_push/main.cbc ichikitakahiro % ls Atomic.h Queue.h compare.c AtomicReference.cbc RedBlackTree.agda cuda.c AtomicT.h RedBlackTree.cbc examples AtomicTImpl.cbc RedBlackTreeReWright.cbc generate_context.pl AtomicTImpl.h Semaphore.h generate_stub.pl Buffer.h SemaphoreImpl.cbc helper_cuda.h CMakeLists.txt SingleLinkedQueue.cbc helper_string.h CPUWorker.cbc SingleLinkedStack.cbc impl CUDAExecutor.cbc SpinLock.cbc interface CUDAWorker.cbc Stack.h lib CodeGear.h SynchronizedQueue.cbc perlTests Executor.h TaskIterator.cbc plautogen Iterator.h TaskManager.h stack.agda Lock.h TaskManagerImpl.cbc temp.cbc LockImpl.cbc Timer.h test MCTaskManagerImpl.cbc TimerImpl.cbc tmp_tool MCTaskManagerImpl.h Todo tools Makefile Tree.h twice ModelChecking Worker.h verifier MultiDimIterator.cbc cleanup.sh ichikitakahiro % cat Queue.h typedef struct Queue<>{ __code whenEmpty(...); __code clear(Impl* queue, __code next(...)); __code put(Impl* queue, union Data* data, __code next(...)); __code take(Impl* queue, __code next(union Data* data, ...)); __code isEmpty(Impl* queue, __code next(...), __code whenEmpty(...)); __code next(...); } Queue; ichikitakahiro % cat Lock.h typedef struct Lock<>{ union Data* lock; __code doLock(Impl* lock, __code next(...)); __code doUnlock(Impl* lock, __code next(...)); __code next(...); } Lock; ichikitakahiro % perl tools/static_gen_header.pl --interface Wc typedef struct Wc <> { __code next(...); } Wc; ichikitakahiro % perl tools/static_gen_header.pl --interface Wc -o examples/wc/wc.h ichikitakahiro % ls examples/wc/wc.h examples/wc/wc.h ichikitakahiro % vim examples/wc/wc.h ichikitakahiro % vim examples/wc/wc.h ichikitakahiro % cat examples/wc/wc.h typedef struct Wc <> { __code openFile(Impl* wc,char* filename, __code next(...)); __code countUp(Impl* wc,__code next(struct)); __code next(...); } Wc; ichikitakahiro % cat examples/wc/wc.h | wc 6 19 162 ichikitakahiro % vim examples/wc/wc.h ichikitakahiro % perl tools/static_gen_header.pl --interface Wc --impl WcImpl -o examples/wc/WcImpl.h ichikitakahiro % vim examples/wc/!$ vim examples/wc/examples/wc/WcImpl.h ichikitakahiro % vim examples/wc/WcImpl.h ichikitakahiro % perl tools/impl2cbc.pl examples/wc/WcImpl.h require file at /Users/ichikitakahiro/src/firefly/hg/Gears/Gears/src/parallel_execution/tools/../lib/Gears/Interface.pm line 15. Gears::Interface::parse("Gears::Interface", undef) called at /Users/ichikitakahiro/src/firefly/hg/Gears/Gears/src/parallel_execution/tools/../lib/Gears/Interface.pm line 166 Gears::Interface::detailed_parse("Gears::Interface", undef) called at tools/impl2cbc.pl line 27 ichikitakahiro % vim examples/wc/WcImpl.h ichikitakahiro % vim examples/wc/wc.h ichikitakahiro % mv examples/wc/wc.h examples/wc/Wc.h ichikitakahiro % perl tools/impl2cbc.pl examples/wc/WcImpl.h #include "../../../context.h" #interface "Wc.h" // ---- // typedef struct WcImpl <> impl Wc { // FILE* file; // char* Keyword; // int wordNum; // } WcImpl; // ---- Wc* createWcImpl(struct Context* context) { struct Wc* wc = new Wc(); struct WcImpl* wc_impl = new WcImpl(); wc->wc = (union Data*)wc_impl; wc->filename = NULL; wc->result = NULL; wc_impl->file = NULL; wc_impl->Keyword = NULL; wc_impl->wordNum = 0; wc->openFile = C_openFileWcImpl; wc->countUp = C_countUpWcImpl; return wc; } __code openFile(struct WcImpl* wc,char* filename, __code next(...)) { goto next(...); } __code countUp(struct WcImpl* wc,__code next(WcResult* result, ...)) { goto next(WcResult* result, ...); } ichikitakahiro % ls Atomic.h Queue.h compare.c AtomicReference.cbc RedBlackTree.agda cuda.c AtomicT.h RedBlackTree.cbc examples AtomicTImpl.cbc RedBlackTreeReWright.cbc generate_context.pl AtomicTImpl.h Semaphore.h generate_stub.pl Buffer.h SemaphoreImpl.cbc helper_cuda.h CMakeLists.txt SingleLinkedQueue.cbc helper_string.h CPUWorker.cbc SingleLinkedStack.cbc impl CUDAExecutor.cbc SpinLock.cbc interface CUDAWorker.cbc Stack.h lib CodeGear.h SynchronizedQueue.cbc perlTests Executor.h TaskIterator.cbc plautogen Iterator.h TaskManager.h stack.agda Lock.h TaskManagerImpl.cbc temp.cbc LockImpl.cbc Timer.h test MCTaskManagerImpl.cbc TimerImpl.cbc tmp_tool MCTaskManagerImpl.h Todo tools Makefile Tree.h twice ModelChecking Worker.h verifier MultiDimIterator.cbc cleanup.sh ichikitakahiro % perl tools/impl2cbc.pl examples/wc/WcImpl.h -w #include "../../../context.h" #interface "Wc.h" // ---- // typedef struct WcImpl <> impl Wc { // FILE* file; // char* Keyword; // int wordNum; // } WcImpl; // ---- Wc* createWcImpl(struct Context* context) { struct Wc* wc = new Wc(); struct WcImpl* wc_impl = new WcImpl(); wc->wc = (union Data*)wc_impl; wc->filename = NULL; wc->result = NULL; wc_impl->file = NULL; wc_impl->Keyword = NULL; wc_impl->wordNum = 0; wc->openFile = C_openFileWcImpl; wc->countUp = C_countUpWcImpl; return wc; } __code openFile(struct WcImpl* wc,char* filename, __code next(...)) { goto next(...); } __code countUp(struct WcImpl* wc,__code next(WcResult* result, ...)) { goto next(WcResult* result, ...); } ichikitakahiro % perl tools/impl2cbc.pl -w examples/wc/WcImpl.h ichikitakahiro % ls examples/wc/ Wc.h WcImpl.cbc WcImpl.h WcResult.h main.cbc ichikitakahiro % vi examples/wc/WcImpl.cbc ichikitakahiro % vim examples/wc/WcImpl.cbc ichikitakahiro % vim tools/impl2cbc.pl ichikitakahiro % vim examples/wc/WcImpl.cbc ichikitakahiro % vim examples/wc/Wc.h ichikitakahiro % vim examples/wc/Wc.h ichikitakahiro % vim examples/DPP2/main.cbc ichikitakahiro % vim examples/wc/Wc.h ichikitakahiro %