Planning to release 1.8.7 fixes on 12/25 (Japanese timezone)

Hello,

As you might already noticed I’m working on the subject. If you have
something to go with it, please let me know. The earlier, the better.
Especially port maintainers are encouraged to see if current ruby_1_8_7
branch
works on their machines.

Thank you.

2010/11/25 Urabe S. [email protected]:

Hello,

As you might already noticed I’m working on the subject. If you have
something to go with it, please let me know. The earlier, the better.
Especially port maintainers are encouraged to see if current ruby_1_8_7 branch
works on their machines.

Tested native compilation and seems to work as expected.

I’m testing cross-compilation as we speak, it will require some
backports from ruby_1_8 and others from ruby_1_9_2. Will report back
any issues.

Still doing git svn fetch (slow internet connection in Argentina) so
cannot commit yet.

Thank you.

Thanks to you for the heads up.

Regards,

2010/11/25 Urabe S. [email protected]:

Hello,

As you might already noticed I’m working on the subject. If you have
something to go with it, please let me know. The earlier, the better.
Especially port maintainers are encouraged to see if current ruby_1_8_7 branch
works on their machines.

Hello,

Working with ruby_1_8_7 branch I managed to completely compile it.

However, I found two issues.

  1. I was unable to run tests (make check) for it:

make check
test succeeded
./miniruby.exe -I…/…/…/…/ruby/lib -I.ext/common -I./-
-r…/…/…/…/ruby/ext/purelib.rb …/…/…/…/ruby/runruby.rb
–extout=.ext – “…/…/…/…/ruby/test/runner.rb”
–basedir="…/…/…/…/ruby/test" --runner=console
C:/Users/Luis/Projects/oss/ruby/lib/logger.rb:174: private method
chomp' called for nil:NilClass (NoMethodError) from ../../../../ruby/test/logger/test_logger.rb:2:inrequire’
from …/…/…/…/ruby/test/logger/test_logger.rb:2
from
C:/Users/Luis/Projects/oss/ruby/lib/test/unit/collector/dir.rb:90:in
require' from C:/Users/Luis/Projects/oss/ruby/lib/test/unit/collector/dir.rb:90:incollect_file’
from
C:/Users/Luis/Projects/oss/ruby/lib/test/unit/collector/dir.rb:73:in
recursive_collect' from C:/Users/Luis/Projects/oss/ruby/lib/test/unit/collector/dir.rb:58:ineach’
from
C:/Users/Luis/Projects/oss/ruby/lib/test/unit/collector/dir.rb:58:in
recursive_collect' from C:/Users/Luis/Projects/oss/ruby/lib/test/unit/collector/dir.rb:63:inrecursive_collect’
from
C:/Users/Luis/Projects/oss/ruby/lib/test/unit/collector/dir.rb:58:in
each' from C:/Users/Luis/Projects/oss/ruby/lib/test/unit/collector/dir.rb:58:inrecursive_collect’
from
C:/Users/Luis/Projects/oss/ruby/lib/test/unit/collector/dir.rb:29:in
collect' from C:/Users/Luis/Projects/oss/ruby/lib/test/unit/autorunner.rb:68 from C:/Users/Luis/Projects/oss/ruby/lib/test/unit/autorunner.rb:213:in[]’
from
C:/Users/Luis/Projects/oss/ruby/lib/test/unit/autorunner.rb:213:in
run' from C:/Users/Luis/Projects/oss/ruby/lib/test/unit/autorunner.rb:12:inrun’
from …/…/…/…/ruby/test/runner.rb:7

=====

  1. Cross compilation fails on dl compilation, while it works on
    ruby_1_8 branch, reported in #4094

http://redmine.ruby-lang.org/issues/show/4094

Thank you.

(2010/11/28 5:55), Luis L. wrote:

  1. I was unable to run tests (make check) for it:

This is because you are using a source from a git repo. It doesn’t
happen on
our canonical svn code.

  1. Cross compilation fails on dl compilation, while it works on
    ruby_1_8 branch, reported in #4094

I believe this has been fixed… Can you show us your fake.rb?

On Sun, Nov 28, 2010 at 8:19 PM, Urabe S. [email protected]
wrote:

(2010/11/28 5:55), Luis L. wrote:

  1. I was unable to run tests (make check) for it:

This is because you are using a source from a git repo. It doesn’t happen on
our canonical svn code.

Interesting, that didn’t happen with ruby_1_8_6 or trunk.

  1. Cross compilation fails on dl compilation, while it works on
    ruby_1_8 branch, reported in #4094

I believe this has been fixed… Can you show us your fake.rb?

$ cat fake.rb

class Object;
CROSS_COMPILING = RUBY_PLATFORM;
remove_const :RUBY_PLATFORM;
remove_const :RUBY_VERSION;
RUBY_PLATFORM = “i386-mingw32”;
RUBY_VERSION = “1.8.7”;
end;
if RUBY_PLATFORM =~ /mswin|bccwin|mingw/;
class File;
remove_const :ALT_SEPARATOR;
ALT_SEPARATOR = “\”;
end;
end;
prehook = proc do |e|;
Config::MAKEFILE_CONFIG[“top_srcdir”] = $top_srcdir =
“…/ruby” unless e;
untrace_var(:$extmk, prehook);
end;
trace_var(:$extmk, prehook); \

====

But ruby_1_8 branch is different: (i386-mingw32-fake.rb)

class Object
CROSS_COMPILING = RUBY_PLATFORM
remove_const :RUBY_PLATFORM
remove_const :RUBY_VERSION
remove_const :RUBY_DESCRIPTION if defined?(RUBY_DESCRIPTION)
RUBY_PLATFORM = “i386-mingw32”
RUBY_VERSION = “1.8.8”
RUBY_DESCRIPTION = “ruby #{RUBY_VERSION}
(#{Time.now.strftime(”%Y-%m-%d")}) [#{RUBY_PLATFORM}]"
end
if RUBY_PLATFORM =~ /mswin|bccwin|mingw/
class File
remove_const :ALT_SEPARATOR
ALT_SEPARATOR = “\”
end
end

====

I understand this change was introduced on ruby_1_8 by my request:

http://redmine.ruby-lang.org/issues/show/2531

But that is all I can dig and understand around the issue.

Sorry for not been more helpful.

(2010/11/29 9:53), Luis L. wrote:

      Config::MAKEFILE_CONFIG["top_srcdir"] = $top_srcdir =

“…/ruby” unless e; \

Curious. You get the exact same error message as you pasted in #4094 ?
It seems your source directory is …/ruby so …/ruby/ruby.h should exist
and
the error will not raise.

On Sun, Nov 28, 2010 at 10:56 PM, Urabe S.
[email protected] wrote:

(2010/11/29 9:53), Luis L. wrote:

 Config::MAKEFILE_CONFIG["top_srcdir"] = $top_srcdir =

“…/ruby” unless e; \

Curious. You get the exact same error message as you pasted in #4094 ?
It seems your source directory is …/ruby so …/ruby/ruby.h should exist and
the error will not raise.

On the original report (#2531), I was getting a reference to the base
ruby used to cross-compile:

Generating callback.func
mkmf.rb can’t find header files for ruby at
/home/luis/.rvm/ruby-1.8.7-p248/lib/ruby/ruby.h

While on #4094

Generating callback.func
mkmf.rb can’t find header files for ruby at …/ruby/ruby.h

On that report, I’ve tried to cross-compile “inside” ruby checkout
(mkdir build; cd build; sh …/configure)

I’ve tried that:

Generating callback.func
mkmf.rb can’t find header files for ruby at …/ruby.h

And also outside ruby dir (cd …; mkdir build-ruby; cd build-ruby; sh
…/ruby/configure)

Generating callback.func
mkmf.rb can’t find header files for ruby at …/ruby/ruby.h

===

But, noticed the following on master, that top_srcdir is build
relative to the build dir, so this patch:

diff --git a/Makefile.in b/Makefile.in
index 4faabc3…3135f08 100644
— a/Makefile.in
+++ b/Makefile.in
@@ -138,7 +138,8 @@ fake.rb: Makefile
end;
end;
prehook = proc do |e|; \

  •             Config::MAKEFILE_CONFIG["top_srcdir"] = $$top_srcdir
    

= “@top_srcdir@” unless e; \

  •             builddir = File.expand_path(File.dirname(__FILE__)); \
    
  •             Config::MAKEFILE_CONFIG["top_srcdir"] = $$top_srcdir
    

= File.expand_path("@top_srcdir@", builddir) unle
untrace_var(:$$extmk, prehook);
end;
trace_var(:$$extmk, prehook); \

===

Seems to correct the issue: https://gist.github.com/719946

I’m still unsure why this works on ruby_1_8 but not on ruby_1_8_7 (and
why don’t see similar code there related to fake.rb) but setting the
top_srcdir relative to the build directory, works.

Thank you for your time, adding the patch to the ticket.

This is the final call. We will have a 1.8.7 release this Saturday. If
you
need something to be made on time, that should be reported now. Thank
you.

Hi,

2010/11/24 Urabe S. [email protected]:

Hello,

As you might already noticed I’m working on the subject. If you have
something to go with it, please let me know. The earlier, the better.
Especially port maintainers are encouraged to see if current ruby_1_8_7 branch
works on their machines.

Is anyone on ruby-core / ruby-dev running RubySpec on the 1.8.7 branch
that will be released?

Thanks,
Brian

On Mon, Dec 20, 2010 at 10:39 AM, brian ford [email protected] wrote:

Is anyone on ruby-core / ruby-dev running RubySpec on the 1.8.7 branch
that will be released?

FWIW, this is the output I get running on ruby_1_8_7 branch:

https://gist.github.com/748814

2010/12/21 brian ford [email protected]:

Is anyone on ruby-core / ruby-dev running RubySpec on the 1.8.7 branch
that will be released?

http://www.rubyist.net/~akr/chkbuild/debian/ruby-1.8.7/last.html.gz
http://www.rubyist.net/~akr/chkbuild/debian/ruby-1.8.7-pth/last.html.gz

I guess no one care failures, though.

(2010/11/29 22:35), Luis L. wrote:

But, noticed the following on master, that top_srcdir is build
relative to the build dir, so this patch:

(snip)

Seems to correct the issue: https://gist.github.com/719946

Ah! So this is my mistake. Sorry, and thank you finding it out. I’ll
take
your patch.

On Sun, Nov 28, 2010 at 17:19, Urabe S. [email protected]
wrote:

(2010/11/28 5:55), Luis L. wrote:

  1. I was unable to run tests (make check) for it:

This is because you are using a source from a git repo. It doesn’t happen on
our canonical svn code.

It happens for me, using the canonical SVN repo.

$ make check
test succeeded
./miniruby -I./lib -I.ext/common -I./- -r./ext/purelib.rb
./runruby.rb --extout=.ext – “./test/runner.rb” --basedir="./test"
–runner=console
/home/meta/WIP/ruby187/lib/logger.rb:174: private method chomp' called for nil:NilClass (NoMethodError) from ./test/logger/test_logger.rb:2:inrequire’
from ./test/logger/test_logger.rb:2
from /home/meta/WIP/ruby187/lib/test/unit/collector/dir.rb:90:in
require' from /home/meta/WIP/ruby187/lib/test/unit/collector/dir.rb:90:incollect_file’
from /home/meta/WIP/ruby187/lib/test/unit/collector/dir.rb:73:in
recursive_collect' from /home/meta/WIP/ruby187/lib/test/unit/collector/dir.rb:58:ineach’
from /home/meta/WIP/ruby187/lib/test/unit/collector/dir.rb:58:in
recursive_collect' from /home/meta/WIP/ruby187/lib/test/unit/collector/dir.rb:63:inrecursive_collect’
from /home/meta/WIP/ruby187/lib/test/unit/collector/dir.rb:58:in
each' from /home/meta/WIP/ruby187/lib/test/unit/collector/dir.rb:58:inrecursive_collect’
from /home/meta/WIP/ruby187/lib/test/unit/collector/dir.rb:29:in
collect' from /home/meta/WIP/ruby187/lib/test/unit/autorunner.rb:68 from /home/meta/WIP/ruby187/lib/test/unit/autorunner.rb:213:in[]’
from /home/meta/WIP/ruby187/lib/test/unit/autorunner.rb:213:in run' from /home/meta/WIP/ruby187/lib/test/unit/autorunner.rb:12:inrun’
from ./test/runner.rb:7
make: *** [test-all] Error 1

mathew

Might as well roll this one in, since without it nobody should be
using singleton.rb:

Bug #4181: Backport Ruby 1.9 singleton.rb, since 1.8’s is not
thread-safe
http://redmine.ruby-lang.org/issues/show/4181

  • Charlie

2010/11/25 Urabe S. removed_em[email protected]:

(2010/12/22 2:40), Charles Oliver N. wrote:

Might as well roll this one in, since without it nobody should be
using singleton.rb:

Bug #4181: Backport Ruby 1.9 singleton.rb, since 1.8’s is not thread-safe
http://redmine.ruby-lang.org/issues/show/4181

Can be reasonable but a bit too big for a last minute change I suspect.
Maybe
for a next release.

2010/11/25 Urabe S. [email protected]:

Hello,

As you might already noticed I’m working on the subject. If you have
something to go with it, please let me know. The earlier, the better.
Especially port maintainers are encouraged to see if current ruby_1_8_7 branch
works on their machines.

make check can’t still be executed due logger chomp method:

$ make check
test succeeded
./miniruby.exe -I…/ruby/lib -I.ext/common -I./-
-r…/ruby/ext/purelib.rb …/ruby/runruby.rb --extout=.ext –
“…/ruby/test/runner.rb” --basedir="…/ruby/test" --runner=console
c:/Users/Luis/Projects/oss/ruby/lib/logger.rb:174: private method
chomp' called for nil:NilClass (NoMethodError) from ../ruby/test/logger/test_logger.rb:2:inrequire’
from …/ruby/test/logger/test_logger.rb:2
from
c:/Users/Luis/Projects/oss/ruby/lib/test/unit/collector/dir.rb:90:in
require' from c:/Users/Luis/Projects/oss/ruby/lib/test/unit/collector/dir.rb:90:incollect_file’
from
c:/Users/Luis/Projects/oss/ruby/lib/test/unit/collector/dir.rb:73:in
recursive_collect' from c:/Users/Luis/Projects/oss/ruby/lib/test/unit/collector/dir.rb:58:ineach’
from
c:/Users/Luis/Projects/oss/ruby/lib/test/unit/collector/dir.rb:58:in
recursive_collect' from c:/Users/Luis/Projects/oss/ruby/lib/test/unit/collector/dir.rb:63:inrecursive_collect’
from
c:/Users/Luis/Projects/oss/ruby/lib/test/unit/collector/dir.rb:58:in
each' from c:/Users/Luis/Projects/oss/ruby/lib/test/unit/collector/dir.rb:58:inrecursive_collect’
from
c:/Users/Luis/Projects/oss/ruby/lib/test/unit/collector/dir.rb:29:in
collect' from c:/Users/Luis/Projects/oss/ruby/lib/test/unit/autorunner.rb:68 from c:/Users/Luis/Projects/oss/ruby/lib/test/unit/autorunner.rb:213:in[]’
from
c:/Users/Luis/Projects/oss/ruby/lib/test/unit/autorunner.rb:213:in
run' from c:/Users/Luis/Projects/oss/ruby/lib/test/unit/autorunner.rb:12:inrun’
from …/ruby/test/runner.rb:7
make: *** [test-all] Error 1

Without running tests I’m not fond to release an updated version of
RubyInstaller. Please help.

Thank you.

(2010/12/25 1:07), Luis L. wrote:

make check can’t still be executed due logger chomp method:

Weird… To illustrate the issue it is something related to SVN’s
keyword substitution.
The line raising an exception, logger.rb:174, is this:

0174| ProgName = “#{name.chomp(”,v")}/#{rev}"

and the variable “name” is not nil in the canonical SVN repo as shown
below:

zsh % svn propget svn:keywords
http://svn.ruby-lang.org/repos/ruby/branches/ruby_1_8_7/lib/logger.rb
Author Date Id Revision
zsh % svn cat
http://svn.ruby-lang.org/repos/ruby/branches/ruby_1_8_7/lib/logger.rb |
fgrep ‘$Id’

Revision:: $Id: logger.rb 22285 2009-02-13 10:19:04Z shyouhei $

id, name, rev = %w$Id: logger.rb 22285 2009-02-13 10:19:04Z shyouhei $
zsh %

So it should be OK… What is written there for you?

Without running tests I’m not fond to release an updated version of
RubyInstaller. Please help.

Thank you.

I’ve already made the release tarball so I can send you to test it.
Contact me directly if you need.

(2010/12/22 1:22), mathew wrote:

On Sun, Nov 28, 2010 at 17:19, Urabe S. [email protected] wrote:

(2010/11/28 5:55), Luis L. wrote:

  1. I was unable to run tests (make check) for it:

This is because you are using a source from a git repo. It doesn’t happen on
our canonical svn code.

It happens for me, using the canonical SVN repo.

Can you show us your lib/logger.rb? It should contain this line:

id, name, rev = %w$Id: logger.rb 22285 2009-02-13 10:19:04Z shyouhei $

On Fri, Dec 24, 2010 at 9:52 PM, Urabe S. [email protected]
wrote:

zsh % svn propget svn:keywords
http://svn.ruby-lang.org/repos/ruby/branches/ruby_1_8_7/lib/logger.rb
Author Date Id Revision
zsh % svn cat
http://svn.ruby-lang.org/repos/ruby/branches/ruby_1_8_7/lib/logger.rb | fgrep
‘$Id’

Revision:: $Id: logger.rb 22285 2009-02-13 10:19:04Z shyouhei $

id, name, rev = %w$Id: logger.rb 22285 2009-02-13 10:19:04Z shyouhei $
zsh %

So it should be OK… What is written there for you?

Weird, I cloned from scratch ruby_1_8_7 branch and this time (on this
computer) is working:

https://gist.github.com/754615

No segfaults on this version, which is good.

On Fri, Dec 24, 2010 at 9:52 PM, Urabe S. [email protected]
wrote:

zsh % svn propget svn:keywords
http://svn.ruby-lang.org/repos/ruby/branches/ruby_1_8_7/lib/logger.rb
Author Date Id Revision
zsh % svn cat
http://svn.ruby-lang.org/repos/ruby/branches/ruby_1_8_7/lib/logger.rb | fgrep
‘$Id’

Revision:: $Id: logger.rb 22285 2009-02-13 10:19:04Z shyouhei $

id, name, rev = %w$Id: logger.rb 22285 2009-02-13 10:19:04Z shyouhei $
zsh %

So it should be OK… What is written there for you?

Cloning again (was with work computer, now personal one as preps for
xmas party)

Will update you in a bit about it.

I’ve already made the release tarball so I can send you to test it. Contact me
directly if you need.

Please email it to me to luislavena at gmail dot com, will like to
test it before it hits the wild.

Thank you.