[#22684] [Bug #1247] YAML::load converts some dates into strings — Matthew Wilson <redmine@...>

Bug #1247: YAML::load converts some dates into strings

10 messages 2009/03/05

[#22725] [Bug #1253] Fix MSVC Build Issues — Charlie Savage <redmine@...>

Bug #1253: Fix MSVC Build Issues

13 messages 2009/03/07

[#22727] Moving ruby 1.9.1 forward on windows — Charlie Savage <cfis@...>

Hi everyone,

14 messages 2009/03/08

[#22731] [Bug #1255] += for large strings egrigiously slow — James Lee <redmine@...>

Bug #1255: += for large strings egrigiously slow

11 messages 2009/03/08

[#22736] Ruby 1.9.1 and tail recursion optimization — =?ISO-8859-15?Q?Wolfgang_N=E1dasi-Donner?= <ed.odanow@...>

Moin, moin!

13 messages 2009/03/08
[#22739] Re: Ruby 1.9.1 and tail recursion optimization — =?ISO-8859-15?Q?Wolfgang_N=E1dasi-Donner?= <ed.odanow@...> 2009/03/08

Wolfgang N疆asi-Donner 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

7 messages 2009/03/08

[#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

21 messages 2009/03/10

[#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

8 messages 2009/03/10

[#22892] Ruby Time — valodzka <valodzka@...>

Got tired of current ruby Time limitation, I have written this -

24 messages 2009/03/14
[#22949] Re: Ruby Time — Tanaka Akira <akr@...> 2009/03/19

In article <9e19ed87-9d12-4f98-af3c-bd49a71b0bd4@p11g2000yqe.googlegroups.com>,

[#22974] Re: Ruby Time — valodzka <valodzka@...> 2009/03/20

[#22977] Re: Ruby Time — Urabe Shyouhei <shyouhei@...> 2009/03/20

valodzka wrote:

[#22981] Re: Ruby Time — valodzka <valodzka@...> 2009/03/21

> I bet you'll get tired of updating that database. There's a major difference

[#22893] [Feature #1291] O_CLOEXEC flag missing for Kernel::open — David Martin <redmine@...>

Feature #1291: O_CLOEXEC flag missing for Kernel::open

10 messages 2009/03/15

[#22939] [Bug #1303] A name considered a local variable on RHS of an assignment that defines it — Tomas Matousek <redmine@...>

Bug #1303: A name considered a local variable on RHS of an assignment that defines it

8 messages 2009/03/19

[#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

11 messages 2009/03/30

[#23075] [Bug #1336] Change in string representation of Floats — Brian Ford <redmine@...>

Bug #1336: Change in string representation of Floats

37 messages 2009/03/31
[#23179] [Bug #1336] Change in string representation of Floats — Roger Pack <redmine@...> 2009/04/11

Issue #1336 has been updated by Roger Pack.

[#23181] Re: [Bug #1336] Change in string representation of Floats — Brent Roman <brent@...> 2009/04/11

[#23186] Re: [Bug #1336] Change in string representation of Floats — Yukihiro Matsumoto <matz@...> 2009/04/12

Hi,

[#23187] Re: [Bug #1336] Change in string representation of Floats — Brent Roman <brent@...> 2009/04/13

[#23188] Re: [Bug #1336] Change in string representation of Floats — Yukihiro Matsumoto <matz@...> 2009/04/13

Hi,

[ruby-core:22900] [Bug #1293] revision.h not correctly updated in common.mk

From: Charlie Savage <redmine@...>
Date: 2009-03-15 08:12:42 UTC
List: ruby-core #22900
Bug #1293: revision.h not correctly updated in common.mk
http://redmine.ruby-lang.org/issues/show/1293

Author: Charlie Savage
Status: Open, Priority: Normal
Category: core, Target version: 1.9.1
ruby -v: ruby 1.9.2dev (2009-03-15) [i386-mswin32_90]

Ok, this one took a long time to figure out.

Check out and build Ruby.  Wait a day or two.  Recheck out ruby.  Remake, re install it.

Notice that after the do-install action is run, the do-install-doc action is executed. And surprisingly, it rebuilds ruby.exe and ruby.dll.  The result is the installed versions of ruby are *older* than the built versions in win32.  For a debug build that is really annoying because the debug info files are out of date with the executables, meaning you get no symbols or source code (at least with VC2008).

Tracing through NMake, the problem lies in revision.h.  Debug output from nmake:

Sat, Mar 14 2009 15:07:04                       ./..\version.h
Sat, Mar 14 2009 15:07:04                         ./..\version.h
Sun, Mar 15 2009 01:53:50                         ./../ChangeLog
Sun, Mar 01 2009 01:32:42                         ./../tool/file2lastrev.rb
Sun, Mar 15 2009 01:52:54                       ./../revision.h
        c:\DEVELO~1\ruby\bin\ruby.exe ./../tool/file2lastrev.rb --revision.h "./.." > "./../revision.h.tmp"
        C:\Windows\system32\cmd.exe /C .\..\win32\ifchange.bat "./../revision.h" "./../revision.h.tmp"
Wed, Mar 11 2009 00:40:03                       ./../include/ruby\win32.h
Sun, Mar 15 2009 01:59:07                     version.obj

Notice the Changelog is older than revision.h.  That causes a chain reaction:

* version.obj is rebuilt
* miniruby.exe is rebuilt
* prelude.c is rebuilt
* ruby19.dll is rebuilt
* ruby.exe is rebuilt.

So let's look at the revision.h make rule:


$(srcdir)/revision.h: $(srcdir)/version.h $(srcdir)/ChangeLog $(srcdir)/tool/file2lastrev.rb $(REVISION_FORCE)
	@-$(BASERUBY) $(srcdir)/tool/file2lastrev.rb --revision.h "$(@D)" > "[email protected]"
	@$(IFCHANGE) "$@" "[email protected]"

On a new checkout it is highly likely ChangeLog or version.h is updated (in this case Changelog).  But IFCHANGE does not see the change, so revision.h is never updated.  Thus the rule triggers every time, even if all you are doing is running nmake do-install-doc.

Changing the rule like this fixes the issue:

$(srcdir)/revision.h: $(srcdir)/version.h $(srcdir)/ChangeLog $(srcdir)/tool/file2lastrev.rb $(REVISION_FORCE)
	@-$(BASERUBY) $(srcdir)/tool/file2lastrev.rb --revision.h "$(@D)" > "$@"


Thus always recreate revision.h if any of its prerequisites are newer.

Before the change we can use ChkMatch tool to compare the ruby executable with its debug information:

ChkMatch -c c:\Development\ruby-1.9.1\usr\bin\ruby.exe ruby.pdb
Result: Unmatched (reason: Age mismatch)

After the change:

ChkMatch -c c:\Development\ruby-1.9.1\usr\bin\ruby.exe ruby.pdb
Result: Matched

And then debugging works again.


Patch attached.


----------------------------------------
http://redmine.ruby-lang.org

In This Thread

Prev Next