From: nobu.nokada@... Date: 2002-05-30T00:23:33+09:00 Subject: Re: possible bug: stack dump with <<-String, #{...} and large loops --Multipart_Thu_May_30_00:23:29_2002-1 Content-Type: text/plain; charset=US-ASCII Hi, At Wed, 29 May 2002 21:09:38 +0900, ts wrote: > If you look at [ruby-core:00042] > > dyna_push() is the compile time part, but because it's in > top_local_init() it will not affect ruby_dyna_vars *after* NODE_DSTR > (more precisely after compile()), this is why `x' will not be a dynamic > variable > > ruby_eval_tree = block_append(ruby_eval_tree, > NEW_DASGN(0, NEW_LIT(0))); > > this is the run time part, and if you look at NEW_DASGN you'll see that > this pseudo-dynamic variable (0, 0) is created *only* if it don't exist NODE_DASGN always makes ruby_dyna_vars non-null. Ok, I certainly forgot to clean ruby_dyna_vars when no dvar created in string extension. With attached patch, "#{1}" eval "x = 10" eval "defined? x" #=> "local-variable" not in-block. --Multipart_Thu_May_30_00:23:29_2002-1 Content-Type: text/x-patch; type=gzip; charset=US-ASCII Content-Disposition: attachment; filename="evstr.diff.gz" Content-Transfer-Encoding: base64 H4sIAAAAAAACA6VWbW+bSBD+DL9i0pMqKBADsZ3ElqNGqe9aKW0ip41O6lUIL0uCDgNaMIlV +b93Zhds09iVeucP3hfPy/PMzM74Qxbx5xHwOkyPmT75/x99dnUHcZLyEfRYXfbEcr7qlYKp jfJj17rglUh4nWQPIHApkzwD79g/P9OjJI7BWYLjg1OAI+RtC9BxnGar+a7r99xBzz8HdzDy 3dGJrykLlmXtEfIGI88duUP97VtwzvqePQCLlj7gRVmFVcLg0827Kbyp8iJggsdjHf6IeJxk HG5vboOr2fRPwwTiIX+GyXbvXGRRkPHnSgfdaZVKlhc8yPIIt8uCi+N/07Asd4x+uXsf3F3d 3E7RbJTDd037Rwf61HmKeFIOSVZBUC/IxKSxJ09jlCQe/unZgIjg2ldMxDwg7kbJ09iGzNRB 0yTMWIQL7lyweViSMYIlUQuURqYa+V3rjlylgnTnXOywmIBxf3n9ZWrSqdVJYjA2xqp5asJ3 8ikF4U0dihL1Lq+vb64ug09K34Zdha/uN8szx5LPiTs8sYdg4erZZwf4kFdlvqyETV9+C0Yl ME3KapciJWasW1ICpZesgtl9KBZhsQEoGUerLAzoAs01BlGcfp0HuEE7TydbrmlSma1VCsIR aZokG+EuKJblo+Ha4JotuKdHSqlB6JogkRodpb1HHkZ0r+JwOrS9cwoEbU4PZValtsyXgvGU agpZE7KMS5zSdSOUZFLdssaYZLzbC1PTOnDQHMsXBcLuwmz521KlC4Pe/r57AmUq30R7t8TS nIVpWzsksE3lPI9WVHfqZO4vzPFGiSxLldevgda2xuBoAr/0qLWa2zKOBefdK+VHe2mIMv/V 8b7BREkQlOapdCzAIRRbBmu5W2/zRkkLKsSCyu7LfDqOutvENOMCK/oCE4rUrMbqi6ov9tR8 K9y9R8Huz00ZowkMMn4fKYHWnfazr2pBzupCWdBqdcKQNK9SFeMDC+IcyyQQnK0YFlwTP9Q2 t75VXGjX1GWAbHNhvEKnNEv4cxFmNExeNeW8Vs/Jc6k9Wrj6B9uK1rSNTaUrgG1n/OmhE/mj bqQUpSYOv6DU1VLsXsTcbVvLuu1ET0nFHrHXYiWtiuZ9qz4iZwYwauz0ToJ3s+lff48U874v BwSup2pA4PhYYtxKXi0LQx1UAOgjR9L95ezOoPjpzm8Mg8OzoDsKPn+8DeQ4MA4Ngf5gKDHj OtwMNXwpqWvICWrjXwZW25BENoTigclvPM/zQ8Nu8wb/y7Aj5d1h1+0Sso9vu0CH4K5kS/AH ch/PM3EJAAA= --Multipart_Thu_May_30_00:23:29_2002-1 Content-Type: text/plain; charset=US-ASCII -- Nobu Nakada --Multipart_Thu_May_30_00:23:29_2002-1--