[前][次][番号順一覧][スレッド一覧]

ruby-changes:3183

From: ko1@a...
Date: 25 Dec 2007 16:04:43 +0900
Subject: [ruby-changes:3183] nobu - Ruby:r14676 (trunk): * trunk/common.mk, goruby.c, golf_prelude.rb: for golfers.

nobu	2007-12-25 16:04:30 +0900 (Tue, 25 Dec 2007)

  New Revision: 14676

  Added files:
    trunk/golf_prelude.rb
    trunk/goruby.c
  Modified files:
    trunk/ChangeLog
    trunk/common.mk
    trunk/main.c
    trunk/tool/compile_prelude.rb

  Log:
    * trunk/common.mk, goruby.c, golf_prelude.rb: for golfers.
    
    * trunk/main.c (main): hook for embedding applications.
    
    * trunk/tool/compile_prelude.rb: can change initialize function name.


  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/golf_prelude.rb?revision=14676&view=markup
  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/golf_prelude.rb?r1=14676&r2=14675
  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/tool/compile_prelude.rb?r1=14676&r2=14675
  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/ChangeLog?r1=14676&r2=14675
  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/goruby.c?revision=14676&view=markup
  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/goruby.c?r1=14676&r2=14675
  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/main.c?r1=14676&r2=14675
  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/common.mk?r1=14676&r2=14675

Index: goruby.c
===================================================================
--- goruby.c	(revision 0)
+++ goruby.c	(revision 14676)
@@ -0,0 +1,3 @@
+void Init_golf(void); 
+#define RUBY_MAIN_INIT() Init_golf()
+#include "main.c"

Property changes on: goruby.c
___________________________________________________________________
Name: svn:keywords
   + Author Date Id Revision
Name: svn:eol-style
   + LF

Index: ChangeLog
===================================================================
--- ChangeLog	(revision 14675)
+++ ChangeLog	(revision 14676)
@@ -1,3 +1,11 @@
+Tue Dec 25 16:04:28 2007  Nobuyoshi Nakada  <nobu@r...>
+
+	* trunk/common.mk, goruby.c, golf_prelude.rb: for golfers.
+
+	* trunk/main.c (main): hook for embedding applications.
+
+	* trunk/tool/compile_prelude.rb: can change initialize function name.
+
 Tue Dec 25 15:59:51 2007  Nobuyoshi Nakada  <nobu@r...>
 
 	* encoding.c (rb_enc_register): do not use based_encoding to check if
Index: common.mk
===================================================================
--- common.mk	(revision 14675)
+++ common.mk	(revision 14676)
@@ -14,7 +14,8 @@
 RDOCOUT       = $(EXTOUT)/rdoc
 
 DMYEXT	      = dmyext.$(OBJEXT)
-MAINOBJ	      = main.$(OBJEXT)
+NORMALMAINOBJ = main.$(OBJEXT) revision.$(OBJEXT)
+MAINOBJ       = $(NORMALMAINOBJ)
 EXTOBJS	      = 
 DLDOBJS	      = $(DMYEXT)
 
@@ -79,6 +80,8 @@
 		prelude.$(OBJEXT) \
 		$(COMMONOBJS)
 
+GOLFOBJS      = goruby.$(OBJEXT) golf_prelude.$(OBJEXT)
+
 SCRIPT_ARGS   =	--dest-dir="$(DESTDIR)" \
 		--extout="$(EXTOUT)" \
 		--make="$(MAKE)" \
@@ -99,8 +102,14 @@
 	@$(MINIRUBY) $(srcdir)/ext/extmk.rb $(EXTMK_ARGS)
 prog: $(PROGRAM) $(WPROGRAM)
 
-miniruby$(EXEEXT): config.status $(MAINOBJ) $(MINIOBJS) $(COMMONOBJS) $(DMYEXT) $(ARCHFILE)
+miniruby$(EXEEXT): config.status $(NORMALMAINOBJ) $(MINIOBJS) $(COMMONOBJS) $(DMYEXT) $(ARCHFILE)
 
+GORUBY = go$(RUBY_INSTALL_NAME)
+golf: $(LIBRUBY) $(GOLFOBJS)
+	$(MAKE) $(MFLAGS) MAINOBJ="$(GOLFOBJS)" PROGRAM=$(GORUBY)$(EXEEXT) program
+
+program: $(PROGRAM)
+
 $(PROGRAM): $(LIBRUBY) $(MAINOBJ) $(OBJS) $(EXTOBJS) $(SETUP) $(PREP)
 
 $(LIBRUBY_A):	$(OBJS) $(DMYEXT) $(ARCHFILE)
@@ -600,6 +609,9 @@
 id.$(OBJEXT): {$(VPATH)}id.c {$(VPATH)}ruby.h
 miniprelude.$(OBJEXT): {$(VPATH)}miniprelude.c {$(VPATH)}ruby.h {$(VPATH)}vm_core.h
 prelude.$(OBJEXT): {$(VPATH)}prelude.c {$(VPATH)}ruby.h {$(VPATH)}vm_core.h
+golf_prelude.$(OBJEXT): {$(VPATH)}golf_prelude.c {$(VPATH)}ruby.h {$(VPATH)}vm_core.h
+goruby.$(OBJEXT): {$(VPATH)}goruby.c {$(VPATH)}main.c {$(VPATH)}ruby.h {$(VPATH)}config.h \
+  {$(VPATH)}defines.h {$(VPATH)}intern.h {$(VPATH)}missing.h
 
 ascii.$(OBJEXT): {$(VPATH)}ascii.c {$(VPATH)}regenc.h \
   {$(VPATH)}oniguruma.h {$(VPATH)}config.h {$(VPATH)}defines.h
@@ -650,10 +662,13 @@
 prelude.c: $(srcdir)/tool/compile_prelude.rb $(srcdir)/prelude.rb $(srcdir)/gem_prelude.rb $(RBCONFIG)
 	$(MINIRUBY) -I$(srcdir) -I$(srcdir)/lib -rrbconfig $(srcdir)/tool/compile_prelude.rb $(srcdir)/prelude.rb $(srcdir)/gem_prelude.rb $@
 
+golf_prelude.c: $(srcdir)/tool/compile_prelude.rb $(srcdir)/prelude.rb $(srcdir)/golf_prelude.rb
+	$(BASERUBY) -I$(srcdir) -I$(srcdir)/lib -rrbconfig $(srcdir)/tool/compile_prelude.rb $(srcdir)/golf_prelude.rb $@
 
 prereq: incs srcs preludes
 
 preludes: {$(VPATH)}miniprelude.c
+preludes: {$(srcdir)}golf_prelude.c
 
 docs:
 	$(BASERUBY) -I$(srcdir) $(srcdir)/tool/makedocs.rb $(INSNS2VMOPT)
Index: main.c
===================================================================
--- main.c	(revision 14675)
+++ main.c	(revision 14676)
@@ -33,6 +33,9 @@
     {
 	RUBY_INIT_STACK;
 	ruby_init();
+#ifdef RUBY_MAIN_INIT
+	RUBY_MAIN_INIT();
+#endif
 	return ruby_run_node(ruby_options(argc, argv));
     }
 }
Index: golf_prelude.rb
===================================================================
--- golf_prelude.rb	(revision 0)
+++ golf_prelude.rb	(revision 14676)
@@ -0,0 +1,7 @@
+class Object
+  def method_missing m, *a, &b
+    r = /^#{m}/
+    t = (methods + private_methods).sort.find{|e|r=~e}
+    t ? __send__(t, *a, &b) : super
+  end
+end

Property changes on: golf_prelude.rb
___________________________________________________________________
Name: svn:keywords
   + Author Date Id Revision
Name: svn:eol-style
   + LF

Index: tool/compile_prelude.rb
===================================================================
--- tool/compile_prelude.rb	(revision 14675)
+++ tool/compile_prelude.rb	(revision 14676)
@@ -8,6 +8,7 @@
 
 preludes = ARGV.dup
 outfile = preludes.pop
+init_name = outfile[/\w+(?=_prelude.c\z)/] || 'prelude'
 
 C_ESC = {
   "\\" => "\\\\",
@@ -72,7 +73,7 @@
 % }
 
 void
-Init_prelude(void)
+Init_<%=init_name%>(void)
 {
 % lines_list.each_with_index {|(setup_lines, lines), i|
   rb_iseq_eval(rb_iseq_compile(

--
ML: ruby-changes@q...
Info: http://www.atdot.net/~ko1/quickml

[前][次][番号順一覧][スレッド一覧]