<feed xmlns='http://www.w3.org/2005/Atom'>
<title>ruby.git/variable.c, branch ruby_1_8_7</title>
<subtitle>The Ruby Programming Language</subtitle>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/'/>
<entry>
<title>merge revision(s) 31731:31734:</title>
<updated>2011-06-02T10:02:20+00:00</updated>
<author>
<name>shyouhei</name>
<email>shyouhei@b2dd03c8-39d4-4d8f-98ff-823fe69b080e</email>
</author>
<published>2011-06-02T10:02:20+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=61ac67c14b03d52826b08ce89bb03a188dbfd6c3'/>
<id>61ac67c14b03d52826b08ce89bb03a188dbfd6c3</id>
<content type='text'>

	* variable.c (rb_autoload_load):  There is a  race condition while
	  autoloading.  When two or more threads touch a single autoloaded
	  constant at  a time,  one of them  does the require,  but others
	  behave  oddly.   To  fix  this  situation we  now  refrain  from
	  deleting the autoload table while someone is doing the autoload.
	  That  deletion is  deferred to  a  point where  a require  ended
	  successfully.  Doing so make it possible for multiple threads to
	  enter autoloading at the same  time but the require is protected
	  against  multiple simultaneous  entrance anyway  so all  but one
	  thread  gets blocked  at that  point.   So with  it, touching  a
	  constant that gets autoloaded cause those threads to block until
	  there is another one that does the same thing.
	  [ruby-core:36308] (#921)

	* variable.c (rb_const_get_0): ditto.

	* variable.c (autoload_node): ditto.

	* variable.c (autoload_delete): ditto.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@31732 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Signed-off-by: URABE, Shyouhei &lt;shyouhei@ruby-lang.org&gt;

	* variable.c (rb_const_get_0):  Fix  previous change.   There were
	  possibilities   when   an   autoload-specified   library   lacks
	  definition of  the constant  it was bound  to.  Once  after such
	  library had  already beed loaded, the autoload  engine shall not
	  reload  it.   Instead  the  interpreter have  to  consider  such
	  constant nonexistent.  It results in a const_missing situation.

	* variable.c (rb_autoload_load): ditto.

	* variable.c (autoload_node): ditto.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@31734 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Signed-off-by: URABE, Shyouhei &lt;shyouhei@ruby-lang.org&gt;

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8_7@31904 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>

	* variable.c (rb_autoload_load):  There is a  race condition while
	  autoloading.  When two or more threads touch a single autoloaded
	  constant at  a time,  one of them  does the require,  but others
	  behave  oddly.   To  fix  this  situation we  now  refrain  from
	  deleting the autoload table while someone is doing the autoload.
	  That  deletion is  deferred to  a  point where  a require  ended
	  successfully.  Doing so make it possible for multiple threads to
	  enter autoloading at the same  time but the require is protected
	  against  multiple simultaneous  entrance anyway  so all  but one
	  thread  gets blocked  at that  point.   So with  it, touching  a
	  constant that gets autoloaded cause those threads to block until
	  there is another one that does the same thing.
	  [ruby-core:36308] (#921)

	* variable.c (rb_const_get_0): ditto.

	* variable.c (autoload_node): ditto.

	* variable.c (autoload_delete): ditto.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@31732 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Signed-off-by: URABE, Shyouhei &lt;shyouhei@ruby-lang.org&gt;

	* variable.c (rb_const_get_0):  Fix  previous change.   There were
	  possibilities   when   an   autoload-specified   library   lacks
	  definition of  the constant  it was bound  to.  Once  after such
	  library had  already beed loaded, the autoload  engine shall not
	  reload  it.   Instead  the  interpreter have  to  consider  such
	  constant nonexistent.  It results in a const_missing situation.

	* variable.c (rb_autoload_load): ditto.

	* variable.c (autoload_node): ditto.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@31734 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Signed-off-by: URABE, Shyouhei &lt;shyouhei@ruby-lang.org&gt;

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8_7@31904 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
</pre>
</div>
</content>
</entry>
<entry>
<title>merge revision(s) 19710:</title>
<updated>2009-02-02T02:37:26+00:00</updated>
<author>
<name>shyouhei</name>
<email>shyouhei@b2dd03c8-39d4-4d8f-98ff-823fe69b080e</email>
</author>
<published>2009-02-02T02:37:26+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=c34256906e27f8381649423efa1ffa4c7d372428'/>
<id>c34256906e27f8381649423efa1ffa4c7d372428</id>
<content type='text'>
	* variable.c (autoload_delete, autoload_file): should not delete
	  autoload table, since it may be shared with duplicated modules.
	  [ruby-core:19181]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8_7@21941 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
	* variable.c (autoload_delete, autoload_file): should not delete
	  autoload table, since it may be shared with duplicated modules.
	  [ruby-core:19181]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8_7@21941 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
</pre>
</div>
</content>
</entry>
<entry>
<title>merge revision(s) 17578:</title>
<updated>2008-06-29T09:28:00+00:00</updated>
<author>
<name>shyouhei</name>
<email>shyouhei@b2dd03c8-39d4-4d8f-98ff-823fe69b080e</email>
</author>
<published>2008-06-29T09:28:00+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=5caedd1cb08e40fa12301105b1117e6254c33948'/>
<id>5caedd1cb08e40fa12301105b1117e6254c33948</id>
<content type='text'>
	* variable.c (rb_f_trace_var): should not be allowed at safe level 4.  
	  a patch from Keita Yamaguchi &lt;keita.yamaguchi at gmail.com&gt;.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8_7@17692 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
	* variable.c (rb_f_trace_var): should not be allowed at safe level 4.  
	  a patch from Keita Yamaguchi &lt;keita.yamaguchi at gmail.com&gt;.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8_7@17692 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge from ruby_1_8.</title>
<updated>2008-05-31T11:44:49+00:00</updated>
<author>
<name>knu</name>
<email>knu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e</email>
</author>
<published>2008-05-31T11:44:49+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=f072d4e34a70d79a78d06616aad3658dd6b97141'/>
<id>f072d4e34a70d79a78d06616aad3658dd6b97141</id>
<content type='text'>
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8_7@16719 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8_7@16719 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
</pre>
</div>
</content>
</entry>
<entry>
<title>* variable.c (rb_global_entry, rb_f_untrace_var, rb_alias_variable,</title>
<updated>2007-06-17T16:12:32+00:00</updated>
<author>
<name>nobu</name>
<email>nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e</email>
</author>
<published>2007-06-17T16:12:32+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=fc13ba2b9fb3614744791b66da435d0ec1b5aab4'/>
<id>fc13ba2b9fb3614744791b66da435d0ec1b5aab4</id>
<content type='text'>
  rb_generic_ivar_table, generic_ivar_get, generic_ivar_set,
  generic_ivar_defined, generic_ivar_remove, rb_mark_generic_ivar,
  rb_free_generic_ivar, rb_copy_generic_ivar,
  rb_obj_instance_variables): suppress warnings.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@12563 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
  rb_generic_ivar_table, generic_ivar_get, generic_ivar_set,
  generic_ivar_defined, generic_ivar_remove, rb_mark_generic_ivar,
  rb_free_generic_ivar, rb_copy_generic_ivar,
  rb_obj_instance_variables): suppress warnings.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@12563 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
</pre>
</div>
</content>
</entry>
<entry>
<title>* variable.c (rb_path2class): get rid of dangling pointer caused by</title>
<updated>2007-06-17T15:56:36+00:00</updated>
<author>
<name>nobu</name>
<email>nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e</email>
</author>
<published>2007-06-17T15:56:36+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=dd307cae31f98d578915637bdc91e98d5d1a608d'/>
<id>dd307cae31f98d578915637bdc91e98d5d1a608d</id>
<content type='text'>
  optimized out value.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@12562 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
  optimized out value.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@12562 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
</pre>
</div>
</content>
</entry>
<entry>
<title>* variable.c (rb_define_const): typo fixed.</title>
<updated>2006-12-11T02:49:37+00:00</updated>
<author>
<name>matz</name>
<email>matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e</email>
</author>
<published>2006-12-11T02:49:37+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=9e24e523a6b90dce4028e9eb07b6a1ca07d04974'/>
<id>9e24e523a6b90dce4028e9eb07b6a1ca07d04974</id>
<content type='text'>
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@11376 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@11376 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
</pre>
</div>
</content>
</entry>
<entry>
<title>* ruby.h: export classes/modules to implement sandbox.</title>
<updated>2006-07-20T07:04:17+00:00</updated>
<author>
<name>matz</name>
<email>matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e</email>
</author>
<published>2006-07-20T07:04:17+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=980326f6f1329c17f1b1bcb369fdd97add9650d1'/>
<id>980326f6f1329c17f1b1bcb369fdd97add9650d1</id>
<content type='text'>
  [ruby-core:08283]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@10573 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
  [ruby-core:08283]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@10573 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
</pre>
</div>
</content>
</entry>
<entry>
<title>* eval.c (rb_eval): use ARGSCAT for NODE_OP_ASGN1.</title>
<updated>2006-04-19T03:02:03+00:00</updated>
<author>
<name>matz</name>
<email>matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e</email>
</author>
<published>2006-04-19T03:02:03+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=1d3fd0024d2e8821e863a39c53c38dfea65b6fa6'/>
<id>1d3fd0024d2e8821e863a39c53c38dfea65b6fa6</id>
<content type='text'>
  [ruby-dev:28585]

* parse.y (list_concat): revert last change.

* parse.y (arg): use NODE_ARGSCAT for placeholder.

* lib/getoptlong.rb (GetoptLong::get): RDoc update patch from
  mathew &lt;meta at pobox.com&gt;.  [ruby-core:07738]

* variable.c (rb_const_set): raise error when no target klass is
  supplied.  [ruby-dev:28582]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@10100 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
  [ruby-dev:28585]

* parse.y (list_concat): revert last change.

* parse.y (arg): use NODE_ARGSCAT for placeholder.

* lib/getoptlong.rb (GetoptLong::get): RDoc update patch from
  mathew &lt;meta at pobox.com&gt;.  [ruby-core:07738]

* variable.c (rb_const_set): raise error when no target klass is
  supplied.  [ruby-dev:28582]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@10100 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
</pre>
</div>
</content>
</entry>
<entry>
<title>* ext/digest/digest.c (rb_digest_base_s_digest): add volatile to</title>
<updated>2005-12-12T00:36:54+00:00</updated>
<author>
<name>matz</name>
<email>matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e</email>
</author>
<published>2005-12-12T00:36:54+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=e585523a2b60a69befc1562fd4c79cfa688bb197'/>
<id>e585523a2b60a69befc1562fd4c79cfa688bb197</id>
<content type='text'>
  protect temporary context object.  [ruby-dev:27979]

* ext/iconv/iconv.c (Init_iconv): rb_gc_register_address() should
  be called before actual variable initialization.
  [ruby-dev:27986]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@9673 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
  protect temporary context object.  [ruby-dev:27979]

* ext/iconv/iconv.c (Init_iconv): rb_gc_register_address() should
  be called before actual variable initialization.
  [ruby-dev:27986]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@9673 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
</pre>
</div>
</content>
</entry>
</feed>
