26472 Commits

Author SHA1 Message Date
akr
aaf6bde978 update async-signal-safe comments.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@35945 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-06-06 11:58:09 +00:00
akr
70232e400c * process.c (proc_exec_v): don't call dln_find_exe_r here because it
is not async-signal-safe and proc_exec_v is called in a child
  process.
  command_abspath field of rb_exec_arg.
  (rb_exec_fillarg): call dln_find_exe_r and set command_abspath.
  (rb_exec_err): Give the absolute path of the invoking command for
  proc_exec_v, instead of the command name.

* internal.h: add command_abspath field for rb_exec_arg. 



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@35944 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-06-06 11:49:30 +00:00
akr
7685837427 * process.c (try_with_sh): take envp argument.
(exec_with_sh): ditto.  use it for execve.
  (proc_exec_v): provide envp for try_with_sh.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@35943 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-06-06 11:09:26 +00:00
usa
96b96832c1 * ChangeLog: typo. [Feature #4906]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@35938 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-06-06 05:04:50 +00:00
usa
f047b1f0dc * win32/win32.c, include/ruby/win32.h (rb_w32_wrap_io_handle): new API.
this API wraps an I/O handle (HANDLE or SOCKET) and returns fd.
  the second parameter should be combination of O_*, for example,
  O_RDWR | O_BINARY | O_NOINHERT.

* win32/win32.c, include/ruby/win32.h (rb_w32_unwrap_io_handle): new
  API.  this API unwraps an I/O handle and close the fd (not closes
  the handle itself).

[Feature #4960] [ruby-core:37227]



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@35937 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-06-06 04:29:38 +00:00
usa
4c3e402cda * win32/win32.c (rb_w32_close): of course, console handle is not socket.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@35936 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-06-06 04:18:53 +00:00
usa
494d01410f * process.c (rb_run_exec_options_err): allocate a temporary buffer for
run_exec_dup2() for restoring fds on non-fork environments.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@35935 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-06-06 03:39:40 +00:00
usa
5e1e5d04ee * test/dl/test_c_{struct_entry,union_entity}.rb: sorry, typos.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@35934 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-06-06 00:46:12 +00:00
akr
a4ef2bbdd1 * process.c (rb_exec_fillarg): check use_shell field before accessing
a union field.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@35933 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-06-05 20:29:15 +00:00
naruse
1c4e6066be Split one big test to seven tests.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@35932 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-06-05 20:10:50 +00:00
akr
c8d6b6e8fa * process.c (rb_spawn_process): prog variable is not used for Unix.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@35931 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-06-05 19:59:43 +00:00
akr
0acd09c9e5 update async-signal-safe comments.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@35930 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-06-05 15:31:39 +00:00
svn
baf500dc03 * 2012-06-06
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@35929 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-06-05 15:24:37 +00:00
akr
3162e673a1 * internal.h (rb_exec_arg_init): change return type to void.
* process.c (rb_exec_arg_init): don't return a value.
  (rb_exec_arg_prepare): ditto.
  (rb_spawn_process): don't take the prog argument.  extract the 
  information from earg.
  (rb_spawn_internal): follow rb_spawn_process change.
  (rb_f_spawn): ditto.

* io.c (pipe_open): don't take the prog argument.  extract the
  information from eargp.
  (pipe_open_v): follow pipe_open change.
  (pipe_open_s): ditto.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@35928 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-06-05 15:24:32 +00:00
akr
53b17a769b * internal.h (rb_exec_arg): use union to represent command invocation
with/without shell.

* process.c: follow the rb_exec_arg change.

* io.c (pipe_open): ditto.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@35927 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-06-05 14:53:31 +00:00
akr
71e7935331 update async-signal-safe comments.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@35926 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-06-05 14:33:32 +00:00
akr
a79bbdf6b5 * internal.h: rb_exec_arg and related stuff moved from intern.h
* include/ruby/intern.h (rb_proc_exec_n): removed.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@35925 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-06-05 13:29:54 +00:00
nobu
60d5e14b92 installation dependencies
* common.mk (do-install-{all,nodoc,arch}): fix installation
  dependencies so build exts also.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@35924 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-06-05 13:08:47 +00:00
akr
ad5bfed17c * process.c (rb_exec_arg_fixup): allocate a temporary buffer for
run_exec_dup2 here because it should be async-signal-safe.
  (run_exec_dup2): use the temporary buffer.
  (run_exec_dup2_tmpbuf_size): new function.

* include/ruby/intern.h (rb_exec_arg): add dup2_tmpbuf field.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@35923 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-06-05 12:59:40 +00:00
nobu
2073258a7d obj_init_copy
* object.c (rb_obj_init_copy): should check if trusted too.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@35922 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-06-05 11:13:18 +00:00
akr
b1ae6e473e * process.c (strtok): declaration removed because it is not used.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@35921 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-06-05 10:59:51 +00:00
akr
e3d685907c * process.c (proc_spawn): don't detect simple command line here
because rb_exec_fillarg already did.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@35920 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-06-05 10:35:47 +00:00
akr
e58ec33721 * process.c (rb_exec_fillarg): bail out a loop eagerly.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@35919 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-06-05 10:21:22 +00:00
akr
5b13036fce * process.c: add comments about async-signal-safe.
* io.c: ditto.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@35918 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-06-05 10:16:11 +00:00
nobu
ff3b2cb1ce * properties.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@35916 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-06-05 01:29:43 +00:00
svn
5da6f55457 * 2012-06-05
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@35915 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-06-05 00:37:11 +00:00
drbrain
e1b230d557 * io.c: Edited documentation for IO and File open and new and
Kernel#open for consistency and clarity.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@35914 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-06-05 00:37:08 +00:00
nobu
07e222d720 no windows dialog
* win32/win32.c (rb_w32_sysinit): let the system not display the
  critical-error-handler message box and the Windows Error Reporting
  dialog.  [ruby-core:45389] [Bug #6535]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@35913 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-06-04 12:54:00 +00:00
akr
9ab2ce20b3 don't exec in the test process.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@35912 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-06-04 12:52:35 +00:00
akr
993b4f3911 add comment.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@35911 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-06-04 11:13:47 +00:00
akr
71fd73dff8 * process.c (rb_exec_fillarg): allocate one more element before
beginning in argv_str for try_with_sh.

* internal.h (ARGVSTR2ARGC): adjust for the above change.
  (ARGVSTR2ARGV): ditto.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@35910 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-06-04 11:01:41 +00:00
akr
41819dc447 * internal.h (ARGVSTR2ARGC): defined.
(ARGVSTR2ARGV): defined.

* process.c (proc_exec_v): use ARGVSTR2ARGV.
  (rb_spawn_process): use ARGVSTR2ARGC and ARGVSTR2ARGV.

* io.c (pipe_open): use ARGVSTR2ARGV.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@35909 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-06-04 10:19:32 +00:00
ko1
06513cc1cf * vm_insnhelper.h: remove magical code "lfp[0] & 0x02".
Current VM doesn't use this bit.
* vm_core.h (RUBY_VM_GET_BLOCK_PTR): added.
* eval.c (rb_block_given_p): use RUBY_VM_GET_BLOCK_PTR().
* vm_eval.c (rb_f_block_given_p): ditto.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@35908 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-06-04 07:24:44 +00:00
nobu
82aa43407c win32: VT100 escape
* win32/win32.c (constat_apply): apply VT100 functions.
  [ruby-core:44958] [Feature #6418]
* win32/win32.c (constat_parse): parse some VT100 escape sequence.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@35907 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-06-04 06:39:40 +00:00
nobu
de8eb56e88 merge definitions
* process.c (proc_exec_v, rb_proc_exec_e): merge definitions.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@35906 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-06-04 05:46:24 +00:00
nobu
b89e9bf544 unused parameter
* process.c (proc_spawn_n): remove unused parameter.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@35905 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-06-04 05:46:22 +00:00
nobu
a99d3a6271 unused variables
* io.c (pipe_open): argc and argv are not used on win32.

* process.c (rb_spawn_process): remove already useless variables.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@35904 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-06-04 05:33:43 +00:00
usa
9bb642d65a * process.c (rb_exec_err): should preserve errno.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@35903 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-06-04 05:06:56 +00:00
naruse
efebb5b157 Suppress warnings.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@35902 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-06-04 05:02:27 +00:00
usa
00e4c2e362 * test/dl/test_c_{struct,union}_entity.rb: broken require.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@35901 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-06-04 04:10:44 +00:00
ko1
2e7c769633 * test/ruby/test_backtrace.rb: fix test.
Windows path includes `:' character.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@35900 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-06-04 03:04:34 +00:00
ko1
bac9f65f70 * vm_core.h (rb_location_t): fix type and field name.
(1) rename rb_location_t to rb_iseq_location_t.
  (2) rename field names of rb_iseq_location_t to adjust
  RubyVM::Backtrace::Location methods.
  (2-1) filename -> path
  (2-2) filepath -> absolute_path
  (2-3) basename -> base_label
  (2-4) name -> label
  (3) rename filed name rb_iseq_location_t#line_no to
  rb_iseq_location_t#first_lineno to clear purpose of this field.
  (4) The field names rb_binding_t#(filename|line_no) are also renamed
  to rb_binding_t#(path|first_lineno).
* compile.c: apply above changes.
* iseq.c: ditto.
* proc.c: ditto.
* vm*.c: ditto.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@35899 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-06-04 02:49:37 +00:00
nobu
81a0c608eb compatible loader
* marshal.c (r_object0): also load TYPE_USRMARSHAL, TYPE_DATA using
  compatible loader.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@35898 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-06-04 02:40:30 +00:00
usa
2493e48d40 * process.c (rb_run_exec_options_err): restore save_env() call for
non-fork environments.

* process.c (rb_exec_err): restore environments after the failure of
  exec to fix [ruby-core:44093] [Bug #6249] on non-fork environments


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@35897 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-06-04 02:36:11 +00:00
usa
859869e522 * io.c (pipe_open): follow up changes in r35889.
* process.c (proc_spawn_n): now uses char ** instead of VALUE *.

* process.c (rb_spawn_process): prog is now VALUE of String, not char *.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@35896 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-06-04 01:44:27 +00:00
nobu
436d819bf2 adjust indent
* marshal.c (r_object0): adjust indent.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@35895 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-06-03 21:13:36 +00:00
nobu
f392a8aa9b remove old warning
* marshal.c (r_object0): remove old warning for _alloc.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@35894 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-06-03 21:12:46 +00:00
tadf
eb6579e647 * marshal.c: experimental test aborted.
* complex.c: ditto.
	* rational.c: ditto.
	* include/ruby/intern.h: ditto.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@35893 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-06-03 19:26:58 +00:00
akr
6b348951ca * process.c (rb_spawn_process): fix for Windows. not tested.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@35892 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-06-03 15:45:46 +00:00
svn
78713916be * 2012-06-04
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@35891 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-06-03 15:13:59 +00:00