[#6548] 1.8.4 p1, warning roundup — Daniel Berger <Daniel.Berger@...>
Hi all,
[#6552] Socket Documentation — zdennis <zdennis@...>
Attached is a patch against the latest socket.c in the ruby_1_8 branch. It covers all Socket
On 11/3/05, zdennis <zdennis@mktec.com> wrote:
Gavin Sinclair wrote:
zdennis wrote:
On 11/9/05, Zach Dennis <zdennis@mktec.com> wrote:
Hi.
[#6558] Method of feeding input to regexp matching — Nikolai Weibull <mailing-lists.ruby-core@...>
I would very much like to be able to provide a Regexp object input from
[#6572] Stack trace consumes information. patch... — Hugh Sasse <hgs@...>
I have just had output like this from rails:
[#6588] Object#clone missing documentation — Eero Saynatkari <ruby-ml@...>
It appears that Object#clone, unlike Object#dup, retains
Hi,
I've attached a documentation patch which tries to address this shortcoming.
Kev Jackson wrote:
[#6602] Re: Unpack Endian Bug — "Berger, Daniel" <Daniel.Berger@...>
> -----Original Message-----
Berger, Daniel wrote:
[#6604] Sandboxing without $SAFE — why the lucky stiff <ruby-core@...>
I've been playing with Ruby sandboxing alot over the past several
[#6619] Wildness: Purpose of NOEX_PUBLIC Flag in rb_add_method? — "Charles E. Thornton" <ruby-core@...>
Several Different references to 'noex'
Charles E. Thornton wrote:
[#6625] Array::fill causes segfaults after many calls — noreply@...
Bugs item #2824, was opened at 2005-11-14 23:11
Hi,
[#6629] Strange error messages using DRb/TupleSpace — Eric Hodel <drbrain@...7.net>
Using
[#6636] alarming changes — "Ara.T.Howard" <ara.t.howard@...>
[#6639] Tuple Class — TRANS <transfire@...>
If I put together a good Tuple class for Ruby could it go into core? I
[#6650] REXML Update Please — zdennis <zdennis@...>
I submitted this as an RCR, but I didn't know that RCR's aren't for the stdlib. Matz commented on
Hi,
Yukihiro Matsumoto wrote:
[#6660] Ruby on Neko ? — Nicolas Cannasse <ncannasse@...>
Hi folks,
Nicolas Cannasse wrote:
Florian Growrote:
Nicolas Cannasse <ncannasse@motion-twin.com> writes:
On Sun, 20 Nov 2005, Christian Neukirchen wrote:
[#6672] testing for hardlink with "test(?-, ...)" flawed on Windows — noreply@...
Bugs item #2858, was opened at 2005-11-20 16:35
Hi,
--- nobuyoshi nakada <nobuyoshi.nakada@ge.com> wrote:
[#6684] semenatics of if/unless/while statement modifiers — Stefan Kaes <skaes@...>
Hi all,
On Tue, Nov 22, 2005 at 08:22:59AM +0900, Stefan Kaes wrote:
Mauricio Fern疣dez wrote:
On Nov 21, 2005, at 4:37 PM, Stefan Kaes wrote:
Eric Hodel wrote:
Hi,
Yukihiro Matsumoto wrote:
mathew wrote:
Stefan Kaes wrote:
On Tuesday 22 November 2005 12:31, Steven Jenkins wrote:
Hi --
>>>>> "m" == mathew <meta@pobox.com> writes:
Hi,
Yukihiro Matsumoto wrote:
Hi,
Yukihiro Matsumoto wrote:
Hi,
Yukihiro Matsumoto wrote:
On Nov 21, 2005, at 9:37 PM, Stefan Kaes wrote:
Eric Hodel wrote:
URABE Shyouhei wrote:
On Tue, 22 Nov 2005, Stefan Kaes wrote:
Ara.T.Howard wrote:
Hi --
David A. Black wrote:
Hi --
David A. Black wrote:
Hi --
David A. Black wrote:
Hi -
On Tuesday 22 November 2005 15:37, David A. Black wrote:
Hi --
On Tue, 22 Nov 2005, Stefan Kaes wrote:
Mathieu Bouchard wrote:
[#6721] String#index does not work correctly on SuSE10.0 x86_64 — "Kanis, Lars" <Kanis@...>
Hi folks,
[#6798] ruby 1.8.4 preview2 — Yukihiro Matsumoto <matz@...>
Hi,
On Nov 30, 2005, at 8:03 AM, Yukihiro Matsumoto wrote:
>>>>> "E" == Eric Hodel <drbrain@segment7.net> writes:
On Dec 4, 2005, at 4:07 AM, ts wrote:
>>>>> "E" == Eric Hodel <drbrain@segment7.net> writes:
On 11/30/05, Yukihiro Matsumoto <matz@ruby-lang.org> wrote:
Hi,
Yukihiro Matsumoto wrote:
Hi.
Re: Ruby on Neko ?
Christian Neukirchen wrote: > Mathieu Bouchard <matju@artengine.ca> writes: > > >>On Sun, 20 Nov 2005, Christian Neukirchen wrote: >> >>>>a language and have a compiler do one big part of the job for >>>>you. This way, even advanced features can be encoded as Neko >>>>expressions which will then be compiled. >>> >>>Show how will one map singleton methods, runtime method definitions >>>and other means of reflection to Neko? >> >>I'd be also interested in hearing an explanation for this: >> >> "Objects are some kind of optimized hashtables. All fields names are >> hashed into an integer value that is used as the key into a lookup >> table. Insertion of a new field is O(n), access to a field is O(log n)." >> >>How is that optimised compared to hashtables? By definition, a hashtable, >>when it's big enough for its number of entries, is O(1) for insertion and >>write and read. For example, Ruby's st.c implements the hashtables used >>for storing @-variables, and it's all O(1). How does Neko improve on this? > > > It is O(0), of course!!1! It's actually O(-1), so everytime you're accessing a field you're making a quantum leap a few CPU cycles before. More seriously, there is currently two implementations of objects tables in Neko. One is binary balanced tree that provide an amortized O(n) insertion but has always an O(log n) access even in the worst case. The other one is an flat representation of the tree as an array where it use dichotomy to find the corresponding field. It also have an amortized O(n) insertion since at some time the array might need to grow (you could state it's O(1) if the array is big enough) and O(log n) access. Compared to the balanced tree, it's a lot more compact representation since no cells are allocated and that makes the GC a lot more happy. Looking at Ruby implementation, every object needs to allocate a fairly big hashtable (11 buckets by default) in order to get a real O(1) access in practice - which can be O(n) in the worst case - and that cost (a) memory and (b) GC cycles when scanning it. When Neko for example is running into Apache, that's several hundreds of process having all theses living objects so in that case you're more often memory-bound than CPU-bound, it then makes sense to trade CPU for memory. It's possible that Neko object tables might be improved, I'm open to suggestions, but in the end I think it's always a balance between memory size and fragmentation (which is also very important) and CPU. You can have a look at neko/vm/objtable.c for implementation details. Nicolas