Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > tw.bbs.comp.sources > #2 > unrolled thread
| Started by | YAMAGUTIseisei <seisei@hello.to> |
|---|---|
| First post | 2017-08-08 03:18 +0000 |
| Last post | 2020-07-12 14:55 +0000 |
| Articles | 20 on this page of 33 — 3 participants |
Back to article view | Back to tw.bbs.comp.sources
This discussion starts older than the indexed window; earlier articles aren't shown. The article labeled Started by
below is the oldest one visible, not the original post.
jit-1_-_github__ysei~mruby-meta-circular-heiretu_-_nightly_-_2_0_1_7_0_6_3_0__0360710200.rb ( Was : Re: jit-1_-_github__ysei~mruby-meta-circular-heiretu_-_nightly_-_2_0_1_6_0_7_0_7__7070610200.rb ) YAMAGUTIseisei <seisei@hello.to> - 2017-08-08 03:18 +0000
jit-1_-_github__ysei~mruby-meta-circular-heiretu_-_nightly_-_2_0_1_7_1_0_0_1__1001710200.rb YAMAGUTIseisei <seisei@x68k.net> - 2017-10-01 12:15 +0000
jit-1_-_github__ysei~mruby-meta-circular-heiretu_-_nightly_-_2_0_1_7_1_2_3_1__1321710200.rb YAMAGUTIseisei <seisei@x68k.net> - 2017-12-31 12:57 +0000
jit-1_-_github__ysei~mruby-meta-circular-heiretu_-_nightly_-_2_0_1_8_0_2_0_4__4020810200.rb YAMAGUTIseisei <seisei@hello.to> - 2018-02-04 10:52 +0000
jit-1_-_github__ysei~mruby-meta-circular-heiretu_-_nightly_-_2_0_1_8_0_4_0_1__1040810200.rb YAMAGUTIseisei <seisei@hello.to> - 2018-04-01 13:24 +0000
jit-1_-_github__ysei~mruby-meta-circular-heiretu_-_nightly_-_2_0_1_8_0_5_2_0__0250810200.rb YAMAGUTIseisei <seisei@hello.to> - 2018-05-20 12:21 +0000
jit-1_-_github__ysei~mruby-meta-circular-heiretu_-_nightly_-_2_0_1_8_0_7_0_1__1070810200.rb YAMAGUTIseisei <seisei@hello.to> - 2018-07-01 11:18 +0000
jit-1_-_github__ysei~mruby-meta-circular-heiretu_-_nightly_-_2_0_1_8_0_9_3_0__0390810200.rb YAMAGUTIseisei <seisei@hello.to> - 2018-09-30 11:48 +0000
jit-1_-_github__ysei~mruby-meta-circular-heiretu_-_nightly_-_2_0_1_8_1_2_1_6__6121810200.rb YAMAGUTIseisei <seisei@hello.to> - 2018-12-16 09:16 +0000
jit-1_-_github__ysei~mruby-meta-circular-heiretu_-_nightly_-_2_0_1_9_0_2_1_0__0120910200.rb YAMAGUTIseisei <seisei@hello.to> - 2019-02-10 13:16 +0000
jit-1_-_github__ysei~mruby-meta-circular-heiretu_-_nightly_-_2_0_1_9_0_3_1_7__7130910200.rb YAMAGUTIseisei <seisei@hello.to> - 2019-03-17 09:53 +0000
jit-1_-_github__ysei~mruby-meta-circular-heiretu_-_nightly_-_2_0_1_9_0_4_2_1__1240910200.rb YAMAGUTIseisei <seisei@hello.to> - 2019-04-21 10:40 +0000
jit-1_-_github__ysei~mruby-meta-circular-heiretu_-_nightly_-_2_0_1_9_0_6_0_9__9060910200.rb YAMAGUTIseisei <seisei@hello.to> - 2019-06-09 09:28 +0000
jit-1_-_github__ysei~mruby-meta-circular-heiretu_-_nightly_-_2_0_1_9_0_8_1_1__1180910200.rb YAMAGUTIseisei <seisei@hello.to> - 2019-08-12 10:10 +0000
jit-1_-_github__ysei~mruby-meta-circular-heiretu_-_nightly_-_2_0_1_9_1_0_2_7__7201910200.rb YAMAGUTIseisei <seisei@hello.to> - 2019-10-27 12:29 +0000
jit-1_-_github__ysei~mruby-meta-circular-heiretu_-_nightly_-_2_0_1_9_1_2_1_5__5121910200.rb YAMAGUTIseisei <seisei@hello.to> - 2019-12-15 12:24 +0000
jit-1_-_github__ysei~mruby-meta-circular-heiretu_-_nightly_-_2_0_2_0_0_2_1_6__6120020200.rb YAMAGUTIseisei <seisei@hello.to> - 2020-02-16 16:30 +0000
jit-1_-_github__ysei~mruby-meta-circular-heiretu_-_nightly_-_2_0_2_0_0_4_1_9__9140020200.rb YAMAGUTIseisei <seisei@hello.to> - 2020-04-19 16:59 +0000
jit-1_-_github__ysei~mruby-meta-circular-heiretu_-_nightly_-_2_0_2_0_0_7_0_5__5070020200.rb YAMAGUTIseisei <seisei@hello.to> - 2020-07-05 12:08 +0000
jit-1_-_github__ysei~mruby-meta-circular-heiretu_-_nightly_-_2_0_2_0_1_0_2_5__5201020200.rb YAMAGUTIseisei <seisei@hello.to> - 2020-10-25 11:16 +0000
jit-1_-_github__ysei~mruby-meta-circular-heiretu_-_nightly_-_2_0_2_1_0_1_1_0__0110120200.rb YAMAGUTIseisei <seisei@hello.to> - 2021-01-10 10:34 +0000
jit-1_-_github__ysei~mruby-meta-circular-heiretu_-_nightly_-_2_0_2_1_0_3_2_8_8230120200.rb YAMAGUTIseisei <seisei@hello.to> - 2021-03-28 15:48 +0000
jit-1_-_github__ysei~mruby-meta-circular-heiretu_-_nightly_-_2_0_2_1_0_4_2_4__4240120200.rb YAMAGUTIseisei <seisei@hello.to> - 2021-04-25 00:23 +0000
jit-1_-_github__ysei~mruby-meta-circular-heiretu_-_nightly_-_2_0_2_1_0_7_1_3__3170120200.rb YAMAGUTIseisei <seisei@hello.to> - 2021-07-13 12:15 +0000
jit-1_-_github__ysei~mruby-meta-circular-heiretu_-_nightly_-_2_0_2_1_1_0_0_8__8001120200.rb YAMAGUTIseisei <seisei@hello.to> - 2021-10-08 09:10 +0000
jit-1_-_github__ysei~mruby-meta-circular-heiretu_-_nightly_-_2_0_2_2_0_2_0_6__6020220200.rb YAMAGUTIseisei <seisei@hello.to> - 2022-02-06 15:29 +0000
jit-1_-_github__ysei~mruby-meta-circular-heiretu_-_nightly_-_2_0_2_2_0_3_0_6__6030220200.rb YAMAGUTIseisei <seisei@hello.to> - 2022-03-06 10:14 +0000
jit-1_-_github__ysei~mruby-meta-circular-heiretu_-_nightly_-_2_0_2_2_0_4_0_4__4040220200.rb YAMAGUTIseisei <seisei@hello.to> - 2022-04-04 15:20 +0000
Debug ? ( Was : jit-1_-_github__ysei~mruby-meta-circular-heiretu_-_nightly_-_2_0_2_2_0_4_0_4__4040220200.rb ) YAMAGUTIseisei <seisei@hello.to> - 2022-04-24 08:27 +0000
jit-1_-_github__ysei~mruby-meta-circular-heiretu_-_nightly_-_2_0_2_2_0_6_2_6__6260220200.rb YAMAGUTIseisei <seisei@hello.to> - 2022-06-26 14:52 +0000
jit-1_-_github__ysei~mruby-meta-circular-heiretu_-_nightly_-_2_0_2_2_1_0_1_7__7101220200.rb YAMAGUTIseisei <seisei@hello.to> - 2022-10-17 22:10 +0000
jit-1_-_github__ysei~mruby-meta-circular-heiretu_-_nightly_-_2_0_2_3_0_6_1_7__7160320200.rb "YAMAGUTIseisei(MasinZenmetu)" <seisei@hello.to> - 2024-01-07 14:44 +0000
DoNotOpen:SJIS : Re : jit-1_-_github__ysei~mruby-meta-circular-heiretu_-_nightly_-_2_0_2_0_0_7_0_5__5070020200.rb YAMAGUTIseisei <seisei@hello.to> - 2020-07-12 14:55 +0000
Page 1 of 2 [1] 2 Next page →
| From | YAMAGUTIseisei <seisei@hello.to> |
|---|---|
| Date | 2017-08-08 03:18 +0000 |
| Subject | jit-1_-_github__ysei~mruby-meta-circular-heiretu_-_nightly_-_2_0_1_7_0_6_3_0__0360710200.rb ( Was : Re: jit-1_-_github__ysei~mruby-meta-circular-heiretu_-_nightly_-_2_0_1_6_0_7_0_7__7070610200.rb ) |
| Message-ID | <59892D82.4060203@hello.to> |
23,24d22
< # KS = (0 .. 9).to_a.join + ?- # * '' higokan mruby 70410200 # ?0.upto # higokan mruby 70410200 # 7221410200 6ccae658 suzukaze # q
< # Ks = (0 .. 9).to_a.join + ?- # * '' higokan mruby 70410200 # ?0.upto # higokan mruby 70410200 # 7221410200 6ccae658 suzukaze # q
27d24
< # k = Kernel.const_get k
35d31
< # ! ! case k = k.to_s[1]
37c33,34
< when ?r then '[]' == vs[0] + vs[-1] # , Array # q
---
> # when ?r then '[]' == vs[0] + vs[-1] # , Array # q
> when ?r then '[]' == vs[0] << vs[-1] # , Array # q
39,40d35
< # s = KS + ?i == k ? '' : ?. # Fixnum # q 2
< # s = Ks + ?i == k ? '' : ?. # Fixnum # q 2
42,43c37,40
< @@ks |= (0 .. 9).to_a.join + ?- # * '' higokan mruby 70410200 # ?0.upto # higokan mruby 70410200 # 7221410200 6ccae658 suzukaze # q
< ) + ?i == k ? '' : ?. # q 2
---
> # @@ks |= (0 .. 9).to_a.join + ?- # * '' higokan mruby 70410200 # ?0.upto # higokan mruby 70410200 # 7221410200 6ccae658 suzukaze # q
> @@ks ||= (0 .. 9).to_a.join << ?- # * '' higokan mruby 70410200 # ?0.upto # higokan mruby 70410200 # 7221410200 6ccae658 suzukaze # q
> # ) + ?i == k ? '' : ?. # q 2
> ) << ?i == k ? '' : ?. # q 2
44a42
> when ?y then vs.to_sym == v # Symbol # q
46d43
< # end
68,71c65
< # def pid_g
< # $$ || self
< # end
< # def pid_g() $$ || self end
---
> # def pid_g; $$ || self end
88,90d81
< # def asoc
< # end
<
195c186,192
< @fml.(lb).assoc(sym) # c
---
> # @fml.(lb).assoc(sym) # c
> @fml.(lb).assoc(sym) || ( # c
> # printf("Unkown code %s \n", OPTABLE_SYM[imem.get_opcode(cop)])
> print("Unkown code #{sym} \n") # .to_s
> return nil
> # raise
> )
197a195,210
> def ta(ta, cop) [ta.shift || 'getarg_a', ta.shift || cop][0 .. ta.pop || 1] end
>
> # def fvl(oi, th, fv, wd, cop)
> # def fva(oi, th, fv, cop)
> # [
> # [-> {[fv[oi] = th[oi] = (ta(fv[oi], cop)), []]},
> # -> {th += [[fv[oi] && ta(fv[oi], cop)], []][
> # ((wd = fv.width) <=> oi) >> 1]}][oi <=> 0].call, # .lazy
> # th,
> # wd
> # ]
> # ->(oi) {[fv[oi] = th[oi] = (ta(fv[oi], cop)), []]}, # l
> # ->(oi) {th += [[fv[oi] && ta(fv[oi], cop)], []] # l
> # end
>
>
205c218,222
< def s__r1_eq_sr01(*a) a[@@I_s__s][ a[@@I_s__r1]] == a[@@I_s__s][a[@@I_s__r0] + 1] end
---
> # def s__r1_eq_sr01(*a) a[@@I_s__s][ a[@@I_s__r1]] == a[@@I_s__s][a[@@I_s__r0] + 1] end
> def s__r1_eq_sr01(*a) a[@@I_s__s][ a[@@I_s__r1]] ==
> a[@@I_s__s][ a[@@I_s__r0] + 1] end
> # def s__r1_eq_sr01(*a) a[@@I_s__r1] &&
> # a[@@I_s__s][a[@@I_s__r0] + 1] == a[@@I_s__s][a[@@I_s__r1]] end
208d224
< # knid(op[0], :Numeric) ? op.inject(:+) : self.send(*op)
222a239,242
> (
> # @imem = Imem.new # higokan mruby 80410200
> @@Imem = Imem.new
> @@slp = Slp.new
224,234c244,252
< # @imem = Imem.new # higokan mruby 80410200
< @@Imem = Imem.new
<
< @@fl = '~~ritepl'
< @@idb = @@fl
< @@fl += '.loc'
< # @@idb = 0.pid_g.to_xeh + @@idb # +
< # (rand 0xff).to_xeh +
< # (Time.now.to_f - 0x3fffffff.to_f << 0x10).to_s.split('.')[0][-8..-1].to_xeh
< # @@dlm = '\n'
< # @@dlm = '__--__'
---
> @@fl = '~~ritepl'
> @@idb = @@fl
> @@fl += '.loc'
> # @@idb = 0.pid_g.to_xeh + @@idb # +
> # (rand 0xff).to_xeh +
> # (Time.now.to_f - 0x3fffffff.to_f << 0x10).to_s.split(?.)[0][-8..-1].to_xeh # q
> # @@dlm = '\n'
> # @@dlm = '__--__'
> )
274c292,293
< Slp.new.slp 0
---
> # Slp.new.slp 0
> @@slp.slp 0
408d426
< # bf = 2 ** bfsz - 1 # kakezan
423,429c441,453
< # ([] == a || case a when Array then true end.!) && (return a) # t
< a.map! { |v|
< ## v.kind_of?(Array) ? __send__(v, pc) : v # unwork ( thread ? )
< # knid(v, :Array) ? __method__(v, pc) : v # unwork ( thread ? )
< # knid(v, :Array) ? __callee__(v, pc) : v # unwork ( thread ? )
< # knid(v, :Array) ? st_id(v, pc) : v
< case v when Array then st_id(v, pc) else v end
---
> # ([] == a || case a when Array then true end.!) && (return a) # t # higokan mruby70410200 monami-ya.mrb60510200
> # a.map! { |v|
> ### v.kind_of?(Array) ? __send__(v, pc) : v # unwork ( thread ? )
> ## knid(v, :Array) ? __method__(v, pc) : v # unwork ( thread ? )
> ## knid(v, :Array) ? __callee__(v, pc) : v # unwork ( thread ? )
> # knid(v, :Array) ? st_id(v, pc) : v
> # case v when Array then st_id(v, pc) else v end
> a.map! { |a|
> ## v.kind_of?(Array) ? __send__(a, pc) : a # unwork ( thread ? )
> # knid(a, :Array) ? __method__(a, pc) : a # unwork ( thread ? )
> # knid(a, :Array) ? __callee__(a, pc) : a # unwork ( thread ? )
> # knid(a, :Array) ? st_id(a, pc) : a
> case a when Array then st_id(a, pc) else a end
431c455,456
< return a[0] if 2 > a.size
---
> # return a[0] if 2 > a.size
> return a[0] if 1 >= a.size
437,439c462,465
< #print "#{pc.to_xeh} #{opc} #{op.to_xeh}\n" if ! knid(opc, :Numeric)
< case opc when Numeric then else
< print "#{pc.to_xeh} #{opc} #{op.to_xeh}\n" end
---
> #case opc when Numeric then else
> case opc when Numeric then true end || (
> # print "#{pc.to_xeh} #{opc} #{op.to_xeh}\n" end
> print "#{pc.to_xeh} #{opc} #{op.to_xeh}\n")
456c482,483
< th[idx] = st_id(th[idx], pc - 1)
---
> th[idx] = st_id(th[idx], pc - 1) ;
> #### th[idx] = st_id(th[idx], pc - 1) if ckth(th[idx], 0) # fuguai taisaku
460c487,489
< self.pl_es(pc, ['th', th])
---
> #### if f = (th[idx].nil?.! && ckth(th[mx], 3)) # fuguai taisaku
> # self.pl_es(pc, ['th', th])
> pl_es(pc, ['th', th])
464,465c493,496
< Slp.new.slp 0
< # Slp.new.slp(0, 4096)
---
> # Slp.new.slp 0
> @@slp.slp 0
> ## Slp.new.slp(0, 4096)
> # @@slp.slp(0, 4096)
467,468c498,499
< idx += f || idx < mx ? 1 : 0 ##
< #### idx += f && idx < mx ? 1 : 0 # fuguai taisaku ##
---
> # idx += f && idx < mx ? 1 : 0 ##
> f && idx += idx < mx ? 1 : 0 ##
476,477c507,511
< flg = true
< loop do
---
> apc = []
> fpl = []
> # flg = true
> flg = [true]
> loop {
479c513,514
< pc = self.ctr_g if flg
---
> # pc = self.ctr_g if flg
> apc<< ctr_g if flg[0] # p
481,482c516,518
< # if pc != cto || ! flg
< if 0 <= pc || ! flg
---
> # if pc != cto or ! flg
> # if pc >= 0 || ! flg
> if flg[0].! || (apc.empty?.! && (pc = apc.shift) >= 0)
484c520,521
< f = self.plw(pc) if flg
---
> # f = self.plw(pc) if flg
> fpl<< plw(pc) if flg[0] # p
490,492c527,530
< # (flg = [true][ith] || false) || (Slp.new.slp 0; redo) ###
< # (flg = f.resume) ? f = nil : (Slp.new.slp 0; redo) ##
< if ! (flg = f.resume) then Slp.new.slp 0; redo end ##
---
> # (flg = [true][ith] || false) || redo ###
> # (flg = f.resume) ? f = nil : redo ##
> # if ! (flg = f.resume) then redo end ##
> fpl.reject!.with_index { |v, n| flg[n] = v.resume}
494c532,533
< Slp.new.slp
---
> # Slp.new.slp
> @@slp.slp
496c535
< end
---
> }
502,504c541,543
< #class ENVary < Array
< # include M__ENVary
< #end
---
> # class ENVary < Array
> # include M__ENVary
> # end
508c547
< @@m = Mutex.new
---
> # @@m = Mutex.new
512,516c551,554
< @s = s
< @p = sp
< @@m.lock
< s = @s
< @@m.unlock
---
> # @@m.lock
> @s = s
> @p = sp
> # @@m.unlock
521,523c559,563
< # p id = self.object_id
< # @p = a[0] if 0 < a.size
< @p = a[0] if ! a.empty?
---
> # id = self.object_id
> # @@m.lock
> @p = a[0] unless a.empty?
> # p = @p
> # @@m.unlock
524a565
> # p
528,533c569,575
< @@m.lock
< s = @s
< @@m.unlock
< # s[@p.ipt a[0]]
< # s[@p.sgp a[0]]
< s[@p + a[0].sgp]
---
> # @@m.lock
> @s[@p + a[0].sgp]
> # s[@p.ipt a[0]]
> # s[@p.sgp a[0]]
> # s[@p + a[0].sgp]
> # @@m.unlock
> # [mloc, @s[@p + a[0].sgp], @@m.unlock][1]
537c579
< @@m.lock
---
> # @@m.lock
541,542c583,585
< @@m.unlock
< a
---
> # @@m.unlock
> # a
> # [mloc, @s[@p + a[0].sgp] = a[1], @@m.unlock][1]
543a587,592
>
> def size; @s.size end
>
> # def mloc
> # begin @@m.lock; rescue Slp.new.slp(0); retry end
> # end
597a647
> @@slp = Slp.new
661c711,713
< def fls(pc) ##
---
> def fls2(pc, pl = []) ###
> # def fls2(pc) ###
> # def fls(pc) ##
675,676c727,728
< # sp, wd, isr0, r0, r1, lm, sy = [] # higokan ? mruby 70410200
< # sp, wd, isr0, r0, r1, lm, sy = [][0]
---
> # sp, sz, isr0, r0, r1, lm, sy = [] # higokan ? mruby 70410200
> # sp, sz, isr0, r0, r1, lm, sy = [][0]
681,684c733,735
< # wd = 2
< # ap = 0xf - 1; ap = (ap << wd) + ap + (1 << (wd - 1)) >> wd
< wd = 4; ap = (1 << wd) - 1 - 1
< wd -= 2; ap = (ap << wd) + ap + (1 << (wd - 1)) >> wd
---
> # sz = 4; ap = (1 << sz) - 1 - 1
> sz = 4; ap = 1 << sz
> sz -= 2; ap = (ap << sz) + ap + (1 << (sz - 1)) >> sz
687a739
> # lm = ->(isr0, r1) {imem.send(pr, *isr0, r1)} # l
691c743,744
< r = (plr[r1] if 0 <= wd && r1 <= wd) || lm.(isr0, r1) # c
---
> # r = (plr[r1] if 0 <= sz && r1 <= sz) || lm.(isr0, r1) # c
> r = if r1 <= sz && plr[r1].nil?.! then plr[r1] else lm.(isr0, r1) end # c
695,696c748,753
< # ((sw = sp + wd) + 0xe).step(sw, -1) { # memo # higokan mruby 70410200 # bbab89e7 5211410200 tmtm
< wd.step(wd + ap -= ap >> 2) { |n| plr<< lm.(isr0, s[n])} # p c
---
> # ((sw = sp + sz) + 0xe).step(sw, -1) { # memo # higokan mruby 70410200 # bbab89e7 5211410200 tmtm
> # sz.step(sz - 1 + ap -= ap >> 2) { |n| plr<< lm.(isr0, s[n])} # p c
> mx = sz - 1 + ap -= ap >> 2
> s.size < mx && mx = s.size
> (mx - sz).times { |n| plr<< lm.(isr0, s[n])} # p c
> # (mx - sz).times { |n| s[n] && plr<< lm.(isr0, s[n])} # p c
703,706c760,764
< Fiber.new {
< loop do ##
< pl = lpl.pl_g(pc) ##
< sp ||= s.sp(pl[i_sp][0])
---
> # Fiber.new { ##
> # loop { ##
> # pl = lpl.pl_g(pc) ##
> # sp ||= s.sp(pl[i_sp][0]) ##
> sp = s.sp(pl[i_sp][0]) ###
714c772,773
< wd = plr.width
---
> # sz = plr.width
> sz = plr.size
720,722c779,800
< # return([! flg.include?(false), pl]) ###
< Fiber.yield(! flg.include?(false)) ##
< end ##
---
> return([! flg.include?(false), pl]) ###
> # return(! flg.include?(false)) ###
> # Fiber.yield(! flg.include?(false)) ##
> # } ##
> # } ##
> end
>
> def fls(pc) ###
> lpl = @pl
> i_th = lpl.affil('th', ?i) # q
>
> flg, pl = true
>
> Fiber.new {
> loop {
> flg ? pl = lpl.pl_g(pc) : pl[i_th] = lpl.pl_eg(pc, 'th')
> # pl = lpl.pl_g(pc) ####
>
> flg, pl = fls2(pc, pl)
> Fiber.yield(flg)
> # Fiber.yield(fls2(pc)) ####
> }
727c805,806
< def iset(rg) ##
---
> def iset2(rg, thi = 0, th = []) ###
> # def iset(rg) ##
735,739c814,818
< fml = imem.fml('th', sym) || (
< printf("Unkown code %s \n", OPTABLE_SYM[imem.get_opcode(cop)])
< return
< )
< fmla = fml
---
> fml = imem.fml('th', sym) # || (
> # printf("Unkown code %s \n", OPTABLE_SYM[imem.get_opcode(cop)])
> # return
> # )
> # fmla = fml
742,743c821
< # ta = ->(l) { [l.shift || 'getarg_a', l.shift || cop][0 .. l.pop || 1] } # l
< ta = ->(ta) { [ta.shift || 'getarg_a', ta.shift || cop][0 .. ta.pop || 1] } # l
---
> # ta = ->(ta) { [ta.shift || 'getarg_a', ta.shift || cop][0 .. ta.pop || 1] } # l
745,746c823
<
< th = [] ##
---
> # th = [] ##
749,755c826,829
< # fvl = ->(oi) {[ # l
< # -> {[fv[oi] = th[oi] = (ta.(fv[oi])), []]}, # l c
< # -> {th += [[fv[oi] && ta.(fv[oi])], []][ # l c
< # ((wd = fv.width) <=> oi) >> 1]}][oi <=> 0].call # .lazy
< # }
< fvl = [->(oi) {[fv[oi] = th[oi] = (ta.(fv[oi])), []]}, # l c
< ->(oi) {th += [[fv[oi] && ta.(fv[oi])], []][ # l c
---
> # fvl = [->(oi) {[fv[oi] = th[oi] = (ta.(fv[oi])), []]}, # l c
> # ->(oi) {th += [[fv[oi] && ta.(fv[oi])], []][ # l c
> fvl = [->(oi) {[fv[oi] = th[oi] = (imem.ta(fv[oi], cop)), []]}, # l
> ->(oi) {th += [[fv[oi] && imem.ta(fv[oi], cop)], []][ # l
759c833
< fml = fmla.dup
---
> # fml = fmla.dup
760a835,836
> i = -1
> # bt[oi].each_slice(2).with_index { |k, i| k, v = k # higokan mruby:70410200 monami-ya.mrb:60510200
762c838,839
< fv = fml.shift
---
> # fv = fml.shift
> fv = fml[i += 1]
765d841
< # when 'th' then fv = fvl.(oi) # c
766a843
> # when 'th' then (fv, th, wd) = imem.fvl(oi, th, fv, wd, cop)
774c851
< thi = 0 ##
---
> # thi = 0 ##
777,778c854,855
< Fiber.new {
< loop do ##
---
> # Fiber.new { ##
> # loop { ##
786c863,864
< Slp.new.slp 0
---
> # Slp.new.slp 0
> @@slp.slp 0
788d865
< # pl.pl_es(pc1, ['sym', 'th', k_sp_r].flat_map { |o| [o]<< ops.shift}) # p
793,795c870,885
< # [thi + 1, th] ###
< Fiber.yield(thi += 1) ##
< end ##
---
> [thi + 1, th] ###
> # Fiber.yield(thi += 1) ##
> # } ##
> # } ##
> end
>
> def iset(rg)
> thi = 0
> th = []
>
> Fiber.new {
> loop {
> thi, th = iset2(rg, thi, th)
>
> Fiber.yield(thi)
> }
939,940c1029,1030
< @callinfo[@cp] = rg['sp']
< @cp += 1
---
> # @callinfo[@cp] = rg['sp']
> # @cp += 1
942,943c1032,1033
< @callinfo[@cp] = rg['pc']
< @cp += 1
---
> # @callinfo[@cp] = rg['pc']
> # @cp += 1
945,946c1035,1037
< @callinfo[@cp] = irep
< @cp += 1
---
> # @callinfo[@cp] = irep
> # @cp += 1
> @callinfo[@cp ... @cp += 3] = [rg['sp'], rg['pc'], irep]
1023c1114,1115
< Slp.new.slp 0
---
> # Slp.new.slp 0
> @@slp.slp 0
1025c1117,1118
< Slp.new.slp
---
> # Slp.new.slp
> @@slp.slp
--
YAMAGUTIseisei ( str_h__namae = { :sei => "山口" , :mei => "青星" } )
http://hello.to/seisei/ mailto:seisei@.68..net tel:081-70-5152-1104
heiwa furiisekkusu 1tu
[toc] | [next] | [standalone]
| From | YAMAGUTIseisei <seisei@x68k.net> |
|---|---|
| Date | 2017-10-01 12:15 +0000 |
| Subject | jit-1_-_github__ysei~mruby-meta-circular-heiretu_-_nightly_-_2_0_1_7_1_0_0_1__1001710200.rb |
| Message-ID | <59D0DC7D.8010704@x68k.net> |
| In reply to | #2 |
33d32
< # when ?r then '[]' == vs[0] + vs[-1] # , Array # q
37d35
< # @@ks |= (0 .. 9).to_a.join + ?- # * '' higokan mruby 70410200 # ?0.upto # higokan mruby 70410200 # 7221410200 6ccae658 suzukaze # q
39d36
< # ) + ?i == k ? '' : ?. # q 2
41c38,39
< vs.each_byte { |c| s.include?(c) || break}
---
> # vs.each_byte { |c| s.include?(c) || break}
> vs.all? { |c| s.include?(c)}
195c193,194
< def ta(ta, cop) [ta.shift || 'getarg_a', ta.shift || cop][0 .. ta.pop || 1] end
---
> # def ta(ta, cop) [ta.shift || 'getarg_a', ta.shift || cop][0 .. ta.pop || 1] end
> def ta(l, cop) [l.shift || 'getarg_a', l.shift || cop][0 .. l.pop || 1] end
218d216
< # def s__r1_eq_sr01(*a) a[@@I_s__s][ a[@@I_s__r1]] == a[@@I_s__s][a[@@I_s__r0] + 1] end
278,280c276,280
< # 3080410200 : 5x2 ok ( gc ) : monami-ya.mrb 8270410200 813e2af8 # http://www.monami-ya.jp/
< self[0] = [['th', 'sym', 'ctr', 'cto'], # mruby 20410200 : higokan ? : ary_many
< [[thini], 0, [0], [0]]] # mruby 70410200 : 4x2 ok , 5x2 ng
---
> # 3080410200 : 5x2 ok ( gc ) : monami-ya.mrb 8270410200 813e2af8 # www.monami-ya.jp
> # self[0] = [['th', 'sym', 'ctr', 'cto'], # mruby 20410200 : higokan ? : ary_many
> # [[thini], 0, [0], [0]]] # mruby 70410200 : 4x2 ok , 5x2 ng
> self[0] = [['th', 'sym', 'ctr'], # mruby 20410200 : higokan ? : ary_many
> [[thini], 0, [-1]]] # mruby 70410200 : 4x2 ok , 5x2 ng
292d291
< # Slp.new.slp 0
361a361,369
>
> # n >= 0 && p(
> # to_ia(n)
> ## to_ia(n, pl)
> ## Rg.new(to_ia(n)).to_ra
> ## Rg.new(to_ia(n)).to_ra('th')
> ## rg = Rg.new(to_ia(n)); rg['ctr']
> # )
>
382a391,401
> @@Plmg = ->(pi, pv) {pi.map { |v| [v, pv.shift]}} # l
> def to_ia(n, lpl = self)
> if 0 == n
> # self[n]
> @@Plmg.(pl_g(-1), lpl[n][1]) # c
> else
> # @@Plmg.(pl_g(-1), self[n]) # c
> @@Plmg.(pl_g(-1), lpl[n]) # c
> end
> end
>
387c406,411
< (ctr = ctr_r.abs) != cto_r ? (ctr_s(-ctr); cto_s ctr) : -ctr
---
>
> ## ctr = ctr.abs
> ## ctr != cto ? (ctr_s -ctr; cto_s ctr) : -ctr
> # (ctr = ctr_r.abs) != cto_r ? (ctr_s -ctr; cto_s ctr) : -ctr
>
> [ctr = ctr_r, 0 <= ctr && ctr_s(-ctr)][0]
397,399c421,423
< def cto_r
< pl_eg('cto')[0]
< end
---
> # def cto_r
> # pl_eg('cto')[0]
> # end
406,409c430,433
< def cto_s(cto)
< pl_es(0, ['cto', [cto]])
< cto
< end
---
> # def cto_s(cto)
> # pl_es(0, ['cto', [cto]])
> # cto
> # end
438c462,463
< def st_id(a, pc)
---
> # def st_id(a, pc)
> def s_id(a, pc)
442,447d466
< # a.map! { |v|
< ### v.kind_of?(Array) ? __send__(v, pc) : v # unwork ( thread ? )
< ## knid(v, :Array) ? __method__(v, pc) : v # unwork ( thread ? )
< ## knid(v, :Array) ? __callee__(v, pc) : v # unwork ( thread ? )
< # knid(v, :Array) ? st_id(v, pc) : v
< # case v when Array then st_id(v, pc) else v end
449c468
< ## v.kind_of?(Array) ? __send__(a, pc) : a # unwork ( thread ? )
---
> ## v.kind_of?(Array) ? __send__(a, pc) : a # unwork ( thread ? )
452,453c471,474
< # knid(a, :Array) ? st_id(a, pc) : a
< case a when Array then st_id(a, pc) else a end
---
> ## knid(a, :Array) ? st_id(a, pc) : a
> # knid(a, :Array) ? s_id(a, pc) : a
> # case a when Array then st_id(a, pc) else a end
> case a when Array then s_id(a, pc) else a end
455d475
< # return a[0] if 2 > a.size
460d479
< # a.inject { |opc, op|
462d480
< #case opc when Numeric then else
464d481
< # print "#{pc.to_xeh} #{opc} #{op.to_xeh}\n" end
468d484
< # }
482,483c498,501
< th[idx] = st_id(th[idx], pc - 1) ;
< #### th[idx] = st_id(th[idx], pc - 1) if ckth(th[idx], 0) # fuguai taisaku
---
> # th[idx] = st_id(th[idx], pc - 1) ;
> th[idx] = s_id(th[idx], pc - 1) ;
> ##### th[idx] = st_id(th[idx], pc - 1) if ckth(th[idx], 0) # fuguai taisaku
> #### th[idx] = s_id(th[idx], pc - 1) if ckth(th[idx], 0) # fuguai taisaku
488d505
< # self.pl_es(pc, ['th', th])
493d509
< # Slp.new.slp 0
495d510
< ## Slp.new.slp(0, 4096)
498,499c513,514
< # idx += f && idx < mx ? 1 : 0 ##
< f && idx += idx < mx ? 1 : 0 ##
---
> # f && idx += idx < mx ? 1 : 0 ##
> f && idx += (mx <=> idx) + 1 >> 1 ##
532d546
< # Slp.new.slp
572d585
< # s[@p.sgp a[0]]
575d587
< # [mloc, @s[@p + a[0].sgp], @@m.unlock][1]
581d592
< # a = @s[@p.sgp a[0]] = a[1]
585d595
< # [mloc, @s[@p + a[0].sgp] = a[1], @@m.unlock][1]
589,592d598
<
< # def mloc
< # begin @@m.lock; rescue Slp.new.slp(0); retry end
< # end
619c625,626
< i ||= @a.assoc('ctr')[1]
---
> # i ||= @a.assoc('ctr')[1]
> i ||= @a.assoc('ctr')[1] + 1
621d627
< # self[@i] = a[0]
624d629
< # def []=(*a, v)
627c632,633
< i ||= @a.assoc('ctr')[1]
---
> # i ||= @a.assoc('ctr')[1]
> i ||= @a.assoc('ctr')[1] + 1
670d675
< # (@pl = ENVary.new(rmth + 1, [thini], [], [])).plini
703c708
< r = [r, r.map { |v| lpl.ckth(v, 1)}]
---
> # r = [r, r.map { |v| lpl.ckth(v, 1)}]
706c711,712
< r.map! { |v| [v[0], v[-1]]}
---
> # r.map! { |v| [v[0], v[-1]]}
> r = [r, r.map { |v| lpl.ckth(v, 1)}].map { |v| [v[0], v[-1]]}
733d738
< # sz = 4; ap = (1 << sz) - 1 - 1
735c740,741
< sz -= 2; ap = (ap << sz) + ap + (1 << (sz - 1)) >> sz
---
> # sz -= 2; ap = (ap << sz) + ap + (1 << (sz - 1)) >> sz
> sz -= 2; ap = ((ap << sz) + ap >> sz - 1) + 1 >> 1
743d748
< # r = (plr[r1] if 0 <= sz && r1 <= sz) || lm.(isr0, r1) # c
749,750c754,755
< # sz.step(sz - 1 + ap -= ap >> 2) { |n| plr<< lm.(isr0, s[n])} # p c
< mx = sz - 1 + ap -= ap >> 2
---
> # mx = sz - 1 + ap -= ap >> 2
> mx = sz - 1 + ap = ap - (ap >> 2) & 0x3f
752,753c757,758
< (mx - sz).times { |n| plr<< lm.(isr0, s[n])} # p c
< # (mx - sz).times { |n| s[n] && plr<< lm.(isr0, s[n])} # p c
---
> # (mx - sz).times { |n| plr<< lm.(isr0, s[n])} # p c
> (sz .. mx - 1).each { |n| plr<< lm.(isr0, s[n])} # p c
772d776
< # sz = plr.width
774d777
< # ca[flg.inject(0) { |rv, v| rv <<= 1; rv |= v ? 0 : 1}].call
782c785
< # } ##
---
> # } ##
790c793,795
< flg, pl = true
---
> # flg, pl = true
>
> pl = lpl.pl_g(pc)
794c799
< flg ? pl = lpl.pl_g(pc) : pl[i_th] = lpl.pl_eg(pc, 'th')
---
> # flg ? pl = lpl.pl_g(pc) : pl[i_th] = lpl.pl_eg(pc, 'th')
799a805,806
>
> pl[i_th] = lpl.pl_eg(pc, 'th')
805,806c812,813
< def iset2(rg, thi = 0, th = []) ###
< # def iset(rg) ##
---
> # def iset2(rg, thi = 0, th = []) ###
> def iset(rg) ##
815,819d821
< # printf("Unkown code %s \n", OPTABLE_SYM[imem.get_opcode(cop)])
< # return
< # )
< # fmla = fml
<
821d822
< # ta = ->(ta) { [ta.shift || 'getarg_a', ta.shift || cop][0 .. ta.pop || 1] } # l
823c824
< # th = [] ##
---
> th = [] ##
826,830c827,832
< # fvl = [->(oi) {[fv[oi] = th[oi] = (ta.(fv[oi])), []]}, # l c
< # ->(oi) {th += [[fv[oi] && ta.(fv[oi])], []][ # l c
< fvl = [->(oi) {[fv[oi] = th[oi] = (imem.ta(fv[oi], cop)), []]}, # l
< ->(oi) {th += [[fv[oi] && imem.ta(fv[oi], cop)], []][ # l
< ((wd = fv.width) <=> oi) >> 1]}] # .lazy
---
> # fvl = [->(oi) {[fv[oi] = th[oi] = (imem.ta(fv[oi], cop)), []]}, # l c
> # ->(oi) {th += [[fv[oi] && imem.ta(fv[oi], cop)], []][ # l c
> # ((wd = fv.width) <=> oi) >> 1]}] # .lazy
> fvl = [->(oi) {th += [[fv[oi] && imem.ta(fv[oi], cop)], []][ # l c
> ((wd = fv.width) <=> oi) >> 1]},
> ->(oi) {[fv[oi] = th[oi] = (imem.ta(fv[oi], cop)), []]}] # .lazy # l c
833d834
< # fml = fmla.dup
838d838
< # fv = fml.shift
842,843c842,843
< when 'th' then fv = fvl[oi <=> 0].(oi) # c
< # when 'th' then (fv, th, wd) = imem.fvl(oi, th, fv, wd, cop)
---
> # when 'th' then fv = fvl[oi <=> 0].(oi) # c
> when 'th' then fv = (fvl.delete_at(1) || fvl[0]).(oi) # c
851,852c851,852
< # thi = 0 ##
< # k_sp_r = pla.assoc('sp')[1]
---
> thi = 0 ##
> # thio = thi - 1
854,863c854,867
< # Fiber.new { ##
< # loop { ##
< opa = opg.(thi) # c
< # opa.push(k_sp_r, [sp]) if 0 == thi
< opa.push(k_sp, [sp]) if 0 == thi
<
< pl.pl_es(pc1, opa)
< pl.ctr_s(pc1) if 0 == thi
<
< # Slp.new.slp 0
---
> Fiber.new { ##
> loop { ##
> if 0 > pl.ctr_r || 0 != thi # && thi != thio
> opa = opg.(thi) # c
> opa.push(k_sp, [sp]) if 0 == thi
>
> pl.pl_es(pc1, opa)
>
> pl.ctr_s(pc1) if 0 == thi
>
> # thio = thi
> if 0 != thi && wd <= thi then thi = -1 end
> # if 0 != thi && wd <= thi && 0 < thio then thi = -1 end
> end
864a869
> # @@slp.slp
869,882c874,887
< if 0 != thi && wd <= thi then thi = -1 end
< [thi + 1, th] ###
< # Fiber.yield(thi += 1) ##
< # } ##
< # } ##
< end
<
< def iset(rg)
< thi = 0
< th = []
<
< Fiber.new {
< loop {
< thi, th = iset2(rg, thi, th)
---
> # if 0 != thi && wd <= thi then thi = -1; th = [] end
> # [thi + 1, th] ###
> Fiber.yield(thi += 1) ##
> } ##
> } ##
> end
>
> # def iset(rg)
> # thi = 0
> # th = []
>
> # Fiber.new {
> # loop {
> # thi, th = iset2(rg, thi, th)
884,887c889,892
< Fiber.yield(thi)
< }
< }
< end
---
> # Fiber.yield(thi)
> # }
> # }
> # end
919c924,925
< rg = Rg.new([['ctr', 1], ['thi', 0], ['pc', @pc], ['sp', @sp], ['cop'], ['sym']])
---
> # rg = Rg.new([['ctr', 1], ['thi', 0], ['pc', @pc], ['sp', @sp], ['cop'], ['sym']])
> rg = Rg.new([['ctr', 0], ['thi', 0], ['pc', @pc], ['sp', @sp], ['cop'], ['sym']])
935,937d940
< # rg['cop'] = c
< # rg['sym'] = s
< # rg['cop'], rg['sym'] = opf(irep, rg['pc'])
956d958
< ##### ise = iset(rg) if 0 == rg['thi'] ##
958d959
< # rg['thi'] = ise.resume ##
962c963,968
< (rg.push('pc', rg['pc']); rg.push('sp', rg['sp'])) if 0 == rg['thi'] ##
---
> if 0 <= rg['ctr', 1] && 0 == rg['thi']
> # (rg.push('pc', rg['pc']); rg.push('sp', rg['sp'])) if 0 == rg['thi'] ##
> rg.push('pc', rg['pc']) ##
> rg.push('sp', rg['sp']) ##
> rg['ctr', 1] += 1
> end
965,973c971,975
< # rga.('push', nil, 'pc', rg['pc']) # c
< rg.push('pc', rg['pc'])
< rg.push('sp', rg['sp'])
< rg['ctr', 1] *= -1 # kakezan
<
< # while ! lpl.ctr_c do Slp.new.slp end
<
< lpl.plini
< @flag[0] = 2
---
> if 0 <= rg['ctr', 1]
> rg.push('pc', rg['pc'])
> rg.push('sp', rg['sp'])
> rg['ctr', 1] *= -1 # kakezan
> end
974a977,978
> if 0 == rg['ctr', 1]
> # while ! lpl.ctr_c do Slp.new.slp end
976c980,981
< case rg['sym']
---
> lpl.plini
> @flag[0] = 2
978,979d982
< # 何もしない
< # when :NOP
981,986c984
< # JMP nでpcをnだけ増やす。ただし、nは符号付き
< when :JMP
< # @pc = @pc + getarg_sbx(cop)
< # pc = pc + lpl.getarg_sbx(cop) - 1
< rg['pc', -1] = rg['pc'] + imem.getarg_sbx(rg['cop']) - 1
< # next
---
> case rg['sym']
988,996c986,987
< when :JMPIF
< # if @stack[@sp + getarg_a(cop)] then
< # if @stack[sp + lpl.getarg_a(cop)] then
< if @stack[imem.getarg_a(rg['cop'])] then
< # @pc = @pc + getarg_sbx(cop)
< # pc = pc + lpl.getarg_sbx(cop) - 1
< rg['pc', -1] = rg['pc'] + imem.getarg_sbx(rg['cop']) - 1
< # next
< end
---
> # 何もしない
> # when :NOP
998,1002c989,990
< # JMPNOT Ra, nでもしRaがnilかfalseならpcをnだけ増やす。ただし、nは符号付き
< when :JMPNOT
< # if !@stack[@sp + getarg_a(cop)] then
< # if !@stack[sp + lpl.getarg_a(cop)] then
< if !@stack[imem.getarg_a(rg['cop'])] then
---
> # JMP nでpcをnだけ増やす。ただし、nは符号付き
> when :JMP
1007d994
< end
1009,1048c996,1004
< # メソッドの先頭で引数のセットアップする命令。面倒なので詳細は省略
< when :ENTER
< # rg['pc', -1] = rg['pc']
<
< # SEND Ra, mid, anumでRaをレシーバにしてシンボルmidの名前のメソッドを
< # 呼び出す。ただし、引数はanum個あり、R(a+1), R(a+2)... R(a+anum)が引数
< when :SEND
< # a = getarg_a(cop)
< # a = lpl.getarg_a(cop)
< a = imem.getarg_a(rg['cop'])
< # mid = @irep.syms[getarg_b(cop)]
< # mid = irep.syms[lpl.getarg_b(cop)]
< mid = irep.syms[imem.getarg_b(rg['cop'])]
< # n = getarg_c(cop)
< # n = lpl.getarg_c(cop)
< n = imem.getarg_c(rg['cop'])
< # newirep = Irep::get_irep(@stack[@sp + a], mid)
< newirep = Irep::get_irep(@stack[a], mid)
< if newirep then
< # @callinfo[@cp] = @sp
< # @callinfo[@cp] = rg['sp']
< # @cp += 1
< # @callinfo[@cp] = @pc
< # @callinfo[@cp] = rg['pc']
< # @cp += 1
< # @callinfo[@cp] = @irep
< # @callinfo[@cp] = irep
< # @cp += 1
< @callinfo[@cp ... @cp += 3] = [rg['sp'], rg['pc'], irep]
<
< # @sp += a
< # rg['sp'] += a
< rg['sp', -1] = rg['sp'] + a
<
< # @pc = 0
< rg['pc', -1] = -1
< # @irep = newirep
< irep = newirep
< # @irepid = @irep.id
< @irepid = irep.id
---
> when :JMPIF
> # if @stack[@sp + getarg_a(cop)] then
> # if @stack[sp + lpl.getarg_a(cop)] then
> if @stack[imem.getarg_a(rg['cop'])] then
> # @pc = @pc + getarg_sbx(cop)
> # pc = pc + lpl.getarg_sbx(cop) - 1
> rg['pc', -1] = rg['pc'] + imem.getarg_sbx(rg['cop']) - 1
> # next
> end
1050,1055c1006,1014
< # next
< else
< args = []
< n.times do |i|
< # args.push @stack[@sp + a + i + 1]
< args<< @stack[a + i + 1] # p
---
> # JMPNOT Ra, nでもしRaがnilかfalseならpcをnだけ増やす。ただし、nは符号付き
> when :JMPNOT
> # if !@stack[@sp + getarg_a(cop)] then
> # if !@stack[sp + lpl.getarg_a(cop)] then
> if !@stack[imem.getarg_a(rg['cop'])] then
> # @pc = @pc + getarg_sbx(cop)
> # pc = pc + lpl.getarg_sbx(cop) - 1
> rg['pc', -1] = rg['pc'] + imem.getarg_sbx(rg['cop']) - 1
> # next
1058,1060c1017,1065
< # @stack[@sp + a] = @stack[@sp + a].send(mid, *args)
< @stack[a] = @stack[a].send(mid, *args)
< end
---
> # メソッドの先頭で引数のセットアップする命令。面倒なので詳細は省略
> when :ENTER
> # rg['pc', -1] = rg['pc']
>
> # SEND Ra, mid, anumでRaをレシーバにしてシンボルmidの名前のメソッドを
> # 呼び出す。ただし、引数はanum個あり、R(a+1), R(a+2)... R(a+anum)が引数
> when :SEND
> # a = getarg_a(cop)
> # a = lpl.getarg_a(cop)
> a = imem.getarg_a(rg['cop'])
> # mid = @irep.syms[getarg_b(cop)]
> # mid = irep.syms[lpl.getarg_b(cop)]
> mid = irep.syms[imem.getarg_b(rg['cop'])]
> # n = getarg_c(cop)
> # n = lpl.getarg_c(cop)
> n = imem.getarg_c(rg['cop'])
> # newirep = Irep::get_irep(@stack[@sp + a], mid)
> newirep = Irep::get_irep(@stack[a], mid)
> if newirep then
> # @callinfo[@cp] = @sp
> # @cp += 1
> # @callinfo[@cp] = @pc
> # @cp += 1
> # @callinfo[@cp] = @irep
> # @cp += 1
> @callinfo[@cp ... @cp += 3] = [rg['sp'], rg['pc'], irep]
>
> # @sp += a
> # rg['sp'] += a
> rg['sp', -1] = rg['sp'] + a
>
> # @pc = 0
> rg['pc', -1] = -1
> # @irep = newirep
> irep = newirep
> # @irepid = @irep.id
> @irepid = irep.id
>
> # next
> else
> args = []
> n.times do |i|
> # args.push @stack[@sp + a + i + 1]
> args<< @stack[a + i + 1] # p
> end
>
> # @stack[@sp + a] = @stack[@sp + a].send(mid, *args)
> @stack[a] = @stack[a].send(mid, *args)
> end
1062,1085c1067,1094
< # RETURN Raで呼び出し元のメソッドに戻る。Raが戻り値になる
< when :RETURN
< if @cp == 0 then
< # return @stack[@sp + getarg_a(cop)]
< # return @stack[sp + lpl.getarg_a(cop)]
< return @stack[imem.getarg_a(rg['cop'])]
< else
< # @stack[@sp] = @stack[@sp + getarg_a(cop)]
< # @stack[sp] = @stack[sp + lpl.getarg_a(cop)]
< @stack[0] = @stack[imem.getarg_a(rg['cop'])]
< @cp -= 1
< # @irep = @callinfo[@cp]
< irep = @callinfo[@cp]
< # @irepid = @irep.id
< @irepid = irep.id
< @cp -= 1
< # @pc = @callinfo[@cp]
< # pc = @callinfo[@cp] # - 1
< rg['pc', -1] = @callinfo[@cp] # - 1
< @cp -= 1
< # @sp = @callinfo[@cp]
< # sp = @callinfo[@cp]
< # rg['sp'] = @callinfo[@cp]
< rg['sp', -1] = @callinfo[@cp]
---
> # RETURN Raで呼び出し元のメソッドに戻る。Raが戻り値になる
> when :RETURN
> if @cp == 0 then
> # return @stack[@sp + getarg_a(cop)]
> # return @stack[sp + lpl.getarg_a(cop)]
> return @stack[imem.getarg_a(rg['cop'])]
> else
> # @stack[@sp] = @stack[@sp + getarg_a(cop)]
> # @stack[sp] = @stack[sp + lpl.getarg_a(cop)]
> @stack[0] = @stack[imem.getarg_a(rg['cop'])]
> @cp -= 1
> # @irep = @callinfo[@cp]
> irep = @callinfo[@cp]
> # @irepid = @irep.id
> @irepid = irep.id
> @cp -= 1
> # @pc = @callinfo[@cp]
> # pc = @callinfo[@cp] - 1
> rg['pc', -1] = @callinfo[@cp] # - 1
> @cp -= 1
> # @sp = @callinfo[@cp]
> # sp = @callinfo[@cp]
> # rg['sp'] = @callinfo[@cp]
> rg['sp', -1] = @callinfo[@cp]
> end
> # else
> # printf("Unkown code %s \n", OPTABLE_SYM[get_opcode(cop)])
> # printf("Unkown code %s \n", OPTABLE_SYM[imem.get_opcode(cop)])
1087,1089d1095
< # else
< # printf("Unkown code %s \n", OPTABLE_SYM[get_opcode(cop)])
< # printf("Unkown code %s \n", OPTABLE_SYM[imem.get_opcode(cop)])
1091a1098
> rg['ctr', 1] -= 1 if 0 < rg['ctr', 1]
1093a1101,1102
> # rg['ctr', 1] -= 1 if flg[0]
>
1102,1103c1111,1112
<
< rg['ctr', 1] *= -1 # kakezan
---
> @pc = rg['pc']
> # rg['ctr', 1] *= -1 # kakezan
1114d1122
< # Slp.new.slp 0
1117d1124
< # Slp.new.slp
--
YAMAGUTIseisei ( str_h__namae = { :sei => "山口" , :mei => "青星" } )
http://hello.to/seisei/ mailto:seisei@.68..net tel:081-70-5152-1104
heiwa furiisekkusu 1tu
[toc] | [prev] | [next] | [standalone]
| From | YAMAGUTIseisei <seisei@x68k.net> |
|---|---|
| Date | 2017-12-31 12:57 +0000 |
| Subject | jit-1_-_github__ysei~mruby-meta-circular-heiretu_-_nightly_-_2_0_1_7_1_2_3_1__1321710200.rb |
| Message-ID | <5A48DEAC.1030603@x68k.net> |
| In reply to | #3 |
patch -e
942c
# print "#{rg['pc'].to_xeh} #{rg['sym']} #{rg['cop'].to_xeh}\n"
lpl.verb "#{rg['pc'].to_xeh} #{rg['sym']} #{rg['cop'].to_xeh}"
.
924d
842,843c
# when 'th' then fv = (fvl.delete_at(1) || fvl[0]).(oi) # c
when 'th' then fv = fvl[-1].(oi); fvl.delete_at(1) # c
.
831c
(oi <=> wd = fv.width) + 1 >> 1]},
.
827,829c
# fvl = [->(oi) {th += [[fv[oi] && imem.ta(fv[oi], cop)], []][ # l c
# ((wd = fv.width) <=> oi) >> 1]},
# ->(oi) {[fv[oi] = th[oi] = (imem.ta(fv[oi], cop)), []]}] # .lazy # l c
.
821c
fml = imem.fml('th', sym) || (
# printf("Unkown code %s \n", OPTABLE_SYM[imem.get_opcode(cop)])
pl.verb("Unkown code #{sym} ") # .to_s
# return nil
# raise
)
.
814c
# pc, sp, cop, sym = [rg['pc'], rg['sp'], rg['cop'], rg['sym']]
pc, sp, cop, sym = rg.to_ra('pc', 'sp', 'cop', 'sym')
.
806,809c
# pl[i_th] = lpl.pl_eg(pc, 'th')
# }
# }
# end
.
802,803c
# flg, pl = fls2(pc, pl)
# Fiber.yield(flg)
.
797,800c
# Fiber.new {
# loop {
.
795c
# pl = lpl.pl_g(pc)
.
789,793c
# def fls(pc) ###
# lpl = @pl
# i_th = lpl.affil('th', ?i) # q
.
785,786c
Fiber.yield(flg.all?) ##
} ##
} ##
.
782c
# return([! flg.include?(false), pl]) ###
.
780c
# print "#{(pc - 1).to_xeh} #{sym} #{rs[1]} #{rs[0]}\n"
lpl.verb "#{(pc - 1).to_xeh} #{sym} #{rs[1]} #{rs[0]}"
.
778a
rs = [r1.to_xeh, r0.to_xeh]
.
765,769c
Fiber.new { ##
loop { ##
pl = lpl.pl_g(pc) ##
sp ||= s.sp(pl[i_sp][0]) ##
# sp = s.sp(pl[i_sp][0]) ###
.
761c
# rs[0] = r1.to_xeh
},
.
759c
# rs[1] = r0.to_xeh
},
.
757d
754d
751c
# rs = [r1.to_xeh, r0.to_xeh]
},
.
749c
# r = if r1 <= sz && plr[r1].nil?.! then plr[r1] else lm.(isr0, r1) end # c
r = r1 <= sz && plr[r1] || lm.(isr0, r1) # c
.
745d
740d
719,722c
def fls(pc) ##
.
717c
# def fls2(pc, pl = []) ###
.
711d
708d
701c
# ENVary.new(0).plm(pc)
Pl.new.plm(pc)
.
674,675c
# thini = [false, 0]
# @pl = ENVary.new(rmth + 1, [thini], [], [])
@pl = ENVary.new
.
671c
# rmth = @@rmth
.
651c
# @@rmth = 39
@@rmth = RMTH
.
640c
class Rg # higokan ? mruby-thread:410200
.
637a
def to_ra(*a)
r = []
a.each { |v| r<< self[v]} # p
r
end
.
555,556c
# class Pl < ENVary
# include M__Pl
.
551,552d
548c
#### GC.start # g
.
513,514c
# f && idx += (mx <=> idx) + 1 >> 1 ##
f && idx -= (idx <=> mx) >> 1 ##
.
505a
# self.pl_es(pc, ['th', th])
.
498,501c
th[idx] = s_id(th[idx], pc - 1)
#### th[idx] = s_id(th[idx], pc - 1) if ckth(th[idx], 0) # fuguai taisaku
.
480,484c
# opc, op = a
# case opc when Numeric then true end || (
#print "#{pc.to_xeh} #{opc} #{op.to_xeh}\n")
# (imem = @@Imem).mcall(opc, op) || op
a, op = a
case a when Numeric then true end || (
# print "#{pc.to_xeh} #{a} #{op.to_xeh}\n")
verb "#{pc.to_xeh} #{a} #{op.to_xeh}")
(imem = @@Imem).mcall(a, op) || op
# (imem = @@Imem).send(opc, op) || op
.
468,474c
## v.kind_of?(Array) ? __send__(a, pc) : a # unwork ( thread ? )
# knid(a, :Array) ? __method__(a, pc) : a
case a when Array then __method__(a, pc) else a end
## knid(a, :Array) ? __callee__(a, pc) : a # unwork ( thread ? )
# case a when Array then s_id(a, pc) else a end
.
466c
# ([] == a || case a when Array then true end.!) && (return a) # t # higokan mruby:70410200 monami-ya.mrb:60510200
.
464c
# ([] == a || ! knid(a, :Array)) && return(a) # t # higokan mruby:70410200 monami-ya.mrb:60510200
.
462c
def verb(s)
@@m.lock
print s << "\n"
@@m.unlock
end
# private
end
# module M__Pl # higokan ? mruby 70410200
class Pl < ENVary
def initialize; end
.
458c
# 0 == lf && break
0 == md >> bfsz && break
.
456c
# lf = (md >>= bfsz) >> bfsz
md >>= bfsz
.
430,434d
421,424d
403,410d
393,399c
# if 0 == n
# @@Plmg.(pl_g(-1), lpl[n][1]) # c
# else
# @@Plmg.(pl_g(-1), lpl[n]) # c
# end
# @@Plmg.(pl_g(-1), 0 == n ? lpl[n][1] : lpl[n]) # c
@@Plmg.(@@pl0i, 0 == n ? lpl[n][1] : lpl[n]) # c
.
390a
def ref_pl0i; @@pl0i = pl_g(-1) end
.
374c
# self[n] = 0 == n ? [pl_g(-1), pl] : pl
self[n] = 0 == n ? [@@pl0i, pl] : pl
.
358a
else
# case pl when Array then else pl = @@plini end # higokan ? mruby 70410200
# case pl when Array then true end || pl = @@plini # higokan ? mruby 70410200
unless knid(pl, :Array) then pl = @@plini end
.
356c
# pl = pl[self.idx0(n)]
pl = pl[idx0(n)]
.
353c
# pl = self[self.idx0(n, 0)]
pl = self[idx0(n, 0)]
.
316c
# ploc(n) { |a| JSON::parse(ENV[@@idb + a[0]])}
# ploc(n) { |a| JSON::parse(ENV[@@idb + a[0]] || 'null')}
# ploc(n) { |a| JSON::parse((a = ENV[@@idb + a[0]]) && '[]' == (a[0] + a[-1])) ? a : 'null'))}
ploc(n) { |a| (a = ENV[@@idb + a[0]]).nil? ? a :
if '[]' == (a[0] + a[-1]) then JSON::parse(a) else a end} # hoken
.
279,280c
# self[0] = [['th', 'sym', 'ctr'],
# self[0] = [@@pl0i = pl0i, [[thini], 0, [-1]]]
self[0] = [pl0i, [[thini], 0, [-1]]]
ref_pl0i
.
276c
# 3080410200 : 5x2 ok ( gc ) : monami-ya.mrb 8270410200 813e2af8 # http://www.monami-ya.jp/
.
272a
pl0i = ['th', 'sym', 'ctr']
.
264c
n = RMTH + 1
a = @@plini
# (0 .. n).each{ |i|
0.step(n) { |i|
.
258,262c
# if 1 > n
## @n = -n
## return self[@n]
# return
# end
.
256c
# n = a.shift
.
252c
# def initialize(*a)
def initialize
.
249a
@@thini = [false, 0]
@@plini = [[@@thini], [], []]
@@pl0i = nil
.
247c
# (Time.now.to_f - 0x3fffffff.to_f << 0x10).to_s.split('.')[0][-8..-1].to_xeh
.
237a
@@m = Mutex.new
.
219,220d
183,207c
# def ta(l, cop) [l.shift || 'getarg_a', l.shift || cop][0 .. l.pop || 1] end
def ta(l, cop) [l.shift || :getarg_a, l.shift || cop][0 .. l.pop || 1] end
.
108,126c
@fml = @@fml
end
def fml(lb, sym)
@fml.(lb).assoc(sym) # || ( # c
## printf("Unkown code %s \n", OPTABLE_SYM[imem.get_opcode(cop)])
## print("Unkown code #{sym} \n") # .to_s
# return nil
## raise
# )
.
106a
@@fml = ->(lb) { [ # l
['st',
[:MOVE, :s__sr0], [:LOADL, :s__i_pool_r0],
[:LOADI, :s__r0 ], [:LOADSYM, :s__i_syms_r0],
[:LOADSELF, :s__sr0], [:LOADT, :s__r0],
[:ADD, :s__sr01, :+], [:ADDI, :s__r0, :+],
[:SUB, :s__sr01, :-], [:SUBI, :s__r0, :-],
[:MUL, :s__sr01, :*], [:DIV, :s__r01, :/],
[:EQ, :s__r1_eq_sr01]],
['th',
['bt', ['sym', true, 'th', true], ['sym', false, 'th', true]],
[:MOVE, [[:getarg_b ], []]], [:LOADL, [[:getarg_bx ], []]],
[:LOADI, [[:getarg_sbx ], []]], [:LOADSYM, [[:getarg_bx ], []]],
[:LOADSELF, [[:mk_opcode, 0], []]], [:LOADT, [[true, '', 0], []]], # mk_opcode 0
[:ADD, [[] ]], [:ADDI, [[:getarg_c ], []]],
[:SUB, [[] ]], [:SUBI, [[:getarg_c ], []]],
[:MUL, [[]]], [:DIV, [[]]], [:EQ, [[]]]
]].assoc(lb) # .lazy
}
.
92c
# @@slp = 0.00001
@@slp = 0.000005
.
90c
## @@slp = 10 # conf.gem :github => 'kimushu/mruby-sleep' # msleep usleep
# @@slp = 5 # conf.gem :github => 'kimushu/mruby-sleep' # msleep usleep
.
55,59c
# def sgp # (i)
# self + self.abs >> 1
# end
def sgp; self + self.abs >> 1 end
.
51,53c
# def to_xeh # unwork mruby 60410200 # mrblib/
# self.to_i.to_s(0x10).reverse
# end
.
42c
end # .!.!
end
def to_xeh
case self when Numeric then self.to_i.to_s(0x10).reverse else ?- end
.
37,38c
# ) << ?i == k ? '' : ?. # q 2
) << :Fixnum == k.to_sym ? '' : ?. # q
.
31,32c
# case k = k.to_s[1]
case k.to_s[1] # .to_sym[1] # higokan mruby 70410200
.
2a
# RMTH = 39
RMTH = 7
.
--
YAMAGUTIseisei ( str_h__namae = { :sei => "山口" , :mei => "青星" } )
http://hello.to/seisei/ mailto:seisei@.68..net tel:081-70-5152-1104
heiwa furiisekkusu 1tu
[toc] | [prev] | [next] | [standalone]
| From | YAMAGUTIseisei <seisei@hello.to> |
|---|---|
| Date | 2018-02-04 10:52 +0000 |
| Subject | jit-1_-_github__ysei~mruby-meta-circular-heiretu_-_nightly_-_2_0_1_8_0_2_0_4__4020810200.rb |
| Message-ID | <5A76E605.8090801@hello.to> |
| In reply to | #4 |
-e
1157,1158c
# ensure
# @rmt.kill # nil ( monami-ya.mrb 60510200 ) , Assertion failed: ((obj)->tt != MRB_TT_FREE), function mrb_gc_mark, file src/gc.c, line 591. ( mruby 70410200 )
# @rmt.join # fuyou
.
1155a
# }
.
1153c
# @@slp.slp
sl.slp
.
1151c
# @@slp.slp 0
sl.slp 0
.
1100c
# return @stack[imem.getarg_a(rg['cop'])]
break @stack[imem.getarg_a(rg['cop'])]
.
1097a
# @rmt.kill
# @rmt.join # fuyou
.
1070c
# @callinfo[@cp ... @cp += 3] = [rg['sp'], rg['pc'], irep]
@callinfo[(@cp += 3) - 3, 3] = [rg['sp'], rg['pc'], irep]
.
969d
954a
# loop { # higokan ? monami-ya.mrb:60510200 mruby:70410200
.
936a
sl = @@slp
.
909,921d
904c
# Fiber.yield(thi += 1) ##
Fiber.yield(thi + 1) ##
.
902d
896,897c
# @@slp.slp 0
## @@slp.slp
sl.slp 0
# sl.slp
.
892,894c
if 0 == thi
pl.ctr_s(pc1)
elsif wd <= thi
thi = -1
.
890c
pl.pl_es(pc1, opa)
# pl.ctr_s(pc1) if 0 == thi
#
# if 0 != thi && wd <= thi then thi = -1 end
.
888c
# opa = opg.(thi) # c
# opa.push(k_sp, [sp]) if 0 == thi
opa = opg.(thi) + [[k_sp, [sp]], []][thi <=> 0] # c
.
883,886c
# loop { ##
# 7.times { |thi|
# 0.upto(NaN) { |thi| # higokan ? mruby 70410200
[1].cycle.with_index { |t, thi|
# if ! pl.ctr_r || 0 != thi # && thi != thio
# if 0 > pl.ctr_r || 0 != thi # && thi != thio
.
879,880c
# thi = 0 ##
.
870,871c
# when 'th' then fv = fvl[-1].(oi); fvl.delete_at(1) # c
when 'th'
fv = fvl[-1].(oi); fvl.delete_at(-(((fvl.size <=> 1) << 1) - 1)) # c
.
842a
sl = @@slp
.
815,832d
804,805c
# lpl.verb "#{(pc - 1).to_xeh} #{sym} #{rs[1]} #{rs[0]}"
lpl.verb "#{(pc - 1).to_xeh} #{sym} #{r[0].to_xeh} #{r[1].to_xeh}"
.
802c
# rs = [r1.to_xeh, r0.to_xeh]
.
800c
# sz = plr.size
.
797c
# pr, sy = imem.fml('st', sym)[1 .. -1]
pr || (pr, sy = imem.fml('st', sym)[1 .. -1])
.
783,784c
}, # rs[0] = r1.to_xeh
.
776,781c
# ((sw = sp + sz) + 0xe).step(sw, -1) { # higokan mruby 70410200 # bbab89e7 5211410200 tmtm
if 0 == s.size
# @@slp.slp 0
sl.slp 0
else
sz = plr.size
mx = sz - 1 + ap = ap - (ap >> 2) & 0x3f
s.size < mx && mx = s.size
# (sz .. mx - 1).each { |n| plr<< lm.(isr0, s[n])} # p c
(sz .. mx).each { |n| plr<< lm.(isr0, s[n])} # p c
end
}, # rs[1] = r0.to_xeh
.
773,774c
}, # rs = [r1.to_xeh, r0.to_xeh]
.
771c
# r = r1 <= sz && plr[r1] || lm.(isr0, r1) # c
r = plr[r1] || lm.(isr0, r1) # c
# r = (plr[r1] if r1 <= sz) || lm.(isr0, r1) # c
.
766a
# lm = ->(isr0, r1) {imem.send(pr, *isr0, r1)} # l
.
762c
# sz = 4; ap = 1 << sz
sz = 4; ap = (1 << sz) + sz + 1
# sz -= 2; ap = (ap << sz) + ap + (1 << (sz - 1)) >> sz
.
760c
# rs = [?-, ?-] # q 2
.
751c
sl = @@slp
.
728d
708,710c
GC.disable # g # gene gc enable : mruby 6170410200 d17506c1
.
697,702d
686a
# @pla = Array.new($pcmax)
# $pltini.call()
@pl = ENVary.new
@rmt = wkth
.
659,661c
# r = []
# a.each { |v| r<< self[v]} # p
# r
a.map { |v| self[v]}
.
614a
# [@s[@p + a[0].sgp] = a[1]], @@m.unlock][0]
.
606a
# [@s[@p + a[0].sgp], @@m.unlock][0]
.
594c
# @p = a[0] unless a.empty?
a.empty? || @p = a[0]
.
568c
# @@slp.slp
sl.slp
.
560,561d
557c
fpl<< plw(pc) if flg[0] # p
.
554c
# if flg[0].! || (apc.empty?.! && (pc = apc.shift) >= 0)
if flg[0].! || (apc.empty?.! && 0 <= pc = apc.shift)
.
549d
545d
542a
sl = @@slp
.
524,534c
# if f = ckth(th[mx], 3)
##### if f = (th[idx].nil?.! && ckth(th[mx], 3)) # fuguai taisaku
# pl_es(pc, ['th', th])
## idx = idx == mx ? 0 : idx + 1 ###
# flg = true ##
# end
# @@slp.slp 0
## @@slp.slp(0, 4096)
# sl.slp 0
## sl.slp(0, 4096)
# Fiber.yield(flg && idx >= mx) ##
Fiber.yield([if f = ckth(th[mx], 3)
#### Fiber.yield([if f = (th[idx].nil?.! && ckth(th[mx], 3)) # fuguai taisaku
pl_es(pc, ['th', th])
true
end,
# @@slp.slp(0)
sl.slp(0)
][0] && idx >= mx)
.
512a
sl = @@slp
.
503d
498,500d
496c
# GC.start # g
.
487,491c
## v.kind_of?(Array) ? # unwork ( thread ? )
# knid(a, :Array) ? __method__(a, pc) : a
case a when Array then __method__(a, pc) else a end
.
471c
# print s << "\n"
print s
.
469a
s <<= "\n"
.
466c
# end == true
end.!.!
.
464d
461d
440,443d
426,428d
415,421c
# @@Plmg.(@@pl0i, 0 == n ? lpl[n][1] : lpl[n]) # c
(@@plmg ||= ->(pi, pv) {pi.map { |v| [v, pv.shift]}}).( # l # c
@@pl0i, 0 == n ? lpl[n][1] : lpl[n])
.
413c
# @@Plmg = ->(pi, pv) {pi.map { |v| [v, pv.shift]}} # l
@@plmg = nil
.
408c
ary.each_slice(2) { |k, v| pl[self.affil(k, ?i)] = v} # .shift(2) higokan mruby 70410200 # q
.
371,372c
# pl = pl[idx0(n)]
pl = pl[@@Idx0.(n)]
.
368c
# pl = self[idx0(n, 0)]
pl = self[@@Idx0.(n, 0)] # c
.
365c
# sleep 0; GC.start; sleep 0 # g
.
363a
@@Idx0 = ->(n = 0, t = 1) {n - ((n <=> t) >> 1)} # l
.
350,361c
# def idx0(n = 0, t = 1)
## t > n ? n + 1 : n
## n + (t > n ? 1 : 0)
## n + [false, true].index(t > n)
## n + (((t > n) && 1) || 0)
## n + (t > n && 1 || 0)
## n + ((t <=> n) & 1)[0] # higokan mruby 70410200
## n + (((t <=> n) + 1) & 2)[1] # higokan mruby 70410200
## n + ((((t <=> n) + 1) & 2) >> 1)
## n + ((t <=> n) + 1 >> 1)
# n - ((n <=> t) >> 1)
# end
.
339,341c
# (0 .. @sz).each { |i| ary[i] = JSON::parse(ENV[@@idb] + n)}
.
327,330c
# ploc(n) { |a| (a = ENV[@@idb + a[0]]).nil? ? a :
# if '[]' == (a[0] + a[-1]) then JSON::parse(a) else a end} # hoken
ploc(n) { |a| (a = ENV[@@idb + a[0]]
# ).nil? ? a : if '[]' == (a[0] + a[-1]) then JSON::parse(a) else a end} # hoken
) && ('[]' == (a[0] << a[-1]) && a = JSON::parse(a)); a} # hoken
.
321a
.
312d
302a
# (s ||= @@slp).slp 0
.
295a
# s = nil
.
293,294d
283c
# 3080410200 : 5x2 ok ( gc ) : monami-ya.mrb 8270410200 813e2af8 # www.monami-ya.jp
.
269d
258,266d
216a
# def method_missing(*a) self.send(?s + a[0], *a[1 .. -1]) end # higokan mruby 70410200
def method_missing(*a) self.send(?s + a[0].to_s, *a[1 .. -1]) end
.
203,204c
# def ta(l, cop) [l.shift || :getarg_a, l.shift || cop][0 .. l.pop || 1] end
def ta(l, cop) [l.shift || :getarg_a, l.shift || cop][0 .. l[-1] || 1] end
.
201c
# @stack[r1] = val
.
141,146c
# @fml.(lb).assoc(sym) # c
@@fml.(lb).assoc(sym) # c
.
136,138c
# def initialize
## @fml = @@fml
# end
.
127,128c
[:MOVE, [[:getarg_b ], []]], [:LOADL, [[:getarg_bx ], []]],
[:LOADI, [[:getarg_sbx ], []]], [:LOADSYM, [[:getarg_bx ], []]],
.
118,124c
# [:MOVE, :s__sr0], [:LOADL, :s__i_pool_r0],
# [:LOADI, :s__r0 ], [:LOADSYM, :s__i_syms_r0],
# [:LOADSELF, :s__sr0], [:LOADT, :s__r0],
# [:ADD, :s__sr01, :+], [:ADDI, :s__r0, :+],
# [:SUB, :s__sr01, :-], [:SUBI, :s__r0, :-],
# [:MUL, :s__sr01, :*], [:DIV, :s__r01, :/],
# [:EQ, :s__r1_eq_sr01]],
[:MOVE, :__sr0], [:LOADL, :__i_pool_r0],
[:LOADI, :__r0 ], [:LOADSYM, :__i_syms_r0],
[:LOADSELF, :__sr0], [:LOADT, :__r0],
[:ADD, :__sr01, :+], [:ADDI, :__r0, :+],
[:SUB, :__sr01, :-], [:SUBI, :__r0, :-],
[:MUL, :__sr01, :*], [:DIV, :__sr01, :/],
[:EQ, :__r1_eq_sr01]],
.
105a
# (self.size << 4).times {
.
103,104c
# (r - 1).times {usleep 0}; GC.start; r.times {usleep t} # g # conf.gem :github => 'kimushu/mruby-sleep' # msleep usleep
(r - 1).times {sleep 0}; GC.start; r.times {sleep t} # g
.
99,100c
# @@slp = 100 # usleep # hayai masin
.
97d
50c
# case self when Numeric then self.to_i.to_s(0x10).reverse else ?- end
case self when Numeric then self.to_s(0x10).reverse else ?- end
.
35,46c
# case k.to_s[1] # .to_sym[1] # higokan mruby 70410200
# when ?r then '[]' == vs[0] << vs[-1] # , Array # q
# when ?u, ?i, ?l # , Numeric, Fixnum, Float # q 3
# s = ( # Fixnum
# @@ks ||= (0 .. 9).to_a.join << ?- # * '' higokan mruby 70410200 # ?0.upto # higokan mruby 70410200 # 7221410200 6ccae658 suzukaze # q
# ) << :Fixnum == k.to_sym ? '' : ?. # q
# vs.all? { |c| s.include?(c)}
# when ?y then vs.to_sym == v # Symbol # q
# when ?t then vs == v # String # q
# end # .!.!
.
33c
# vs = v.to_s
.
29,31c
# return v.kind_of?(Object.const_get k) # if 0.kind_of?(Numeric) # super
return v.kind_of?(Kernel.const_get k) # if 0.kind_of?(Numeric) # super
# return v.kind_of?(k.constantize) # if 0.kind_of?(Numeric) # RoR # super
.
27c
# @@ks = nil
.
--
YAMAGUTIseisei ( str_h__namae = { :sei => "山口" , :mei => "青星" } )
http://hello.to/seisei/ mailto:seisei@.68..net tel:081-70-5152-1104
heiwa furiisekkusu 1tu
[toc] | [prev] | [next] | [standalone]
| From | YAMAGUTIseisei <seisei@hello.to> |
|---|---|
| Date | 2018-04-01 13:24 +0000 |
| Subject | jit-1_-_github__ysei~mruby-meta-circular-heiretu_-_nightly_-_2_0_1_8_0_4_0_1__1040810200.rb |
| Message-ID | <5AC0DD87.5060605@hello.to> |
| In reply to | #5 |
e
./build/mrbgems/mruby-process/src/process.c
357a
mrb_define_method(mrb, mrb->kernel_module, "usleep", mrb_ker_usleep, MRB_ARGS_REQ(1)); // kimushu/mruby-sleep
// mrb_define_method(mrb, mrb->kernel_module, "msleep", mrb_ker_msleep, MRB_ARGS_REQ(1)); // kimushu/mruby-sleep
.
191a
static mrb_value
mrb_ker_usleep(mrb_state *mrb, mrb_value self) // kimushu/mruby-sleep
{
mrb_int usecs;
mrb_get_args(mrb, "i", &usecs);
usleep(usecs);
return mrb_nil_value();
}
/*
static mrb_value
mrb_ker_msleep(mrb_state *mrb, mrb_value self) // kimushu/mruby-sleep usleep yobi
{
mrb_int msecs;
mrb_get_args(mrb, "i", &msecs);
// for (; msecs > 0; --msecs) {
// usleep(1000);
// }
// return mrb_nil_value();
// IIJ , Tomoyuki Sahara , YAMAGUTIseisei
time_t beg; // , end;
struct timeval tv;
beg = time(0);
tv.tv_sec = 0; // fuyou ?
tv.tv_usec = msecs;
if (0 > select(0, 0, 0, 0, &tv)) mrb_sys_fail(mrb,
"mrb_ker_msleep failed"
// "mrb_f_msleep failed"
);
return mrb_fixnum_value(time(0) - beg); // float ?
}
*/
.
mruby-meta-circular-heiretu/mrblib/irep.rb
53a
# >> 1 # monami-ya.mrb
.
30a
#class Kernel
# def const_get(k)
# super(k.size > 1 ? k : [[?r, :Array], [?u, :Numeric], [?i, :Fixnum], # q 3
# [?l, :Float], [?y, :Symbol], [?t, :String] # q 3
# ].assoc(k)[1]
# )
# end
#end
.
27c
# ?i == m ? self[0][0].index(k) : self[m.afl(k, ?i)] # q 2
## ?i != m ? self[m.__method__(k, ?i)] : self[0].index(self[0].assoc(k)) # q 2 # higokan mruby 70410200
?i != m ? self[m.afl( k, ?i)] : self[0].index(self[0].assoc(k)) # q 2
# ?i != m ? self[m.afl( k, ?i)] : loop {self[0].index(self[0].assoc(k) && break)} # self.index(idx) # fuguai taisaku # q 2
.
25c
def afl(k, m = self)
.
21c
# alias_method hgt
# def width
def hgt
.
11,13c
# def to_xeh
# self.to_i.to_s(0x10).reverse
# end
.
3,6c
# def to_i_from(k, i = 0) # unwork ? ( thread ? )
## self.is_a?(k) ? i + self.to_i : self # unwork ? ( thread ? )
## Class::k == self.class ? i + self.to_i : self # unwork ? ( thread ? )
# k.to_s == self.class.to_s ? i + self.to_i : self # unwork ? ( thread ? )
# end
def to_xeh
case self when Numeric then self.to_s(0x10).reverse else ?- end # q
# return ?- unless self.is_a?(Numeric) # q # ok
# self.to_s(0x10).reverse
.
1a
# gcc -Os
# class GC # monami-ya.mrb # http://www.monami-ya.jp/
# end
# def GC.start() end
# def GC.disable() end
.
mruby-meta-circular-heiretu/sample/jit-1.rb
1146c
end # fl.empty?
.
1144d
1141d
1139d
1129a
pco = rg['pc']
.
1128c
#### pco = rg.shift('pc')
rg['pc'] = rg['pc', 1]
.
1125c
# rg['pc', -1] += 1
.
1118c
# if [true][rg['thi']]
if ise.empty?
.
1115a
end
if fl.empty? # || ! ise.empty?
.
1102,1103c
# pc = @callinfo[@cp]
# rg['pc', -1] = @callinfo[@cp]
rg['pc', -1] = @callinfo[@cp] + 1
.
1089d
1084,1086d
1063c
rg['pc', -1] = 0 # -1
.
1055,1056c
# @callinfo[(@cp += 3) - 3, 3] = [rg['sp'], rg['pc'], irep]
@callinfo[(@cp += 3) - 3, 3] = [@sp, @pc, @irep]
.
1032d
1026c
rg['pc', -1] = rg['pc'] + imem.getarg_sbx(rg['cop']) # - 1
.
1015c
rg['pc', -1] = rg['pc'] + imem.getarg_sbx(rg['cop']) # - 1
.
1006c
rg['pc', -1] = rg['pc'] + imem.getarg_sbx(rg['cop']) # - 1
.
997a
# case sym.to_sym
.
990c
# if 0 == rg['ctr', 1]
if fl.empty?
rg['ctr', 1] = rg['ctr', 1].abs
.
985c
# rg.push('pc', rg['pc'])
rg.push('pc', rg['pc'] + 1)
.
983c
else
if fl.empty? || ! ise.empty?
.
976,981c
# if 0 <= rg['ctr', 1] && 0 == rg['thi']
if 0 <= rg['ctr', 1] && ! ise.empty?
# rg.push('pc', rg['pc']) ##
# rg.push('sp', rg['sp']) ##
# rg.push('pc', rg['pc', -1])
rg.push('pc', rg['pc', -1] + 1)
rg.push('sp', rg['sp', -1])
# rg['ctr', 1] += 1
end
# rg['ctr', 1] += 1 if 0 == rg['thi']
.
971,974c
# thi, th = iset(sym, cop, sp, pc, thi, th) ###
# ise ||= iset(rg)
# [true][rg['thi'] = ise.resume] && ise = nil ##
# [true][thi = (ise ||= iset(rg)).resume] && ise = nil ## # higokan ? mruby 70410200
# ise<< iset(rg) if 0 == rg['thi'] # p ##
# ise<< iset(rg) if ise.empty? # p
ise<< iset(rg) if 0 == fl.size + ise.size # p
# rg['thi'] = ise.resume ##
# ise.reject! { |fis| [true][fis.resume]}
ise.reject! { |fis| [true][rg['thi'] = fis.resume]}
.
968,969c
# if 'J' != rg['sym'][0] # higokan mruby 70410200
if ?J != rg['sym'].to_s[0] && ! [:ENTER, :SEND, :RETURN, :NOP].include?(rg['sym']) # q
# if ?J != sym = rg.shift('sym').to_s[0] && ! [:ENTER, :SEND, :RETURN, :NOP].include?(rg['sym']) # q
.
966c
# if flg[0] || 0 != rg['thi']
# if fl.empty? || 0 != rg['thi']
# if fl.empty? || ! ise.empty?
.
964c
# fl && (flg[0] = fl.resume) && fl = nil ##
fl[0] && fl[0].resume && fl = (fl[1 .. -1] || [])
.
962d
957d
954a
# fl ||= [fls(rg['pc'])][@flag[0] <=> 0] ##
# fl = fls(rg['pc']) ##
# fl += [[fls(rg['pc'])], []][@flag[0] <=> 0] ##
fl += [[fls(pco)], []][@flag[0] <=> 0] ##
end
.
951,953c
c, s = opf(irep, rg['pc'])
rg.push('cop', c)
rg.push('sym', s)
.
945,949c
# rg['ctr', 1] *= -1 # kakezan
# end
if 0 <= rg['ctr', 1]
# sp = @sp
@stack.sp(rg['sp'] = @sp) # + 0
# @stack.sp(rg.push('sp', @sp) # + 0
.
943c
# if 0 > rg['ctr', 1]
.
941c
# if flg[0]
if fl.empty?
.
936a
pco = rg['pc']
.
934a
fl = []
ise = []
.
932c
# flg = Array.new(@@rmth + 1) {true}
.
928c
i_th = lpl.afl('th', ?i) # q
.
890,891d
886c
elsif ht <= thi
.
882c
# if 0 != thi && ht <= thi then thi = -1 end
.
857c
# fv = fvl[-1].(oi); fvl.delete_at(-(((fvl.size <=> 1) << 1) - 1)) # c
fv = fvl[-1].(oi); fvl.delete_at(((1 <=> fvl.size) << 1) + 1) # c
.
855c
# when 'th' then fv = (fvl.delete_at(1) || fvl[0]).(oi) # c
.
844c
# (oi <=> ht = fv.hgt) + 1 >> 1]},
((ht = fv.hgt) <=> oi) >> 1]},
.
840,842d
838c
ht = 1
.
820d
816a
@@fls2 = nil
def fls(pc)
pc = ~ pc
# lpl = @pl
# i_th = lpl.afl('th', ?i) # q
# pl = lpl.pl_g(pc)
@@fls2 ||= fls2
Fiber.new {
Fiber.yield(false)
loop {
# flg, pl = fls2(pc, pl)
# Fiber.yield(flg)
# Fiber.yield(fls2(pc)) ####
Fiber.yield(@@fls2.resume(pc))
# Fiber.yield(flg.resume(pc))
0 > pc && pc = ~ pc
# pl[i_th] = lpl.pl_eg(pc, 'th')
}
}
end
.
811,812c
# Fiber.yield(flg.all?) ##
pc = Fiber.yield(flg.all?) ##
.
802d
798d
790a
if 0 > pc
pc = ~ pc
# s = Stack.new; sp = nil; plr = []
# i = @irep #.dup
sp = nil; plr = []
pr = nil
end
.
789c
# Fiber.new { ##
Fiber.new { |pc| ##
.
778,781c
# mx = sz - 1 + ap = ap - (ap >> 2) & 0x3f
# s.size < mx && mx = s.size
# (sz .. mx).each { |n| plr<< lm.(isr0, s[n])} # p c
plr += lm.(isr0, s[sz .. sz - 1 + ap = ap - (ap >> 2) & 0x3f]) # c
.
774d
760,761c
# lm = ->(isr0, r1) {r1 && imem.send(pr, *isr0, r1)} # l
lm = ->(isr0, r1) {imem.send(pr, *isr0, r1)} # l
.
756d
754d
752d
748d
745a
# s = []; sp = nil; plr = []
.
741c
# i_th = lpl.afl('th', ?i) # q
.
736,737c
# def fls2(pc) ##
# def fls(pc) ##
def fls2 ##
.
730,731c
# r = [r, r.map { |v| lpl.ckth(v, 1)}].map { |v| [v[0], v[-1]]}
# [pl[lpl.afl('sym', ?i)].to_sym, *r] # q
[pl[lpl.afl('sym', ?i)].to_sym, # q
*[r, r.map { |v| lpl.ckth(v, 1)}].map { |v| [v[0], v[-1]]}]
.
727c
r = pl[lpl.afl('th', ?i)] # q
.
700,701c
# @plb = @pla.dup.map { |a| a[1] = @pl.afl(a[1], ?i); a} # higokan ? mruby 70410200 # q
@@plb ||= @@pla.map { |a| [a[0], @pl.afl(a[1], ?i)]} # q
.
652,654d
607c
# [@s[a[0] + @p] = a[1]], @@m.unlock][0]
.
604c
# a = @s[@p + a[0].sgp] = a[1]
@s[a[0] + @p] = a[1]
.
597,598c
# [@s[a[0] + @p], @@m.unlock][0]
.
594c
# @s[@p + a[0].sgp]
@s[a[0] + @p]
.
588c
# @p
.
586a
@p = pt
.
584,585c
# a.empty? || @p = a[0]
.
581c
# def sp(*a)
def sp(pt)
.
555,558c
# fpl.reject!.with_index { |v, n| flg[n] = v.resume}
fpl.reject! { |fb| fb.resume}
# end
#### sl.slp
.
547,548c
# fpl<< plw(pc) if flg[0] # p
.
544,545c
# if flg[0].! || (apc.empty?.! && 0 <= pc = apc.shift)
.
539,540c
sl.slp
pc = ctr_g
# apc<< ctr_g if flg[0] # p
fpl<< plw(pc) if pc && 0 <= pc # p
.
537c
# flg = [true]
.
535c
# apc = []
.
525,526c
# ][0] && idx >= mx)
][0] && f2)
# f && idx -= (idx <=> mx) >> 1 ##
f && f2.! && idx += 1 ##
.
523d
520c
# pl_es(pc, ['th', th])
f2 = idx >= mx && pl_es(pc, ['th', th])
.
505,514c
mx = thn.hgt
# mx ||= thn.hgt
.
502c
# th = th[0 .. (mx = thn.hgt)] ####
.
497c
f = nil; mx = nil
# f2 = false
.
492c
# i_th = self.afl('th', ?i) # # higokan mruby 10410200 ( irep.rb ) # q
.
457d
444,451c
# while (0 == 1 & md) == a[(md & bf) >> 1]
## ((a[(md & bf) >> 1] ? 0 : 1) == 1 & md)
## ([true, false][1 & md] == a[(md & bf) >> 1])
# md >>= bfsz
### 0 == lf ? return(false) : (md &= bf if 0 == lf >> bfsz) # ? mruby 70410200
# 0 == md >> bfsz && break
# end.!.!
(0 == 1 & md) == a[(md & bf) >> 1]
.
441d
426c
# pl_es(0, ['ctr', [ctr]])
pl_es(0, ['ctr', ctr])
.
422c
# pl_eg('ctr')[0]
pl_eg('ctr')
.
418c
# [ctr = ctr_r, 0 <= ctr && ctr_s(-ctr)][0]
cta = pl_g(0).afl('ctr', self)
[cta.shift, pl_es(0, ['ctr', cta])][0]
.
408,415c
# def ref_pl0i; @@pl0i = pl_g(-1) end
# @@plmg = nil
# def to_ia(n, lpl = self)
# (@@plmg ||= ->(pi, pv) {pi.map { |v| [v, pv.shift]}}).( # l # c
# @@pl0i, 0 == n ? lpl[n][1] : lpl[n])
# end
.
404c
# ary.each_slice(2) { |k, v| pl[self.afl(k, ?i)] = v} # .shift(2) higokan mruby 70410200 # q
ary.each_slice(2) { |k, v| # .shift(2) higokan mruby 70410200
i_k = self.afl(k, ?i) # q
# 'ctr' == k && case v when Array then true end.! ? pl[i_k]<< v : pl[i_k] = v # p # higokan ? mruby 70410200
'ctr' == k && knid(v, :Array).! ? pl[i_k]<< v : pl[i_k] = v # p
## pl[i_k] = 'ctr' == k ? [v].flatten : v
}
.
402d
395c
pl_g(n).afl(k, self)
.
391c
# self[n] = 0 == n ? pl_g(-1).transpose[0].zip(pl) : pl # higokan mruby 70410200
self[n] = 0 == n ? (@@plmg ||= ->(pi, pv) {pi.map { |v| # l
# v[1] = pv.shift; v}}).(pl_g(-1), pl) : pl # c
[v[0], pv.shift]}}).(pl_g(-1), pl) : pl # c
.
389a
# (@@plmg ||= ->(pi, pv) {pi.map { |v| [v, pv.shift]}}).( # l # c
# @@pl0i, (0 == n && lpl = lpl[0]; lpl[n + (n <=> 0 & 1 ^ 1)]))
.
388a
@@plmg = nil
.
377,385d
374c
# unless knid(pl, :Array) then pl = @@plini end
pl ||= @@plini
.
370a
# (nil == @@fxnm) && @@fxnm = (Float == self.afl('Numeric')[0].class)
# (nil == @@fxnm) && @@fxnm = (Float == self.afl('sym')[0].class)
.
366,369c
# if 1 > n then pl = pl[idx0(n)] end
# if 1 > n
if 0 == n
pl = @@Pldv.(pl) # c
# (nil == @@fxnm) && @@fxnm = (Float == self.afl('ctr')[0].class
.
364c
# pl = self[@@Idx0.(n, 0)] # c
pl = self[@@idx0.(n, 0)] # c
.
362d
360a
.
358c
# @@Idx0 = ->(n = 0, t = 1) {n - ((n <=> t) >> 1)} # l
@@idx0 = nil
@@Pldv = ->(pl) {pl.map { |a| a[1]}} # l
.
322,323d
285c
# ref_pl0i
@@idx0 ||= ->(n = 0, t = 1) {n - ((n <=> t) >> 1)} # l
.
278,283c
# 3080410200 : 5x2 ok ( gc ) : monami-ya.mrb 8270410200 813e2af8 # http://www.monami-ya.jp/
# mruby 20410200 : higokan ? : ary_many
# mruby 70410200 : 4x2 ok , 5x2 ng
# self[0] = [['th', 'sym', 'ctr'], # mruby 20410200 : higokan ? : ary_many
# [[thini], 0, [-1]]] # mruby 70410200 : 4x2 ok , 5x2 ng
# self[0] = [pl0i, [[thini], 0, [-1]]]
# self[0] =
# [['th', [[thini]]], ['sym', [0]], ['ctr', []], ['Numeric', [0]]]
self[0] = [['th', [[thini]]], ['sym', [6309]], ['ctr', []]]
.
274c
# pl0i = ['th', 'sym', 'ctr']
.
265c
# 0.step(n) { |i|
0.step(@@rmth + 1) { |i|
.
263c
# n = RMTH + 1
.
258d
255c
# @@pl0i = nil
.
252a
@@rmth = RMTH
.
218,219c
# def method_missing(*a) self.send(?s + a[0].to_s, *a[1 .. -1]) end
def method_missing(*a)
a[0] = ?s + a[0].to_s
case a[4]
when Array then return a[4].map{ |v| v.nil? ? v : send(*a[0 .. 3], v)}
else send(*a)
end
end
.
116,122d
100,102c
(r - 1).times {usleep 0}; GC.start; r.times {usleep t} # g # conf.gem :github => 'kimushu/mruby-sleep' # msleep usleep
# (r - 1).times {msleep 0}; GC.start; r.times {msleep t} # g # usleep yobi
# (r - 1).times {sleep 0}; GC.start; r.times {sleep t} # g
.
96,98c
@@slp = 5 # conf.gem :github => 'kimushu/mruby-sleep' # msleep usleep
# @@slp = 0xbe # nanosleep()
# @@slp = 0.000005
.
86c
# def hgt # unwork ( thread ? ) # mrblib/
# def height # unwork ( thread ? ) # mrblib/
.
83c
# ?i != m ? self[m.afl(k, ?i)] : self[0][0].index(k) # self.index(idx) # q 2
?i != m ? self[m.afl(k, ?i)] : self[0].index(self[0].assoc(k)) # self.index(idx) # q 2
.
81c
def afl(k, m = self) # unwork ( thread ? ) # mrblib/
.
75a
module M__Range
def +(i = 1)
(i + self.first .. i + self.last - (self.exclude_end? ? 1 : 0))
end
end
class Range
include M__Range
end
.
62,64d
48d
33,44c
# case k.to_s[1] # .to_sym[1] # higokan mruby 70410200
# @@ks ||= (0 .. 9).to_a.join + ?- # * '' higokan mruby 70410200 # ?0.upto # higokan mruby 70410200 # 7221410200 6ccae658 suzukaze # q
.
27d
--
YAMAGUTIseisei ( str_h__namae = { :sei => "山口" , :mei => "青星" } )
http://hello.to/seisei/ mailto:seisei@.68..net tel:081-70-5152-1104
heiwa furiisekkusu 1tu
[toc] | [prev] | [next] | [standalone]
| From | YAMAGUTIseisei <seisei@hello.to> |
|---|---|
| Date | 2018-05-20 12:21 +0000 |
| Subject | jit-1_-_github__ysei~mruby-meta-circular-heiretu_-_nightly_-_2_0_1_8_0_5_2_0__0250810200.rb |
| Message-ID | <5B016832.8070806@hello.to> |
| In reply to | #7 |
1198,1204c
rg.shift 'cop'
# rg.shift 'sym'
# sl.slp 0
sl.slp
.
1193,1196c
rg.shift 'sp'
# @sp = sp
@sp = rg['sp']
@irep = irep
.
1191c
# @pc = pc + 1
# rg['pc', -1] += 1
# rg.delete_at('pc', 1)
rg.shift 'pc'
rg['pc'] = rg['pc', 1]
@pc = rg['pc']
.
1172,1189c
# if fl.empty? # || ! ise.empty?
# rg['ctr', 1] -= 1 if 0 < rg['ctr', 1]
#
# if ise.empty?
#
# @flag[0] >>= 1
## @flag[0] >>= (1 - (thi <=> 0))
.
1169c
else
sl.slp
next
end # fl[0].empty?
.
1167a
# else
# printf("Unkown code %s \n", OPTABLE_SYM[get_opcode(cop)])
# printf("Unkown code %s \n", OPTABLE_SYM[imem.get_opcode(cop)])
.
1138,1166c
# @stack[@sp + a] = @stack[@sp + a].send(mid, *args)
@stack[a] = @stack[a].send(mid, *args)
end
# RETURN Raで呼び出し元のメソッドに戻る。Raが戻り値になる
when :RETURN
if @cp == 0 then
# return @stack[@sp + getarg_a(cop)]
# return @stack[sp + lpl.getarg_a(cop)]
# return @stack[imem.getarg_a(rg['cop'])]
break @stack[imem.getarg_a(rg['cop'])]
else
# @stack[@sp] = @stack[@sp + getarg_a(cop)]
# @stack[sp] = @stack[sp + lpl.getarg_a(cop)]
@stack[0] = @stack[imem.getarg_a(rg['cop'])]
@cp -= 1
# @irep = @callinfo[@cp]
irep = @callinfo[@cp]
# @irepid = @irep.id
@irepid = irep.id
@cp -= 1
# @pc = @callinfo[@cp]
# pc = @callinfo[@cp] # - 1
# rg['pc', -1] = @callinfo[@cp]
rg['pc', -1] = @callinfo[@cp] + 1 # bagu syuusei
@cp -= 1
# @sp = @callinfo[@cp]
# sp = @callinfo[@cp]
# rg['sp'] = @callinfo[@cp]
rg['sp', -1] = @callinfo[@cp]
.
1134,1135c
# next
else
args = []
n.times do |i|
# args.push @stack[@sp + a + i + 1]
args<< @stack[a + i + 1] # p
.
1126,1132c
# @pc = 0
rg['pc', -1] = 0
# @irep = newirep
irep = newirep
# @irepid = @irep.id
@irepid = irep.id
.
1119,1124c
# @sp += a
rg['sp', -1] = rg['sp'] + a
.
1115,1117c
# SEND Ra, mid, anumでRaをレシーバにしてシンボルmidの名前のメソッドを
# 呼び出す。ただし、引数はanum個あり、R(a+1), R(a+2)... R(a+anum)が引数
when :SEND
# a = getarg_a(cop)
# a = lpl.getarg_a(cop)
a = imem.getarg_a(rg['cop'])
# mid = @irep.syms[getarg_b(cop)]
# mid = irep.syms[lpl.getarg_b(cop)]
mid = irep.syms[imem.getarg_b(rg['cop'])]
# n = getarg_c(cop)
# n = lpl.getarg_c(cop)
n = imem.getarg_c(rg['cop'])
# newirep = Irep::get_irep(@stack[@sp + a], mid)
newirep = Irep::get_irep(@stack[a], mid)
if newirep then
# @callinfo[@cp] = @sp
# @cp += 1
# @callinfo[@cp] = @pc
# @cp += 1
# @callinfo[@cp] = @irep
# @cp += 1
# @callinfo[(@cp += 3) - 3, 3] = [@sp, @pc, @irep]
@callinfo[-3 + @cp += 3, 3] = [@sp, @pc, @irep]
.
1091,1113c
# メソッドの先頭で引数のセットアップする命令。面倒なので詳細は省略
when :ENTER
.
1067,1089c
# JMPNOT Ra, nでもしRaがnilかfalseならpcをnだけ増やす。ただし、nは符号付き
when :JMPNOT
# if !@stack[@sp + getarg_a(cop)] then
# if !@stack[sp + lpl.getarg_a(cop)] then
if !@stack[imem.getarg_a(rg['cop'])] then
# @pc = @pc + getarg_sbx(cop)
# pc = pc + lpl.getarg_sbx(cop) - 1
rg['pc', -1] = rg['pc'] + imem.getarg_sbx(rg['cop'])
# next
end
.
1065a
end
.
1064c
rg['pc', -1] = rg['pc'] + imem.getarg_sbx(rg['cop'])
.
1060,1061c
# JMP nでpcをnだけ増やす。ただし、nは符号付き
when :JMP
# @pc = @pc + getarg_sbx(cop)
# pc = pc + lpl.getarg_sbx(cop) - 1
rg['pc', -1] = rg['pc'] + imem.getarg_sbx(rg['cop'])
# next
when :JMPIF
# if @stack[@sp + getarg_a(cop)] then
# if @stack[sp + lpl.getarg_a(cop)] then
if @stack[imem.getarg_a(rg['cop'])] then
.
1057,1058c
# 何もしない
when :NOP
.
1054,1055c
case sym
# case rg.shift('sym')
# case rg['sym']
.
1052a
lpl.plini
# @flag[0] = 2
.
1050,1051c
# if fl.empty?
unless fl[0][0]
rg.push('pc', rg['pc'] + 1)
rg.push('sp', rg['sp'])
rg['ctr', 1] = rg['ctr', 1].abs
# while ! lpl.ctr_c do Slp.new.slp end
.
1045,1048c
if 0 <= rg['ctr', 1]
sym = rg.shift('sym')
# rg.push('pc', rg['pc'] + 1)
# rg.push('sp', rg['sp'])
rg['ctr', 1] *= -1 # kakezan
end
.
1037,1043c
# sym = rg.shift('sym')
.
1034d
1032c
rg.shift('sym')
.
1025,1029d
1014,1023c
# if ?J != rg['sym'].to_s[0] && ! [:ENTER, :SEND, :RETURN, :NOP].include?(rg['sym']) # q
# if rg['sym'] && ?J != rg['sym'][0] # higokan mruby 70410200 # q
if rg['sym'] && ?J != rg['sym'].to_s[0] && ! [:ENTER, :SEND, :RETURN, :NOP].include?(rg['sym']) # q
if 0 <= rg['ctr', 1] # && ! ise.empty?
# thi, th = iset(sym, cop, sp, pc, thi, th) ###
ise<< iset(rg) # p
# ise.reject! { |fis| [true][rg['thi'] = fis.resume]}
# fl<< fls(rg['pc']) # p
fl[0]<< fls(rg['pc']) # p
.
1010,1012c
# flg[0], pl = fls(pc, pl) if 0 == @flag[0] ###
# fl[0] && fl[0].resume && fl = (fl[1 .. -1] || [])
fl[0][0] && fl[0][0].resume && fl[0] = (fl[0][1 .. -1] || [])
.
1006,1008c
# ise.reject! { |fis| rg['thi'] = fis.resume; 0 == rg['thi']}
ise.reject! { |fis| fis.resume}
.
1002,1004c
# lpl.verb "#{rg['pc'].to_xeh} #{rg['sym']} #{rg['cop'].to_xeh}"
lpl.verb "#{rg['pc'].to_xeh} #{rg['sym']} #{rg['cop'].to_xeh}" if rg['sym']
.
998,999c
c, s = opf(irep, rg['pc']) #### if pco != pc
rg.push('cop', c)
rg.push('sym', s)
.
975,996c
if 0 <= rg['ctr', 1]
# sp = @sp
# @stack.sp(rg['sp'] = @sp) # + 0
@stack.sp(rg['sp']) # + 0
.
969,970c
# rg = Rg.new([['ctr', 0], ['thi', 0], ['pc', @sp], ['sp', @sp], ['cop'], ['sym']])
rg = Rg.new([['ctr', 1], ['pc', @sp], ['sp', @sp], ['cop'], ['sym']])
# pco = rg['pc']
.
966c
# fl = []
fl = [[], []]
.
963d
961c
# @flag[0] = 1
.
931c
# Fiber.yield(0 == thi) ##
Fiber.yield(0 > thi) ##
# rg = Fiber.yield(0 > thi) ##
# thi += 1
.
929c
# [thi, th] ###
.
924d
921a
# thi += 1
.
905,915c
# opa = opg.(thi) + [[k_sp, [sp]], []][thi <=> 0] # c
# pl.pl_es(pc1, opa)
pl.pl_es(pc1, opg.(thi) + [[k_sp, [sp]], []][thi <=> 0]) # c
.
889,890c
# fv = fvl[-1].(oi); fvl.delete_at(((1 <=> fvl.size) << 1) + 1) # c
fv = (fvl.delete_at(((1 <=> fvl.size) << 1) + 1) || fvl[0]).(oi) # c
.
887d
875d
857a
# pc1 = 0
.
855c
# def iset2 ##
pc, sp, cop, sym = rg.to_a('pc', 'sp', 'cop', 'sym')
# pc, sp, cop, sym = nil
.
853d
846,847c
@@slp.slp 0
.
842d
840d
838c
# Fiber.yield(false)
.
836a
.
831,835d
821,822d
817,819c
# lpl.verb "#{(pc - 1).to_xeh} #{sym} #{r[0].to_xeh} #{r[1].to_xeh}"
lpl.verb "#{pc.to_xeh} #{sym} #{r[0].to_xeh} #{r[1].to_xeh}"
.
814,815c
# ca[flg.inject(0) { |rv, v| rv = v ? 0 : 1 | rv << 1}].call
flg[0] && ca[flg[1] ? 0 : 1].call
.
804,808c
# sym, (r0, r1) = rslt pl # higokan mruby 70410200 # bce75e27 2211410200 matz
.
802a
# pl = lpl.pl_g(pc) ##
pl = lpl.pl_g(pc1) ##
sp ||= s.sp(pl[i_sp][0])
.
798,799c
pc1 = pc + 1
.
793c
# sz = 4; ap = (1 << sz) + sz + 1
# sz.step(wd - 2 + ap -= (ap + 2) >> 2) { |n| plr<< lm.(isr0, s[n])} # p c
# sz.step(wd - 1 + ap -= ((ap + 2) >> 2) + 1) { |n| plr<< lm.(isr0, s[n])} # p c
# sz.step(wd - 1 + ap -= (ap >> 2) + 1) { |n| plr<< lm.(isr0, s[n])} # p c
# sz.step(wd - 1 + ap -= ((ap + 2) >> 1) + 1 >> 1) { |n| plr<< lm.(isr0, s[n])} # p c
# sz.step(wd - 1 + ap -= (ap >> 1) >> 1) + 1) { |n| plr<< lm.(isr0, s[n])} # p c
.
787,790c
} # , # rs[1] = r0.to_xeh
# -> { # flg[-1]
# }, # rs[0] = r1.to_xeh
# -> {}
.
782,785c
# plr += lm.(isr0, s[sz .. sz - 1 + ap = ap - (ap >> 2) & 0x3f]) # c
plr += lm.(isr0, s[sz, -1 + ap -= (ap + 3) >> 2]) # c
.
777c
## ((sw = sp + sz) + 0xe).step(sw, -1) { # higokan mruby 70410200 # bbab89e7 5211410200 tmtm
# sz.step(sz - 1 + ap -= (ap + 3) >> 2) { |n| plr<< lm.(isr0, s[n])} # p c
.
765,766c
lm = ->(isr0, r1) {r1 && imem.send(pr, *isr0, r1)} # l
.
761,762c
# sz = 4; ap = 1 << sz
# sz -= 2; ap = ((ap << sz) + ap >> sz - 1) + 1 >> 1
sz = 1; ap = @@fls_m
.
758a
.
754d
749c
i_th = lpl.afl('th', ?i) # q
.
746a
pc1 = 0
.
745a
## pl = lpl.pl_g(pc) ### fls
## pl[i_th] = lpl.pl_eg(pc, 'th') ### fls
.
740a
@@fls_w = 4; (@@fls_m = 1 << @@fls_w) + @@fls_w + 1
@@fls_w -= 2
@@fls_m = ((@@fls_m << @@fls_w) + @@fls_m >> @@fls_w - 1) + 1 >> 1
@@fls_w = nil
.
735,736d
732c
r = pl[lpl.afl('th', ?i)] # q
.
707a
# @pl.nmrcf
.
702a
# @pla = Array.new($pcmax)
# $pltini.call()
@pl = ENVary.new
@rmt = wkth
.
684,691c
# @flag = []
.
659c
def to_a(*a)
.
653,655c
i ||= @a.assoc('ctr')[1].abs
# i ||= @a.assoc('ctr')[1] + 1
# @a.assoc(a[0])[@i] = a[1]
# @a.assoc(a.shift)[a[0] || @i] = v
.
646c
i ||= @a.assoc('ctr')[1].abs
# i ||= @a.assoc('ctr')[1] + 1
.
615d
611d
601d
590,596c
# a.empty? || @p = a[0]
@p = pt
# @p
.
581,582c
@p = sp; @s = s
# @p = sp; @m = m; @s = s
.
578a
# def initialize(sp = 0, s = @@s, m = @@m)
.
567a
# private
# def nmrcf
# @@nmrcf = Float == self.afl('Numeric')[0].class
# end
.
563d
561d
552d
547d
542d
540d
518,530c
(mx &&= thn.hgt) || mx = 1
# sl.slp(0, 4096)
# Fiber.yield([if f = ckth(th[mx], 3)
##### Fiber.yield([if f = (th[idx].nil?.! && ckth(th[mx], 3)) # fuguai taisaku
# f2 = idx >= mx && pl_es(pc, ['th', th])
# true
# end,
Fiber.yield([(f = #### (th[idx].nil?.! && # fuguai taisaku
ckth(th[mx], 3)) &&
f2 = idx >= mx && (pl_es(pc, ['th', th]); true),
sl.slp(0)
# ][0] && idx >= mx)
][0] && f2)
# (f =
# ckth(th[mx], 3)
##### th[idx].nil?.! && ckth(th[mx], 3) # fuguai taisaku
# ) && f2 = idx >= mx && pl_es(pc, ['th', th])
# sl.slp(0)
## Fiber.yield(f && idx >= mx)
# Fiber.yield(f && f2)
## f && idx -= (idx <=> mx) >> 1 ##
.
516c
# mx = thn.hgt
.
508d
488,489c
# return a[0] if 1 >= a.size
## return a.ijr { |v| v.inject(@@imem.mcall) || v[0]}
.
485,486c
# knid(a, :Array) ? __method__(a, pc) : a
case a when Array then __method__(a, pc) else a end
.
482a
([] == a || knid(a, :Array).! || 1 >= a.size) && (return a) # t
.
481c
# ([] == a || ! knid(a, :Array)) && (return a) # t
.
436d
431d
425d
417,423d
406,407d
392,394c
# self[n] = 0 == n ? (@@plmg ||= ->(pi, pv) {pi.map { |v| # l
# [v[0], pv.shift]}}).(pl_g(-1), pl) : pl # c
self[n] = 0 == n ? @@Plmg.(pl_g(-1), pl) : pl # c
# self[n] = 0 == n ? pl_g(-1).map { |v| [v[0], pl.shift]} : pl
.
388,390d
386c
# @@plmg = nil
@@Plmg = ->(pi, pv) {pi.map { |v| [v[0], pv.shift]}} # l
.
381a
# @@nmrcf ? pl.mapr { |v| v.to_i_from(Numeric)} : pl # furui mattn/mruby-json
.
379d
374d
370a
# if 0 == n && ! flg
.
368,369c
# if 1 > n then pl = pl[self.idx0(n)] end
.
364,366c
# pl = self[@@idx0.(n, 0)] # c
pl = self[0 > n ? ‾ n : n]
.
362a
# if 0 > n then flg = true; n = ‾ n end
.
361c
# sleep 0; GC.start; sleep 0
.
358c
# @@idx0 = nil
.
323,325c
ploc(n) { |a| (a = ENV[@@idb + a[0]]) &&
('[]' == (a[0] << a[-1]) && a = JSON::parse(a)); a}
# (('[]' == (a.rotate(-1)[0 .. 1]) && a = JSON::parse(a)); a} # higokan monami-ya.mrb:60510200 mruby:70410200
# knid(a, :Array) && JSON::parse(a)}
.
285,286c
# @@idx0 ||= ->(n = 0, t = 1) {n - ((n <=> t) >> 1)} # l
.
280,282d
271d
266c
# plini
.
261,262c
# 0.step(@@rmth + 1) { |i|
# (0 .. @@rmth + 1).each{ |i|
1.step(@@rmth + 1) { |i|
.
259c
plini
.
252d
210c
# a[0] = ?s + a[0].to_s
a[0] = ?s << a[0].to_s
.
208d
194d
93c
@@slp = 5 # conf.gem :github => 'matsumotory/mruby-sleep' # msleep usleep
.
82d
78d
33a
case v when Kernel.const_get(k) then true end.!.!
.
28,30c
## return v.kind_of?(Object.const_get k) # if 0.kind_of?(Numeric) # super
# return v.kind_of?(Kernel.const_get k) # if 0.kind_of?(Numeric) # super
## return v.kind_of?(k.constantize) # if 0.kind_of?(Numeric) # RoR # super
.
--
YAMAGUTIseisei ( str_h__namae = { :sei => "山口" , :mei => "青星" } )
http://hello.to/seisei/ mailto:seisei@.68..net tel:081-70-5152-1104
heiwa furiisekkusu 1tu
[toc] | [prev] | [next] | [standalone]
| From | YAMAGUTIseisei <seisei@hello.to> |
|---|---|
| Date | 2018-07-01 11:18 +0000 |
| Subject | jit-1_-_github__ysei~mruby-meta-circular-heiretu_-_nightly_-_2_0_1_8_0_7_0_1__1070810200.rb |
| Message-ID | <5B38B86E.7090806@hello.to> |
| In reply to | #8 |
1134,1156c
if 0 <= rg['ctr', 1]
rg.shift 'pc'
# rg['pc'] = rg['pc', 1]
@pc = rg['pc']
rg.shift 'sp'
@sp = rg['sp']
@irep = irep
rg.shift 'cop'
rg.shift 'sym'
end
# ise.reject! { |fis| fis.resume} # higokan ? GC 70410200
.
1003,1131c
lpl.plini
jsc.call
# else
.
996,1001c
# unless fl[0][0]
unless fl.flatten[0]
# rg.push('pc', rg['pc'] + 1)
# rg.push('sp', rg['sp'])
rg['ctr', 1] = rg['ctr', 1].abs
# while ! lpl.ctr_c do Slp.new.slp end
.
993,994c
# ise.reject! {&:resume} # higokan ? monami-ya.mrb:60510200 mruby:70410200
# ise.reject! { |fis| fis.resume} # higokan ? GC 70410200
.
991a
rg.push('pc', rg['pc', -1] + 1)
rg.push('sp', rg['sp', -1])
end
.
988,990c
else
next if pcoj.call
# if 0 <= rg['ctr', 1]
# sym = rg.shift('sym')
pco = rg['pc'] if ?J == rg['sym'].to_s[0] # q
rg['ctr', 1] *= -1 # kakezan
.
986c
fl<< fls(rg['pc'] + 0) # p
# fl[0].push fls(rg['pc'])
# rg.push('pc', rg['pc', -1] + 1)
# rg.push('sp', rg['sp', -1])
# rg.shift('sym')
# end
.
983,984c
# ise<< iset(rg) # p
0 <= rg['pc', nil, '-'] && ise<< iset(rg) # p
next if pcoj.call
.
978,981c
# sp = @sp
@stack.sp(rg['sp']) # + 0
# c, s = opf(irep, rg['pc'])
c, sym = opf(irep, rg['pc'])
rg.push('cop', c)
rg.push('sym', sym)
# rg.push('sym', s)
# end
# lpl.verb "#{rg['pc'].to_xeh} #{rg['sym']} #{rg['cop'].to_xeh}" # if rg['sym']
lpl.verb "#{rg['pc'].to_xeh} #{rg['sym']} #{rg['cop'].to_xeh}" if rg['sym']
# rg['pc'] *= -1 if pco == rg['pc'] # kakezan
# if rg['sym'] && ?J != rg['sym'].to_s[0] && ! [:ENTER, :SEND, :RETURN, :NOP].include?(rg['sym']) # q
if ?J != rg['sym'].to_s[0] && ! [:ENTER, :SEND, :RETURN, :NOP].include?(rg['sym']) # q
# if ?J != sym.to_s[0] && ! [:ENTER, :SEND, :RETURN, :NOP].include?(sym) # q
# if 0 <= rg['ctr', 1]
.
975,976c
# fl[0][0] && fl[0][0].resume && fl[0] = (fl[0][1 .. -1] || [])
# fl.reject!.with_index { |v, n| v.resume(n)}
fl.reject_c!(1) { |v, n| v.resume(n)}
if 0 <= rg['ctr', 1] || pco
pco &&= nil
.
972a
# ise.reject_c!(1) { |fis, n| fis.resume}
# ise = reject_c_th(ise, 1) { |fis, n| fis.resume}
.
971d
968,969c
while true
# loop { # higokan ? monami-ya.mrb:60510200 mruby:70410200
# begin
.
966a
}
pco = nil
pcoj = -> { # l
if 0 > rg['ctr', 1]
rg.pop 'cop'
rg.pop 'sym'
# true
end # || false
}
.
963,965c
# メソッドの先頭で引数のセットアップする命令。面倒なので詳細は省略
when :ENTER
# SEND Ra, mid, anumでRaをレシーバにしてシンボルmidの名前のメソッドを
# 呼び出す。ただし、引数はanum個あり、R(a+1), R(a+2)... R(a+anum)が引数
when :SEND
# a = getarg_a(cop)
# a = lpl.getarg_a(cop)
a = imem.getarg_a(rg['cop'])
# mid = @irep.syms[getarg_b(cop)]
# mid = irep.syms[lpl.getarg_b(cop)]
mid = irep.syms[imem.getarg_b(rg['cop'])]
# n = getarg_c(cop)
# n = lpl.getarg_c(cop)
n = imem.getarg_c(rg['cop'])
# newirep = Irep::get_irep(@stack[@sp + a], mid)
newirep = Irep::get_irep(@stack[a], mid)
if newirep then
# @callinfo[@cp] = @sp
# @callinfo[@cp] = rg['sp']
# @cp += 1
# @callinfo[@cp] = @pc
# @callinfo[@cp] = rg['pc']
# @cp += 1
# @callinfo[@cp] = @irep
# @callinfo[@cp] = irep
# @cp += 1
# @callinfo[-3 + @cp += 3, 3] = [@sp, @pc, @irep]
@callinfo[-3 + @cp += 3, 3] = [rg['sp'], rg['pc'], irep]
# @sp += a
# rg['sp'] += a
rg['sp', -1] = rg['sp'] + a
# @pc = 0
rg['pc', -1] = 0
# @irep = newirep
irep = newirep
# @irepid = @irep.id
@irepid = irep.id
# next
else
args = []
n.times do |i|
# args.push @stack[@sp + a + i + 1]
args<< @stack[a + i + 1] # p
end
# @stack[@sp + a] = @stack[@sp + a].send(mid, *args)
@stack[a] = @stack[a].send(mid, *args)
end
# RETURN Raで呼び出し元のメソッドに戻る。Raが戻り値になる
when :RETURN
if @cp == 0 then
# return @stack[@sp + getarg_a(cop)]
# return @stack[sp + lpl.getarg_a(cop)]
return @stack[imem.getarg_a(rg['cop'])]
# break @stack[imem.getarg_a(rg['cop'])]
else
# @stack[@sp] = @stack[@sp + getarg_a(cop)]
# @stack[sp] = @stack[sp + lpl.getarg_a(cop)]
@stack[0] = @stack[imem.getarg_a(rg['cop'])]
@cp -= 1
# @irep = @callinfo[@cp]
irep = @callinfo[@cp]
# @irepid = @irep.id
@irepid = irep.id
@cp -= 1
# @pc = @callinfo[@cp]
# pc = @callinfo[@cp]
# rg['pc', -1] = @callinfo[@cp]
rg['pc', -1] = @callinfo[@cp] + 1 # bagu syuusei
@cp -= 1
# @sp = @callinfo[@cp]
# sp = @callinfo[@cp]
# rg['sp'] = @callinfo[@cp]
rg['sp', -1] = @callinfo[@cp]
end
# else
# printf("Unkown code %s ¥n", OPTABLE_SYM[get_opcode(cop)])
# printf("Unkown code %s ¥n", OPTABLE_SYM[imem.get_opcode(cop)])
.
958,961c
# JMPNOT Ra, nでもしRaがnilかfalseならpcをnだけ増やす。ただし、nは符号付き
when :JMPNOT
# if !@stack[@sp + getarg_a(cop)] then
# if !@stack[sp + lpl.getarg_a(cop)] then
if !@stack[imem.getarg_a(rg['cop'])] then
# @pc = @pc + getarg_sbx(cop)
# pc = pc + lpl.getarg_sbx(cop) - 1
rg['pc', -1] = rg['pc'] + imem.getarg_sbx(rg['cop'])
# next
end
.
955,956c
jsc = Proc.new {
# case sym
case rg['sym']
# 何もしない
when :NOP
# JMP nでpcをnだけ増やす。ただし、nは符号付き
when :JMP
# @pc = @pc + getarg_sbx(cop)
# pc = pc + lpl.getarg_sbx(cop) - 1
rg['pc', -1] = rg['pc'] + imem.getarg_sbx(rg['cop'])
# next
when :JMPIF
# if @stack[@sp + getarg_a(cop)] then
# if @stack[sp + lpl.getarg_a(cop)] then
if @stack[imem.getarg_a(rg['cop'])] then
# @pc = @pc + getarg_sbx(cop)
# pc = pc + lpl.getarg_sbx(cop) - 1
rg['pc', -1] = rg['pc'] + imem.getarg_sbx(rg['cop'])
# next
end
.
951,953c
rg = Rg.new([['ctr', 1], ['pc', @pc], ['sp', @sp], ['cop'], ['sym']])
.
949a
sym = nil
.
947,948c
fl = []
# fl = [[], []]
.
941c
# i_th = lpl.afl('th', ?i) # q
.
912,913c
# Fiber.yield(0 != thi && ht <= thi) ##
.
909,910d
901d
892,898c
# pl.pl_es(pc1, opg.(thi) + [[k_sp, [sp]], []][thi <=> 0]) # c
# pl.pl_es(pc1, opg.(thi) + [[k_sp, [sp], 'ctr', -pc1], []][thi <=> 0]) # c
pl.pl_es(pc1, opg.(thi) + [[k_sp, [sp], :ctr_s, pc1], []][thi <=> 0]) # c
# (0 != thi && ht <= thi) ? thi = 0 : thi += 1
# if 0 == thi
# pl.ctr_s(pc1)
# elsif ht <= thi
if 0 != thi && ht <= thi
.
885c
thi = 0 ##
.
875,877c
# when 'th'
# fv = (fvl.delete_at(((1 <=> fvl.size) << 1) + 1) || fvl[0]).(oi) # c
when 'th' then fv = fvl[-1].(oi); fvl = fvl[0 .. fvl.size - 2] # c
.
834c
# sl.slp 0
.
831c
# Fiber.yield(@@fls2.resume(pc))
m = Fiber.yield(@@fls2.resume(pc, m))
.
828a
# m = Fiber.yield(false)
.
827c
# Fiber.new {
Fiber.new { |m = 1|
.
824a
# sl = @@slp
.
817c
# Fiber.yield(! flg.include?(false)) ##
# pc = Fiber.yield(flg.all?) ##
# m = fy.(m, f) # c
pc, m = fy.(m, f, pc) # c
.
810,815c
unless f
pl = lpl.pl_g(pc1) ##
# sp ||= s.sp(pl[i_sp][0])
# sym, (r0, r1) = rslt pl # higokan mruby 70410200 # bce75e27 2211410200 matz
sym, r, flg = rslt(pl); r0, r1 = r
# unless flg.include?(true) then fy(m, f); redo end
# f = ! flg.include?(false)
f = flg.all?
end
if 0 == m
sp ||= s.sp(pl[i_sp][0])
r0, r1 = r
pr || (pr, sy = imem.fml('st', sym)[1 .. -1])
isr0 = [i, s, r0]
# flg[0] && ca[flg[1] ? 0 : 1].call
flg[0] && ca[flg[1] ? 0 : 1].(r) # c
end
# @@slp.slp 0
.
801,808d
799a
f = false # ; flg = [false, false]
.
793c
# Fiber.new { |pc| ##
# Fiber.new {
# Fiber.new { |m = 1|
Fiber.new { |pc, m = 1|
.
784,791c
# fy = ->(m, f) { @@slp.slp 0
fy = ->(m, f, pc) { @@slp.slp 0
lpl.verb "#{pc.to_xeh} #{sym} #{r[0].to_xeh} #{r[1].to_xeh}"
# Fiber.yield(0 == m && f)
Fiber.yield(f && 0 == m)
}
.
775,776c
# plr += lm.(isr0, s[sz, -1 + ap -= (ap + 3) >> 2]) # c
plr += lm.(isr0, s[sz .. sz + ap -= ap >> 2]) # c
.
768,770c
# -> { # flg[0]
->(r) { # flg[0]
# ((sw = sp + sz) + 0xe).step(sw, -1) { # higokan mruby 70410200 # bbab89e7 5211410200 tmtm
# sz.step(sz + ap -= ap >> 2) { |n| plr<< lm.(isr0, s[n])} # p c
.
761c
# -> { # flg[0] && flg[-1]
# -> { # f
->(r) { # f
.
753,755c
# sz = 1; ap = @@fls_m
sz = 4; ap = @@fls_w ||= (1 << sz) - 1 - 1
# sz = 4; @@fls_m || (ap = @@fls_w ||= (1 << sz) - 1 - 1; @@fls_w = nil)
sz -= 2; ap = @@fls_m ||= ((ap << sz) + ap >> sz - 1) + 1 >> 1
.
751a
f = false; flg = [false, false]
r = [] # nil # ; rs = [?-, ?-] # q 2
.
749c
# isr0, r0, r1, pr, sy = nil
isr0, r0, r1, pr, sy, sym = nil
.
745c
# s = Stack.new; sp = nil; plr = nil
pl = nil; s = Stack.new; sp = nil; plr = []
.
738c
pc = 0
pc1 = pc + 1
# pc1 = 0
.
725,728c
# @@fls_w = 4; @@fls_m = (1 << @@fls_w) - 1 - 1
# @@fls_w -= 2
# @@fls_m = ((@@fls_m << @@fls_w) + @@fls_m >> @@fls_w - 1) + 1 >> 1
# @@fls_w = nil
@@fls_w, @@fls_m = nil
.
718c
r = pl[lpl.afl('th', ?i)] # q
.
669d
640a
# v = -v if 'pc' == k && v == @a.assoc(k)[i] && knid(v, :Numeric)
'pc' == k && case v when Numeric then v == @a.assoc(k)[i] && v = -v end # cp
.
636,637c
# i ||= @a.assoc('ctr')[1].abs
i ||= @a.assoc('ctr')[1]
.
631c
# @a.assoc(k)[i]
v = @a.assoc(k)[i]
# v = v.abs if knid(v, :Numeric) # cp
v = v.abs if 'pc' == k && ?- != m # cp # q
v
.
626,629c
# def [](k, i = @i)
def [](k, i = nil, m = nil)
# i ||= @a.assoc('ctr')[1].abs
i ||= @a.assoc('ctr')[1]
.
617a
def pop(*a)
@a.assoc(a.shift).pop
end
.
595a
# a = @s[@p + a[0].sgp] = a[1]
.
547c
# fpl.reject! { |fb| fb.resume}
# fpl.reject! {&:resume} # higokan ? monami-ya.mrb:60510200 mruby:70410200
# fpl.reject_c!(1) { |fb, n| fb.resume}
fpl = reject_c_th(fpl, 1) { |fb, n| fb.resume}
.
498,521c
Fiber.yield([(f = #### th[idx].nil?.! && # fuguai taisaku
ckth(th[mx], 3)) && # ))) &&
(pl_es(pc, ['th', th]); true),
sl.slp(0)
][0] && idx >= mx)
f && idx -= (idx <=> mx) >> 1 ##
.
495a
mx = thn.hgt
# mx ||= thn.hgt
.
490c
f = nil # ; mx = nil
.
465c
(tb == a || knid(a, :Array).! || 1 >= a.size) && (return a)
.
463c
# ([] == a || knid(a, :Array).! || 1 >= a.size) && (return a) # t
.
461a
tb = TB
.
406a
aa.each_slice(2) { |k, v| send(k, v)}
.
404c
# 'ctr' == k && case v when Array then true end.! ? pl[i_k]<< v : pl[i_k] = v # p # higokan ? mruby 70410200
.
402d
400a
# 'ctr_s' == k && break(-v) # higokan ? mruby 70410200
# knid(k, :Symbol) && (aa.push(k, v); next)
# knid(k, :Symbol) && (aa.push(k, v); break)
case k when Symbol then aa.push(k, v); break end
.
395a
aa = []
.
357c
# sleep 0; GC.start; sleep 0 # g
.
353,354c
# @@Idx0 = ->(n = 0, t = 1) {n + (t > n ? 1 : 0)} # l
.
281c
# if 1 < self.size # self.size : 0 ?? # higokan ? mruby:70410200 monami-ya.mrb:60510200
if self[1]
# self.replace(self[0 .. self.size & ((n = @@rmth + 1) << 1) | n]) # ?? # higokan ? mruby:70410200 monami-ya.mrb:60510200
# self.slice!((self.size & ((n = @@rmth + 1) << 1) | n) + 1 .. -1) # higokan mruby:70410200 monami-ya.mrb:60510200
self[0 .. -1] = self[0 .. self.size & ((n = @@rmth + 1) << 1) | n]
end
.
277,278d
274c
# 3080410200 : 5x2 ok ( gc ) : monami-ya.mrb 8270410200 813e2af8 # www.monami-ya.jp
.
266d
260,261d
210,211c
# case a[4]
case a[@@I_s__r1 + 1]
# when Array then return a[4].map{ |v| v.nil? ? v : send(*a[0 .. 3], v)}
when Array
a[@@I_s__r1 + 1].map{ |v| v.nil? ? v : send(*a[0 .. @@I_s__r0 + 1], v)}
.
208d
136,137c
# @fml.(lb).assoc(sym) # c
@@fml.(lb).assoc(sym) # c
.
85a
def reject_c!(i = nil)
a = self
# unless i
# a.reject! { |v| yield v}
# else
# a.compact!
# a.each.with_index(0) { |v, n| break if n >= i
# v && yield(v, n) && a.delete_at(n)
# }
(i > n = a.size) && i = n
n = c = 0
while c < i
a[n] && yield(a[n], c) && a.delete_at(n) || n += 1
# (v = a[n]) && yield(v, c) && a.delete_at(n) || n += 1
c += 1
end
# end
self.replace a
end
def reject_c_th(a, i = nil)
# unless i
# a.reject! { |v| yield v}
# else
# a.compact!
# a.each.with_index(0) { |v, n| break if n >= i
# v && yield(v, n) && a.delete_at(n)
# }
(i > n = a.size) && i = n
n = c = 0
while c < i
a[n] && yield(a[n], c) && a.delete_at(n) || n += 1
# (v = a[n]) && yield(v, c) && a.delete_at(n) || n += 1
c += 1
end
# end
a
end
.
2a
TB = []
.
--
YAMAGUTIseisei ( str_h__namae = { :sei => "山口" , :mei => "青星" } )
http://hello.to/seisei/ mailto:seisei@.68..net tel:081-70-5152-1104
heiwa furiisekkusu 1tu
[toc] | [prev] | [next] | [standalone]
| From | YAMAGUTIseisei <seisei@hello.to> |
|---|---|
| Date | 2018-09-30 11:48 +0000 |
| Subject | jit-1_-_github__ysei~mruby-meta-circular-heiretu_-_nightly_-_2_0_1_8_0_9_3_0__0390810200.rb |
| Message-ID | <5BB0B825.8070403@hello.to> |
| In reply to | #9 |
Y1245a
# 0.step(@@rmth) { |n| # higokan ? touki
# fl.shift && redo if fl[n] && fl[n].resume(n) && 0 == n
# break if n >= ht ||= fl.hgt
# }
.
1240c
# stack.sp rg['sp']
stack.ps rg['sp']
@irep[0] = irep
.
1235d
1230d
1228a
# callinfo, irep, rg = @@jsc.(stack, callinfo, irep, rg, imem) # c
.
1221,1222c
# unless fl.flatten[0] && ! pco # wait
.
1219d
1216,1217c
# ist = Thread.new {
## ise.reject! { |fis| fis.resume} # higokan ? GC 70410200
# }
.
1207,1209c
# pco = rg['pc'] if ?J == rg['sym'].to_s[0] # q
(pco = rg['pc']; pctj<< pco + 1) if ?J == rg['sym'].to_s[0] # q
.
1197,1203c
fl<< fls(rg['pc']) # p
.
1194c
# ise<< iset(rg) if 0 <= rg['pc', nil, '-'] # p # cp
ise<< iset(rg) if 0 <= rg['pc', nil, '-'] && pctj.pop != rg['pc'] # p # cp
.
1190,1192d
1188d
1186c
lpl.verb "#{rg['pc'].to_xeh} #{rg['sym']} #{rg['cop'].to_xeh}" # if rg['sym']
.
1180,1184d
1172,1177c
# c , sym = opf(irep, rg['pc'])
c , sym = @@opf.(irep, rg['pc'], imem) # c
.
1165,1167d
1162,1163d
1147a
.
1146a
# [callinfo, irep, rg]
.
1145a
end
.
1143c
else
if ?J == rg['sym'].to_s[0] # q
jm.(cop, sym) # c
# else
.
1141c
# rg['sp', -1] = @callinfo[@cp]
rg['sp', -1] = callinfo[0]
.
1136,1137c
# rg['pc', -1] = @callinfo[@cp] + 1 # bagu syuusei
rg['pc', -1] = callinfo[0] + 1
# @cp -= 1
callinfo.pd
.
1132c
# @cp -= 1
callinfo.pd
.
1129c
# irep = @callinfo[@cp]
irep = callinfo[0]
.
1125,1127c
# @stack[rg['sp']] = @stack[rg['sp'] + imem.getarg_a(cop)]
stack[0] = stack[imem.getarg_a(cop)]
# @cp -= 1
callinfo.pd
.
1120,1121c
# return @stack[rg['sp'] + imem.getarg_a(cop)]
return stack[imem.getarg_a(cop)]
.
1118c
# if @cp == 0 then
if 0 == callinfo.pg
.
1113,1114c
# @stack[rg['sp'] + a] = @stack[rg['sp'] + a].send(mid, *args)
stack[a] = stack[a].send(mid, *args)
end
.
1109c
args<< stack[a + i + 1] # p
.
1090,1091c
# @callinfo[(@cp += 3) - 3, 3] = [rg['sp'], rg['pc'], irep]
callinfo[0 .. 2] = [rg['sp'], rg['pc'], irep]
callinfo.p += 3
.
1088a
# callinfo[0] = irep
.
1085a
# callinfo[0] = rg['pc']
.
1082a
# callinfo[0] = rg['sp']
.
1079c
# newirep = Irep::get_irep(@stack[rg['sp'] + a], mid)
newirep = Irep::get_irep(stack[a], mid)
.
1076,1077c
n = imem.getarg_c(cop)
.
1073,1074c
mid = irep.syms[imem.getarg_b(cop)]
.
1070,1071c
a = imem.getarg_a(cop)
.
1061a
end
}
# @@jsc = Proc.new { |stack, callinfo, irep, rg, imem|
jsc = Proc.new { # |stack, callinfo, irep, rg, imem|
cop, sym = rg['cop'], rg['sym']
case sym
# case rg['sym']
# 何もしない
# when :NOP
# # JMP nでpcをnだけ増やす。ただし、nは符号付き
# when :JMP
## @pc = @pc + getarg_sbx(cop)
## pc = pc + lpl.getarg_sbx(cop) - 1
# rg['pc', -1] = rg['pc'] + imem.getarg_sbx(cop)
## next
# when :JMPIF
## if @stack[@sp + getarg_a(cop)] then
## if @stack[rg['sp'] + imem.getarg_a(cop)]
# if stack[imem.getarg_a(cop)]
## @pc = @pc + getarg_sbx(cop)
## pc = pc + lpl.getarg_sbx(cop) - 1
# rg['pc', -1] = rg['pc'] + imem.getarg_sbx(cop)
## next
# end
# # JMPNOT Ra, nでもしRaがnilかfalseならpcをnだけ増やす。ただし、nは符号付き
# when :JMPNOT
## if !@stack[@sp + getarg_a(cop)] then
## if !@stack[rg['sp'] + imem.getarg_a(cop)]
# if !stack[imem.getarg_a(cop)]
## @pc = @pc + getarg_sbx(cop)
## pc = pc + lpl.getarg_sbx(cop) - 1
# rg['pc', -1] = rg['pc'] + imem.getarg_sbx(cop)
## next
# end
.
1059c
rg['pc', -1] = rg['pc'] + imem.getarg_sbx(cop)
.
1055,1056c
# if !@stack[rg['sp'] + imem.getarg_a(cop)]
if !stack[imem.getarg_a(cop)]
.
1048c
rg['pc', -1] = rg['pc'] + imem.getarg_sbx(cop)
.
1044,1045c
# if @stack[rg['sp'] + imem.getarg_a(cop)]
if stack[imem.getarg_a(cop)]
.
1039c
rg['pc', -1] = rg['pc'] + imem.getarg_sbx(cop)
.
1032,1033c
case sym
.
1028,1030c
jm = ->(cop, sym) { # l
.
1023a
pctj = []
.
1015,1018d
1011c
@irep[0] = irep
.
1009a
stack = Stack.new
# callinfo = Stack.new(0, 'c')
# callinfo = Pary.new []
callinfo = Stack.new(0, [])
.
1004c
# end
}
.
1001d
992,993c
@@iset2 = nil
def iset(rg)
# rgd = rg.dup
rgd = rg.to_a('pc', 'sp', 'cop', 'sym')
# sl = @@slp
@@iset2 ||= iset2
Fiber.new {
loop {
Fiber.yield(@@iset2.resume(rgd))
rgd &&= nil
# sl.slp 0
}
}
end
# def opf(irep, pc)
@@opf = ->(irep, pc, imem) { # l
# imem = @imem
.
987a
rg = Fiber.yield(0 > thi) ##
thi += 1
.
986c
# Fiber.yield(0 > thi) ##
.
979a
pl.pl_es(pc1, opg.(thi) + [[k_sp, [sp], :ctr_s, pc1], []][thi <=> 0]) # c
# if 0 != thi && ht <= thi
# thi = -1
# end
0 != thi && ht <= thi && thi = -1
.
973,977c
th = [] ##
# thi = 0
.
971c
fml = imem.fml('th', sym) || (
# printf("Unkown code %s ¥n", OPTABLE_SYM[imem.get_opcode(cop)])
pl.verb("Unkown code #{sym} ") # .to_s
# return nil
# raise
# rg = Fiber.yield(nil)
)
.
966,969c
# [1].cycle.with_index { |t, thi|
if rg
# pc, sp, cop, sym = rg.to_a('pc', 'sp', 'cop', 'sym')
pc, sp, cop, sym = rg
pc1 = pc + 1
.
962,963c
# Fiber.new { ##
Fiber.new { |rg|
loop { ##
.
951,952c
# fv = fvl[1][-1].(oi); fvl[1] = fvl[1][0 .. fvl.size - 2] # c
# when 'th' then fv = fvl.(oi) # c
when 'th' then fv = fvl[oi <=> 0].(oi) # c
.
949a
# when 'th' then fv = fvl[-1].(oi); fvl.delete_at(1) # c
.
938,940c
# fvl = [->(oi) {th += [[fv[oi] && imem.ta(fv[oi], cop)], []][ # l c
# (oi <=> ht = fv.hgt) + 1 >> 1]},
# ->(oi) {[fv[oi] = th[oi] = (imem.ta(fv[oi], cop)), []]}] # .lazy # l c
# fvl = ->(oi) {[ # l
# -> {[fv[oi] = th[oi] = (ta.(fv[oi])), []]}, # l c
# -> {th += [[fv[oi] && ta.(fv[oi])], []][ # l c
# ((ht = fv.hgt) <=> oi) >> 1]}][oi <=> 0].call # .lazy
# }
fvl = [->(oi) {[fv[oi] = th[oi] = (imem.ta(fv[oi], cop)), []]}, # l
->(oi) {th += [[fv[oi] && imem.ta(fv[oi], cop)], []][ # l
((ht = fv.hgt) <=> oi) >> 1]}] # .lazy
.
927,932c
fml = []
.
920,921c
# pc1 = pc + 1
pc1 = 0
.
914,918c
# def iset(rg) ##
def iset2 ##
# pc, sp, cop, sym = rg.to_a('pc', 'sp', 'cop', 'sym')
pc, sp, cop, sym = nil
.
883,886d
880d
875,877c
# sp ||= s.sp(pl[i_sp][0])
sp ||= s.ps(pl[i_sp][0])
# r0, r1 = r
# pr || (pr, sy = imem.fml('st', sym)[1 .. -1])
pr || (pr, sy, mt = imem.fml('st', sym)[1 .. -1])
.
870,872c
f = ! flg.include?(false)
# m = fy.(m, false)
.
865d
856,860c
# pc = ‾ pc
# pc1 = pc + 1
# sp = nil; plr = []
# pr = nil
# f = false # ; flg = [false, false]
pc = ini.(pc) # c
.
850,851d
846d
837,840c
} # rs[1] = r0.to_xeh
.
833,835c
# sz = plr.size
# plr += lm.(isr0, s[sz .. sz + ap -= ap >> 2]) # c
# plr += lm.(isr0, s[(sz = plr.size) .. sz + ap -= ap >> 2]) # c
plr +=
lm.(isr0, s[(sz = plr.size) .. sz + ap = (ap >>= 1) + (ap >> 1)]) # c
.
822,825c
# r = plr[r1] || lm.(isr0, r1) # c
# _ = r[1] <= sz && plr[r[1]] || lm.(isr0, r[1]) # c
_ = plr[r[1]] || lm.(isr0, r[1]) # c
# s[r1] = sy ? [s[r1], r].inject(sy) : r
s[r[1]] = sy ? [s[r[1]], _].inject(sy) : _
}, # rs = [r1.to_xeh, r0.to_xeh]},
.
817d
814c
# ini = ->(pc) { [pc = ‾ pc, (
ini = ->(pc) { (pc1 = [‾ pc, (
# pc1 = pc + 1
sp, pr = nil; plr = []
f = false # ; flg = [false, false]
# )][0]
)][0] + 1) - 1
}
# lm = ->(isr0, r1) {r1 && imem.send(pr, *isr0, r1)} # l
lm = ->(isr0, r1) {r1.nil? ? r1 : imem.send(pr, *isr0, r1, mt)} # l
.
810d
808d
806c
r = nil
.
804d
801,802c
# isr0, r0, r1, pr, sy, sym = nil
# isr0, r0, r1, pr, sy, sym, mt = nil
isr0, pr, sy, sym, mt = nil
.
796d
787,789c
# pc = 0
# pc1 = pc + 1
pc1 = 0
.
778,782c
# def fls(pc) ##
def fls2 ##
.
773,776d
740,741d
725,726c
# @cp = 0 # callinfoのポインタ
@irep = [nil] # 現在実行中の命令列オブジェクト
.
721,722c
# @stack = Stack.new # スタック(@spより上位をレジスタとして扱う)
# @callinfo = [] # メソッド呼び出しで呼び出し元の情報を格納
.
688d
639a
def pg() @p end
def pi() @p += 1 end
def pd() @p -= 1 end
# def sp(*a)
# def sp(pt)
def ps(i)
# id = self.object_id
# a.empty? || @p = a[0]
# @p = pt
@p = i
# @p
end
.
634a
# @s[@p + a[0].sgp] = a[1]
.
613,620c
# @s
.
610a
# s = @s
.
603a
attr_accessor :p
.
602c
# @@s = []
@@s = AryM.new
.
600a
##module M__Pary
## def initialize(*a)
## @a = a.shift
## @i = (a[-1] || 0)
## end
##
### def pg
### @i
### end
##
### def pg
### @i
### end
##
## def pg() @i end
## def ps(i = @i) @i = i end
## def pi() @i += 1 end
## def pd() @i -= 1 end
##
## def []=(i, v)
## @a[ipt(i)] = v
## end
##
## def [](i)
## @a[ipt(i)]
## end
##
### private
##
## def ipt(i)
## @i + ((i + i.abs) >> 1)
## end
##end
##
##class Pary
## include M__Pary
##end
#
## @@stack = Pary.new []
### @@stack = [['s', Pary.new([])], ['c', Pary.new([])]]
# module M__AryM # higokan ? mruby 70410200
class AryM < Array
def [](*a)
super
end
def []=(*a)
super
end
end
# class AryM < Array
# include M__AryM
# end
.
584d
582d
554c
sl.slp(0) # (0, 4096)
.
552c
ckth(th[mx], 3)) &&
.
550a
mx = thn.hgt
# mx ||= thn.hgt
.
547,548d
516c
# (tb == a || knid(a, :Array).! || 1 >= a.size) && (return a)
(tb == a || knid(a, :Array).! || 0 >= a.hgt) && (return a)
.
461a
# ctr = (cta = pl_g(0).afl('ctr', self)).shift
# pl_es(0, ['ctr', cta])
# ctr
.
451a
# i_k = loop {self.afl(k, ?i) && break} # q # fuguai taisaku
.
421d
411d
406d
404d
323,327c
# if self[1]
## self.replace(self[0 .. self.size & ((n = @@rmth + 1) << 1) | n]) # ?? # higokan ? mruby:70410200 monami-ya.mrb:60510200
## self.slice!((self.size & ((n = @@rmth + 1) << 1) | n) + 1 .. -1) # higokan mruby:70410200 monami-ya.mrb:60510200
# self[0 .. -1] = self[0 .. self.size & ((n = @@rmth + 1) << 1) | n]
# end
self[1] && self[0 .. -1] =
self[0 ... self.size & ((n = @@rmth + 1) << 1) | n]
.
316c
# 3080410200 : 5x2 ok ( gc ) : monami-ya.mrb 8270410200 813e2af8 # http://www.monami-ya.jp/
.
152a
# module M__Rou
# class Rou
# include RiteOpcodeUtil
# include M__Rou
# end
.
110c
# def reject_c_th(a, i = nil)
def reject_c_th(a, i)
.
89c
# def reject_c!(i = nil)
def reject_c!(i)
.
--
YAMAGUTIseisei ( str_h__namae = { :sei => "山口" , :mei => "青星" } )
http://hello.to/seisei/ mailto:seisei@.68..net tel:081-70-5152-1104
heiwa furiisekkusu 1tu
[toc] | [prev] | [next] | [standalone]
| From | YAMAGUTIseisei <seisei@hello.to> |
|---|---|
| Date | 2018-12-16 09:16 +0000 |
| Subject | jit-1_-_github__ysei~mruby-meta-circular-heiretu_-_nightly_-_2_0_1_8_1_2_1_6__6121810200.rb |
| Message-ID | <5C161805.5090308@hello.to> |
| In reply to | #10 |
1387c
# redo
# next
end # while true
.
1357d
1344,1345c
# (pco = rg['pc']; pctj<< pco + 1) if ?J == rg['sym'].to_s[0] # q
(pctj<< (pco = rg['pc']) + 1) if ?J == rg['sym'].to_s[0] # p # q
.
1335,1336d
1327,1328c
# c, sym = opf(irep, rg['pc'])
c, sym = @@opf.(irep, rg['pc'], imem) # c
.
1323c
# fl.reject_c!(1) { |v, n| v.resume(n)}
fl.delete_if__c(1) { |v, n| v.resume(n)}
.
1321c
# ise.reject! { |fis| fis.resume}
ise.delete_if(&:resume)
.
1312a
sl.slp 0
.
1286c
# rg['pc', -1] = @callinfo[@cp] + 1
.
1234d
1176c
when :NOP
sl.slp 0
.
1116,1117d
1095a
# def rou(*a)
@@rou = ->(*a) { # l
# (imem = @Imem).send(*a)
(imem = @@Imem).send(*a)
# end
}
.
1087,1093c
# Fiber.new {
# loop {
## Fiber.yield(@@iset2.resume(rgd))
# Fiber.yield(@@iset2.resume(rgd, 0))
# rgd &&= nil
## sl.slp 0
# }
# }
# fibi(@@iset2, rgd, 0) {|rgd| rgd &&= nil}
fibi(@@iset2 ||= iset2, rgd, 0) {|rgd| rgd &&= nil}
.
1085c
# @@iset2 ||= iset2
.
1083a
# rgd = rg.to_a('pc', 'sp', 'cop', 'sym').dup
.
1074c
# Fiber.yield(0 != thi && ht <= thi && thi = -1) ##
# rg = Fiber.yield(0 != thi && ht <= thi && thi = -1) ##
rg, m = Fiber.yield(0 != thi && ht <= thi && (thi = -1; true)) ##
# rg, m = Fiber.yield(0 != thi && ht <= thi) ##
# rg = Fiber.yield(0 > thi) ##
# rg, m = Fiber.yield(0 > thi) ##
.
1072d
1061,1064c
# 0 != thi && ht <= thi && thi = -1
.
1059c
# pl.pl_es(pc1, opg.(thi) + [[k_sp, [sp], :ctr_s, pc1], []][thi <=> 0]) # c
pl.pl_es(pc1, opg.(thi) + [oa, []][thi <=> 0]) # c
.
1055,1056c
# th = [] ##
# oa = [k_sp, [sp], :ctr_s, pc1]
.
1043,1053c
## pc, sp, cop, sym = rg.to_a('pc', 'sp', 'cop', 'sym')
# pc, sp, cop, sym = rg
## pc1 = pc + 1
# ini.call
ini.(rg) # c
.
1039d
1037c
# Fiber.new { |rg|
Fiber.new { |rg, m = 0|
.
1035c
# k_sp = pla.assoc('sp')[1]
# oa = []
.
1022,1024d
1014,1015c
# opg = ->(oi) { # l
# lopa = []
opg = ->(oi, lopa = []) { # l
.
1002,1004d
996c
# fml = []
k_sp = pla.assoc('sp')[1]
pc1, fml, oa, th = nil
# ini = ->{
ini = ->(rg) {
# pc, sp, cop, sym = rg.to_a('pc', 'sp', 'cop', 'sym')
pc, sp, cop, sym = rg
# pc1 = pc + 1
fml = imem.fml('th', sym) || (
# printf("Unkown code %s \n", OPTABLE_SYM[imem.get_opcode(cop)])
# printf("Unkown code %s \n", OPTABLE_SYM[rou(:get_opcode, cop)])
# printf("Unkown code %s \n", OPTABLE_SYM[@@rou.(:get_opcode, cop)]) # c
pl.verb("Unkown code #{sym} ") # .to_s
return nil
# raise
## rg = Fiber.yield(nil)
)
pc1 = pc + 1
oa = [k_sp, [sp], :ctr_s, pc1]
th = [] ##
}
.
989,990c
# pc = 0
# pc1 = pc + 1
# pc1 = 0
.
987a
# sp, cop, sym = nil
.
969,981c
# Fiber.new { |m = 1|
# m = Fiber.yield(false)
# loop {
# m = Fiber.yield(@@fls2.resume(pc, m))
## Fiber.yield(flg.resume(pc))
# 0 > pc && pc = ~ pc
## sl.slp 0
# }
# }
# fibi(@@fls2, pc, 1) {|pc| 0 > pc ? ~ pc : pc}
fibi(@@fls2 ||= fls2, pc, 1) {|pc| 0 > pc ? ~ pc : pc}
.
966,967c
## sl = @@slp
# @@fls2 ||= fls2
.
957d
955c
# flg[0] && ca[flg[1] ? 0 : 1].(r) # c
ca[flg[1] ? 0 : 1].(r) # c
.
950,951d
947,948c
# if 0 == m
if 0 == m && flg[0]
.
944,945c
# f = ! flg.include?(false)
f = flg.all?
# pc, m = fy.(m, false, pc) # c
.
935,936c
0 > pc && pc = ini.(pc) # c
.
928,933c
# if 0 > pc
# pc = ini.(pc) # c
# end
.
925d
919,920c
# fy = ->(m, f) { sl.slp 0
fy = ->(m, f, pc) { sl.slp 0
.
915c
# end
.
907,913c
# if 0 == s.size
# sl.slp 0
# else
0 == s.size ? sl.slp(0) : plr +=
.
903d
895,900c
# _ = plr[r[1]] || lm.(isr0, r[1]) # c
_ = (_ = plr[r[1]]).nil? ? lm.(isr0, r[1]) : _ # c
.
893d
889,890c
# lm = ->(isr0, r1) {r1.nil? ? r1 : imem.send(pr, *isr0, r1, mt)} # l
lm = ->(isr0, r1) {imem.send(pr, *isr0, r1, mt)} # l
.
884,886c
f = false
# )][0] + 1) - 1
)][0] - 1
.
880,881c
# ini = ->(pc) { (pc1 = [~ pc, (
ini = ->(pc) { [pc1 = ~ pc + 1, (
.
876,877c
sz = 4; ap = @@fls_w ||= (1 << sz) # - 1 - 1
# sz -= 2; ap = @@fls_m ||= ((ap << sz) + ap >> sz - 1) + 1 >> 1
ap = @@fls_m ||=
((ap += (ap <<= 1) + (ap <<= 2) + (ap << 2)) >> sz) + 1 >> 1
.
874c
# r = nil
.
869,870d
865,866c
# pl = nil; s = Stack.new; sp = nil; plr = []
# i = @irep
i = @irep; s = Stack.new
sp, pl, r = nil
plr = []
.
839a
def fibi(fb, p1, ctr = 0)
sl = @@slp
Fiber.new { |m = 1|
ctr.times {m = Fiber.yield(false)}
loop {
sl.slp 0
m = Fiber.yield(fb.resume(p1, m))
p1 = yield(p1)
# sl.slp 0
}
}
end
.
795c
# @Imem = Imem.new
@Imem = @@Imem
.
789a
@@Imem = Imem.new
.
787d
719c
# def size; @s.size end
def size; @s.length - @p end
.
714d
710d
702a
# [@s[a[0] + @p] = a[1], @@m.unlock][0]
.
697,699d
690,691d
684c
# [s, @@m.unlock][0]
.
670d
655a
@@f = ''
def initialize
# @f = '' # cannot set instance variable (ArgumentError)
end
.
613,653d
602,606d
596,598c
# fpl.reject!(&:resume)
# fpl = reject_c_th(fpl, 1) { |fb, n| fb.resume}
# fpl = reject_c!(1, fpl) { |fb, n| fb.resume}
fpl = delete_if__c(1, fpl) { |fb, n| fb.resume}
##### fpl.reject!.with_index { |fb, i| break if i > 0; fb.resume}
##### fpl.reject!.with_index { |fb, i| next if i > 0; fb.resume}
##### fpl.reject!.with_index { |fb, i| p i; fb.resume}
##### fpl.empty? || fpl[0].resume && fpl.shift
sl.slp
.
581c
# sl.slp
.
578c
# sl = @@slp
(sl = @@slp).slp
.
563,569c
# mx = thn.hgt
## mx ||= thn.hgt
# Fiber.yield([(f = #### th[idx].nil?.! && # fuguai taisaku
Fiber.yield((f = #### th[idx].nil?.! && # fuguai taisaku
# ckth(th[mx], 3)) &&
ckth(th[mx = thn.hgt], 3)) && (
# (pl_es(pc, ['th', th]); true),
# sl.slp(0) # (0, 4096)
pl_es(pc, ['th', th]); sl.slp(0) # (0, 4096)
# ][0] && idx >= mx)
true) && idx >= mx)
.
555c
f = nil; mx = nil
.
544,545c
# (imem = @@Imem).mcall(a, op) || op
# (imem = @@Imem).send(opc, op) || op
(imem = @@Imem).send(a, op) || op
.
529,530c
# (tb == a || knid(a, :Array).! || 0 >= a.hgt) && (return a)
(tb == a || case a when Array then 0 >= a.hgt end) && (return a)
.
513c
# print s
puts s
.
511c
# s <<= "\n"
.
472,474c
# ctr = (cta = pl_g(0).afl('ctr', self)).shift
# pl_es(0, ['ctr', cta])
# ctr
.
468a
# [(cta = pl_g(0).afl('ctr', self)).shift, pl_es(0, ['ctr', cta])][0]
.
465a
## pl_s(n, pl)
## pl
end
def ref_pl0i; @@pl0i = pl_g(-1) end
# def to_ia(n)
def to_ia(n, lpl = self)
if 0 == n
# self[n]
lpl[n]
else
# @@Plmg.(pl_g(-1), self[n]) # c
@@Plmg.(@@pl0i, lpl[n]) # c
end
.
464c
pl_s(n, pl) # @@m.unlock
.
462a
# pl[i_k] = 'ctr' == k && ! knid(v, :Array) ? pl[i_k] + [v] : v # p
pl[i_k] = 'ctr' == k && ! knid(v, :Array) ? pl[i_k]<< v : v # p
## pl[i_k].send(('ctr' == k && ! knid(v, :Array) ? '<<' : '='), v) # p
## pl[i_k].send(('ctr' == k && ! knid(v, :Array) ? '<<' : 'replace'), v) # p
# pl[i_k = self.afl(k, ?i)] += [v] # q # ?
# pl[i_k] = (pl[i_k]<< v).send('ctr' == k && knid(v, :Array).! ? 'itself' : 'pop') # p # .itself higokan monami-ya.mrb:60510200 mruby:70410200
# pl[i_k] = (pl[i_k]<< v)['ctr' == k && knid(v, :Array).! ? 0 .. -1 : -1] # p # ?
.
461c
# 'ctr' == k && knid(v, :Array).! ? pl[i_k]<< v : pl[i_k] = v # p
.
448c
# def pl_es(n = 0, ary)
def pl_es(n = 0, ary = nil, pl = nil)
.
440c
# self[n] = 0 == n ? (@@plmg ||= ->(pi, pv) {pi.map { |v| [v[0], pv.shift]}}
# ).(pl_g(-1), pl) : pl # c
# self[n] = 0 == n ? @@Plmg.(pl_g(-1), pl) : pl # c
self[n] = 0 == n ? @@Plmg.(@@pl0i, pl) : pl # c
# ).(@@pl0i, pl) : pl # c
.
430a
##p to_ia(n, pl)
##n >= 0 && p( Rg.new(to_ia(n)).to_ra)
##n >= 0 && ( rg = Rg.new(to_ia(n)); p(rg.to_ra('th')))
#n >= 0 && ( rg = Rg.new(to_ia(n)); p(rg['ctr']))
##n >= 0 && p( to_ia(n))
.
412c
# @@Pldv = ->(pl) {pl.map { |a| a[1]}} # l
@@Pldv = ->(pl, n = 1) {pl.map { |a| a[n]}} # l
.
398,407c
## t > n ? n + 1 : n ## n + (t > n ? 1 : 0)
## n + [false, true].index(t > n) ## n + (((t > n) && 1) || 0)
## n + (t > n && 1 || 0) # n - ((n <=> t) >> 1)
## n + ((t <=> n) & 1)[0] ## n + (((t <=> n) + 1) & 2)[1] # higokan mruby 70410200
## n + ((((t <=> n) + 1) & 2) >> 1) ## n + ((t <=> n) + 1 >> 1)
.
359d
355,356c
# [yield(a), f.close][0]
## [yield(a), @m.unlock][0]
[yield(a), ## flg &&
f.close][0]
# @m.unlock][0]
.
353c
end ## if flg
.
339a
ref_pl0i
.
332,336c
# self.replace(self[0 .. self.size & ((n = @@rmth + 1) << 1) | n]) # ?? # higokan ? mruby:70410200 monami-ya.mrb:60510200
# self.slice!((self.size & ((n = @@rmth + 1) << 1) | n) + 1 .. -1) # higokan mruby:70410200 monami-ya.mrb:60510200
.
328c
# self[0] = [['th', [[thini]]], ['sym', [6309]], ['ctr', []]]
self[0] = [[pl0i[0], [[thini]]], [pl0i[1], [6309]], [pl0i[2], []]]
.
325c
# 3080410200 : 5x2 ok ( gc ) : monami-ya.mrb 8270410200 813e2af8 # www.monami-ya.jp
.
321a
pl0i = ['th', 'sym', 'ctr']
.
315d
307c
# def initialize
def initialize(*a)
.
304a
@@pl0i = nil
.
295a
# @@fl += '/loc' # RISC OS ?
.
274a
case op[0] when Numeric then op.inject(:+) else self.__send__(*op) end
.
271,273c
# def mcall(*op)
# case op[0] when Numeric then op.inject(:+) else self.send(*op) end
def send(*op) # fuantei ? mruby 70410200
.
263d
261d
246c
# def ta(l, cop) [l.shift || :getarg_a, l.shift || cop][0 .. l[-1] || 1] end
def ta(l, cop) [l[0] || :getarg_a, l[1] || cop][0 .. l[2] || 1] end
.
189a
# (f = @@fml).(lb).assoc(sym) # c
.
141a
# t -= t <=> 1
.
138c
@@slp = (((@@slp = NSLP_ >> 2) + (@@slp >> 5)) >> 7) + 1 >> 1 # conf.gem :github => 'matsumotory/mruby-sleep' # msleep usleep
# @@slp = 5 # conf.gem :github => 'matsumotory/mruby-sleep' # msleep usleep
.
121,130c
# (i > n = a.size) && i = n
# n = c = 0
# while c < i
# a[n] && yield(a[n], c) && a.delete_at(n) || n += 1
## (v = a[n]) && yield(v, c) && a.delete_at(n) || n += 1
# c += 1
# end
## end
# a
# end
.
116,119d
114d
111,112c
## def reject_c_th(a, i = nil)
# def reject_c_th(a, i)
.
108c
# self.replace a
f ? self.replace(a) : a
.
105c
# c += 1
.
101,102c
# n = c = 0
n = 0; c = -1
# while c < i
while i > c += 1 # c += 1 < i # -e:1: non float value (TypeError) ( monami-ya.mrb:60510200 mruby:70410200 )
.
90,91c
# def reject_c!(i)
# def reject_c!(i, a = self) # higokan ? mruby-thread:410200 monami-ya.mrb:60510200 mruby:70410200
def delete_if__c(i, a = nil)
# a = self
# f = (a == self) # higokan ? mruby-thread:410200 monami-ya.mrb:60510200 mruby:70410200
f = ! a
a ||= self
.
54,56c
# def sgp; self + self.abs >> 1 end
.
7a
TB = []
.
4a
NSLP_ = 6309 # nanosleep()
.
3c
((((((((([
:Array, :Numeric, :Fixnum, # :Float, :Bignum,
:Symbol, :String, # :Object,
:getarg_a, :getarg_b, :getarg_sbx, :getarg_bx,
:mk_opcode, :getarg_c,
:MOVE, :LOADL, :LOADI, :LOADSYM, :LOADSELF, :LOADT,
:ADD, :ADDI, :SUB, :SUBI, :MUL, :DIV, :EQ,
:JMP, :JMPIF, :JMPNOT, :RETURN, :SEND, :ENTER, :NOP,
:+, :-, :*, :/,
:__sr0, :__r0, :__sr01, :__r1_eq_sr01, :__i__r0,
:pool, :syms,
:ctr_s, :p
])))))))))
.
--
YAMAGUTIseisei ( str_h__namae = { :sei => "山口" , :mei => "青星" } )
http://hello.to/seisei/ mailto:seisei@.68..net tel:081-70-5152-1104
heiwa furiisekkusu 1tu
[toc] | [prev] | [next] | [standalone]
| From | YAMAGUTIseisei <seisei@hello.to> |
|---|---|
| Date | 2019-02-10 13:16 +0000 |
| Subject | jit-1_-_github__ysei~mruby-meta-circular-heiretu_-_nightly_-_2_0_1_9_0_2_1_0__0120910200.rb |
| Message-ID | <5C602426.2000502@hello.to> |
| In reply to | #11 |
1428,1429c
# stack.ps rg['sp']
stack.p = rg['sp']
.
1415c
# lpl.plini
plini(@@rmth, lpl) # 310200plini ?
# lpl.plini(@@rmth) # 410200plini
.
1413c
# rg['ctr', 1] = rg['ctr', 1].absb
# rg['ctr', 1] = absb(rg['ctr', 1])
# unless lpl.ctr_c {Slp.new.slp}
.
1411c
# unless fl.flatten[0]
if fl.empty? # && ! pco # d~ng
.
1399d
1392c
# ise<< iset(rg) if 0 <= rg['pc', nil, '-'] && pctj.pop != rg['pc'] # p # cp
ise<< iset(rg) if 0 <= rg['pc', nil, ?-] && pctj.pop != rg['pc'] # p # q # cp
.
1379d
1376,1377c
# ise.delete_if(&:resume)
ise.delete_if__c(1) { |fis, n| fis.resume}
.
1343c
# callinfo.pd
callinfo.p -= 1
.
1340c
# rg['pc', -1] = @callinfo[@cp] + 1
.
1336c
# callinfo.pd
callinfo.p -= 1
.
1329c
# callinfo.pd
callinfo.p -= 1
.
1319c
# if 0 == callinfo.pg
if 0 == callinfo.p
.
1233,1260d
1141,1142c
# fibi(@@iset2 ||= iset2, rgd, 0) {|rgd| rgd &&= nil}
fibi(@@iset2 ||= iset2, rgd) {rgd &&= nil}
.
1130,1139d
1128d
1116d
1108,1113d
1104,1105d
1101d
1089,1099c
# if rg
# ini.(rg) # c
# end
rg && ini.(rg) # c
.
1081,1082d
1070,1074c
# case k
# when 'th' then fv = fvl[oi <=> 0].(oi) # c
# end
# lopa.push(k, fv)
lopa.push(k, 'th' == k ? fvl[oi <=> 0].(oi) : fv) # c
.
1062,1065c
# opg = ->(oi, lopa = []) { # l
# i = -1
opg = ->(oi, lopa = []) { i = -1 # l
.
1053,1057d
1050c
# th = [] ##
.
1048c
bt = imem.fml('th', 'bt') # [1 .. -1]
.
1041c
))
.
1033c
# fml = imem.fml('th', sym) || (
fml = [sym] + (imem.fml('th', sym) || (
.
1030,1031c
pc, sp, cop, sym = rg # .to_a('pc', 'sp', 'cop', 'sym')
.
1028d
1026c
# pc1, fml, oa, th = nil
pc1, fml, oa, th, cop = nil
.
1012,1018c
# pc, sp, cop, sym = nil
.
1006,1007c
# fibi(@@fls2 ||= fls2, pc) {|pc| 0 > pc ? ~ pc : pc}
fibi(@@fls2 ||= fls2, pc, 1) {0 > pc ? ~ pc : pc}
.
994,1004d
982d
978,979c
# sp ||= s.ps(pl[i_sp][0])
sp ||= s.p = pl[i_sp][0]
pr || (pr, sy, mt = imem.fml('st', sym)) #[1 .. -1])
.
976d
972,973c
f = flg.all? # && r.all? { |f| case f when Numeric then true end}
.
960,962d
952d
947,948c
# lm.(isr0, s[(sz = plr.size) .. sz + ap = (ap >>= 1) + (ap >> 1)]) # c
lm.(isr0, s[(sz = plr.size) .. sz + ap = (ap += ap >> 1) >> 1]) # c
.
943,945d
936,938c
# r[0] = plr[r[1]] || lm.(isr0, r[1]) # c # r[0] ??
# _ = (_ = plr[r[1]]).nil? ? lm.(isr0, r[1]) : _ # c
pc1 = (pc1 = plr[r[1]]).nil? ? lm.(isr0, r[1]) : pc1 # c
# s[r[1]] = sy ? [s[r[1]], _].inject(sy) : _
s[r[1]] = sy ? [s[r[1]], pc1].inject(sy) : pc1
.
927,928c
# )][0] - 1
(pc1 = ~ pc + 1) - 1
.
922,924c
# ini = ->(pc) { [pc1 = ~ pc + 1, (
ini = ->(pc) {
.
916,918c
# sz = 4; ap = @@fls_w ||= (1 << sz)
ap = 1 << sz = 4; ap = @@fls_m ||=
.
914d
904,905d
888c
# @@fls_w, @@fls_m = nil
@@fls_m = nil
.
874d
868,869c
# Fiber.new { |m = 1|
# ctr.times {m = Fiber.yield(false)}
Fiber.new { |m = 1| ctr.times {m = Fiber.yield(false)}
.
856a
# include M__PlIni # 310200plini ? # ok ? ( osx10.4/ppc 1koa ) # omoi ? ( osx10.4/ppc 2koa )
# module M__PlIni # osx/ppc http://master.dl.sourceforge.net/project/hpc/OldFiles/gcc-bin.tar.gz#4p3__3.400 #gcc-tiger-bin.tar.gz#4p1__1.400 # cctools-590.36.dmg
# def plini
def plini(rmth = nil, pl = self)
thini = false
pl0i = ['th', 'sym', 'ctr']
# 3080410200 : gene gc off : mruby 6170410200 d17506c1
# 3080410200 : 5x2 ng ( segmentation fault ) : mruby 3080410200 0878900f
# 3080410200 : 5x2 ok ( gc ) : monami-ya.mrb 8270410200 813e2af8 # http://www.monami-ya.jp/
# mruby 20410200 : higokan ? : ary_many
# mruby 70410200 : 4x2 ok , 5x2 ng
# self[0] = [['th', [[thini]]], ['sym', [6309]], ['ctr', []]]
# self[0] = [[pl0i[0], [[thini]]], [pl0i[1], [6309]], [pl0i[2], []]]
pl[0] = [[pl0i[0], [[thini]]], [pl0i[1], [6309]], [pl0i[2], []]]
# pl[0] = [[[thini]], [68000], []].map.with_index { |v, i| [pl0i[i], v]}
# if 1 < self.size # self.size : 0 ?? # higokan ? mruby:70410200 monami-ya.mrb:60510200
# self.replace(self[0 .. self.size & ((n = @@rmth + 1) << 1) | n]) # ?? # higokan ? mruby:70410200 monami-ya.mrb:60510200
# self.slice!((self.size & ((n = @@rmth + 1) << 1) | n) + 1 .. -1) # higokan mruby:70410200 monami-ya.mrb:60510200
# self[1] && self[0 .. -1] =
# self[0 ... self.size & ((n = @@rmth + 1) << 1) | n]
pl[1] && pl[0 .. -1] = pl[0 .. pl.hgt & ((n = rmth + 1) << 1) | n]
# ref_pl0i
pl.ref_pl0i
end
# end
.
835c
# @pl = ENVary.new
# @pl = ENVary.new(true) # 410200plini
plini(@@rmth, @pl = ENVary.new(true)) # 310200plini ?
.
743d
731,741c
# def pg() @p end
# def pi() @p += 1 end
# def pd() @p -= 1 end
# def ps(i)
## id = self.object_id
## a.empty? || @p = a[0]
# @p = i
## @p
# end
.
711d
703c
# attr_accessor :p
attr_accessor :p, :s
.
681c
# @@f = ''
@@f = 0x0.chr * 0x20
.
662,663d
642,643c
sl = @@slp
# (sl = @@slp).slp
.
628,632c
# pl_es(pc, ['th', th]); sl.slp(0) # (0, 4096)
pl_es(pc, ['th', th]); sl.slp 0 # (0, 4096)
# true) && idx >= mx)
f) && idx >= mx)
.
626d
619,624c
th[idx] = s_id(th[idx], pc - 1) #### if ckth(th[idx], 0) # fuguai taisaku
.
614c
# f = nil; mx = nil
f, mx = nil
.
603d
591,592c
# knid(a, :Array) ? __method__(a, pc) : a # s_id(a, pc) : # 310200plini ?
case a when Array then __method__(a, pc) else a end # s_id(a, pc) else # 310200plini ?
.
587,588c
# (tb == a || knid(a, :Array).! || 0 >= a.hgt) && (return a)
# (tb == a || case a when Array then 0 >= a.hgt end) && (return a)
((tb = TB) == a || case a when Array then 0 >= a.hgt end) && (return a)
.
585d
583c
# tb = TB
.
570d
568d
526,531c
c = pl_g(0).afl('ctr', self)
[c.shift, pl_es(0, ['ctr', c])][0]
.
524c
# cta = pl_g(0).afl('ctr', self)
# [cta.shift, pl_es(0, ['ctr', cta])][0]
.
514,520c
# if 0 == n
# lpl[n]
# else
# @@Plmg.(@@pl0i, lpl[n]) # c
# end
lpl = lpl[n]; 0 == n ? lpl : @@Plmg.(@@pl0i, lpl) # c
.
512d
481d
470,471d
467,468d
455c
##p to_ia(n, pl)
.
434d
380,381d
364,365d
361,362c
# include M__PlIni # 410200plini # ok ? ( osx10.4/ppc 1koa )
.
344,359d
336c
a || return
# plini
# plini(@@rmth) # 410200plini
.
331,332c
# def initialize(*a)
def initialize(a = nil)
.
303a
# module M__PlIni # Omoi ?
.
294,295c
# case op[0] when Numeric then op.inject(:+) else self.__send__(*op) end
case op[0] when Numeric then op.inject(:+) else __send__(*op) end
.
285c
# a[@@I_s__r1 + 1].map{ |v| v.nil? ? v : send(*a[0 .. @@I_s__r0 + 1], v)}
return a[i_s__r1].map{ |v| v.nil? ? v : send(*a[0 .. @@I_s__r0 + 1], v)}
.
283c
# case a[@@I_s__r1 + 1]
case a[i_s__r1 = @@I_s__r1 + 1]
.
271,279c
# def s__sr0( *a) a[@@I_s__s][ a[@@I_s__r0]] end
# def s__r0( *a) a[@@I_s__r0] end
# def s__sr01( *a) a[@@I_s__s][ a[@@I_s__r0] + 1] end
# def s__i_pool_r0( *a) a[@@I_s__i].pool[a[@@I_s__r0]] end
# def s__i_syms_r0( *a) a[@@I_s__i].syms[a[@@I_s__r0]] end
# def s__r1_eq_sr01(*a) a[@@I_s__s][ a[@@I_s__r1]] == a[@@I_s__s][a[@@I_s__r0] + 1] end
def s__sr0( *a) a[@@I_s__s][ a[@@I_s__r0]] end
def s__r0( *a) a[@@I_s__r0] end
def s__sr01( *a) a[@@I_s__s][ a[@@I_s__r0] + 1] end
# def s__i_pool_r0( *a) a[@@I_s__i].pool[ a[@@I_s__r0]] end
# def s__i_syms_r0( *a) a[@@I_s__i].syms[ a[@@I_s__r0]] end
def s__i__r0( *a) a[@@I_s__i].send(a[@@I_s__mt])[a[@@I_s__r0]] end
def s__r1_eq_sr01(*a) a[@@I_s__s][ a[@@I_s__r1]] ==
a[@@I_s__s][ a[@@I_s__r0] + 1] end
.
267,269c
# @@I_s__i = 0; @@I_s__s = 1; @@I_s__r0 = 2; @@I_s__r1 = 3
@@I_s__i = 0; @@I_s__s = 1; @@I_s__r0 = 2; @@I_s__r1 = 3; @@I_s__mt = 4
.
212a
def ta(l, cop) [l[0] || :getarg_a, l[1] || cop][0 .. l[2] || 1] end
.
208,210c
# @@fml.(lb).assoc(sym) # c
## (f = @@fml).(lb).assoc(sym) # c
@@fml.(lb).assoc(sym)[1 .. -1] # c
# (f = @@fml).(lb).assoc(sym)[1 .. -1] # c
.
185,186c
# [:MOVE, :__sr0], [:LOADL, :__i_pool_r0],
# [:LOADI, :__r0 ], [:LOADSYM, :__i_syms_r0],
[:MOVE, :__sr0], [:LOADL, :__i__r0, nil, :pool],
[:LOADI, :__r0 ], [:LOADSYM, :__i__r0, nil, :syms],
.
156,157c
@@slp = (((@@slp = NSL_ >> 2) + (@@slp >> 5)) >> 7) + 1 >> 1 # conf.gem :github => 'matsumotory/mruby-sleep' # msleep usleep
.
133,148d
110,130c
# f = ! a
# a ||= self
(f = ! a) && a = self
# unless i then a.delete_if(&:yield) else a.each_with_index { |v, n|
# break if n >= i; v && yield(v, n) && a.delete_at(n)} end
(i > n = a.size) && i = n
# n = 0; c = -1
c = (n = 0) - 1
while i > c += 1 # c += 1 < i # -e:1: non float value (TypeError) ( monami-ya.mrb:60510200 mruby:70410200 )
a[n] && yield(a[n], c) && a.delete_at(n) || n += 1
# (v = a[n]) && yield(v, c) && a.delete_at(n) || n += 1
end
.
108d
105d
71c
# def absb
# def absb(i)
## self + (((0 <=> self) + 1 >> 1 << 0x10) - 1 & self << 1)
# i + (((0 <=> i) + 1 >> 1 << 0x10) - 1 & i << 1)
# end
.
19c
NSL_ = 6309 # nanosleep()
.
15c
# :ctr_s, :p
:ctr_s, :p, :s
.
--
YAMAGUTIseisei ( str_h__namae = { :sei => "山口" , :mei => "青星" } )
http://hello.to/seisei/ mailto:seisei@.68..net tel:081-70-5152-1104
heiwa furiisekkusu 1tu
[toc] | [prev] | [next] | [standalone]
| From | YAMAGUTIseisei <seisei@hello.to> |
|---|---|
| Date | 2019-03-17 09:53 +0000 |
| Subject | jit-1_-_github__ysei~mruby-meta-circular-heiretu_-_nightly_-_2_0_1_9_0_3_1_7__7130910200.rb |
| Message-ID | <5C8E192E.6010002@hello.to> |
| In reply to | #12 |
1335d
1318c
# Slp.new.slp unless lpl.ctr_c
.
1312d
1301c
# (pctj<< (pco = rg['pc']) + 1) if ?J == rg['sym'].to_s[0] # p # q
(pctj<< 1 + pco = pc) if ?J == sym.to_s[0] # p # q
.
1297c
# fl<< fls(rg['pc']) # p
fl<< fls(pc) # p
.
1292,1294c
# if ?J != rg['sym'].to_s[0] && ! [:ENTER, :SEND, :RETURN, :NOP].include?(rg['sym']) # q
if ?J != sym.to_s[0] && ! [:ENTER, :SEND, :RETURN, :NOP].include?(sym) # q
ise<< iset(rg) if 0 <= rg['pc', nil, ?-] && pctj.pop != pc # p # q # cp
.
1290c
# lpl.verb "#{rg['pc'].to_xeh} #{rg['sym']} #{rg['cop'].to_xeh}" # if rg['sym']
lpl.verb "#{pc.to_xeh} #{sym} #{rg['cop'].to_xeh}" # if sym
.
1286c
# c, sym = @@opf.(irep, rg['pc'], imem) # c
c, sym = @@opf.(irep, pc = rg['pc'], imem) # c
.
1281c
# fl.delete_if__c(1) { |v, n| v.resume(n)}
fl.delif_c(1) { |v, n| v.resume(n)}
.
1278,1279c
# ise.delete_if__c(1) { |fis, n| fis.resume}
ise.delif_c(1) { |fis, n| fis.resume}
.
1244d
1240d
1236d
1228d
1217d
1153d
1141d
1130d
1090c
# end
.
1078c
# def opf(irep, pc)
.
1067,1068c
# fibi(@@iset2 ||= iset2, rgd) {rgd &&= nil}
# fibi(@@iset2 ||= iset2, rgd) {rgd && nil}
fibi(@@iset2 ||= iset2, rgd) {nil}
.
1065d
1051a
# [thi, th] ###
.
1047a
rg && ini.(rg) # c
.
1043,1046d
1031c
# end
.
1023,1029c
# bt[oi].each_slice(2) { |k, v|
# fv = fml[i += 1]
bt[oi].each_slice(2) { |k, v| fv = fml[i += 1]
# if v # && knid(fv, :Array)
v && # knid(fv, :Array) &&
.
1019,1020d
1010,1012c
bt = imem.fml('th', 'bt')
.
996,999c
## printf("Unkown code %s \n", OPTABLE_SYM[imem.get_opcode(cop)])
## printf("Unkown code %s \n", OPTABLE_SYM[rou(:get_opcode, cop)])
## printf("Unkown code %s \n", OPTABLE_SYM[@@rou.(:get_opcode, cop)]) # c
# pl.verb("Unkown code #{sym} ") # .to_s
.
993,994d
988d
986d
979,980d
973,974c
# fibi(@@fls2 ||= fls2, pc, 1) {0 > pc ? ~ pc : pc}
fibi(@@fls2 ||= fls2, ~ pc, 1) {0 > pc ? ~ pc : pc}
.
970c
# pc = ~ pc
.
958c
pr || (pr, sy, mt = imem.fml('st', sym))
.
956d
952c
f = flg.all? # && r.all? { |f| # case f when Numeric then true end}
# case f when Numeric then true else lpl.verb(f); false end}
.
941a
# ca = ca.force #? mruby 410200
.
934c
# ]
] # .lazy #? mruby 410200
.
930,932c
# 0 == s.size ? sl.slp(0) : plr +=
0 == s.size ? sl.slp(0) :
# [sl.slp(0),
# plr +=
# lm.(isr0, s[(sz = plr.size) .. sz + ap = (ap += ap >> 1) >> 1]) # c
plr += lm.(s[(sz = plr.size) .. # c
sz + (ap = (ap += ap >> 1) >> 1) + (ap <=> 0)])
# ].lazy.to_a[s.s.size <=> 0] # .force
.
922,924c
# pc1 = (pc1 = plr[r[1]]).nil? ? lm.(isr0, r[1]) : pc1 # c
pc1 = (pc1 = plr[r[1]]).nil? ? lm.(r[1]) : pc1 # c
.
916,917c
## lm = ->(isr0, r1) {r1.nil? ? r1 : imem.send(pr, *isr0, r1, mt)} # l
# lm = ->(r1) {r1.nil? ? r1 : imem.send(pr, *isr0, r1, mt)} # l
# lm = ->(isr0, r1) {imem.send(pr, *isr0, r1, mt)} # l
lm = ->(r1) {imem.send(pr, *isr0, r1, mt)} # l
.
912d
908d
903,904c
# ap = 1 << sz = 4; ap = @@fls_m ||=
ap = 1 << sz = 3; ap = @@fls_m ||=
.
901c
# f = false; flg = [false, false]
flg = [f = false, f]
.
860,861c
# loop {
# sl.slp 0
loop { sl.slp 0
.
857,858d
840d
836,838c
# pl[1] && pl[0 .. -1] = pl[0 .. pl.hgt & ((n = rmth + 1) << 1) | n]
0 < pl.hgt && pl[0 .. -1] =
pl[0 .. pl.hgt & ((thini = rmth + 1) << 1) | thini]
.
826,828c
# pl[0] = [[pl0i[0], [[thini]]], [pl0i[1], [6309]], [pl0i[2], []]]
pl[0] = [[pl0i[0], [[thini]]], [pl0i[1], [NSL_]], [pl0i[2], []]]
.
823c
# 3080410200 : 5x2 ok ( gc ) : monami-ya.mrb 8270410200 813e2af8 # www.monami-ya.jp
.
816d
790c
plini(@@rmth, @pl = ENVary.new(true)) # 310200plini
.
788d
690,696d
681d
667d
658d
635,636c
# @@f = 0x0.chr * 0x20
@@f = [0x0.chr * 0x20] * 0x4
.
618c
# fpl = delete_if__c(1, fpl) { |fb, n| fb.resume}
fpl = delif_c(1, fpl) { |fb, n| fb.resume}
.
602,603d
599d
583,588c
# Fiber.yield((f = #### th[idx].nil?.! && # fuguai taisaku
Fiber.yield(((f = #### th[idx].nil?.! && # fuguai taisaku
# ckth(th[mx = thn.hgt], 3)) && (
ckth(th[mx = thn.hgt], 3)) ? (
pl_es(pc, ['th', th]); sl.slp 0 # , 4096
# f) && idx >= mx)
f) : nil) && idx >= mx)
.
579c
Fiber.new { ##
.
576d
563,565c
case a when Numeric then true end || # (
# verb "#{pc.to_xeh} #{a} #{op.to_xeh}")
verb("#{pc.to_xeh} #{a} #{op.to_xeh}")
.
554,555c
# knid(a, :Array) ? __method__(a, pc) : a # s_id(a, pc) : #? mruby 310200
case a when Array then __method__(a, pc) else a end # s_id(a, pc) else #? mruby 310200
.
550,551c
# ((tb = TB) == a || case a when Array then 0 >= a.hgt end) && (return a)
((tb = TB.dup) == a || case a when Array then 0 >= a.hgt end) && (return a)
.
546c
# tb = TB
.
532,536c
# def verb(s)
# @@m.lock
# puts s
# @@m.unlock
# end
def verb(s) @@m.lock; puts s; @@m.unlock end
.
515c
# bfsz = (a = [knid(th, :Array), [] == th]).size # t
bfsz = (a = [knid(th, :Array), tb == th]).size
.
513a
tb = TB.dup
.
482,489c
# def to_ia(n, lpl = self)
# lpl = lpl[n]; 0 == n ? lpl : @@Plmg.(@@pl0i, lpl) # c
# end
.
473a
# pl[i_k = self.afl(k, ?i)] =
# (pl[i_k]<< v)['ctr' == k && knid(v, :Array).! ? 0 .. -1 : -1] # p # ?
.
430,434d
387,398d
378,379c
# @@loc.ploc(n) { |a| JSON::parse(ENV[@@idb + a[0]])}
@@loc.ploc(n) { |a| (a = ENV[@@idb + a[0]]) &&
.
368c
@@loc.ploc(n, v) { |a| ENV[@@idb + a[0]] = JSON::generate(a[1])}
.
345,363d
336,338c
# 1.step(@@rmth + 1) { |i|
# self[i] = *a
# }
1.step(@@rmth + 1) { |i| self[i] = *a}
.
332d
325d
322a
@@loc = Loc.new(@@fl)
.
294a
module M__Loc
@@slp = Slp.new
def initialize(nm)
@nm = nm
end
def ploc(*a)
# s = nil
# @m.lock
begin
f = File.open(@nm, ?w) # q
f.flock(File::LOCK_EX)
rescue
# f.close # ?
@@slp.slp 0
# (s ||= @@slp).slp 0
retry
end ## if flg
a[0] = a[0].to_xeh
[yield(a), ## flg &&
f.close][0]
# @m.unlock][0]
# a = yield(r)
end
end
class Loc
include M__Loc
end
.
284d
281,282d
274,276c
# return a[i_s__r1].map{ |v| v.nil? ? v : send(*a[0 .. @@I_s__r0 + 1], v)}
return a_r1.map{ |v| v.nil? ? v : __send__(*a[0 .. @@I_s__r0 + 1], v)}
# else send(*a)
else __send__(*a)
.
271,272c
# case a[i_s__r1 = @@I_s__r1 + 1]
case a_r1 = a[@@I_s__r1 + 1]
.
253,259d
250d
188,191c
# @@fml.(lb).assoc(sym)[1 .. -1] # c
## (f = @@fml).(lb).assoc(sym)[1 .. -1] # c
@@fml.(lb).assoc(sym)[1 .. -1] || ( # c
# (f = @@fml).(lb).assoc(sym)[1 .. -1] || ( # c
# printf("Unkown code %s \n", OPTABLE_SYM[imem.get_opcode(cop)])
# printf("Unkown code %s \n", OPTABLE_SYM[rou(:get_opcode, cop)])
# printf("Unkown code %s \n", OPTABLE_SYM[@@rou.(:get_opcode, cop)]) # c
print("Unkown code #{sym} \n") # .to_s
return nil
# raise
## rg = Fiber.yield(nil)
)
.
184d
163,164d
138a
# t += 1 - (t <=> 0)
.
135a
# @@slp = (((@@slp = NSL_ >> 1) + (@@slp >> 5)) >> 8) + 1 >> 1
.
123c
# a[n] && yield(a[n], c) && a.delete_at(n) || n += 1
a[n] && yield(a[n], c) && (a.delete_at(n); redo); n += 1
.
120d
113,117c
# (f = ! a) && a = self
a ||= f = self # a ||= (f = true; self)
# i.! ? a.delete_if(&:yield) : a.each_with_index { |v, n|
# break if n >= i; v && yield(v, n) && a.delete_at(n)}
.
111c
# def delete_if__c(i, a = nil)
def delif_c(i, a = nil)
.
109d
102c
# ?i != m ? self[m.afl(k, ?i)] : self[0].index(self[0].assoc(k)) # self.index(idx) # q 2
?i != m ? self[m.afl(k, ?i)] : (self0 = self[0]).index(self0.assoc(k)) # self.index(idx) # q 2
## ?i != m ? self[m.afl(k, ?i)] : loop {self[0].index(self[0].assoc(k)) && break} # self.index(idx) # fuguai taisaku # q 2
# ?i != m ? self[m.afl(k, ?i)] : loop {(self0 = self[0]).index(self0.assoc(k)) && break} # self.index(idx) # fuguai taisaku # q 2
.
15d
4,5c
# :Array, :Numeric, :Fixnum, # :Float, :Bignum,
# :Symbol, :String, # :Object,
:Array, :Numeric, :Fixnum, :Symbol, :String,
.
2a
# Thread.new((((((((([
.
--
YAMAGUTIseisei ( str_h__namae = { :sei => "山口" , :mei => "青星" } )
http://hello.to/seisei/ mailto:seisei@.68..net tel:081-70-5152-1104
heiwa furiisekkusu 1tu
[toc] | [prev] | [next] | [standalone]
| From | YAMAGUTIseisei <seisei@hello.to> |
|---|---|
| Date | 2019-04-21 10:40 +0000 |
| Subject | jit-1_-_github__ysei~mruby-meta-circular-heiretu_-_nightly_-_2_0_1_9_0_4_2_1__1240910200.rb |
| Message-ID | <5CBC48AE.5090805@hello.to> |
| In reply to | #13 |
1325c
## @rmt.join
.
1318,1319d
1311,1315c
.
1288,1289d
1271d
1266,1267c
# fl<< fls(pc) # p
fl<< fibi(@@fls ||= fls, ~ pc, 1) { |pc| 0 > pc ? ~ pc : pc} # p
.
1263c
# ise<< iset(rg) if 0 <= rg['pc', nil, ?-] && pctj.pop != pc # p # q # cp
0 <= rg['pc', nil, ?-] && pctj.pop != pc && ise<< fibi(@@iset ||= # cp # q # p
### iset, rg) {nil} # ?
# iset, rg.to_a('pc', 'sp', 'cop', 'sym')) {nil}
## iset, rg) {} # ?
iset, rg.to_a('pc', 'sp', 'cop', 'sym')) {}
.
1261d
1258,1259c
# lpl.verb "#{pc.to_xeh} #{sym} #{rg['cop'].to_xeh}" # if sym
loc.verb "#{pc.to_xeh} #{sym} #{rg['cop'].to_xeh}" # if sym
.
1247d
1244d
1078,1079d
1067a
loc = @@loc
.
1035,1043c
# @@iset2 = nil
@@iset = nil
# def iset(rg)
## rgd = rg.dup
# rgd = rg.to_a('pc', 'sp', 'cop', 'sym')
#
## fibi(@@iset2 ||= iset2, rgd) {nil}
# fibi(@@iset ||= iset, rg.to_a('pc', 'sp', 'cop', 'sym')) {nil}
# end
.
1030a
oa.empty? || oa.clear
.
1027c
# rg, m = Fiber.yield(0 != thi && ht <= thi && (thi = -1; true)) ##
rg, m = Fiber.yield(0 != thi && ht <= thi && ! ! thi = -1) ##
.
1025d
1021c
# pl.pl_es(pc1, opg.(thi) + [oa, []][thi <=> 0]) # c
pl.pl_es(pc1, opg.(thi) + oa) # c
.
1013,1014d
1006a
# lopa.push(k, 'th' != k ? fv : ( #? mruby 410200
## lopa.push(k, 'th' != k ? fv : fvl.force[oi <=> 0].(oi)) # c #? mruby 410200
# case fvl when Array then else fvl = fvl.force end # higokan mruby 70410200 #? mruby 410200
# knid(fvl, :Array) || fvl = fvl.force #? mruby 410200
# fvl[oi <=> 0].(oi))) # c
.
1004d
1001,1002d
999c
# opg = ->(oi, lopa = []) { i = -1 # l
opg = ->(oi, lopa = [], i = -1) { # l
.
997c
((ht = fv.hgt) <=> oi) >> 1]}] # .lazy #? mruby 410200
.
978,981d
976c
pc, sp, cop, sym = rg ## .to_a('pc', 'sp', 'cop', 'sym') # ?
.
965,966c
# def iset2 ##
def iset ##
.
956,963c
# @@fls2 = nil
@@fls = nil
# def fls(pc)
# fibi(@@fls2 ||= fls2, ~ pc, 1) {0 > pc ? ~ pc : pc}
# end
.
948,949c
# isr0 = [i, s, r0]
isr0 = [mt ? i : s, r[0]]
sz = plr.size
# ca[flg[1] ? 0 : 1].(r) # c
ca[
# ca.force[ #? mruby 410200
flg[1] ? 0 : 1].(r) # c
.
940,941c
f = flg.all? # && r.all? { |f|
# case f when Numeric then true else @@loc.verb(f); false end}
.
929d
924c
# lpl.verb "#{pc.to_xeh} #{sym} #{r[0].to_xeh} #{r[1].to_xeh}"
loc.verb "#{pc.to_xeh} #{sym} #{r[0].to_xeh} #{r[1].to_xeh}"
.
920d
913,918c
# plr += lm.(s[(sz = plr.size) .. # c
# sz + (ap = ap += (ap >> 1) >> 1) + (ap <=> 0)])
plr += lm.(s[sz .. sz + (ap = (ap += ap >> 1) >> 1)]) # + (ap <=> 0)]) # c # c
.
911d
904,905c
# pc1 = (pc1 = plr[r[1]]).nil? ? lm.(r[1]) : pc1 # c
pc1 = (pc1 = plr[r[1]] # ; r[1] >= sz ||
pc1.nil?) ? lm.(r[1]) : pc1 # c
.
898d
896d
885d
882d
873d
871c
# i_th = lpl.afl('th', ?i) # q
.
866,867c
loc = @@loc
sl = @@slp
.
860,861c
# def fls2 ##
def fls ##
.
858d
839,846c
# Fiber.new { |m = 1| ctr.times {m = Fiber.yield(false)}
# loop { sl.slp 0
Fiber.new { |m = 1| loop { sl.slp 0
# m = Fiber.yield(fb.resume(p1, m))
m = Fiber.yield(0 < ctr ? ! ctr -= 1 :
[fb.resume(p1, m), p1 = yield(p1)][0])}}
# p1 = yield(p1)
# }
# }
.
819,821c
# 0 < pl.hgt && pl[0 .. -1] =
(0 < thini = pl.hgt) && pl[0 .. -1] =
# pl[0 .. pl.hgt & ((thini = rmth + 1) << 1) | thini]
pl[0 .. thini & ((thini = rmth + 1) << 1) | thini]
.
810,812c
pl[0] = [[pl0i[0], [[thini]]], [pl0i[1], [6309]], [pl0i[2], []]]
# pl[0] = [[pl0i[0], [[thini]]], [pl0i[1], [NSL_]], [pl0i[2], []]]
# self[0] = [[[thini]], [68000], []].map.with_index { |v, i| [pl0i[i], v]}
.
807c
# 3080410200 : 5x2 ok ( gc ) : monami-ya.mrb 8270410200 813e2af8 # http://www.monami-ya.jp/
.
775c
plini(@@rmth, @pl = ENVary.new(true)) # 310200plini ?
.
751a
@@loc = Loc.new
.
631,632c
# @@f = [0x0.chr * 0x20] * 0x4
@@f = 0x0.chr * (0x20 << 2)
@@bm = 0xff.chr
.
613d
588c
# f && idx -= (idx <=> mx) >> 1 ##
.
580,586c
Fiber.yield((( # f = #### th[idx].nil?.! && # fuguai taisaku
# ckth(th[mx = thn.hgt], 3)) ? (
# pl_es(pc, ['th', th]); sl.slp 0 # , 4096
ckth(th[mx = thn.hgt], 3)) ? (pl_es(pc, ['th', th]); sl.slp 0 # , 4096
# f) : nil) && idx >= mx)
true) : verb.call) && [idx >= mx, idx -= (idx <=> mx) >> 1][0]) ##
.
574c
# f, mx = nil
# verb = ->{nil}
verb = ->{}
.
572d
567d
560,564c
# a, op = a
# case a when Numeric then true end ||
# verb("#{pc.to_xeh} #{a} #{op.to_xeh}")
# @@loc.verb("#{pc.to_xeh} #{a} #{op.to_xeh}")
(loc = @@loc).verb("#{pc.to_xeh} #{a[0]} #{a[1].to_xeh}")
# (imem = @@Imem).send(a, op) || op
(imem = @@Imem).send(*a) || a[1]
.
552,553c
## knid(a, :Array) ? __method__(a, pc) : a # s_id(a, pc) : #? mruby 310200
# case a when Array then __method__(a, pc) else a end # s_id(a, pc) else #? mruby 310200
# knid(a, :Array) ? s_id(a, pc) : a # __method__(a, pc) : #? mruby 410200
case a when Array then s_id(a, pc) else a end # __method__(a, pc) else #? mruby 410200
.
548,549c
# ((tb = TB.dup) == a || case a when Array then 0 >= a.hgt end) && (return a)
(TB.dup == a || case a when Array then 0 >= a.hgt end) && (return a)
.
544d
529,534c
# def verb(s) @@m.lock; puts s; @@m.unlock end
.
511,512c
# bfsz = (a = [knid(th, :Array), tb == th]).size
bfsz = (a = [knid(th, :Array), TB.dup == th]).size
.
509c
# tb = TB.dup
.
487,489d
482,484d
473a
['ctr' == k, k = self.afl(k, ?i)][0] && # q
knid(v, :Array).! ?
# case v when Array then true end.! ? # higokan ? mruby 70410200
pl[k]<< v : pl[k] = v # p
.
466c
# pl[i_k] = 'ctr' == k && ! knid(v, :Array) ? pl[i_k]<< v : v # p
.
461c
# i_k = self.afl(k, ?i) # q
.
424,426c
# (nil == @@fxnm) && @@fxnm = (Float == self.afl('ctr')[0].class # furui mattn/mruby-json
# (nil == @@fxnm) && @@fxnm = (Float == self.ctr_r.class) # furui mattn/mruby-json
# (nil == @@fxnm) && @@fxnm = (Float == self.afl('sym')[0].class) # furui mattn/mruby-json
.
411c
# @@fxnm = nil # furui mattn/mruby-json
.
369,371d
347c
# (Time.now.to_f - 0x3fffffff.to_f << 0x10).to_s.split(?.)[0][-8..-1].to_xeh # q
.
334c
# @@m = Mutex.new
.
295,326d
285c
# case op[0] when Numeric then op.inject(:+) else __send__(*op) end
case op[0] when Numeric then op.inject else __send__(*op) end
.
278d
276d
273d
267c
# def s__i__r0( *a) a[@@I_s__i].send(a[@@I_s__mt])[a[@@I_s__r0]] end
def s__i__r0( *a) a[@@I_s__s].send(a[@@I_s__mt])[a[@@I_s__r0]] end
.
260c
# @@I_s__i = 0; @@I_s__s = 1; @@I_s__r0 = 2; @@I_s__r1 = 3; @@I_s__mt = 4
@@I_s__s = 0; @@I_s__r0 = 1; @@I_s__r1 = 2; @@I_s__mt = 3
.
204,205d
197c
# print("Unkown code #{sym} \n") # .to_s
(loc = @@loc).verb("Unkown code #{sym} ") # .to_s
.
190,191d
186,187c
def ta(l, cop) [l[0] || :getarg_a, l[1] || cop][0 .. l[2] || 1] end
.
165a
@@loc = Loc.new
.
164a
module M__Loc # Inspired by Professor HidetosiNagai http://rubykaigi.org/2011/ja/schedule/details/17S05/#KyuTech
(
@@m = Mutex.new
@@slp = Slp.new
)
# def initialize(nm)
def initialize(nm = nil)
@nm = nm
end
def ploc(*a)
GC.disable # g
# s = nil
# @m.lock
# @@m.lock
begin
f = File.open(@nm, ?w) # q
f.flock(File::LOCK_EX)
rescue
# f.close # ?
@@slp.slp 0
# (s ||= @@slp).slp 0
# retry
@nm && retry
end ## if flg
a[0] = a[0].to_xeh
[yield(a), ## flg &&
f.close][0]
# @m.unlock][0]
# @@m.unlock][0]
# a = yield(r)
end
def verb(s)
GC.disable # g
@@m.lock
puts s
@@m.unlock
end
end
class Loc
include M__Loc
end
.
148,150c
# (self.size << 4).times {sleep 0; (true == true).is_a?(Object); sleep 0}
.
138c
@@slp = (((@@slp = NSL_ >> 2) + (@@slp >> 5)) >> 7) + 1 >> 1 # conf.gem :github => 'matsumotory/mruby-sleep' # bamchoh/mruby-sleep # msleep usleep
.
122,129c
[! a, (a ||= self # a ||= f = self # a ||= (f = true; self)
(i > n = a.size) && i = n
c = (n = 0) - 1
while i > c += 1 # c += 1 < i # -e:1: non float value (TypeError) ( monami-ya.mrb:60510200 mruby:70410200 )
# a[n] && yield(a[n], c) && a.delete_at(n) || n += 1
a[n] && yield(a[n], c) && (a.delete_at(n); redo); n += 1
# (v = a[n]) && yield(v, c) && a.delete_at(n) || n += 1
end
# f ? self.replace(a) : a
)][0] ? self.replace(a) : a # f ? self.replace(a) : a
.
117,118d
114d
102,106c
## self[0].index(k) # higokan mruby 10410200 ( irep.rb )
# ?i != m ? self[m.afl(k, ?i)] : (self0 = self[0]).index(self0.assoc(k)) # self.index(idx) # q 2
?i != m ? self[m.afl(k, ?i)] : (s0 = self[0]).index(s0.assoc(k)) # self.index(idx) # q 2
## ?i != m ? self[m.afl(k, ?i)] : loop {(self0 = self[0]).index(self0.assoc(k)) && break} # self.index(idx) # fuguai taisaku # q 2
# ?i != m ? self[m.afl(k, ?i)] : loop {(s0 = self[0]).index(s0.assoc(k)) && break} # self.index(idx) # fuguai taisaku # q 2
.
88c
# (i + self.first .. i + self.last - (self.exclude_end? ? 1 : 0))
i + self.first .. i + self.last - (self.exclude_end? ? 1 : 0)
.
70,71d
17,18c
# :ctr_s, :p, :s
:ctr_s, :p, :s].clear
#])))))))))
)))))))))
.
4,6c
# ((((((((([
((((((((( [ # Thread.new [
.
--
YAMAGUTIseisei ( str_h__namae = { :sei => "山口" , :mei => "青星" } )
http://hello.to/seisei/ mailto:seisei@.68..net tel:081-70-5152-1104
heiwa furiisekkusu 1tu
[toc] | [prev] | [next] | [standalone]
| From | YAMAGUTIseisei <seisei@hello.to> |
|---|---|
| Date | 2019-06-09 09:28 +0000 |
| Subject | jit-1_-_github__ysei~mruby-meta-circular-heiretu_-_nightly_-_2_0_1_9_0_6_0_9__9060910200.rb |
| Message-ID | <5CFCD132.7020504@hello.to> |
| In reply to | #14 |
1332a
# GC.start # g
.
1331a
# GC.stress = true # g
# GC.start # g
.
1280a
# if pco.! && fl.empty?
.
1268a
.
1264,1265c
# fl<< fibi(@@fls ||= fls, ~ pc, 1) { |pc| 0 > pc ? ~ pc : pc} # p
fl<< fibi(@@fls ||= fls, ~ pc, 1) { |pc| pc} # p
.
1257,1258d
1254,1255c
# if ?J != sym.to_s[0] && ! [:ENTER, :SEND, :RETURN, :NOP].include?(sym) # q
if (ifj.(sym) && ! ifs.(sym)) # c 2
.
1251d
1245,1247c
# c, sym = @@opf.(irep, pc = rg['pc'], imem) # c
c, sym = @@opf.(irep, pc = rg['pc']) # c
.
1234a
ifj = -> (sym) {?J != sym.to_s[0]} # l # q
ifs = -> (sym) {[:ENTER, :SEND, :RETURN, :NOP].include?(sym)} # l
.
1230d
1227a
sl.slp 0
.
1217,1218c
# printf("Unkown code %s \n", OPTABLE_SYM[get_opcode(cop)])
# printf("Unkown code %s \n", OPTABLE_SYM[imem.get_opcode(cop)])
.
1191c
# stack[0] = stack[imem.getarg_a(cop)]
# stack[0] = stack[rou(:getarg_a, cop)]
stack[0] = stack[rou.(:getarg_a, cop)] # c
.
1186c
# return stack[imem.getarg_a(cop)]
# return stack[rou(:getarg_a, cop)]
return stack[rou.(:getarg_a, cop)] # c
.
1136c
# n = imem.getarg_c(cop)
# n = rou(:getarg_c, cop)
n = rou.(:getarg_c, cop) # c
.
1134c
# mid = irep.syms[rou(:getarg_b, cop)]
mid = irep.syms[rou.(:getarg_b, cop)] # c
.
1132c
# a = imem.getarg_a(cop)
# a = rou(:getarg_a, cop)
a = rou.(:getarg_a, cop) # c
.
1109,1110c
# rg['pc', -1] = rg['pc'] + imem.getarg_sbx(cop)
# rg['pc', -1] = rg['pc'] + rou(:getarg_sbx, cop)
rg['pc', -1] = rg['pc'] + rou.(:getarg_sbx, cop) # c
.
1106,1107c
# if !stack[imem.getarg_a(cop)]
# if !stack[rou(:getarg_a, cop)]
if !stack[rou.(:getarg_a, cop)] # c
.
1099c
# rg['pc', -1] = rg['pc'] + imem.getarg_sbx(cop)
# rg['pc', -1] = rg['pc'] + rou(:getarg_sbx, cop)
rg['pc', -1] = rg['pc'] + rou.(:getarg_sbx, cop) # c
.
1097c
# if stack[imem.getarg_a(cop)]
# if stack[rou(:getarg_a, cop)]
if stack[rou.(:getarg_a, cop)] # c
.
1091c
# rg['pc', -1] = rg['pc'] + imem.getarg_sbx(cop)
# rg['pc', -1] = rg['pc'] + rou(:getarg_sbx, cop)
rg['pc', -1] = rg['pc'] + rou.(:getarg_sbx, cop) # c
.
1079a
rou = @@rou
.
1058c
# sym = OPTABLE_SYM[imem.get_opcode(cop)]
# sym = OPTABLE_SYM[rou(:get_opcode, cop)]
sym = OPTABLE_SYM[(rou = @@rou).(:get_opcode, cop)] # c
.
1049,1050c
# @@opf = ->(irep, pc, imem) { # l
@@opf = ->(irep, pc) { # l
# imem = @imem
.
1031,1040d
1021d
1015d
1002,1003d
997,999c
lopa.push(k, 'th' == k ? fvl[oi <=> 0].(oi) : fv) # c
# lopa.push(k, 'th' != k ? fv : fvl.force[oi <=> 0].(oi)) # c #? mruby 410200
.
992d
979d
956,962c
@@iset = nil
.
943,949c
## isr0 = [mt ? i : s, r[0]]
## sz = plr.size
# ca[
## ca.force[ #? mruby 410200
# flg[1] ? 0 : 1].(r) # c
# c_l.ca[flg[1] ? 0 : 1].(r) # c
r = c_l.ca
.
940,941c
## sp ||= s.p = pl[i_sp][0]
## pr || (pr, sy, mt = imem.fml('st', sym))
.
936c
# case f when Numeric then true else loc.verb(f); false end}
.
932,933c
### sym, (r0, r1) = rslt pl # higokan mruby 70410200 # bce75e27 2211410200 matz
## sym, r, flg = rslt(pl) # ; r0, r1 = r
# sym, r, flg = c_l.rslt
sym, r, flg, f = c_l.rslt
.
930c
## pl = lpl.pl_g(pc1) ##
c_l.plg(pc1)
.
919d
897,916c
## lm = ->(r1) {r1.nil? ? r1 : imem.send(pr, *isr0, r1, mt)} # l
# lm = ->(r1) {imem.send(pr, *isr0, r1, mt)} # l
.
893a
c_l = Fls__l.new(s, i, imem, lpl, sl)
.
892c
# sp, pr = nil; plr = []
.
887,888c
# ap = 1 << sz = 4; ap = @@fls_m ||=
# ((ap += (ap <<= 1) + (ap <<= 2) + (ap << 2)) >> sz) + 1 >> 1
.
885c
sym = nil
# flg = [f = false, f]
f = false
plr, r = []
.
883c
# isr0, pr, sy, sym, mt = nil
.
879,880c
# sp, pl, r = nil
sp, pl = nil
# plr = []
# c_l = Fls__l.new(s, i, imem, lpl, sl)
c_l = nil
.
872c
pc1 = 0 # (pc = 0) + 1
.
862,864c
@@fls = nil
def fls ##
.
859a
[@sym = sym, @r = r, @flg = flg, @f = flg.all?]
end
.
853,858c
# def rslt(pl)
# lpl = @pl
# r = pl[lpl.afl('th', ?i)] # q
## r.map { |v| v[1] = v[-1]}
## r = r.map { |v| v[1] = v[-1]} # higokan ? mruby 70410200
# [pl[lpl.afl('sym', ?i)].to_sym, # q
# *[r, r.map { |v| lpl.ckth(v, 1)}].map { |v| [v[0], v[-1]]}]
# end
class Fls__l
@@fls_m = nil
def initialize(s, irep, imem, lpl, sl)
(
@s = s; @i = irep; @imem = imem; @lpl = lpl
# sp, sz, isr0, r0, r1, lm, sy = [] # higokan ? mruby 70410200
# sp, sz, ht, isr0, r0, r1, lm, sy = [][0]
# @sp, @isr0, @r0, @r1, @r, @pr, @sym, @sy, @mt = nil
@sp, @isr0, @r, @pr, @sym, @sy, @mt = nil
@f = false; @flg = [false, false]
# ap = 1 << sz = 3; ap = @@fls_m ||=
ap = 1 << sz = 3; @ap = @@fls_m ||=
((ap += (ap <<= 1) + (ap <<= 2) + (ap << 2)) >> sz) + 1 >> 1
@plr = []; @sz = 0 # @plr.size
# @lm = ->(r1) {r1.nil? ? r1 : @imem.send(@pr, *@isr0, r1, @mt)} # l
@lm = ->(r1) {@imem.send(@pr, *@isr0, r1, @mt)} # l
@ca = [
->(r) { # f
# @r = @r1 < @sz && @plr[@r1] || @lm.(@r1) # c
sz = (sz = @plr[r[1]] ; r[1] >= @sz || # _ = ( _ = @plr[
# sz) || @lm.(r[1]) # c
sz.nil?) ? @lm.(r[1]) : sz # c
# s[@r1] = @sy ? [s[@r1], @r].inject(@sy) : @r
s[r[1]] = @sy ? [s[r[1]], sz].inject(@sy) : sz # : _
}, # rs = [r1.to_xeh, r0.to_xeh]},
->(r) { # flg[0]
# ((sw = sp + sz) + 0xe).step(sw, -1) { # higokan mruby 70410200 # bbab89e7 5211410200 tmtm
# @sz.step(@sz + @ap -= @ap >> 2) { |n| @plr<< @lm.(@isr0, s[n])} # p c
0 == s.size ? sl.slp(0) : @plr += @lm.(s[(sz = @sz) .. sz + @ap = ( # c
# @ap += @ap >> 1) >> 1)]) # @ap >>= 1) + (@ap >> 1)])
# (sz = @ap) += sz >> 1) >> 1]) # sz = @ap >> 1) + (sz >> 1)])
sz = @ap; sz += sz >> 1) >> 1]) # sz = @ap >> 1) + (sz >> 1)])
# .. sz + (ap = (ap += ap >> 1) >> 1) + (ap <=> 0)])
} # rs[1] = r0.to_xeh
] # .lazy #? mruby 410200
plb = Plb
# i_th = lpl.afl('th', ?i) # q
@i_sp = plb.assoc('sp')[1]
)
end
def ca # (i)
if @flg[0]
@sp ||= @s.p = @pl[@i_sp][0]
# @r0, @r1 = @r
@pr || (@pr, @sy, @mt = @imem.fml('st', @sym))
# @isr0 = [@mt ? @i : @s, @r0]
@isr0 = [@mt ? @i : @s, @r[0]]
@sz = @plr.size
# (ca = @ca).force[ #? mruby 410200
# @ca.force[ #? mruby 410200
# (ca = @ca)[
@ca[
@flg[1] ? 0 : 1].(@r) # c
end
# [@r, @sym]
@r
end
def plg(pc) @pl = @lpl.pl_g(pc) end
def rslt # (pl)
lpl = @lpl
pl = @pl
r = pl[lpl.afl('th', ?i)] # q
# r.map { |v| v[1] = v[-1]}
# r = r.map { |v| v[1] = v[-1]} # higokan ? mruby 70410200
sym, r, flg = [pl[lpl.afl('sym', ?i)].to_sym, # q
.
848,850d
845d
842,843d
823d
821d
813d
809c
# 3080410200 : 5x2 ok ( gc ) : monami-ya.mrb 8270410200 813e2af8 # www.monami-ya.jp
.
784a
Plb = @@plb
.
680,682c
def is(i = nil)
@i = i
end
.
676d
662a
@p = sp; @s = s; @i = nil
.
661c
# @p = sp; @s = s
.
631d
615,617c
##### fpl.delete_if.with_index { |fb, i| break if i > 0; fb.resume}
##### fpl.delete_if.with_index { |fb, i| next if i > 0; fb.resume}
##### fpl.delete_if.with_index { |fb, i| p i; fb.resume}
.
613c
# fpl.delete_if(&:resume)
## fpl.delete_if(&:resume(pc))
.
601a
## pc && 0 <= pc && (fpl<< (@@plw ||= plw).dup)[-1].resume(pc) # p # ?
.
595a
##@@plw = nil
.
588,589d
586d
582,584c
Fiber.yield((( #### th[idx].nil?.! && # fuguai taisaku
.
579a
## Fiber.yield # (false)
.
578c
Fiber.new { ## |pc| ##
.
575d
573d
568a
##def plw ##
.
564d
558,562c
# case (opc, op = a)[0] when Numeric then true end ||
.
554c
# return a[0] if 0 >= a.hgt
.
549,550d
545d
532,533d
517,518c
# bf = (Array.new(bfsz, '1').join).to_i(2) # higokan ? mruby 70410200
# bf = Array.new(bfsz) { |n| 1 << n}.inject # higokan ? mruby 70410200
.
514d
512d
437d
429,431d
416d
364d
342,343d
324d
317c
# return a_r1.map{ |v| v.nil? ? v : __send__(*a[0 .. @@I_s__r0 + 1], v)} # r
a[i_s__r1].map{ |v| v.nil? ? v : __send__(*a[0 .. i_s__r1 - 0_0 - 1], v)}
.
314,315c
a[0] = ?s << a[0].to_s # q
# case a_r1 = a[@@I_s__r1 + 1]
case a[i_s__r1 = @@I_s__r1 + 1]
.
308d
300d
238d
191d
185d
176d
168d
162c
module M__Loc # Inspired by Professor NAGAI Hidetosi http://rubykaigi.org/2011/ja/schedule/details/17S05/#KyuTech
.
147a
# [true][Time.now.to_f.to_s.split(?.)[1].to_i & 15] && GC.start # g
# [true][(@@ctr += 1; @@ctr &= 3)] && GC.start # g
.
146a
# (r - 1).times {usleep 0}; r.times {usleep t}
# (r - 1).times {msleep 0}; r.times {msleep t} # usleep yobi
# (r - 1).times {sleep 0}; r.times {sleep t} # antei ?
# (r - 1).times {sleep 0}
# r.times {sleep t}
.
142d
140c
# @@ctr = 0
.
127d
113c
# def delif_c(i, a = self) # # higokan ? mruby-thread:410200 monami-ya.mrb:60510200 mruby:70410200
.
105d
102,103c
# self[0].index(k) # higokan mruby 10410200 ( irep.rb )
.
87d
18,19c
))))))))) # .move # ? # conf.gem :github => 'miura1729/mruby-mmm'
# GC.generational_mode = false # g # http://syucream.github.io/mrubook/gc.html
.
16d
3,4c
# include MMM # conf.gem :github => 'miura1729/mruby-mmm'
.
--
YAMAGUTIseisei ( str_h__namae = { :sei => "山口" , :mei => "青星" } )
http://hello.to/seisei/ mailto:seisei@.68..net tel:081-70-5152-1104
heiwa furiisekkusu 1tu
[toc] | [prev] | [next] | [standalone]
| From | YAMAGUTIseisei <seisei@hello.to> |
|---|---|
| Date | 2019-08-12 10:10 +0000 |
| Subject | jit-1_-_github__ysei~mruby-meta-circular-heiretu_-_nightly_-_2_0_1_9_0_8_1_1__1180910200.rb |
| Message-ID | <5D513AF8.7040503@hello.to> |
| In reply to | #15 |
1377c
GC.start # g # antei ?
.
1373c
GC.start # g
.
1348,1349c
@Slp.slp
end
.
1346c
# ise[0].reject! { |fis| fis.resume}
ise[0].reject!(&:resume)
# ise[0].delif_c(1) { |fis, n| fis.resume}
# fl.step(@@rmth) { |n| # higokan ? touki 70410200
# fl.reject!.with_index { |v, n| v.resume(n) && 0 == n} # higokan ? touki 70410200
# if pfl = ise[1][0]
# (fl<< pfl[1]; ise[1].shift) if 0 <= pfl[0] # p
# end
.
1339,1340c
stack.ps rg['sp']
# @irep[0] = irep
@irep = irep
.
1333c
# if 0 <= rg['ctr', 1]
if 0 <= rg.pg
.
1329a
jsc.call
.
1328d
1324c
# plini
.
1322a
rg.ps(rg.pg.abs) # cp
.
1320c
# rg['ctr', 1] = rg['ctr', 1].abs
.
1315c
## ise[0].reject! { |fis| fis.resume} # higokan ? GC 70410200
.
1306,1308c
# pco = rg['pc'] if ?J == rg['sym'].to_s[0] # q
pco<< rg['pc'] if ?J == rg['sym'].to_s[0] # p # q
###### (pco = rg['pc']; pctj<< pco + 1) if ?J == rg['sym'].to_s[0] # q
# ise[1].push([false, false], [false, false])
# rg['ctr', 1] *= -1 # kakezan
rg.ps(-rg.pg)
.
1303a
end
.
1301,1302c
# if 0 <= rg['ctr', 1] || pco
# if pco.slice!(0 .. -1) || 0 <= rg['ctr', 1] # higokan monami-ya.mrb:60510200 mruby:70410200
# if pco.pop || 0 <= rg['ctr', 1]
if pco.pop || 0 <= rg.pg
# pco &&= nil
opg.call
# @@opg.(irep, rg, imem) # c
loc.verb "#{rg['pc'].to_xeh} #{rg['sym']} #{rg['cop'].to_xeh}" # if rg['sym']
# if (ifj.(sym) && ! ifs.(sym)) # c 2
if (ifj.(rg['sym']) && ! ifs.(rg['sym'])) # c 2
# ise<< iset(rg) # p
# ise<< iset(rg) if 0 <= rg['pc', nil, '-'] # p # cp
# ise[0]<< iset(rg) if 0 <= rg['pc', nil, '-'] # p # cp
# next if pcoj.call
# fl<< fls(rg['pc']) # p
# pcff = false
# if pfl = ise[1].shift
# pcf, pfl1 = pfl
# fl<< pfl1 if pcff = pcf.abs == rg['pc'] # p # cp
# end
pcf, pfl1 = ise[1].shift
if pcf && pcf.abs == rg['pc'] # cp
####### fl<< pfl1 # p
fl<< pfl1 # if pctj.pop != rg['pc'] # p
else
# if ! pcff
ise[0]<< iset(rg) # p
pcf = rg['pc']
# pcf = -pcf if 0 > rg['ctr', 1]
pcf = -pcf if 0 > rg.pg
####### ise[1]<< [pcf, fls(rg['pc'])] # p
ise[1]<< [pcf, fls(rg['pc'])] # if pctj.pop != rg['pc'] # p
next if pcoj.call
.
1284,1299c
# 0.step(@@rmth) { |n|
# 0.step(3) { |n|
# fl.reject_c!(1) { |v, n| v.resume(n)}
fl.reject!.with_index { |v, n| v.resume(n)}
# ise[1].each_index { |n|
ise[1].reject! { |pfl|
# (fl<< pfl[1]; ise[1].shift) if 0 <= pfl[0] # p
# (fl<< pfl[1]; ise[1].shift) if ! pfl[0] || 0 <= pfl[0] # p
# fl<< pfl[1] if pfl[0].! || 0 <= pfl[0] # p
pfl && (pfl[0].! || 0 <= pfl[0]) && fl<< pfl[1] # p
# pfl && (pfl.empty? || 0 <= pfl[0]) && fl<< pfl[1] # p
}
.
1280,1282c
# ise.reject! { |fis| fis.resume}
# ise[0].reject! { |fis| fis.resume}
.
1272a
# @@opg = ->(irep, rg, imem) { # l
# opg = -> { # |irep, rg, imem| # l
opg = -> { # l
c, sym = @@opf.(irep, rg['pc'], imem) # c
rg.push('cop', c)
rg.push('sym', sym)
# rg
}
.
1268a
@Slp.slp 0
.
1265,1266c
# if 0 > rg['ctr', 1]
if 0 > rg.pg
.
1263c
# pco = nil
pco = []
.
1260c
# [callinfo, irep, rg]
.
1252,1257c
callinfo, irep, rg = @@jsc.(stack, callinfo, irep, rg, imem) # c
## printf("Unkown code %s \n", OPTABLE_SYM[get_opcode(cop)])
# printf("Unkown code %s \n", OPTABLE_SYM[imem.get_opcode(cop)])
.
1244,1245c
callinfo.pd
### @sp = @callinfo[@cp]
.
1238,1241c
callinfo.pd
### @pc = @callinfo[@cp]
# pc = @callinfo[@cp] - 1
# rg['pc', -1] = @callinfo[@cp]
.
1231c
callinfo.pd
.
1227,1229c
stack[0] = stack[imem.getarg_a(cop)]
.
1225c
### @stack[@sp] = @stack[@sp + getarg_a(cop)]
.
1220,1223c
return stack[imem.getarg_a(cop)]
.
1217,1218c
if 0 == callinfo.pg
### return @stack[@sp + getarg_a(cop)]
.
1106,1212c
# case sym
case rg['sym']
.
1104c
jsc = Proc.new {
cop = rg['cop']
.
1100d
1097c
ise = [[], []]
.
1091c
@irep = irep
.
1087,1089c
imem = @imem
stack = @stack
callinfo = @callinfo
.
1085d
1080d
1076,1078c
sym = OPTABLE_SYM[imem.get_opcode(cop)]
.
1065,1068c
@@opf = ->(irep, pc, imem) { # l
.
1058,1062c
@@jsc = Proc.new { |stack, callinfo, irep, rg, imem|
cop = rg['cop']
# case sym
case rg['sym']
# 何もしない
when :NOP
# JMP nでpcをnだけ増やす。ただし、nは符号付き
when :JMP
## @pc = @pc + getarg_sbx(cop)
# pc = pc + lpl.getarg_sbx(cop) - 1
rg['pc', -1] = rg['pc'] + imem.getarg_sbx(cop)
## next
when :JMPIF
# if @stack[@sp + getarg_a(cop)] then
# if @stack[rg['sp'] + imem.getarg_a(cop)]
if stack[imem.getarg_a(cop)]
# @pc = @pc + getarg_sbx(cop)
# pc = pc + lpl.getarg_sbx(cop) - 1
rg['pc', -1] = rg['pc'] + imem.getarg_sbx(cop)
# next
end
# JMPNOT Ra, nでもしRaがnilかfalseならpcをnだけ増やす。ただし、nは符号付き
when :JMPNOT
### if !@stack[@sp + getarg_a(cop)] then
# if !@stack[rg['sp'] + imem.getarg_a(cop)]
if !stack[imem.getarg_a(cop)]
## @pc = @pc + getarg_sbx(cop)
# pc = pc + lpl.getarg_sbx(cop) - 1
rg['pc', -1] = rg['pc'] + imem.getarg_sbx(cop)
## next
end
# メソッドの先頭で引数のセットアップする命令。面倒なので詳細は省略
when :ENTER
# SEND Ra, mid, anumでRaをレシーバにしてシンボルmidの名前のメソッドを
# 呼び出す。ただし、引数はanum個あり、R(a+1), R(a+2)... R(a+anum)が引数
when :SEND
# a = getarg_a(cop)
a = imem.getarg_a(cop)
# mid = @irep.syms[getarg_b(cop)]
mid = irep.syms[imem.getarg_b(cop)]
# n = getarg_c(cop)
n = imem.getarg_c(cop)
### newirep = Irep::get_irep(@stack[@sp + a], mid)
# newirep = Irep::get_irep(@stack[rg['sp'] + a], mid)
newirep = Irep::get_irep(stack[a], mid)
if newirep then
### @callinfo[@cp] = @sp
# @callinfo[@cp] = rg['sp']
# callinfo[0] = rg['sp']
# @cp += 1
# callinfo.pi
# @callinfo[@cp] = @pc
# @callinfo[@cp] = rg['pc']
# callinfo[0] = rg['pc']
# @cp += 1
# callinfo.pi
# @callinfo[@cp] = @irep
# @callinfo[@cp] = irep
# callinfo[0] = irep
# @cp += 1
# callinfo.pi
callinfo[0 .. 2] = [rg['sp'], rg['pc'], irep]
callinfo.pi 3
### @sp += a
# rg['sp'] += a
rg['sp', -1] = rg['sp'] + a
## @pc = 0
rg['pc', -1] = 0
# @irep = newirep
irep = newirep
# @irepid = @irep.id
@irepid = irep.id
## next
else
args = []
n.times do |i|
### args.push @stack[@sp + a + i + 1]
args<< stack[a + i + 1] # p
end
### @stack[@sp + a] = @stack[@sp + a].send(mid, *args)
# @stack[rg['sp'] + a] = @stack[rg['sp'] + a].send(mid, *args)
stack[a] = stack[a].send(mid, *args)
end
# else
## printf("Unkown code %s ¥n", OPTABLE_SYM[get_opcode(cop)])
# printf("Unkown code %s ¥n", OPTABLE_SYM[imem.get_opcode(cop)])
end
[callinfo, irep, rg]
.
1048,1053c
@Slp.slp 0
Fiber.yield(0 == thi) ##
# sp = [sp].flatten
sp = [sb].flatten
.
1046c
(0 != thi && ht <= thi) ? thi = 0 : thi += 1
.
1043,1044c
pl.pl_es(pc1, opa)
pl.ctr_s(pc1) if 0 == thi
.
1040,1041c
# opa = opg.(thi) # c
# opa.push(k_sp, [sp]) if 0 == thi
opa = opg.(thi).push('ctr', [sp]) # c
.
1038c
# k_sp = @pla.assoc('sp')[1]
Fiber.new { ##
.
1028,1032c
if v # && if knid(fv, :Array)
if 'th' == k
if 0 == oi
# fv = [fv[oi] = th[oi] = imem.ta(fv[oi], cop)] + [[]]
lopa.push(thl[oi], imem.ta(fv[oi], cop))
k, fv = [thl[oi + 1], []]
else
fv[oi] = imem.ta(fv[oi], cop) if oi <= ht = fv.hgt
fv[oi] ? (k, fv = [thl[oi], fv[oi]]) : k = nil
# fv = th
end
end
# lopa.push(k, fv)
lopa.push(k, fv) if k
end
.
1020,1024d
1018c
# th = [] ##
thl = @@mh_thl
.
1006,1016c
fml = imem.fml('th', sym) || (
# printf("Unkown code %s ¥n", OPTABLE_SYM[imem.get_opcode(cop)])
# printf("Unkown code %s ¥n", OPTABLE_SYM[rou(:get_opcode, cop)])
# printf("Unkown code %s ¥n", OPTABLE_SYM[@@rou.(:get_opcode, cop)]) # c
loc.verb("Unkown code #{sym} ") # .to_s
# return nil
# raise
## rg = Fiber.yield(nil)
)
bt = imem.fml('th', 'bt')[1 .. -1]
sb = sp
.
1003,1004c
pc1 = pc + 1
loc = @@loc
imem = @imem
pl = @pl
# i_lf = @idx['lf']
.
996,1001c
def iset(rg) ##
pc, sp, cop, sym = rg.to_ra('pc', 'sp', 'cop', 'sym')
.
991c
m = fy.(m, f) # c
.
979,989c
if 0 == m
# s.sp(sp ||= (plr = pl[i_sp])[0])
# s.sp(sp ||= (plr = [pl[i_sp]].flatten)[0]) if flg[0]
# s.ps(sp ||= [pl[i_sp]].flatten[0]) if flg[0]
s.ps(sp ||= pl[i_sp].flatten[0]) if flg[0]
# plr ||= [sp]
# s.sp sp
r0, r1 = r
# pr || (pr, sy = imem.fml('st', sym)[1 .. -1])
pr || (pr, sy, mt = imem.fml('st', sym)[1 .. -1])
# isr0 = [i, s, r0]
isr0 = [mt ? i : s, r0]
# sz = plr.size
sz = plr.size if flg[0]
if f
# if f && ktf
# r = r1 < sz && plr[r1] || lm.(isr0, r1) # c
r = r1 < sz ? plr[r1] : nil # isyoku tokusei
# r.nil? && r = lm.(isr0, r1) # c
r.nil? && r = lm.(r1) # c
s[r1] = sy ? [s[r1], r].inject(sy) : r
rs = [r1.to_xeh, r0.to_xeh]
elsif flg[0]
# elsif flg[0] && ktf
mx = 0xf
s.s.hgt <= mx && mx = s.s.hgt
# sz.step(mx) { |n| plr<< lm.(isr0, s[n])} # p c
sz.step(mx) { |n| plr<< lm.(s[n])} # p c
# (mx - sz).times { |n| plr<< lm.(isr0, s[n + sz])} # p c
# (mx - sz).times { |n| s[n + sz] && plr<< lm.(isr0, s[n + sz])} # p c
rs[1] = r0.to_xeh
elsif flg[-1]
# elsif flg[-1] && ktf
rs[0] = r1.to_xeh
end
.
967,977c
# if f.! || ! ktf
pl = lpl.pl_g(pc1) ##
sym, r = rslt(pl)
## for idx in (0 ... pl[i_th].size)
# for idx in (0 ... r.size)
## flg[idx] = lpl.ckth(pl[i_th][idx], 1) ## ####
# flg[idx] = lpl.ckth(r[idx], 1) ## ####
# end
r.each_with_index { |v, i| flg[i] = lpl.ckth(v, 1)} ## ####
# sp = pl[i_sp]
# sp = sp[0] if (ktf = knid(sp, :Array))
# f = ktf && ! flg.include?(false)
# f = ! flg.include?(false)
f = flg.all?
m = fy.(m, false) # c
.
963,965d
961c
Fiber.new { |m = 1|
.
916,957c
fy = ->(m, f) { # @Slp.slp 0
loc.verb "#{pc.to_xeh} #{sym} #{rs[1]} #{rs[0]}"
.
914a
pc1 = pc + 1
loc = @@loc
lpl = @pl
imem = @imem
# i_th = lpl.afl('th', ?i) # q
i_sp = lpl.afl(@pla.assoc('sp')[1], ?i) ## # q
f = false; flg = [false] # ; ktf = false
s = Stack.new
# i = @irep[0]
i = @irep
plr = []
# sp, wd, isr0, r0, r1, lm, sy = [][0]
# r = 0; r0, r1 = [nil, nil]
# pl, sp, r, r0, r1, sym, pr = nil
# pl, sp, mt, r, r0, r1, sym, pr = nil
pl, sp, mt, isr0, r, r0, r1, sym, pr = nil
rs = [?-, ?-] # q 2
# lm = ->(isr0, r1) {r1.nil? ? r1 : imem.send(pr, *isr0, r1, mt)} # l
## lm = ->(isr0, r1) {imem.send(pr, *isr0, r1, mt)} # l
lm = ->(r1) {r1.nil? ? r1 : imem.send(pr, *isr0, r1, mt)} # l
# lm = ->(r1) {imem.send(pr, *isr0, r1, mt)} # l
.
911,912c
def fls(pc) ##
.
895,908c
r[1] = r[-1]
[pl[lpl.afl('sym', ?i)].to_sym, r] # q
# [pl[@pl.afl('sym', ?i)].to_sym, r] # q
.
876,892c
# knid(pl[lpl.afl('ctr', ?i)], :Array) && # q
# knid(pl[lpl.afl('ctr', ?i)][0], :Array) && # q
# lpl.ckth(r1 = pl[lpl.afl('th1', ?i)], 3) && r<< r1 # q # p
case pl[lpl.afl('ctr', ?i)][0]
when Array then lpl.ckth(r1 = pl[lpl.afl('th1', ?i)], 3) && r<< r1 # q # p
.
813,874c
def rslt(pl)
lpl = @pl
# r = pl[@pl.afl('th', ?i)] # q
r = [pl[lpl.afl('th0', ?i)]] # q
.
809c
ENVary.new(0).plm(pc)
.
788,797c
# @pl[0] =
# [['th', [[thini]]], ['sym', [0]], ['ctr', []], ['Numeric', [0]]]
# @pl[0] = [['th', [[thini]]], [thl[0], [thini]], [thl[1], [thini]],
# ['sym', [0]], ['ctr', []], ['Numeric', [0]]]
pl[0] = [[thl[0], [thini]], [thl[1], [thini]],
['sym', [0]], ['ctr', []]]
# ['sym', [0]], ['ctr', []], ['Numeric', [0]]] # furui mattn/mruby-json
# @pla = [['sp', 'ctr']]
.
785c
# 3080410200 : 5x2 ok ( gc ) : monami-ya.mrb 8270410200 813e2af8 # http://www.monami-ya.jp/
.
781c
thl = @@mh_thl
.
778a
# def plini
.
757,760c
@pla = [['sp', 'ctr']]
####### @pl.nmrcf
.
751,752c
thini = [false, 0]
# @pl = ENVary.new(rmth + 1, [thini], [], [])
# @pl = ENVary.new(rmth + 1, [thini], thini, thini, [], [])
# @pl = ENVary.new(rmth + 1, thini, thini, [], [])
# plini
# @pl = ENVary.new(true) # 410200plini
plini(@@rmth, @pl = ENVary.new(rmth + 1, thini, thini, [], [])) # 310200plini ?
.
748a
rmth = @@rmth
.
746c
@irep = nil # 現在実行中の命令列オブジェクト
.
742a
@callinfo = Stack.new(0, []) # メソッド呼び出しで呼び出し元の情報を格納
.
741c
@stack = Stack.new # スタック(@spより上位をレジスタとして扱う)
.
736,737c
GC.start # g # antei ?
# @imem = Imem.new
@imem = @@Imem
@Slp = @@Slp
.
727,732c
@@rmth = 39
# @@loc = Loc.new
@@loc = LOC
# @@Imem = Imem.new
@@Imem = IMEM
# @@Slp = Slp.new
@@Slp = SLP
.
721a
include M__H
.
713a
# prepend M__Ist
.
711c
def ps(i)
@a.assoc('ctr')[1] = i
end
def pg
@a.assoc('ctr')[1]
end
def to_ra(*a)
.
707c
# case v when Numeric then 'pc' == k && v == @a.assoc(k)[i] && v = -v end # cp
.
693,697c
@a.assoc(k)[i]
# v = @a.assoc(k)[i]
## v = v.abs if knid(v, :Numeric) # cp
# v = v.abs if 'pc' == k && ?- != m # cp # q
# v
.
655,656c
def pg() @p end
# def pi() @p += 1 end
def pi(i = 1) @p += i end
def pd() @p -= 1 end
# def sp(*a)
def ps(i)
# p id = self.object_id
# a.empty? || @p = a[0]
@p = i
# @p
.
652c
# @@m.unlock
# a
.
650c
# @@m.lock
.
644,646c
# @@m.lock
# s = @s
# @@m.unlock
@s[a[0] + @p]
.
635,640c
@p = sp; @s = s
# @p = sp; @m = m; @s = s
# @@m.lock
# s = @s
# @@m.unlock
# s
@s
.
618,620c
# def []=(*a)
## sleep 0
## @@Slp.slp 0
## a.to_s
# super
# end
.
614,616c
# def [](*a) # ok : monami-ya.mrb:60510200
## sleep 0
## @@Slp.slp 0
## a.to_s
# super
# end
.
610,612c
# def initialize
## @f = '' # cannot set instance variable (ArgumentError)
# end
.
607,608c
# @@f = 0x0.chr * (0x20 << 2)
# @@bm = 0xff.chr
.
601c
# class ENVary < Array
.
598a
# private
.
595,596c
@@Slp.slp
GC.start # g # antei ?
.
590a
## fpl = delif_c(1, fpl) { |fb, n| fb.resume(pc)} # ?
.
583a
# self.pl(cto)
# self.pl(pc - 1)
.
581c
# fpl<< self.plw(pc) if flg[0] # p
.
576c
## pc && 0 <= pc && fpl<< (@@plw ||= plw); GC.disable # p # g
.
571d
555,563c
idx += 1 unless arf = ckth(th[idx], 2)
arf ||= ckth(th[idx], 2)
th[idx] = pl_eg(pc, thl[idx]) if arf
# flg = ckth(pl_eg(pc, 'ctr'), 0) if ! flg # [sp]
flg ||= ckth(pl_eg(pc, 'ctr')[0], 0) # [sp]
# th = th[0 ... idx] if ckth(th[idx], 2) && flg
th = th[0 ... idx] if flg && (arf.! || ckth(th[idx], 2))
# idx += 1 ##
}
.
550,553c
# th = [] ##
thl = @@mh_thl
# th = [pl_eg(pc, 'th0'), pl_eg(pc, 'th1')]
# th = [pl_eg(pc, thl[0]), pl_eg(pc, thl[1])]
th = pl_g(pc, *thl)
idx = 0 ##
Fiber.new { ##
# while th[idx .. -1] = (thn = pl_eg(pc, 'th'))[idx .. -1] ##
loop {
# th = th[0 .. (mx = thn.hgt)] ####
mx = th.hgt
th[idx] = s_id(th[idx], pc - 1) if mx >= idx
if ckth(th[mx], 3)
# self.pl_es(pc, ['th', th])
th.each_index { |n| pl_es(pc, [thl[n], th[n]])}
# idx = idx == mx ? 0 : idx + 1 ###
flg = true ##
end
@@Slp.slp 0
Fiber.yield(flg && idx >= mx) ##
.
547d
542c
(loc = @@Loc).verb("#{pc.to_xeh} #{a[0]} #{a[1].to_xeh}")
.
520,526d
509,517c
while (0 == 1 & md) == a[(md & bf) >> 1]
# ((a[(md & bf) >> 1] ? 0 : 1) == 1 & md)
# ([true, false][1 & md] == a[(md & bf) >> 1])
md >>= bfsz
## 0 == lf ? return(false) : (md &= bf if 0 == lf >> bfsz) # ? mruby 70410200
0 == md >> bfsz && break
end # .!.!
.
480a
def to_ia(n, lpl = self)
[lpl = lpl[n], 0 != n && (return @@Plmg.(@@pl0i, lpl))][0] # r # c
end
.
475c
### aa.each_slice(2) { |k, v| send(k, v)}
.
453,455c
## knid(k, :Symbol) && (aa.push(k, v); next)
###### knid(k, :Symbol) && (aa.push(k, v); break)
# case k when Symbol then aa.push(k, v); break end
.
451c
# ary.each_slice(2) { |k, v| # .shift(2) higokan mruby 70410200
a.each_slice(2) { |k, v| # .shift(2) higokan mruby 70410200
.
445,447c
# def pl_es(n = 0, ary = nil, pl = nil)
def pl_es(n = 0, a = nil, pl = nil)
### aa = []
# pl[0 == n ? 1 : nil][idx(k)] = v
.
441c
# def pl_eg(n = 0, k)
def pl_eg(n, k)
.
437d
435c
# self[n] = 0 == n ? @@Plmg.(pl_g(-1), pl) : pl # c
.
431d
428c
# pl
a.empty? ? pl : a.map { |a| pl.afl(a, self)}
.
423,426d
419,420c
# 1 > n ? pl[idx0(n)] : pl
# if 1 > n then pl = pl[idx0(n)] end
.
417c
# self[n < 0 ? n + 1 : n][idx0(n)]
.
411,414c
# @@Idx0 = ->(n = 0, t = 1) {n - ((n <=> t) >> 1)} # l
@@Pldv = ->(pl) {pl.map { |a| a[1]}} # l
# def pl_g(n = 0)
# def pl_g(n)
def pl_g(n, *a)
.
393,397c
# ploc(n) { |a| JSON::parse(ENV[@@idb + a[0]])}
@@Loc.ploc(n) { |a| JSON::parse(ENV[@@idb + a[0]])}
.
383c
# ploc(n, v) { |a| ENV[@@idb + a[0]] = JSON::generate(a[1])}
@@Loc.ploc(n, v) { |a| ENV[@@idb + a[0]] = JSON::generate(a[1])}
.
371,372c
# @ary = Array.new(n)
(0 .. n).each{ |i|
# @ary = a
self[i] = *a
}
.
367c
n = a.shift
# @sz = a.size
if 1 > n
# @n = -n
# return self[@n]
return
end
.
363c
# def initialize(a = nil)
def initialize(*a)
.
360c
# @@loc = Loc.new(@@fl)
@@Loc = LOC
.
355,357d
341,347c
# @@Imem = Imem.new
@@Imem = IMEM
# @@slp = Slp.new
@@Slp = SLP
# @@fl = '‾‾ritepl'
# @@idb = @@fl
@@idb = FL
# @@fl += '.loc'
## @@fl += '/loc' # RISC OS ?
.
338a
include M__H
.
331a
IMEM = Imem.new
.
301,319c
# def s__sr0( *a) a[@@I_s__s][ a[@@I_s__r0]] end
# def s__r0( *a) a[@@I_s__r0] end
# def s__sr01( *a) a[@@I_s__s][ a[@@I_s__r0] + 1] end
## def s__i_pool_r0( *a) a[@@I_s__i].pool[ a[@@I_s__r0]] end
## def s__i_syms_r0( *a) a[@@I_s__i].syms[ a[@@I_s__r0]] end
## def s__i__r0( *a) a[@@I_s__i].send(a[@@I_s__mt])[a[@@I_s__r0]] end
# def s__i__r0( *a) a[@@I_s__s].send(a[@@I_s__mt])[a[@@I_s__r0]] end
# def s__r1_eq_sr01(*a) a[@@I_s__s][ a[@@I_s__r1]] ==
# a[@@I_s__s][ a[@@I_s__r0] + 1] end
@@I_s__r0 = 1; @@I_s__r1 = 2; @@I_s__mt = 3
def s__sr0( *a) a[0][ a[@@I_s__r0]] end
def s__r0( *a) a[@@I_s__r0] end
def s__sr01( *a) a[0][ a[@@I_s__r0] + 1] end
# def s__i_pool_r0( *a) a[@@I_s__i].pool[ a[@@I_s__r0]] end
# def s__i_syms_r0( *a) a[@@I_s__i].syms[ a[@@I_s__r0]] end
def s__i__r0( *a) a[0].send(a[@@I_s__mt])[a[@@I_s__r0]] end
def s__r1_eq_sr01(*a) a[0][ a[@@I_s__r1]] ==
a[0][ a[@@I_s__r0] + 1] end
def method_missing(*a) self.send(?s << a[0].to_s, *a[1 .. -1]) end
.
299c
# @@I_s__s = 0; @@I_s__r0 = 1; @@I_s__r1 = 2; @@I_s__mt = 3
.
233,242c
@@fml.(lb).assoc(sym) # c
# (f = @@fml).(lb).assoc(sym) # c
.
209d
207a
LOC = Loc.new(FL << '.loc')
# LOC = Loc.new(FL << '/loc') # RISC OS ?
.
194a
# }
.
185,186c
# @@slp.slp 0
## (s ||= @@slp).slp 0
# (s ||= @@Slp).slp 0 # higokan ? mruby 70410200
@@Slp.slp 0
.
175a
# @@ploc = Fiber.new { |a|
# @@ploc = Proc.new { |*a|
.
169c
# @@slp = Slp.new
@@Slp = SLP
.
165a
.
158a
SLP = Slp.new
.
142,143c
# (r - 1).times {sleep 0}; GC.start; r.times {sleep t} # g # fuantei ( keisan gosa ) ?
(r - 1).times {usleep 0}; r.times {usleep t}
.
140c
# (r - 1).times {usleep 0}; GC.start; r.times {usleep t} # g # conf.gem :github => 'kimushu/mruby-sleep' # msleep usleep
.
29a
module M__H
@@mh_thl = (0 .. 1).map { |n| 'th' + n.to_xeh}
end
.
24,25c
FL = '‾‾ritepl'
.
2a
# Experimental : Merry HongmengOS memorial
.
--
YAMAGUTIseisei ( str_h__namae = { :sei => "山口" , :mei => "青星" } )
http://hello.to/seisei/ mailto:seisei@.68..net tel:081-70-5152-1104
heiwa furiisekkusu 1tu
[toc] | [prev] | [next] | [standalone]
| From | YAMAGUTIseisei <seisei@hello.to> |
|---|---|
| Date | 2019-10-27 12:29 +0000 |
| Subject | jit-1_-_github__ysei~mruby-meta-circular-heiretu_-_nightly_-_2_0_1_9_1_0_2_7__7201910200.rb |
| Message-ID | <5DB58DA3.2040901@hello.to> |
| In reply to | #16 |
1399c
# @slp.slp
sl.slp
.
1397c
# end
.
1395c
# if pfl = ise[1][0]
.
1388,1390c
# ise[0].reject!(&:resume)
# ise[0].delif_c(2) { |fis, n| fis.resume}
ise[0].reject! { |fis| fis[1].resume && 0 <= fis[0]}
# ise[0].delif_c(2) { |fis, n| fis[1].resume && 0 <= fis[0]} # thl.size
.
1373d
1359,1361d
1345d
1341,1343c
# pco<< rg['pc'] if ?J == rg['sym'].to_s[0] # p # q
pco<< rg['pc'] if ifj.(rg['sym']) # p c
# opg.call
# if ! ifj.(rg['sym'])
.
1338d
1310,1336c
# if (ifj.(rg['sym']) && ! ifs.(rg['sym'])) # c 2
unless (ifj.(rg['sym']) || ifs.(rg['sym'])) # c 2
ist.call
next if pcoj.call
.
1306d
1304d
1302d
1295,1297c
# fl<< pfl[1] if ! pfl[0] || 0 <= pfl[0] # p
if pfl
# ise[0]<< iset(pfl[1]) # p
# ise[0]<< [pfl[0], iset(pfl[1])] # p
ise[0]<< [pfl[0], isfl(pfl[1])] # p
if 0 <= pfl[0]
fl<< fls(pfl[0]) # p
end
true
# pfl && (! pfl[0] || 0 <= pfl[0]) && fl<< pfl[1] # p
end
.
1291d
1288,1289c
###### 0.step(1) { |n|
# 0.step(0) { |n|
fl.delif_c(1) { |v, n| v.resume(n)}
# fl.reject!.with_index { |v, n| v.resume(n)}
.
1283d
1276c
ist = -> { # l
# pcf, pfl1 = ise[1].shift
# if pcf && pcf.abs == rg['pc'] # cp
# fl<< pfl1 # p
unless ise[0].empty?
# pfl = ise[0][-1] # .pop
pfl = ise[0].pop
pcf = pfl[0]
if 0 > pcf
if pcf.abs == rg['pc'] # cp
fl<< fls(pcf.abs) # p # cp
pfl[0] = pcf.abs # cp
ise[0]<< pfl # p
# ise[0].pop
# else
# ise[0]<< iset(rg) # p
# ise[0]<< isfl(rg) # p
next
end
else
ise[0]<< pfl # p
end
end
pcf = rg['pc']
pcf = -pcf if 0 > rg.pg
##### rg['pc'] *= -1 if 0 > rg['ctr', 1] # kakezan # cp
##### pcf = rg['pc']
# ise[1]<< [pcf, fls(rg['pc'])] # p
ise[1]<< [pcf, rg.to_ra] # p
}
# ifj = -> (sym) {?J != sym.to_s[0]} # l # q
ifj = -> (sym) {?J == sym.to_s[0]} # l # q
.
1267,1270c
# @@opg = -> (irep, rg, imem) { # l
opg = -> { # l
c, sym = @@opf.(irep, rg['pc']) # c # cp
.
1262c
# @slp.slp 0
sl.slp 0
.
1258d
1255d
1252c
# [callinfo, irep, rg]
.
1247,1248c
callinfo, irep, rg = @@jsc.(stack, callinfo, irep, rg, imem) # c
# printf("Unkown code %s \n", OPTABLE_SYM[get_opcode(cop)])
.
1240c
# @sp = @callinfo[@cp]
.
1234c
# @pc = @callinfo[@cp]
.
1224c
stack[0] = stack[rou.getarg_a(cop)]
.
1222c
# @stack[@sp] = @stack[@sp + getarg_a(cop)]
.
1220c
return stack[rou.getarg_a(cop)]
.
1218c
# return @stack[@sp + getarg_a(cop)]
.
1211,1212c
case sym
# case rg['sym']
.
1209c
cop, sym = rg.to_ra('cop', 'sym')
.
1204a
rou = @Rou
.
1203d
1201a
# ise = []
.
1190c
loc = @@Loc
sl = @Slp
.
1188a
def isfl(rg)
a = []
fb = iset(rg)
Fiber.new {
loop {
# Fiber.yield r = true == fb.resume(*a)
Fiber.yield true == fb.resume(*a)
# fb = fls
# Fiber.yield fb.resume(m)
}
}
end
.
1185c
# sym = OPTABLE_SYM[imem.get_opcode(cop)]
sym = OPTABLE_SYM[(rou = @@Rou).get_opcode(cop)] # c
.
1177c
# @@opf = ->(irep, pc, imem) { # l
@@opf = ->(irep, pc) { # l
.
1170c
# printf("Unkown code %s \n", OPTABLE_SYM[get_opcode(cop)])
.
1164c
# @stack[@sp + a] = @stack[@sp + a].send(mid, *args)
.
1160c
# args.push @stack[@sp + a + i + 1]
.
1156c
# next
.
1149c
# @pc = 0
.
1141,1145c
callinfo.pi
# @sp += a
.
1139c
callinfo[0] = irep
.
1136c
callinfo.pi
.
1134c
callinfo[0] = rg['pc']
.
1131c
callinfo.pi
.
1129c
callinfo[0] = rg['sp']
.
1127c
# @callinfo[@cp] = @sp
.
1122,1123c
n = rou.getarg_c(cop)
# newirep = Irep::get_irep(@stack[@sp + a], mid)
.
1120c
mid = irep.syms[rou.getarg_b(cop)]
.
1118c
a = rou.getarg_a(cop)
.
1107,1108c
rg['pc', -1] = rg['pc'] + rou.getarg_sbx(cop)
# next
.
1104,1105c
if !stack[rou.getarg_a(cop)]
# @pc = @pc + getarg_sbx(cop)
.
1102c
# if !@stack[@sp + getarg_a(cop)] then
.
1096c
rg['pc', -1] = rg['pc'] + rou.getarg_sbx(cop)
.
1093c
if stack[rou.getarg_a(cop)]
.
1087,1088c
rg['pc', -1] = rg['pc'] + rou.getarg_sbx(cop)
# next
.
1085c
# @pc = @pc + getarg_sbx(cop)
.
1077,1078c
case sym
# case rg['sym']
.
1075c
rou = @@Rou
# cop = rg['cop']
cop, sym = rg.to_ra('cop', 'sym')
.
1070a
# pl1[i_lf] += 1
.
1069c
sp = [*sp]
.
1067c
# (0 != thi && ht <= thi) ? thi = 0 : thi += 1
thi += (0 != thi && ht <= thi) ? -thi : 1
# Fiber.yield(0 == thi) ##
# begin # fuantei ? mruby:70410200 monami-ya.mrb:60510200
loop {
sl.slp 0
Fiber.yield(0 <= pc ? [true][thi] : ([pcabs][thi] || pc)) # cp
# end while [true][thi] # fuantei ? mruby:70410200 monami-ya.mrb:60510200
break if 0 != thi }
.
1063,1065c
pl.ctr_s(pc1) if 0 == thi
.
1061d
1056,1059c
opa = opg.(thi).push('ctr', [sp]) # c
.
1046a
# 0 != kfv.size ? lopa += kfv : lopa.push(k, fv)
.
1045d
1042c
# kfv = fv[oi] ? [thl[oi], fv[oi]] : []
.
1038a
# kfv = [thl[oi], imem.ta(fv[oi], cop), thl[oi + 1], []]
.
1036d
1032a
# kfv = []
.
1027d
1025d
1013a
sl = @Slp
.
1009,1010c
pcabs = pc.abs # cp
# pc1 = pc + 1
pc1 = pcabs + 1 # cp
loc = @@Loc
.
1006a
rg = Rg.new rg
.
993,994d
989,991c
# s.s.hgt <= mx && mx = s.s.hgt
s.size - 1 <= mx && mx = s.size - 1
.
982,984c
r = (r = plr[r1] ; r1 >= sz ||
r.nil?) ? lm.(r1) : r # c
.
974d
972d
965,966c
# flg[0] && sp || s.p = sp = [pl[i_sp]].flatten[0]
.
959,960c
# f = ktf && flg.all?
.
950,954d
942a
mx = 0xf
.
932,934d
926,929c
# pl, sp, mt, isr0, r, r0, r1, sym, pr = nil
pl, sp, mt, isr0, r, r0, r1, sym, sy, pr = nil
.
921d
916d
913c
loc = @@Loc
.
906d
904d
901,902c
when Array then lpl.ckth(r[1], 2) && r[1] = r[0] end # q
.
899a
# case pl[lpl.afl('ctr', ?i)][0]
# when Array then lpl.ckth(r1 = pl[lpl.afl('th1', ?i)], 3) && r<< r1 # q # p
# end
# r[1] = r[-1]
thl.each_with_index { |v, n| r[n] = pl[lpl.afl(v, ?i)]} # q
# r[1] = r[0] if
# knid(pl[lpl.afl('ctr', ?i)][0], :Array) && lpl.ckth(r[1], 2) # q
.
896a
# r = [pl[lpl.afl('th0', ?i)]] # q
.
894,895c
thl = @@mh_thl
r = []
.
888c
# ENVary.new(0).plm(pc)
Pl.new.plm(pc)
.
866c
# 3080410200 : 5x2 ok ( gc ) : monami-ya.mrb 8270410200 813e2af8 # www.monami-ya.jp
.
859d
840,842c
# GC.disable # g # gene gc enable : mruby 6170410200 d17506c1
.
826,830c
# @pl = ENVary.new(rmth + 1, thini, thini, [], [])
.
809a
@Rou = @@Rou
.
807d
801a
@@Rou = ROU
.
800d
798d
795,796c
@@Loc = LOC
.
776c
if a.empty?
@a.map { |v| v.dup}
else
a.map { |v| self[v]}
end
.
710c
# @p = a[0] if ! a.empty?
# @p = pt
.
707a
# def sp(pt)
.
703,704c
def pi() @p += 1 end
.
674c
##### attr_accessor :p, :s # fuantei mruby 70410200
attr_accessor :p
.
639c
# class Pl < ENVary
.
631c
# @@Slp.slp
sl.slp
.
604a
sl = @@Slp
.
596d
594d
592d
589c
# idx += 1 unless arf = ckth(th[idx], 2)
# idx += 1 unless arf = mx == idx ? arf : ckth(th[idx], 2)
idx += 1 unless arf = ckth(th[idx], 2) if mx != idx
.
586c
# @@Slp.slp 0
sl.slp 0
.
583d
580,581c
unless arf = ckth(th[mx], 2)
.
577d
575d
572d
569d
567c
sl = @@Slp
.
561c
# (imem = @@Imem).mcall(*a) || a[1]
# (imem = @@Imem).send(*a) || a[1]
(rou = ROU).send(*a) || a[1]
.
548d
544a
# private
end
# module M__Pl # higokan ? mruby 70410200
class Pl < ENVary
def initialize; end
.
542c
end.!.!
.
510,511c
# ctr = (cta = pl_g(0).afl('ctr', self)).shift
# pl_es(0, ['ctr', cta])
# ctr
[(c = pl_g(0).afl('ctr', self)).shift, pl_es(0, ['ctr', c])][0]
.
505,507c
# def to_ia(n, lpl = self)
# [lpl = lpl[n], 0 != n && (return @@Plmg.(@@pl0i, lpl))][0] # r # c
# end
.
500,501d
498c
pl_s(n, pl)
.
480,496c
i = self.afl(k, ?i) # q
'ctr' == k && knid(v, :Array).! ? pl[i]<< v : pl[i] = v # p
# 'ctr' == k && case v when Array then pl[i] = v else pl[i]<< v end # p # higokan mruby 70410200
# 'ctr' == k && pl[i] = case v when Array then v else pl[i] + [v] end # p # higokan mruby 70410200
.
474d
467,468c
def pl_es(n = 0, a)
.
457a
GC.disable # g # fuguai taisaku
.
436a
# @@Idx0 = ->(n = 0, t = 1) {n + (t > n ? 1 : 0)} # l
.
421a
# @@loc.ploc(n) { |a| JSON::parse(ENV[@@idb + a[0]])}
.
410a
# @@loc.ploc(n, v) { |a| ENV[@@idb + a[0]] = JSON::generate(a[1])}
.
386,391c
## @sz = a.size
# if 1 > n
## @n = -n
## return self[@n]
# return
# end
.
376d
365,366d
362,363d
357d
341c
# include RiteOpcodeUtil
.
335,337c
# def mcall(*op)
# case op[0] when Numeric then op.inject else self.__send__(*op) end
# end
.
311,330c
# def s__sr0( *a) a[0][ a[@@I_s__r0]] end
# def s__r0( *a) a[@@I_s__r0] end
# def s__sr01( *a) a[0][ a[@@I_s__r0] + 1] end
## def s__i_pool_r0( *a) a[@@I_s__i].pool[ a[@@I_s__r0]] end
## def s__i_syms_r0( *a) a[@@I_s__i].syms[ a[@@I_s__r0]] end
# def s__i__r0( *a) a[0].send(a[@@I_s__mt])[a[@@I_s__r0]] end
# def s__r1_eq_sr01(*a) a[0][ a[@@I_s__r1]] ==
# a[0][ a[@@I_s__r0] + 1] end
def s__sr0( *a) a[0][ a[1]] end
def s__r0( *a) a[1] end
def s__sr01( *a) a[0][ a[1] + 1] end
def s__i__r0( *a) a[0].send(a[3])[a[1]] end
def s__r1_eq_sr01(*a) a[0][ a[2]] ==
a[0][ a[1] + 1] end
.
309c
# @@I_s__r0 = 1; @@I_s__r1 = 2; @@I_s__mt = 3
.
197,198d
178d
169,172c
class Rou
include RiteOpcodeUtil
include M__Rou
end
ROU = Rou.new
.
167c
module M__Rou
def send(*op)
case op[0] when Numeric then op.inject else self.__send__(*op) end
end
end
.
24,25c
# NSL_ = 6309 # nanosleep()
NSL_ = 10065 # nanosleep()
.
22a
GC.start # g
.
--
YAMAGUTIseisei ( str_h__namae = { :sei => "山口" , :mei => "青星" } )
http://hello.to/seisei/ mailto:seisei@.68..net tel:081-70-5152-1104
heiwa furiisekkusu 1tu
[toc] | [prev] | [next] | [standalone]
| From | YAMAGUTIseisei <seisei@hello.to> |
|---|---|
| Date | 2019-12-15 12:24 +0000 |
| Subject | jit-1_-_github__ysei~mruby-meta-circular-heiretu_-_nightly_-_2_0_1_9_1_2_1_5__5121910200.rb |
| Message-ID | <qt590r$3kp$1@dont-email.me> |
| In reply to | #17 |
1406c
# ise[0].reject! { |fis| fis[1].resume && 0 <= fis[0]}
# ise[i_i_d].delif_c(2) { |fis, n| fis[1].resume(n) && 0 <= fis[0]} # thl.size
ise[i_i_d].reject!.with_index { |fis, n| fis[1].resume(n) && 0 <= fis[0]}
##### ise[i_i_d].each_index { |n| fis = ise[i_i_d][n]
############ ise[i_i_d].reject!.with_index { |fis, n|
####### if fis[1].resume(n) && 0 <= fis[0]
############ fis[1].resume(n) && 0 <= fis[0]
####### end
############ }
# rg.isk
# 0.step(@@rmth) { |n| # higokan ? touki 70410200
# fl.shift && redo if fl[n] && fl[n].resume(n) && 0 == n
# }
.
1404c
# (fl<< pfl[1]; ise[1].shift) if ! pfl[0] || 0 <= pfl[0] # p
# fl<< pfl[1] if ! pfl[0] || 0 <= pfl[0] # p
if pfl
# ise[0]<< [pfl[0], isfl(pfl[1])] # p
ise[i_i_d]<< [pfl[0], isfl(pfl[1])] # p
# ise[i_i_d]<< [pfl[0], iset(pfl[1])] # p
if 0 <= pfl[0]
# fl<< fls(pfl[0]) # p
ise[i_i_f]<< fls(pfl[0]) # p
end
true
# fl<< pfl[1] && ise[1].shift && redo if pfl && (! pfl[0] || 0 <= pfl[0]) # p
end
}
# rg.iss { |n, pfl01| [iset(pfl01[n]), fls(pfl01[n])][n] }
.
1402c
# ise[i_i_s].delif_c(2) { |pfl, n| # thl.size
# ise[1].reject! { |pfl|
.
1394,1400c
ise[i_i_s].reject!.with_index { |pfl, n| # Inspired by : RobertDoggett ? http://microware.com/# , Professor TAKAZAWA Yosimitu http://mu.ice.uec.ac.jp/~takazawa/
.
1366,1368c
# if fl.empty?
##### if ise[i_i_f].empty?
if ise[i_i_f].empty? # && 0 > rg['ctr', 1]
# if rg.flok
# if pco.! && fl.empty? # d~ng
.
1357c
# end
)
.
1355c
# ise[i_i_s].push([false, false], [false, false])
.
1353c
# unless ifj.(rg['sym'])
.
1346,1350c
)][0] && (
# else
# next if pcoj.call
# pco<< rg['pc'] if ifj.(rg['sym']) # p c
pco[0] = rg['pc'] if ifj.(rg['sym']) # p # c
.
1344c
# rg.ist { |n| fls(n) }
false), (
.
1341,1342c
# unless (ifj.(rg['sym']) || ifs.(rg['sym'])) # c 2
[(ifj.(rg['sym']) || ifs.(rg['sym'])) || ( # c 2
.
1337a
# @@opg.(irep, rg, imem) # c
.
1334d
1318,1332c
ise[i_i_f].delif_c(1) { |v, n| v.resume(n)}
# rg.fls
.
1311,1316c
####### ise[i_i_f].delete_at(n) && redo if ise[i_i_f][n] && ise[i_i_f][n].resume(n) && 0 == n
.
1309c
##### 0.step(1) { |n|
##### 0.step(0) { |n|
# fl.delete_at(n) && redo if fl[n] && fl[n].resume(n) && 0 == n
.
1301d
1293,1298c
# ise[1]<< [0 > rg.pg ? -rg['pc'] : rg['pc'], rg.to_a] # p # cp
ise[i_i_s]<< [0 > rg.pg ? -rg['pc'] : rg['pc'], rg.to_a] # p # cp
# pcf = rg['pc']
# ise[1]<< [pcf, rg.to_a] # p
.
1291a
pfl = nil
.
1290c
# ise[0]<< pfl # p
ise[i_i_d]<< pfl # p
.
1279,1286c
if pcf.abs == rg['pc'] # cp
# fl<< fls(pcf.abs) # p # cp
ise[i_i_f]<< fls(pcf.abs) # p # cp
pfl[0] = pcf.abs # cp
# ise[0]<< pfl # p
ise[i_i_d]<< pfl # p
.
1270,1276c
# unless ise[0].empty?
# pfl = ise[0].pop
unless ise[i_i_d].empty?
pfl = ise[i_i_d].pop
.
1263c
c, sym = @@opf.(irep, rg['pc']) # c
.
1255d
1207d
1204c
cop, sym = rg['cop'], rg['sym']
.
1201a
# rg = Ist.new([['ctr', 1], ['pc', @pc], ['sp', @sp], ['cop'], ['sym']])
.
1200a
i_i_f = 0; i_i_d = 1; i_i_s = 2
.
1196,1197c
# ise = [[], []]
ise = [[], [], []]
# ise = Ist.new
.
1174,1177c
# Fiber.yield true == fb.resume(*a)
# r ||= (true == fb.resume ? true : false) && r
r = (true == fb.resume ? true : false) # && r
# m = Fiber.yield r
Fiber.yield r
r = true
# r = fl.resume(m)
.
1172c
##### fl = fls(pc.abs) # if 0 <= pc # cp
r = false
Fiber.new { |m = 1|
.
1170c
# a = []
rg = Rg.new rg
pc = ['pc']
.
1164,1165c
sym = OPTABLE_SYM[rou.get_opcode(cop)]
.
1156a
rou = @@Rou
.
1155d
1059d
1055,1056c
# cop, sym = rg['cop'], rg['sym']
# cop, sym = rg.to_ra('cop', 'sym')
cop, sym = rg.to_a('cop', 'sym')
.
1046,1047c
sp = [sp].flatten
.
1037,1039c
(0 != thi && ht <= thi) ? thi = 0 : thi += 1
.
1034a
pl.pl_es(pc1, opa)
.
1033d
1021c
# lopa.push(k, fv) # if k
k && lopa.push(*fv)
.
1019a
else
# k && lopa<< k # p
lopa<< k # p
.
1017c
# fv[oi] ? (k, fv = [thl[oi], fv[oi]]) : k = nil
fv[oi] ? (fv = [thl[oi], fv[oi]]) : k = nil
.
1012,1014c
# lopa.push(thl[oi], imem.ta(fv[oi], cop))
# k, fv = [thl[oi + 1], []] # t
fv = [thl[oi], imem.ta(fv[oi], cop), thl[oi + 1], []] # t
# kfv = [thl[oi], imem.ta(fv[oi], cop), thl[oi + 1], []] # t
.
1009c
if v # && knid(fv, :Array)
.
989a
.
984d
980,981c
# rg = Rg.new rg
pc, sp, cop, sym = rg.to_a('pc', 'sp', 'cop', 'sym')
.
972a
ca[flg.inject(0) { |rv, v| rv = v ? 0 : 1 | rv << 1}].call
.
951,971c
# pr || (pr, sy, mt = imem.fml('st', sym)[1 .. -1])
# isr0 = [mt ? i : s, r0]
# sz = plr.size if flg[0]
if flg[0]
pr || (pr, sy, mt = imem.fml('st', sym)[1 .. -1])
isr0 = [mt ? i : s, r0]
sz = plr.size
.
948,949c
f = # ktf &&
flg.all?
# m = fy.(m, false) # c
end
if 0 == m
.
940,945d
934a
r0, r1 = r
.
928c
# mx = 0xf
.
922a
mx = 0xf
ca = [
-> { # f # && ktf
# r = r1 < sz && plr[r1] || lm.(isr0, r1) # c
r = (r = plr[r1] ; r1 >= sz ||
r.nil?) ? lm.(r1) : r # c
s[r1] = sy ? [s[r1], r].inject(sy) : r
rs = [r1.to_xeh, r0.to_xeh]},
-> { # flg[0] # && ktf
## ((sw = sp + sz) + 0xe).step(sw, -1) { # higokan mruby 70410200 # bbab89e7 5211410200 tmtm
# s.s.hgt <= mx && mx = s.s.hgt
# sz.step(mx) { |n| plr<< lm.(isr0, s[n])} # p c
s.size < mx && mx = s.size - 1
# sz.step(mx) { |n| plr<< lm.(isr0, s[n])} # p c
sz.step(mx) { |n| plr<< lm.(s[n])} # p c
rs[1] = r0.to_xeh},
-> { # flg[-1] # && ktf
rs[0] = r1.to_xeh},
-> {}
] # .lazy
## fy = ->(m, f) { # l
# fy = ->(m, f) {fa = [f, false] # l
# loop {
# loc.verb "#{pc.to_xeh} #{sym} #{rs[1]} #{rs[0]}"
## Fiber.yield(f && 0 == m)
## m = Fiber.yield([f][m.abs])
## m = Fiber.yield(fa[m])
# m = Fiber.yield(f && fa[m])
## break(m) unless [f][m.abs]
# break(m) unless fa[m] }
## }
# }
.
916,917c
pl, sp, mt, isr0, r, r0, r1, sym, sy, pr, sz = nil
.
910c
# f = false; flg = [false] # ; ktf = false
f = false; flg = [false, false] # ; ktf = false
.
892,896c
r[1] = r[0] if
knid(pl[lpl.afl('ctr', ?i)][0], :Array) && lpl.ckth(r[1], 2) # q
.
881,890d
871d
861c
# pl.ref_pl0i
.
849c
# 3080410200 : 5x2 ok ( gc ) : monami-ya.mrb 8270410200 813e2af8 # http://www.monami-ya.jp/
.
816d
777a
#module M__Ist
## def initialize_with_ist(*a)
## initialize_without_ist(*a)
# def initialize(*a)
# super
# @i_i_f = 0; @i_i_d = 1; @i_i_s = 2
# @ise = [[], [], []]
# end
## alias_method_chain :initialize, :ist
# def ist # (rg)
# if ! @ise[@i_i_d].empty?
# pfl = @ise[@i_i_d].pop
# pcf = pfl[0]
# if pcf < 0
## if pcf.abs == rg['pc'] # cp
# if pcf.abs == @a.assoc('pc')[1] # cp
## @ise[@i_i_f]<< fls(pcf.abs) # cp
# @ise[@i_i_f]<< yield(pcf.abs) # cp
# pfl[0] = pcf.abs # cp
# @ise[@i_i_d]<< pfl
# end
# else
# @ise[@i_i_d]<< pfl
# end
# pfl = nil
# end
#
## @ise[@i_i_s]<< [0 > @a['ctr', 1] ? -@a['pc'] : @a['pc'], @a.to_a]
# @ise[@i_i_s]<< [0 > @a.assoc('ctr')[1] ? -@a.assoc('pc')[1] : @a.assoc('pc')[1], @a]
# end
# def fls
# 0.step(1) { |n|
## fl.delete_at(n) && redo if fl[n] && fl[n].resume(n) && 0 == n
# @ise[@i_i_f].delete_at(n) && redo if
# @ise[@i_i_f][n] && @ise[@i_i_f][n].resume(n) && 0 == n
# }
# end
# def iss # (po = nil)
## ise[1].each_index { |n|
# @ise[@i_i_s].each_index { |n|
## ise[1].reject! { |pfl|
## (fl<< pfl[1]; ise[1].shift) if 0 <= pfl[0]
## (fl<< pfl[1]; ise[1].shift) if ! pfl[0] || 0 <= pfl[0]
## fl<< pfl[1] if ! pfl[0] || 0 <= pfl[0]
## pfl = ise[1][n]
# pfl = @ise[@i_i_s][n]
# if pfl
## ise[1].shift
# @ise[@i_i_s].shift
## ise[0]<< [pfl[0], isfl(pfl[1])]
## @ise[@i_i_d]<< [pfl[0], isfl(pfl[1])]
## @ise[@i_i_d]<< [pfl[0], iset(pfl[1])]
# @ise[@i_i_d]<< [pfl[0], yield(1, pfl)]
# if 0 <= pfl[0]
## fl<< fls(pfl[0])
## @ise[@i_i_f]<< fls(pfl[0])
# @ise[@i_i_f]<< yield(0, pfl)
# end
# redo
## fl<< pfl[1] && ise[1].shift && redo if pfl && (! pfl[0] || 0 <= pfl[0])
# end
# }
# end
# def isk
# ise[@i_i_d].reject! { |fis| fis[1].resume && 0 <= fis[0]}
# end
#
# def flok
# 0 == @ise[@i_i_f].size
# end
#end
#class Ist < Rg
## class Ist
# include M__Ist
#end
.
763,768c
def to_a(*a)
# if a.empty?
# @a.map { |v| v.dup}
# else
# a.map { |v| self[v]}
# end
a.empty? ? @a.map { |v| v.dup} : a.map { |v| self[v]}
.
760a
# @p
.
756a
# @p = i
.
751,752c
# v = -v if 'pc' == k && v == @a.assoc(k)[i] && knid(v, :Numeric) # cp
# 'pc' == k && case v when Numeric then v == @a.assoc(k)[i] && v = -v end # cp
@a.assoc(k)[i] = v
.
747c
# i ||= @a.assoc('ctr')[1]
i ||= @p
.
735c
# i ||= @a.assoc('ctr')[1]
i ||= @p
.
713a
@p = 1
.
621,622d
612,616d
584d
570d
568c
# flg = true ##
flg ||= ckth(th[mx], 1)
.
559a
# th = (0 .. 1).map { |v| pl_eg(pc, thl[v])}
.
549,551c
# (rou = ROU).send(*a) || a[1]
self.send(*a) || a[1]
.
546c
# GC.start # g # fuantei ( keisan gosa ) ?
.
540,541c
# knid(a, :Array) ? __method__(a, pc) : a # s_id(a, pc) : # 310200plini ?
case a when Array then __method__(a, pc) else a end # s_id(a, pc) else # 310200plini ?
.
533a
def send(*op)
# knid(op[0], :Numeric) ? op.inject(:+) : (rou = ROU).send(*op)
case op[0] when Numeric then op.inject else (rou = ROU).send(*op) end
# op.inject(knid(op[0], :Numeric) ? :+ : '(rou = ROU).send')
end
.
524c
end == true
.
484,488d
470,471c
a.each_slice(2) { |k, v| # .shift(2) higokan mruby 70410200
# 'ctr_s' == k && break(-v) # higokan ? mruby 70410200
.
467c
# n = arg.shift if arg.first.is_a?(Numeric) # unwork ( thread ? )
.
453,455c
self[n] = 0 == n ? @@Plmg.(pl_g(-1), pl) : pl # c
.
431d
416d
404d
387a
n = a.shift
.
378,384c
# a || return # 410200plini
.
368,369d
357d
332,336d
327c
# def s__i__r0( *a) a[0].send(a[3])[a[1]] end
def s__send( *a) a[0].send(a[3])[a[1]] end
.
255,256c
@@fml.(lb).assoc(sym) # c
.
234,235c
# [:MOVE, :__sr0], [:LOADL, :__i__r0, nil, :pool],
# [:LOADI, :__r0 ], [:LOADSYM, :__i__r0, nil, :syms],
[:MOVE, :__sr0], [:LOADL, :__send, nil, :pool],
[:LOADI, :__r0 ], [:LOADSYM, :__send, nil, :syms],
.
216c
# GC.disable # g
@@Slp.slp 0
.
195c
# GC.disable # g
# @@Slp.slp 0
.
175c
# include RiteOpcodeUtil
.
169,171c
include RiteOpcodeUtil
# def send(*op)
# knid(op[0], :Numeric) ? op.inject(:+) : self.__send__(*op)
# end
.
145c
## t -= t <=> 1
# t += 1 <=> t
.
25,26c
NSL_ = 6309 # nanosleep()
# NSL_ = 10065 # nanosleep()
.
23c
# GC.start # g
.
--
YAMAGUTIseisei ( str_h__namae = { :sei => "山口" , :mei => "青星" } )
http://hello.to/seisei/ mailto:seisei@.68..net tel:081-70-5152-1104
heiwa furiisekkusu 1tu
[toc] | [prev] | [next] | [standalone]
| From | YAMAGUTIseisei <seisei@hello.to> |
|---|---|
| Date | 2020-02-16 16:30 +0000 |
| Subject | jit-1_-_github__ysei~mruby-meta-circular-heiretu_-_nightly_-_2_0_2_0_0_2_1_6__6120020200.rb |
| Message-ID | <r2bre8$6eu$1@dont-email.me> |
| In reply to | #17 |
1536c
# GC.start # g # antei ?
.
1532c
# GC.start # g
.
1527c
# fib(20)
fib(3)
# 3 + 382
.
1504c
# fl.delete_at(n) && redo if fl[n] && fl[n].resume(n) && 0 == n
.
1492,1501c
####### mn = 0 > fis[0] ? -1 : n
# if fis[1].resume(n) && 0 <= fis[0]
####### if fis[1].resume(mn) # && 0 <= fis[0]
# end
# ise[i_i_d].reject!.with_index { |fis, n|
ise[i_i_d].delif_c(1) { |fis, n|
# n = 0 > fis[0] ? -1 : n
0 > fis[0] && n = -1
# fis[1].resume(n) && 0 <= fis[0]
fis[1].resume(n)
}
.
1490d
1481,1487c
# if 0 <= pfl[0]
# ise[i_i_f]<< fls(pfl[0]) # p
# end
# true
.
1479d
1473,1477c
ise[i_i_s].reject! { |pfl| # Inspired by : RobertDoggett ? http://microware.com/# , Professor TAKAZAWA Yosimitu http://mu.ice.uec.ac.jp/~takazawa/
# ise[i_i_s].delif_c(1) { |pfl|
.
1471c
####### if pfl
####### ise[i_i_d]<< [pfl[0], isfl(pfl[1])] # p
# if 0 <= pfl[0]
# ise[i_i_f]<< fls(pfl[0]) # p
# end
.
1463c
stack.p = rg['sp']
.
1445a
# rg['ctr', 1] = rg['ctr', 1].abs # cp
.
1441,1444c
# if ise[i_i_f].empty?
if ise[i_i_d].empty? || (1 == ise[i_i_d].size && 0 > ise[i_i_d][-1][0])
.
1430,1431c
# rg['ctr', 1] *= -1 # kakezan
rg.ps(-rg.pg) # cp
# if ifj.(rg['sym'])
# stu.(rg['pc'] + imem.getarg_sbx(rg['cop'], rg['sym']) # c
# stu.(rg['pc'] + 1, rg['sym', -1]) # c
# end
.
1421,1427c
# pco[0] = rg['pc'] if ifj.(rg['sym']) # p
(pco[0] = rg['pc']; pctj<< pco[0] + 1) if ifj.(rg['sym']) # p # c
.
1416,1417c
# ist.call
# ist.(rg['pc']) if istm.call # c
ist.(rg['pc']) if pctj.pop != rg['pc'] && istm.call # c
.
1414d
1409,1410c
# if 0 <= rg['ctr', 1]
# opg.call
opg.(rg['pc']) # c # cp
# @@opg.(irep, rg, imem) # c
.
1405c
# }
.
1397,1403c
# 0.step(0) { |n|
# ise[i_i_f].delete_at(n) && redo if ise[i_i_f][n] && ise[i_i_f][n].resume(n) && 0 == n
.
1390,1391c
# ifj = -> (sym) {?J == sym.to_s[0]} # l # q
# ifs = -> (sym) {[:ENTER, :SEND, :RETURN, :NOP].include?(sym)} # l
ifj = ->(sy) {?J == sy.to_s[0]} # l # q
ifs = ->(sy) {[:ENTER, :SEND, :RETURN, :NOP].include?(sy)} # l
# stu = ->(pcl, sy) { # l
# opg.(pcl) # c
# ist.(pcl) unless (ifj.(sy) || ifs.(sy)) # c 3
# pcoj.call
# }
.
1383,1387c
true
}
ist = ->(pcl, po = 0) { # l
# ise[i_i_s]<< [0 > rg['ctr', 1] ? -rg['pc'] : rg['pc'], rg.to_a] # p # cp
# ise[i_i_s]<< [0 > rg.pg ? -pcl : pcl, rg.to_a] # p # cp
ise[i_i_s]<< [0 > rg.pg ? -pcl : pcl, Rg.new(rg.to_a)] # p # cp
# ise[i_i_s]<< [0 > rg['ctr', 1] ? -pcl : pcl, rg.ss(po)] # p # cp
.
1381c
# pfl = nil
.
1378,1379c
ise[i_i_d]<< pfl # p
.
1373,1375c
ise[i_i_d]<< pfl # p
# next
next false
.
1370,1371c
# ise[i_i_f]<< fls(pcf.abs) # p # cp
.
1362,1366c
istm = -> { # l
# unless ise[i_i_d].empty?
# pfl = ise[i_i_d].pop
if pfl = ise[i_i_d].pop
.
1354,1356c
# @@opg = ->(irep, rg, imem) { # l
# opg = -> { # l
opg = ->(pcl) { # l
# c, sym = @@opf.(irep, rg['pc'], imem) # c
c, sym = @@opf.(irep, pcl) # c
.
1328c
callinfo.p -= 1
.
1322c
callinfo.p -= 1
.
1315c
callinfo.p -= 1
.
1312d
1308d
1306c
if 0 == callinfo.p
.
1295,1296c
# rg = Rg.new([['ctr', 1], ['pc', @pc], ['sp', @sp], ['cop'], ['sym']])
rg = Rg.new([['pc', @pc], ['sp', @sp], ['cop'], ['sym']])
.
1293c
# i_i_f = 0; i_i_d = 1; i_i_s = 2
i_i_d = 0; i_i_u = 1; i_i_s = 2
.
1289c
pctj = []
.
1285,1287c
# fl = []
.
1262,1268c
# r = (true == fb.resume ? true : false) # && r
ri ||= (true == fb || true == fb.resume ? fb = true : false)
m = Fiber.yield ri && rf
# Fiber.yield r
rf = fl.resume(m.abs) if 0 <= m # || 0 <= pc
.
1258,1259c
fl = fls(pc.abs) # if 0 <= pc # cp
# r = false
ri, rf = false
.
1254,1256c
# rg.to_s # fuguai taisaku mruby 70410200
# rg = Rg.new rg
pc = rg['pc']
sl = @Slp
# pc = rg.assoc('pc')[1]
.
1249c
# sym = OPTABLE_SYM[imem.get_opcode(cop)]
sym = OPTABLE_SYM[(rou = @@Rou).get_opcode(cop)]
.
1241d
1207c
callinfo.p += 1
.
1202c
callinfo.p += 1
.
1197c
callinfo.p += 1
.
1169d
1158d
1140,1141d
1132c
# sp = [sp].flatten
sp = [sb].flatten
.
1117c
# Fiber.new { ##
Fiber.new { |thi = 0| ##
.
1115c
# thi = 0 ##
.
1109a
# kfv.empty? lopa.push(k, fv) : lopa += kfv
.
1108c
# k && lopa.push(*fv)
lopa.push(*fv)
.
1104d
1097,1099c
# fv[oi] = imem.ta(fv[oi], cop) if oi <= ht = fv.hgt
fv[oi] = ta.(fv[oi]) if oi <= ht = fv.hgt # c
# fv[oi] ? (fv = [thl[oi], fv[oi]]) : k = nil
fv = fv[oi] ? [thl[oi], fv[oi]] : []
.
1091,1093c
# fv = [thl[oi], imem.ta(fv[oi], cop), thl[oi + 1], []] # t
fv = [thl[oi], ta.(fv[oi]), thl[oi + 1], []] # c t
.
1080a
sb = sp
ta = ->(ta) { # l
[ta[0] || (sb = ~ [sp].flatten[0]; :getarg_a), ta[1] || cop][
0 .. ta[2] || 1] }
.
1073,1074c
# printf("Unkown code %s \n", OPTABLE_SYM[@Rou.get_opcode(cop)])
.
1062,1063c
# pcabs = pc.abs # cp
# pc1 = pcabs + 1 # cp
pc1 = (pcabs = pc.abs) + 1 # cp
.
1059d
1047c
# pr || (pr, sy, mt = imem.fml('st', sym)[1 .. -1])
pr || (pr, sy = imem.fml('st', sym)[1 .. -1]
?_ == pr.to_s[1] || (mt, pr = [pr, imem.l__s__send])) # q
.
1043,1045d
1033,1034c
# if flg[0] && 0 > (sp || s.p = sp = pl[i_sp].flatten[0])
# flg[0] && s.ps([pl[i_sp]].flatten[0]) { |i| # && 0 <= sp
flg[0] && s.ps(pl[i_sp].flatten[0]) { |i| # && 0 <= sp
0 > i ? (r[1] = r[0]; flg[1] = true; ~ i) : i
}
.
1027d
1020d
991,995c
# s.s.hgt <= mx && mx = s.s.hgt
# s.s.hgt <= mx = 0xf && mx = s.s.hgt
# s.size < mx = 0xf && mx = s.size - 1
# (mx = 0xf) > (mx |= s.size << 7) >> 7 && mx = (mx >> 7) - 1; mx &= 0x7f # .b
### (mx = 0xf) > (mx |= s.size - 1 << 8) >> 8 && mx >>= 8; mx &= 0xff # .b
(rs[1] = s.size) < mx = 0xf && mx = rs[1] - 1
# sz.step(mx) { |n| plr<< lm.(isr0, s[n])} # p c
(sz .. mx).each { |n| plr<< lm.(s[n])} # p c
# s.s.empty? ? @Slp.slp(0) : plr += lm.(isr0, s[plr.size, 0xf]) # c
.
981c
# mx = 0xf
.
974,975c
# sp, sz, isr0, r0, r1, lm, sy = [][0]
# pl, sp, mt, isr0, r, r0, r1, sym, sy, pr, sz = nil
pl, mt, isr0, r, r0, r1, sym, sy, pr, sz = nil
.
968d
952,954c
r = [pl[lpl.afl(thl[0], ?i)]] # q
r1 = pl[lpl.afl(thl[1], ?i)] # q
r<< r1 if knid(pl[lpl.afl('ctr', ?i)][0], :Array) && lpl.ckth(r1, 3) # p # q
# r.map { |v| v[1] = v[-1]}
# r = r.map { |v| v[1] = v[-1]} # higokan ? mruby 70410200
# [pl[lpl.afl('sym', ?i)].to_sym, # q
# *[r, r.map { |v| lpl.ckth(v, 1)}].map { |v| [v[0], v[-1]]}]
.
950d
932,933d
921c
# 3080410200 : 5x2 ok ( gc ) : monami-ya.mrb 8270410200 813e2af8 # www.monami-ya.jp
.
868c
# GC.start # g # antei ?
.
768,850d
748,749c
# @a.assoc('ctr')[1]
@p
.
743,744c
# @a.assoc('ctr')[1] = i
@p = i
.
739c
@a.assoc(k)[i] = v
.
715a
# def ss(po = 0, ctr = nil)
# @a.map { |v| k = v[0]
# if ! 'ctr' == k # v[0]
# v = [k, v[self.assoc('ctr')[1]]]
# v[1] += po if 'pc' == k
# end
# v
# }
# end
.
682c
# @p = i
# (i == @p) && return(i) # higokan ? mruby 70410200
return i if i == @p
# @p = 0 > i ? ~ i : i
@p = b ? yield(i) : i
.
678,679c
# def ps(i)
def ps(i, &b)
# id = self.object_id
.
672,674c
# def pg() @p end
# def pi() @p += 1 end
# def pd() @p -= 1 end
.
603c
# GC.start # g # antei ?
.
596,597d
568,569c
# arf ||= ckth(th[idx], 2)
# th[idx] = pl_eg(pc, thl[idx]) if arf
th[idx] = pl_eg(pc, thl[idx]) if arf ||= ckth(th[idx], 2)
.
551,552c
# idx = 0 ##
th = ((idx = 0) ... thl.size).map { |v| pl_eg(pc, thl[v])}
flg = false
.
549d
546d
519,522c
# def send(*op)
## knid(op[0], :Numeric) ? op.inject(:+) : (rou = ROU).send(*op)
# case op[0] when Numeric then op.inject else (rou = ROU).send(*op) end
## op.inject(knid(op[0], :Numeric) ? :+ : '(rou = ROU).send')
def send(*a)
case a[0] when Numeric then a.inject else (rou = ROU).send(*a) end
# a.inject(knid(a[0], :Numeric) ? :+ : '(rou = ROU).send')
.
466,468c
'ctr' == k && ! knid(v, :Array) ? pl[i]<< v : pl[i] = v # p
.
464d
449,450c
def pl_eg(n = 0, k)
.
438,439c
pl
# a.empty? ? pl : a.map { |a| pl.afl(a, self)}
.
426,428c
def pl_g(n = 0)
.
322,329c
# def s__i_pool_r0( *a) a[@@I_s__i].pool[ a[@@I_s__r0]] end
# def s__i_syms_r0( *a) a[@@I_s__i].syms[ a[@@I_s__r0]] end
.
263c
@@fml.(lb).assoc(sym) # c
# (f = @@fml).(lb).assoc(sym) # c
.
260c
def initialize
@l__s__send = @@l__s__send
end
# def ta(l, cop) [l[0] || :getarg_a, l[1] || cop][0 .. l[2] || 1] end
.
240,243c
# [:MOVE, :__sr0], [:LOADL, :__send, nil, :pool],
# [:LOADI, :__r0 ], [:LOADSYM, :__send, nil, :syms],
[:MOVE, :__sr0], [:LOADL, :pool],
[:LOADI, :__r0 ], [:LOADSYM, :syms],
.
237a
attr_accessor :l__s__send
@@l__s__send = :s__send
.
220,222c
GC.disable # g
.
198,199c
GC.disable # g
.
178d
171,174d
145,146c
# t += 1 - (t <=> 0) # 1 <=> t
.
125,129c
# c = (n = 0) - 1
# while i > c += 1 # c += 1 < i # -e:1: non float value (TypeError) ( monami-ya.mrb:60510200 mruby:70410200 )
# a[n] && yield(a[n], c) && (a.delete_at(n); redo); n += 1
## (v = a[n]) && yield(v, c) && a.delete_at(n) || n += 1
n = 0
c = -i - 1
while 0 > c += 1 # c += 1 < i # -e:1: non float value (TypeError) ( monami-ya.mrb:60510200 mruby:70410200 )
a[n] && yield(a[n], c + i) && (a.delete_at(n); redo); n += 1
# (v = a[n]) && yield(v, c + i) && a.delete_at(n) || n += 1
.
25,26c
# NSL_ = 6309 # nanosleep()
NSL_ = 10065 # nanosleep()
.
17a
:s__send, :l__s__send,
.
--
YAMAGUTIseisei ( str_h__namae = { :sei => "山口" , :mei => "青星" } )
http://hello.to/seisei/ mailto:seisei@.68..net
heiwa furiisekkusu 1tu
[toc] | [prev] | [next] | [standalone]
| From | YAMAGUTIseisei <seisei@hello.to> |
|---|---|
| Date | 2020-04-19 16:59 +0000 |
| Subject | jit-1_-_github__ysei~mruby-meta-circular-heiretu_-_nightly_-_2_0_2_0_0_4_1_9__9140020200.rb |
| Message-ID | <5E9C8375.8090205@hello.to> |
| In reply to | #17 |
1477c
GC.start # g # antei ?
.
1473c
GC.start # g
.
1466,1468c
fib(20)
.
1428,1437c
ise[i_i_d].reject!.with_index { |fis, n|
# ise[i_i_d].delif_c(ts) { |fis, n|
0 > fis[0] && n = -1 # cp
# fis[1].resume(n) && 0 <= fis[0] # cp
.
1425c
#### end ####
.
1422c
# ise[i_i_f]<< fls(pfl[0]) # p
.
1418,1420c
# ise[i_i_s].delif_c(ts) { |pfl|
#### if pfl ####
ise[i_i_d]<< [pfl[0], isfl(pfl[1])] # p
.
1414c
# ise[i_i_f]<< fls(pfl[0]) # p
.
1412c
####### ise[i_i_d]<< [pfl[0], isfl(pfl[1])] # p
.
1404d
1388c
## plini
.
1385,1386c
rg.ps(rg.pg.abs)
.
1381c
# if 0 == ise[i_i_f].size
# if 0 == ise[i_i_d].size || (1 == ise[i_i_d].size && 0 > ise[i_i_d][-1][0])
.
1365,1366c
rg.ps(-rg.pg)
.
1354,1361c
# ist.(rg['pc']) if pctj.pop != rg['pc'] && istm.call # c
# false), (
ist.(rg['pc']) if pctj.pop != rg['pc'] && istm.call; false), # c
(next if pcoj.call)
][0] && (
(pctj<< (pco[0] = rg['pc']) + 1) if ifj.(rg['sym']) # p # c
.
1351c
loc.verb "#{rg['pc'].to_xeh} #{rg['sym']} #{rg['cop'].to_xeh}" if
0 <= rg.pg
.
1348,1349c
opg.(rg['pc']) # c
# @@opg.(irep, rg, imem) # c
.
1339,1343d
1324,1328d
1318d
1307,1308c
next false # r
.
1298,1299d
1290a
# c, sym = @@opf.(irep, pcl, imem) # c
.
1282d
1279a
sl.slp 0
.
1269,1271c
# if ?J == sym.to_s[0] # q
if ifj.(sym) # c
jm.(cop, sym) # c
else
callinfo, irep, rg = @@jsc.(stack, callinfo, irep, rg, imem) # c
# printf("Unkown code %s \n", OPTABLE_SYM[get_opcode(cop)])
# printf("Unkown code %s \n", OPTABLE_SYM[imem.get_opcode(cop)])
end
.
1267a
# 何もしない
when :NOP
.
1232a
ifj = ->(sy) {?J == sy.to_s[0]} # l # q
ifs = ->(sy) {[:ENTER, :SEND, :RETURN, :NOP].include?(sy)} # l
jm = ->(cop, sym) { # l
case sym
# JMP nでpcをnだけ増やす。ただし、nは符号付き
when :JMP
# @pc = @pc + getarg_sbx(cop)
# pc = pc + lpl.getarg_sbx(cop) - 1
rg['pc', -1] = rg['pc'] + rou.getarg_sbx(cop)
# next
when :JMPIF
# if @stack[@sp + getarg_a(cop)] then
if stack[rou.getarg_a(cop)]
# @pc = @pc + getarg_sbx(cop)
# pc = pc + lpl.getarg_sbx(cop) - 1
rg['pc', -1] = rg['pc'] + rou.getarg_sbx(cop)
# next
end
# JMPNOT Ra, nでもしRaがnilかfalseならpcをnだけ増やす。ただし、nは符号付き
when :JMPNOT
# if !@stack[@sp + getarg_a(cop)] then
if !stack[rou.getarg_a(cop)]
# @pc = @pc + getarg_sbx(cop)
# pc = pc + lpl.getarg_sbx(cop) - 1
rg['pc', -1] = rg['pc'] + rou.getarg_sbx(cop)
# next
end
end
}
.
1230d
1227c
# i_i_f = 0; i_i_d = 1
.
1213c
# imem = @imem
imem = @Imem
.
1211a
ts = @@ts
.
1200,1201c
# ri ||= (true == fb || true == fb.resume ? fb = true : false)
ri ||= (true == fb || true == fb.resume && fb = true)
.
1183d
1083,1110c
# # JMP nでpcをnだけ増やす。ただし、nは符号付き
# when :JMP
## @pc = @pc + getarg_sbx(cop)
## pc = pc + lpl.getarg_sbx(cop) - 1
# rg['pc', -1] = rg['pc'] + rou.getarg_sbx(cop)
## next
# when :JMPIF
## if @stack[@sp + getarg_a(cop)] then
# if stack[rou.getarg_a(cop)]
## @pc = @pc + getarg_sbx(cop)
## pc = pc + lpl.getarg_sbx(cop) - 1
# rg['pc', -1] = rg['pc'] + rou.getarg_sbx(cop)
## next
# end
# # JMPNOT Ra, nでもしRaがnilかfalseならpcをnだけ増やす。ただし、nは符号付き
# when :JMPNOT
## if !@stack[@sp + getarg_a(cop)] then
# if !stack[rou.getarg_a(cop)]
## @pc = @pc + getarg_sbx(cop)
## pc = pc + lpl.getarg_sbx(cop) - 1
# rg['pc', -1] = rg['pc'] + rou.getarg_sbx(cop)
## next
# end
.
1079c
cop, sym = rg['cop'], rg['sym']
.
1068,1070c
end while [true][thi] # fuantei ? mruby:70410200 monami-ya.mrb:60510200
# break if 0 != thi }
.
1064,1065c
begin # fuantei ? mruby:70410200 monami-ya.mrb:60510200
# loop {
.
1054d
1052d
1045,1046d
1042,1043d
1032,1037c
# fv[oi] = ta.(fv[oi]) if oi <= ht = fv.hgt # c
# fv = fv[oi] ? [thl[oi], fv[oi]] : []
fv = (fv[oi] = ta.(fv[oi]) if oi <= ht = fv.hgt) ? # c
[thl[oi], fv[oi]] : []
.
1027,1030c
fv = [thl[oi], ta.(fv[oi]), thl[oi + 1], []] # c t
.
1023d
998c
# imem = @imem
imem = @Imem
.
993,994d
991c
# rg = Rg.new rg
pc, sp, cop, sym = [rg['pc'], rg['sp'], rg['cop'], rg['sym']]
.
979c
# ?_ == pr.to_s[1] || (mt, pr = [pr, imem.l__s__send])) # q
?_ == pr.to_s[1] || mt = pr) # q
.
977d
964d
960d
958c
# r.each_with_index { |v, i| flg[i] = lpl.ckth(v, 1)} ## ####
.
956c
# sym, (r0, r1) = rslt pl # higokan mruby 70410200 # bce75e27 2211410200 matz
# sym, r, flg = rslt(pl); r0, r1 = r
sym, r, flg = rslt(pl)
.
933,945d
928c
-> { # flg[-1]
.
918,926c
# sz.step(sz + ap -= ap >> 2) { |n| plr<< lm.(s[n])} # p c
# (rs[1] = s.size) < mx = 0xf && mx = rs[1] - 1
0 == s.size ? @Slp.slp(0) : # plr += lm.(s[plr.size, 0xf]) # c
plr += lm.(s[sz .. sz + (ap = (ap += ap >> 1) >> 1)]) # + (ap <=> 0)]) # c
.
916c
-> { # flg[0]
.
910,911c
-> { # f
# r = r1 < sz && plr[r1] || lm.(r1) # c
.
908d
904,906c
# sz = 4; ap = (1 << sz) - 1 - 1
# sz -= 2; ap = ((ap << sz) + ap >> sz - 1) + 1 >> 1
ap = 1 << sz = 3
ap = ((ap += (ap <<= 1) + (ap <<= 2) + (ap << 2)) >> sz) + 1 >> 1
)
# lm = ->(r1) {r1.nil? ? r1 : imem.send(pr, *isr0, r1, mt)} # l
lm = ->(r1) {imem.send(pr, *isr0, r1, mt)} # l
.
901,902c
# pl, mt, isr0, r, r0, r1, sym, sy, pr, sz = nil
mt, isr0, r0, r1, sym, sy, pr = nil
f = false; flg = [false, false]
r = nil; rs = [?-, ?-] # q 2
.
895,898c
(
pc1 = pc + 1
loc = @@Loc
lpl = @pl # ; plb = @@plb
# imem = @imem
imem = @Imem
i_sp = lpl.afl(@pla.assoc('sp')[1], ?i) ## # q
# pl = nil; s = Stack.new; sp = nil; plr = nil
# s = Stack.new; plr = nil
s = Stack.new; plr = []
i = @irep
.
889,893d
883c
[pl[lpl.afl('sym', ?i)].to_sym, # q
r, r.map { |v| lpl.ckth(v, 1)}]
# *[r, r.map { |v| lpl.ckth(v, 1)}].map { |v| [v[0], v[-1]]}]
.
879,881c
# r = r.map { |v| v[1] = v[-1]} # higokan ? mruby 70410200
.
874,876c
# r = [pl[lpl.afl(thl[0], ?i)]] # q
r = [pl[lpl.afl(thl[0], ?i)], []] # q # t
r1 = pl[lpl.afl(thl[1], ?i)] # q
# r<< r1 if knid(pl[lpl.afl('ctr', ?i)][0], :Array) && lpl.ckth(r1, 3) # p # q
r[1] = r1 if knid(pl[lpl.afl('ctr', ?i)][0], :Array) && lpl.ckth(r1, 3) # p # q
# r = Array.new(thl.size) { |n| pl[lpl.afl(thl[n], ?i)]} # q
.
856c
# @pla = [['sp', 'ctr']]
.
852a
## self[0] = [[thl[0], [thini]], [thl[1], [thini]],
.
846c
# 3080410200 : 5x2 ok ( gc ) : monami-ya.mrb 8270410200 813e2af8 # http://www.monami-ya.jp/
.
840a
## def plini
.
823c
GC.disable # g # gene gc enable : mruby 6170410200 d17506c1
.
816a
## @pl.plini(@@rmth, @pl = ENVary.new(rmth + 1, thini, thini, [], [])) # 310200plini ?
.
813a
# @pll = [thini, thini, [], []]
# @pl = ENVary.new(rmth + 1, thini, thini, [], [])
## @pl = ENVary.new(rmth + 1, *@pll)
## plini
# @pl.plini
.
795c
# @imem = @@Imem
@Imem = @@Imem
.
793c
GC.start # g # antei ?
.
786a
@@Loc = LOC
.
782,785d
760,768d
756d
751d
745,746c
# 'pc' == k && case v when Numeric then v == @a.assoc(k)[i] && v = -v end # cp
.
713a
def to_a
@a.map { |v| v.dup}
end
.
636d
596c
GC.start # g # antei ?
.
593c
# fpl = delif_c(1, fpl) { |fb, n| fb.resume}
fpl = delif_c(ts, fpl) { |fb, n| fb.resume}
.
573a
ts = @@ts # + 1
.
561,568c
# idx += 1 unless arf = ckth(th[idx], 2) if mx != idx
### idx += 1 unless (0 < idx ? arf = ckth(th[idx], 2) : ckth(th[idx], 0))
# th[idx] = pl_eg(pc, thl[idx]) if arf ||= ckth(th[idx], 2) # (0 < idx) == arf
## ji_ngq ||= ckth(pl_eg(pc, 'ctr')[0], 0) # sp [sp]
# ji_ngq = ckth(pl_eg(pc, 'ctr')[0], 0) if ! ji_ngq && arf ||= ckth(th[idx], 2) # sp [sp]
# th = th[0 ... idx] if ji_ngq && (arf,! || ckth(th[idx], 2))
if arf ||= ckth(th[idx], 2) # (0 < idx) == arf
th[idx] = pl_eg(pc, thl[idx]) # (0 < idx) == arf
# ji_ngq ||= ckth(pl_eg(pc, 'ctr')[0], 0) # sp [sp]
ji_ngq ||= kt.call # c # sp [sp]
# th = th[0 ... idx] if ji_ngq && arf && ckth(th[idx], 2)
th = th[0 ... idx] if ji_ngq && ckth(th[idx], 2)
end
end
} ##
.
558,559c
idx += 1 unless arf = ckth(th[idx], 2) # mx != idx ?
.
554c
# flg ||= ckth(th[mx], 1)
flg = mx <= idx && ji_ngq
.
551,552c
# if ckth(th[mx], 1) || ji_ngq
# if ckth(th[mx], 1) || ckth(pl_eg(pc, 'ctr'), 0) # sp [sp]
if ckth(th[mx], 1) || kt.call # c # sp [sp]
# unless arf = ckth(th[mx], 2)
# th.each_index { |n| pl_es(pc, [thl[n], th[n]])}
th.each_with_index { |v, n|
# th[0 .. idx].each_index { |n|
pl_es(pc, [thl[n], v])
# break if (mx >= idx || ! ji_ngq)
ji_ngq || break
# break if mx != idx
}
.
545,549c
# th = ((idx = 0) ... thl.size).map { |v| pl_eg(pc, thl[v])}
# th = Array.new(thl.size) { |v| 0 == v ? pl_eg(pc, thl[v]) : []} # t # unwork ( thread ? ) mruby 10410200
th = ((idx = 0) .. thl.hgt).map { |v|
0 == v ? pl_eg(pc, thl[v]) : [] # t
}
# flg = false
ji_ngq = false
kt = -> {ckth(pl_eg(pc, 'ctr')[0], 0)} # l # sp [sp]
Fiber.new { ##
while mx = th.hgt
.
535d
511,514d
473,475c
# def ctr_r
# pl_eg('ctr')
# end
.
459c
i = self.afl(k, ?i) # q
.
441c
self[n] = 0 == n ? @@Plmg.(pl_g(-1), pl) : pl # c
.
438c
@@Plmg = ->(pi, pv) {pi.map { |v| [v[0], pv.shift]}} # l
.
435d
432c
# pl = @@Pldv.(pl) # c
pl.map! { |a| a[1]}
.
425c
# sleep 0; GC.start; sleep 0 # g
.
423c
# @@Pldv = ->(pl) {pl.map { |a| a[1]}} # l
.
385a
## plini
.
337c
def method_missing(*a)
a[0] = ?s << a[0].to_s # q
case a[3]
# when Array then a[3].map{ |v| v.nil? ? v : send(*a[0 .. 2], v)}
when Array
a_ = a[0 .. 2]; return a[3].map{ |v| v.nil? ? v : self.send(*a_, v)} # r
else self.send(*a)
end
end
.
333d
267d
263,264d
260c
# @l__s__send = @@l__s__send
.
239,240d
234,235c
# attr_accessor :l__s__send
# @@l__s__send = :s__send
.
146a
# @@slp = (( NSL_ + ( NSL_ >> 5)) >> 8) + 2 >> 2 # 16+ bit MPU
.
133c
# a[n] && yield(a[n], c + i) && (a.delete_at(n); redo); n += 1
a[n] && yield(a[n], c + i) && (next a.delete_at(n)); n += 1
.
126,129d
33a
# rmth = 63
# rmth = 47
@@rmth = 39
@@ts = 1 # = (@@rmth >> 1) + 1 # = 68060
.
18,19c
# :s__send, :l__s__send,
:ctr_s, :p, :s, :fibt].clear
.
--
YAMAGUTIseisei ( str_h__namae = { :sei => "山口" , :mei => "青星" } )
http://hello.to/seisei/ mailto:seisei@.68..net
heiwa furiisekkusu 1t
[toc] | [prev] | [next] | [standalone]
| From | YAMAGUTIseisei <seisei@hello.to> |
|---|---|
| Date | 2020-07-05 12:08 +0000 |
| Subject | jit-1_-_github__ysei~mruby-meta-circular-heiretu_-_nightly_-_2_0_2_0_0_7_0_5__5070020200.rb |
| Message-ID | <rdsg4r$8lk$1@dont-email.me> |
| In reply to | #20 |
./include/mrbconf.h ( d17506c / not monami-ya.mrb )
43d
./build/mrbgems/mruby-meta-circular-heiretu/mrblib/irep.rb ( both : monami-ya.mrb , d17506c )
44,47c
# ?i != m ? self[m.afl( k, ?i)] : self[0].index(self[0].assoc(k)) # q 2
?i != m ? self[m.afl( k, ?i)] : (s = self[0]).index(s.assoc(k)) # self.index(idx) # q 2
# ?i != m ? self[m.afl( k, ?i)] : loop {(s = self[0]).index(s.assoc(k) && break)} # self.index(idx) # fuguai taisaku # q 2
.
35d
mruby-meta-circular-heiretu/sample/jit-1.rb
1469c
fis[1].resume(0 > fis[0] ? -1 : n) # cp
.
1465,1467c
# ise[i_i_d].reject!.with_index { |fis, n|
# ise[i_i_d].reject_c!(ts) { |fis, n|
ise[i_i_d].delif_c(ts) { |fis, n|
# 0 > fis[0] && n = -1 # cp
.
1452a
# ise[i_i_s].reject_c!(ts) { |pfl, n|
.
1433c
if 0 <= rg.p
.
1422c
rg.p = rg.p.abs
.
1402c
rg.p = -rg.p
.
1399d
1393,1394d
1390c
0 <= rg.p
.
1383,1384c
if pco.pop || 0 <= rg.p
.
1381a
# 0.step(0) { |n|
# ise[i_i_f].delete_at(n) && redo if ise[i_i_f][n] && ise[i_i_f][n].resume(n) && 0 == n
# }
.
1367,1369c
# ise[i_i_s]<< [0 > rg['ctr', 1] ? -rg['pc'] : rg['pc'], rg.to_ra] # p # cp
ise[i_i_s]<< [0 > rg.p ? -pcl : pcl, Rg.new(rg.to_ra)] # p # cp
# ise[i_i_s]<< [0 > rg['ctr', 1] ? -pcl : pcl, rg.ss(po)] # p # cp
.
1351,1352c
# pcf = pfl[0]
# if 0 > pcf
if 0 > pcf = pfl[0]
.
1342d
1330c
if 0 > rg.p
.
1315d
1276c
# cop, sym = rg['cop'], rg['sym']
cop, sym = rg.to_ra('cop', 'sym')
.
1272a
rg['pc', -1] = rg['pc'] + rou.getarg_sbx(cop)
.
1264,1270c
## if !@stack[@sp + getarg_a(cop)] then
# if !stack[rou.getarg_a(cop)]
## @pc = @pc + getarg_sbx(cop)
## pc = pc + lpl.getarg_sbx(cop) - 1
# rg['pc', -1] = rg['pc'] + rou.getarg_sbx(cop)
## next
# end
! stack[rou.getarg_a(cop)] || next
.
1260c
# end
stack[rou.getarg_a(cop)] || next
.
1254,1258c
## if @stack[@sp + getarg_a(cop)] then
# if stack[rou.getarg_a(cop)]
## @pc = @pc + getarg_sbx(cop)
## pc = pc + lpl.getarg_sbx(cop) - 1
# rg['pc', -1] = rg['pc'] + rou.getarg_sbx(cop)
.
1248,1251c
## @pc = @pc + getarg_sbx(cop)
## pc = pc + lpl.getarg_sbx(cop) - 1
# rg['pc', -1] = rg['pc'] + rou.getarg_sbx(cop)
## next
.
1235d
1206,1207c
# ri ||= (true == fb || true == fb.resume && fb = true)
ri ||= true == fb || (true == fb.resume && fb = true)
.
1198d
1196c
# rg = Rg.new(*rg)
.
1093,1118d
1089c
# cop, sym = rg['cop'], rg['sym']
cop, sym = rg.to_ra('cop', 'sym')
.
1079,1080c
# end while [true][thi] # fuantei ? mruby:70410200 monami-ya.mrb:60510200
break if 0 != thi }
.
1075,1076c
# begin # fuantei ? mruby:70410200 monami-ya.mrb:60510200
loop {
.
1068,1073c
# opa = opg.(thi).push('ctr', [sp]) # c
#
# pl.pl_es(pc1, opa)
pl.pl_es(pc1, opg.(thi).push('ctr', [sp])) # c
# pl.ctr_s(pc1) if 0 == thi
#
# (0 != thi && ht <= thi) ? thi = 0 : thi += 1
if 0 == thi
pl.ctr_s(pc1)
elsif ht <= thi
thi = -1
end
thi += 1
.
1047,1057c
# if 'th' == k
# if 0 == oi
# fv = [thl[oi], ta.(fv[oi]), thl[oi + 1], []] # c
# else
# fv = (fv[oi] = ta.(fv[oi]) if oi <= ht = fv.hgt) ? # c
# [thl[oi], fv[oi]] : []
# end
case k
when 'th'
fv = [
-> {[thl[oi], ta.(fv[oi]), thl[oi + 1], []]}, # c
-> {(fv[oi] = ta.(fv[oi]) if oi <= ht = fv.hgt) ? # c
[thl[oi], fv[oi]] : []}
][oi <=> 0].call
# else
else lopa<< k # p
.
1020d
1014d
1001d
996a
1 < m && m = fy.(m, false) # c
.
995a
2 < m && m = fy.(m, false) # c
# [2 < m && m = fy.(m, false)] # c
.
983,984d
980d
959,962c
0 == s.size ? @Slp.slp(0) : plr += lm.( # c
s[sz .. sz + (ap = (ap += ap >> 1) >> 1)]) # + (ap <=> 0)])
# [(s + [nil])[sz .. 1 + sz + ap -= ap >> 2]])
.
947,948c
lm = ->(r1) {r1.nil? ? r1 : imem.send(pr, *isr0, r1, mt)} # l
# lm = ->(r1) {imem.send(pr, *isr0, r1, mt)} # l
# lm = ->(r1) {r1.empty? ? r1 : imem.send(pr, *isr0, r1, mt)} # l
# lm = ->(r1) {[1 < r1.size, r1 = r1[0 .. -2]][0] ?
# imem.send(pr, *isr0, r1, mt) : r1} # l
.
943,944c
# ap = 1 << sz = 3
# ap = ((ap += (ap <<= 1) + (ap <<= 2) + (ap << 2)) >> sz) + 1 >> 1
sz = nil; ap = @@fls_m
.
935d
933a
# sp, sz, isr0, r0, r1, lm, sy = [] # higokan ? mruby 70410200
.
929,930d
925d
916a
# @@fls_w = 4; @@fls_m = (1 << @@fls_w) - 1 - 1
# @@fls_w -= 2
# @@fls_m = ((@@fls_m << @@fls_w) + @@fls_m >> @@fls_w - 1) + 1 >> 1
# @@fls_w = nil
@@fls_m = 1 << @@fls_w = 3; @@fls_m = (
(@@fls_m += (@@fls_m <<= 1) + (@@fls_m <<= 2) + (@@fls_m << 2)) >> @@fls_w
) + 1 >> 1
@@fls_w = nil
.
912,914c
# [pl[lpl.afl('sym', ?i)].to_sym, # q
# r, r.map { |v| lpl.ckth(v, 1)}]
[pl[lpl.afl('sym', ?i)].to_sym, r, r.map { |v| lpl.ckth(v, 1)}] # q
.
901,905c
r = [pl[lpl.afl(thl[0], ?i)]] # q
# r = [pl[lpl.afl(thl[0], ?i)], []] # q # t
# r1 = pl[lpl.afl(thl[1], ?i)] # q
# r[1] = r1 if knid(pl[lpl.afl('ctr', ?i)][0], :Array) && lpl.ckth(r1, 3) # p # q
r[1] = knid(pl[lpl.afl('ctr', ?i)][0], :Array) && # q
lpl.ckth(pl[lpl.afl(thl[1], ?i)], 3) ? # q
pl[lpl.afl(thl[1], ?i)] : [] # q # t
.
879d
872c
# 3080410200 : 5x2 ok ( gc ) : monami-ya.mrb 8270410200 813e2af8 # www.monami-ya.jp
.
866d
847a
@rmt = wkth
.
843,845d
832,837d
812d
785,787c
# def pg
# @p
# end
.
781,783c
# def ps(i)
# @p = i
# end
.
746,755d
742,743c
def to_ra(*a)
if a.empty?
@a.map { |v| v.dup}
else
a.map { |v| self[v]}
end
.
719a
attr_accessor :p
.
621d
594,595c
sl.slp 0
Fiber.yield(flg || mx < thi)
# th[idx] = pl_eg(pc, thl[idx]) if mx >= idx && ckth(th[idx], 2)
ckth(th[idx], 2) && th[idx] = pl_eg(pc, thl[idx])
# th[idx] = s_id(th[idx], pc - 1) if mx >= idx
## if ckth(th[mx], 1) || ji_ngq
## if ckth(th[mx], 1) || ckth(pl_eg(pc, 'ctr'), 0) # sp [sp]
# if ckth(th[mx], 1) || kt.call # c # sp [sp]
## unless arf = ckth(th[mx], 2)
## th.each_index { |n| pl_es(pc, [thl[n], th[n]])}
# th.each_with_index { |v, n|
## th[0 .. idx].each_index { |n|
# pl_es(pc, [thl[n], v])
## break if (mx >= idx || ! ji_ngq)
# ji_ngq || break
## break if mx != idx
# }
## flg = true ##
## flg ||= ckth(th[mx], 1)
# flg = mx <= idx && ji_ngq
# end
# sl.slp 0
# Fiber.yield(flg && idx >= mx) ##
# idx += 1 unless arf = ckth(th[idx], 2) # mx != idx ? # ! kara ary
## idx += 1 unless arf = mx == idx ? arf : ckth(th[idx], 2) # mx != idx ?
## idx += 1 unless arf = ckth(th[idx], 2) if mx != idx # mx != idx ?
#### idx += 1 unless (0 < idx ? arf = ckth(th[idx], 2) : ckth(th[idx], 0)) # && mx > idx # mx != idx ? # ! kara ary
## th[idx] = pl_eg(pc, thl[idx]) if arf ||= ckth(th[idx], 2) # kara ary # (0 < idx) == arf
### ji_ngq = ckth(pl_eg(pc, 'ctr'), 0) if ! ji_ngq # sp [sp]
### ji_ngq ||= ckth(pl_eg(pc, 'ctr')[0], 0) # sp [sp]
## ji_ngq = ckth(pl_eg(pc, 'ctr')[0], 0) if ! ji_ngq && arf ||= ckth(th[idx], 2) # sp [sp]
## th = th[0 ... idx] if ji_ngq && (arf.! || ckth(th[idx], 2)) # kara ary de nai nara kara ary kakunin
#
# if arf ||= ckth(th[idx], 2) # kara ary # (0 < idx) == arf
# th[idx] = pl_eg(pc, thl[idx]) # kara ary # (0 < idx) == arf
## ji_ngq ||= ckth(pl_eg(pc, 'ctr'), 0) # sp [sp]
## ji_ngq ||= ckth(pl_eg(pc, 'ctr')[0], 0) # sp [sp]
# ji_ngq ||= kt.call # c # sp [sp]
# th = th[0 ... idx] if ji_ngq && ckth(th[idx], 2) # kara ary de nai nara kara ary kakunin
# end
} ##
}
.
574,591c
# if (ji_ngq ||= kt.call) || ckth(th[idx], 1) # ) && mx >= idx
if ckth(th[idx], 1) # && mx >= idx
if ji_ngq ||= kt.call
# idx > mx && idx = mx
thi.step(idx) { |n| pl_es(pc, [thl[n], th[n]])}
thi = idx + 1
end
idx += 1 if mx > idx
.
556,572c
# while mx = th.hgt # saizu henkou ari
loop {
if 0 < idx && ji_ngq ||= kt.call && ckth(th[idx], 2)
idx -= 1
flg = true
else
# th[idx] = s_id(th[idx], pc - 1) # if mx >= idx # && ckth(th[idx], 3)
th[idx], t = s_id(th[idx], pc - 1) # if mx >= idx # && ckth(th[idx], 3)
.
551a
thi = 0
mx = th.hgt
.
550c
# th = (th = pl_g(pc)
## [th[self.afl(thl[0], ?i)], th[self.afl(thl[1], ?i)]])
# [th[idx = self.afl(thl[0], ?i)], th[idx + 1]])
.
536c
# self.send(*a) || a[1]
[self.send(*a) || a[1], nil]
.
530c
## return a[0] if 0 >= a.hgt
return [a[0], nil] if 0 >= a.hgt
.
524c
# (TB.dup == a || case a when Array then 0 >= a.hgt end) && (return a)
(TB.dup == a || knid(a, :Array).!) && (return a)
.
464,465c
# i_k = self.afl(k, ?i) # q
# i_k = loop {self.afl(k, ?i) && break} # q # fuguai taisaku
# 'ctr' == k && knid(v, :Array).! ? pl[i_k]<< v : pl[i_k] = v # p
# 'ctr' == k && case v when Array then true end.! ? pl[i_k]<< v : pl[i_k] = v # p # higokan ? mruby 70410200
# pl[i_k] = 'ctr' == k && ! knid(v, :Array) ? pl[i_k] + [v] : v # p
# pl[i_k] = 'ctr' == k && ! knid(v, :Array) ? pl[i_k]<< v : v # p
## pl[i_k].send(('ctr' == k && ! knid(v, :Array) ? '<<' : '='), v) # p
## pl[i_k].send(('ctr' == k && ! knid(v, :Array) ? '<<' : 'replace'), v) # p
# pl[i_k = self.afl(k, ?i)] += [v] # q # ?
# pl[i_k] = (pl[i_k]<< v).send('ctr' == k && knid(v, :Array).! ? 'itself' : 'pop') # p # .itself higokan monami-ya.mrb:60510200 mruby:70410200
# pl[i_k] = (pl[i_k]<< v)['ctr' == k && knid(v, :Array).! ? 0 .. -1 : -1] # p # ?
# pl[i_k = self.afl(k, ?i)] =
# (pl[i_k]<< v)['ctr' == k && knid(v, :Array).! ? 0 .. -1 : -1] # p # ?
['ctr' == k, k = self.afl(k, ?i)][0] && # q
knid(v, :Array).! ?
# case v when Array then true end.! ? # higokan ? mruby 70410200
pl[k]<< v : pl[k] = v # p
.
437d
384a
.
338,339c
# a_ = a[0 .. 2]; return a[3].map{ |v| v.nil? ? v : self.send(*a_, v)} # r
a_ = a[0 .. 2]; return a[3].map{ |v| v.nil? ? v : send(*a_, v)} # r
# else self.send(*a)
else send(*a)
.
336d
330,331c
# def s__r1_eq_sr01(*a) a[0][ a[2]] ==
# a[0][ a[1] + 1] end
def s__r1_eq_sr01(*a) a[0][ a[1] + 1] ==
a[0][ a[2]] end
.
259,261c
# def initialize
# end
.
236,238d
158c
# (r - 1).times {sleep 0}; r.times {sleep t} # antei ?
.
155c
# (r - 1).times {sleep 0}; GC.start; r.times {sleep t} # g # fuantei ( keisan gosa ) ?
.
133d
123c
# def delif_c(i, a = nil)
def delif_c(i = @@ts, a = nil)
.
98c
# def +(i = 1)
def +(i = 0)
.
3,4d
--
YAMAGUTIseisei ( str_h__namae = { :sei => "山口" , :mei => "青星" } )
http://hello.to/seisei/ mailto:seisei@.68..net tel:081-70-5152-1104
祝 Softbank-PHS 展開期間延長
# mruby-process/src/process.c
#
# 357a
# mrb_define_method(mrb, mrb->kernel_module, "usleep", mrb_ker_usleep, MRB_ARGS_REQ(1)); // kimushu/mruby-sleep
# // mrb_define_method(mrb, mrb->kernel_module, "msleep", mrb_ker_msleep, MRB_ARGS_REQ(1)); // kimushu/mruby-sleep
# .
# 191a
#
# static mrb_value
# mrb_ker_usleep(mrb_state *mrb, mrb_value self) // kimushu/mruby-sleep
# {
# mrb_int usecs;
# mrb_get_args(mrb, "i", &usecs);
# usleep(usecs);
# return mrb_nil_value();
# }
#
# /*
# static mrb_value
# mrb_ker_msleep(mrb_state *mrb, mrb_value self) // kimushu/mruby-sleep usleep yobi
# {
# mrb_int msecs;
# mrb_get_args(mrb, "i", &msecs);
#
# // for (; msecs > 0; --msecs) {
# // usleep(1000);
# // }
# // return mrb_nil_value();
# // IIJ , Tomoyuki Sahara , YAMAGUTIseisei
# time_t beg; // , end;
# struct timeval tv;
#
# beg = time(0);
# tv.tv_sec = 0; // fuyou ?
# tv.tv_usec = msecs;
# if (0 > select(0, 0, 0, 0, &tv)) mrb_sys_fail(mrb,
# "mrb_ker_msleep failed"
# // "mrb_f_msleep failed"
# );
# return mrb_fixnum_value(time(0) - beg); // float ?
# }
# */
#
# .
<-> matsumotory/mruby-sleep # bamchoh/mruby-sleep
[toc] | [prev] | [next] | [standalone]
| From | YAMAGUTIseisei <seisei@hello.to> |
|---|---|
| Date | 2020-10-25 11:16 +0000 |
| Subject | jit-1_-_github__ysei~mruby-meta-circular-heiretu_-_nightly_-_2_0_2_0_1_0_2_5__5201020200.rb |
| Message-ID | <rn3n4i$nes$1@dont-email.me> |
| In reply to | #20 |
1501c
# ise[i_i_d].reject!.with_index { |fis, n|
.
1497d
1489c
ise[i_i_s].delif_c(ts) { |pfl, n|
.
1487c
# ise[i_i_s].reject! { |pfl| # Inspired by : RobertDoggett ? http://microware.com/# , Professor TAKAZAWA Yosimitu http://mu.ice.uec.ac.jp/~takazawa/
.
1465a
sl.slp(0, 0xf)
.
1401,1402c
# ise[i_i_s]<< [0 > rg['ctr', 1] ? -rg['pc'] : rg['pc'], rg.to_a] # p # cp
ise[i_i_s]<< [0 > rg.p ? -pcl : pcl, Rg.new(rg.to_a)] # p # cp
.
1384,1385d
1373d
1310d
1305,1306c
# end
# rg['pc', -1] = rg['pc'] + rou.getarg_sbx(cop)
end && rg['pc', -1] = rg['pc'] + rou.getarg_sbx(cop)
.
1297,1303c
! stack[rou.getarg_a(cop)] # || next
.
1288,1292c
stack[rou.getarg_a(cop)] # || next
.
1282a
true
.
1261d
1252d
1241d
1238,1239c
# ri ||= true == fb || (true == fb.resume && fb = true)
ri ||= true == fb || true == fb.resume && fb = true
.
1234d
1231d
1229d
1182c
# callinfo.p += 1
callinfo[0 .. 2] = [rg['sp'], rg['pc'], irep]
callinfo.p += 3
.
1180c
# callinfo[0] = irep
.
1177c
# callinfo.p += 1
.
1175c
# callinfo[0] = rg['pc']
.
1172c
# callinfo.p += 1
.
1170c
# callinfo[0] = rg['sp']
.
1147d
1137,1138c
end while [true][thi] # fuantei ? mruby:70410200 monami-ya.mrb:60510200
# break if 0 != thi }
.
1133,1134c
begin # fuantei ? mruby:70410200 monami-ya.mrb:60510200
# loop {
.
1116,1131c
# pl.pl_es(pc1, opg.(thi).push('ctr', [sp])) # c
pl.pl_es(pc1, opg.(thi).push( # c
*['ctr', [sp]] + [[:ctr_s, pc1], []][thi <=> 0]))
# if 0 == thi
# pl.ctr_s(pc1)
# elsif ht <= thi
# thi = -1
# end
# thi += 1
thi += 0 != thi && ht <= thi ? -thi : 1
.
1098,1104c
# when 'th'
# fv = [
# -> {[thl[oi], ta.(fv[oi]), thl[oi + 1], []]}, # c t
# -> {(fv[oi] = ta.(fv[oi]) if oi <= ht = fv.hgt) ? # c
# [thl[oi], fv[oi]] : []}
# ][oi <=> 0].call
when 'th' then fv = fvl[oi <=> 0].(oi) # c
.
1090,1096d
1085a
fv = []
fvl = [->(oi) {[thl[oi], ta.(fv[oi]), thl[oi + 1], []]}, # l # c
->(oi) {((oi <= ht = fv.hgt) && fv[oi] = ta.(fv[oi])) ? # l # c
[thl[oi], fv[oi]] : []}] # .lazy
.
1084c
# thl = @@mh_thl
thl = mh_thl
.
1053c
# m = fy.(m, f) # c
loc.verb "#{pc.to_xeh} #{sym} #{rs[1]} #{rs[0]}"
sl.plwt(m) {m = Fiber.yield(f && 0 == m)}
.
1041c
# 1 < m && m = fy.(m, false) # c
.
1037c
# 2 < m && m = fy.(m, false) # c
.
1030c
# 0 > i ? (r[1] = r[0]; flg[1] = true; ~ i) : i
0 > i ? (flg[1] = ! ! r[1] = r[0]; ~ i) : i
.
1013,1016c
# fy = ->(m, f) { # @Slp.slp 0
# loc.verb "#{pc.to_xeh} #{sym} #{rs[1]} #{rs[0]}"
# Fiber.yield(f && 0 == m)
# }
.
1003,1006c
# ((sw = sp + sz) + 0xe).step(sw, -1) { # higokan mruby 70410200 # bbab89e7 5211410200 tmtm
0 == s.size ? @Slp.slp(0) : # plr += lm.( # c
# s[sz .. sz + (ap = (ap += ap >> 1) >> 1)]) # + (ap <=> 0)])
# [sl.slp(0),
# sz.step(sz + ap -= ap >> 2) { |n| plr<< lm.(s[n])} # p # c
plr += lm.(s[sz .. sz + (ap = (ap += ap >> 1) >> 1)]) # + (ap <=> 0)]) # c
# plr += lm.(s[sz .. sz + ap -= ap >> 2]) {r1.empty?} # ? # c
# plr += lm.(s[sz .. sz + ap -= ap >> 2], 'empty?') # c
# ].lazy.to_a[s.s.size <=> 0] # .force # c
# (sz + ap -= ap >> 2).downto(sz) { |n|
# plr<< s.ow?(n) ? nil : lm.(s[n]) # p c
# }
.
1000a
# 0 == m && wo.include?(r) || wo.push(r).sort!
.
992,993c
# lm = ->(r1, &b) {yield ? r1 : imem.send(pr, *isr0, r1, mt)} # ? # l
# lm = ->(r1, ck) {r1.send(ck) ? r1 : imem.send(pr, *isr0, r1, mt)} # l
.
989,990c
lm = ->(r1) {r1 && imem.send(pr, *isr0, r1, mt)} # l
# lm = ->(r1) {imem.send(pr, *isr0, r1, mt)} # l
.
984,986c
ap = @@fls_w ||= 1 << sz = 3
ap = @@fls_m ||= ((ap += (ap <<= 1) + (ap <<= 2) + (ap << 2)) >> sz) + 1 >> 1
.
981,982c
# sz = 4; ap = @@fls_w ||= (1 << sz) - 1 - 1
## sz = 4; @@fls_m || (ap = @@fls_w ||= (1 << sz) - 1 - 1; @@fls_w = nil)
# sz -= 2; ap = @@fls_m ||= ((@@fls_w << sz) + @@fls_w >> sz - 1) + 1 >> 1
## sz = nil; ap = @@fls_m
.
979a
m = 1; wo = []
.
976c
isr0, mt, r0, r1, sym, sy, pr = nil
.
972c
# i = @irep
s.irep(i = @irep)
.
970a
sl = @Slp
.
956,959c
# @@fls_m = 1 << @@fls_w = 3; @@fls_m = (
# (@@fls_m += (@@fls_m <<= 1) + (@@fls_m <<= 2) + (@@fls_m << 2)) >> @@fls_w
# ) + 1 >> 1
# @@fls_w = nil
@@fls_w = nil; @@fls_m = nil
.
951,954c
class Fls__l
end
.
946,947d
944c
# r = r.map { |v| v[1] = v[-1]} # higokan ? mruby 70410200
.
941c
# r = Array.new(thl.size) { |n| pl[lpl.afl(thl[n], ?i)]} # q
.
939a
r = [pl[lpl.afl(thl[0], ?i)]] # q
r[1] = knid(pl[lpl.afl('ctr', ?i)][0], :Array) && # q
lpl.ckth(pl[lpl.afl(thl[1], ?i)], 3) ? # q
pl[lpl.afl(thl[1], ?i)] : [] # t # q
.
930,938c
# thl = @@mh_thl
thl = mh_thl
.
904c
# 3080410200 : 5x2 ok ( gc ) : monami-ya.mrb 8270410200 813e2af8 # http://www.monami-ya.jp/
.
900c
# thl = @@mh_thl
thl = mh_thl
.
819c
# 'pc' == k && case v when Numeric then v == @a.assoc(k)[i] && v = -v end' # cp
.
791,795c
# if a.empty?
# @a.map { |v| v.dup}
# else
a.map { |v| self[v]}
end
def to_a
@a.map { |v| v.dup}
.
758a
def owc(i = @ir) i = owi?(i) && @@ow.delete_at(@@ow.index(i)) end
.
738a
def owi?(i) @@ow.assoc(i) end
.
732,736c
# def []=(*a)
def []=(sp, va, pc = nil)
#p [sp, va, pc, self.object_id]
# @@m.lock
pp = sp + @p
# knid(pc, :Fixnum) && (@ow[pc] && (@ow[pc].include?(pp) || (@ow.push(pp); @ow.sort!)) || @ow[pc] = [pp])
@s[pp] = va
# @@m.unlock
# a
end
def irep(i)
owi?(i) || (@@ow<< [i, []]; 0xf < @@ow.size && @@ow.shift; @ir = i) # p
.
716c
# @p = sp; @s = s
@p = sp; @s = s; @ir = nil
.
711c
attr_accessor :p, :s
.
709a
@@ow = []
.
668c
# fpl = delif_c(ts, fpl) { |fb, n| fb.resume}
fpl = delif_c(ts, fpl) { |fb, n| fb.resume(n)}
.
653c
# fpl<< plw(pc) if pc && 0 <= pc # p
pc && 0 <= pc && fpl<< plw(pc) # p
.
603,640d
601d
599c
# Fiber.yield(flg || mx < thi)
# m = Fiber.yield(flg || mx < thi)
# 0.step(m) { |n|
((m >> 2) + 1).times { |n| m = Fiber.yield([flg || mx < thi][n])}
.
597a
# 0 < m && m = Fiber.yield(false)
.
593a
# elsif mx > idx
else
pl_es(pc, [thl[idx], th[idx]])
.
590,592c
if kt.call
# if ji_ngq ||= kt.(pc) # c
# if ji_ngq ||= plw__kt(pc)
# thi.step(idx) { |n| pl_es(pc, [thl[n], th[n]])}
0.step(idx) { |n| pl_es(pc, [thl[n], th[n]])}
.
588d
584d
580c
# if 0 < idx && kt.call && ckth(th[idx], 2)
if 0 < idx && ckth(th[idx], 2) && kt.call
# if 0 < idx && ckth(th[idx], 2) && ji_ngq ||= kt.(pc) # c
# if 0 < idx && ckth(th[idx], 2) && ji_ngq ||= plw__kt(pc)
.
576,577c
# Fiber.new { ##
Fiber.new { |m = 1|
0 < m && Fiber.yield(false)
.
574c
# kt = -> {ckth(pl_eg(pc, 'ctr')[0], 0)} # l # sp [sp]
kt = -> {ji_ngq ||= ckth(pl_eg(pc, 'ctr')[0], 0)} # l # sp [sp]
# kt = @@kt
.
572c
# mx = th.hgt
.
566,568d
563c
# th = ((idx = 0) .. thl.hgt).map { |v|
th = ((idx = 0) .. mx = thl.hgt).map { |v|
.
558,561c
# thl = @@mh_thl
thl = mh_thl
# idx = 0 ##
.
554a
# def plw__kt(pc)
# ckth(pl_eg(pc, 'ctr')[0], 0) # sp [sp]
# end
# @@kt = ->(pc) {ckth(pl_eg(pc, 'ctr')[0], 0)} # l # sp [sp] # higokan ? mruby 70410200
.
550,552c
# (loc = @@Loc).verb("#{pc.to_xeh} #{a[0]} #{a[1].to_xeh}")
# [self.send(*a) || a[1], nil]
a, op = a
[self.send(a, op) || op,
case a when Numeric then true end ||
(loc = @@Loc).verb("#{pc.to_xeh} #{a} #{op.to_xeh}")]
.
544d
541,542c
# knid(a, :Array) ? s_id(a, pc) : a # __method__(a, pc) : #? mruby 410200
case a when Array then s_id(a, pc) else a end # __method__(a, pc) else #? mruby 410200
.
537c
# (TB.dup == a || case a when Array then 0 >= a.hgt end) && (return a)
.
512a
# 0 : ary 1 : ! ary 2 : kara ary 3 : ! kara ary
.
491,494d
481c
aa.each_slice(2) { |k, v| send(k, v)}
.
461,478c
knid(k, :Symbol) && (aa.push(k, v); break)
i = self.afl(k, ?i) # q
# i = loop {self.afl(k, ?i) && break} # q # fuguai taisaku
pl[i] = 'ctr' == k && ! knid(v, :Array) ? pl[i]<< v : v # p
# pl[i].send(('ctr' == k && ! knid(v, :Array) ? '<<' : 'replace'), v) # p
## (pl[i = self.afl(k, ?i)] += [v]).replace!{ |i| # q
## i.send(case v when Numeric then 'itself' else 'pop' end)}
.
453c
aa = []
.
435,437c
# if 0 == n
# pl.map! { |a| a[1]}
# end
0 == n && pl.map! { |a| a[1]}
.
334,336c
# a_ = a[0 .. 2]; return a[3].map{ |v| v.nil? ? v : send(*a_, v)} # r
a3 = a[3]; a3.map{ |v| v.nil? ? v : send(*a[0 .. 2], v, a[4])}
.
325,326d
164a
def plwt(m = 1)
sf = 2 # (@@ts >> 1) + 1
((m >> sf) + 1).times { |n| yield n}
end
.
130,134c
# n = 0
# c = -i - 1
n = 0; c = i + 1
while 0 < c -= 1 # c += 1 < i # -e:1: non float value (TypeError) ( monami-ya.mrb:60510200 mruby:70410200 )
# a[n] && yield(a[n], c + i) && (next a.delete_at(n)); n += 1
a[n] && yield(a[n], i - c) && (next a.delete_at(n)); n += 1
# (v = a[n]) && yield(v, i - c) && a.delete_at(n) || n += 1
.
122d
96d
35,36c
@@ts = 1 # = (@@rmth >> 1) + 1 # = $$ + 1 # = 68060
# @@mh_thl = (0 .. 1).to_a.map { |n| 'th' + n.to_xeh}
@@mh_thl = nil
def mh_thl
@@mh_thl ||= (0 .. 1).to_a.map { |n| 'th' + n.to_xeh}
end
.
16d
10c
:ADD, :ADDI, :SUB, :SUBI, :MUL, :DIV, :EQ, # :LOADF,
.
--
YAMAGUTIseisei ( str_h__namae = { :sei => "山口" , :mei => "青星" } )
http://hello.to/seisei/ mailto:seisei@.68..net tel:081-70-5152-1104
祝 Softbank-PHS 展開期間延長
[toc] | [prev] | [next] | [standalone]
Page 1 of 2 [1] 2 Next page →
Back to top | Article view | tw.bbs.comp.sources
csiph-web