[#38647] [Ruby 1.9 - Bug #5130][Open] Thread.pass sticks on OpenBSD — Yui NARUSE <naruse@...>
[#38653] [Ruby 1.9 - Bug #5135][Open] Ruby 1.9.3-preview1 tests fails in Fedora Rawhide — Vit Ondruch <v.ondruch@...>
2011/8/4 Vit Ondruch <v.ondruch@tiscali.cz>:
[#38666] [Ruby 1.9 - Bug #5138][Open] Add nonblocking IO that does not use exceptions for EOF and EWOULDBLOCK — Yehuda Katz <wycats@...>
On Tue, Aug 02, 2011 at 07:35:15AM +0900, Yehuda Katz wrote:
(08/02/2011 07:46 AM), Aaron Patterson wrote:
Urabe Shyouhei <shyouhei@ruby-lang.org> wrote:
(08/02/2011 08:14 AM), Eric Wong wrote:
Urabe Shyouhei <shyouhei@ruby-lang.org> wrote:
(08/02/2011 08:35 AM), Eric Wong wrote:
Urabe Shyouhei <shyouhei@ruby-lang.org> wrote:
2011/8/2 Eric Wong <normalperson@yhbt.net>:
2011/8/2 Tanaka Akira <akr@fsij.org>:
Yehuda Katz <wycats@gmail.com> wrote:
Yehuda Katz
On Tue, Aug 02, 2011 at 07:35:15AM +0900, Yehuda Katz wrote:
2011/8/2 Yehuda Katz <wycats@gmail.com>:
Yehuda Katz <wycats@gmail.com> wrote:
"tenderlovemaking (Aaron Patterson)" <aaron@tenderlovemaking.com> wrote:
On Wed, Jul 10, 2013 at 09:03:19AM +0900, Eric Wong wrote:
Aaron Patterson <tenderlove@ruby-lang.org> wrote:
On Wed, Jul 10, 2013 at 10:52:26AM +0900, Eric Wong wrote:
[#38695] [Ruby 1.9 - Bug #5144][Open] Remove GPL file from repository — Vit Ondruch <v.ondruch@...>
[#38706] [Ruby 1.9 - Bug #5147][Open] mkmf should not require static library when ruby is built with --enable-shared — Vit Ondruch <v.ondruch@...>
[#38831] Help out with the next version of ruby-lang.org — Magnus Holm <judofyr@...>
https://github.com/rubylang/ruby-lang.org
Great news! Congratulations for the initiative!
Just wondering why is it not under https://github.com/ruby account,
[#38866] [Ruby 1.9 - Bug #5173][Open] [PATCH] json/generator: prevent GC of temporary strings — Eric Wong <normalperson@...>
[#38881] Init_prelude gone in 1.9.3 — Christoph Kappel <unexist@...>
Dear list,
[#38894] Why Ruby has versioned paths? — V咜 Ondruch <v.ondruch@...>
Hello, could somebody please elaborate about reasons why Ruby uses versioned
2011/8/10 V鱈t Ondruch <v.ondruch@gmail.com>
2011/8/10 Michael Klishin <michael.s.klishin@gmail.com>
2011/8/10 V鱈t Ondruch <v.ondruch@gmail.com>
[#38911] [Ruby 1.9 - Feature #5183][Open] [PATCH] openssl: add OP_NO_COMPRESSION constant — Eric Wong <normalperson@...>
[#38972] [Ruby 1.9 - Bug #5193][Open] ruby_thread_data_type linker errors fixed with RUBY_EXTERN — Charlie Savage <cfis@...>
[#38980] :symbol.is_a?(String) — Magnus Holm <judofyr@...>
http://viewsourcecode.org/why/redhanded/inspect/SymbolIs_aString.html
What would ObjectSpace.each_object(String) { |o| p o } produce?
On Tue, Aug 16, 2011 at 17:01, Haase, Konstantin
This would only be feasible if frozen strings would truly be frozen. Currently, there are a lot of C extensions modifying frozen strings (which is why Rubinius and JRuby have to treat frozen strings as mutable). Unfortunately, the current C API gives access to the raw character array, making it impossible to prevent frozen strings from being modified. What if a cached, frozen string is modified? Also, I see it as a feature of symbols that they are not encoding aware.
[#39000] [Ruby 1.9 - Bug #5199][Open] ext/tk: RB_GC_GUARD seems to be needed in several places — Eric Wong <normalperson@...>
[#39022] [Ruby 1.9 - Bug #5204][Open] `defined?(@@foo) && @foo` may fail — Magnus Holm <judofyr@...>
[#39025] [Ruby 1.9 - Feature #5206][Open] ruby -K should warn — Eric Hodel <drbrain@...7.net>
[#39062] Releasing r33028 as Ruby 1.9.3 RC1 — Yugui <yugui@...>
Hi,
Hi,
Hi
On Sat, Sep 3, 2011 at 12:14 AM, KOSAKI Motohiro
> We are still suffering from a sample/test.rb failure for system(),
[#39079] [Ruby 1.9 - Feature #5221][Open] LoadEerror#path — Koichi Sasada <redmine@...>
[#39093] [Ruby 1.9 - Bug #5227][Open] Float#round fails on corner cases — Marc-Andre Lafortune <ruby-core@...>
Hi
(2011/08/27 4:40), Marc-Andre Lafortune wrote:
Hi,
2011/8/29 Marc-Andre Lafortune <ruby-core-mailing-list@marc-andre.ca>:
Hi,
[#39118] [Ruby 1.9 - Bug #921] autoload is not thread-safe — Hiroshi Nakamura <nakahiro@...>
[#39120] [Ruby 1.9 - Bug #5233][Open] OpenSSL::SSL::SSLSocket has problems with encodings other than "ascii" — Niklas Baumstark <niklas.baumstark@...>
[#39134] [Ruby 1.9 - Bug #5237][Open] IO.copy_stream calls #read on an object infinitely many times — Brian Ford <brixen@...>
On Sat, Aug 27, 2011 at 3:54 AM, Eric Wong <normalperson@yhbt.net> wrote:
[#39142] [Ruby 1.9 - Bug #5239][Open] bootstraptest/runner.rb: assert_normal_exit logic broken on Debian/GNU kFreeBSD — Lucas Nussbaum <lucas@...>
> I've just checked, and FreeBSD 8.2 is also affected by this issue.
On 29/08/11 at 12:43 +0900, KOSAKI Motohiro wrote:
[#39146] [Ruby 1.9 - Bug #5240][Open] Hang when using threads + forks on Debian GNU/kFreeBSD — Lucas Nussbaum <lucas@...>
[#39162] [Ruby 1.9 - Bug #5244][Open] Continuation causes Bus Error on Debian sparc — Lucas Nussbaum <lucas@...>
[#39184] [Ruby 1.9 - Bug #1792][Closed] Fixnum#& 等が、Rational などを受けつける — Kenta Murata <muraken@...>
Is it intentional?
[#39195] [Ruby 1.9 - Bug #5251][Open] Thread Change Breaks Windows Builds — Charlie Savage <cfis@...>
[#39216] [Ruby 1.9 - Bug #5253][Open] PTY with wait incorrectly sets exit status for exit command — Simon Chiang <simon.a.chiang@...>
[ruby-core:39177] [Ruby 1.9 - Feature #5248] Faster PStore
Issue #5248 has been updated by Kenta Murata.
Yui NARUSE wrote:
> When the checksum of your data accidentally equals to old data, PStore won't save the data and you lose it.
The accident you mentioned seems to occur in the current implementation probabilistically.
It will lead troublesome bugs. I believe it should be fixed.
----------------------------------------
Feature #5248: Faster PStore
http://redmine.ruby-lang.org/issues/5248
Author: Masaki Matsushita
Status: Open
Priority: Normal
Assignee:
Category: lib
Target version: 1.9.x
=begin
Hellow.
I wrote a patch to make PStore more faster.
What I did as follows:
* deferred check sum calculation
PStore judges whether it should modify database file or not by 2 steps.
First, it compares data size between database file and marshal data to write.
If both size are different, it writes data to database file.
Second, if both sizes are same, it compares Digest::MD5.digest of both still more.
However, PStore calculates a check sum of data to write before size comparison.
If PStore can judge it should modify database file in size comparison, this calculation will be useless.
Consequently, I modified PStore to calculate a check sum after size comparison.
* check-sum calculation by String#sum
As stated above, Present PStore calculates checksum of database file by Digest::MD5.digest to judge whether it should modify file or not.
However, Digest::MD5.digest is cryptographic hash function and I think it is too strong to use as a mere check sum.
Therefore, I modified PStore to use not Digest::MD5.digest but String#sum.
* deferred File#truncate
PStore puts back file pointer to the head and truncates file size to zero before writing to database file as below.
file.rewind
file.truncate(0)
file.write(data)
(pstore.rb at line 486~488)
However, truncation by File#truncate is slow and it is the bottleneck of PStore.
I modified it as below.
file.rewind
file.write(data)
file.truncate(data.size)
It only puts back file pointer before write. Truncation is done after writing.
In this way, size needs to be truncate will be minimum and it makes PStore faster.
* performance
I benchmarked PStore as below:
require 'pstore'
p = PStore.new("foo")
p.transaction { p["hoge"] = "hoge" * ARGV.first.to_i }
10000.times do
p.transaction { p["hoge"] += "hoge" }
end
Present PStore:
% time ruby pstore_bench.rb 1000
ruby pstore_bench.rb 1000 2.94s user 2.43s system 69% cpu 7.723 total
% time ruby pstore_bench.rb 10000
ruby pstore_bench.rb 10000 5.37s user 2.99s system 70% cpu 11.810 total
% time ruby pstore_bench.rb 100000
ruby pstore_bench.rb 100000 31.98s user 11.09s system 69% cpu 1:02.15 total
New PStore:
% time ruby pstore_bench.rb 1000
ruby pstore_bench.rb 1000 1.67s user 0.44s system 99% cpu 2.119 total
% time ruby pstore_bench.rb 10000
ruby pstore_bench.rb 10000 3.24s user 0.63s system 99% cpu 3.876 total
% time ruby pstore_bench.rb 100000
ruby pstore_bench.rb 100000 14.29s user 3.13s system 100% cpu 17.416 total
As a result, new PStore is faster.
It can be said that new PStore is the faster, the bigger database file is.
I attached a patch. PStore applied the patch passes test-all.
=end
--
http://redmine.ruby-lang.org