mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
matz
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@876 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
parent
14fe04bdac
commit
c67251edb4
23 changed files with 244 additions and 83 deletions
24
ChangeLog
24
ChangeLog
|
@ -1,3 +1,7 @@
|
||||||
|
Mon Aug 7 13:59:12 2000 Yukihiro Matsumoto <matz@ruby-lang.org>
|
||||||
|
|
||||||
|
* regex.c (re_match): check for stack depth was needed.
|
||||||
|
|
||||||
Sat Aug 5 16:43:43 2000 WATANABE Hirofumi <eban@os.rim.or.jp>
|
Sat Aug 5 16:43:43 2000 WATANABE Hirofumi <eban@os.rim.or.jp>
|
||||||
|
|
||||||
* djgpp/*: convert DOS line endings to UNIX style.
|
* djgpp/*: convert DOS line endings to UNIX style.
|
||||||
|
@ -8,6 +12,26 @@ Sat Aug 5 16:43:43 2000 WATANABE Hirofumi <eban@os.rim.or.jp>
|
||||||
|
|
||||||
* lib/ftools.rb (move): typo. not `tpath', but `to'.
|
* lib/ftools.rb (move): typo. not `tpath', but `to'.
|
||||||
|
|
||||||
|
Fri Aug 4 23:26:48 2000 Yukihiro Matsumoto <matz@netlab.co.jp>
|
||||||
|
|
||||||
|
* eval.c (proc_call): gives warning if a block is supplied.
|
||||||
|
|
||||||
|
* eval.c (rb_eval): no warning for discarding if an alias for the
|
||||||
|
method is already made.
|
||||||
|
|
||||||
|
Fri Aug 4 16:32:29 2000 Yukihiro Matsumoto <matz@netlab.co.jp>
|
||||||
|
|
||||||
|
* array.c (rb_ary_reject_bang): returns nil if no element removed.
|
||||||
|
|
||||||
|
* hash.c (rb_hash_reject_bang): returns nil if no element removed.
|
||||||
|
|
||||||
|
Thu Aug 3 19:44:26 2000 Yukihiro Matsumoto <matz@netlab.co.jp>
|
||||||
|
|
||||||
|
* eval.c (rb_thread_fd_writable): should return integer value.
|
||||||
|
|
||||||
|
* array.c (rb_ary_assoc): search array element whose length is
|
||||||
|
longer than 0 (not 1).
|
||||||
|
|
||||||
Wed Aug 2 18:27:47 2000 Yukihiro Matsumoto <matz@netlab.co.jp>
|
Wed Aug 2 18:27:47 2000 Yukihiro Matsumoto <matz@netlab.co.jp>
|
||||||
|
|
||||||
* eval.c (rb_thread_wait_fd): prohibit thread context switch
|
* eval.c (rb_thread_wait_fd): prohibit thread context switch
|
||||||
|
|
15
array.c
15
array.c
|
@ -1121,7 +1121,7 @@ rb_ary_slice_bang(argc, argv, ary)
|
||||||
}
|
}
|
||||||
|
|
||||||
static VALUE
|
static VALUE
|
||||||
rb_ary_delete_if(ary)
|
rb_ary_reject_bang(ary)
|
||||||
VALUE ary;
|
VALUE ary;
|
||||||
{
|
{
|
||||||
long i1, i2;
|
long i1, i2;
|
||||||
|
@ -1134,11 +1134,20 @@ rb_ary_delete_if(ary)
|
||||||
}
|
}
|
||||||
i2++;
|
i2++;
|
||||||
}
|
}
|
||||||
|
if (RARRAY(ary)->len == i2) return Qnil;
|
||||||
RARRAY(ary)->len = i2;
|
RARRAY(ary)->len = i2;
|
||||||
|
|
||||||
return ary;
|
return ary;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static VALUE
|
||||||
|
rb_ary_delete_if(ary)
|
||||||
|
VALUE ary;
|
||||||
|
{
|
||||||
|
rb_ary_reject_bang(ary);
|
||||||
|
return ary;
|
||||||
|
}
|
||||||
|
|
||||||
static VALUE
|
static VALUE
|
||||||
rb_ary_replace_m(ary, ary2)
|
rb_ary_replace_m(ary, ary2)
|
||||||
VALUE ary, ary2;
|
VALUE ary, ary2;
|
||||||
|
@ -1274,7 +1283,7 @@ rb_ary_assoc(ary, key)
|
||||||
p = RARRAY(ary)->ptr; pend = p + RARRAY(ary)->len;
|
p = RARRAY(ary)->ptr; pend = p + RARRAY(ary)->len;
|
||||||
while (p < pend) {
|
while (p < pend) {
|
||||||
if (TYPE(*p) == T_ARRAY
|
if (TYPE(*p) == T_ARRAY
|
||||||
&& RARRAY(*p)->len > 1
|
&& RARRAY(*p)->len > 0
|
||||||
&& rb_equal(RARRAY(*p)->ptr[0], key))
|
&& rb_equal(RARRAY(*p)->ptr[0], key))
|
||||||
return *p;
|
return *p;
|
||||||
p++;
|
p++;
|
||||||
|
@ -1626,7 +1635,7 @@ Init_Array()
|
||||||
rb_define_method(rb_cArray, "delete", rb_ary_delete, 1);
|
rb_define_method(rb_cArray, "delete", rb_ary_delete, 1);
|
||||||
rb_define_method(rb_cArray, "delete_at", rb_ary_delete_at_m, 1);
|
rb_define_method(rb_cArray, "delete_at", rb_ary_delete_at_m, 1);
|
||||||
rb_define_method(rb_cArray, "delete_if", rb_ary_delete_if, 0);
|
rb_define_method(rb_cArray, "delete_if", rb_ary_delete_if, 0);
|
||||||
rb_define_method(rb_cArray, "reject!", rb_ary_delete_if, 0);
|
rb_define_method(rb_cArray, "reject!", rb_ary_reject_bang, 0);
|
||||||
rb_define_method(rb_cArray, "replace", rb_ary_replace_m, 1);
|
rb_define_method(rb_cArray, "replace", rb_ary_replace_m, 1);
|
||||||
rb_define_method(rb_cArray, "clear", rb_ary_clear, 0);
|
rb_define_method(rb_cArray, "clear", rb_ary_clear, 0);
|
||||||
rb_define_method(rb_cArray, "fill", rb_ary_fill, -1);
|
rb_define_method(rb_cArray, "fill", rb_ary_fill, -1);
|
||||||
|
|
|
@ -223,7 +223,7 @@ AC_FUNC_MEMCMP
|
||||||
AC_REPLACE_FUNCS(dup2 memmove mkdir strcasecmp strncasecmp strerror strftime\
|
AC_REPLACE_FUNCS(dup2 memmove mkdir strcasecmp strncasecmp strerror strftime\
|
||||||
strchr strstr strtoul crypt flock vsnprintf\
|
strchr strstr strtoul crypt flock vsnprintf\
|
||||||
isinf isnan finite)
|
isinf isnan finite)
|
||||||
AC_CHECK_FUNCS(fmod killpg drand48 random wait4 waitpid syscall getcwd\
|
AC_CHECK_FUNCS(fmod killpg drand48 random wait4 waitpid syscall getcwd chroot\
|
||||||
truncate chsize times utimes fcntl lockf setitimer pause\
|
truncate chsize times utimes fcntl lockf setitimer pause\
|
||||||
setruid seteuid setreuid setrgid setegid setregid\
|
setruid seteuid setreuid setrgid setegid setregid\
|
||||||
getpgrp setpgrp getpgid setpgid getgroups getpriority\
|
getpgrp setpgrp getpgid setpgid getgroups getpriority\
|
||||||
|
@ -861,6 +861,7 @@ esac
|
||||||
AC_SUBST(LIBRUBY_LDSHARED)
|
AC_SUBST(LIBRUBY_LDSHARED)
|
||||||
AC_SUBST(LIBRUBY_DLDFLAGS)
|
AC_SUBST(LIBRUBY_DLDFLAGS)
|
||||||
AC_SUBST(RUBY_INSTALL_NAME)
|
AC_SUBST(RUBY_INSTALL_NAME)
|
||||||
|
AC_SUBST(RUBY_SO_NAME)
|
||||||
AC_SUBST(LIBRUBY_A)
|
AC_SUBST(LIBRUBY_A)
|
||||||
AC_SUBST(LIBRUBY_SO)
|
AC_SUBST(LIBRUBY_SO)
|
||||||
AC_SUBST(LIBRUBY_ALIASES)
|
AC_SUBST(LIBRUBY_ALIASES)
|
||||||
|
|
|
@ -14,19 +14,20 @@ else
|
||||||
endif
|
endif
|
||||||
WPROGRAM = $(RUBYW_INSTALL_NAME)$(EXEEXT)
|
WPROGRAM = $(RUBYW_INSTALL_NAME)$(EXEEXT)
|
||||||
RUBYDEF = $(RUBY_INSTALL_NAME).def
|
RUBYDEF = $(RUBY_INSTALL_NAME).def
|
||||||
SOLIBS := $(RUBY_INSTALL_NAME).dll.res.o $(SOLIBS)
|
RUBY_SO_NAME = $(LIBRUBY_SO:.dll=)
|
||||||
|
SOLIBS := $(RUBY_SO_NAME).res.o $(SOLIBS)
|
||||||
EXTOBJS += $(@:$(EXEEXT)=.res.o)
|
EXTOBJS += $(@:$(EXEEXT)=.res.o)
|
||||||
|
|
||||||
$(LIBRUBY_SO): $(RUBYDEF) $(RUBY_INSTALL_NAME).dll.res.o
|
$(LIBRUBY_SO): $(RUBYDEF) $(RUBY_SO_NAME).res.o
|
||||||
$(LIBRUBY): $(LIBRUBY_SO)
|
$(LIBRUBY): $(LIBRUBY_SO)
|
||||||
|
|
||||||
%.res.o: %.rc
|
%.res.o: %.rc
|
||||||
@WINDRES@ --include-dir . --include-dir $(<D) --include-dir $(srcdir)/win32 $< $@
|
@WINDRES@ --include-dir . --include-dir $(<D) --include-dir $(srcdir)/win32 $< $@
|
||||||
|
|
||||||
$(RUBY_INSTALL_NAME).rc $(RUBYW_INSTALL_NAME).rc $(RUBY_INSTALL_NAME).dll.rc: rbconfig.rb
|
$(RUBY_INSTALL_NAME).rc $(RUBYW_INSTALL_NAME).rc $(RUBY_SO_NAME).rc: rbconfig.rb
|
||||||
@@MINIRUBY@ $(srcdir)/win32/resource.rb \
|
@@MINIRUBY@ $(srcdir)/win32/resource.rb \
|
||||||
-ruby_name=$(RUBY_INSTALL_NAME) -rubyw_name=$(RUBYW_INSTALL_NAME) \
|
-ruby_name=$(RUBY_INSTALL_NAME) -rubyw_name=$(RUBYW_INSTALL_NAME) \
|
||||||
-so_name=$(RUBY_INSTALL_NAME).dll \
|
-so_name=$(RUBY_SO_NAME) \
|
||||||
. $(icondirs) $(srcdir)/win32
|
. $(icondirs) $(srcdir)/win32
|
||||||
|
|
||||||
$(PROGRAM): $(RUBY_INSTALL_NAME).res.o
|
$(PROGRAM): $(RUBY_INSTALL_NAME).res.o
|
||||||
|
|
2
dir.c
2
dir.c
|
@ -433,7 +433,7 @@ static VALUE
|
||||||
dir_s_chroot(dir, path)
|
dir_s_chroot(dir, path)
|
||||||
VALUE dir, path;
|
VALUE dir, path;
|
||||||
{
|
{
|
||||||
#if !defined(DJGPP) && !defined(NT) && !defined(__human68k__) && !defined(__BEOS__) && !defined(__EMX__) && !defined(riscos)
|
#if defined(HAVE_CHROOT) && !defined(__CHECKER__)
|
||||||
rb_secure(2);
|
rb_secure(2);
|
||||||
Check_SafeStr(path);
|
Check_SafeStr(path);
|
||||||
|
|
||||||
|
|
77
djgpp/config.status
Normal file
77
djgpp/config.status
Normal file
|
@ -0,0 +1,77 @@
|
||||||
|
/^SHELL/s,/bin/sh,$(COMPSEC),
|
||||||
|
s%@srcdir@%.%g
|
||||||
|
s%@top_srcdir@%..%
|
||||||
|
s%@CFLAGS@%-O2%g
|
||||||
|
s%@CPPFLAGS@%%g
|
||||||
|
s%@CXXFLAGS@%%g
|
||||||
|
s%@LDFLAGS@%%g
|
||||||
|
s%@LIBS@%-lm %g
|
||||||
|
s%@exec_prefix@%${prefix}%g
|
||||||
|
s%@prefix@%/usr/local%g
|
||||||
|
s%@program_transform_name@%s,x,x,%g
|
||||||
|
s%@bindir@%${exec_prefix}/bin%g
|
||||||
|
s%@sbindir@%${exec_prefix}/sbin%g
|
||||||
|
s%@libexecdir@%${exec_prefix}/libexec%g
|
||||||
|
s%@datadir@%${prefix}/share%g
|
||||||
|
s%@sysconfdir@%${prefix}/etc%g
|
||||||
|
s%@sharedstatedir@%${prefix}/com%g
|
||||||
|
s%@localstatedir@%${prefix}/var%g
|
||||||
|
s%@libdir@%${exec_prefix}/lib%g
|
||||||
|
s%@includedir@%${prefix}/include%g
|
||||||
|
s%@oldincludedir@%/usr/include%g
|
||||||
|
s%@infodir@%${prefix}/info%g
|
||||||
|
s%@mandir@%${prefix}/man%g
|
||||||
|
s%@host@%i386-pc-msdosdjgpp%g
|
||||||
|
s%@host_alias@%i386-msdosdjgpp%g
|
||||||
|
s%@host_cpu@%i386%g
|
||||||
|
s%@host_vendor@%pc%g
|
||||||
|
s%@host_os@%msdosdjgpp%g
|
||||||
|
s%@CC@%gcc%g
|
||||||
|
s%@CPP@%gcc -E%g
|
||||||
|
s%@YACC@%bison -y%g
|
||||||
|
s%@RANLIB@%ranlib%g
|
||||||
|
s%@AR@%ar%g
|
||||||
|
s%@INSTALL_PROGRAM@%${INSTALL}%g
|
||||||
|
s%@INSTALL_DATA@%${INSTALL} -m 644%g
|
||||||
|
s%@SET_MAKE@%%g
|
||||||
|
s%@LIBOBJS@% crypt.o flock.o vsnprintf.o%g
|
||||||
|
s%@ALLOCA@%%g
|
||||||
|
s%@DEFAULT_KCODE@%%g
|
||||||
|
s%@EXEEXT@%.exe%g
|
||||||
|
s%@OBJEXT@%o%g
|
||||||
|
s%@XLDFLAGS@%%g
|
||||||
|
s%@DLDFLAGS@%%g
|
||||||
|
s%@STATIC@%%g
|
||||||
|
s%@CCDLFLAGS@%%g
|
||||||
|
s%@LDSHARED@%ld%g
|
||||||
|
s%@DLEXT@%o%g
|
||||||
|
s%@STRIP@%strip%g
|
||||||
|
s%@EXTSTATIC@%%g
|
||||||
|
s%@binsuffix@%.exe%g
|
||||||
|
s%@setup@%Setup.dj%g
|
||||||
|
s%@LIBRUBY@%libruby.a%g
|
||||||
|
s%@LIBRUBY_A@%libruby.a%g
|
||||||
|
s%@LIBRUBYARG@%libruby.a%g
|
||||||
|
s%@LIBRUBY_SO@%%g
|
||||||
|
s%@SOLIBS@%%g
|
||||||
|
s%@arch@%i386-msdosdjgpp%g
|
||||||
|
;s%/bin/rm%rm%
|
||||||
|
s%@DLDLIBS@%-lc%g
|
||||||
|
s%@PREP@%%
|
||||||
|
s%@RUBY_INSTALL_NAME@%ruby%g
|
||||||
|
s%@RUBY_SO_NAME@%%g
|
||||||
|
s%@arch@%i386-msdosdjgpp%g
|
||||||
|
s%@sitedir@%${prefix}/lib/ruby/site_ruby%g
|
||||||
|
s%@MINIRUBY@%./miniruby%
|
||||||
|
s%@archlib@%/usr/local/lib/ruby/i386-msdosdjgpp%
|
||||||
|
;s%|| true%%
|
||||||
|
;/\/dev\/null/ {
|
||||||
|
;s,/dev/null 2>&1, nul,
|
||||||
|
;s,2> /dev/null,,
|
||||||
|
;}
|
||||||
|
;/^config.status/ {
|
||||||
|
; N;N;N;N;N;d
|
||||||
|
;}
|
||||||
|
;s%y\.tab\.c%y_tab.c%
|
||||||
|
/^,THIS_IS_DUMMY_PATTERN_/i\
|
||||||
|
ac_given_srcdir=.
|
6
dln.c
6
dln.c
|
@ -14,6 +14,12 @@
|
||||||
#include "defines.h"
|
#include "defines.h"
|
||||||
#include "dln.h"
|
#include "dln.h"
|
||||||
|
|
||||||
|
#ifdef __CHECKER__
|
||||||
|
#undef HAVE_DLOPEN
|
||||||
|
#undef USE_DLN_A_OUT
|
||||||
|
#undef USE_DLN_DLOPEN
|
||||||
|
#endif
|
||||||
|
|
||||||
char *dln_argv0;
|
char *dln_argv0;
|
||||||
void rb_loaderror();
|
void rb_loaderror();
|
||||||
|
|
||||||
|
|
18
eval.c
18
eval.c
|
@ -1516,6 +1516,7 @@ rb_alias(klass, name, def)
|
||||||
print_undef(klass, def);
|
print_undef(klass, def);
|
||||||
}
|
}
|
||||||
body = orig->nd_body;
|
body = orig->nd_body;
|
||||||
|
orig->nd_cnt++;
|
||||||
if (nd_type(body) == NODE_FBODY) { /* was alias */
|
if (nd_type(body) == NODE_FBODY) { /* was alias */
|
||||||
def = body->nd_mid;
|
def = body->nd_mid;
|
||||||
origin = body->nd_orig;
|
origin = body->nd_orig;
|
||||||
|
@ -1793,7 +1794,7 @@ static VALUE
|
||||||
rb_obj_is_block(block)
|
rb_obj_is_block(block)
|
||||||
VALUE block;
|
VALUE block;
|
||||||
{
|
{
|
||||||
if (TYPE(block) == T_DATA && RDATA(block)->dfree == blk_free) {
|
if (TYPE(block) == T_DATA && RDATA(block)->dfree == (RUBY_DATA_FUNC)blk_free) {
|
||||||
return Qtrue;
|
return Qtrue;
|
||||||
}
|
}
|
||||||
return Qfalse;
|
return Qfalse;
|
||||||
|
@ -2792,7 +2793,7 @@ rb_eval(self, n)
|
||||||
frozen_class_p(ruby_class);
|
frozen_class_p(ruby_class);
|
||||||
body = search_method(ruby_class, node->nd_mid, &origin);
|
body = search_method(ruby_class, node->nd_mid, &origin);
|
||||||
if (body){
|
if (body){
|
||||||
if (RTEST(ruby_verbose) && ruby_class == origin) {
|
if (RTEST(ruby_verbose) && ruby_class == origin && body->nd_cnt == 0) {
|
||||||
rb_warning("discarding old %s", rb_id2name(node->nd_mid));
|
rb_warning("discarding old %s", rb_id2name(node->nd_mid));
|
||||||
}
|
}
|
||||||
rb_clear_cache_by_id(node->nd_mid);
|
rb_clear_cache_by_id(node->nd_mid);
|
||||||
|
@ -5932,6 +5933,12 @@ proc_call(proc, args)
|
||||||
volatile int orphan;
|
volatile int orphan;
|
||||||
volatile int safe = ruby_safe_level;
|
volatile int safe = ruby_safe_level;
|
||||||
|
|
||||||
|
if (rb_block_given_p()) {
|
||||||
|
rb_warning("block for %s#%s is useless",
|
||||||
|
rb_class2name(CLASS_OF(proc)),
|
||||||
|
rb_id2name(ruby_frame->last_func));
|
||||||
|
}
|
||||||
|
|
||||||
Data_Get_Struct(proc, struct BLOCK, data);
|
Data_Get_Struct(proc, struct BLOCK, data);
|
||||||
orphan = blk_orphan(data);
|
orphan = blk_orphan(data);
|
||||||
|
|
||||||
|
@ -6601,7 +6608,7 @@ static rb_thread_t
|
||||||
rb_thread_check(data)
|
rb_thread_check(data)
|
||||||
VALUE data;
|
VALUE data;
|
||||||
{
|
{
|
||||||
if (TYPE(data) != T_DATA || RDATA(data)->dfree != thread_free) {
|
if (TYPE(data) != T_DATA || RDATA(data)->dfree != (RUBY_DATA_FUNC)thread_free) {
|
||||||
rb_raise(rb_eTypeError, "wrong argument type %s (expected Thread)",
|
rb_raise(rb_eTypeError, "wrong argument type %s (expected Thread)",
|
||||||
rb_class2name(CLASS_OF(data)));
|
rb_class2name(CLASS_OF(data)));
|
||||||
}
|
}
|
||||||
|
@ -7089,7 +7096,9 @@ rb_thread_wait_fd(fd)
|
||||||
int fd;
|
int fd;
|
||||||
{
|
{
|
||||||
if (curr_thread == curr_thread->next) return;
|
if (curr_thread == curr_thread->next) return;
|
||||||
|
#if 0
|
||||||
if (ruby_in_compile) return;
|
if (ruby_in_compile) return;
|
||||||
|
#endif
|
||||||
|
|
||||||
curr_thread->status = THREAD_STOPPED;
|
curr_thread->status = THREAD_STOPPED;
|
||||||
curr_thread->fd = fd;
|
curr_thread->fd = fd;
|
||||||
|
@ -7101,7 +7110,7 @@ int
|
||||||
rb_thread_fd_writable(fd)
|
rb_thread_fd_writable(fd)
|
||||||
int fd;
|
int fd;
|
||||||
{
|
{
|
||||||
if (curr_thread == curr_thread->next) return;
|
if (curr_thread == curr_thread->next) return Qtrue;
|
||||||
|
|
||||||
curr_thread->status = THREAD_STOPPED;
|
curr_thread->status = THREAD_STOPPED;
|
||||||
FD_ZERO(&curr_thread->readfds);
|
FD_ZERO(&curr_thread->readfds);
|
||||||
|
@ -7111,6 +7120,7 @@ rb_thread_fd_writable(fd)
|
||||||
curr_thread->fd = fd+1;
|
curr_thread->fd = fd+1;
|
||||||
curr_thread->wait_for = WAIT_SELECT;
|
curr_thread->wait_for = WAIT_SELECT;
|
||||||
rb_thread_schedule();
|
rb_thread_schedule();
|
||||||
|
return Qfalse;
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
|
|
6
file.c
6
file.c
|
@ -1022,7 +1022,7 @@ rb_file_chown(obj, owner, group)
|
||||||
|
|
||||||
struct timeval rb_time_timeval();
|
struct timeval rb_time_timeval();
|
||||||
|
|
||||||
#ifdef HAVE_UTIMES
|
#if defined(HAVE_UTIMES) && !defined(__CHECKER__)
|
||||||
|
|
||||||
static void
|
static void
|
||||||
utime_internal(path, tvp)
|
utime_internal(path, tvp)
|
||||||
|
@ -1504,7 +1504,7 @@ rb_file_truncate(obj, len)
|
||||||
# define LOCK_UN 8
|
# define LOCK_UN 8
|
||||||
# endif
|
# endif
|
||||||
|
|
||||||
#if defined(EWOULDBLOCK)
|
#if defined(EWOULDBLOCK) && 0
|
||||||
static int
|
static int
|
||||||
rb_thread_flock(fd, op, fptr)
|
rb_thread_flock(fd, op, fptr)
|
||||||
int fd, op;
|
int fd, op;
|
||||||
|
@ -1535,6 +1535,7 @@ rb_file_flock(obj, operation)
|
||||||
VALUE obj;
|
VALUE obj;
|
||||||
VALUE operation;
|
VALUE operation;
|
||||||
{
|
{
|
||||||
|
#ifndef __CHECKER__
|
||||||
OpenFile *fptr;
|
OpenFile *fptr;
|
||||||
|
|
||||||
rb_secure(2);
|
rb_secure(2);
|
||||||
|
@ -1551,6 +1552,7 @@ rb_file_flock(obj, operation)
|
||||||
#endif
|
#endif
|
||||||
rb_sys_fail(fptr->path);
|
rb_sys_fail(fptr->path);
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
return INT2FIX(0);
|
return INT2FIX(0);
|
||||||
}
|
}
|
||||||
#undef flock
|
#undef flock
|
||||||
|
|
10
gc.c
10
gc.c
|
@ -278,15 +278,11 @@ rb_newobj()
|
||||||
{
|
{
|
||||||
VALUE obj;
|
VALUE obj;
|
||||||
|
|
||||||
if (freelist) {
|
if (!freelist) rb_gc();
|
||||||
retry:
|
|
||||||
obj = (VALUE)freelist;
|
obj = (VALUE)freelist;
|
||||||
freelist = freelist->as.free.next;
|
freelist = freelist->as.free.next;
|
||||||
return obj;
|
return obj;
|
||||||
}
|
|
||||||
rb_gc();
|
|
||||||
|
|
||||||
goto retry;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
VALUE
|
VALUE
|
||||||
|
@ -649,8 +645,6 @@ rb_gc_mark(ptr)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#define MIN_FREE_OBJ 512
|
|
||||||
|
|
||||||
static void obj_free _((VALUE));
|
static void obj_free _((VALUE));
|
||||||
|
|
||||||
static void
|
static void
|
||||||
|
|
26
hash.c
26
hash.c
|
@ -456,7 +456,16 @@ rb_hash_delete_if(hash)
|
||||||
{
|
{
|
||||||
rb_hash_modify(hash);
|
rb_hash_modify(hash);
|
||||||
rb_hash_foreach(hash, delete_if_i, 0);
|
rb_hash_foreach(hash, delete_if_i, 0);
|
||||||
|
return hash;
|
||||||
|
}
|
||||||
|
|
||||||
|
VALUE
|
||||||
|
rb_hash_reject_bang(hash)
|
||||||
|
VALUE hash;
|
||||||
|
{
|
||||||
|
int n = RHASH(hash)->tbl->num_entries;
|
||||||
|
rb_hash_delete_if(hash);
|
||||||
|
if (n == RHASH(hash)->tbl->num_entries) return Qnil;
|
||||||
return hash;
|
return hash;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1211,11 +1220,11 @@ env_each(hash)
|
||||||
}
|
}
|
||||||
|
|
||||||
static VALUE
|
static VALUE
|
||||||
env_delete_if()
|
env_reject_bang()
|
||||||
{
|
{
|
||||||
volatile VALUE keys;
|
volatile VALUE keys;
|
||||||
VALUE *ptr;
|
VALUE *ptr;
|
||||||
int len;
|
int len, del = 0;
|
||||||
|
|
||||||
rb_secure(4);
|
rb_secure(4);
|
||||||
keys = env_keys();
|
keys = env_keys();
|
||||||
|
@ -1227,10 +1236,19 @@ env_delete_if()
|
||||||
if (!NIL_P(val)) {
|
if (!NIL_P(val)) {
|
||||||
if (RTEST(rb_yield(rb_assoc_new(*ptr, val)))) {
|
if (RTEST(rb_yield(rb_assoc_new(*ptr, val)))) {
|
||||||
env_delete(Qnil, *ptr);
|
env_delete(Qnil, *ptr);
|
||||||
|
del++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
ptr++;
|
ptr++;
|
||||||
}
|
}
|
||||||
|
if (del == 0) return Qnil;
|
||||||
|
return envtbl;
|
||||||
|
}
|
||||||
|
|
||||||
|
static VALUE
|
||||||
|
env_delete_if()
|
||||||
|
{
|
||||||
|
env_reject_bang();
|
||||||
return envtbl;
|
return envtbl;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1425,8 +1443,8 @@ Init_Hash()
|
||||||
rb_define_method(rb_cHash,"shift", rb_hash_shift, 0);
|
rb_define_method(rb_cHash,"shift", rb_hash_shift, 0);
|
||||||
rb_define_method(rb_cHash,"delete", rb_hash_delete, 1);
|
rb_define_method(rb_cHash,"delete", rb_hash_delete, 1);
|
||||||
rb_define_method(rb_cHash,"delete_if", rb_hash_delete_if, 0);
|
rb_define_method(rb_cHash,"delete_if", rb_hash_delete_if, 0);
|
||||||
rb_define_method(rb_cHash,"reject!", rb_hash_delete_if, 0);
|
|
||||||
rb_define_method(rb_cHash,"reject", rb_hash_reject, 0);
|
rb_define_method(rb_cHash,"reject", rb_hash_reject, 0);
|
||||||
|
rb_define_method(rb_cHash,"reject!", rb_hash_reject_bang, 0);
|
||||||
rb_define_method(rb_cHash,"clear", rb_hash_clear, 0);
|
rb_define_method(rb_cHash,"clear", rb_hash_clear, 0);
|
||||||
rb_define_method(rb_cHash,"invert", rb_hash_invert, 0);
|
rb_define_method(rb_cHash,"invert", rb_hash_invert, 0);
|
||||||
rb_define_method(rb_cHash,"update", rb_hash_update, 1);
|
rb_define_method(rb_cHash,"update", rb_hash_update, 1);
|
||||||
|
@ -1454,8 +1472,8 @@ Init_Hash()
|
||||||
rb_define_singleton_method(envtbl,"each_value", env_each_value, 0);
|
rb_define_singleton_method(envtbl,"each_value", env_each_value, 0);
|
||||||
rb_define_singleton_method(envtbl,"delete", env_delete_m, 1);
|
rb_define_singleton_method(envtbl,"delete", env_delete_m, 1);
|
||||||
rb_define_singleton_method(envtbl,"delete_if", env_delete_if, 0);
|
rb_define_singleton_method(envtbl,"delete_if", env_delete_if, 0);
|
||||||
rb_define_singleton_method(envtbl,"reject!", env_delete_if, 0);
|
|
||||||
rb_define_singleton_method(envtbl,"reject", env_reject, 0);
|
rb_define_singleton_method(envtbl,"reject", env_reject, 0);
|
||||||
|
rb_define_singleton_method(envtbl,"reject!", env_reject_bang, 0);
|
||||||
rb_define_singleton_method(envtbl,"to_s", env_to_s, 0);
|
rb_define_singleton_method(envtbl,"to_s", env_to_s, 0);
|
||||||
rb_define_singleton_method(envtbl,"rehash", env_none, 0);
|
rb_define_singleton_method(envtbl,"rehash", env_none, 0);
|
||||||
rb_define_singleton_method(envtbl,"to_a", env_to_a, 0);
|
rb_define_singleton_method(envtbl,"to_a", env_to_a, 0);
|
||||||
|
|
4
io.c
4
io.c
|
@ -1450,8 +1450,9 @@ pipe_del_fptr(fptr)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if defined (NT) || defined(DJGPP) || defined(__CYGWIN__) || defined(__human68k__)
|
||||||
static void
|
static void
|
||||||
pipe_atexit()
|
pipe_atexit _((void))
|
||||||
{
|
{
|
||||||
struct pipe_list *list = pipe_list;
|
struct pipe_list *list = pipe_list;
|
||||||
struct pipe_list *tmp;
|
struct pipe_list *tmp;
|
||||||
|
@ -1462,6 +1463,7 @@ pipe_atexit()
|
||||||
list = tmp;
|
list = tmp;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
static void
|
static void
|
||||||
pipe_finalize(fptr)
|
pipe_finalize(fptr)
|
||||||
|
|
|
@ -125,12 +125,12 @@ class Complex < Numeric
|
||||||
|
|
||||||
def / (other)
|
def / (other)
|
||||||
if other.kind_of?(Complex)
|
if other.kind_of?(Complex)
|
||||||
self * other.conjugate / other.abs2
|
self*other.conjugate/other.abs2
|
||||||
elsif Complex.generic?(other)
|
elsif Complex.generic?(other)
|
||||||
Complex(@real / other, @image / other)
|
Complex(@real/other, @image/other)
|
||||||
else
|
else
|
||||||
x , y = other.coerce(self)
|
x, y = other.coerce(self)
|
||||||
x / y
|
x/y
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -171,8 +171,8 @@ class Complex < Numeric
|
||||||
r, theta = polar
|
r, theta = polar
|
||||||
Complex.polar(r.power!(other), theta * other)
|
Complex.polar(r.power!(other), theta * other)
|
||||||
else
|
else
|
||||||
x , y = other.coerce(self)
|
x, y = other.coerce(self)
|
||||||
x / y
|
x/y
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
@ -10,7 +10,7 @@ SCRIPT_LINES__ = {} unless defined? SCRIPT_LINES__
|
||||||
require 'tracer'
|
require 'tracer'
|
||||||
class Tracer
|
class Tracer
|
||||||
def Tracer.trace_func(*vars)
|
def Tracer.trace_func(*vars)
|
||||||
Single.trace_func *vars
|
Single.trace_func(*vars)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -216,7 +216,7 @@ class DEBUGGER__
|
||||||
@frames[0] = [binding, file, line, id]
|
@frames[0] = [binding, file, line, id]
|
||||||
display_expressions(binding)
|
display_expressions(binding)
|
||||||
while input = readline("(rdb:%d) "%thnum(), true)
|
while input = readline("(rdb:%d) "%thnum(), true)
|
||||||
catch (:debug_error) do
|
catch(:debug_error) do
|
||||||
if input == ""
|
if input == ""
|
||||||
input = DEBUG_LAST_CMD[0]
|
input = DEBUG_LAST_CMD[0]
|
||||||
stdout.print input, "\n"
|
stdout.print input, "\n"
|
||||||
|
|
|
@ -21,13 +21,13 @@ if $DEBUG
|
||||||
end
|
end
|
||||||
|
|
||||||
def Thread.exclusive
|
def Thread.exclusive
|
||||||
|
_old = Thread.critical
|
||||||
begin
|
begin
|
||||||
Thread.critical = true
|
Thread.critical = true
|
||||||
r = yield
|
return yield
|
||||||
ensure
|
ensure
|
||||||
Thread.critical = false
|
Thread.critical = _old
|
||||||
end
|
end
|
||||||
r
|
|
||||||
end
|
end
|
||||||
|
|
||||||
class Mutex
|
class Mutex
|
||||||
|
|
|
@ -574,7 +574,7 @@ void
|
||||||
rb_syswait(pid)
|
rb_syswait(pid)
|
||||||
int pid;
|
int pid;
|
||||||
{
|
{
|
||||||
RETSIGTYPE (*hfunc)(), (*qfunc)(), (*ifunc)();
|
RETSIGTYPE (*hfunc)_((int)), (*qfunc)_((int)), (*ifunc)_((int));
|
||||||
int status;
|
int status;
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
|
@ -817,7 +817,7 @@ static VALUE
|
||||||
proc_getpgid(obj, pid)
|
proc_getpgid(obj, pid)
|
||||||
VALUE obj, pid;
|
VALUE obj, pid;
|
||||||
{
|
{
|
||||||
#ifdef HAVE_GETPGID
|
#if defined(HAVE_GETPGID) && !defined(__CHECKER__)
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
i = getpgid(NUM2INT(pid));
|
i = getpgid(NUM2INT(pid));
|
||||||
|
|
6
regex.c
6
regex.c
|
@ -3964,7 +3964,7 @@ re_match(bufp, string_arg, size, pos, regs)
|
||||||
because didn't fail. Also remove the register information
|
because didn't fail. Also remove the register information
|
||||||
put on by the on_failure_jump. */
|
put on by the on_failure_jump. */
|
||||||
case finalize_jump:
|
case finalize_jump:
|
||||||
if (stackp[-2] == d) {
|
if (stackp > stackb && stackp[-2] == d) {
|
||||||
p = stackp[-3];
|
p = stackp[-3];
|
||||||
POP_FAILURE_POINT();
|
POP_FAILURE_POINT();
|
||||||
continue;
|
continue;
|
||||||
|
@ -3981,7 +3981,7 @@ re_match(bufp, string_arg, size, pos, regs)
|
||||||
case jump:
|
case jump:
|
||||||
nofinalize:
|
nofinalize:
|
||||||
EXTRACT_NUMBER_AND_INCR(mcnt, p);
|
EXTRACT_NUMBER_AND_INCR(mcnt, p);
|
||||||
if (mcnt < 0 && stackp > stackb && stackp[-2] == d) /* avoid infinit loop */
|
if (mcnt < 0 && stackp > stackb && stackp[-2] == d) /* avoid infinite loop */
|
||||||
goto fail;
|
goto fail;
|
||||||
p += mcnt;
|
p += mcnt;
|
||||||
continue;
|
continue;
|
||||||
|
@ -4072,7 +4072,7 @@ re_match(bufp, string_arg, size, pos, regs)
|
||||||
case finalize_push:
|
case finalize_push:
|
||||||
POP_FAILURE_POINT();
|
POP_FAILURE_POINT();
|
||||||
EXTRACT_NUMBER_AND_INCR(mcnt, p);
|
EXTRACT_NUMBER_AND_INCR(mcnt, p);
|
||||||
if (mcnt < 0 && stackp[-2] == d) /* avoid infinit loop */
|
if (mcnt < 0 && stackp > stackb && stackp[-2] == d) /* avoid infinite loop */
|
||||||
goto fail;
|
goto fail;
|
||||||
PUSH_FAILURE_POINT(p + mcnt, d);
|
PUSH_FAILURE_POINT(p + mcnt, d);
|
||||||
stackp[-1] = NON_GREEDY;
|
stackp[-1] = NON_GREEDY;
|
||||||
|
|
11
signal.c
11
signal.c
|
@ -282,7 +282,7 @@ rb_gc_mark_trap_list()
|
||||||
void
|
void
|
||||||
posix_signal(signum, handler)
|
posix_signal(signum, handler)
|
||||||
int signum;
|
int signum;
|
||||||
RETSIGTYPE (*handler)();
|
RETSIGTYPE (*handler)_((int));
|
||||||
{
|
{
|
||||||
struct sigaction sigact;
|
struct sigaction sigact;
|
||||||
|
|
||||||
|
@ -336,6 +336,7 @@ signal_exec(sig)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static RETSIGTYPE sighandle _((int));
|
||||||
static RETSIGTYPE
|
static RETSIGTYPE
|
||||||
sighandle(sig)
|
sighandle(sig)
|
||||||
int sig;
|
int sig;
|
||||||
|
@ -360,6 +361,7 @@ sighandle(sig)
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef SIGBUS
|
#ifdef SIGBUS
|
||||||
|
static RETSIGTYPE sigbus _((int));
|
||||||
static RETSIGTYPE
|
static RETSIGTYPE
|
||||||
sigbus(sig)
|
sigbus(sig)
|
||||||
int sig;
|
int sig;
|
||||||
|
@ -369,6 +371,7 @@ sigbus(sig)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef SIGSEGV
|
#ifdef SIGSEGV
|
||||||
|
static RETSIGTYPE sigsegv _((int));
|
||||||
static RETSIGTYPE
|
static RETSIGTYPE
|
||||||
sigsegv(sig)
|
sigsegv(sig)
|
||||||
int sig;
|
int sig;
|
||||||
|
@ -420,8 +423,10 @@ static sigset_t trap_last_mask;
|
||||||
static int trap_last_mask;
|
static int trap_last_mask;
|
||||||
# endif
|
# endif
|
||||||
|
|
||||||
|
static RETSIGTYPE sigexit _((int));
|
||||||
static RETSIGTYPE
|
static RETSIGTYPE
|
||||||
sigexit()
|
sigexit(sig)
|
||||||
|
int sig;
|
||||||
{
|
{
|
||||||
rb_exit(0);
|
rb_exit(0);
|
||||||
}
|
}
|
||||||
|
@ -430,7 +435,7 @@ static VALUE
|
||||||
trap(arg)
|
trap(arg)
|
||||||
struct trap_arg *arg;
|
struct trap_arg *arg;
|
||||||
{
|
{
|
||||||
RETSIGTYPE (*func)();
|
RETSIGTYPE (*func)_((int));
|
||||||
VALUE command, old;
|
VALUE command, old;
|
||||||
int sig;
|
int sig;
|
||||||
char *s;
|
char *s;
|
||||||
|
|
48
string.c
48
string.c
|
@ -97,7 +97,12 @@ rb_str_new4(orig)
|
||||||
VALUE orig;
|
VALUE orig;
|
||||||
{
|
{
|
||||||
if (OBJ_FROZEN(orig)) return orig;
|
if (OBJ_FROZEN(orig)) return orig;
|
||||||
if (RSTRING(orig)->orig && !FL_TEST(orig, STR_NO_ORIG)) {
|
if (RSTRING(orig)->orig) {
|
||||||
|
if (FL_TEST(orig, STR_NO_ORIG)) {
|
||||||
|
orig = rb_str_new(RSTRING(orig)->ptr, RSTRING(orig)->len);
|
||||||
|
OBJ_FREEZE(orig);
|
||||||
|
return orig;
|
||||||
|
}
|
||||||
OBJ_FREEZE(RSTRING(orig)->orig);
|
OBJ_FREEZE(RSTRING(orig)->orig);
|
||||||
return RSTRING(orig)->orig;
|
return RSTRING(orig)->orig;
|
||||||
}
|
}
|
||||||
|
@ -349,24 +354,32 @@ rb_str_substr(str, beg, len)
|
||||||
return str2;
|
return str2;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static int
|
||||||
|
str_independent(str)
|
||||||
|
VALUE str;
|
||||||
|
{
|
||||||
|
if (OBJ_FROZEN(str)) rb_error_frozen("string");
|
||||||
|
if (!OBJ_TAINTED(str) && rb_safe_level() >= 4)
|
||||||
|
rb_raise(rb_eSecurityError, "Insecure: can't modify string");
|
||||||
|
if (!RSTRING(str)->orig || FL_TEST(str, STR_NO_ORIG)) return 1;
|
||||||
|
if (TYPE(RSTRING(str)->orig) != T_STRING) rb_bug("non string str->orig");
|
||||||
|
RSTRING(str)->orig = 0;
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
rb_str_modify(str)
|
rb_str_modify(str)
|
||||||
VALUE str;
|
VALUE str;
|
||||||
{
|
{
|
||||||
char *ptr;
|
char *ptr;
|
||||||
|
|
||||||
if (OBJ_FROZEN(str)) rb_error_frozen("string");
|
if (str_independent(str)) return;
|
||||||
if (!OBJ_TAINTED(str) && rb_safe_level() >= 4)
|
|
||||||
rb_raise(rb_eSecurityError, "Insecure: can't modify string");
|
|
||||||
if (!RSTRING(str)->orig || FL_TEST(str, STR_NO_ORIG)) return;
|
|
||||||
if (TYPE(RSTRING(str)->orig) != T_STRING) abort();
|
|
||||||
ptr = ALLOC_N(char, RSTRING(str)->len+1);
|
ptr = ALLOC_N(char, RSTRING(str)->len+1);
|
||||||
if (RSTRING(str)->ptr) {
|
if (RSTRING(str)->ptr) {
|
||||||
memcpy(ptr, RSTRING(str)->ptr, RSTRING(str)->len);
|
memcpy(ptr, RSTRING(str)->ptr, RSTRING(str)->len);
|
||||||
}
|
}
|
||||||
ptr[RSTRING(str)->len] = 0;
|
ptr[RSTRING(str)->len] = 0;
|
||||||
RSTRING(str)->ptr = ptr;
|
RSTRING(str)->ptr = ptr;
|
||||||
RSTRING(str)->orig = 0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
VALUE
|
VALUE
|
||||||
|
@ -1250,9 +1263,10 @@ str_gsub(argc, argv, str, bang)
|
||||||
}
|
}
|
||||||
rb_backref_set(match);
|
rb_backref_set(match);
|
||||||
if (bang) {
|
if (bang) {
|
||||||
rb_str_modify(str);
|
if (str_independent(str)) {
|
||||||
free(RSTRING(str)->ptr);
|
free(RSTRING(str)->ptr);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
else {
|
else {
|
||||||
NEWOBJ(dup, struct RString);
|
NEWOBJ(dup, struct RString);
|
||||||
OBJSETUP(dup, rb_cString, T_STRING);
|
OBJSETUP(dup, rb_cString, T_STRING);
|
||||||
|
@ -1325,13 +1339,12 @@ rb_f_sub(argc, argv)
|
||||||
int argc;
|
int argc;
|
||||||
VALUE *argv;
|
VALUE *argv;
|
||||||
{
|
{
|
||||||
VALUE str = uscore_get();
|
VALUE str = rb_str_dup(uscore_get());
|
||||||
VALUE dup = rb_str_dup(str);
|
|
||||||
|
|
||||||
if (NIL_P(rb_str_sub_bang(argc, argv, dup)))
|
if (NIL_P(rb_str_sub_bang(argc, argv, str)))
|
||||||
|
return str;
|
||||||
|
rb_lastline_set(str);
|
||||||
return str;
|
return str;
|
||||||
rb_lastline_set(dup);
|
|
||||||
return dup;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static VALUE
|
static VALUE
|
||||||
|
@ -1347,13 +1360,12 @@ rb_f_gsub(argc, argv)
|
||||||
int argc;
|
int argc;
|
||||||
VALUE *argv;
|
VALUE *argv;
|
||||||
{
|
{
|
||||||
VALUE str = uscore_get();
|
VALUE str = rb_str_dup(uscore_get());
|
||||||
VALUE dup = rb_str_dup(str);
|
|
||||||
|
|
||||||
if (NIL_P(rb_str_gsub_bang(argc, argv, dup)))
|
if (NIL_P(rb_str_gsub_bang(argc, argv, str)))
|
||||||
|
return str;
|
||||||
|
rb_lastline_set(str);
|
||||||
return str;
|
return str;
|
||||||
rb_lastline_set(dup);
|
|
||||||
return dup;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static VALUE
|
static VALUE
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
#define RUBY_VERSION "1.5.5"
|
#define RUBY_VERSION "1.5.5"
|
||||||
#define RUBY_RELEASE_DATE "2000-08-05"
|
#define RUBY_RELEASE_DATE "2000-08-07"
|
||||||
#define RUBY_VERSION_CODE 155
|
#define RUBY_VERSION_CODE 155
|
||||||
#define RUBY_RELEASE_CODE 20000805
|
#define RUBY_RELEASE_CODE 20000807
|
||||||
|
|
|
@ -29,12 +29,12 @@ AUTOCONF = autoconf
|
||||||
|
|
||||||
|
|
||||||
prefix = /usr
|
prefix = /usr
|
||||||
CFLAGS = -nologo -DNT=1 -Zi -O2b2x -G5
|
CFLAGS = -nologo -DNT=1 -MDd -Zi
|
||||||
CPPFLAGS = -I$(srcdir) -I$(srcdir)/missing
|
CPPFLAGS = -I$(srcdir) -I$(srcdir)/missing
|
||||||
LDFLAGS = $(CFLAGS) -Fm
|
LDFLAGS = $(CFLAGS) -Fm
|
||||||
XLDFLAGS =
|
XLDFLAGS =
|
||||||
#EXTLIBS =
|
#EXTLIBS =
|
||||||
LIBS = user32.lib advapi32.lib wsock32.lib $(EXTLIBS)
|
LIBS = RubyCRTD.lib user32.lib advapi32.lib ws2_32.lib $(EXTLIBS)
|
||||||
MISSING = crypt.obj alloca.obj win32.obj isinf.obj isnan.obj
|
MISSING = crypt.obj alloca.obj win32.obj isinf.obj isnan.obj
|
||||||
LDSHARED =
|
LDSHARED =
|
||||||
DLDFLAGS =
|
DLDFLAGS =
|
||||||
|
|
|
@ -1,12 +1,12 @@
|
||||||
s%@SHELL@%%g
|
s%@SHELL@%%g
|
||||||
s%@CFLAGS@%-nologo -DNT=1 -Zi -O2b2x -G5%g
|
s%@CFLAGS@%-nologo -DNT=1 -MDd -Zi%g
|
||||||
s%@CPPFLAGS@%%g
|
s%@CPPFLAGS@%%g
|
||||||
s%@CXXFLAGS@%%g
|
s%@CXXFLAGS@%%g
|
||||||
s%@FFLAGS@%%g
|
s%@FFLAGS@%%g
|
||||||
s%@DEFS@%
|
s%@DEFS@%
|
||||||
-DUSE_THREAD -DSIZEOF_INT=4 -DSIZEOF_SHORT=2 -DSIZEOF_LONG=4 -DSIZEOF_VOIDP=4 -DSIZEOF_FLOAT=4 -DSIZEOF_DOUBLE=8 -DHAVE_PROTOTYPES=1 -DHAVE_STDARG_PROTOTYPES=1 -DHAVE_STDLIB_H=1 -DHAVE_LIMITS_H=1 -DHAVE_FCNTL_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_ST_RDEV=1 -DGETGROUPS_T=int -DRETSIGTYPE=void -DHAVE_ALLOCA=1 -DHAVE_FMOD=1 -DHAVE_WAITPID=1 -DHAVE_GETCWD=1 -DHAVE_CHSIZE=1 -DHAVE_GETGROUPS=1 -DHAVE_GETLOGIN=1 -DRSHIFT=\(x,y\)\ \(\(x\)\>\>y\) -DFILE_COUNT=_cnt -DDLEXT=\".so\" -DDLEXT2=\".dll\" -DRUBY_PLATFORM=\"i586-mswin32\" %g
|
-DUSE_THREAD -DSIZEOF_INT=4 -DSIZEOF_SHORT=2 -DSIZEOF_LONG=4 -DSIZEOF_VOIDP=4 -DSIZEOF_FLOAT=4 -DSIZEOF_DOUBLE=8 -DHAVE_PROTOTYPES=1 -DHAVE_STDARG_PROTOTYPES=1 -DHAVE_STDLIB_H=1 -DHAVE_LIMITS_H=1 -DHAVE_FCNTL_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_ST_RDEV=1 -DGETGROUPS_T=int -DRETSIGTYPE=void -DHAVE_ALLOCA=1 -DHAVE_FMOD=1 -DHAVE_WAITPID=1 -DHAVE_GETCWD=1 -DHAVE_CHSIZE=1 -DHAVE_GETGROUPS=1 -DHAVE_GETLOGIN=1 -DRSHIFT=\(x,y\)\ \(\(x\)\>\>y\) -DFILE_COUNT=_cnt -DDLEXT=\".so\" -DDLEXT2=\".dll\" -DRUBY_PLATFORM=\"i586-mswin32\" %g
|
||||||
s%@LDFLAGS@%-nologo -Ox%g
|
s%@LDFLAGS@%-nologo -MDd -Zi%g
|
||||||
s%@LIBS@%user32.lib advapi32.lib wsock32.lib%g
|
s%@LIBS@%RubyCRTD.lib user32.lib advapi32.lib ws2_32.lib%g
|
||||||
s%@exec_prefix@%${prefix}%g
|
s%@exec_prefix@%${prefix}%g
|
||||||
s%@prefix@%%g
|
s%@prefix@%%g
|
||||||
s%@program_transform_name@%s,x,x,%g
|
s%@program_transform_name@%s,x,x,%g
|
||||||
|
@ -40,7 +40,7 @@ s%@DEFAULT_KCODE@%%g
|
||||||
s%@EXEEXT@%.exe%g
|
s%@EXEEXT@%.exe%g
|
||||||
s%@OBJEXT@%obj%g
|
s%@OBJEXT@%obj%g
|
||||||
s%@XLDFLAGS@%%g
|
s%@XLDFLAGS@%%g
|
||||||
s%@DLDFLAGS@%%g
|
s%@DLDFLAGS@%-MDd -Zi%g
|
||||||
s%@STATIC@%%g
|
s%@STATIC@%%g
|
||||||
s%@CCDLFLAGS@%-DIMPORT%g
|
s%@CCDLFLAGS@%-DIMPORT%g
|
||||||
s%@LDSHARED@%cl -LD%g
|
s%@LDSHARED@%cl -LD%g
|
||||||
|
@ -59,10 +59,10 @@ s%@LIBRUBY_ALIASES@%%g
|
||||||
s%@LIBRUBY@%$(RUBY_SO_NAME).lib%g
|
s%@LIBRUBY@%$(RUBY_SO_NAME).lib%g
|
||||||
s%@LIBRUBYARG@%$(topdir)/$(RUBY_SO_NAME).lib%g
|
s%@LIBRUBYARG@%$(topdir)/$(RUBY_SO_NAME).lib%g
|
||||||
s%@SOLIBS@%%g
|
s%@SOLIBS@%%g
|
||||||
s%@DLDLIBS@%%g
|
s%@DLDLIBS@%RubyCRTD.lib%g
|
||||||
s%@arch@%i586-mswin32%g
|
s%@arch@%i586-mswin32%g
|
||||||
s%@sitedir@%${prefix}/lib/ruby/site_ruby%g
|
s%@sitedir@%${prefix}/lib/ruby/site_ruby%g
|
||||||
s%@configure_args@%--with-make-prog=nmake%g
|
s%@configure_args@%--with-make-prog=nmake --with-tcllib=tcl83 --with-tklib=tk83%g
|
||||||
s%@configure_input@%$configure_input%g
|
s%@configure_input@%$configure_input%g
|
||||||
s%@srcdir@%$srcdir%g
|
s%@srcdir@%$srcdir%g
|
||||||
s%@top_srcdir@%$top_srcdir%g
|
s%@top_srcdir@%$top_srcdir%g
|
||||||
|
|
|
@ -15,11 +15,11 @@ all: Makefile
|
||||||
all:; @echo type `nmake' to make ruby for mswin32.
|
all:; @echo type `nmake' to make ruby for mswin32.
|
||||||
|
|
||||||
Makefile:
|
Makefile:
|
||||||
@echo> $@ ### makefile for ruby $(OS) ###
|
@echo ### makefile for ruby $(OS) ###> $@
|
||||||
@echo>> $@ srcdir = $(srcdir:\=/)
|
@echo srcdir = $(srcdir:\=/)>> $@
|
||||||
@echo>> $@ RUBY_INSTALL_NAME = ruby
|
@echo RUBY_INSTALL_NAME = ruby>> $@
|
||||||
@echo>> $@ RUBY_SO_NAME = $$(RUBY_INSTALL_NAME).$(OS)
|
@echo RUBY_SO_NAME = $$(RUBY_INSTALL_NAME).$(OS)>> $@
|
||||||
@echo>> $@ !INCLUDE $$(srcdir)/win32/Makefile.sub
|
@echo !INCLUDE $$(srcdir)/win32/Makefile.sub>> $@
|
||||||
|
|
||||||
config.h config.status: $(srcdir)/win32/$$@.in
|
config.h config.status: $(srcdir)/win32/$$@.in
|
||||||
@copy $(srcdir:/=\)\win32\$@.in $@ > nul
|
@copy $(srcdir:/=\)\win32\$@.in $@ > nul
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue