ruby-changes:4144
From: ko1@a...
Date: Fri, 29 Feb 2008 02:28:14 +0900 (JST)
Subject: [ruby-changes:4144] nagai - Ruby:r15634 (trunk): * ext/tk/lib/tk.rb: forgot to update RELEASE_DATE
nagai 2008-02-29 02:27:41 +0900 (Fri, 29 Feb 2008)
New Revision: 15634
Modified files:
trunk/ChangeLog
trunk/ext/tk/lib/multi-tk.rb
trunk/ext/tk/lib/tk/autoload.rb
trunk/ext/tk/lib/tk/root.rb
trunk/ext/tk/lib/tk/text.rb
trunk/ext/tk/lib/tk.rb
trunk/ext/tk/lib/tkextlib/iwidgets/scrolledtext.rb
Log:
* ext/tk/lib/tk.rb: forgot to update RELEASE_DATE
* ext/tk/lib/tk.rb, ext/tk/lib/tk/text.rb,
ext/tk/lib/tkextlib/iwidgets/scrolledtext.rb: remove adhoc check
of Ruby's features (use existence of some classes instead of
comparing with RUBY_VERSION)
* ext/tk/lib/tk/root.rb, ext/tk/lib/tk/autoload.rb: make TkRoot
(Tk::Root) unswitchable
* ext/tk/lib/multi-tk.rb: partial bug fix (still not work!!)
http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/ext/tk/lib/tk/root.rb?r1=15634&r2=15633&diff_format=u
http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/ext/tk/lib/tk.rb?r1=15634&r2=15633&diff_format=u
http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/ChangeLog?r1=15634&r2=15633&diff_format=u
http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/ext/tk/lib/multi-tk.rb?r1=15634&r2=15633&diff_format=u
http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/ext/tk/lib/tkextlib/iwidgets/scrolledtext.rb?r1=15634&r2=15633&diff_format=u
http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/ext/tk/lib/tk/text.rb?r1=15634&r2=15633&diff_format=u
http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/ext/tk/lib/tk/autoload.rb?r1=15634&r2=15633&diff_format=u
Index: ChangeLog
===================================================================
--- ChangeLog (revision 15633)
+++ ChangeLog (revision 15634)
@@ -1,3 +1,17 @@
+Fri Feb 29 02:24:22 2008 Hidetoshi NAGAI <nagai@a...>
+
+ * ext/tk/lib/tk.rb: forgot to update RELEASE_DATE
+
+ * ext/tk/lib/tk.rb, ext/tk/lib/tk/text.rb,
+ ext/tk/lib/tkextlib/iwidgets/scrolledtext.rb: remove adhoc check
+ of Ruby's features (use existence of some classes instead of
+ comparing with RUBY_VERSION)
+
+ * ext/tk/lib/tk/root.rb, ext/tk/lib/tk/autoload.rb: make TkRoot
+ (Tk::Root) unswitchable
+
+ * ext/tk/lib/multi-tk.rb: partial bug fix (still not work!!)
+
Thu Feb 28 23:37:12 2008 Tanaka Akira <akr@f...>
* lib/open-uri.rb (OpenURI::Meta#meta_setup_encoding): use ASCII-8BIT
Index: ext/tk/lib/tk.rb
===================================================================
--- ext/tk/lib/tk.rb (revision 15633)
+++ ext/tk/lib/tk.rb (revision 15634)
@@ -1076,11 +1076,16 @@
end
end
+
module TkCore
include TkComm
extend TkComm
+ WITH_RUBY_VM = Object.const_defined?(:VM) && ::VM.class == Class
+ WITH_ENCODING = Object.const_defined?(:Encoding) && ::Encoding.class == Class
+
unless self.const_defined? :RUN_EVENTLOOP_ON_MAIN_THREAD
+ ### Ruby 1.9 !!!!!!!!!!!!!!!!!!!!!!!!!!
RUN_EVENTLOOP_ON_MAIN_THREAD = false
end
@@ -1101,7 +1106,7 @@
opts = ''
end
- if RUBY_VERSION < '1.9.0' || RUN_EVENTLOOP_ON_MAIN_THREAD ### !!!!!!!!!!!
+ if !WITH_RUBY_VM || RUN_EVENTLOOP_ON_MAIN_THREAD ### Ruby 1.9 !!!!!!!!!!!
INTERP = TclTkIp.new(name, opts)
else
require 'thread'
@@ -1589,8 +1594,8 @@
end
def mainloop(check_root = true)
- if RUBY_VERSION < '1.9.0' ||
- TkCore::RUN_EVENTLOOP_ON_MAIN_THREAD ### !!!!!!!!!!!
+ if !TkCore::WITH_RUBY_VM || TkCore::RUN_EVENTLOOP_ON_MAIN_THREAD
+ ### Ruby 1.9 !!!!!!!!!!!
TclTkLib.mainloop(check_root)
else
begin
@@ -1618,8 +1623,8 @@
# nil : there is no mainloop
# false : mainloop is running on the other thread
# ( At then, it is dangerous to call Tk interpreter directly. )
- if RUBY_VERSION < '1.9.0' ||
- TkCore::RUN_EVENTLOOP_ON_MAIN_THREAD ### !!!!!!!!!!!
+ if !TkCore::WITH_RUBY_VM || TkCore::RUN_EVENTLOOP_ON_MAIN_THREAD
+ ### Ruby 1.9 !!!!!!!!!!!
TclTkLib.mainloop_thread?
else
Thread.current == INTERP_THREAD
@@ -1859,6 +1864,7 @@
end
end
+
module Tk
include TkCore
extend Tk
@@ -1974,7 +1980,7 @@
end
def root
- TkRoot.new
+ Tk::Root.new
end
def Tk.load_tclscript(file, enc=nil)
@@ -2465,7 +2471,7 @@
end
# estimate encoding
- if RUBY_VERSION < '1.9.0'
+ unless TkCore::WITH_ENCODING ### Ruby 1.9 !!!!!!!!!!!!
case $KCODE
when /^e/i # EUC
Tk.encoding = 'euc-jp'
@@ -4742,7 +4748,7 @@
#Tk.freeze
module Tk
- RELEASE_DATE = '2007-12-21'.freeze
+ RELEASE_DATE = '2008-02-29'.freeze
autoload :AUTO_PATH, 'tk/variable'
autoload :TCL_PACKAGE_PATH, 'tk/variable'
Index: ext/tk/lib/tkextlib/iwidgets/scrolledtext.rb
===================================================================
--- ext/tk/lib/tkextlib/iwidgets/scrolledtext.rb (revision 15633)
+++ ext/tk/lib/tkextlib/iwidgets/scrolledtext.rb (revision 15634)
@@ -322,7 +322,7 @@
def _ktext_length(txt)
- if RUBY_VERSION < '1.9.0' ### !!!!!!!!!!!!!
+ if TkCore::WITH_ENCODING ### Ruby 1.9 !!!!!!!!!!!!!
return txt.length
end
###########################
Index: ext/tk/lib/multi-tk.rb
===================================================================
--- ext/tk/lib/multi-tk.rb (revision 15633)
+++ ext/tk/lib/multi-tk.rb (revision 15634)
@@ -695,6 +695,8 @@
######################################
+ WITH_RUBY_VM = Object.const_defined?(:VM) && ::VM.class == Class
+
if self.const_defined? :DEFAULT_MASTER_NAME
name = DEFAULT_MASTER_NAME.to_s
else
@@ -723,9 +725,9 @@
fail ArgumentError, "expecting a Hash object for the 2nd argument"
end
- if RUBY_VERSION < '1.9.0' ### !!!!!!!!!!!
+ unless WITH_RUBY_VM
@interp = TclTkIp.new(name, _keys2opts(keys))
- else
+ else ### Ruby 1.9 !!!!!!!!!!!
@interp_thread = Thread.new{
Thread.current[:interp] = interp = TclTkIp.new(name, _keys2opts(keys))
#sleep
@@ -876,22 +878,26 @@
Thread.new{
current = Thread.current
loop {
- mtx, ret, table, script = @init_ip_env_queue.deq
- begin
+ mtx, cond, ret, table, script = @init_ip_env_queue.deq
+ begin
ret[0] = table.each{|tg, ip| ip._init_ip_env(script) }
rescue Exception => e
ret[0] = e
ensure
- mtx.unlock
+ mtx.synchronize{ cond.signal }
end
+ mtx = cond = ret = table = script = nil # clear variables for GC
}
}
def self.__init_ip_env__(table, script)
ret = []
- mtx = Mutex.new.lock
- @init_ip_env_queue.enq([mtx, ret, table, script])
- # mtx.lock
+ mtx = (Thread.current[:MultiTk_ip_Mutex] ||= Mutex.new)
+ cond = (Thread.current[:MultiTk_ip_CondVar] ||= ConditionVariable.new)
+ mtx.synchronize{
+ @init_ip_env_queue.enq([mtx, cond, ret, table, script])
+ cond.wait(mtx)
+ }
if ret[0].kind_of?(Exception)
raise ret[0]
else
@@ -1229,9 +1235,9 @@
if safeip == nil
# create master-ip
- if RUBY_VERSION < '1.9.0' ### !!!!!!!!!!!
+ unless WITH_RUBY_VM
@interp = TclTkIp.new(name, _keys2opts(tk_opts))
- else
+ else ### Ruby 1.9 !!!!!!!!!!!
@interp_thread = Thread.new{
Thread.current[:interp] = interp = TclTkIp.new(name, _keys2opts(tk_opts))
#sleep
@@ -1257,7 +1263,8 @@
@safe_base = true
@interp, @ip_name = master.__create_safe_slave_obj(safe_opts,
name, tk_opts)
- @interp_thread = nil if RUBY_VERSION < '1.9.0' ### !!!!!!!!!!!
+ # @interp_thread = nil if RUBY_VERSION < '1.9.0' ### !!!!!!!!!!!
+ @interp_thread = nil unless WITH_RUBY_VM ### Ruby 1.9 !!!!!!!!!!!
if safe
safe = master.safe_level if safe < master.safe_level
@safe_level = [safe]
@@ -1266,7 +1273,8 @@
end
else
@interp, @ip_name = master.__create_trusted_slave_obj(name, tk_opts)
- @interp_thread = nil if RUBY_VERSION < '1.9.0' ### !!!!!!!!!!!
+ # @interp_thread = nil if RUBY_VERSION < '1.9.0' ### !!!!!!!!!!!
+ @interp_thread = nil unless WITH_RUBY_VM ### Ruby 1.9 !!!!!!!!!!!
if safe
safe = master.safe_level if safe < master.safe_level
@safe_level = [safe]
@@ -2377,7 +2385,7 @@
def mainloop(check_root = true, restart_on_dead = true)
raise SecurityError, "no permission to manipulate" unless self.manipulable?
- if RUBY_VERSION < '1.9.0' ### !!!!!!!!!!!
+ unless WITH_RUBY_VM ### Ruby 1.9 !!!!!!!!!!!
return @interp_thread.value if @interp_thread
end
Index: ext/tk/lib/tk/text.rb
===================================================================
--- ext/tk/lib/tk/text.rb (revision 15633)
+++ ext/tk/lib/tk/text.rb (revision 15634)
@@ -1182,7 +1182,7 @@
end
def _ktext_length(txt)
- if RUBY_VERSION < '1.9.0' ### !!!!!!!!!!!!!
+ if TkCore::WITH_ENCODING ### Ruby 1.9 !!!!!!!!!!!!!
return txt.length
end
###########################
@@ -1541,7 +1541,7 @@
# Tk8.5 feature
def initialize(text, parent=nil, keys={})
unless text.kind_of?(Tk::Text)
- fail ArgumentError, "TkText is expected for 1st argument"
+ fail ArgumentError, "Tk::Text is expected for 1st argument"
end
@src_text = text
super(parent, keys)
Index: ext/tk/lib/tk/root.rb
===================================================================
--- ext/tk/lib/tk/root.rb (revision 15633)
+++ ext/tk/lib/tk/root.rb (revision 15634)
@@ -86,5 +86,4 @@
end
end
-#TkRoot = Tk::Root unless Object.const_defined? :TkRoot
-Tk.__set_toplevel_aliases__(:Tk, Tk::Root, :TkRoot)
+TkRoot = Tk::Root unless Object.const_defined? :TkRoot
Index: ext/tk/lib/tk/autoload.rb
===================================================================
--- ext/tk/lib/tk/autoload.rb (revision 15633)
+++ ext/tk/lib/tk/autoload.rb (revision 15634)
@@ -192,6 +192,8 @@
autoload :TkPalette, 'tk/palette'
+autoload :TkRoot, 'tk/root'
+
autoload :TkScrollbox, 'tk/scrollbox'
autoload :TkSelection, 'tk/selection'
@@ -294,7 +296,7 @@
:TkRadioButton => 'tk/radiobutton',
:TkRadiobutton => 'tk/radiobutton',
- :TkRoot => 'tk/root',
+ # :TkRoot => 'tk/root',
:TkScale => 'tk/scale',
--
ML: ruby-changes@q...
Info: http://www.atdot.net/~ko1/quickml/