[#63592] [ruby-trunk - Bug #10009] IO operation is 10x slower in multi-thread environment — normalperson@...
Issue #10009 has been updated by Eric Wong.
3 messages
2014/07/08
[#63682] [ruby-trunk - Feature #10030] [PATCH] reduce rb_iseq_struct to 296 bytes — ko1@...
Issue #10030 has been updated by Koichi Sasada.
3 messages
2014/07/13
[#63703] [ruby-trunk - Feature #10030] [PATCH] reduce rb_iseq_struct to 296 bytes — ko1@...
Issue #10030 has been updated by Koichi Sasada.
3 messages
2014/07/14
[#63743] [ruby-trunk - Bug #10037] Since r46798 on Solaris, "[BUG] rb_vm_get_cref: unreachable" during make — ngotogenome@...
Issue #10037 has been updated by Naohisa Goto.
3 messages
2014/07/15
[#64136] Ruby 2.1.2 (and 2.1.1 and probably others) assumes a libffi with 3 version numbers in extconf.rb — "Jeffrey 'jf' Lim" <jfs.world@...>
As per subject.
4 messages
2014/07/31
[#64138] Re: Ruby 2.1.2 (and 2.1.1 and probably others) assumes a libffi with 3 version numbers in extconf.rb
— "Jeffrey 'jf' Lim" <jfs.world@...>
2014/07/31
On Thu, Jul 31, 2014 at 6:03 PM, Jeffrey 'jf' Lim <jfs.world@gmail.com>
[ruby-core:64096] [ruby-trunk - Feature #9064] Add support for packages, like in Java
From:
rr.rosas@...
Date:
2014-07-28 12:48:25 UTC
List:
ruby-core #64096
Issue #9064 has been updated by Rodrigo Rosenfeld Rosas.
Not all reasons, but important ones in my opinion specially as you get big namespaces and nesting level.
I didn't want to mix everything in a single request, but since you're asking for more reasons/motivation let me also state what else I'd like to be added in case packages are approved.
The first immediate benefit is that we could have something like this:
~~~
# a/b/my_class.rb
package A::B
class MyClass
end
# a/b/c/specialized_class.rb
require_relative '../my_class'
package A::B::C
class SpecializedClass
def initialize
@my_class = MyClass.new # rather than A::B::MyClass.new
end
end
# Another feature I'd like added but I haven't included in this ticket when I created waiting for a future ticket as it's an enhancement over the original packaging system: "use"
# j/k/other_class.rb
package J::K
require 'a/b/my_class'
use A::B::MyClass # or A::B or A::B::* or import rather than use, that's why I haven't proposed it yet, I don't have this part clear yet.
class OtherClass < MyClass
end
~~~
I can see lots of good things coming from some packaging system and it would also encourage more namespaces usage if people wouldn't have to type a lot to use inner classes.
But specially the search path would always be the same when using namespaces/packages.
For instance, consider this example:
~~~
# a/b/namespace.rb
module A
module B
end
end
# my_class.rb
require 'a/b/namespace'
class A::B::MyClass
end
# This is different from below with regards to the search path which I find to be a (non-obvious) problem.
module A
module B
class MyClass
end
end
end
~~~
Now, you got me curious about what you have in mind when you talk about integrating something like Node's packaging system into Ruby. I can't really understand how that would play well with the way Ruby works... Could you please provide an example of how you envision such packaging system in Ruby? Maybe I could like your idea better than mine...
----------------------------------------
Feature #9064: Add support for packages, like in Java
https://bugs.ruby-lang.org/issues/9064#change-48108
* Author: Rodrigo Rosenfeld Rosas
* Status: Feedback
* Priority: Normal
* Assignee: Yukihiro Matsumoto
* Category: core
* Target version:
----------------------------------------
In Java, it's easy to define a package for a certain class:
package com.company.MyClass
We don't use that convention in Ruby but we have another way of packaging classes:
module MyLibrary
module InnerNamespace
class MyClass
end
end
end
I'd prefer to be able to use something like this instead meaning exactly the same thing:
package MyLibrary::InnerNamespace # or MyLibrary.InnerNamespace, I don't really care
class MyClass
end
Could you please consider this idea?
---Files--------------------------------
feature-9064.pdf (16.7 KB)
--
https://bugs.ruby-lang.org/