Forum: Ruby-dev Planning to release 1.8.7 fixes on 12/25 (Japanese timezone)

Posted by Urabe Shyouhei (Guest)
on 2010-11-25 07:56
(Received via mailing list)
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.
Posted by Luis Lavena (luislavena)
on 2010-11-25 13:32
(Received via mailing list)
2010/11/25 Urabe Shyouhei <shyouhei@ruby-lang.org>:
> 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,
Posted by Luis Lavena (luislavena)
on 2010-11-27 21:56
(Received via mailing list)
2010/11/25 Urabe Shyouhei <shyouhei@ruby-lang.org>:
> 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:in `require'
        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:in
`collect_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:in
`each'
        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:in
`recursive_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:in
`recursive_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:in
`run'
        from ../../../../ruby/test/runner.rb:7

=====

2) 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.
Posted by Urabe Shyouhei (Guest)
on 2010-11-29 00:19
(Received via mailing list)
(2010/11/28 5:55), Luis Lavena 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.

> 2) 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?
Posted by Luis Lavena (luislavena)
on 2010-11-29 01:54
(Received via mailing list)
On Sun, Nov 28, 2010 at 8:19 PM, Urabe Shyouhei <shyouhei@ruby-lang.org> 
wrote:
> (2010/11/28 5:55), Luis Lavena 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.

>
>> 2) 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.
Posted by Urabe Shyouhei (Guest)
on 2010-11-29 02:56
(Received via mailing list)
(2010/11/29 9:53), Luis Lavena 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.
Posted by Luis Lavena (luislavena)
on 2010-11-29 14:36
(Received via mailing list)
On Sun, Nov 28, 2010 at 10:56 PM, Urabe Shyouhei 
<shyouhei@ruby-lang.org> wrote:
> (2010/11/29 9:53), Luis Lavena 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.
Posted by Urabe Shyouhei (Guest)
on 2010-11-30 19:44
(Received via mailing list)
(2010/11/29 22:35), Luis Lavena 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.
Posted by Urabe Shyouhei (Guest)
on 2010-12-20 03:35
(Received via mailing list)
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.
Posted by Brian Ford (brixen)
on 2010-12-20 19:40
(Received via mailing list)
Hi,

2010/11/24 Urabe Shyouhei <shyouhei@ruby-lang.org>:
> 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
Posted by Brian Ford (brixen)
on 2010-12-20 19:59
(Received via mailing list)
On Mon, Dec 20, 2010 at 10:39 AM, brian ford <brixen@gmail.com> 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
Posted by Tanaka Akira (Guest)
on 2010-12-21 00:01
(Received via mailing list)
2010/12/21 brian ford <brixen@gmail.com>:

> 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.
Posted by mathew (Guest)
on 2010-12-21 17:22
(Received via mailing list)
On Sun, Nov 28, 2010 at 17:19, Urabe Shyouhei <shyouhei@ruby-lang.org> 
wrote:
> (2010/11/28 5:55), Luis Lavena 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:in `require'
  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:in 
`collect_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:in 
`each'
  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:in
`recursive_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:in
`recursive_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:in `run'
  from ./test/runner.rb:7
make: *** [test-all] Error 1


mathew
Posted by Charles Nutter (headius)
on 2010-12-21 18:40
(Received via mailing list)
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 Shyouhei <shyouhei@ruby-lang.org>:
Posted by Urabe Shyouhei (Guest)
on 2010-12-22 01:30
(Received via mailing list)
(2010/12/22 1:22), mathew wrote:
> On Sun, Nov 28, 2010 at 17:19, Urabe Shyouhei <shyouhei@ruby-lang.org> wrote:
>> (2010/11/28 5:55), Luis Lavena 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 $
Posted by Urabe Shyouhei (Guest)
on 2010-12-22 01:46
(Received via mailing list)
(2010/12/22 2:40), Charles Oliver Nutter 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.
Posted by Luis Lavena (luislavena)
on 2010-12-24 17:10
(Received via mailing list)
2010/11/25 Urabe Shyouhei <shyouhei@ruby-lang.org>:
> 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:in `require'
        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:in
`collect_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:in
`each'
        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:in
`recursive_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:in
`recursive_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:in
`run'
        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.
Posted by Urabe Shyouhei (Guest)
on 2010-12-25 02:00
(Received via mailing list)
(2010/12/25 1:07), Luis Lavena 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.
Posted by Luis Lavena (luislavena)
on 2010-12-25 02:03
(Received via mailing list)
On Fri, Dec 24, 2010 at 9:52 PM, Urabe Shyouhei <shyouhei@ruby-lang.org> 
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.
Posted by Luis Lavena (luislavena)
on 2010-12-25 02:52
(Received via mailing list)
On Fri, Dec 24, 2010 at 9:52 PM, Urabe Shyouhei <shyouhei@ruby-lang.org> 
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.
Posted by mathew (Guest)
on 2010-12-31 05:36
(Received via mailing list)
On Tue, Dec 21, 2010 at 18:29, Urabe Shyouhei <shyouhei@ruby-lang.org> 
wrote:
> (2010/12/22 1:22), mathew wrote:
>> 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 $

OK, apparently bzr doesn't handle the expansion of $Id$ via bzr-svn.

It would probably be worth putting a warning on the Ruby web site
noting that the SVN repository only works if checked out with SVN, and
that you'll get test failures if you use other tools.

(I think it's a bad idea to tie Ruby to a particular version control
tool in this way, but that's a separate debate.)


mathew
Please log in before posting. Registration is free and takes only a minute.
Existing account (Switch to SSL-encrypted connection)
NEW: Do you have a Google/GoogleMail or Yahoo account? No registration required!
Log in with Google account | Log in with Yahoo account
No account? Register here.