[#11890] Ruby and Solaris door library — "Hiro Asari" <asari.ruby@...>

Hi, there. This is my first patch against ruby. I think I followed

19 messages 2007/08/13
[#11892] Re: Ruby and Solaris door library — Daniel Berger <djberg96@...> 2007/08/14

Hiro Asari wrote:

[#11899] pack/unpack 64bit Integers — Hadmut Danisch <hadmut@...>

Hi,

13 messages 2007/08/14
[#11903] Re: pack/unpack 64bit Integers — Brian Candler <B.Candler@...> 2007/08/15

On Wed, Aug 15, 2007 at 06:50:01AM +0900, Hadmut Danisch wrote:

[#11948] Fibers in Ruby 1.9? — David Flanagan <david@...>

I just noticed that my ruby1.9 build of August 17th includes a Fiber

22 messages 2007/08/22
[#11949] Re: Fibers in Ruby 1.9? — Daniel Berger <djberg96@...> 2007/08/22

David Flanagan wrote:

[#11950] Re: Fibers in Ruby 1.9? — "Francis Cianfrocca" <garbagecat10@...> 2007/08/22

On 8/22/07, Daniel Berger <djberg96@gmail.com> wrote:

[#11952] Re: Fibers in Ruby 1.9? — MenTaLguY <mental@...> 2007/08/22

On Wed, 22 Aug 2007 20:50:12 +0900, "Francis Cianfrocca" <garbagecat10@gmail.com> wrote:

[#11988] String#length not working properly in Ruby 1.9 — "Vincent Isambart" <vincent.isambart@...>

I saw that Matz just merged his M17N implementation in the trunk.

17 messages 2007/08/25
[#11991] Re: String#length not working properly in Ruby 1.9 — "Michael Neumann" <mneumann@...> 2007/08/25

On Sat, 25 Aug 2007 10:54:20 +0200, Yukihiro Matsumoto

[#11992] Re: String#length not working properly in Ruby 1.9 — Yukihiro Matsumoto <matz@...> 2007/08/25

Hi,

[#12042] Encodings of string literals; explicit codepoint escapes? — David Flanagan <david@...>

This message contains queries that probably only Matz can answer:

16 messages 2007/08/31
[#12043] Re: Encodings of string literals; explicit codepoint escapes? — Yukihiro Matsumoto <matz@...> 2007/08/31

Hi,

Re: coroutines with Fiber::Core

From: David Flanagan <david@...>
Date: 2007-08-22 20:55:50 UTC
List: ruby-core #11965
SASADA Koichi wrote:
> Hi,
> 
> David Flanagan wrote:
>> f.transfer(100)
> 
> Fiber::Core and Fiber::Core#transfer is black magic.  So I'm
> planning to rename this class and method to
> Fiber::DangerousCore::__unsafe_transfer__I_cant_promise_your_program_run_correctly__!

I like that method name!  :-)

Why expose Fiber::Core if it is so dangerous?  Are there scenarios where 
it can be used safely?


> 
> These method names (resume/yield) are from Lua.  "transfer" is from
> Modula-2.  "double resume error" is from Python's generator.

Thanks. These were enough hints for me to figure it out.  Here's the 
Fibonnaci sequence:

fib = Fiber.new do
   x, y = 0, 1
   loop do
     Fiber.yield y
     x,y = y,x+y
   end
end

20.times { puts fib.resume }

> BTW, I'm thinking about name "Fiber".  Current Fiber means
> Semi-Coroutine.  Fiber::Core is Coroutine.  Yes, name of Fiber is
> from Microsoft, but it's means Semi-Coroutine such as Lua's
> coroutine and Python's generator.

How about just calling it a Coroutine?  Lua uses coroutine even though 
it is not a full coroutine.  I'd be more concerned about the method name 
yield: Fiber.yield is superficially similar, but deeply different from a 
regular ruby yield, and I think this could cause confusion.  How about 
using Fiber.return or even Fiber.coreturn?

	David

In This Thread