st.c: revert st_keys

* st.c: revert st_keys() at r43238.  VALUE cannot be in st.c.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43243 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* 2013-10-11

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43244 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
vm_trace.c: fix infinite hook

* thread.c (rb_threadptr_execute_interrupts): flush postponed job only
  once at last.
* vm_trace.c (rb_postponed_job_flush): defer calling postponed jobs
  registered while flushing to get rid of infinite reentrance of
  ObjectSpace.after_gc_start_hook.  [ruby-dev:47400] [Bug #8492]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43245 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
win32.h: define or declare finite always

* include/ruby/win32.h (finite): always define or declare.  some
  mingw (maybe w64 only?) lack the declaration.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43246 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
vm_trace.c: suppress warnings

* vm_trace.c (rb_postponed_job_flush): suppress clobbered variable
  warnings on some gcc.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43247 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
vm_trace.c: use macro

* vm_trace.c (rb_postponed_job_flush): use dedicated macro.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43248 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
revert r43248. Should not set interrupt_flag.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43249 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* vm_trace.c (rb_postponed_job_flush): simplify.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43250 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Import ruby-electric.el 2.0.

* misc/ruby-electric.el: Import ruby-electric.el 2.0 from
  https://github.com/knu/ruby-electric.el which integrates changes
  from another fork by @qoobaa.
  * Allow ruby-electric-mode to be disabled by introducing a
    dedicated key map.  Electric key bindings are now defined in
    ruby-electric-mode-map instead of overwriting ruby-mode-map.
  * Add ruby-electric-mode-hook.
  * Use a remap in binding ruby-electric-delete-backward-char.
  * Totally revamp electric keywords and then introduce electric
    return.  Modifier keywords are now properly detected making
    use of ruby-mode's indentation level calculator, and
  * block-mid keywords (then, else, elsif, when, rescue and
    ensure) also become electric with automatic reindentation.
  * Add standarized comments for ELPA integration.
  * Fix interaction with smartparens-mode by disabling its end
    keyword completion, since ruby-electric has become more clever
    at it.
  * The custom variable `ruby-electric-keywords` is changed to
    `ruby-electric-keywords-alist`, allowing user to fine-grained
    configuration.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43251 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* vm_trace.c (rb_postponed_job_flush): fix bit operation.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43252 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* ext/objspace/gc_hook.c: prohibit reentrant.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43253 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Import ruby-electric.el 2.0.1, a bug fix release.

* misc/ruby-electric.el: Import ruby-electric.el 2.0.1 which fixes
  a bug and a flaw with auto-end introduced in the revamp.

  * ruby-forward-sexp is inappropriate here because it moves the
    cursor past the keyword.

  * Fix a reversed looking-back check in
    ruby-electric--block-beg-keyword-at-point-p.

  * Do not add end again if space or return is hit repeatedly
    after a block beginning keyword.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43254 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* gc.c, parse.y: support generational Symbol relatetd marking.
  Each symbols has String objects respectively to represent
  Symbols.
  These objects are marked only when:
* full marking
* new symbols are added
  This hack reduce symbols (related strings) marking time.
  For example, on my Linux environment, the following code
  "20_000_000.times{''}"
  with 40k symbols (similar symbol number on Rails 3.2.14 app,
  @jugyo tells me) boosts, from 7.3sec to 4.2sec.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43255 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* gc.c: use __GNUC__ instead of __GCC__.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43256 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* gc.c: use terminology `full_mark' instead of `minor_gc'
  in mark functions.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43257 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* internal.h, parse.y: use `full_mark' instead of `full_marking'.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43258 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* class.c, variable.c, gc.c (rb_class_tbl): removed.
  rb_class_tbl is no longer used.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43259 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* 2013-10-12

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43260 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
revert r43259 because it is possible to mark miss classes defined in C-exts. Thanks charliesome.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43261 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* vm_method.c (rb_gc_mark_unlinked_live_method_entries):
  revert last commit to introduce debug prints.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43262 b2dd03c8-39d4-4d8f-98ff-823fe69b080e