From: SASADA Koichi Date: 2007-07-04T03:41:11+09:00 Subject: [ruby-dev:31123] Re: *v1,(*) = 0: Stack consistency error  ささだです。 Tanaka Akira wrote: > In article <871wfrwkqn.fsf@fsij.org>, > Tanaka Akira writes: > >> 次のようにすると Stack consistency error になります。 >> >> % ./ruby -e '*v1,(*) = 0' > > 原因が同じかどうかはわかりませんが、以下も異常終了します。 ...  とりあえず、全部通すようにしました。結果があってるかはあんま り自信がないんですが、というか、全部目で追いたくない orz ラン ダムテストというか、何個か見た限りでは、こうなってほしいのかな あという動きをしています。 ./miniruby -I../trunk/lib ../trunk/test.rb program: (*v0,(*)), = 0; [v0] result : [[]] program: (*v0,(*)), = [[:a,:b,:c],[:d,:e,:f],[:g,:h,:i],[:j,:k, :m]]; [v0] result : [[:a, :b]] program: v0,*v1,(*v2,v3) = 0; ; [v0,v1,v2,v3] result : [0, [], [], nil] program: v0,*v1,(*v2,v3) = [[:a,:b,:c],[:d,:e,:f],[:g,:h,:i],[:j,:k, :m]]; ; [v0,v1,v2,v3] result : [[:a, :b, :c], [[:d, :e, :f], [:g, :h, :i]], [:j, :k], :m] program: v0,*v1,(*) = 0; [v0,v1] result : [0, []] program: v0,*v1,(*) = [[:a,:b,:c],[:d,:e,:f],[:g,:h,:i],[:j,:k, :m]]; [v0,v1] result : [[:a, :b, :c], [[:d, :e, :f], [:g, :h, :i]]] program: v0,*v1,v2,(*) = 0; [v0,v1,v2] result : [0, [], nil] program: v0,*v1,v2,(*) = [[:a,:b,:c],[:d,:e,:f],[:g,:h,:i],[:j,:k, :m]]; [v0,v1,v2] result : [[:a, :b, :c], [[:d, :e, :f]], [:g, :h, :i]] program: v0,*v1,(*),v2 = 0; [v0,v1,v2] result : [0, [], nil] program: v0,*v1,(*),v2 = [[:a,:b,:c],[:d,:e,:f],[:g,:h,:i],[:j,:k, :m]]; [v0,v1,v2] result : [[:a, :b, :c], [[:d, :e, :f]], [:j, :k, :m]] program: (*),*v0,(*) = 0; [v0] result : [[]] program: (*),*v0,(*) = [[:a,:b,:c],[:d,:e,:f],[:g,:h,:i],[:j,:k, :m]]; [v0] result : [[[:d, :e, :f], [:g, :h, :i]]] program: v0,v1,*v2,(*) = 0; [v0,v1,v2] result : [0, nil, []] program: v0,v1,*v2,(*) = [[:a,:b,:c],[:d,:e,:f],[:g,:h,:i],[:j,:k, :m]]; [v0,v1,v2] result : [[:a, :b, :c], [:d, :e, :f], [[:g, :h, :i]]] program: v0,*,(*v1,v2) = 0; [v0,v1,v2] result : [0, [], nil] program: v0,*,(*v1,v2) = [[:a,:b,:c],[:d,:e,:f],[:g,:h,:i],[:j,:k, :m]]; [v0,v1,v2] result : [[:a, :b, :c], [:j, :k], :m] program: v0,*,(*) = 0; [v0] result : [0] program: v0,*,(*) = [[:a,:b,:c],[:d,:e,:f],[:g,:h,:i],[:j,:k, :m]]; [v0] result : [[:a, :b, :c]] program: v0,*,v1,(*) = 0; [v0,v1] result : [0, nil] program: v0,*,v1,(*) = [[:a,:b,:c],[:d,:e,:f],[:g,:h,:i],[:j,:k, :m]]; [v0,v1] result : [[:a, :b, :c], [:g, :h, :i]] program: v0,*,(*),v1 = 0; [v0,v1] result : [0, nil] program: v0,*,(*),v1 = [[:a,:b,:c],[:d,:e,:f],[:g,:h,:i],[:j,:k, :m]]; [v0,v1] result : [[:a, :b, :c], [:j, :k, :m]] program: (*),*,(*) = 0; [] result : [] program: (*),*,(*) = [[:a,:b,:c],[:d,:e,:f],[:g,:h,:i],[:j,:k, :m]]; [] result : [] program: v0,v1,*,(*) = 0; [v0,v1] result : [0, nil] program: v0,v1,*,(*) = [[:a,:b,:c],[:d,:e,:f],[:g,:h,:i],[:j,:k, :m]]; [v0,v1] result : [[:a, :b, :c], [:d, :e, :f]] program: *,(*v0,v1), = 0; [v0,v1] result : [[], 0] program: *,(*v0,v1), = [[:a,:b,:c],[:d,:e,:f],[:g,:h,:i],[:j,:k, :m]]; [v0,v1] result : [[:j, :k], :m] program: *,(*), = 0; [] result : [] program: *,(*), = [[:a,:b,:c],[:d,:e,:f],[:g,:h,:i],[:j,:k, :m]]; [] result : [] program: *,v0,(*), = 0; [v0] result : [0] program: *,v0,(*), = [[:a,:b,:c],[:d,:e,:f],[:g,:h,:i],[:j,:k, :m]]; [v0] result : [[:g, :h, :i]] program: *,(*),v0, = 0; [v0] result : [nil] program: *,(*),v0, = [[:a,:b,:c],[:d,:e,:f],[:g,:h,:i],[:j,:k, :m]]; [v0] result : [[:j, :k, :m]] program: *v0,(v1,v2,) = 0; [v0,v1,v2] result : [[], 0, nil] program: *v0,(v1,v2,) = [[:a,:b,:c],[:d,:e,:f],[:g,:h,:i],[:j,:k, :m]]; [v0,v1,v2] result : [[[:a, :b, :c], [:d, :e, :f], [:g, :h, :i]], :j, :k] program: *v0,(v1,v2) = 0; [v0,v1,v2] result : [[], 0, nil] program: *v0,(v1,v2) = [[:a,:b,:c],[:d,:e,:f],[:g,:h,:i],[:j,:k, :m]]; [v0,v1,v2] result : [[[:a, :b, :c], [:d, :e, :f], [:g, :h, :i]], :j, :k] program: *v0,(v1,*v2) = 0; [v0,v1,v2] result : [[], 0, []] program: *v0,(v1,*v2) = [[:a,:b,:c],[:d,:e,:f],[:g,:h,:i],[:j,:k, :m]]; [v0,v1,v2] result : [[[:a, :b, :c], [:d, :e, :f], [:g, :h, :i]], :j, [:k, :m]] program: *v0,(v1,*v2,v3) = 0; [v0,v1,v2,v3] result : [[], 0, [], nil] program: *v0,(v1,*v2,v3) = [[:a,:b,:c],[:d,:e,:f],[:g,:h,:i],[:j,:k, :m]]; [v0,v1,v2,v3] result : [[[:a, :b, :c], [:d, :e, :f], [:g, :h, :i]], :j, [:k], :m] program: *v0,(v1,*,v2) = 0; [v0,v1,v2] result : [[], 0, nil] program: *v0,(v1,*,v2) = [[:a,:b,:c],[:d,:e,:f],[:g,:h,:i],[:j,:k, :m]]; [v0,v1,v2] result : [[[:a, :b, :c], [:d, :e, :f], [:g, :h, :i]], :j, :m] program: *v0,(*,v1,) = 0; [v0,v1] result : [[], 0] program: *v0,(*,v1,) = [[:a,:b,:c],[:d,:e,:f],[:g,:h,:i],[:j,:k, :m]]; [v0,v1] result : [[[:a, :b, :c], [:d, :e, :f], [:g, :h, :i]], :m] program: *v0,(*v1,v2) = 0; [v0,v1,v2] result : [[], [], 0] program: *v0,(*v1,v2) = [[:a,:b,:c],[:d,:e,:f],[:g,:h,:i],[:j,:k, :m]]; [v0,v1,v2] result : [[[:a, :b, :c], [:d, :e, :f], [:g, :h, :i]], [:j, :k], :m] program: *v0,(*v1,(*)) = 0; [v0,v1] result : [[], []] program: *v0,(*v1,(*)) = [[:a,:b,:c],[:d,:e,:f],[:g,:h,:i],[:j,:k, :m]]; [v0,v1] result : [[[:a, :b, :c], [:d, :e, :f], [:g, :h, :i]], [:j, :k]] program: *v0,(*v1,v2,v3) = 0; [v0,v1,v2,v3] result : [[], [], 0, nil] program: *v0,(*v1,v2,v3) = [[:a,:b,:c],[:d,:e,:f],[:g,:h,:i],[:j,:k, :m]]; [v0,v1,v2,v3] result : [[[:a, :b, :c], [:d, :e, :f], [:g, :h, :i]], [:j], :k, :m] program: *v0,(*) = 0; [v0] result : [[]] program: *v0,(*) = [[:a,:b,:c],[:d,:e,:f],[:g,:h,:i],[:j,:k, :m]]; [v0] result : [[[:a, :b, :c], [:d, :e, :f], [:g, :h, :i]]] program: *v0,v1,(*v2,v3) = 0; [v0,v1,v2,v3] result : [[], 0, [], nil] program: *v0,v1,(*v2,v3) = [[:a,:b,:c],[:d,:e,:f],[:g,:h,:i],[:j,:k, :m]]; [v0,v1,v2,v3] result : [[[:a, :b, :c], [:d, :e, :f]], [:g, :h, :i], [:j, :k], :m] program: *v0,v1,(*) = 0; [v0,v1] result : [[], 0] program: *v0,v1,(*) = [[:a,:b,:c],[:d,:e,:f],[:g,:h,:i],[:j,:k, :m]]; [v0,v1] result : [[[:a, :b, :c], [:d, :e, :f]], [:g, :h, :i]] program: *v0,(*v1,v2),v3 = 0; [v0,v1,v2,v3] result : [[], [], 0, nil] program: *v0,(*v1,v2),v3 = [[:a,:b,:c],[:d,:e,:f],[:g,:h,:i],[:j,:k, :m]]; [v0,v1,v2,v3] result : [[[:a, :b, :c], [:d, :e, :f]], [:g, :h], :i, [:j, :k, :m]] program: *v0,(*),v1 = 0; [v0,v1] result : [[], nil] program: *v0,(*),v1 = [[:a,:b,:c],[:d,:e,:f],[:g,:h,:i],[:j,:k, :m]]; [v0,v1] result : [[[:a, :b, :c], [:d, :e, :f]], [:j, :k, :m]] program: *v0,(*),(*) = 0; [v0] result : [[]] program: *v0,(*),(*) = [[:a,:b,:c],[:d,:e,:f],[:g,:h,:i],[:j,:k, :m]]; [v0] result : [[[:a, :b, :c], [:d, :e, :f]]] program: *v0,v1,v2,(*) = 0; [v0,v1,v2] result : [[], 0, nil] program: *v0,v1,v2,(*) = [[:a,:b,:c],[:d,:e,:f],[:g,:h,:i],[:j,:k, :m]]; [v0,v1,v2] result : [[[:a, :b, :c]], [:d, :e, :f], [:g, :h, :i]] program: *v0,v1,(*),v2 = 0; [v0,v1,v2] result : [[], 0, nil] program: *v0,v1,(*),v2 = [[:a,:b,:c],[:d,:e,:f],[:g,:h,:i],[:j,:k, :m]]; [v0,v1,v2] result : [[[:a, :b, :c]], [:d, :e, :f], [:j, :k, :m]] program: *v0,(*),v1,v2 = 0; [v0,v1,v2] result : [[], nil, nil] program: *v0,(*),v1,v2 = [[:a,:b,:c],[:d,:e,:f],[:g,:h,:i],[:j,:k, :m]]; [v0,v1,v2] result : [[[:a, :b, :c]], [:g, :h, :i], [:j, :k, :m]] program: (v0,*v1,(*)) = 0; [v0,v1] result : [0, []] program: (v0,*v1,(*)) = [[:a,:b,:c],[:d,:e,:f],[:g,:h,:i],[:j,:k, :m]]; [v0,v1] result : [:a, [:b]] program: (v0,*,(*)) = 0; [v0] result : [0] program: (v0,*,(*)) = [[:a,:b,:c],[:d,:e,:f],[:g,:h,:i],[:j,:k, :m]]; [v0] result : [:a] program: (*,(*),) = 0; [] result : [] program: (*,(*),) = [[:a,:b,:c],[:d,:e,:f],[:g,:h,:i],[:j,:k, :m]]; [] result : [] program: (*v0,(*v1,v2)) = 0; [v0,v1,v2] result : [[], [], 0] program: (*v0,(*v1,v2)) = [[:a,:b,:c],[:d,:e,:f],[:g,:h,:i],[:j,:k, :m]]; [v0,v1,v2] result : [[:a, :b], [], :c] program: (*v0,(*)) = 0; [v0] result : [[]] program: (*v0,(*)) = [[:a,:b,:c],[:d,:e,:f],[:g,:h,:i],[:j,:k, :m]]; [v0] result : [[:a, :b]] program: (*v0,v1,(*)) = 0; [v0,v1] result : [[], 0] program: (*v0,v1,(*)) = [[:a,:b,:c],[:d,:e,:f],[:g,:h,:i],[:j,:k, :m]]; [v0,v1] result : [[:a], :b] program: (*v0,(*),v1) = 0; [v0,v1] result : [[], nil] program: (*v0,(*),v1) = [[:a,:b,:c],[:d,:e,:f],[:g,:h,:i],[:j,:k, :m]]; [v0,v1] result : [[:a], :c] program: ((*v0,(*))) = 0; [v0] result : [[]] program: ((*v0,(*))) = [[:a,:b,:c],[:d,:e,:f],[:g,:h,:i],[:j,:k, :m]]; [v0] result : [[]] -- // SASADA Koichi at atdot dot net