Smalltalk総合 Squeak Pharo (671レス)
上下前次1-新
抽出解除 必死チェッカー(本家) (べ) 自ID レス栞 あぼーん
リロード規制です。10分ほどで解除するので、他のブラウザへ避難してください。
235(2): 2015/02/12(木)09:00 ID:FbfONYzU(1/3) AAS
>>232 あ、ほんとだ。ブロックリテラルで書かないと、インライン展開されないんですね。…とのことです。>>229
true ifTrue: [3] ifFalse: [4]. thisContext method symbolic "=> '33 <71> pushConstant: true
34 <99> jumpFalse: 37
35 <21> pushConstant: 3
36 <90> jumpTo: 38
37 <20> pushConstant: 4
38 <87> pop
39 <89> pushThisContext:
40 <D3> send: method
41 <D2> send: symbolic
42 <7C> returnTop' "
true ifTrue: 3 ifFalse: 4. thisContext method symbolic "=> '33 <71> pushConstant: true
34 <21> pushConstant: 3
35 <22> pushConstant: 4
36 <F0> send: ifTrue:ifFalse:
37 <87> pop
38 <89> pushThisContext:
39 <D4> send: method
40 <D3> send: symbolic
41 <7C> returnTop' "
| block | block := [3]. true ifTrue: block. thisContext method symbolic
"=> '<略> 36 <71> pushConstant: true
37 <10> pushTemp: 0
38 <E1> send: ifTrue:
39 <87> pop
40 <89> pushThisContext:
41 <D3> send: method
42 <D2> send: symbolic
43 <7C> returnTop' "
236(1): 2015/02/12(木)09:26 ID:FbfONYzU(2/3) AA×
>>232

238(1): 2015/02/12(木)17:47 ID:FbfONYzU(3/3) AAS
>>237
言いたいことがよく分かりません。
それはコンパイル時の ifTrue: 、whileTrue: などのインライン展開とどういう関係があるのでしょうか?
そもそも 1 + 10 と 1 + MyClass new とではコンパイル結果は変わらないですよね?
そのコードも SmallInteger >> + のプリミティブが失敗して普通にフォールバックしているだけだと思うんですが…
上下前次1-新書関写板覧索設栞歴
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ
ぬこの手 ぬこTOP 0.032s