Path: news.ccsf.jp!news.tomockey.net!feeder.erje.net!1.eu.feeder.erje.net!weretis.net!feeder4.news.weretis.net!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_5_2_0__0250810200.rb Followup-To: tw.bbs.edu.computer-science,hk.test Date: Sun, 20 May 2018 12:21:06 +0000 Organization: X-PlsDntToRmsMatzYktJlgTtiRbistAnd: http://yahoo.jp/UUNk3s?#Sponsor_-_CellBE Lines: 548 Message-ID: <5B016832.8070806@hello.to> References: <54C4B4E9.4080503@hello.to> <54E0B96A.2090205@hello.to> <54E9FF02.8090302@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> Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-2022-JP Content-Transfer-Encoding: 7bit Injection-Info: h2725194.stratoserver.net; posting-host="a0ef6909ecda0b601d5bdf47313fd953"; logging-data="7536"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX18XLdt5A/7NEsd6e3kljQcW" 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:frde2s4kkKjMpwzwB7+Dv7TrvZo= In-Reply-To: <5AC8D7B8.6090108@hello.to> Xref: news.ccsf.jp japan.test:3344 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