プレイ日記
myu314 myu314
プリプロセッサ的なものを作りました。プログラムにプログラムを埋め込んでプログラムを生成するプログラムを生成するプログラムです:p PHPとかテンプレートエンジンのようなものを想像するとよさげです。 P/PP v0.1.0 【 D343XJJY 】
8そうだね
プレイ済み
返信[1]
親投稿
myu314 myu314
- 複数行コメントアウトほしい(#IF 0とか) - デバッグ版とリリース版で処理を変えたい(assertとか) - ファイル1つにするためにライブラリコピペするの面倒 - 高速化のために展開するの自動化したい …っていうのをなんとかしたくて作りました。 具体的な使い方は PIPP.PRG を実行しますと - スロット1に元となるプログラム - スロット2に中間プログラム - スロット3に生成されたプログラム が読み込まれてますので、色々見比べていただければ。 特にスロット1のEXAMPLE.PPPを読んでいただけると、大体の使い方がつかめるのでは無いかと思います。
0そうだね
プレイ済み
返信[2]
親投稿
改造してSLOT4で実行できるようにしたりとかいろいろしてみましたが、#IF 0 的な事ができるだけでもかなり便利ですね。ありがとうございます。 インラインコマンドも便利です。 ただ、仕組み上_OUT_$のメモリオーバーフローがちょっと怖いですね… でも便利過ぎて使っちゃいます!
0そうだね
プレイ済み
返信[3]
親投稿
myu314 myu314
ドキュメントも禄に無いのにご利用ありがとうございます! オーバーフローについては 30文字10,000行で500kくらいですんで、断片化考えても多分大丈夫じゃないかなーと楽観してます。 それよりパフォーマンスの劣化の方が危ないかも…きっと3号は速いから大丈夫だと信じていますが。 ただ変換→即実行の場合メモリが減ったまま実行になってしまうので、変換に使った変数や_OUT_$を実行前に空の文字列代入するようサンプルに書いておけばよかったかも…
0そうだね
プレイ済み
返信[4]
親投稿
なるほど、たしかに何度か使ってるとアウトオブメモリーになっちゃいました。CLEARで直りましたけど。 _OUT_$を空にするように変更してみます。 アドバイスありがとうございました!
0そうだね
プレイ済み
返信[5]
親投稿
myu314 myu314
速度とメモリ断片化対策で、 '2Mぐらいまとめて確保 VAR DST$[1*1024*1024] 'copyコマンドで追記 COPY DST$,DST_INDEX,SRC$ INC DST_INDEX,LEN(SRC$) '追加が終わったら余計な部分を消す DST$=SUBST$(DST$,DST_INDEX,"") …みたいな感じに書き直したほうがいいかもと思ってるけどまだ実験してない:) twitterで見かけた改造版が素敵だったので色々取り込みつつ週明けくらいに作り直そうかなぁ。
0そうだね
プレイ済み
返信[6]
親投稿
moh6an moh6an
プリプロセッサ探してました、 glätteのドット打ち関数呼び出しの オーバーヘッドが馬鹿にならなかったので ソースをコピペして使ってたのですがもはやスパゲティーなのです 使ってみることにします。
0そうだね
プレイ済み
返信[7]
親投稿
myu314 myu314
ご利用ありがとうございますー まさにそういう目的で作ってみたので、そこそこ使えるのではと思います。 行番号がずれるのでデバッグ厄介になる部分もありますが…
0そうだね
プレイ済み
返信[8]
親投稿
myu314 myu314
微妙にバージョン上がってます。 以後たぶんこちらの開発日記に。 https://miiverse.nintendo.net/posts/AYMHAAADAAB2V0evIYhZPg
1そうだね
プレイ済み