[#388484] ruby-doc.org has been updated — James Britt <james.britt@...>

Ruby-doc.org has been updated.

22 messages 2011/10/03

[#388492] Operator Overloading — Thescholar Thescholar <thescholar@...>

Let's suppose I have a class like this one and then I create two

28 messages 2011/10/04
[#388515] Re: Operator Overloading — "Darryl L. Pierce" <mcpierce@...> 2011/10/04

On 10/04/2011 01:11 AM, Thescholar Thescholar wrote:

[#388518] Re: Operator Overloading — Brian Candler <b.candler@...> 2011/10/04

Darryl Pierce wrote in post #1024950:

[#388519] Re: Operator Overloading — "Darryl L. Pierce" <mcpierce@...> 2011/10/04

On 10/04/2011 10:03 AM, Brian Candler wrote:

[#388520] Re: Operator Overloading — Adam Prescott <adam@...> 2011/10/04

On Tue, Oct 4, 2011 at 3:53 PM, Darryl L. Pierce <mcpierce@gmail.com> wrote:

[#388523] Local vs method vs instance (was: Operator Overloading) — "Darryl L. Pierce" <mcpierce@...> 2011/10/04

On 10/04/2011 11:11 AM, Adam Prescott wrote:

[#388526] Re: Local vs method vs instance (was: Operator Overloading) — Jes俍 Gabriel y Gal疣 <jgabrielygalan@...> 2011/10/04

On Tue, Oct 4, 2011 at 5:31 PM, Darryl L. Pierce <mcpierce@gmail.com> wrote=

[#388558] question about method — "Joseph S." <musician_joe777@...>

AC = 14

12 messages 2011/10/04

[#388595] Read thru Csv file and store it in variables — ideal one <idealone5@...>

HI All,

9 messages 2011/10/05

[#388601] How to output an instance's type — Viaduct Productions <lists@...>

Hiya folks.

21 messages 2011/10/05
[#388603] Re: How to output an instance's type — Kassym Dorsel <k.dorsel@...> 2011/10/05

By type you want the variables class ?

[#388610] Re: How to output an instance's type — Viaduct Productions <lists@...> 2011/10/05

Hi Kassym. Thanks for the post.

[#388612] Re: How to output an instance's type — Kassym Dorsel <k.dorsel@...> 2011/10/05

Viaduct Productions wrote in post #1025201:

[#388636] Re: How to output an instance's type — luke gruber <luke.gru@...> 2011/10/06

>How do I output the type of a variable?

[#388644] Re: How to output an instance's type — Viaduct Productions <lists@...> 2011/10/06

Hi Luke. Thanks for the reply.=20

[#388650] Cheapest way to host low-traffic small-footprint Rails app? — Intransition <transfire@...>

I have a commercial Radiant-based website that I manage for a small-

18 messages 2011/10/06
[#388653] Re: Cheapest way to host low-traffic small-footprint Rails app? — Phillip Gawlowski <cmdjackryan@...> 2011/10/06

On Thu, Oct 6, 2011 at 2:47 PM, Intransition <transfire@gmail.com> wrote:

[#388660] Re: Cheapest way to host low-traffic small-footprint Rails app? — Dan Nachbar <dan@...> 2011/10/06

On Oct 6, 2011, at 8:53 AM, Phillip Gawlowski wrote:

[#388662] Re: Cheapest way to host low-traffic small-footprint Rails app? — Viaduct Productions <lists@...> 2011/10/06

What do people consider "cheap"? You want scalability? Support? =20

[#388728] How to make Saas application? Is it possible? — Асет Орымбаев <asetpochta@...>

SGkgZXZlcnlib2R5IQoKSSB3YW50IHRvIGtub3csIGlzIGl0IHBvc3NpYmxlIHRvIGNyZWF0ZSBT

8 messages 2011/10/07

[#388812] require -- looking in rubygems, now "." — "charles a." <charles.agriesti@...>

irb

11 messages 2011/10/09

[#388855] why does `a + f b` not parse? — Martin DeMello <martindemello@...>

ruby-1.9.2-p0 > 2 + sqrt 5

18 messages 2011/10/11
[#388857] Re: why does `a + f b` not parse? — Wayne Brissette <waynefb@...> 2011/10/11

[#388858] Re: why does `a + f b` not parse? — Dave Aronson <rubytalk2dave@...> 2011/10/11

On Tue, Oct 11, 2011 at 06:32, Wayne Brissette <waynefb@earthlink.net> wrote:

[#388861] Re: why does `a + f b` not parse? — Phillip Gawlowski <cmdjackryan@...> 2011/10/11

On Tue, Oct 11, 2011 at 1:02 PM, Dave Aronson

[#388862] Re: why does `a + f b` not parse? — jake kaiden <jakekaiden@...> 2011/10/11

Phillip Gawlowski wrote in post #1026042:

[#388864] Re: why does `a + f b` not parse? — Bartosz Dziewoński <matma.rex@...> 2011/10/11

Yes, I think we all know that; the question is, why does 2 + sqrt(5)

[#388881] gem directory not find — Sam Porwal <pawan.porwal@...>

Hi All,

11 messages 2011/10/11

[#388945] What’s the best way of checking if an argument has been given or not? — Nikolai Weibull <now@...>

Hi!

19 messages 2011/10/14
[#388950] Re: What’s the best way of checking if an argument has been given or not? — jake kaiden <jakekaiden@...> 2011/10/14

...probably not the *best* way, but this works:

[#388952] Re: What’s the best way of checking if an argument has been given or not? — Bartosz Dziewoński <matma.rex@...> 2011/10/14

You can use this syntax, too. "args" becomes an array of all arguments given.

[#388954] Re: What’s the best way of checking if an argument has been given or not? — Nikolai Weibull <now@...> 2011/10/14

On Fri, Oct 14, 2011 at 15:29, Bartosz Dziewo=C5=84ski <matma.rex@gmail.com=

[#388958] Re: What’s the best way of checking if an argument has been given or not? — Chris Hulan <chris.hulan@...> 2011/10/14

You could do it as a wrapper:

[#388961] Re: What’s the best way of checking if an argument has been given or not? — Nikolai Weibull <now@...> 2011/10/14

On Fri, Oct 14, 2011 at 15:51, Chris Hulan <chris.hulan@gmail.com> wrote:

[#388962] Re: What’s the best way of checking if an argument has been given or not? — Chris Hulan <chris.hulan@...> 2011/10/14

You said you didn't want to manually do it, this lets the interpreter

[#388970] Re: What’s the best way of checking if an argument has been given or not? — luke gruber <luke.gru@...> 2011/10/14

Hmm, if you really don't want to use the splat *args, you could create a

[#388972] Re: What’s the best way of checking if an argument has been given or not? — Jens Wille <jens.wille@...> 2011/10/14

luke gruber [2011-10-14 17:15]:

[#388947] Beginning — "Junayeed Ahnaf Nirjhor" <zombiegenerator@...>

Hello,

19 messages 2011/10/14

[#389025] writing a poem backwards or in reverse order — Teresa Nguyen <s-unguyen2@...>

i would like to write a poem using nano and through ruby I would like to

18 messages 2011/10/16
[#389036] Re: writing a poem backwards or in reverse order — Jes俍 Gabriel y Gal疣 <jgabrielygalan@...> 2011/10/16

On Sun, Oct 16, 2011 at 2:04 AM, Teresa Nguyen

[#389026] 'gem install' help please — Kaye Ng <sbstn26@...>

Hi.

18 messages 2011/10/16

[#389037] Ruby and threading — Carter Cheng <cartercheng@...>

Hello,

32 messages 2011/10/16
[#389038] Re: Ruby and threading — Josh Cheek <josh.cheek@...> 2011/10/16

On Sun, Oct 16, 2011 at 3:50 AM, Carter Cheng <cartercheng@gmail.com> wrote:

[#389195] Re: Ruby and threading — Josh Cheek <josh.cheek@...> 2011/10/19

On Sun, Oct 16, 2011 at 4:03 AM, Josh Cheek <josh.cheek@gmail.com> wrote:

[#389340] security thesis advice — Jorge Bo <jorgebo10@...>

Hi,

19 messages 2011/10/22

[#389465] Modify only a .rb file, but not other .rb files, while still extending core classes? — Marc Heiler <shevegen@...>

Given is a small .rb file.

8 messages 2011/10/26

[#389553] "A" and "an" articles in front of words — Faith Tarcha <faith@...>

Hello guys, I have two objects that consist of arrays and I am suppose

29 messages 2011/10/29
[#389587] Re: "A" and "an" articles in front of words — jake kaiden <jakekaiden@...> 2011/10/31

hi Faith,

[#389598] Re: "A" and "an" articles in front of words — Dave Aronson <rubytalk2dave@...> 2011/10/31

On Sun, Oct 30, 2011 at 22:23, jake kaiden <jakekaiden@yahoo.com> wrote:

[#389789] Re: "A" and "an" articles in front of words — steve ross <cwdinfo@...> 2011/11/06

Sorry to be late to the party on this one, but a regex seems a bit of a =

[#389791] Re: "A" and "an" articles in front of words — Hassan Schroeder <hassan.schroeder@...> 2011/11/06

On Sun, Nov 6, 2011 at 12:59 PM, steve ross <cwdinfo@gmail.com> wrote:

[#389795] Re: "A" and "an" articles in front of words — Peter Camilleri <pdc.cse@...> 2011/11/06

Indeed. My understanding is that the usage of a/an depends on the

[#389859] Re: "A" and "an" articles in front of words — Gonçalo C. Justino <goncalo.justino@...> 2011/11/08

> Indeed. My understanding is that the usage of a/an depends on the

[#389590] Vim Ruby Config — "Junayeed Ahnaf Nirjhor" <zombiegenerator@...>

Hello,

13 messages 2011/10/31

Re: Ruby and threading

From: Charles Oliver Nutter <headius@...>
Date: 2011-10-27 01:59:20 UTC
List: ruby-talk #389482
On Wed, Oct 19, 2011 at 2:11 AM, Josh Cheek <josh.cheek@gmail.com> wrote:
> A great followup to this post, explains why the GIL exists
> http://merbist.com/2011/10/18/data-safety-and-gil-removal/
>
> When I ran the code Matt provides under MRI 1.9.3 (has GIL) and Rubinius,
> JRuby, MacRuby (native threads, no GIL):

Ok, I can't let this one sit.

To my eyes, the only one broken there is MRI. It's not actually doing
anything in parallel, so you get the synchronous result. Perhaps I
should file a bug against MRI that its threads...aren't?

In all seriousness, though, this is flawed reasoning. Spinning up
threads is asking the runtime to do something in parallel, and MRI is
the only example here not delivering. You are asking for the result
you get under JRuby, Rubinius, and MacRuby, since you don't
synchronize any access to the shared array, and the shared array does
not (according to Matz himself) have thread safety as part of its
contract. The only reason you get the other result under MRI is
because it isn't actually doing what you've asked of it.

Saying that the GIL is useful based on this example is a bit like
saying "JRuby not supporting C extensions is useful because they'll
never crash due to C extensions." You can't compare lack of
parallelism with parallelism when you're trying to demonstrate
parallelism.

> * Other times I ran it under JRuby, it detected the corrupt data with
> 'ConcurrencyError: Detected invalid array contents due to unsynchronized
> modifications with concurrent users'

We do our best to detect this for Array, and at some point we'll try
to do it for Hash (Hash will currently raise errors from Java like
ArrayIndexOutOfBoundsException...still rescuable, but not as nice). It
would be cool if Ruby incorporated some explicitly thread-safe
collections by default, but there are gems that provide such things
right now.

FWIW, it's almost impossible to have threadsafe data structures that
perform as well as non-threadsafe data structures, which is why we've
always opted to keep Array and Hash the way they are. Hopefully people
are starting to learn that the alternatives aren't that bad, like
using external threadsafe libs or simply mutexing around all accesses.

> * I ran this a whole bunch of times, sometimes MRI was fastest, sometimes
> MacRuby, sometimes JRuby (MRI was fastest most consistently, though)

For a run that short, I'm not surprised. JRuby would be faster if it
ran for more than...what...0.07 seconds? I ran a longer version
without threads (so it wouldn't error out) and JRuby was clearly the
fastest. I also wrote a version that uses a JRuby-specific module for
thread-safety, and it only slowed down by about 2x...but it completes
successfully every time:

require 'jruby/synchronized'
puts '', ENV['RUBY_VERSION']

class SafeArray < Array
  include JRuby::Synchronized
end

10.times do
  @array, threads = SafeArray.new, []
  start = Time.now
  4.times do
   threads << Thread.new { (1..100_000).each {|n| @array << n} }
  end
  threads.each{|t| t.join }
  stop = Time.now

  puts "%0.3f seconds" % (stop - start), @array.size
end

> Thoughts:
> * MRI has a GIL, thus keeping the data safe, and still performs equivalently
> with other implementations (for this admittedly limited test), so do
> benchmarks to decide if this will be worthwhile. It's not a fluke that Matz
> wants to keep the GIL.

False safety (you can still easily have threads step on each other) at
the expense of parallelism. I'm not sure that's a win.

Also, I don't think Matz has ever said he really "wants" to keep the
GIL. It's just a massively difficult thing to retrofit MRI for
parallel threading without a very large rework. If they could drop the
GIL without destabilizing MRI itself, I'm sure they'd do it.

> * I'm glad JRuby notices the corrupt data (though not always) I'm a big fan
> of fail-fast

It only fails fast if it actually fails, of course. Some of your runs
manage to succeed without the threads stepping on each other. And by
failure, here, I mean potentially corrupting the array. The array
contents may get out of sync because you don't synchronize writes, but
that's not a failure in a concurrent environment. Or at least, it's
not JRuby's failure...it's yours.

> * Has JRuby fixed their startup time issue? I ran this a lot of times and
> didn't notice any of the lag I used to.

That's good to hear! Every release includes more startup-time tweaks.
Perhaps we're finally "getting there".

- Charlie

In This Thread