Path: news.ccsf.jp!news.tomockey.net!goblin1!goblin.stu.neva.ru!eternal-september.org!feeder.eternal-september.org!reader02.eternal-september.org!.POSTED!not-for-mail From: YAMAGUTIseisei Newsgroups: tw.bbs.comp.sources,japan.test Subject: jit-1_-_github__ysei~mruby-meta-circular-heiretu_-_nightly_-_2_0_1_8_0_9_3_0__0390810200.rb Followup-To: tw.bbs.edu.computer-science Date: Sun, 30 Sep 2018 11:48:53 +0000 Organization: X-PlsDntToRmsMatzYktJlgTtiRbistAnd: http://j.mp/2K8Eo4k?#__Sponsor_-_CellBE Lines: 556 Message-ID: <5BB0B825.8070403@hello.to> References: <54C4B4E9.4080503@hello.to> <54F326E9.3010908@hello.to> <54FC6769.6090605@hello.to> <550DC230.7030303@hello.to> <5516EBEE.8040901@hello.to> <551A2704.4020109@hello.to> <5529692E.4060609@hello.to> <552D3439.3090107@hello.to> <5534B697.2000800@hello.to> <5545F912.9020803@hello.to> <5550CDAB.8040405@hello.to> <5558C89B.4050103@hello.to> <5561E704.9000208@hello.to> <55645EAA.9040304@hello.to> <55745BE2.5000100@hello.to> <55ACFE56.7040602@hello.to> <55E2830C.9070303@hello.to> <55EBB467.40803@hello.to> <55F4C0BC.5050308@hello.to> <560130D5.4030103@hello.to> <560131AA.9080804@hello.to> <56238C37.5020506@hello.to> <56332C2C.80904@x68k.net> <56360E57.2090200@hello.to> <57CC1CA9.5000107@hello.to> <5954F13B.3030107@hello.to> <59892D82.4060203@hello.to> <59D0DC7D.8010704@x68k.net> <5A48DEAC.1030603@x68k.net> <5A76E605.8090801@hello.to> <5AC0DD87.5060605@hello.to> <5AC8D7B8.6090108@hello.to> <5B016832.8070806@hello.to> <5B38B86E.7090806@hello.to> Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-2022-JP Content-Transfer-Encoding: 7bit Injection-Info: reader02.eternal-september.org; posting-host="83f7f9df596760f3919cbefd4e4918d3"; logging-data="12648"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX19ZnjDyULbZzZ1bNWyN+WpD" User-Agent: Mozilla/5.0 (BeOS; U; BeOS BePC; en-US; rv:1.8.1.17) Gecko/20080930 Thunderbird/2.0.0.17 ThunderBrowse/3.82 Mnenhy/0.7.6.0 Cancel-Lock: sha1:8I15Ss9lqhIE2pOHuhCMc3mHRZA= In-Reply-To: <5B38B86E.7090806@hello.to> Xref: news.ccsf.jp japan.test:3350 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