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