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 => "