[#64517] Fw: Re: Ruby and Rails to become Apache Incubator Project — Tetsuya Kitahata <kitahata@99.alumni.u-tokyo.ac.jp>

What do you think? >> Ruby developers

13 messages 2014/08/23

[#64615] [ruby-trunk - Feature #10181] [Open] New method File.openat() — oss-ruby-lang@...

Issue #10181 has been reported by Technorama Ltd..

10 messages 2014/08/28
[#64616] Re: [ruby-trunk - Feature #10181] [Open] New method File.openat() — Eric Wong <normalperson@...> 2014/08/28

I like this feature.

[#64671] Fwd: [ruby-changes:35240] normal:r47322 (trunk): symbol.c (rb_sym2id): do not return garbage object — SASADA Koichi <ko1@...>

Why this fix solve your problem?

9 messages 2014/08/30
[#64672] Re: Fwd: [ruby-changes:35240] normal:r47322 (trunk): symbol.c (rb_sym2id): do not return garbage object — SASADA Koichi <ko1@...> 2014/08/30

(2014/08/30 8:50), SASADA Koichi wrote:

[ruby-core:64645] Re: [ruby-trunk - Feature #10181] [Open] New method File.openat()

From: Eric Wong <normalperson@...>
Date: 2014-08-29 08:50:36 UTC
List: ruby-core #64645
Joel VanderWerf <joelvanderwerf@gmail.com> wrote:
> On 08/29/2014 01:21 AM, Eric Wong wrote:
> >Joel VanderWerf <joelvanderwerf@gmail.com> wrote:
> >>On 08/29/2014 12:55 AM, Eric Wong wrote:
> >>>Joel VanderWerf <joelvanderwerf@gmail.com> wrote:
> >>>>On 08/28/2014 02:53 PM, Eric Wong wrote:
> >>>>>I like this feature.
> >>>>>
> >>>>>If matz approves, I assume you also want to add other *at functions?
> >>>>>e.g. fstatat, renameat, unlinkat, mkdirat, etc.
> >>>>
> >>>>Hm, that suggests...
> >>>>
> >>>>Dir.at(...).open(...)
> >>>>Dir.at(...).fstat(...)
> >>>
> >>>How would that be implemented?
> >>
> >>Couldn't Dir.at(...) return an object that wraps the fd of the dir?
> >
> >Yes, but it would need to cache the _same_ object every time it's called
> >given that arg for a given thread.  Then it might not detect when that
> >thread might actually want a different FD/object, and the cache can fill
> >up or expire and we still end up with unpredictable behavior.
> 
> What if you always used it like this:
> 
> d = Dir.at()
> d.open()
> d.fstat()
> 
> so it's up to the caller to decide explicitly when to use the same
> object or not. It reflects the underlying fd-based API, doesn't it?

OK, that would work.  However it ends up creating a new object type
and overloading of names, making it harder to review code, I think.
I prefer this:

	d = Dir.open(..)
	d.openat(...)
	d.fstatat(..)

In This Thread