[#20189] [Bug #805] Ruby 1.9.1 preview 2 : build failure on OpenSolaris — Dae San Hwang <redmine@...>
Bug #805: Ruby 1.9.1 preview 2 : build failure on OpenSolaris
Hi,
[#20190] Behavior: autoload calls rb_require() directly — Evan Phoenix <evan@...>
Hi everyone,
Hi,
However, that is *not* currently the implementation, and it could introduce
Hi,
Yukihiro Matsumoto wrote:
On Fri, Dec 05, 2008 at 03:25:42AM +0900, Charles Oliver Nutter wrote:
Dave Thomas wrote:
Hi --
2008/12/4 Charles Oliver Nutter <charles.nutter@sun.com>:
Hi,
Yukihiro Matsumoto wrote:
Floats are 64-bits wide, and need at least 1 bit to indicate that the
On Sat, Dec 06, 2008 at 04:46:36AM +0900, Brent Roman wrote:
Hi,
On Mon, 08 Dec 2008 18:21:39 +0900, SASADA Koichi wrote:
Ken Bloom wrote::
On Fri, Dec 05, 2008 at 06:25:08AM +0900, Dave Thomas wrote:
Charles Oliver Nutter wrote:
daz wrote:
On Fri, 05 Dec 2008 09:58:02 +1100, Charles Oliver Nutter
Michael Selig wrote:
On Fri, Dec 05, 2008 at 09:56:19AM +0900, Charles Oliver Nutter wrote:
Except for the frames that are already on stack... that's not so easy.
On Thu, 04 Dec 2008 16:51:10 +0900, Yukihiro Matsumoto wrote:
Evan Phoenix wrote:
On Wed, Dec 03, 2008 at 01:50:42PM +0900, Charles Oliver Nutter wrote:
Paul Brannan wrote:
On Wed, Dec 03, 2008 at 11:49:49PM +0900, Charles Oliver Nutter wrote:
[#20201] Language list in unicode.org — Yukihiro Matsumoto <matz@...>
Hi,
[#20214] Proposal: deferred blocks — "Yehuda Katz" <wycats@...>
Several people have played around with solutions that use ParseTree or
Yehuda Katz wrote:
[#20226] \b and \B with Unicode — Dave Thomas <dave@...>
#encoding: utf-8
[#20235] autoload and concurrency — "Yehuda Katz" <wycats@...>
Merb uses autoload rather extensively. We have lately observed some
This seems like a strong argument in favor of Ruby-core:20225.
Jim Deville wrote:
Charles Oliver Nutter wrote:
Also, this just illustrates that it's possible. In the case of Merb, we
I think it has already been concluded that autoload and require are inheren=
Require could be made safe if only one thread were allowed to execute
SSBtZWFudCB0aGF0IGV2ZW4gaWYgYXV0b2xvYWQgaXMgImZpeGVkIiBieSBhZGRpbmcgc29tZSBr
Except that my proposed fix for autoload would have all secondary
Yehuda Katz wrote:
Charles Oliver Nutter wrote:
Because of this problem, we *will* be removing the use of autoload in 1.1.
On Thu, Dec 4, 2008 at 1:14 AM, Yehuda Katz <wycats@gmail.com> wrote:
[#20241] [Bug #814] NoMethodError: undefined method `read_nonblock' for #<OpenSSL::SSL::SSLSocket:0x1a64f9a0> — Aaron Patterson <redmine@...>
Bug #814: NoMethodError: undefined method `read_nonblock' for #<OpenSSL::SSL::SSLSocket:0x1a64f9a0>
In article <4936125f7242c_8817a7829234b3@redmine.ruby-lang.org>,
Issue #814 has been updated by Aaron Patterson.
Issue #814 has been updated by Tony Arcieri.
In article <49a642ba6184_852787888e668d@redmine.ruby-lang.org>,
On Thu, Feb 26, 2009 at 2:14 AM, Tanaka Akira <akr@fsij.org> wrote:
In article <c7e6b2b00903100000n30f71021ve44c823b0812e163@mail.gmail.com>,
On Tue, Mar 10, 2009 at 2:29 AM, Tanaka Akira <akr@fsij.org> wrote:
[#20273] Tail recursion? — "Robert Dober" <robert.dober@...>
Hi list
Hi,
[#20310] [Bug #822] gets blocks when it shouldn't — Ahmed Saeed <redmine@...>
Bug #822: gets blocks when it shouldn't
[#20345] Achieving C-like performance with more indirection? — Jan Wedekind <jan@...>
I am working on a Ruby-extension for doing real-time computer vision
[#20363] RDoc can't generate documentation of Ruby — hemant <gethemant@...>
Hi,
[#20400] More powerful method arguments — "=?ISO-8859-2?Q?Rados=B3aw_Bu=B3at?=" <radek.bulat@...>
(I'm thinking very loudly, don't get it to seriously)
[#20416] [Feature #839] Add code on each line of a backtrace output to the screen — Roger Pack <redmine@...>
Feature #839: Add code on each line of a backtrace output to the screen
[#20418] Array#to_proc — "Eust痃uio Rangel" <eustaquiorangel@...>
Some months ago I sent a patch to Rails proposing an Array#to_proc the
[#20434] Another Patch for curses extension. — "Giancarlo F Bellido" <support@...>
Hello,
[#20446] [Bug #844] Interpreter wide IO deadlock — "coderrr ." <redmine@...>
Bug #844: Interpreter wide IO deadlock
[#20483] encoding of symbols — Dave Thomas <dave@...>
If I have a source file like this:
Dave Thomas wrote:
Hi,
Hi,
Yukihiro Matsumoto wrote:
On Sat, Dec 13, 2008 at 08:33:13PM +0900, Charles Oliver Nutter wrote:
On Sun, 14 Dec 2008 01:01:44 +1100, Brian Candler <B.Candler@pobox.com>
On Sat, Dec 13, 2008 at 22:57, Michael Selig <michael.selig@fs.com.au> wrot=
On Sun, 14 Dec 2008 11:57:55 +1100, Michael Selig
Hi,
Hi,
> I don't mean to shoot you down in flames, but a lot of thought and effort
> You're right. When we have two strings with identical byte sequence
Hi,
> I am against trancoding before comparison. The applications models
On Thu, Dec 18, 2008 at 06:22:28PM +0900, Daniel Cavanagh wrote:
On Thu, Dec 18, 2008 at 08:43:45AM +0900, danielcavanagh@aanet.com.au wrote:
On 18/12/2008, at 7:24 PM, Brian Candler wrote:
On Sun, Dec 14, 2008 at 09:57:55AM +0900, Michael Selig wrote:
[#20502] [Bug #863] Openssl issues with fresh compile on Ubuntu — Brian Takita <redmine@...>
Bug #863: Openssl issues with fresh compile on Ubuntu
[#20519] [Fwd: [ruby-dev:37282] [Bug #827] Fix document for Gem::Installer#write_spec] — "Yugui (Yuki Sonoda)" <yugui@...>
okkez sent a patch for RubyGems to ruby-dev. He said that rdoc does not
[#20553] [Bug #873] compilation failure — Oleg Puchinin <redmine@...>
Bug #873: compilation failure
[#20564] [Bug #883] Failure: test_handle_special_CROSSREF_no_underscore(TestRDocMarkupToHtmlCrossref) — Kazuhiro NISHIYAMA <redmine@...>
Bug #883: Failure: test_handle_special_CROSSREF_no_underscore(TestRDocMarkupToHtmlCrossref)
[#20576] [Bug #888] zlib 1.2.3 does not work with Rubygems 1.3.1 (in Ruby 1.9.1) on Windows — Chauk-Mean PROUM <redmine@...>
Bug #888: zlib 1.2.3 does not work with Rubygems 1.3.1 (in Ruby 1.9.1) on Windows
Issue #888 has been updated by Yasuhiro MISE.
[#20578] [Feature #889] erb.rb should use Array and << for eoutvar and not String and concat — Thomas Enebo <redmine@...>
Feature #889: erb.rb should use Array and << for eoutvar and not String and concat
Issue #889 has been updated by Kurt Stephens.
[#20601] ruby-mode.el has moved — Phil Hagelberg <phil@...>
[#20606] system() issues on Windows — "James M. Lawrence" <quixoticsycophant@...>
I put together a spec of my grievances with system() on Windows and
[#20620] Proposal: Proc#bind — "Paweł Kondzior" <kondzior.p@...>
SXQgd291bGQgYmUgZ29vZCB0byBoYXZlIFByb2MjYmluZChyZWNlaXZlcikgbWV0aG9kIHRoYXQg
[#20626] ruby take non .rb files? — "Roger Pack" <rogerpack2005@...>
I'm pretty sure this has been discussed before, but what would the
[#20665] best way to handle $: when embedding ruby — Rolando Abarca <funkaster@...>
Hi all,
[#20668] [Feature #905] Add String.new(fixnum) to preallocate large buffer — Charles Nutter <redmine@...>
Feature #905: Add String.new(fixnum) to preallocate large buffer
Issue #905 has been updated by Brian Ford.
Hi
Yukihiro Matsumoto wrote:
Jim Weirich wrote:
Dave Thomas wrote:
Dave Thomas wrote:
Dave Thomas wrote:
Issue #905 has been updated by caleb clausen.
Hi,
Doesn't Ruby allocate already using a "double memory if you run out"
On Fri, 5 Mar 2010, Kornelius Kalnbach wrote:
Issue #905 has been updated by caleb clausen.
On 04.03.10 21:08, caleb clausen wrote:
Hi,
Issue #905 has been updated by Kurt Stephens.
On 05.03.10 01:13, Kurt Stephens wrote:
Hi,
On 3/5/10, Yusuke ENDOH <mame@tsg.ne.jp> wrote:
On Fri, Mar 5, 2010 at 17:25, Caleb Clausen <vikkous@gmail.com> wrote:
Issue #905 has been updated by Kornelius Kalnbach.
[#20669] [Bug #906] File.close not working good in Windows — Yong Lu <redmine@...>
Bug #906: File.close not working good in Windows
[#20695] [Bug #907] Various system() and backticks problems on Windows — "James M. Lawrence" <redmine@...>
Bug #907: Various system() and backticks problems on Windows
[#20699] how is 1.9 able to handle > 1024 sockets? — "Roger Pack" <rogerpack2005@...>
I noticed that select in 1.9 seems to be able to handle more than
[#20706] [Feature #908] Should be an easy way of reading N characters from am I/O stream — Michael Selig <redmine@...>
Feature #908: Should be an easy way of reading N characters from am I/O stream
Issue #908 has been updated by Michael Selig.
In article <4988d2fa997f8_8527a9e32018e7@redmine.ruby-lang.org>,
Hi,
In article <op.uotab6oa9245dp@kool>,
2009/2/14 Tanaka Akira <akr@fsij.org>:
In article <a5d587fb0902141711q780f0d24jef9be9b8bbe69b2a@mail.gmail.com>,
2009/2/15 Tanaka Akira <akr@fsij.org>:
In article <a5d587fb0902160252u56b50cfdv8e0fd36bb4f0b1b3@mail.gmail.com>,
2009/2/18 Tanaka Akira <akr@fsij.org>:
On Thu, 19 Feb 2009 02:21:21 +1100, Michal Suchanek <hramrach@centrum.cz>
In article <op.upklh9q19245dp@kool>,
At 19:00 09/02/19, Tanaka Akira wrote:
In article <6.0.0.20.2.20090220134502.0823ee98@localhost>,
On Mon, 23 Feb 2009 03:00:41 +1100, Tanaka Akira <akr@fsij.org> wrote:
2009/2/22 Michael Selig <michael.selig@fs.com.au>:
2009/2/23 Michal Suchanek <hramrach@centrum.cz>:
On Mon, 23 Feb 2009 21:35:30 +1100, Michal Suchanek <hramrach@centrum.cz>
2009/2/24 Michael Selig <michael.selig@fs.com.au>:
On Thu, 19 Feb 2009 21:00:52 +1100, Tanaka Akira <akr@fsij.org> wrote:
[#20720] Current status of 1.9.1 RC1's issues — "Yugui (Yuki Sonoda)" <yugui@...>
Hi, folks
[#20723] [Bug #911] ArgumentError in Resolv#getaddress — Federico Builes <redmine@...>
Bug #911: ArgumentError in Resolv#getaddress
In article <494d365145bcf_881769c31c84a0@redmine.ruby-lang.org>,
Issue #911 has been updated by Federico Builes.
[#20724] Working with binary strings in Ruby 1.9? — Hadmut Danisch <hadmut@...>
Hi,
On Dec 20, 2008, at 12:49 PM, Hadmut Danisch wrote:
On Sun, 21 Dec 2008 06:43:32 +1100, James Gray <james@grayproductions.net>
[#20734] irb prompt question — "Roger Pack" <rogerpack2005@...>
I'm used to irb giving me indication of continued statements:
[#20754] Array#map and #select overrides — "David A. Black" <dblack@...>
Hi --
[#20794] [Bug #920] require is not thread-safe — Charles Nutter <redmine@...>
Bug #920: require is not thread-safe
[#20797] [Bug #921] autoload is not thread-safe — Charles Nutter <redmine@...>
Bug #921: autoload is not thread-safe
Hi,
Dave Thomas wrote:
[#20874] [Feature #928] RDoc encoding conversion — Yuki Sonoda <redmine@...>
Feature #928: RDoc encoding conversion
[#20877] [ANN] Updated status of the releasing 1.9.1 RC — "Yugui (Yuki Sonoda)" <yugui@...>
Hi, folks
[#20879] [Feature #929] Array#shuffle does not initialize random seed — Justin Collins <redmine@...>
Feature #929: Array#shuffle does not initialize random seed
[#20893] [Bug #932] incorrect case statement in "ext/dl/test/test_base.rb" causes library problems on openSUSE 11.1 64-bit — Ed Borasky <redmine@...>
Bug #932: incorrect case statement in "ext/dl/test/test_base.rb" causes library problems on openSUSE 11.1 64-bit
[#20894] [Bug #933] Fiber class documentation — Muhammad Ali <redmine@...>
Bug #933: Fiber class documentation
[#20938] [Bug #940] ruby/config.h:1:1: warning: "PACKAGE_NAME" redefined — bugmenot bugmenot <redmine@...>
Bug #940: ruby/config.h:1:1: warning: "PACKAGE_NAME" redefined
[#20944] [Bug #942] Build fails on IA-32 Linux with gcc 4.3.2 — Michael Klishin <redmine@...>
Bug #942: Build fails on IA-32 Linux with gcc 4.3.2
[#20978] Definable != is a Bad Thing™ — Ryan Davis <ryand-ruby@...>
> >> class X; def == o; :great; end; def != o; :horrible; end; end
Hi,
Ryan Davis <ryand-ruby@zenspider.com> wrote:
On Fri, Jan 2, 2009 at 01:37, Ken Bloom <kbloom@gmail.com> wrote:
Daniel Luz wrote:
On Fri, Jan 2, 2009 at 12:42 PM, Kornelius Kalnbach <murphy@rubychan.de> wrote:
[#20990] [Bug #951] "make DESTDIR=... install" creates dirs outside DESTDIR — Sven Schwyn <redmine@...>
Bug #951: "make DESTDIR=... install" creates dirs outside DESTDIR
[#20994] [Bug #956] Encoding: nl_langinfo(CODESET) on cygwin 1.5 always returns US-ASCII — Tom Link <redmine@...>
Bug #956: Encoding: nl_langinfo(CODESET) on cygwin 1.5 always returns US-ASCII
Issue #956 has been updated by Tom Link.
Hi,
[#20999] Supporting Thread.critical=with native threads — Shri Borde <Shri.Borde@...>
Hi,
Shri Borde wrote:
WWVzLCBUaHJlYWQja2lsbCBhbmQgVGhyZWFkI3JhaXNlIGNhbiBiZSBpbXBsZW1lbnRlZCBpbiBJ
Shri Borde wrote:
On Dec 30, 2008, at 15:00 PM, Shri Borde wrote:
http://www.ruby-doc.org/core/classes/Thread.html#M000461 says:
I'm starting come around to Shri's idea of critical= being represented
SXMgb3BlbmluZyBhIGJ1ZyB0aGUgcmVjb21tZW5kZWQgd2F5IHRvIGdldCB0aGUgc3BlYyBjaGFu
Brent, we are looking for Ruby to officially allow Thread.critical=3D to be=
Brent Roman wrote:
I disagree on most points, since 1.8 is going to remain the most
[ruby-core:20802] Re: use of require thread safety
2008/12/22 Charles Oliver Nutter <charles.nutter@sun.com>:
> Robert Klemme wrote:
>> I don't think there should be locking involved for "load" as that
>> loads a file unconditionally. When using "load" one must be aware of
>> the fact that the file can be loaded multiple times - including
>> concurrently.
>
> I tend to agree. Load explicitly bypasses things like $" population so you
> can load the same file repeatedly if you want to. So I think load should be
> the lock-free low-level "always execute target file" version. And in truth,
> require is largely implemented in terms of load.
That's always how I looked at it: "load" is the low level
functionality of reading a file of ruby code and executing it.
"require" adds the one off check plus the file name, $: and shared lib
magic.
>> For "require" the story looks a bit different. If I am not mistaken
>> you would need a reentrant lock per (case insensitive? - probably
>> depending on file system) string after "require" as the smallest
>> granularity. Hm... The longer I think about it the more I believe
>> that a single reentrant lock for "require" is probably the most robust
>> solution...
>
> I think it has to be a single lock or nothing, due to the deadlock
> possibilities of a lock-per-resources.
Unfortunately there is also a deadlock possibility even with a single
lock. Assuming you have a large application and want to parallelize
initialization because that might be IO intensive and your app will
start faster by doing this. If you do something like this:
$ cat large_app.rb
%w{a b}.map do |fn|
Thread.new(fn){|file| require "large_app/#{file}"}
end.each do |th|
th.join
end
you have created a deadlock. And you would not get a deadlock with a
lock by resource implementation. Granted, the deadlock for the lock
by resource approach is more likely as this case is probably a bit
esoteric. The bad news is that it does work with the current 1.8.7
interpreter, i.e. you do not get a deadlock. Output from the test
attached:
robert@fussel /tmp
$ ruby -r large_app -e 'puts 1'
>large_app
>a
<a
>b
<b
<large_app
1
robert@fussel /tmp
$
> So I'll summarize my position here:
>
> - requires cannot safely be done concurrently because they will cause
> resources (classes, modules) to be accessed before they are completely
> loaded and initialized.
> - The simplest solution for this is to not require resources concurrently,
> which is certainly a valid solution which requires no locks and no
> behavioral changes.
But has the drawback of a missing safety net.
> - A lock per resources or per name is broken, due to deadlock potential, and
> so is not the right solution
> - A single global lock would fix require concurrency (and almost be enough
> to fix autoload concurrency) but would introduce the behavioral change that
> only one require can execute at a time.
No, it would mean, only one thread can execute require at a time. The
lock would of course have to be reentrant so your required files can
require more. Otherwise it would be useless.
Plus it would also have deadlock potential. Even worse, this type of
deadlock is probably harder to (automatically) detect because it
involves locks of two different types. This is a bit similar to
deadlocks we once had in an application which could be seen at the
database level but the DB did not recognize them because application
level locks were also involved creating a deadlock which was not
resolved by the DB's deadlock detection. Nasty debugging session that
was...
I see these additional solutions
- Disallow thread creation from a thread that is currently holding the
require lock.
- Mark threads created from a thread currently holding the require
lock and disallow further require executions from there (at least as
long as the parent thread holds the require lock).
Both these would at least avoid the deadlock I have constructed above
as far as I can see. The first one might be simpler to implement, the
last one probably allows for more freedom in required code. It could
even be essential for some applications to start a thread during
requiring (just think about a pool cleanout thread or something
similar).
> - I'm not strongly leaning toward either "no fix" or a global require lock.
> It doesn't bother me terrible that require isn't thread-safe, since the
> simple fix of "don't do that" solve the problem without complication.
>
>> While we're at it: what happens to "require" in light of changes to $:
>> and current directory?
>
> I don't think it would make any difference; both just change how it searches
> for files, and should not affect concurrency characteristics.
Well, but what about
th1: $:unshift "bar"
th1: require a # loads "bar/a" as intended
th2: $:unshift "foo"
th1: require b # now reads "foo/b" instead of "bar/b"
Again, practically this might not be a problem but any time someone
has the idea to parallelize app initialization (for example, because
he has native threads now and 4 CPU's at hand) and common names are
used the effect of allowing concurrent changes to $: and Dir.pwd might
be dramatic - and hard to debug.
I'm all for pragmatic solutions but with such a fundamental feature
like the language's library loading I have a bad feeling that this
will haunt us one way or the other if it is not made robust.
Thoughts?
robert
--
remember.guy do |as, often| as.you_can - without end