Граф коммитов

482 Коммитов

Автор SHA1 Сообщение Дата
nobu 0e62875433 * configure.in (darwin): prohibit loading extension libraries to
miniruby.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@12531 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-06-12 21:04:07 +00:00
nobu 2b592580bf * include/ruby: moved public headers.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@12501 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-06-10 03:06:15 +00:00
nobu 1a89cc308d * configure.in, defines.h, eval_load.c (rb_feature_p, rb_provided,
search_required, rb_require_safe), ext/extmk.rb: Fix
  a bug where a statically linked extension cannot be autoloaded.
  [ruby-dev:30023] / [ruby-dev:30239]

* thread.c: added an internal class, Barrier.

* yarvcore.h (struct rb_vm_struct): moved loading_table from global.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@12246 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-05-03 13:19:11 +00:00
nobu 22826be640 * configure.in (LIBPATHFLAG, RPATHFLAG): no needs to be quoted,
it is done by libpathflag in mkmf.rb.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@12205 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-04-20 07:04:35 +00:00
nobu 3c36d2d3c1 * configure.in (Makefile): remove $U for automake from MISSING.
[ruby-talk:248171]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@12190 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-04-17 17:29:39 +00:00
nobu 5f8b25745b * configure.in (LDFLAGS): prepend -L. instead appending it to
XLDFLAGS.  [ruby-core:10933]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@12189 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-04-17 17:17:15 +00:00
usa 7240868424 * missing/{strlcat,strlcpy}.c, missing.h: new functions.
* LEGAL: add copyright notice about above files.

* configure.in: check whether strlcat and strlcpy are exist or not.

* {bcc32,win32,wince}/Makefile.sub: use above files.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@12100 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-03-19 08:01:40 +00:00
eban 4b285e2216 * configure.in (ac_cv_func_fcntl): fcntl support for MinGW.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@11942 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-02-28 12:47:01 +00:00
nobu f9b349adb5 * Makefile.in, configure.in, */Makefile.sub (THREAD_MODEL): system
specific thread model.

* compile.h, regint.h, vm.h, array.c: removed unnecessary #include.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@11928 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-02-28 01:33:57 +00:00
eban 7cd86a19c3 * configure.in (--enable-auto-image-base): avoid the neccessity to
rebase the shared libs as much as possible;
  submitted by Corinna Vinschen <spam at vinschen.de> in
  [ruby-talk:240964].


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@11917 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-02-27 13:28:48 +00:00
eban ce062c1545 * util.c (__crt0_glob_function): use ruby_glob() instead of rb_globi().
* configure.in (ac_cv_func_setrlimit): workaround for djgpp.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@11916 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-02-27 13:27:14 +00:00
nobu 128cc954d0 * configure.in (RUBY_REPLACE_TYPE): cache convertible type info.
* intern.h (rb_detach_process): use rb_pid_t instead of pid_t.

* ruby.h (PIDT2NUM, NUM2PIDT, UIDT2NUM, NUM2UIDT, GIDT2NUM, NUM2GIDT):
  defaulted to conversion using long.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@11786 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-02-19 13:16:12 +00:00
nobu bf6efa76c0 * configure.in (pid_t, uid_t, gid_t): check if defined.
* intern.h, process.c, rubyio.h, ext/etc/etc.c, ext/pty/pty.c: use
  rb_{pid,uid,gid}_t instead of plain int.  [ruby-dev:30376]

* ext/etc/extconf.rb (PIDT2NUM, NUM2PIDT, UIDT2NUM, NUM2UIDT, GIDT2NUM,
  NUM2GIDT): moved to configure.in.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@11769 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-02-18 04:11:57 +00:00
ko1 bee3de05ad * configure.in: change stack limit to 2MB from 32MB.
* win32/Makefile.sub: ditto.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@11739 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-02-14 13:13:52 +00:00
usa b696420526 * Makefile.in, common.mk, configure.in, */{Makefile.sub, configure.bat,
setup.mak}: add --with-baseruby configure option.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@11559 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-01-23 06:41:22 +00:00
ko1 a3e1b1ce7e * Merge YARV
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@11439 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2006-12-31 15:02:22 +00:00
eban ff48018c28 * configure.in (SITE_DIR): fixed to emtpy RUBY_SITE_LIB in config.h on
NetBSD.  fixed: [ruby-dev:29358]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@11344 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2006-12-05 10:04:19 +00:00
nobu 491a7ee7a6 * Makefile.in (miniruby): add XLDFLAGS.
* configure.in (aix): use -bE option for miniruby.  [ruby-dev:29698]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@11246 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2006-10-30 14:41:43 +00:00
matz 8c1f64eadd *** empty log message ***
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@11206 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2006-10-22 19:09:08 +00:00
nobu edcb8975ac * configure.in, bcc32/Makefile.sub, win32/Makefile.sub, win32/dir.h,
win32/win32.c, win32/win32.h: large file support for win32.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@10720 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2006-08-12 06:56:09 +00:00
matz 50ef220b5a * configure.in, common.mk: AIX link issue. a patch from Yutaka
Kanemoto <kinpoco at gmail.com>.  [ruby-dev:29190]

* ext/socket/socket.c: AIX socket support.  [ruby-dev:29190]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@10695 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2006-08-07 05:44:43 +00:00
matz d09827ad50 * configure.in: add support for as and ASFLAGS. [ruby-dev:29138]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@10616 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2006-07-26 13:28:17 +00:00
nobu d485f6e7d0 * configure.in: suppress warnings by automake 1.8 or later.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@10599 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2006-07-25 16:04:35 +00:00
nobu c993c31c54 * configure.in (rb_cv_msvcrt): defaulted to msvcrt. Workaround for a
bug of cygwin 1.5.20.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@10547 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2006-07-17 14:32:02 +00:00
eban 0227035dd3 * configure.in: should use ac_cv_lib_dl_dlopen=no on MinGW.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@10544 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2006-07-17 04:22:46 +00:00
eban 92a6541a3f * configure.in: set ac_cv_func_dlopen=no on MinGW.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@10542 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2006-07-17 04:04:15 +00:00
nobu ac2348271a * process.c (rb_proc_times): use sysconf(_SC_CLK_TCK) value prior to
HZ and CLK_TCK.  fixed: [ruby-talk:200293]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@10476 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2006-07-06 14:30:20 +00:00
matz bb0687f680 * eval.c (PUSH_FRAME): initialize frame->self. [ruby-dev:28911]
* configure.in: should test isinf for Solaris with GCC compiler.
  a patch from <ville.mattila at stonesoft.com>.  [ruby-core:07791]

* configure.in: -shared patch from Andrew Morrow
  <andrew.c.morrow at gmail.com>.  [ruby-core:08100]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@10446 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2006-07-01 16:40:13 +00:00
matz a391419dbb * configure.in: should test isinf for Solaris with GCC compiler.
[ruby-core:08100]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@10436 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2006-06-30 14:50:40 +00:00
eban 3ea6bebbad * win32/win32.h: define isascii on MinGW for msvcrt compatibility.
* configure.in: set ac_cv_header_sys_time_h=no on MinGW
  for msvcrt compatibility.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@10409 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2006-06-27 07:21:31 +00:00
matz 9b383bd6cf * sprintf.c (rb_str_format): allow %c to print one character
string (e.g. ?x).

* lib/tempfile.rb (Tempfile::make_tmpname): put dot between
  basename and pid.  [ruby-talk:196272]
* parse.y (do_block): remove -> style block.

* parse.y (parser_yylex): remove tLAMBDA_ARG.

* eval.c (rb_call0): binding for the return event hook should have
  consistent scope.  [ruby-core:07928]

* eval.c (proc_invoke): return behavior should depend whether it
  is surrounded by a lambda or a mere block.

* eval.c (formal_assign): handles post splat arguments.

* eval.c (rb_call0): ditto.

* st.c (strhash): use FNV-1a hash.

* parse.y (parser_yylex): removed experimental ';;' terminator.

* eval.c (rb_node_arity): should be aware of post splat arguments.

* eval.c (rb_proc_arity): ditto.

* parse.y (f_args): syntax rule enhanced to support arguments
  after the splat.

* parse.y (block_param): ditto for block parameters.

* parse.y (f_post_arg): mandatory formal arguments after the splat
  argument.

* parse.y (new_args_gen): generate nodes for mandatory formal
  arguments after the splat argument.

* eval.c (rb_eval): dispatch mandatory formal arguments after the
  splat argument.

* parse.y (args): allow more than one splat in the argument list.

* parse.y (method_call): allow aref [] to accept all kind of
  method argument, including assocs, splat, and block argument.

* eval.c (SETUP_ARGS0): prepare block argument as well.

* lib/mathn.rb (Integer): remove Integer#gcd2. [ruby-core:07931]

* eval.c (error_line): print receivers true/false/nil specially.

* eval.c (rb_proc_yield): handles parameters in yield semantics.

* eval.c (nil_yield): gives LocalJumpError to denote no block
  error.

* io.c (rb_io_getc): now takes one-character string.

* string.c (rb_str_hash): use FNV-1a hash from Fowler/Noll/Vo
  hashing algorithm.

* string.c (rb_str_aref): str[0] now returns 1 character string,
  instead of a fixnum.	[Ruby2]

* parse.y (parser_yylex): ?c now returns 1 character string,
  instead of a fixnum.	[Ruby2]

* string.c (rb_str_aset): no longer support fixnum insertion.

* eval.c (umethod_bind): should not update original class.
  [ruby-dev:28636]

* eval.c (ev_const_get): should support constant access from
  within instance_eval().  [ruby-dev:28327]

* time.c (time_timeval): should round for usec floating
  number.  [ruby-core:07896]

* time.c (time_add): ditto.

* dir.c (sys_warning): should not call a vararg function
  rb_sys_warning() indirectly.	[ruby-core:07886]

* numeric.c (flo_divmod): the first element of Float#divmod should
  be an integer. [ruby-dev:28589]

* test/ruby/test_float.rb: add tests for divmod, div, modulo and remainder.

* re.c (rb_reg_initialize): should not allow modifying literal
  regexps.  frozen check moved from rb_reg_initialize_m as well.

* re.c (rb_reg_initialize): should not modify untainted objects in
  safe levels higher than 3.

* re.c (rb_memcmp): type change from char* to const void*.

* dir.c (dir_close): should not close untainted dir stream.

* dir.c (GetDIR): add tainted/frozen check for each dir operation.

* lib/rdoc/parsers/parse_rb.rb (RDoc::RubyParser::parse_symbol_arg):
  typo fixed.  a patch from Florian Gross <florg at florg.net>.

* eval.c (EXEC_EVENT_HOOK): trace_func may remove itself from
  event_hooks.	no guarantee for arbitrary hook deletion.
  [ruby-dev:28632]

* util.c (ruby_strtod): differ addition to minimize error.
  [ruby-dev:28619]

* util.c (ruby_strtod): should not raise ERANGE when the input
  string does not have any digits.  [ruby-dev:28629]

* eval.c (proc_invoke): should restore old ruby_frame->block.
  thanks to ts <decoux at moulon.inra.fr>.  [ruby-core:07833]
  also fix [ruby-dev:28614] as well.

* signal.c (trap): sig should be less then NSIG.  Coverity found
  this bug.  a patch from Kevin Tew <tewk at tewk.com>.
  [ruby-core:07823]

* math.c (math_log2): add new method inspired by
  [ruby-talk:191237].

* math.c (math_log): add optional base argument to Math::log().
  [ruby-talk:191308]

* ext/syck/emitter.c (syck_scan_scalar): avoid accessing
  uninitialized array element.	a patch from Pat Eyler
  <rubypate at gmail.com>.  [ruby-core:07809]

* array.c (rb_ary_fill): initialize local variables first.  a
  patch from Pat Eyler <rubypate at gmail.com>.	 [ruby-core:07810]

* ext/syck/yaml2byte.c (syck_yaml2byte_handler): need to free
  type_tag.  a patch from Pat Eyler <rubypate at gmail.com>.
  [ruby-core:07808]

* ext/socket/socket.c (make_hostent_internal): accept ai_family
  check from Sam Roberts <sroberts at uniserve.com>.
  [ruby-core:07691]

* util.c (ruby_strtod): should not cut off 18 digits for no
  reason.  [ruby-core:07796]

* array.c (rb_ary_fill): internalize local variable "beg" to
  pacify Coverity.  [ruby-core:07770]

* pack.c (pack_unpack): now supports CRLF newlines.  a patch from
  <tommy at tmtm.org>.	[ruby-dev:28601]

* applied code clean-up patch from Stefan Huehner
  <stefan at huehner.org>.  [ruby-core:07764]

* lib/jcode.rb (String::tr_s): should have translated non
  squeezing character sequence (i.e. a character) as well.  thanks
  to Hiroshi Ichikawa <gimite at gimite.ddo.jp> [ruby-list:42090]

* ext/socket/socket.c: document update patch from Sam Roberts
  <sroberts at uniserve.com>.  [ruby-core:07701]

* lib/mathn.rb (Integer): need not to remove gcd2.  a patch from
  NARUSE, Yui <naruse at airemix.com>.	[ruby-dev:28570]

* parse.y (arg): too much NEW_LIST()

* eval.c (SETUP_ARGS0): remove unnecessary access to nd_alen.

* eval.c (rb_eval): use ARGSCAT for NODE_OP_ASGN1.
  [ruby-dev:28585]

* parse.y (arg): use NODE_ARGSCAT for placeholder.

* lib/getoptlong.rb (GetoptLong::get): RDoc update patch from
  mathew <meta at pobox.com>.  [ruby-core:07738]

* variable.c (rb_const_set): raise error when no target klass is
  supplied.  [ruby-dev:28582]

* prec.c (prec_prec_f): documentation patch from
  <gerardo.santana at gmail.com>.  [ruby-core:07689]

* bignum.c (rb_big_pow): second operand may be too big even if
  it's a Fixnum.  [ruby-talk:187984]

* README.EXT: update symbol description.  [ruby-talk:188104]

* COPYING: explicitly note GPLv2.  [ruby-talk:187922]

* parse.y: remove some obsolete syntax rules (unparenthesized
  method calls in argument list).

* eval.c (rb_call0): insecure calling should be checked for non
  NODE_SCOPE method invocations too.

* eval.c (rb_alias): should preserve the current safe level as
  well as method definition.

* process.c (rb_f_sleep): remove RDoc description about SIGALRM
  which is not valid on the current implementation. [ruby-dev:28464]

 Thu Mar 23 21:40:47 2006  K.Kosako  <sndgk393 AT ybb.ne.jp>

* eval.c (method_missing): should support argument splat in
  super.  a bug in combination of super, splat and
  method_missing.  [ruby-talk:185438]

* configure.in: Solaris SunPro compiler -rapth patch from
  <kuwa at labs.fujitsu.com>.  [ruby-dev:28443]

* configure.in: remove enable_rpath=no for Solaris.
  [ruby-dev:28440]

* ext/win32ole/win32ole.c (ole_val2olevariantdata): change behavior
  of converting  OLE Variant object with VT_ARRAY|VT_UI1 and Ruby
  String object.

* ruby.1: a clarification patch from David Lutterkort
  <dlutter at redhat.com>.  [ruby-core:7508]

* lib/rdoc/ri/ri_paths.rb (RI::Paths): adding paths from rubygems
  directories.	a patch from Eric Hodel <drbrain at segment7.net>.
  [ruby-core:07423]

* eval.c (rb_clear_cache_by_class): clearing wrong cache.

* ext/extmk.rb: use :remove_destination to install extension libraries
  to avoid SEGV.  [ruby-dev:28417]

* eval.c (rb_thread_fd_writable): should not re-schedule output
  from KILLED thread (must be error printing).

* array.c (rb_ary_flatten_bang): allow specifying recursion
  level.  [ruby-talk:182170]

* array.c (rb_ary_flatten): ditto.

* gc.c (add_heap): a heap_slots may overflow.  a patch from Stefan
  Weil <weil at mail.berlios.de>.

* eval.c (rb_call): use separate cache for fcall/vcall
  invocation.

* eval.c (rb_eval): NODE_FCALL, NODE_VCALL can call local
  functions.

* eval.c (rb_mod_local): a new method to specify newly added
  visibility "local".

* eval.c (search_method): search for local methods which are
  visible only from the current class.

* class.c (rb_class_local_methods): a method to list local methods.

* object.c (Init_Object): add BasicObject class as a top level
  BlankSlate class.

* ruby.h (SYM2ID): should not cast to signed long.
  [ruby-core:07414]

* class.c (rb_include_module): allow module duplication.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@10235 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2006-06-09 21:20:17 +00:00
nobu 865efd821e * configure.in (ac_install_sh): ignore dummy install-sh.
[ruby-talk:193876]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@10186 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2006-05-24 14:52:10 +00:00
ocean f9e6184676 * configure.in: The isinf is not regognized by autoconf
library guesser on solaris 10. [ruby-core:7138]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@9870 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2006-02-02 05:52:17 +00:00
ocean 88f3b6efb4 * configure.in, hash.c (ruby_setenv): use setenv(3) and unsetenv(3)
where they are supported. modifing environ variable seems to
  segfault solaris 10. [ruby-core:7276] [ruby-dev:28270]

* ruby.c (set_arg0): if use setenv(3), environ space cannot be used
  for altering argv[0].


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@9868 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2006-02-01 13:27:47 +00:00
nobu a26039acbc * configure.in, dln.c, file.c, intern.h, missing.h (eaccess): use
system routine if provided.  fixed: [ruby-core:07195]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@9856 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2006-01-25 13:30:11 +00:00
akr b8f013542a * eval.c (ruby_setjmp): workaround for FreeBSD/i386
getcontext/setcontext bug.
  [ruby-dev:28263]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@9850 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2006-01-22 11:36:08 +00:00
akr 842b4d7d9a * configure.in: don't force getcontext on IA64.
* eval.c (ruby_setjmp): add an argument for just before getcontext.
  (THREAD_SAVE_CONTEXT): call rb_thread_save_context just
  before getcontext.
  [ruby-dev:28205]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@9797 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2006-01-05 17:26:23 +00:00
akr c1bf7315ae update previous change.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@9747 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-12-27 11:52:54 +00:00
akr f59bd226b3 * configure.in: define IA64 for portability. (HP aC++/ANSI C doesn't
define __ia64__.)
  don't check libunwind stuff.
  check __libc_ia64_register_backing_store_base.

* defines.h: declare rb_ia64_bsp and rb_ia64_flushrs.
  (flush_register_windows): call rb_ia64_flushrs on IA64.

* ia64.s: new file for IA64.
  it is separated from C program files because
  Intel C++ Compiler for IA64 doesn't support inline assembly.

* common.mk (ia64.$(OBJEXT)): new target.

* ruby.h (RUBY_INIT_STACK): defined.
  (ruby_init_stack): declared for RUBY_INIT_STACK.

* main.c (main): precedes RUBY_INIT_STACK before ruby_init.

* gc.c (rb_gc_register_stack_start): new global variable on IA64.
  (garbage_collect): simplify register stack marking code.
  don't use libunwind.
  (Init_stack): initialize rb_gc_register_stack_start.
  (ruby_init_stack): new function for RUBY_INIT_STACK.

* eval.c (struct thread): add bstr_pos member for original position of
  register stack.
  (rb_thread_save_context): simplify register stack saving code.
  don't use libunwind.
  (rb_thread_restore_context_0): new function.  moved from
  rb_thread_restore_context except the stack position checking code.
  don't use libunwind for IA64 register stack.
  (register_stack_extend): new function.
  (stack_extend): make it self-recursive with
  the stack position checking code in old rb_thread_restore_context.
  (rb_thread_restore_context): just call stack_extend.
  (flush_register_windows): removed.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@9745 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-12-27 05:40:04 +00:00
nobu 03ab812585 * configure.in (socketpair): need to be checked.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@9531 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-11-11 23:37:32 +00:00
nobu d7f9e2d7ab * configure.in, eval.c, intern.h: check fd_mask type.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@9529 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-11-11 17:11:05 +00:00
ocean 0535fc9cac * configure.in: undef HAVE_LINK on BeOS. (link(2) always returns
EINVAL, and this causes error in test/fileutils.)

* file.c: overwride chown(2) and fchown(2) on BeOS. (these functions
  should not change user/group id if -1 is passed as corresponding
  argument, and this causes error in test/fileutils too)
  [ruby-dev:27672]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@9523 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-11-10 22:43:38 +00:00
nobu 49775b88e9 * configure.in, cygwin/GNUmakefile.in (mingw): use def file to alias
symbols.  [ruby-dev:27532]

* bcc32/mkexports.rb, win32/mkexports.rb: make aliases in DLL.

* win32/win32.c, win32/win32.h: replace symbols only when RUBY_EXPORT
  is defined.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@9502 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-11-05 04:43:46 +00:00
matz 9974cb96d3 * eval.c (rb_call_super): should call method_missing if super is
called from Kernel method.

* eval.c (exec_under): frame during eval should preserve external
  information.

* configure.in: use proper option for Sun linker. A patch from
  Shinya Kuwamura <kuwa@labs.fujitsu.com>.  [ruby-dev:27603]

* numeric.c (fix_rshift): RDoc fix.  [ruby-core:6351]

* util.h (strtod): add #undef for platforms defines strtod()
  macro.   [ruby-dev:27563]

* ext/etc/etc.c: document update from mathew <meta@pobox.com>.
  [ruby-core:06473]

* ext/fcntl/fcntl.c: ditto.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@9490 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-11-01 13:04:35 +00:00
nobu 8a2612b335 * configure.in (RUBY_EXTERN): macro to export symbols in shared
library.  [ruby-core:05528]

* defines.h, {bcc32,win32,wince}/Makefile.sub (RUBY_EXTERN): moved to
  configuration pass.

* ext/extmk.rb (extmake): RUBY_EXTERN for static linked extensions.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@9466 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-10-25 17:00:03 +00:00
nobu 141666b1e2 * configure.in, io.c: use sys/syscall.h if syscall.h is not available.
[ruby-core:06247]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@9457 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-10-24 12:15:26 +00:00
nobu 32f264bfef * configure.in (RUBY_FUNC_ATTRIBUTE): check prefixed attribute form
first.  [ruby-dev:27398]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@9373 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-10-11 12:29:11 +00:00
nobu f6892cba23 * Makefile.in, configure.in (MINIOBJS): miniruby on HP-UX can not load
extension libraries.

* bignum.c (bignew_1, bigadd): K&R style argument actually can't be
  defined as char.

* missing/vsnprintf.c: ANSI compiler supports const keyword.

* ext/digest/sha2/extconf.rb: reject platforms which has inttypes.h
  but no 64bit integer.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@9089 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-09-06 23:23:04 +00:00
usa ce8d9b4a0d * configure.in, {bcc32,win32,wince}/Makefile.sub (HAVE_SNPRINTF,
HAVE_VSNPRINTF): use win32/win32.c's implementation instead of
  missing/vsnprintf.c's.

* win32/win32.[ch] (rb_w32_snprintf, rb_w32_vsnprintf): reverted.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@8896 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-08-03 01:21:20 +00:00
nobu 378258bd0b * configure.in: check vsnprintf() and snprintf().
* sprintf.c, missing/vsnprintf.c: made vsnprintf() and snprintf()
  private.  fixed: [ruby-dev:26651]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@8895 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-08-03 01:05:30 +00:00
nobu 6524f34a26 * sprintf.c (rb_vsprintf, rb_sprintf): new functions return new String,
using missing/vsnprintf.c.  [ruby-dev:26580]

*  missing/vsnprintf.c: made the output changeable.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@8825 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-07-23 01:02:18 +00:00
akr 12bed479ec * configure.in: check select_large_fdset.
* eval.c: use select_large_fdset to support large file descriptors
  on Solaris.  [ruby-dev:26404]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@8695 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-07-02 06:22:14 +00:00
matz 8db3dc39d6 * signal.c (sigexit): call rb_thread_signal_exit() instead of
rb_exit().  [ruby-dev:26347]

* eval.c (rb_thread_signal_exit): a new function to exit on main
  thread.

* eval.c (rb_thread_switch): exit status should be retrieved from
  ruby_errinfo.

* eval.c (rb_f_exit): ensure exit(0) should call
  exit(EXIT_SUCCESS).

* missing/mkdir.c: remove. [ruby-core:05177]

* hash.c (env_aset): do not treat nil as key-removing value.
  [ruby-list:40865]

* parse.y (method_call): allow aref expression ([]) to take a
  block.

* parse.y (block_dup_check): a function to check duplication of
  a block argument and an actual block.

* lib/delegate.rb (SimpleDelegator::__setobj__): need check for
  recursive delegation.  [ruby-core:04940]

* lib/cgi.rb: add underscore aliases CGI::escape_html,
  CGI::unescape_html, CGI::escape_element, CGI::unescape_element.
  [ruby-core:05058]

* misc/ruby-mode.el (ruby-expr-beg): fix looking point drift.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@8613 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-06-12 16:56:06 +00:00
akr 48f2d3a72d * configure.in, eval.c, gc.c: use libunwind only on HP-UX.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@8598 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-06-09 09:34:31 +00:00
nobu e27aaa177e * configure.in, ruby.h: define rb_[pgu]id_t macros instead of typedefs
to get rid of types which might not be defined yet.  [ruby-dev:26165]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@8461 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-05-15 09:56:53 +00:00
nobu 642ddf7201 * configure.in: Check for the availability of pid_t, gid_t and uid_t and
remove AC_TYPE_UID_T.  fixed: [ruby-core:04745]

* defines.h: Remove pid_t typedef.

* ruby.h: Define rb_pid_t, rb_gid_t and rb_uid_t in accordance with
 the available system types.

* process.c: Change instances of pid_t and gid_t to their rb_*
 counterparts.

* ext/pty/pty.c: Change pid_t to rb_pid_t.

* vms/config.h: Define HAVE_{P,G,U}ID_T to 1.

* win32/Makefile.sub: Remove #define for {g,u}id_t.

* win32/win32.c: Change pid_t to rb_pid_t.

* wince/Makefile.sub: Remove #define for {g,u}id_t.

* wince/sys/types.h: Remove definitions of {p,g,u}id_t.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@8455 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-05-14 14:57:53 +00:00
nobu 27a9df2a6b * configure.in (RUBY_FUNC_ATTRIBUTE): check for function attribute.
[ruby-dev:26109]

* eval.c, gc.c: moved noinline to configure.in.

* rubyio.h (DEPRECATED): moved to configure.in.

* ruby.h (DEPRECATED, NOINLINE): default definition.

* win{32,ce}/Makefile.sub (config.h): deprecated and noinline for
  __declspec() are available for VC++7 or later.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@8394 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-04-30 02:59:44 +00:00
nobu dbbfbc5a21 * configure.in, lib/mkmf.rb, {bcc32,win32,wince}/Makefile.sub: improve
C++ support.  [ruby-dev:26089]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@8371 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-04-20 21:45:43 +00:00
nobu b51cd234cf * configure.in (RUBY_PROG_INSTALL): not add -p option to INSTALL.
files need timestamps to be kept are only ar-archive on a few
  platforms, and be installed by instruby.rb but not INSTALL.
  fixed: [ruby-core:04721]

* mkconfig.rb: purge autoconf value variables.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@8338 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-04-16 06:27:43 +00:00
eban c7151a3f5e * configure.in (mingw32): extract msvcr*.dll from objdump result.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@8318 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-04-13 12:24:40 +00:00
nobu f091f36035 * configure.in (mingw32): use actual runtime DLL name as ruby DLL
name and default load path.

* win32/Makefile.sub, win32/setup.mak: ditto.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@8314 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-04-13 10:25:41 +00:00
nobu fb707a7704 * configure.in (CP, INSTALL): get rid of less portable options.
* lib/mkmf.rb (configuration, create_makefile): correct configuration
  variable.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@8241 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-04-02 13:30:49 +00:00
eban e3c98febde * configure.in (WIN32_LEAN_AND_MEAN): removed because a lot of
troubles.  [ruby-list:40721]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@8193 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-03-25 02:02:54 +00:00
nobu 984f9a0df1 * configure.in, lib/mkmf.rb: use simple commands if available.
* mkconfig.rb: remove autoconf internal variables from rbconfig.rb.

* lib/mkmf.rb (create_makefile): substitute implicit rules in depend
  file.

* {bcc32,win32,wince}/Makefile.sub (COMPILE_RULES, RULE_SUBST):
  include $(topdir) and $(hdrdir) to search path.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@8013 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-02-22 14:52:59 +00:00
usa a32bc08d36 * configure.in, win32/Makefile.sub (LIBS, COMMON_HEADERS): use
winsock2 on mswin32/mingw.

* ext/socket/extconf.rb: ditto.

* win32/win32.c (StartSockets): ditto.

* win32/win32.h: ditto.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@7942 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-02-10 04:55:34 +00:00
nobu ac3499a0fa * configure.in (aix): fix linker flags on AIX. [ruby-talk:125460]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@7857 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-01-31 15:20:59 +00:00
nobu 420a708098 * Makefile.in, configure.in: made EXTOUT configurable.
* ext/extmk.rb (extmake), lib/mkmf.rb: keep topdir as relative style.

* lib/mkmf.rb: make extensions in depth order.  [ruby-dev:25522]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@7856 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-01-31 15:19:27 +00:00
nobu 0cf40469d8 * configure.in (aix): fix typo. [ruby-talk:126401]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@7782 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-01-17 14:34:09 +00:00
akr b25095f6e4 * configure.in (HAVE_RLIM_T): removed because not used.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@7690 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-12-30 15:09:42 +00:00
nobu 7d6f48ccd2 * configure.in (bsdi): use $(CC) for LDSHARED. fixed [ruby-dev:25270]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@7636 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-12-22 15:16:55 +00:00
nobu 64592fbc10 * configure.in (disable-rpath): typo fix.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@7600 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-12-19 08:29:13 +00:00
nobu a965236490 * configure.in (enable_rpath): use rpath flag to embed the library
path into extensions on ELF environment.  [ruby-dev:25035]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@7598 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-12-19 08:25:36 +00:00
akr 7614d64725 * configure.in (ac_cv_sizeof_rlim_t): set 8 for BSD/OS.
Reported by OHARA Shigeki.  [ruby-dev:25236]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@7589 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-12-17 08:47:11 +00:00
akr a435e52259 * io.c (io_fwrite): avoid context switch before writing to stderr.
[ruby-dev:25080]

* rubyio.h: refine deprecated declaration.

* configure.in, file.c, io.c: remove useless check: fseeko, etc.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@7490 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-12-07 06:44:42 +00:00
akr 2cefbe9fb2 * configure.in: check -lsocket for socketpair and shutdown.
reported by Ville Mattila.  [ruby-core:03903]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@7481 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-12-06 14:09:33 +00:00
eban ee40e23864 * configure.in (ac_cv_sizeof_rlim_t): setup for DJGPP.
* io.c (is_socket, shutdown): define dummy macros for DJGPP.

* process.c: use SIZEOF_RLIM_T instead of HAVE_RLIM_T for DJGPP.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@7480 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-12-06 14:04:05 +00:00
akr db306518e4 * configure.in: AC_CHECK_SIZEOF(rlim_t) to include stdio.h to fix
problem with autoconf 2.52 or earlier.
  revert AC_PREREQ to 2.50.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@7373 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-11-25 09:09:26 +00:00
matz 51c48c29d8 * configure.in: AC_PREREQ(2.53) [ruby-core:03800]
* io.c (read_all): [ruby-dev:24955]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@7369 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-11-25 01:58:31 +00:00
matz 0f2fdc6978 * io.c (io_read): [ruby-dev:24952]
* configure.in, io.c: cancel [ ruby-Patches-1074 ].


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@7361 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-11-23 17:37:51 +00:00
matz 77a23fba35 * string.c (str_gsub): internal buffer should not be listed by
ObjectSpace.each_object() by String#gsub.  [ruby-dev:24931]

* lib/cgi/session.rb (CGI::Session::FileStore::initialize): raise
  exception if data corresponding to session specified from the
  client does not exist.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@7326 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-11-19 16:59:11 +00:00
akr 30b3ce3445 * configure.in: check rlim_t more portably. [ruby-core:3735]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@7272 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-11-15 10:05:17 +00:00
akr 8f1c92af4f * process.c (proc_getrlimit): new function for Process.getrlimit.
(proc_setrlimit): new function for Process.setrlimit.
  [ruby-dev:24834]

* configure.in: check rlim_t and its size.  check setrlimit.

* ruby.h (NUM2ULL): new macro.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@7264 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-11-14 10:06:16 +00:00
eban 495358834c * configure.in: add setup for mignw32 cross compiling.
[ruby-talk:119413]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@7224 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-11-07 15:16:27 +00:00
matz 3e9e2bd4ed * eval.c (rb_eval): NODE_XSTR should pass copy of literal string.
* array.c (rb_ary_update): a[n,m]=nil no longer works as element
  deletion.

* enum.c (enum_sort_by): protect continuation jump in.
  [ruby-dev:24642]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@7145 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-10-30 06:56:18 +00:00
matz 018837b84f * node.h (NODE_TYPESHIFT): allow 4 more bits for line numbers.
[ruby-talk:117841]

* ruby.h (FL_ABLE): nodes are not subject for flag operations.

* io.c (ARGF_FORWARD): should have specified argv explicitly,
  since we no longer have frame->argv saved.  [ruby-dev:24602]

* string.c (RESIZE_CAPA): check string attribute before modifying
  capacity member of string structure.  [ruby-dev:24594]

* ext/zlib/zlib.c (gzreader_gets): use memchr() to to gain
  performance.  [ruby-talk:117701]

* sprintf.c (rb_f_sprintf): raise ArgumentError for extra
  arguments, unless (digit)$ style used.

* io.c (rb_io_fptr_finalize): leave stdin/stdout/stderr open in
  interpreter termination.  [ruby-dev:24579]

* eval.c (frame_free): Guy Decoux solved the leak problem.
  Thanks.  [ruby-core:03549]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@7121 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-10-27 09:29:26 +00:00
matz bfabc05a43 * enum.c (enum_sort_by): do not use qsort directly. use
rb_ary_sort_bang() instead.  [ruby-dev:24291]

* enum.c (enum_sort_by): pedantic type check added.
  [ruby-dev:24291]

* hash.c (rb_hash_foreach_iter): check iter_lev after each
  iteration.  [ruby-dev:24289]

* array.c (rb_ary_and): element size might change during
  comparison.  [ruby-dev:24290]

* array.c (rb_ary_or): ditto. [ruby-dev:24292]

* array.c (rb_ary_equal): wrong fix. [ruby-dev:24286]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@6939 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-09-21 03:08:33 +00:00
eban 2ebfc7e328 * configure.in (GNU/k*BSD): fixed FTBFS on GNU/k*BSD. [ruby-dev:24051]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@6834 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-08-30 06:16:29 +00:00
usa 66b6366e1c * configure.in, win32/Makefile.sub (LIBS): need to link shell32
library for SH* functions on mswin32 and mingw32.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@6791 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-08-19 00:24:43 +00:00
matz 67232b2151 * io.c (rb_io_reopen): should clear allocated OpenFile. pointed
out by Guy Decoux. [ruby-core:03288]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@6781 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-08-17 09:02:40 +00:00
eban 39516ae717 * configure.in (RPATHFLAG): stop setting RPATHFLAG on Interix.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@6754 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-08-11 08:21:39 +00:00
nobu aa4878589c * configure.in (rb_cv_stack_end_address): detect stack end address
variable supplied by system.  [ruby-core:03115]

* gc.c (Init_stack): use system provided address if possible.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@6600 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-07-08 10:27:23 +00:00
nobu 6f9195ec91 * configure.in, lib/mkmf.rb (LIBPATHFLAG): use double quotes due to
DOSISH compilers.  [ruby-core:03107]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@6538 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-06-28 05:58:13 +00:00
nobu 11fa3bf8c7 * configure.in (TRY_LINK): commit miss.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@6528 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-06-26 06:10:52 +00:00
nobu 95084622ff * configure.in (TRY_LINK): export.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@6527 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-06-26 03:47:10 +00:00
nobu 89b572762d * configure.in (aix): -b must come at the start of the command line,
and -e must not appear while testing libraries.  [ruby-talk:104501]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@6523 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-06-26 02:05:54 +00:00
eban 4fb0b08ffd * configure.in (target_os): strip -gnu suffix on Linux.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@6450 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-06-12 02:17:24 +00:00
knu d918f9f34f * configure.in: Add support for DragonFly BSD.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@6436 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-06-09 06:41:08 +00:00
matz a6a8847190 * numeric.c (flo_eq): alway check if operands are NaN.
[ruby-list:39685]

* lib/cgi/session.rb: use LOCK_SH to read, and a few other
  improvements.  [ruby-core:02328]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@6372 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-05-20 04:34:14 +00:00
eban 6075e128e6 * configure.in (ac_cv_func_fork): set to no on DJGPP.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@6215 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-04-25 09:28:07 +00:00
akr 383964bc30 * configure.in: check the size of time_t.
* time.c (time_add): new function.
  (time_plus): use time_add.
  (time_minus): use time_add.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@6108 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-04-06 07:48:38 +00:00
nobu 3b79d34d99 * common.mk, */Makefile.sub (lib, dll): phony targets.
* configure.in (ruby, miniruby): ditto.

* cygwin/GNUmakefile.in (rubyw): ditto.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@6022 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-03-25 05:01:15 +00:00
nobu 71f46f0724 * Makefile.in, */Makefile.sub, common.mk: extract common portions.
* Makefile.in, cygwin/GNUmakefile.in, */Makefile.sub (RBCONFIG):
  separated time stamp file for rbconfig.rb.

* configure.in: append common.mk to Makefile.

* mkconfig.rb: keep mtime of rbconfig.rb if unchanged.

* win32/rm.bat: remove multiple files.

* wince/mkconfig_wce.rb: use fake.rb instead.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@5997 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-03-21 23:21:31 +00:00
nobu 21410f4dfe * configure.in (rb_cv_noreturn): default for platforms not support
prototypes.

* ruby.c (ruby_init_loadpath): buffer for path name should have
  MAXPATHLEN.

* lib/mkmf.rb (configuration): include topdir and hdrdir in VPATH.

* lib/mkmf.rb (create_makefile): default dependency rule.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@5942 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-03-12 11:19:22 +00:00
nobu 1c77623b1b * configure.in (PREP): ./miniruby and miniruby are distinguished by
OpenBSD make.  [ruby-dev:23148]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@5900 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-03-06 00:53:04 +00:00
nobu d6ad092f0e * Makefile.in: miniruby is not needed for cross compile.
* configure.in (PREP): miniruby for native compile.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@5885 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-03-04 13:31:45 +00:00
nobu 03d8c88b87 * configure.in: check functions, fork spawnv.
* io.c (rb_io_s_popen): accept argv not only single command line.

* process.c (rb_proc_exec_n): export.

* process.c (rb_check_argv): check if arguments are safe to invoke.

* process.c (rb_fork): retry to fork.

* process.c (rb_spawn): spawn child process asynchronously.

* process.c (rb_f_system): raise an exception if the command could not
  execute.

* win32/win32.c (rb_w32_argv_size): count necessary size for joined
  arguments.

* win32/win32.c (rb_w32_join_argv): join arguments with quoting.

* win32/win32.c (rb_w32_pipe_exec, rb_w32_spawn, rb_w32_aspawn):
  accept program name adding to command line.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@5725 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-02-16 06:45:32 +00:00
eban 0b97d6f458 * configure.in: set ac_cv_func_link to yes to enable link() on MinGW.
[ruby-dev:22241]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@5677 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-02-12 05:20:09 +00:00
nobu ff9c34b3f4 * Makefile.in, bcc32/Makefile.sub, win32/Makefile.sub, configure.in,
runruby.rb: run rdoc, test and so on with compiled extension
  libraries.  [ruby-dev:22688]

* ext/extmk.rb, lib/mkmf.rb: make extension libraries in separated
  directory, similar to the actual directory structure.

* lib/fileutils.rb (FileUtils.copy_file): use the mode of the original
  file to create new file.

* lib/rdoc/ri/ri_paths.rb (RI::Paths::SYSDIR): get rid of unexpected
  influence by envirionment variable.

* bcc32/configure.bat, win32/configure.bat: add install-doc options.

* win32/win32.c, win32/win32.h (rb_w32_fstat): fix Borland C runtime
  bug which returns wrong mode.  [ruby-dev:22846]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@5659 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-02-09 08:48:55 +00:00
eban 35d62eb6a5 * configure.in (RPATHFLAG): set to -Wl,-R like NetBSD on Interix.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@5591 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-01-30 17:39:04 +00:00
eban 181a3a2af5 * configure.in (DLEXT2): removed. Ruby does not treat
".dll" as a extention library anymore.

* bcc32/Makefile.sub, win32/Makefile.sub, wince/Makefile.sub (DLEXT2):
  ditto.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@5585 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-01-29 14:18:42 +00:00
siena 357d0ffc29 * configure.in: check availability of link(). [ruby-dev:22237]
* file.c (rb_file_s_link): raise an exception when link() is unavailable.
* missing/os2.c (link): removed. File#link isn't supported.
* bcc32/Makefile.sub: define HAVE_LINK to enable link(). [ruby-dev:22241]
* win32/Makefile.sub: ditto.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@5532 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-01-21 16:09:40 +00:00
eban 72592e35ae * configure.in: Interix(SFU) support.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@5528 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-01-21 14:53:31 +00:00
matz b07337fcb3 * configure.in: install rdoc by default. if you do not want to
install rdoc, specify --disable-install-doc.

* eval.c (eval): need to add message delimiter. [ruby-dev:22561]

* defines.h (__NeXT__): Ensure that all standard S_IRUSR, S_IWGRP,
  S_IRWXO, etc. macros are defined since future code might require
  them (even though present code only requires a subset).

* defines.h (__NeXT__): Bug fix: WORDS_BIGENDIAN was not being set
  correctly on Rhapsody when -arch compiler flag was used (via
  configure's --enable-fat-binary option).

* ext/socket/socket.c (make_hostent): getaddrinfo(3) on BSD do not
  fill ai_canonname if serv is not supplied.  (ruby-bugs PR#1243)


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@5430 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-01-10 17:39:07 +00:00
nobu 482b9c2ce7 * configure.in (LIBPATHFLAG, RPATHFLAG): enclose paths with single
quotes.  [ruby-dev:22564]

* lib/mkmf.rb (libpathflag): do not enclose with quotes always.

* {bcc32,win32,wince}/Makefile.sub (LIBPATHFLAG): quoted.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@5426 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-01-10 14:01:50 +00:00
eban 50fe8ab6aa * configure.in (RDOCTARGET): new macro. if you want to install
rdoc documentation, you need to run configure with
  --enable-install-doc.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@5419 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-01-08 14:58:57 +00:00
matz 59dbfa3e4c * dir.c: merge tuning from H.Yamamoto <ocean@m2.ccsnet.ne.jp>.
[ruby-dev:22476]

* io.c (argf_eof): ARGF.eof? should not have any side effect.
  [ruby-dev:22469]

* io.c (argf_each_byte): should return self.  [ruby-dev:22465]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@5365 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-01-02 16:21:26 +00:00
eban 9eca8a4a5f * configure.in: fix "test: too many arguments" error.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@5319 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-12-27 14:45:48 +00:00
matz b9a79bc020 * io.c (rb_f_backquote): need not to check nil result.
[ruby-core:02078]

* io.c (rb_io_getline): should return nil on eof, even when nil rs is
  specified. [ruby-core:02077]

* pack.c (pack_pack): add sign check for 'i', and 'l'.
  [ruby-dev:22427]

* bignum.c (rb_quad_pack): add range check for 'quad int'.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@5308 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-12-26 15:34:33 +00:00
nobu ab0c37d0cf * configure.in: check if getcontext and setcontext are available.
* eval.c: use presence of getcontext/setcontext.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@5305 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-12-26 09:34:03 +00:00
matz cecdab3bf0 * configure.in: check for nanosleep, -lrt if required.
[ruby-core:02059]

* eval.c (thread_timer): use select(2) if nanosleep(2) is not
  available.

* eval.c: check __stub_getcontext for glibc on some platforms.
  [ruby-list:38984]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@5286 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-12-24 19:38:15 +00:00
eban 42da260543 * configure.in (LDSHARED): Fixed typographical error in assignment of
LDSHARED for Rhapsody which caused linking of extension modules to
  fail.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@5280 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-12-24 11:54:12 +00:00
matz dbc5af97c7 * pack.c (pack_pack): remove unnecessary negative value check.
[ruby-dev:22329]

* io.c (rb_io_ungetc): need fflush before ungetc if write buffer
  is filled. [ruby-dev:22330]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@5259 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-12-23 10:02:17 +00:00
nobu 748b699d1b * configure.in (ac_cv_func_setitimer): moved from defines.h
* defines.h, rubysig.h, signal.c: removed macro handling which
  should be done in configure.

* configure.in (intrinsics.h): check if present.

* ruby.h: include intrinsics.h if available.

* bignum.c, marshal.c: include ieeefp.h if available.

* missing.h (isinf): define as a macro if finite() and isnan()
  are available.  [ruby-core:02032]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@5244 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-12-22 08:23:55 +00:00
eban 25b6ac95f2 * configure.in (mingw): set isnan, finite and isinf to yes.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@5243 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-12-22 08:09:14 +00:00
matz e91e9e7bbf * eval.c (rb_with_disable_interrupt): prohibit thread context
switch during proc execution.  [ruby-dev:21899]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@5232 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-12-20 15:45:15 +00:00
matz e78cb14774 * lib/cgi.rb (CGI::QueryExtension::Value::[]): should work like
String#[] if more than one arguments are specified.

* lib/delegate.rb: avoid using common instance name as "@obj".

* lib/cgi.rb (CGI::QueryExtension::Value): Value is no longer
  subclass of String, but DelegateClass(String).

* ext/curses/extconf.rb: restore function check for init_color.
  [ruby-list:38905]

* Makefile.in: need to specify $(MAINLIBS) for the miniruby
  generation rule.

* configure.in: better FreeBSD -lc_r support.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@5206 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-12-17 06:38:18 +00:00
nobu 9fdbc41973 * configure.in: check ucontext.h.
* eval.c: use getcontext/setcontext() instead of setjmp/longjmp()
  on ia64 or with native thread enabled.  [ruby-core:01932]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@5180 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-12-13 00:01:28 +00:00
nobu faab8f264d * configure.in (ieeefp.h), numeric.c: needed for finite() on
Solaris.  [ruby-core:01921]

* file.c (rb_stat_inspect): adjust format specifier.

* parse.c (arg_prepend): nodetype() is for debug use.

* ruby.h (ISASCII, etc): cast to int to get rid of warning.

* ruby.h (alloca.h): include even in GCC.  [ruby-core:01925]

* ext/bigdecimal/bigdecimal.c (GetVpValue): adjust format
  specifier.

* ext/bigdecimal/bigdecimal.c (BigDecimal_prec, BigDecimal_coerce,
  BigDecimal_divmod): use rb_assoc_new() to suppress memory usage.

* ext/bigdecimal/bigdecimal.c (BigDecimal_split): ditto.

* ext/dl/sym.c (rb_dlsym_guardcall): guard itself should be
  volatile.

* ext/iconv/iconv.c (iconv_convert): ensure actual parameter with
  format specifier.

* ext/pty/pty.c (MasterDevice, SlaveDevice, deviceNo): do not
  define unless used.

* ext/pty/pty.c (getDevice): get rid of warning.

* ext/socket/socket.c (port_str, sock_s_getaddrinfo,
  sock_s_getnameinfo): FIX2INT() now returns long.

* ext/socket/socket.c (init_inetsock_internal): uninitialized
  variable.

* ext/syck/rubyext.c (syck_parser_assign_io): add prototype.

* ext/syck/rubyext.c (rb_syck_mktime, yaml_org_handler): use
  ISDIGIT() instead of isdigit() to avoid warnings and for
  platforms which don't support non-ascii charater.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@5163 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-12-11 02:39:59 +00:00
eban a971d184ce * io.c (flush_before_seek): flush before seek on any platform.
* configure.in: ditto.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@5126 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-12-06 12:48:51 +00:00
matz 2f4c13b0f0 * configure.in (AC_PROG_YACC): AC_DEFINE(OLD_YACC) if Yacc is found
instead of Bison or byacc.

* parse.y: If OLD_YACC is defined, ensure that YYMAXDEPTH is at least
  10000 (Bison's default) since some old versions of Yacc define it as
  low as 150 by default, which is too low for Ruby to parse some files,
  such as date/format.rb.  Among other issues, the parse problem causes
  "make test" to fail.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@5093 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-12-03 07:55:54 +00:00
eban bf090992e0 * configure.in: should put getcwd in AC_CHECK_FUNCS, not
AC_REPLACE_FUNCS.  [ruby-core:01826]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@5067 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-11-30 14:47:55 +00:00
eban c3f1c5280b * configure.in: keep ARCH_FLAG separate. export ARCH_FLAG.
[ruby-core:01819]

* Makefile.in: add ARCH_FLAG to CFLAGS.

* Makefile.in: add @CPPFLAGS@ to CPPFLAGS.

* lib/mkmf.rb (link_command, cc_command): use ARCH_FLAG.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@5063 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-11-30 11:27:34 +00:00
eban 9a8cc1f4ab * configure.in: do not override CCDLDFLAGS, LDFLAGS, XLDFLAGS,
DLDFLAGS and LDSHARED.

* configure.in: XCFLAGS for compiling ruby itself.  ARCH_FLAG is
  reflected in CFLAGS.

* lib/mkmf.rb: ditto.  do not import XCFLAGS from config.status.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@5062 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-11-30 09:33:03 +00:00
nagai ab8e998216 * configure.in: change default value of --enable-pthread (default: no)
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@5019 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-11-25 06:26:38 +00:00
eban e2c4261204 * configure.in: set enable_pthread to no on MinGW.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@5009 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-11-22 14:24:35 +00:00
nagai 3e6ec62611 * configure.in: add --enable-pthread option (default: yes)
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@5008 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-11-22 13:58:57 +00:00
matz 6212cfb9c5 * gc.c (Init_stack): stack region is far smaller than usual if
pthread is used.

* marshal.c (w_extended): singleton methods should not be checked
  when dumping via marshal_dump() or _dump(). [ruby-talk:85909]

* file.c (getcwdofdrv): avoid using getcwd() directly, use
  my_getcwd() instead.

* merged NeXT, OpenStep, Rhapsody ports patch from Eric Sunshine
  <sunshine@sunshineco.com>.  [ruby-core:01596]

* marshal.c (w_object): LINK check earlier than anything else,
  i.e. do not dump TYPE_IVAR for already dumped objects.
  (ruby-bugs PR#1220)

* eval.c (rb_eval): call "inherited" only when a new class is
  generated; not on reopening.

* eval.c (eval): prepend error position in evaluating string to

* configure.in: revived NextStep, OpenStep, and Rhapsody ports which
  had become unbuildable; enhanced --enable-fat-binary option so that
  it accepts a list of desired architectures (rather than assuming a
  fixed list), or defaults to a platform-appropriate list if user does
  not provide an explicit list; made the default list of architectures
  for MAB (fat binary) more comprehensive; now uses -fno-common even
  when building the interpreter (in addition to using it for
  extensions), thus allowing the interpreter to be embedded into a
  plugin module of an external project (in addition to allowing
  embedding directly into an application); added checks for
  <netinet/in_systm.h> (needed by `socket' extension) and getcwd(); now
  ensures that -I/usr/local/include is employed when extensions'
  extconf.rb scripts invoke have_header() since extension checks on
  NextStep and OpenStep will fail without it if the desired resource
  resides in the /usr/local tree; fixed formatting of --help message.

* Makefile.in: $(LIBRUBY_A) rule now deletes the archive before
  invoking $(AR) since `ar' on Apple/NeXT can not "update" MAB archives
  (see configure's --enable-fat-binary option); added rule for new
  missing/getcwd.c.

* defines.h: fixed endian handling during MAB build (see configure's
  --enable-fat-binary option) to ensure that all portions of the
  project see the correct WORDS_BIGENDIAN value (some extension modules
  were getting the wrong endian setting); added missing constants
  GETPGRP_VOID, WNOHANG, WUNTRACED, X_OK, and type pid_t for NextStep
  and OpenStep; removed unnecessary and problematic HAVE_SYS_WAIT_H
  define in NeXT section.

* dir.c: do not allow NAMLEN() macro to trust dirent::d_namlen on
  NextStep since, on some installations, this value always resolves
  uselessly to zero.

* dln.c: added error reporting to NextStep extension loader since the
  previous behavior of failing silently was not useful; now ensures
  that NSLINKMODULE_OPTION_BINDNOW compatibility constant is defined
  for OpenStep and Rhapsody; no longer includes <mach-o/dyld.h> twice
  on Rhapsody since this header lacks multiple-include protection,
  which resulted in "redefinition" compilation errors.

* main.c: also create hard reference to objc_msgSend() on NeXT
  platforms (in addition to Apple platforms).

* lib/mkmf.rb: now exports XCFLAGS from configure script to extension
  makefiles so that extensions can be built MAB (see configure's
  --enable-fat-binary option); also utilize XCFLAGS in cc_command()
  (but not cpp_command() because MAB flags are incompatible with
  direct invocation of `cpp').

* ext/curses/extconf.rb: now additionally checks for presence of these
  curses functions which are not present on NextStep or Openstep:
  bkgd(), bkgdset(), color(), curs(), getbkgd(), init(), scrl(), set(),
  setscrreg(), wattroff(), wattron(), wattrset(), wbkgd(), wbkgdset(),
  wscrl(), wsetscrreg()

* ext/curses/curses.c: added appropriate #ifdef's for additional set of
  curses functions now checked by extconf.rb; fixed curses_bkgd() and
  window_bkgd() to correctly return boolean result rather than numeric
  result; fixed window_getbkgd() to correctly signal an error by
  returning nil rather than -1.

* ext/etc/etc.c: setup_passwd() and setup_group() now check for null
  pointers before invoking rb_tainted_str_new2() upon fields extracted
  from `struct passwd' and `struct group' since null pointers in some
  fields are common on NextStep/OpenStep (especially so for the
  `pw_comment' field) and rb_tainted_str_new2() throws an exception
  when it receives a null pointer.

* ext/pty/pty.c: include "util.h" for strdup()/ruby_strdup() for
  platforms such as NextStep and OpenStep which lack strdup().

* ext/socket/getaddrinfo.c: cast first argument of getservbyname(),
  gethostbyaddr(), and gethostbyname() from (const char*) to non-const
  (char*) for older platforms such as NextStep and OpenStep.

* ext/socket/socket.c: include "util.h" for strdup()/ruby_strdup() for
  platforms such as NextStep and OpenStep which lack strdup(); include
  <netinet/in_systm.h> if present for NextStep and OpenStep; cast first
  argument of gethostbyaddr() and getservbyname() from (const char*) to
  non-const (char*) for older platforms.

* ext/syslog/syslog.c: include "util.h" for strdup()/ruby_strdup() for
  platforms such as NextStep and OpenStep which lack strdup().


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@5002 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-11-22 04:00:03 +00:00
nagai c5061b6116 * check existence of "pthread.h"
* define is_ruby_native_thread() macro when not HAVE_NATIVETHREAD


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@4996 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-11-20 16:47:30 +00:00
eban 65f4f950fb * configure.in: don't find the Cygwin's pthread library on MinGW.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@4994 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-11-20 10:20:20 +00:00
nagai 340a511fdf * configure.in: always check existence of the pthread library
* ruby.h: define macros for ruby's native thread check
* eval.c: add ruby's native thread check
* gc.c: ditto


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@4989 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-11-20 03:50:32 +00:00
nagai 1ef5d9d443 * configure.in: improvement of pthread check
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@4923 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-11-08 04:53:14 +00:00
nagai ea03c3fc2c configure.in, eval.c, signal.c: : add '--with-pthread-ext' option
to fix the pthread trouble on 'tcltklib'
ext/tcltklib/README.1st: add the description of '--with-pthread-ext'
ext/tk/lib/tktext.rb : add TkText#text_copy, text_cut, text_paste to
        support Tcl/Tk8.4's tk_textCopy, tk_textCut, tk_textPaste
ext/tk/lib/tk.rb : add TkMenu#set_focus support Tcl/Tk's tk_menuSetFocus


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@4904 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-11-05 14:00:11 +00:00
eban 0dfe20d3d4 * configure.in, lib/mkmf.rb: add RPATHFLAG for NetBSD. [ruby-dev:21791]
* bcc32/Makefile.sub, win32/Makefile.sub, win32/Makefile.sub: ditto.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@4879 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-10-31 03:58:21 +00:00
gotoyuzo 0645683e26 * configure.in (AC_CHECK_FUNCS): add setuid and setgid.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@4583 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-09-22 10:25:24 +00:00
nobu 625c1361e3 * configure.in (HUGE_ST_INO): check whether struct stat.st_ino
is larger than long.  [ruby-dev:21194]
  http://www.geocities.co.jp/SiliconValley-PaloAlto/1409/ruby/beos.html

* error.c (syserr_eqq): errno might exceed Fixnum limit.

* error.c (Init_Exception): moved base initialization from
  init_syserr().

* inits.c (rb_call_inits): postpone initializing errnos until
  Bignum is available.

* ext/curses/curses.c (_XOPEN_SOURCE_EXTENDED): needed to let
  keyname() and so on be declared.

* ext/curses/curses.c (curses_resizeterm, window_resize):
  arguments conflicted with macros in term.h.

* ext/curses/curses.c (Curses module methods): ensure
  initialized.  [ruby-dev:21191]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@4392 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-08-15 03:01:52 +00:00
eban 6f059f33ef * cygwin/GNUmakefile: better --disbale-shared option support.
* configure.in: Fix Cygwin specific naming of libraries to
  be net distribution compliant. (ruby-bugs PR#1077)
  cygwin-ruby18.dll -> cygruby18.dll


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@4350 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-08-07 05:43:59 +00:00
nobu db8874aa1b * configure.in (os2-emx): renamed from os2_emx, add flags to
CFLAGS and LDFLAGS, and remove lib prefix.  [ruby-dev:20993]

* file.c (rb_file_s_rename): retry with removing new file on
  DOSISH.  [ruby-dev:21007]

* ext/socket/extconf.rb (sendmsg, recvmsg): check functions.

* ext/socket/socket.c (unix_send_io, unix_recv_io): raise
  NotImplementedError unless system calls are available.

* ext/socket/socket.c (sock_initialize): rename from sock_init()
  to get rid of conflict with OS/2 socket library.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@4221 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-07-30 00:32:03 +00:00
matz dea1baa169 * ext/stringio/stringio.c (strio_gets): only "gets" should set $_.
* ext/stringio/stringio.c (strio_getline): should not set $_ here.

* io.c (argf_to_s): argf.to_s returns "ARGF".

* io.c (set_defout_var, set_deferr_var): make $defout and $deferr
  obsolete.

* io.c (set_input_var, set_output_var): allow $stdin, $stdout,
  $stderr not to be instance of IO.

* io.c (rb_f_readline): forward method to current_file. gets,
  readline, readlines, getc, readchar, tell, seek, pos=, rewind,
  fileno, to_io, eof, each_line, each_byte, binmode, and closed?
  as well.

* io.c (argf_forward): utility function to forward method to
  current_file.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@4190 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-07-28 07:31:52 +00:00
matz f0b77b0cde * ext/tk/lib/tk.rb (TkCore::chooseDirectory): back up wrongly
removed method.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@4175 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-07-26 15:03:16 +00:00
nobu 7896128822 * configure.in (AC_C_VOLATILE): check if volatile works.
* defines.h (volatile): removed.

* eval.c (rb_thread_group): Thread#group.  [new]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@4144 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-07-24 07:05:28 +00:00
nagai fd46a1da0a process.c : unify indentation
configure.in : add --enable-setreuid option
tcltklib.c : TclTkIp.new accepts 'ip-name' and 'options'
             ( e.g. TclTkIp.new('FOO', '-geometry 500x200 -use 0x2200009') )
tk.rb      : support arguments of TclTkIp.new
             ( see TkCore::IP_NAME, TkCore::IP_OPTS )
tk*.rb     : preparations for multi-Tk interpreter support


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@4127 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-07-23 16:07:35 +00:00
nagai 3e8d70c95c process.c, configure.in :
* add a module for raw syscalls to control UID/GID
  * add modules for portable UID/GID control


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@4119 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-07-23 02:39:46 +00:00
nobu bc7a97c826 * configure.in (aix): needs ruby.imp even with gcc.
(ruby-bugs:PR#1007)


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@4062 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-07-11 13:37:22 +00:00
matz 3de67ca69d * eval.c (rb_call_super): k->super maybe NULL if klass is Kernel.
[ruby-dev:20519]

* gc.c (obj_free): clear method cache when freeing class/module.

* eval.c (rb_mod_remove_method): allow "remove_method" to accept
  multiple arguments.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@4041 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-07-07 08:28:19 +00:00
nobu e5a9dcb9d8 * configure.in (rb_cv_stack_grow_dir): check stack growing direction.
* eval.c (rb_thread_restore_context): prior configuration macro.

* gc.c (ruby_stack_length): always return the address of lower edge.

* gc.c (rb_gc_mark_locations): remove margin.  [ruby-dev:20462]

* gc.c (rb_gc, Init_stack): prior configuration macro.

* gc.c (Init_stack): add safety margin.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@4012 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-06-28 03:29:00 +00:00
aamine 2f7fde4e4e * configure.in: always add -mieee for gcc/alpha. [ruby-dev:20429]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@3992 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-06-23 19:54:41 +00:00
nobu 1fe598da35 * configure.in: checks presence of grp.h and setgroups().
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@3921 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-06-09 10:02:36 +00:00
matz c004ecfa1e * math.c (math_erf,math_erfc): new function. [ruby-list:37753]
* eval.c (ruby_finalize): no longer need to turn off $DEBUG in the
  finalizer. (ruby-bugs-ja PR#473)


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@3907 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-06-05 06:40:42 +00:00
eban fd681fe0e5 * configure.in: should not use def file, use ld with
--export-all-symbols option on Cygwin/MinGW.
* defines.h: ditto.
* cygwin/GNUmakefile.in: ditto.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@3894 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-06-01 12:58:56 +00:00
eban e617fd0bf8 * win32/win32.c (_CRTIMP): redefine _CRTIMP on MinGW.
* configure.in: remove '-D__USE_CRTIMP' from XCFLAGS on MinGW.
* win32/win32.c (NtMakeCmdVector): handle quotes only if not instring.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@3877 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-05-29 09:11:18 +00:00
eban e4ada45df1 * configure.in: add '--Wl,--enable-auto-import' to DLDFLAGS
on Cygwin/MinGW.

* configure.in: add '-D_USE_CRTIMP' to XCFLAGS on MinGW.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@3786 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-05-13 11:34:48 +00:00
usa 161e19ded9 * configure.in, bcc32/Makefile.sub, win32/Makefile.sub: define
HAVE_FSYNC.
* win32/win32.h (fsync): define as _commit().


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@3785 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-05-13 08:59:36 +00:00
eban 2b214ff6a3 * configure.in: better YACC support on HP-UX.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@3556 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-03-05 03:15:06 +00:00
nobu f3bdfcc416 * configure.in, bcc32/Makefile.sub, win32/Makefile.sub: define
RUBY_EXPORT to export symbols.

* defines.h: use RUBY_EXTERN instead of EXTERN.

* intern.h, re.h, ruby.h, rubysig.h: ditto.

* win32/win32.h: remove EXTERN definition.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@3554 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-03-04 14:12:19 +00:00
eban a38c2ac2dd * configure.in: better HP-UX support.
* missing/strftime.c: ditto.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@3550 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-03-04 06:13:24 +00:00
knu 7828a12f19 * configure.in (MANTYPE): Detect if the system's nroff(1) groks
mdoc.  Provide a new option --with-mantype={doc|man} in case the
  check does not work as expected.

* Makefile.in (MANTYPE): Define MANTYPE and pass it to
  instruby.rb.

* instruby.rb: Convert mdoc manpages to man for systems which
  nroff(1) does not grok mdoc.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@3377 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-01-20 12:51:50 +00:00
nobu 08771defc6 * configure.in (ARCHFILE): set even unless --enable-shared on
AIX.  [ruby-talk:61466]

* marshal.c (math.h): should be included after ruby.h on AIX.
  [ruby-talk:61366]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@3342 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-01-15 06:29:05 +00:00
nobu 4e6dbec8c8 * configure.in (RUBY_CHECK_IO_NEED): added more tests.
* io.c (rb_io_check_readable): seek after synchronized write.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@3326 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-01-10 16:47:03 +00:00
nobu bd86e81602 * configure.in: AC_MSG_FAILURE is a new macro in 2.54b or later.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@3324 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-01-09 14:46:09 +00:00
nobu 99628bf1f0 * configure.in (RUBY_CHECK_IO_NEED): check whether fseek() and
fflush() are needed.

* io.c (flush_before_seek): flush write stream only.

* io.c (rb_io_check_readable): seek instead of flush if the last
  operation was write.

* io.c (rb_io_check_writable): seek instead of flush if the last
  operation was read.

* bcc32/Makefile.sub, win32/Makefile.sub: needs to seek between
  R/W.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@3318 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-01-09 08:05:32 +00:00
usa c471e19f22 * configure.in: set rb_cv_need_io_flush_between_seek=yes.
* win32/Makefile.sub (config.h): define NEED_IO_FLUSH_BETWEE_SEEK.
  (pointed out by moriq [ruby-dev:19299])


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@3282 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-01-04 05:33:29 +00:00
eban 1361e7d0ca * configure.in: better DJGPP support. add GNUmakefile.
* djgpp/GNUmakefile: new.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@3272 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-01-01 09:26:45 +00:00
knu 969bb67169 * configure.in: Improve OpenBSD support. [obtained from: OpenBSD
ports]

* dln.c (FUNCNAME_PATTERN): Ditto.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@3252 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2002-12-31 10:53:14 +00:00
eban c7976a64fc * configure.in: cleanups for MinGW. remove -D__NO_ISOCEXT in $CFLAGS.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@3220 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2002-12-26 15:12:06 +00:00
matz baa00aa250 * numeric.c (num_step): use DBL_EPSILON.
* array.c (rb_check_array_type): new function: return an array
  (convert if possible), or nil.

* string.c (rb_check_string_type): new function: return a string
  (convert if possible), or nil.

* numeric.c (rb_dbl_cmp): returns nil if values are not
  comparable.

* numeric.c (fix_cmp,flo_cmp): use rb_num_coerce_cmp()

* bignum.c (rb_big_cmp): ditto.

* numeric.c (rb_num_coerce_cmp): new coercing function for "<=>",
  which does not raise TypeError.

* numeric.c (do_coerce): can be supress exception now.

* object.c (rb_mod_cmp): should return nil for non class/module
  objects.

* re.c (rb_reg_eqq): return false if the argument is not a
  string.  now returns boolean value.

* class.c (rb_include_module): argument should be T_MODULE, not
  T_class, nor T_ICLASS.

* eval.c (is_defined): "defined?" should return "assignment" for
  attribute assignment (e.g. a.foo=b) and indexed assignment
  (e.g. a[2] = 44).

* parse.y (aryset): use NODE_ATTRASGN.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@3169 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2002-12-19 09:20:20 +00:00
uema2 b19e36a214 * configure.in, defines.h, dir.c, dir.h, dln.c, error.c,
eval.c, file.c, hash.c, io.c, main.c, missing.c,
      process.c, ruby.c, rubysig.h, signal.c, st.c, util.c, util.h,
      bcc/Makefile.sub, win32/Makefile.sub, win32/win32.h,
      ext/Win32API/Win32API.c, ext/socket/getaddrinfo.c,
      ext/socket/getnameinfo.c, ext/socket/socket.c,
      ext/tcltklib/stubs.c
      : replace "NT" with "_WIN32", add DOSISH_DRIVE_LETTER
* wince/exe.mak : delete \r at the end of lines.
* wince/mswince-ruby17.def : delete rb_obj_become


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@3148 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2002-12-15 03:18:08 +00:00
eban b60172917f * configure.in (RUBY_PROG_GNU_LD): add $CFLAGS, $CPPFLAGS, $LDFLAGS
to the option of $CC.

* configure.in: set LIBRUBYARG to '-l$(RUBY_SO_NAME)' if the
  target os is cygwin and --disable-shared option is supplied.

* lib/mkmf.rb (init_mkmf): expand config["LIBRUBY"] and
  config["LIBRUBY_A"].  don't link $LIBRUBYARG_STATIC if
  --disable-shared option is supplied.

* configure.in (RUBY_CPPOUTFILE): should be a better message.

* ext/Win32API/extconf.rb: join with a space.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@3138 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2002-12-12 10:21:41 +00:00
matz 90c4dae08f WinCE patch merged
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@3106 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2002-12-02 07:57:17 +00:00
nobu 604689628d * configure.in (LIBRUBY_A): append -static. [ruby-dev:18689]
* configure.in (LIBRUBYARG_STATIC, LIBRUBYARG_SHARED): linker
  argument to link static/shared library respectively.

* Makefile.in (LIBRUBYARG_STATIC, LIBRUBYARG_SHARED): added.

* bcc32/Makefile.sub, win32/Makefile.sub: ditto.

* instruby.rb (LIBRUBY_A): install to libdir.

* lib/mkmf.rb (link_command): link static library of ruby, or
  try_run fails unless LIBRUBY_SO is installed.  [ruby-dev:18646]

* eval.c (call_trace_func): toplevel caller was missing.
  [ruby-dev:18754]

* eval.c (proc_to_s): adjust created line number.

* parse.y (primary, do_block, brace_block): adjust line number of
  block to beginning line, instead of the first statement inside
  the block.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@3042 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2002-11-14 13:51:19 +00:00
matz a1c02ee495 * math.c (math_acos): check errno after operation. ditto for
asin, acosh, atanh, log, log10 and sqrt.

* eval.c (rb_add_method): initialize should always be private.

* parse.y (expr): add rescue modifier rule.

* parse.y (command_call): return, break and next with argument is
  now part of this rule.

* parse.y (yylex): "a" in "a /5" should be considered as a local
  variable. [experimental]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@3041 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2002-11-14 06:18:59 +00:00
nobu 8699e3e525 * configure.in (DLDFLAGS): removed -Wl,-no-undefined to
ext/extmk.rb, in order to allow references to symbols in other
	  extension libraries for mkmf.rb.  [ruby-dev:18724]

	* ext/extmk.rb (extmake): ditto.

	* ext/extmk.rb (extmake): exit when make failed.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@3039 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2002-11-13 07:30:24 +00:00
nobu d45f226da9 * configure.in (LIBPATHFLAG): avoid $ substitution.
[ruby-dev:18577]

* ext/extmk.rb (extmake): expand $srcdir.

* ext/win32ole/extconf.rb: should not override $CFLAGS, but
  append.

* lib/mkmf.rb (config_string): use given config hash.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2991 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2002-10-24 12:58:42 +00:00
nobu 6009002c58 * configure.in (LIBPATHFLAG): should escape $. [ruby-dev:18572]
* mkconfig.rb: never substute escaped $$.

* instruby.rb: not install LIBRUBY_SO unless enable-shared.
  [ruby-dev:18569]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2987 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2002-10-23 17:40:36 +00:00
eban 79c8b98fac * configure.in (RUBY_CPPOUTFILE): fix cache file bug.
* lib/mkmf.rb (link_command): put 'opt' after conftest.c for
  static linking.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2978 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2002-10-21 16:09:09 +00:00
nobu b9ecdfaa3d * configure.in (XCFLAGS): CFLAGS to comile ruby itself.
* configure.in (LIBEXT): suffix for static libraries.

* configure.in (LIBPATHFLAG): switch template to specify library
  path.

* configure.in (LINK_SO): command to link shared objects.

* configure.in (DEFFILE, ARCHFILE): miscellaneous system dependent
  files.

* configure.in (EXPORT_PREFIX): prefix to exported symbols on
  Windows.

* configure.in (COMMON_LIBS, COMMON_MACROS, COMMON_HEADERS):
  libraries, macros and headers used in common.

* configure.in (RUBYW_INSTALL_NAME, rubyw_install_name): GUI mode
  excutable name.

* Makefile.in (CFLAGS): append XCFLAGS.

* Makefile.in (PREP): miscellaneous system dependent files.

* Makefile.in (ruby.imp, ext/extinit.o): moved from ext/extmk.rb.

* Makefile.in (fake.rb): CROSS_COMPILING keeps building platform.

* Makefile.in (MAKEFILES): depend on *.in and config.status.

* Makefile.in (parse.c): replace "y.tab.c" with actual name for
  byacc.

* ext/extmk.rb, lib/mkmf.rb: integrated.

* ext/extmk.rb: propagate MFLAGS.

* ext/extmk.rb (extmake): make dummy Makefile to clean even if no
  Makefile is made.

* lib/mkmf.rb (older): accept multiple file names and Time
  objects.

* lib/mkmf.rb (xsystem): split and qoute.

* lib/mkmf.rb (cpp_include): make include directives.

* lib/mkmf.rb (try_func): try wheather specified function is
  available.

* lib/mkmf.rb (install_files): default to site-install.

* lib/mkmf.rb (checking_for): added.

* lib/mkmf.rb (find_executable0): just find executable file with
  no message.

* lib/mkmf.rb (create_header): output header file is variable.

* lib/mkmf.rb (create_makefile): separate sections.

* lib/mkmf.rb (init_mkmf): initialize global variables.

* win32/Makefile.sub, bcc32/Makefile.sub (CPP, AR): added.

* bcc32/Makefile.sub (ARCH): fixed to i386.

* win32/Makefile.sub, bcc32/Makefile.sub (miniruby): should not
  link EXTOBJS.

* ext/dl/extconf.rb: use try_cpp to cross compile.

* ext/dl/extconf.rb: not modify files in source directory.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2977 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2002-10-21 14:17:44 +00:00
eban 396c29d195 * configure.in: use rb_cv_prog_gnu_ld on FreeBSD.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2933 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2002-10-04 05:46:45 +00:00
eban 5c57848093 * configure.in (RUBY_PROG_GNU_LD): check whether the linker is GNU ld.
* ext/extmk.rb (create_makefile): add -Wl,-no-undefined to $DLDFLAGS
  on Linux if GNU ld is used and --enable-shared is specified.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2931 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2002-10-04 05:18:05 +00:00
nobu 3a76a40196 * configure.in (RUBY_CHECK_IO_NEED_FLUSH): check whether fflush()
is needed.

* io.c (flush_before_seek): flush before seek if buffered data
  may remain.

* io.c (rb_io_check_readable): flush if the last operation was
  write.

* io.c (rb_io_check_writable): flush if the last operation was
  read.

* rubyio.h (FMODE_RBUF): added.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2923 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2002-10-02 14:59:25 +00:00
eban 06886efa95 * configure.in: set ac_cv_func_setitimer to "no" on Cygwin.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2918 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2002-10-02 04:28:01 +00:00
matz 4b9a7eac05 * io.c (appendline): forget to terminate with nul.
* eval.c (ruby_run): should set toplevel visibility again here.

* eval.c (rb_eval): should not rely on ruby_class == rb_cObject
  check.   Besides allow implicit publicity for attribute set
  methods.

* parse.y (primary): need not to check class_nest, just set
  whether method is an attrset or not.

* string.c (rb_str_each_line): p might be at the top of the
  string.

* class.c (rb_make_metaclass): class of metaclass should be
  metaclass of superclass, unless class itself is a metaclass;
  class of metaclass of metaclass should point back to self.
  eh, confusing, isn't it.

* class.c (rb_singleton_class): check if its class is singleton
  AND attached to self.

* eval.c (rb_eval): should define class/module under ruby_cbase.

* eval.c (rb_eval): should set class/module path based on
  ruby_cbase, not ruby_class.

* eval.c (module_setup): use ruby_cbase instead of ruby_class.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2887 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2002-09-25 07:03:05 +00:00
eban 849b1000b0 * configure.in (RUBY_MINGW32): new macro. check for the MinGW
compiler envionment.
* lib/mkmf.rb: refactoring.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2883 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2002-09-23 11:01:49 +00:00
eban ce296ec7fc * configure.in (OUTFLAG, CPPOUTFILE): moved from lib/mkmf.rb.
check whether ${CPP} accepts the -o option.
* win32/Makefile.sub (OUTFLAG, CPPOUTFILE): ditto.
* bcc32/Makefile.sub (OUTFLAG, CPPOUTFILE): ditto.
* djgpp/config.sed (OUTFLAG, CPPOUTFILE): ditto.
* lib/mkmf.rb (OUTFLAG, CPPOUTFILE): use CONFIG.
  make easy to understand log.
* mkconfig.rb (val): should not strip.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2867 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2002-09-15 12:57:21 +00:00
eban 4f26f3b890 * configure.in: modify program_prefix only if specified
--program-prefix.

* configure.in: don't generate ext/extmk.rb.

* Makefile.in: execute directly $(srcdir)/ext/extmk.rb.
  remove -Cext option, "Dir::chdir 'ext'" in ext/extmk.rb.

* {win32,bccwin32}/Makefile.sub: ditto.

* instruby.rb: ditto.

* ext/extmk.rb: renamed from ext/extmk.rb.in.

* lib/mkmf.rb (module Logging): create log files (mkmf.log)
  in each extension module directories.

* ext/extmk.rb: ditto.

* lib/mkmf.rb (macro_defined?): new method.

* ext/.cvsignore: remove extmk.rb.

* ext/*/.cvsignore: add "*.def".


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2819 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2002-09-08 09:08:15 +00:00
matz 40bc4f5ae4 * array.c (rb_ary_become): should not free ptr if it's shared.
* eval.c (rb_alias): prohibit making an alias named "allocate" if
  klass is a metaclass.

* string.c (rb_string_value_ptr): StringValuePtr() should never
  return NULL pointer.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2764 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2002-08-29 09:08:18 +00:00
eban 3685a85b3d * configure.in (ar): don't check twice for ar.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2753 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2002-08-28 07:38:25 +00:00
matz 1a44a463af * string.c (rb_str_delete_bang): should check if str->ptr is 0.
* string.c (rb_str_squeeze_bang): ditto.

* string.c (rb_str_count): ditto.

* string.c (rb_str_lstrip_bang): ditto.

* string.c (rb_str_rstrip_bang): ditto.

* string.c (rb_str_intern): ditto.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2752 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2002-08-28 06:01:58 +00:00
matz c45908e41f * file.c (rb_find_file): $LOAD_PATH must not be empty.
* file.c (rb_find_file_ext): ditto.

* range.c (range_eq): class check should be based on range.class,
  instead of Range to work with Range.dup.

* range.c (range_eql): ditto.

* class.c (rb_mod_dup): need to preserve metaclass and flags.

* object.c (rb_cstr_to_dbl): had a buffer overrun.

* marshal.c (w_class): integrate singleton check into a funciton
  to follow DRY principle.

* marshal.c (w_uclass): should check singleton method.

* object.c (rb_obj_dup): dmark and dfree functions must be match
  for T_DATA type.

* object.c (rb_obj_dup): class of the duped object must be match
  to the class of the original.

* re.c (rb_reg_quote): do not escape \t, \f, \r, \n, for they are
  not regular expression metacharacters.

* time.c (time_s_alloc): use time_free instead of free (null check,
  also serves for type mark).

* time.c (time_s_at): check dfree function too.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2748 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2002-08-27 08:31:08 +00:00
eban fc8f412488 * configure.in: RUBY_SO_NAME is msvcrt-rubyXX on mswin32/mingw32.
* configure.in (sitearch): new var.
* mkconfig.rb, lib/mkmf.rb (sitearch): ditto.
* win32/Makefile.sub, win32/setup.mak (sitearch): ditto.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2737 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2002-08-23 08:18:19 +00:00
eban 35ef113acf * configure.in: set ac_cv_func__setjump to "no" on Cygwin.
* configure.in: set ac_cv_func_crypt to "no" on MinGW.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2729 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2002-08-21 07:17:55 +00:00
eban ebe2d10c43 * configure.in: remove initstate checking.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2683 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2002-08-02 15:14:02 +00:00