Commit graph

1241 commits

Author SHA1 Message Date
nobu
4e2fd6be8d * eval.c (rb_eval): iterator should return value from next inside
begin/rescue/end.  (ruby-bugs:PR#1218)


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@4969 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-11-16 09:11:01 +00:00
matz
8fe88cc466 * eval.c (eval): prepend error position in evaluating string to
"mesg" attribute string only when it's available and is a
  string.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@4967 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-11-16 04:34:05 +00:00
matz
8eb537a88a * eval.c (eval): do not re-raise exception to avoid unnecessary
exception copying, instead modify exception and internal
  information to adjust eval().

* eval.c (backtrace): can return the current frame information
  only if lev < -1.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@4962 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-11-15 23:45:26 +00:00
matz
ba2147ba40 * eval.c (rb_method_node): new API to retrieve method body.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@4957 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-11-14 23:54:06 +00:00
matz
86327765f3 * eval.c (rb_load): save and restore rb_prohibit_interrupt.
[ruby-dev:21857]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@4913 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-11-06 16:08:26 +00:00
matz
818d6a1e4f * eval.c (rb_load): allow interrupt during loaded program
evaluation.  [ruby-dev:21834]

* hash.c (rb_hash_fetch): always warn if default argument and a
  block are supplied at the same time. [ruby-dev:21842]

* hash.c (env_fetch): ditto.

* array.c (rb_ary_fetch): ditto.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@4910 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-11-06 07:22:39 +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
matz
a4934a42cb * io.c (read_all): fptr->f may be NULL, if IO is closed in the
signal handler.

* io.c (io_read): ditto.

* string.c (get_pat): remove 1.8.0 warning code.

* string.c (rb_str_match): extend warning until 1.8.2.

* string.c (rb_str_match2): ditto.

* class.c (class_instance_method_list): remove 1.8.0 warnings.
  method_list now recurs.  [ruby-dev:21816]

* class.c (rb_obj_singleton_methods): ditto.

* array.c (rb_ary_select): remove select with block.
  [ruby-dev:21824]

* hash.c (rb_hash_select): ditto.

* hash.c (env_select): ditto.

* re.c (match_select): ditto.

* struct.c (rb_struct_select): ditto.

* process.c (check_uid_switch): remove duplicated error messages.

* process.c (check_gid_switch): ditto.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@4892 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-11-04 09:13:57 +00:00
matz
394738639e 031031
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@4874 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-10-30 16:33:32 +00:00
matz
1a8ccefafc * io.c (READ_DATA_BUFFERED): new macro to detect whether stdio
buffer filled.

* io.c (rb_io_fptr_cleanup): move path deallocation to
  rb_io_fptr_finalize (finalizer called by GC).


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@4865 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-10-30 09:36:41 +00:00
matz
cf22db8d69 * parse.y (logop): left may be NULL. [ruby-talk:84539]
* eval.c (rb_eval): NODE_CASE nd_head may be NULL.

* eval.c (rb_eval): remove never occurred NODE_WHEN branch.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@4864 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-10-30 04:37:50 +00:00
matz
525336fcc9 * eval.c (proc_invoke): single array value to normal Proc#call
(i.e. not via lambda call), should be treated just like yield.
  [ruby-dev:21726]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@4860 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-10-29 17:47:24 +00:00
matz
8bf300f149 * eval.c (rb_longjmp): must not disturb original jump.
[ruby-dev:21733]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@4855 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-10-29 08:21:11 +00:00
matz
27ff072349 * eval.c (Init_Proc): taint preallocated exception object
sysstack_error. [ruby-talk:84534]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@4854 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-10-29 06:53:48 +00:00
nobu
ed5208d851 * eval.c (rb_longjmp): ignore reentering error while warning.
[ruby-dev:21730]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@4847 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-10-27 10:19:57 +00:00
matz
b6beb8d943 * eval.c (rb_method_missing): protect exception from within
"inspect".  (ruby-bugs PR#1204)


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@4841 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-10-25 00:36:56 +00:00
nobu
d74e7e6837 * eval.c (ruby_cleanup): initialize stack bottom for embedding.
[ruby-dev:21686]

* ext/dl/extconf.rb: move list of files to clean from DEPEND file,
  to get rid of macro redefinitions.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@4836 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-10-23 08:59:42 +00:00
nobu
38d2bcf47c typo in comment.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@4834 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-10-23 02:19:00 +00:00
matz
903f98a643 * eval.c (ruby_cleanup): should not ignore exit_value in END
execution. [ruby-dev:21670]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@4828 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-10-21 17:38:37 +00:00
matz
06d9340f2e * eval.c (ruby_cleanup): call finalizers and exit procs before
terminating threads.

* eval.c (ruby_cleanup): preserve ruby_errinfo before ruby_finalize_0().


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@4826 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-10-21 14:42:15 +00:00
nobu
d6153337f6 * eval.c (rb_eval): set current node after arguments evaluation.
[ruby-dev:21632]

* eval.c (rb_yield_0): set current node and keep it at local jump.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@4814 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-10-20 14:55:50 +00:00
nobu
28f2a1da54 * eval.c (rb_thread_cleanup): keep thread group for main thread.
[ruby-dev:21644]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@4813 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-10-20 13:01:21 +00:00
nobu
229c37a6da * eval.c (rb_catch): backout.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@4812 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-10-20 09:28:13 +00:00
matz
6eb98c5ebe * eval.c (PUSH_FRAME): generate unique number to be TAG_JUMP()
destination.

* eval.c (localjump_destination): use unique number in ruby_frame
  for localjump destination.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@4811 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-10-20 08:33:49 +00:00
nobu
c12ae030ba * eval.c (ruby_run): just return FAILURE instead of parse error
count.  [ruby-list:38569]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@4776 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-10-15 06:00:57 +00:00
matz
87025fdd43 * marshal.c (w_object): dump extended modules as well.
* marshal.c (r_object0): TYPE_USRMARSHAL should restore extended
  modules before invoking marshal_load.  these two fixes are done
  by Masatoshi Seki <m_seki@mva.biglobe.ne.jp>.

* parse.y (yylex): argument parentheses preceded by spaces should
  be warned; not error.  [ruby-talk:84103]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@4774 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-10-15 02:27:56 +00:00
nobu
0b841783b5 * eval.c (ruby_finalize_0): return the given exit status unless
SystemExit got raised.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@4759 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-10-14 10:09:39 +00:00
nobu
83fbff2f74 commit miss.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@4755 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-10-13 17:34:50 +00:00
nobu
e7257aa72e * eval.c (rb_require_safe): segfault after loading .so.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@4754 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-10-13 17:29:34 +00:00
nobu
4de0bb549b * eval.c (rb_feature_p): match by classified suffix.
* eval.c (rb_require_safe): require library in the specified safe
  level.

* variable.c (rb_autoload, rb_autoload_load): restore safe level
  when autoload was called.  [ruby-dev:21338]

* intern.h: prototypes; rb_require_safe.

* test/runner.rb: accept non-option arguments.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@4751 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-10-13 14:57:36 +00:00
matz
1184373d86 * string.c (str_new4): should not preserve FL_TAINT status in the
internal shared string. [ruby-dev:21601]

* string.c (rb_str_new4): ditto.

* eval.c: use EXIT_SUCCESS and EXIT_FAILURE for exit values.

* process.c: ditto. [ruby-dev:38521]

* lib/debug.rb (debug_command): should enter emacs mode when
  assigned any value to the environment variable "EMACS".
  On Meadow, (getenv "EMACS") is "meadow".


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@4749 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-10-13 13:05:24 +00:00
nobu
3354489d06 * eval.c (is_defined): inheritance line adjustment as like as
rb_call_super().


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@4735 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-10-09 22:50:57 +00:00
nobu
67a98cd52f * eval.c (rb_thread_start_0): prevent thread from GC.
[ruby-dev:21572]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@4732 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-10-09 14:50:24 +00:00
nobu
8022abdc69 * eval.c (rb_thread_start_0): non-volatile should be restored from
volatile.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@4731 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-10-09 10:11:48 +00:00
nobu
dd3eed4f08 * eval.c (proc_save_safe_level, proc_get_safe_level,
proc_set_safe_level): save/restore safe level 1..4.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@4730 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-10-09 08:43:39 +00:00
nobu
582b7e1ca9 * eval.c (rb_set_end_proc, rb_exec_end_proc): restore safe level.
[ruby-dev:21557]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@4728 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-10-09 05:05:43 +00:00
nobu
894d8d9e61 * eval.c (rb_yield_0): no error if block is empty.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@4727 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-10-09 01:51:08 +00:00
nobu
5cefaf0c8f eval.c (eval): re-indented.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@4725 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-10-09 00:09:40 +00:00
nobu
c0e5a7c63f * eval.c (localjump_error): id should be ID.
* eval.c (rb_eval): nd_rval is set in copy_node_scope().

* eval.c (rb_yield_0): unused variable.

* eval.c (rb_yield_0): nothing to do for empty node.

* eval.c (call_end_proc, proc_invoke): adjust backtrace in END.
  [ruby-dev:21551]

* eval.c (rb_thread_start_0): set the value by break as the result.
  [ruby-dev:21552]

* eval.c (rb_thread_start_0, rb_thread_raise, rb_callcc): save
  variables across THREAD_SAVE_CONTEXT.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@4723 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-10-08 21:43:36 +00:00
matz
8a4abe47ca * parse.y (stmt): rhs of multiple assignment should not be
expanded using "to_a". [ruby-dev:21527]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@4710 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-10-06 17:59:53 +00:00
matz
56235e083d * marshal.c (w_object): should pass "weak" value to next level.
[ruby-dev:21496]

* eval.c (proc_alloc): should not use cached object if klass is
  different. [ruby-talk:83685]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@4701 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-10-06 01:50:41 +00:00
nobu
92abdcefe4 * eval.c (rb_f_END): block should be given. [ruby-dev:21497]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@4699 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-10-05 14:07:07 +00:00
nobu
4aa8b47bb9 * eval.c (rb_eval): fix evaluation order. [ruby-list:38431]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@4695 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-10-05 08:56:34 +00:00
matz
415283ac95 * marshal.c (w_object): instance variable dump do not cause error
for objects that cannot be dumped, if they traversed from
  marshal_dump.  they are just ignored.

* gc.c (Init_stack): cast "space" (doble value) into unsigned
  int.  should run on PowerPC.

* eval.c (rb_eval): should not execute else part if any exception
  is caught. [ruby-dev:21482]

* parse.y (f_args): should allow unparenthesized block argument.

* parse.y (f_rest_arg): should allow unparenthesized rest
  argument.

* lib/irb/ruby-lex.rb (RubyLex::identify_identifier): support
  'class ::Foo' syntax. [ruby-talk:83514]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@4680 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-10-04 17:51:11 +00:00
matz
10c4bb29b2 * time.c (time_load): restore instance variables (if any) before
loading from marshaled data.

* time.c (time_mdump): new marshal dumper. _dump is still
  available for compatibility.

* time.c (time_mload): new marshal loader.

* marshal.c (w_object): preserve instance variables for objects
  with marshal_dump.

* marshal.c (r_object0): restore instance variables before calling
  marshal_load.

* error.c (rb_warn_m): always return nil.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@4651 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-10-02 08:25:00 +00:00
usa
8caf81f1ea * eval.c (rb_thread_raise): prototype; avoid VC++ warning.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@4647 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-10-01 18:26:11 +00:00
matz
63aa00cb08 * eval.c (rb_f_block_given_p): real required condition is
ruby_frame->prev->iter == ITER_CUR.

* eval.c (rb_block_given_p): ditto.

* eval.c (block_pass): update ruby_frame->iter only when previous
  value is ITER_NOT.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@4645 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-10-01 16:36:47 +00:00
matz
969f4d4c68 * ext/etc/etc.c: add new functions: setpwent, getpwent, endpwent,
setgrent, getgrent, endgrent.

* ext/socket/socket.c (sock_s_gethostbyname): do not reverse lookup.

* Makefile.in: copy lex.c from $(srcdir) if it's not the current
  directory.  [ruby-dev:21437]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@4640 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-10-01 13:41:35 +00:00
nobu
28057a36b6 * eval.c (rb_load): Object scope had priority over required file
scope.  [ruby-dev:21415]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@4636 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-10-01 08:01:33 +00:00
matz
13ac4447f6 * eval.c (rb_eval): while/until should not capture break unless
they are destination of the break.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@4629 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-09-30 00:21:14 +00:00