1716a


# $rmtb = true

.
1714c
# GC.start              # g     # antei ?
.
1710c
# GC.start              # g 
.
1664,1666d
1660d
1656d
1639,1642c
#      if ise[i_i_d].empty? || (0 == ise[i_i_d].hgt && 0 > ise[i_i_d][-1][0])
      if 0 > rg.p &&
        (ise[i_i_d].empty? || (0 == ise[i_i_d].hgt && 0 > ise[i_i_d][-1][0]))

#       rg.p = rg.p.abs
#       rg.p = 0 > (pt = rg.p) ? ~ pt : pt
        rg.p = ~ rg.p
.
1633c
#         rg.p = -rg.p
          rg.p = ~ rg.p
.
1624,1631c
#       [(ifj.(sym) || ifs.(sym)) || (ist.(pc) if pctj.pop != pc && istm.call   # c 3 
#               false), pcoj.call &&
#       next][0] && (
        [(ifj.(sym) || ifs.(sym))       ||                              # c 2 
                pctj.pop != pc && istm.call && ! ist.(pc), # false,     # c 
        (next if pcoj.call)     ][0] && (
.
1599,1601c
#      ise[i_i_s]<< [0 > rg.p ? -pcl : pcl, Rg.new(rg.to_a)]   # p     # cp 
      ise[i_i_s]<< [0 > rg.p ? -pcl : pcl, Rg.new(*rg.to_a)]   # p     # cp 
.
1588d
1586c
            pfl[i_pc] = -pcf                            # cp 
.
1583c
        if 0 > pcf = pfl[i_pc]
.
1563d
1543d
1462c
#    rg = Rg.new([['pc', pc], ['sp', @sp], [:cop], [:sym]])
    rg = Rg.new(['pc', [pc]], ['sp', [@sp]], [:cop, []], [:sym, []])
.
1435c
#       rf = fl.resume(m.abs) if 0 <= m # || 0 <= pc
        (fl.resume(m.abs) && rf = true) if 0 <= m # || 0 <= pc

        rgd &&= nil
.
1433c
#       ri ||= true == fb.resume
        ri ||= true == fb.resume(rgd)
.
1428c

    @@fb ||= iset
#    fb = iset(rg)
    fb = @@fb
.
1426a
    rgd = rg.to_ra('pc', 'sp', :cop, :sym)

.
1423a
  @@fb = nil
.
1375,1378c
#       callinfo.p += (callinfo[0 .. 2] = [rg['sp'], rg['pc'], irep]).size
        callinfo.p += (callinfo[0 .. 2] = rg.to_ra('sp', 'pc') + [irep]).size
.
1329,1334c
#       begin                   # fuantei ? mruby:70410200 monami-ya.mrb:60510200
##      loop {
        sl.slp 0
#       Fiber.yield(0 <= pc ? [true][thi] : ([pcabs][thi] || pc))    # cp 
        rg = 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 }
.
1325c
#       pl.pl_es(pc1, opg.(thi) + opg0.(thi))           # c 2 
        pl.pl_es(pc1, opg.(thi))                        # c 
.
1322,1323c
#     0.upto(NaN) { |thi|       # higokan ? mruby 70410200
#     [1].cycle.with_index { |t, thi|
        rg && ini.(rg)          # c 

.
1318,1320c
    thi = 0     ##
#   Fiber.new {
    Fiber.new { |rg|
#   Fiber.new { |rg, m = 0|
#   Fiber.new { |rg, thi = 0|   ##      # higokan monami-ya.mrb:60510200 mruby:70410200
.
1314,1315c
#      lopa + opg0.(oi)         # c 
      lopa + fvl[0].(oi)                # c 
.
1304,1307c
#         when 'th' then fv = fvl[-1].(oi); fvl = fvl[0 .. fvl.size - 2 # .hgt - 1      # c 
#         when 'th'
#           fv = fvl[1][-1].(oi); fvl[1] = fvl[1][0 .. fvl[1].size - 2] # .hgt - 1]     # c 

##        when 'th' then fv = fvl.(oi)                          # c 
##        when 'th' then fv = fvl[oi <=> 0].(oi)          # c 
#         when 'th' then fv = fvl[1].force[oi <=> 0].(oi) # c     #? mruby 410200
          when 'th' then fv = fvl[1][oi <=> 0].(oi)               # c 
.
1287,1297c
#    fvl = [->(oi) {((oi <= ht = fv.hgt) && fv[oi] = imem.ta(fv[oi], cop)) ?              # l 
#                       [thl[oi], verb.(fv[oi])] : []},                                         # c 
#          ->(oi) {[thl[oi], verb.(imem.ta(fv[oi], cop)), thl[oi + 1], tb]}] # .lazy # l     # c 

#    opg0 = ->(oi) {[:ctr, [sp]] + [[:_ctr_s, pc1], []][oi <=> 0]}             # l 

    fvl = [->(oi) {[:ctr, [sp]] + [[:_ctr_s, pc1], []][oi <=> 0]},             # l 
#           [->(oi) {((oi <= ht = fv.hgt) && fv[oi] = imem.ta(fv[oi], cop)) ?     # l 
#                       [thl[oi], verb.(fv[oi])] : []},                                 # c 
#            ->(oi) {[thl[oi], verb.(imem.ta(fv[oi], cop)), thl[oi + 1], tb]}]       # l     # c 
#         ] # .lazy

            [->(oi) {[thl[oi], verb.(imem.ta(fv[oi], cop)), thl[oi + 1], tb]},       # l     # c 
             ->(oi) {((oi <= ht = fv.hgt) && fv[oi] = imem.ta(fv[oi], cop)) ?     # l 
#                       [thl[oi], verb.(fv[oi])] : []}].lazy]   #? mruby 410200         # c 
                        [thl[oi], verb.(fv[oi])] : []}]]                                # c 
.
1280d
1268,1276c
    pc1, fml = nil
#    k_sp = pla.assoc('sp')[1]

    ini = ->(rg) {           # l 
      pc, sp, cop, sym = rg
#      fml = imem.fml('th', sym) || (
      fml = imem.fml(i_lb, sym) || (
#       printf("Unkown code %s \n", OPTABLE_SYM[imem.get_opcode(cop)])
#       printf("Unkown code %s \n", OPTABLE_SYM[@Rou.get_opcode(cop)])
        loc.vrb("Unkown code #{sym} ") # .to_s
#       return nil
#       raise
#       rg = Fiber.yield(nil)
      )
      fml = [sym]<< fml           # p 
      pc1 = (pcabs = pc.abs) + 1                # cp 
#     fv = []   ##
    }
.
1265a
    i_lb = imem.fmli.index('th') + 1
.
1258c
#   pc1 = (pcabs = pc.abs) + 1  # cp 
.
1254,1256c
# def iset(rg)  ##
  def iset      ##
#   rg = Rg.new(*rg)            # fuguai taisaku ( gc )
#    pc, sp, cop, sym = [rg['pc'], rg['sp'], rg[:cop], rg[:sym]]
    pc, sp, cop, sym = nil
.
1246a
#       f ||= c_l.plg(pc1) && c_l.rslt(pc)
        f ||= c_l.plg(pc) && c_l.rslt(pc)
.
1244,1245c
#         c_l.plg(pc1) && f = c_l.rslt(pc)
#       end
.
1242c
#       unless f
.
1232,1236c
#      c_l = Fls__l.new(loc, s, i, imem, @Rou, @pl, sl)
      c_l = Fls__l.new(loc, s, i, imem, @Rou, @pl)
.
1225c
#      pc1 = pc + 1
.
1215,1220d
1210d
1207d
1203d
1199c
#      @f || ! ((@pl = @lpl.pl_g(pc)).empty? && @r.empty?)      # fuguai taisaku
      @f || ! ((@pl = @lpl.pl_g(pc + 1)).empty? && @r.empty?)   # fuguai taisaku
.
1194d
1188,1189d
1185a
#      case v when Array then ! v.empty? end && vrb( # [2, pc, *v])
#       [2, pc, *v.map{|v| case v when String then v.chomp else v end}])        # fuguai taisaku
##      "#{(pc).to_xeh}            #{getarg__(v[0])}       #{v[1].to_xeh}")}

.
1181,1182c
#       v[n] = r[n][1]
        v ||= r[n][1]
#       r[n][0] && knid(r[n][0], :Numeric) && r[n] = r[n][0]
#       r[n][0] && case r[n][0] when Numeric then r[n] = r[n][0] end
        case r[n][0] when Numeric then r[n] = r[n][0] end
.
1174c
#      v = [nil, nil]
      v = nil
.
1159c
#      ].(ji_ngq[0] && @plr.size)               # c 
      ].(ji_ngq[0] && @plr.size, @r)            # c 
.
1156,1157d
1151d
1149d
1145,1147c
#       @r0, @r1 = @r
#       @pr || (@pr, @sy = @imem.fml('st', @sym)
        @pr || (@pr, @sy = @imem.fml(@i_lb, @sym)
.
1137a
        @i_lb = imem.fmli.index('st') + 1
.
1124,1131c
              sz.step((ap = (ap += ap >> 1) >> 1)) { |n| @plr<< lm.(s[n])} # + (ap <=> 0))      # p     # c 
#               @plr<< s.ow?(n) ? nil : lm.(isr0, s[n])           # p     # c 
#           @rs[1] = @r[0]},
            @rs[1] = r[0]},
#         ->(sz) {           # ji_ngq[-1]
          ->(sz, r) {                # ji_ngq[-1]
#           @rs[0] = @r[1]},
            @rs[0] = r[1]},
#         ->(sz) {}
          ->(sz, r) {}
.
1122d
1118,1120c
#           @rs = @r1, @r0]},
            @rs = [r[1], r[0]]},
#         ->(sz) {           # ji_ngq[0]
          ->(sz, r) {                # ji_ngq[0]
.
1116c
            s[r[1]] = @sy ? [s[r[1]], @r].inject(@sy) : @r
.
1111,1114c
#         ->(sz) {           # f
          ->(sz, r) {                # f
#           @r = @r1 <= sz && @plr[@r1] || lm.(@r1)          # c 
            @r = r[1] <= sz && @plr[r[1]] || lm.(r[1])               # c 
.
1108,1109c
#       lm = ->(r1) {r1 && rou.send(@pr, @mt ? irep : s, @r0, r1, @mt)}      # l 
        lm = ->(r1) {r1 && rou.send(@pr, @mt ? irep : s, @r[0], r1, @mt)}    # l 
.
1106a
#       sl = @@fls_m ||= @@fls_mc.(4)           # c 
        ap = @@fls_m ||= @@fls_mc.(4)           # c 

.
1099,1101d
1096d
1092c
#    def initialize(loc, s, irep, imem, rou, lpl, ap)
    def initialize(loc, s, irep, imem, rou, lpl)
.
1089c
    @@fls_m = nil
    @@fls_mc = ->(sz) {
      @@fls_m = (1 << sz) - 1 - 1
#    sz -= 2
#    [((@@fls_m << sz) + @@fls_m >> sz - 1) + 1 >> 1, @@fls_mc = nil][0]
      [((@@fls_m << sz -= 2) + @@fls_m >> sz - 1) + 1 >> 1, @@fls_mc = nil][0]
    }
.
1079,1080c
#    pl[0] = [[thl[0], [thini]], [thl[1], [thini]],
#               ['sym', [0]], ['ctr', []]]              # @pla = [['sp', 'ctr']]
    pl[0] = [[pl0i[0], [thini]], [pl0i[1], [thini]],
                [pl0i[2], [0]], [pl0i[3], []]]          # @pla = [['sp', 'ctr']]

#   if 1 < self.size #    self.size : 0 ??   # higokan ? mruby:70410200 monami-ya.mrb:60510200
#     self.replace(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

    pl[1] && pl[0 .. -1] =
#       pl[0 .. self.hgt & ((n = rmth + 1) << 1) | n]
        pl[0 .. pl.hgt & ((thini = rmth + 1) << 1) | thini]

    pl.ref_pl0i
.
1071a
    pl0i = [thl[0], thl[1], 'sym', 'ctr']
.
1031,1033c
#    @rmt = Array.new(@@nth) {wkth}
    @rmt = @@Rmt + Array.new(@@nth - 1) {wkth}
.
1029c
#    plini(@@rmth, @pl = ENVary.new(rmth + 1, thini, thini, [], []))    # 310200plini ?
    plini(@@rmth, @pl = ENVary.new(true))                               # 310200plini ?
.
1023,1027c
#    @pl = ENVary.new
.
1020c
#    rmth = @@rmth
.
1003a
  @@Rmt = [wkth]

.
977c
#    @s.assoc(k)[i] = v
    @s.assoc(k)[1][i] = v
.
963c
#   @s.assoc(k)[i]
    @s.assoc(k)[1][i]
.
956c
#    @s.map { |v| v.dup}
    @s.map { |v| [v[0], v[1][0 .. -1]].dup}
.
948c
#    @s.assoc(a.shift).delete_at a[0]
    @s.assoc(a.shift)[0].delete_at a[0]
.
944c
#    @s.assoc(a.shift).delete_at 1
    @s.assoc(a.shift)[1].shift
.
940c
#    @s.assoc(a.shift).pop
    @s.assoc(a.shift)[1].pop
.
936c
#    @s.assoc(a.shift)<< a[0]             # p 
    @s.assoc(a.shift)[1]<< a[0]           # p 
.
931,932c
#    @s = a.shift
    @s = a
#    @p = 1
    @p = 0
.
897d
893d
842,843d
759,763c
#       sl.plwt(m) { |n| m = Fiber.yield([flg || mx < thi][n])}
        m = sl.plwt(m) { |n| Fiber.yield([flg || mx < thi][n])}
#       m = sl.plwt(m) { |n| Fiber.yield([flg][n])}
.
755c
#         v[0] && ve.call
.
740,748c
#         r = pl_es(pc, kt.call ? (thi = idx + 1
#               (0 .. idx).flat_map { |n| [thl[n], [th[n], v[n]]]}) :
          r = pl_es(pc, kt.call ?
                (0 ... thi = idx + 1).flat_map { |n|
                        [thl[  n], [th[  n]] + [[v], v = []][0]]}       # .slice! higokan monami-ya.mrb:60510200 mruby:70410200
                :       [thl[idx], [th[idx],    [v]]])

#         if ji_ngq ||= plw__kt(pc)
#           0.step(idx) { |n| r &= pl_es(pc, [thl[n], [th[n]]], n != mx)}
#         else__if mx > idx
#           r = pl_es(pc, [thl[idx], [th[idx]]], nil)
.
732a
#         flg ||= true
.
729,730c
        if 0 < idx && ckth(th[idx], 2) && kt.call    # ji_ngq ||= plw__kt(pc)
.
727c
        (th[idx].! || ckth(th[idx], 2)) && ((th[idx] = pl_eg(pc, thl[idx])) ||  # fuguai taisaku ?
                (next ini.call))                # fuguai taisaku ?
.
725c
#      th = (idx .. mx = thl.hgt).map { |v| 0 == v ? pl_eg(pc, thl[v]) : tb}
      th = (idx .. mx = thl.hgt).map {tb}

.
715,716c
#    th = nil
    th, mx = nil
.
710,711c
#    ve = -> {0 != vl && loc.vrb([2, pc - 1, *v])}
    ve = [-> {},
          -> {loc.vrb([2, pc - 1, *v])}
##              "#{(pc - 1).to_xeh}                #{imem.getarg__(v[0])}  #{v[1].to_xeh}")}
    ][LV__VRB]
.
708c
#    vl = LV__VRB
.
701d
692a
    [self.send(*a) || a[1], a]
.
686,691c
#    a = [[a[1], case a = a[0] when Numeric then
###     else a = (@@Imem).getarg__(a) end][0], a].reverse               # .rotate
#       else ?_ == a.to_s[0] && a = 'getarg' << a end][0], a].reverse     # .rotate       # q     # higokan monami-ya.mrb:60510200 mruby:70410200 : STR__GETARG , $str__getarg
    a = [a[1], case a = a[0] when Numeric then # nil
##      else (@@Imem).getarg__(a) end].reverse                  # .rotate
        else ?_ == a.to_s[0] ? 'getarg' << a : a end].reverse     # .rotate       # q     # higokan monami-ya.mrb:60510200 mruby:70410200 : STR__GETARG , $str__getarg
##  [self.send(*a) || a[1], case a[0] when Numeric then else a end]     # then nil
.
677,679c
#     knid(a, :Array)   ?     s_id(a)  :        # __method__(a)  :    #? mruby 410200   # heiretu : BeOS,PalmOS6,Aperios,HongmengOS,1489922543/30-42#97-98 <-> Smalltalk ( AlanKay , itojun ) ?
      case a when Array then  s_id(a)  else     # __method__(a)  else #? mruby 410200   # heiretu : BeOS,PalmOS6,Aperios,HongmengOS,1489922543/30-42#97-98 <-> Smalltalk ( AlanKay , itojun ) ?   # omoi ?
##    knid(a, :Array)   ?    Thread.new [s_id(a)} :     # __method__(a)} :    #? mruby 410200   # BeOS,PalmOS6,Aperios,HongmengOS,1489922543/30-42#97-98 <-> Smalltalk ( AlanKay , itojun ) ?
##    case a when Array then Thread.new {s_id(a)} else  # __method__(a)} else #? mruby 410200   # BeOS,PalmOS6,Aperios,HongmengOS,1489922543/30-42#97-98 <-> Smalltalk ( AlanKay , itojun ) ?     # omoi ?
           a    end
.
620a
  def ref_pl0i; @@pl0i = pl_g(-1) end

.
616,618c
#   [
      pl_s(n, pl) # ,
#  ensure
##    aa.each_slice(2) { |k, v| send(k, v)}
#     aa.empty? || send(*aa)
#   ][0]
#@@tp.clear
#@@tp = [nil]
#@@tp = Array.new(0xf)
#    end
.
612,613c
####  k = loop {self.afl(k, ?i) && break}               # q     # fuguai taisaku
.
610a
#      case k when Symbol then send(k, v); next end
      ?_ == (k = k.to_s)[0] && (send(k[1 .. -1], v); next)      # q 
#     case k when Symbol then send(k, v); break end
#     case k when Symbol then send(k, v); true end && break
.
609c
#     knid(k, :Symbol) && (aa.push(k, v); break)
#     case k when Symbol then aa.push(k, v); break end
.
606a
#    (@@tp + ary).each_slice(2) { |k, v|        # .shift(2) higokan mruby 70410200
.
601c
#  def pl_es(n, a, wt = false)
#  @@tp.delete(nil)
#    if wt
##      @@tp<< ary
#      @@tp.push(*ary)
#    else
#   aa = []
.
596c
# def pl_eg(n = 0, k)
  def pl_eg(n, k)
.
592c
#    self[n] = 0 == n ? @@Plmg.(pl_g(-1), pl) : pl              # c 
    self[n] = 0 == n ? @@Plmg.(@@pl0i, pl) : pl                 # c 
.
586c
#    0 != n ? (return pl) : pl.map { |a| a[1]}          # r 
    0 == n ? pl.map! { |a| a[1]} :
#       case pl when Array then else pl = @@plini end           # higokan ? mruby 70410200
#       case pl when Array then true end || pl = @@plini        # higokan ? mruby 70410200
        pl || pl = []   # pl ||= []     # higokan ? monami-ya.mrb:60510200 mruby:70410200
#   a.empty? ? pl : a.map { |a| pl.afl(a, self)}
.
579c
# def pl_g(n = 0)
# def pl_g(n, *a)
  def pl_g(n)
.
562,563c
#       JSON::parse( ### @ca =
#               ENV[@@Idx.lbl(a)])
        (a = ENV[@@Idx.lbl(a)]) && ### @ca =
                '[]' == a[0] << a[-1] && ### @ca =
                        JSON::parse(a)
.
534a

#    n = a.shift
#    (0 .. n).each{ |i| self[i] = *a}

    a = @@plini
    1.step(@@rmth + 1) { |i| self[i] = *a}
.
531,533d
524c
#  def initialize(*a)
  def initialize(a = nil)
.
503a
#   @@tp = Array.new(0x8); @@tp.delete(nil)
#   @@tp = Array.new(0x3f)
#   @@tp = []

.
501a
    @@thini = [false, 0]
    @@plini = [@@thini, @@thini, [], []]
    @@pl0i = nil


.
470c
#   @@fml.assoc(sym)[@@fmli.index(lb) + 1] + []         # fukusayou ? kaihi : mruby 70410200
    @@fml.assoc(sym)[i_lb] + []         # fukusayou ? kaihi : mruby 70410200
.
465,467c
#  def fml(lb, sym)
  def fml(i_lb, sym)
# Rg.new
.
463c
#  def ta(l, cop) [l[0] || :_a, l[1] || cop][0 .. l[2] || 1] end
  def ta(l, cop)
    case l[0]
    when Array then ta(l[0], cop)       # __method__(l[0], cop) #? mruby 410200
    else [l[0] || :_a, l[1] || cop][0 .. l[2] || 1]
    end
  end
.
456c
    @fmli = @@fmli
.
450,451c
#  attr_accessor :fml_th_bt
  attr_accessor :fml_th_bt, :fmli
.
315,316c
#               (['     ', ' '][(0 <=> a[2].size - 7) >> 1])}#{a[3].to_xeh}"
                (s[(0 <=> a[2].size - 7) >> 1])}#{a[3].to_xeh}"
.
311a
      s = [['           ', '    '], ['  ', ' ']][a[0] <=> 2]
.
91,94d
52c
# @@rmth = 39
  @@rmth = 7
.
29,30c
NSL_ = 6309             # OSX/PPC : 20476309 ?                  # nanosleep()
# NSL_ = 10065          # OSX/PPC : 20480065 ?                  # nanosleep()
.
9,10c
#       :_ctr_s,        :p,     :r,     :c,     :fml_th_bt,
        :_ctr_s,        :p,     :r,     :c,     :fml_th_bt,     :fmli,
.
7d



-- 
YAMAGUTIseisei ( str_h__namae = { :sei => "山口" , :mei => "青星" } )
http://hello.to/seisei/ mailto:seisei@.68..net
論文翻訳投稿のワンポイント QA ( Usenet ) をプーチン大統領に 648 円にて提供
( ML ( DL ) でなく真の AI/AL ( 弱い ALife ) にてロシアの存在感に貢献し軍縮 )