summaryrefslogtreecommitdiffhomepage
path: root/src/error.c
AgeCommit message (Collapse)Author
2017-02-15Do not funcall() Exception#set_backtrace from runtime.Yukihiro "Matz" Matsumoto
This change reduce flexibility but makes mruby simpler and faster.
2017-02-15Preallocate SystemStackError; ref #3421Yukihiro "Matz" Matsumoto
2017-01-23Backtrace list must be an array of strings; fix #3408Yukihiro "Matz" Matsumoto
2017-01-12Merge pull request #3393 from clayton-shopify/fix-exc-initializeYukihiro "Matz" Matsumoto
Fix broken MRB_INT64
2017-01-11Fix 36fc1f14 not checking in the right locationBouke van der Bijl
2017-01-11Use mrb_int for argc.Clayton Smith
2017-01-11Exception#initialize to take arbitrary number of args; ref #3384Yukihiro "Matz" Matsumoto
2016-11-28pre-allocate arena overflow errorYukihiro "Matz" Matsumoto
2016-11-27Added Exception check in mrb_exc_set(); close #3292Yukihiro "Matz" Matsumoto
PR #3293 just checks for NoMethodError.
2016-03-06Fix segmentation fault by backtrace and GCKouhei Sutou
GitHub: fix #3122 It reverts #3126. #3126 fixes the segmentation fault but generates broken backtrace. This change fixes the segmentation fault and generates correct backtrace. The strategy of this change is "generating backtrace while irep is alive". /tmp/test.rb: def gen e0 = nil begin 1.times { raise 'foobar' } rescue => e e0 = e end e0 end e = gen GC.start gen GC.start puts e.backtrace.join("\n") Run: % bin/mruby /tmp/test.rb /tmp/test.rb:5:in Object.gen /home/kou/work/ruby/mruby.kou/mrblib/numeric.rb:77:in Integral#times /tmp/test.rb:4:in Object.gen /tmp/test.rb:13 FYI: % ruby -v /tmp/test.rb ruby 2.3.0p0 (2015-12-25) [x86_64-linux-gnu] /tmp/test.rb:5:in `block in gen' /tmp/test.rb:4:in `times' /tmp/test.rb:4:in `gen' /tmp/test.rb:13:in `<main>'
2015-12-29Support backtrace after method callsKouhei Sutou
GitHub: fix #2902, #2917 The current implementation traverses stack to retrieve backtrace. But stack will be changed when some operations are occurred. It means that backtrace may be broken after some operations. This change (1) saves the minimum information to retrieve backtrace when exception is raised and (2) restores backtrace from the minimum information when backtrace is needed. It reduces overhead for creating backtrace Ruby objects. The space for the minimum information is reused by multiple exceptions. So memory allocation isn't occurred for each exception.
2015-12-29Fix indentKouhei Sutou
2015-11-27include changed from by quotes ("") to by brackets (<>); close #3032Yukihiro "Matz" Matsumoto
2015-11-17DISABLE_STDIO/ENABLE_DEBUG macros to rename; close #3014Yukihiro "Matz" Matsumoto
changes: * rename DISABLE_STDIO -> MRB_DISABLE_STDIO * rename ENABLE_DEBUG -> MRB_ENABLE_DEBUG_HOOK * no more opposite macro definitions (e.g. ENABLE_STDIO, DISABLE_DEBUG). * rewrite above macro references throughout the code. * update documents
2015-10-19Clean up GC codefurunkel
2015-07-16use mrb_str_cat_str() instead of mrb_str_append()cremno
If the argument is always a string, then mrb_str_cat_str() can be directly called instead of indirectly by mrb_str_append(). mrb_any_to_s(), mrb_obj_as_string(), mrb_inspect() always return a string.
2015-07-13refactor mrb_bob_missing to share raising NoMethodError code; fix #2878Yukihiro "Matz" Matsumoto
Note: arguments of mrb_no_method_error() has changed. You need to replace 3rd and 4th argument (say n, argv) to mrb_ary_new_from_values(mrb, n, argv).
2015-05-25Move "src/mrb_throw.h" to "include/mruby/throw.h".take_cheeze
Related to #2760.
2015-05-18fix type of mrb_exc_new()'s len parametercremno
mrb_str_new() takes size_t, so should mrb_exc_new().
2015-01-03Use mrb_exc_new_str_lit().Tatsuhiko Kubo
2014-08-27Add a missing space after ",".Tatsuhiko Kubo
2014-08-04add MRB_API modifiers to mruby API functionsYukihiro "Matz" Matsumoto
2014-07-21Use MRB_TT_EXCEPTION in exception object.take_cheeze
2014-07-12use SystemStackError instead of RuntimeErrorYukihiro "Matz" Matsumoto
2014-06-27initialize nomem_err->mesg->c before exposing to Ruby world; close #2428Yukihiro "Matz" Matsumoto
2014-06-27reduce mrb_funcall in exception allocationYukihiro "Matz" Matsumoto
2014-06-04indent ISO section commentsYukihiro "Matz" Matsumoto
2014-06-04use pre-allocated RuntimeError for out-of-memoryYukihiro "Matz" Matsumoto
2014-06-02Implement `NoMethodError#args`.take_cheeze
2014-05-18Use boolean macro in exc_equal.yui-knk
2014-05-12Rename e to exception, scr_e to script_error.yui-knk
2014-05-11Add scr_e, to not reassign to e.yui-knk
2014-05-04Fix comment of exc_inspect (and adjust spaces)yui-knk
2014-04-26Fix MSVC warnings for error.ckyab
2014-04-16get classname and concatenate ": " only oncecremno
2014-04-16convert exception message to stringcremno
fixes: mruby -e "p ArgumentError.new(1)"
2014-04-16resolve conflictYukihiro "Matz" Matsumoto
2014-04-14exc_inspect: dup file and check mesg only oncecremno
2014-04-11Qualify argv argument of API `const`.Takeshi Watanabe
2014-03-01move jmpbuf_id to generated filetake_cheeze
2014-03-01support c++ exceptiontake_cheeze
2014-02-27use mrb_str_cat_lit() intead of mrb_str_catcubicdaiya
2014-02-27revert 38e9ce21 and API changed; mrb_get_backtrace() -> renamed to ↵Yukihiro "Matz" Matsumoto
mrb_exc_backtrace since this is a backtrace method implementation of Exception; mrb_get_backtrace_at() -> removed; mrb_get_backtrace() -> added to get backtrace in array (like caller)
2014-02-20move src/error.h to include/mruby/error.htake_cheeze
2014-01-31use mrb_bool, FALSE and TRUE morecremno
It doesn't matter to me if one is using FALSE/TRUE instead of 1/0 but I prefer a type (alias) which emphasizes boolean vars to int. I changed 1/0 to FALSE/TRUE anyway.
2014-01-31clean up external symbolscremno
remove unused and unneeded: - sysexit_status - type (a global variable) add mrb_ prefix to: - codedump_all - class_instance_method_list - parser_dump make various functions static, incl.: - yyparse - make_exception
2014-01-07remove superfluous includescremno
- reduce compile time by a little bit (full-core: ~0.7s for me) - thanks to 'include-what-you-use' for some help - include Standard C header files before any other (coding style)
2013-12-01add mrb_intern_lit for creating symbol from string literaltake_cheeze
2013-11-29rename mrb_intern2() to mrb_intern(); huge API incompatibility; close #1513Yukihiro "Matz" Matsumoto
2013-11-18renamed mrb_exc_new3 to mrb_exc_new_strcremno
- more descriptive name (there's no mrb_exc_new2) - no wrapper (macro/static inline function) for backwards compatibility because nothing besides mruby itself seems to be calling this function: <http://mruby-code-search.ongaeshi.me/home?query=mrb_exc_new3>