[#22637] [Bug #1240] parser bug in 1.8.7 and 1.9.1p0 — Thomer Gil <redmine@...>
Bug #1240: parser bug in 1.8.7 and 1.9.1p0
Issue #1240 has been updated by Yusuke Endoh.
[#22640] [Bug #1241] Segfault with Nokogiri 1.2.1 on Ruby 1.9.1p0 — Raven Ex <redmine@...>
Bug #1241: Segfault with Nokogiri 1.2.1 on Ruby 1.9.1p0
[#22646] [Bug #1243] 1 is prime — Yuki Sonoda <redmine@...>
Bug #1243: 1 is prime
Issue #1243 has been updated by Dave B.
[#22684] [Bug #1247] YAML::load converts some dates into strings — Matthew Wilson <redmine@...>
Bug #1247: YAML::load converts some dates into strings
Issue #1247 has been updated by Yusuke Endoh.
On Thu, Apr 08, 2010 at 10:22:57PM +0900, Yusuke Endoh wrote:
On 4/8/10, Aaron Patterson <aaron@tenderlovemaking.com> wrote:
Hi,
[#22685] 1.9 conditional wait has no timeout support — Nasir Khan <rubylearner@...>
In ruby 1.8 we could use -
[#22687] [Bug #1248] e.exception(e) returns self — Tomas Matousek <redmine@...>
Bug #1248: e.exception(e) returns self
Hi,
Well the reason is that arg is supposed to be a message, right? A message can be an arbitrary object. So if I pass e as a message, why it doesn't become a value of the message property?
Hi,
[#22715] [Bug #1251] gsub problem — Alexander Pettelkau <redmine@...>
Bug #1251: gsub problem
[#22725] [Bug #1253] Fix MSVC Build Issues — Charlie Savage <redmine@...>
Bug #1253: Fix MSVC Build Issues
[#22727] Moving ruby 1.9.1 forward on windows — Charlie Savage <cfis@...>
Hi everyone,
On Sat, Mar 7, 2009 at 7:01 PM, Charlie Savage <cfis@savagexi.com> wrote:
> This works until you start linking third-party upstream source that
On Sun, Mar 8, 2009 at 3:45 PM, Charlie Savage <cfis@savagexi.com> wrote:
Hi Austin,
On Sun, Mar 8, 2009 at 4:26 PM, Charlie Savage <cfis@savagexi.com> wrote:
[#22731] [Bug #1255] += for large strings egrigiously slow — James Lee <redmine@...>
Bug #1255: += for large strings egrigiously slow
[#22736] Ruby 1.9.1 and tail recursion optimization — =?ISO-8859-15?Q?Wolfgang_N=E1dasi-Donner?= <ed.odanow@...>
Moin, moin!
Wolfgang N疆asi-Donner schrieb:
Hi,
>
On Sun, Mar 8, 2009 at 16:57, James Coglan <jcoglan@googlemail.com> wrote:
2009/3/8 Nikolai Weibull <now@bitwi.se>
James Coglan wrote:
daz schrieb:
Wolfgang N叩dasi-Donner wrote:
Charles Oliver Nutter schrieb:
[#22748] [Feature #1256] Add constant TAILRECURSION to let a program recognize if tail recursion optimization is implemented — Wolfgang Nádasi-Donner <redmine@...>
Feature #1256: Add constant TAILRECURSION to let a program recognize if tail recursion optimization is implemented
Hi,
[#22803] Relegate 1.8.6 to Engine Yard, part II — Urabe Shyouhei <shyouhei@...>
Hello and sorry for my being slow for this issue. It's OK now for me to pass
Ryan Davis wrote:
Urabe Shyouhei wrote:
Hi,
Nobuyoshi Nakada wrote:
Urabe Shyouhei wrote:
[#22812] [Bug #1261] cross-compiling Ruby extensions using mkmf doesn't fully respect DESTDIR — Daniel Golle <redmine@...>
Bug #1261: cross-compiling Ruby extensions using mkmf doesn't fully respect DESTDIR
[#22859] [Bug #1277] Incorrect passing of file handle between runtime libraries in OpenSSL extension — Charlie Savage <redmine@...>
Bug #1277: Incorrect passing of file handle between runtime libraries in OpenSSL extension
[#22892] Ruby Time — valodzka <valodzka@...>
Got tired of current ruby Time limitation, I have written this -
In article <9e19ed87-9d12-4f98-af3c-bd49a71b0bd4@p11g2000yqe.googlegroups.com>,
valodzka wrote:
> I bet you'll get tired of updating that database. There's a major difference
valodzka wrote:
In article <b5d0a489-4613-4b63-9664-8627358b2dd9@g19g2000yql.googlegroups.com>,
> I found a discussion in PHP.
In article <deab6882-12ac-4aa1-a901-681795ed863b@z9g2000yqi.googlegroups.com>,
[#22893] [Feature #1291] O_CLOEXEC flag missing for Kernel::open — David Martin <redmine@...>
Feature #1291: O_CLOEXEC flag missing for Kernel::open
Issue #1291 has been updated by Motohiro KOSAKI.
[#22894] [Bug #1292] 1.8 compile time error with mingw gcc 4.3 — Roger Pack <redmine@...>
Bug #1292: 1.8 compile time error with mingw gcc 4.3
Hi,
[#22916] [Bug #1296] [trunk/22981] 64-bit issues on trunk in ext/zlib — Ollivier Robert <redmine@...>
Bug #1296: [trunk/22981] 64-bit issues on trunk in ext/zlib
[#22927] [Bug #1301] Poor RegExp Matching Performance — Andreas Grau <redmine@...>
Bug #1301: Poor RegExp Matching Performance
[#22935] 1.8.6 rdoc breaks when rdoc'ing 1.9 — James Britt <james.britt@...>
I'm running ruby 1.8.6 (2009-03-10 patchlevel 362) [i686-linux] and
[#22937] Ruby not to be a part of Google's 2009 Summer of Code? — Rocky Bernstein <rocky.bernstein@...>
The list of participating organizations for Google's 2009 Summer of Code has
[#22978] Ruby 1.9 bloc parameters — Vincent Isambart <vincent.isambart@...>
Hi,
[#22979] Ruby 1.9 bloc parameters — Vincent Isambart <vincent.isambart@...>
Hi,
[#22990] [Bug #1309] dl tests — Charlie Savage <redmine@...>
Bug #1309: dl tests
[#23026] [Bug #1317] Creating a range with strings — Ian Bailey <redmine@...>
Bug #1317: Creating a range with strings
[#23050] [Bug #1322] define_method scope bug — "coderrr ." <redmine@...>
Bug #1322: define_method scope bug
[#23051] [Bug #1323] Sockets broken on windows — Charlie Savage <redmine@...>
Bug #1323: Sockets broken on windows
[#23053] [Bug #1325] fiber tests kill windows — Charlie Savage <redmine@...>
Bug #1325: fiber tests kill windows
[#23054] [Bug #1326] Failing unit tests on windows — Charlie Savage <redmine@...>
Bug #1326: Failing unit tests on windows
[#23060] [Bug #1327] CSV unit test failures on windows — Charlie Savage <redmine@...>
Bug #1327: CSV unit test failures on windows
[#23063] [Bug #1332] Reading file on Windows is 500x slower then with previous Ruby version — Damjan Rems <redmine@...>
Bug #1332: Reading file on Windows is 500x slower then with previous Ruby version
Issue #1332 has been updated by Roger Pack.
Hello,
[#23075] [Bug #1336] Change in string representation of Floats — Brian Ford <redmine@...>
Bug #1336: Change in string representation of Floats
Issue #1336 has been updated by Roger Pack.
On Fri, Apr 3, 2009 at 11:49 PM, Roger Pack <redmine@ruby-lang.org> wrote:
Issue #1336 has been updated by Roger Pack.
Hi,
Hi,
Hi,
Gary Wright wrote:
[#23082] [Bug #1341] pthread_cond_timedwait failing in 1.9.1-p0 thread tests — Graham Agnew <redmine@...>
Bug #1341: pthread_cond_timedwait failing in 1.9.1-p0 thread tests
[ruby-core:23046] Back to ruby19.dll
Hi everyone,
A couple of weeks ago
(http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-core/22727) I
proposed renaming the ruby shared library to ruby19.dll on windows. Let
me try again, maybe this time I'll be more convincing :)
Right now ruby includes the c runtime version in the ruby shared library
name, so msvcrt-ruby19.dll or msvcr90-ruby19.dll.
I think this is a bad idea. My conclusions are (read below if you want
the details):
Conclusion #1 - Ruby can be use any c runtime.
Conclusion #2 - In some cases, a extension needs to use the same c
runtime as the library it wraps. This can happen with old, outdated
libraries or unix-centric libraries.
Conclusion #3 - Libraries on windows are linked against a variety of c
runtimes - pretending that msvcrt.dll is the one true library is fantasy.
Including the c runtime name in the ruby dll solves *no* issues. But it
does mean that gem maintainers have to provide multiple binary gems for
windows depending on how Ruby is built. And that is a bad idea that
will impede adoption of ruby 1.9.1 on windows.
And now onto the gory details.
Extensions
=============
A typical ruby extension includes three parts - ruby, the extension and
the library being wrapped. Each can use a different version of the
c-runtime. As discussed many times before on this list, this leads to
three potential issues - memory handling, errno handling and files handling.
So where do problems arise? Let's take a look:
ruby <---> extension <-----> library
memory x
errno x
files x x
This diagram shows that memory and errno handling is a non-issue between
ruby and an extension. This is because Ruby provides the ALLOC/xfree
api for memory, and as far as I know, Ruby and extensions do not use
errno to communicate (instead an extension should use rb_raise).
However, passing file handles on windows requires ruby, an extension and
its library to all use the same c runtime. Since that's unlikely (see
below), it should be considered forbidden on windows.
Conclusion #1 - Ruby can use an c runtime version. Adding the runtime
library to ruby19.dll is pointless.
Problem Libraries
=================
In contrast, the diagram shows all three issues can arise between an
extension and a library. Let's look at two problem libraries:
gdbm - Does not provide an api to free memory that it allocates. This
is an old unix library that hasn't been updated since 2002 and I doubt
is used much on Windows.
iconv - Uses errno to pass error information. This is a popular library
that is unix centric. Looking at the Ruby extension, it could in fact
get by without using errno, but that would be less satisfactory.
In both these cases, the extension has to use the same c runtime as the
library itself (once again, it doesn't matter what c runtime ruby uses).
Conclusion #2 - In some cases, a extension needs to use the same c
runtime as the library it wraps. This can happen with old, outdated
libraries or unix-centric libraries.
Modern Libraries
=============
Now let's look at some examples at common libraries and how their
windows binaries are distributed:
postgreql - mscvr90 (VC 2008)
opensll - mscvr90 (VC 2008)
freeimage - cleverly does not link against a c runtime (unknown)
libxml - msvcrt (windows xp ddk)
zlib - msvcrt
All of these libraries work fine, even when using a different c runtime
than ruby or an extensions In general, I've found that any modern
library that is used on windows provides a memory management api,
doesn't use errno and doesn't require passing file handles around. If
they did not, then they would not work well on windows (ruby of course
isn't the only program to have c runtime issues).
Conclusion #3 - No matter what runtime Ruby links against, it will use
libraries on windows that use a different runtime.
Summary
===========
I realize what I am proposing is controversial. But if you look at how
extensions are built, and real-world examples, hopefully it becomes
clear that adding the c runtime version to the ruby shared library name
does not solve any technical issues.
But it does put an undue burden on gem maintainers. The days of
msvcrt.dll and VC6 are over. We must expect ruby 1.9.1 will be built
with a variety of compilers - VC2008, VC2010, mingw and the Windows DDK.
Right now, gem maintainers would have to provide three different
binary gems for windows (msvcrt-ruby19.dll, msvcr90-ruby19.dll,
msvcr10-ruby19.dll). That of course will never happen.
So what we should do:
* Rename the ruby shared libary to ruby19.dll
* Package gdbm and iconv with the windows one-click installer to make
sure the extensions and library use the same c runtime (this already
happens anyway)
* Clearly document to extension writers how to make their extensions
windows compatible
Thanks,
Charlie