From: Nobuyoshi Nakada Date: 2008-05-29T17:36:42+09:00 Subject: [ruby-dev:34886] Re: [Ruby 1.9 - Bug #11] prelude.c compilation problem on mswin32 なかだです。 At Wed, 28 May 2008 23:28:33 +0900, redmine@ruby-lang.org wrote in [ruby-dev:34877]: > BTW, > on mswin32, after prelude.rb is updated and the contents is not changed (such as ``touch''ed), prelude.c will be always compiled. > This is a rare case, so priority is low. ifchangeを使うのを止めますか。 Index: Makefile.in =================================================================== --- Makefile.in (revision 16676) +++ Makefile.in (working copy) @@ -205,4 +205,2 @@ distclean-local:: ext/extinit.$(OBJEXT): ext/extinit.c $(SETUP) $(CC) $(CFLAGS) $(XCFLAGS) $(CPPFLAGS) $(COUTFLAG)$@ -c ext/extinit.c - -MKPREP = $(PREP) $(RBCONFIG) Index: common.mk =================================================================== --- common.mk (revision 16676) +++ common.mk (working copy) @@ -110,4 +110,6 @@ TESTWORKDIR = testwork BOOTSTRAPRUBY = $(BASERUBY) +COMPILE_PRELUDE = $(MINIRUBY) -I$(srcdir) -rrbconfig $(srcdir)/tool/compile_prelude.rb + VCS = svn @@ -378,5 +380,5 @@ encs: enc.mk $(LIBRUBY) enc.mk: $(srcdir)/enc/make_encmake.rb $(srcdir)/enc/Makefile.in $(srcdir)/enc/depend \ - $(srcdir)/lib/mkmf.rb $(MKPREP) + $(srcdir)/lib/mkmf.rb $(PREP) $(MINIRUBY) $(srcdir)/enc/make_encmake.rb --builtin-encs="$(BUILTIN_ENCOBJS)" $@ @@ -743,12 +745,9 @@ miniprelude.c: $(srcdir)/tool/compile_pr $(BASERUBY) -I$(srcdir) $(srcdir)/tool/compile_prelude.rb $(srcdir)/prelude.rb $@ -prelude.c: $(srcdir)/tool/compile_prelude.rb $(PRELUDE_SCRIPTS) $(MKPREP) - $(MINIRUBY) -I$(srcdir) -rrbconfig $(srcdir)/tool/compile_prelude.rb \ - $(PRELUDE_SCRIPTS) $@.new - $(IFCHANGE) "$@" "$@.new" +prelude.c: $(srcdir)/tool/compile_prelude.rb $(PRELUDE_SCRIPTS) $(PREP) + $(COMPILE_PRELUDE) $(PRELUDE_SCRIPTS) $@ -golf_prelude.c: $(srcdir)/tool/compile_prelude.rb $(srcdir)/prelude.rb $(srcdir)/golf_prelude.rb $(MKPREP) - $(MINIRUBY) -I$(srcdir) -rrbconfig $(srcdir)/tool/compile_prelude.rb $(srcdir)/golf_prelude.rb $@.new - $(IFCHANGE) "$@" "$@.new" +golf_prelude.c: $(srcdir)/tool/compile_prelude.rb $(srcdir)/prelude.rb $(srcdir)/golf_prelude.rb $(PREP) + $(COMPILE_PRELUDE) $(srcdir)/golf_prelude.rb $@ prereq: incs srcs preludes Index: enc/trans/make_transdb.rb =================================================================== --- enc/trans/make_transdb.rb (revision 16676) +++ enc/trans/make_transdb.rb (working copy) @@ -32,11 +32,5 @@ Dir.open(transdir) {|d| d.grep(/.+\.[ch] end result = converters.map {|k, v| %[rb_declare_transcoder("%s", "%s", "%s");\n] % v}.join -mode = IO::RDWR|IO::CREAT -mode |= IO::BINARY if defined?(IO::BINARY) -open(outhdr, mode) do |f| - unless f.read == result - f.rewind - f.truncate(0) - f.print result - end +open(outhdr, 'wb') do |f| + f.print result end Index: enc/make_encdb.rb =================================================================== --- enc/make_encdb.rb (revision 16676) +++ enc/make_encdb.rb (working copy) @@ -66,11 +66,5 @@ end result = encodings.map {|e| %[ENC_DEFINE("#{e}");\n]}.join + lines.join + "\n#define ENCODING_COUNT #{count}\n" -mode = IO::RDWR|IO::CREAT -mode |= IO::BINARY if defined?(IO::BINARY) -open(outhdr, mode) do |f| - unless f.read == result - f.rewind - f.truncate(0) - f.print result - end +open(outhdr, 'wb') do |f| + f.print result end -- --- 僕の前にBugはない。 --- 僕の後ろにBugはできる。 中田 伸悦