Commit graph

580 commits

Author SHA1 Message Date
nobu
7a929727f6 error.c: rb_name_err_new
* error.c (rb_name_err_new): new function to create NameError
  exception instance.  [Feature #10881]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@52320 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-10-28 06:23:16 +00:00
nobu
2ce7328dea id.def: internal IDs
* defs/id.def: move internal IDs for frozen-string-literal-debug.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@52300 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-10-27 08:06:58 +00:00
nobu
caada48ee8 error.c: suppress warnings
* error.c (rb_error_frozen_object): use rb_attr_get instead of
  rb_ivar_get to get rid of warnings for string objects created
  when frozen-string-literal-debug is disabled.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@52299 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-10-27 07:41:07 +00:00
nobu
94bdb010f6 update document [ci skip]
* error.c (ArgumentError): [DOC] update document following
  [Feature #9025]

* proc.c (proc_call, proc_curry): [DOC] ditto.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@52274 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-10-25 00:39:29 +00:00
ko1
54716fe7eb * ruby.c: introduce --enable-frozen-string-literal-debug option.
If this option is enabled, the modify error will be:
    can't modify frozen String (RuntimeError) =>
    can't modify frozen String, created at test.rb:3 (RuntimeError)

* iseq.h: add compile option frozen_string_literal_debug.

* compile.c: catch up this fix.

* error.c (rb_error_frozen): ditto.

* iseq.c (set_compile_option_from_hash): ditto.

* test/ruby/test_rubyoptions.rb: add a test for this fix.




git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@52257 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-10-23 19:02:55 +00:00
nobu
f8a83d8563 error.c: use fake string
* error.c (name_err_mesg_to_str): use fake string as rb_str_format
  does not require T_STRING to be cannonical VALUE.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@52248 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-10-23 14:27:37 +00:00
nobu
5bf61f4540 error.c: separate class names
* error.c (name_err_mesg_to_str): separate class names from the
  receiver description.
* vm_eval.c (make_no_method_exception, raise_method_missing): add
  format specifiers for class names.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@52247 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-10-23 12:10:40 +00:00
nobu
4191a6b90d preserve encodings in error messages
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51962 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-09-28 02:40:46 +00:00
nobu
f94ed2ce4b error.c: remove singleton method
* error.c (rb_name_err_mesg_new): remove singleton method, and
  unused argument.

* vm_eval.c (make_no_method_exception): call rb_name_err_mesg_new
  directly instead of constant lookup and method invocation.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51025 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-06-25 07:11:45 +00:00
nobu
c23a7b0db8 error.c: ArgumentError if no receiver
* error.c (name_err_receiver): raise ArgumentError if no receiver
  is available on this exception object.  [Feature #10881]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51002 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-06-23 05:32:52 +00:00
nobu
8283e4fd75 error.c: index numbers
* error.c (rb_name_err_mesg_new, name_err_mesg_to_str): name magic
  numbers of indexes.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51001 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-06-23 05:32:30 +00:00
nobu
51de63dfb9 error.c: NameError#receiver
* error.c (name_err_receiver): add NameError#receiver method.
  [Feature #10881]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@50945 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-06-18 04:32:50 +00:00
nobu
cb54008be6 wrapper object before alloc
* error.c (rb_name_err_mesg_new): new wrapper object before
  allocate data area and get rid of potential memory leak.
  GC guards are no longer needed.

* file.c (stat_new_0): ditto.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@50510 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-05-16 12:56:29 +00:00
nobu
4ce15bf491 vm_dump.c: statement for crash report log
* vm_dump.c (preface_dump): move the statement to include crash
  report log file from REPORTBUG_MSG in error.c.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@50475 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-05-12 07:22:57 +00:00
nobu
27440e6721 error.c: update builtin_types
* error.c (builtin_types): update for r49932, insert T_IMEMO and
  move T_UNDEF.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@50121 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-03-30 06:24:40 +00:00
nobu
0d20fbe3bd eval.c: static IDs
* eval.c (ruby_static_id_signo, ruby_static_id_status): add static
  IDs, signo and status.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@49700 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-02-23 07:05:30 +00:00
nobu
31929bab1f error.c: predefined IDs
* error.c (id_bt, id_bt_locations): use IDs predefined in id.h.

* vm_args.c (raise_argument_error): ditto.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@49697 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-02-23 07:05:06 +00:00
nobu
8c13c9cb0e error.c: use static IDs
* error.c: use rb_ivar_set with static IDs instead of rb_iv_set
  with strings.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@49694 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-02-22 22:57:18 +00:00
nobu
16294913f7 use rb_funcallv
* use rb_funcallv() for no arguments call instead of variadic
  rb_funcall().

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@49612 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-02-16 04:08:52 +00:00
nobu
745737e769 error.c: use static IDs
* error.c (Init_Exception): initialize static IDs first.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@49611 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-02-16 03:58:28 +00:00
nobu
18db8cea6a error.c: rb_sys_enc_warning
* error.c (rb_sys_enc_warning): new function to show warning and
  error message with the encoding.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@49527 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-02-06 08:37:24 +00:00
nobu
ae2d32304b error.c: warning_string
* error.c (warning_string): extract a method to create warning
  message string.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@49526 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-02-06 08:37:19 +00:00
nobu
dc7cefff5b error.c: fix r49479
* error.c (rb_mod_sys_fail_str): copy the given format.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@49483 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-02-03 08:23:39 +00:00
nobu
338bd4cc65 remove duplication in warning
* dir.c (sys_warning_1): remove duplication in the message.
* error.c (rb_mod_sys_fail_str): ditto.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@49479 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-02-03 06:15:51 +00:00
nobu
01195a202c ruby.h: parent in rb_data_type_t
* ruby.h (rb_data_type_t): revert r48647 and revise parent member.
  [ruby-core:66969] [Bug #10621]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48962 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-12-24 03:16:31 +00:00
nobu
e580a631be use 0 for reserved
use 0 for rb_data_type_t::reserved instead of NULL, since its type
may be changed in the future and possibly not a pointer type.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48662 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-12-01 06:38:04 +00:00
nobu
544d28c300 ruby.h: no parent in rb_data_type_t
* error.c (rb_typeddata_is_kind_of, rb_check_typeddata): ditto.
* error.c (rb_typeddata_inherited_p): deprecate. still keep for
  potential binary compatibility.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48647 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-11-29 07:14:53 +00:00
nobu
374fcff28c error.c: simplify message building
* error.c (syserr_initialize): simplify message building and get
  rid of potential invalid byte sequence.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48643 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-11-29 00:37:12 +00:00
nobu
606e855622 rb_id2str over rb_id2name
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48575 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-11-25 18:44:22 +00:00
nobu
c01aaf60a5 id.def: move IDs for exception
* defs/id.def: add :mesg and :exception and move from other
  sources.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48457 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-11-16 08:33:35 +00:00
akr
7cd76ab0c5 * internal.h: Include ruby.h and ruby/encoding.h to be
includable without prior inclusion.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48447 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-11-15 11:49:06 +00:00
nobu
558b9191c0 vm_eval.c: UncaughtThrowError
* vm_eval.c (rb_throw_obj): throw UncaughtThrowError instead of
  ArgumentError.  [Feature #10480]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48433 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-11-15 07:28:08 +00:00
nobu
8d9e1f9dad error.c: check if EWOULDBLOCK is defined
* error.c (set_syserr): EWOULDBLOCK may not be defined, check if
  defined first.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48049 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-10-20 06:58:16 +00:00
zzak
856624228c * error.c: [DOC] Fix case of type in exception message by @tricknotes
[Fixes GH-740] https://github.com/ruby/ruby/pull/740

* object.c: ditto


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47917 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-10-14 19:54:36 +00:00
usa
8474ebad8a * error.c: update exception tree. [DOC]
reported by @hemge via twitter.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47820 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-10-06 12:43:51 +00:00
nobu
8b9afe6520 error.c: preserve encoding
* error.c (rb_error_frozen_object): preserve encoding of class
  name in error message.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47634 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-09-19 01:46:42 +00:00
nobu
876bfc6b4e Init functions don't need ID caches
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@46663 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-07-03 03:38:10 +00:00
nobu
f2980e3e20 encoding.h: constify rb_encoding
* include/ruby/encoding.h: constify `rb_encoding` itself, not only
  arguments.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@46322 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-06-02 20:23:47 +00:00
nobu
046831094b constify rb_encoding and OnigEncoding
* include/ruby/encoding.h: constify `rb_encoding` arguments.
* include/ruby/oniguruma.h: constify `OnigEncoding` arguments.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@46309 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-06-01 22:06:11 +00:00
nobu
82f4c4d4d7 report bug with machine regisiters
* error.c (rb_bug_context): new function to report bug with
  context.
* vm_dump.c (rb_vm_bugreport): accepts `ucontext_t` argument to
  dump machine regisiters.  based on [GH-584].
* signal.c (sigbus, sigsegv): dump machine regisiters if available.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@46106 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-05-25 03:46:55 +00:00
nobu
20061dad6a error.c: Crash Report log
* error.c (REPORTBUG_MSG): mention about Crash Report log file on
  MacOS X.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44916 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-02-12 02:25:30 +00:00
kazu
bd950a75b5 * error.c: [DOC] Exception#cause may return nil. [ci skip]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44798 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-02-03 03:05:51 +00:00
zzak
16220d9abb * error.c: [DOC] Document Exception#cause by @jasonrclark [ci skip]
[Fixes GH-519] https://github.com/ruby/ruby/pull/519


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44783 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-01-31 21:31:12 +00:00
ko1
0aed7c6874 * error.c: add Exception#backtrace_locations.
Now, there are no setter and independent from Exception#backtrace.
  [Feature #8960]
* eval.c (setup_exception): set backtrace locations for `bt_location'
  special attribute.
* vm_backtrace.c (rb_backtrace_to_location_ary): added.
* internal.h: ditto.
* test/ruby/test_backtrace.rb: add a test for
  Exception#backtrace_locations.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44170 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-12-13 04:31:06 +00:00
nobu
b050cc5ab9 error.c: Exception#cause
* error.c (exc_cause): captured previous exception.
* eval.c (make_exception): capture previous exception automagically.
  [Feature #8257]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43636 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-11-10 13:16:33 +00:00
ko1
c5e08b764e * add RUBY_TYPED_FREE_IMMEDIATELY to data types which only use
safe functions during garbage collection such as xfree().
  On default, T_DATA objects are freed at same points as fianlizers.
  This approach protects issues such as reported by [ruby-dev:35578].
  However, freeing T_DATA objects immediately helps heap usage.
  Most of T_DATA (in other words, most of dfree functions) are safe.
  However, we turned off RUBY_TYPED_FREE_IMMEDIATELY by default
  for safety.
* cont.c: ditto.
* dir.c: ditto.
* encoding.c: ditto.
* enumerator.c: ditto.
* error.c: ditto.
* file.c: ditto.
* gc.c: ditto.
* io.c: ditto.
* iseq.c: ditto.
* marshal.c: ditto.
* parse.y: ditto.
* proc.c: ditto.
* process.c: ditto.
* random.c: ditto.
* thread.c: ditto.
* time.c: ditto.
* transcode.c: ditto.
* variable.c: ditto.
* vm.c: ditto.
* vm_backtrace.c: ditto.
* vm_trace.c: ditto.
* ext/bigdecimal/bigdecimal.c: ditto.
* ext/objspace/objspace.c: ditto.
* ext/stringio/stringio.c: ditto.
* ext/strscan/strscan.c: ditto.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43466 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-10-29 11:16:54 +00:00
nobu
6cb24cee64 error.c: remove NameError#to_s
* error.c (name_err_to_s): remove no longer needed overriding, since
  r30455 which made exc_to_s almost same.  Fixes [GH-413].

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43447 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-10-28 04:17:20 +00:00
nobu
c6b9f2913a internal.h: rb_syserr_fail_path
* error.c (rb_syserr_fail_path_in): new function split from
  rb_sys_fail_path_in to raise SystemCallError without errno.
* internal.h (rb_syserr_fail_path): like rb_sys_fail_path but without
  errno.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43372 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-10-20 06:29:06 +00:00
ko1
f9718bf703 * error.c (rb_bug_reporter_add): return simply 0 if failed.
Please check return value.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43312 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-10-16 20:32:28 +00:00
ko1
955a38da08 * error.c, internal.h (rb_bug_reporter_add): add a new C-API.
rb_bug_reporter_add() allows to register a function which
  is called at rb_bug() called.
* ext/-test-/bug_reporter/bug_reporter.c: add a test for this C-API.
* ext/-test-/bug_reporter/extconf.rb: ditto.
* test/-ext-/bug_reporter/test_bug_reporter.rb: ditto.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43303 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-10-16 08:39:39 +00:00