------art_13084_2506441.1173736913934
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

On 3/12/07, Daniel Berger <djberg96 / gmail.com> wrote:
> Edit array.c and add the rb_ary_acollect function in my OP anywhere
> above the Init_array() declaration. Add "rb_define_method(rb_cArray,
> "acollect", rb_ary_acollect, 0);" where all the other method
> defintions are (near the bottom). Then recompile and install.
>
> Thanks,
>
> Dan

Hi,

as I wasn't able to compile 1.8.5-p12 I used the brand new 1.8.6 and
VS 2005 SP1, XP SP2.

Patch to array.c is included and I added -openmp to CPPFLAGS.

First run as you posted in the original post:

W:\projects\ruby\ruby\ruby-1.8.6\win32>bench_collect.rb
                                    user     system      total        real
Array#collect                  11.422000   0.094000  11.516000 ( 11.531000)
Array#acollect
W:/projects/ruby/ruby/ruby-1.8.6/win32/bench_collect.rb:17:in
`initialize': exception reentered (fatal)
        from W:/projects/ruby/ruby/ruby-1.8.6/win32/bench_collect.rb:17
        from W:/projects/ruby/ruby/ruby-1.8.6/win32/bench_collect.rb:17:in
`acollect'
        from W:/projects/ruby/ruby/ruby-1.8.6/win32/bench_collect.rb:17
        from W:/projects/ruby/ruby/ruby-1.8.6/win32/bench_collect.rb:17:in
`times'
        from W:/projects/ruby/ruby/ruby-1.8.6/win32/bench_collect.rb:17
        from c:/ruby/lib/ruby/1.8/benchmark.rb:293:in `measure'
        from c:/ruby/lib/ruby/1.8/benchmark.rb:377:in `report'
        from W:/projects/ruby/ruby/ruby-1.8.6/win32/bench_collect.rb:16
        from c:/ruby/lib/ruby/1.8/benchmark.rb:177:in `benchmark'
        from c:/ruby/lib/ruby/1.8/benchmark.rb:207:in `bm'
        from W:/projects/ruby/ruby/ruby-1.8.6/win32/bench_collect.rb:12

Second run without assignments:

W:\projects\ruby\ruby\ruby-1.8.6\win32>bench_collect.rb
                                    user     system      total        real
Array#collect                   6.875000   0.047000   6.922000 (  6.953000)
Array#acollect
W:/projects/ruby/ruby/ruby-1.8.6/win32/bench_collect.rb:17: [BUG]
cross-thread violation on rb_thread_schedule()
ruby 1.8.6 (2007-03-13) [i386-mswin32_80]

This application has requested the Runtime to terminate it in an unusual way.
Please contact the application's support team for more information.>

------art_13084_2506441.1173736913934
Content-Type: application/octet-stream; name=array.patch
Content-Transfer-Encoding: base64
X-Attachment-Id: f_ez7gl7if
Content-Disposition: attachment; filename="array.patch"

LS0tIFc6XHByb2plY3RzXHJ1YnlccnVieVxhcnJheS5jCU1vbiBNYXIgMTIgMjI6NTk6MjAgMjAw
Nw0KKysrIFc6XHByb2plY3RzXHJ1YnlccnVieVxydWJ5LTEuOC42XGFycmF5LmMJTW9uIE1hciAx
MiAyMjo0Mzo1NiAyMDA3DQpAQCAtMTYsNiArMTYsMTIgQEANCiAjaW5jbHVkZSAidXRpbC5oIg0K
ICNpbmNsdWRlICJzdC5oIg0KIA0KKyNpbmNsdWRlICJvbXAuaCINCisNCisjaWZuZGVmIF9PUEVO
TVANCisjZXJyb3IgIk9QRU4gTVAgTUlTU0lORyINCisjZW5kaWYNCisNCiBWQUxVRSByYl9jQXJy
YXk7DQogc3RhdGljIElEIGlkX2NtcDsNCiANCkBAIC0xNzQxLDYgKzE3NDcsMjUgQEANCiAgICAg
cmV0dXJuIGFyeTsNCiB9DQogDQorc3RhdGljIFZBTFVFDQorcmJfYXJ5X2Fjb2xsZWN0KGFyeSkN
CisgICAgVkFMVUUgYXJ5Ow0KK3sNCisgICAgbG9uZyBpOw0KKyAgICBWQUxVRSBjb2xsZWN0Ow0K
Kw0KKyAgICBpZiAoIXJiX2Jsb2NrX2dpdmVuX3AoKSkgew0KKwlyZXR1cm4gcmJfYXJ5X25ldzQo
UkFSUkFZKGFyeSktPmxlbiwgUkFSUkFZKGFyeSktPnB0cik7DQorICAgIH0NCisNCisgICAgY29s
bGVjdCA9IHJiX2FyeV9uZXcyKFJBUlJBWShhcnkpLT5sZW4pOw0KKyNwcmFnbWEgb21wIHBhcmFs
bGVsIGZvcg0KKyAgICBmb3IgKGkgPSAwOyBpIDwgUkFSUkFZKGFyeSktPmxlbjsgaSsrKSB7DQor
CXJiX2FyeV9wdXNoKGNvbGxlY3QsIHJiX3lpZWxkKFJBUlJBWShhcnkpLT5wdHJbaV0pKTsNCisg
ICAgfQ0KKyAgICByZXR1cm4gY29sbGVjdDsNCit9DQorDQogVkFMVUUNCiByYl92YWx1ZXNfYXQo
b2JqLCBvbGVuLCBhcmdjLCBhcmd2LCBmdW5jKQ0KICAgICBWQUxVRSBvYmo7DQpAQCAtMzAyMiw2
ICszMDQ3LDcgQEANCiAgICAgcmJfZGVmaW5lX21ldGhvZChyYl9jQXJyYXksICJzb3J0ISIsIHJi
X2FyeV9zb3J0X2JhbmcsIDApOw0KICAgICByYl9kZWZpbmVfbWV0aG9kKHJiX2NBcnJheSwgImNv
bGxlY3QiLCByYl9hcnlfY29sbGVjdCwgMCk7DQogICAgIHJiX2RlZmluZV9tZXRob2QocmJfY0Fy
cmF5LCAiY29sbGVjdCEiLCByYl9hcnlfY29sbGVjdF9iYW5nLCAwKTsNCisgICAgcmJfZGVmaW5l
X21ldGhvZChyYl9jQXJyYXksICJhY29sbGVjdCIsIHJiX2FyeV9hY29sbGVjdCwgMCk7DQogICAg
IHJiX2RlZmluZV9tZXRob2QocmJfY0FycmF5LCAibWFwIiwgcmJfYXJ5X2NvbGxlY3QsIDApOw0K
ICAgICByYl9kZWZpbmVfbWV0aG9kKHJiX2NBcnJheSwgIm1hcCEiLCByYl9hcnlfY29sbGVjdF9i
YW5nLCAwKTsNCiAgICAgcmJfZGVmaW5lX21ldGhvZChyYl9jQXJyYXksICJzZWxlY3QiLCByYl9h
cnlfc2VsZWN0LCAwKTsNCg------art_13084_2506441.1173736913934--