Commit Graph

3001 Commits

Author SHA1 Message Date
Corey Powell 81a2b3431c included_modules, origin fix
Prepended modules would include their origin ICLASS
2015-07-13 09:49:51 -05:00
Corey Powell 199a808e36 Bugfix, included_modules would include classes 2015-07-13 09:49:18 -05:00
Corey Powell 1f678a4ace Removed comment beside method_removed
Not sure if this apart of the ISO standard, so make sure its not misrepresented
2015-07-13 09:40:40 -05:00
Corey Powell 668153092f Added Module#method_removed hook 2015-07-13 09:38:24 -05:00
Blaž Hrastnik a725cb9093 Include prepended methods in the instance_methods list. 2015-07-13 14:04:43 +02:00
Corey Powell d4b009b394 Fixed Modules not being fully initialized before #initialize was called 2015-07-13 14:04:42 +02:00
Corey Powell 40f48034d5 Added changed check to the mrb_include_module 2015-07-13 14:04:42 +02:00
Corey Powell ce66727177 Remove some remnant debug code 2015-07-13 14:04:42 +02:00
Corey Powell 005cacf18b Additional patches to make this work 2015-07-13 14:04:42 +02:00
Blaž Hrastnik 97529c2a9a Comment in a refactor to match MRI, but that fails 320 tests. 2015-07-13 14:04:42 +02:00
Blaž Hrastnik 2e617e37e1 origin must be initialized 2015-07-13 14:04:42 +02:00
Blaž Hrastnik ad9f32c5a8 Expose insert position, which should be at origin for include and klass for
prepend.
2015-07-13 14:04:42 +02:00
Blaž Hrastnik f962890a92 Implement Module#prepend. 2015-07-13 14:04:42 +02:00
Yukihiro "Matz" Matsumoto d0e67aada7 use "S!" specifier of mrb_get_args() to improve #2882 fix. 2015-07-13 11:18:44 +09:00
Yukihiro "Matz" Matsumoto 02474daa14 allow '!' after 'S' specifier of mrb_get_args() that allow nil.
thus "S!" means String|nil type. you have to check nil before
dereferencing the value.  this is added to address #2882 while
keeping code simplicity. besides that current #2882 fix lose
polymorphism provided by mrb_get_args().
2015-07-13 11:14:50 +09:00
Yukihiro "Matz" Matsumoto 9c311ddc93 refactor mrb_bob_missing to share raising NoMethodError code; fix #2878
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-07-13 11:07:59 +09:00
jbreeden dd558a108d Removing unndeeded to_s 2015-07-11 21:15:33 -07:00
jbreeden bdbd696c48 Patching array join 2015-07-11 21:03:04 -07:00
Yukihiro "Matz" Matsumoto 40252169fc method_missing definition may be undefined; fix #2878 2015-07-07 10:32:54 +09:00
Yukihiro "Matz" Matsumoto 5cfc0d0dc0 Merge pull request #2877 from cremno/fix-dangling-ptr
Coverity: fix dangling pointer
2015-07-07 07:40:38 +09:00
Yukihiro "Matz" Matsumoto 5daabc9407 Merge pull request #2876 from joans321/master
fix androideabi cross-compile error : undefined reference to 'frexpl'
2015-07-07 00:36:51 +09:00
xuejianqing 0b50b4a500 fix androideabi cross-compile error : undefined reference to 'frexpl' 2015-07-06 12:51:57 +08:00
Anton Davydov 03ae38df4e Fix typo in comment in String#mrb_cstr_to_inum [skip ci] 2015-07-05 13:53:14 +03:00
cremno 7206a8c4f9 fix dangling pointer
CID 75872 (#3-2 of 3): Pointer to local outside scope (RETURN_LOCAL)
38. use_invalid: Using p, which points to an out-of-scope variable buf.
2015-07-03 02:48:22 +02:00
cremno 43df1d7e39 remove unnecessary default case 2015-07-03 01:14:06 +02:00
Yukihiro "Matz" Matsumoto ff49cf95fc Merge pull request #2869 from cremno/refactor-print.c
src/print.c: rewrite printstr() to get rid of code duplication
2015-07-01 08:47:41 +09:00
Simon Génier d6865a9cc7 Avoid a narrowing cast in flo_round under MRB_INT64. 2015-06-29 20:19:19 -04:00
Kouhei Sutou 52db92de53 Fix a crash bug when GC is ran while creating a proc with env
mrb_proc_new_cfunc_with_env() allocates RProc with RProc::env as NULL
then allocates REnv and sets it to RProc::env of the allocated RProc. If
incremental GC is ran before "allocates REnv and sets it to RProc::env
of the allocated RProc", the allocated RProc's GC status is
"marked" (Black) and the allocated REnv's GC status is
"unmarked" (White). The next incremental GC sweeps the allocated REnv
without re-marking the allocated RProc. Because the RProc is Black and
the REnv is White.

We need to implement write barrier for the case.

We can force to cause the above situation by the following patch:

    diff --git a/src/proc.c b/src/proc.c
    index f98998f..4f4e25c 100644
    --- a/src/proc.c
    +++ b/src/proc.c
    @@ -92,6 +92,7 @@ mrb_proc_new_cfunc_with_env(mrb_state *mrb, mrb_func_t func, mrb_int argc, const
       struct REnv *e;
       int i;

    +  mrb_incremental_gc(mrb);
       p->env = e = env_new(mrb, argc);
       MRB_ENV_UNSHARE_STACK(e);
       e->stack = (mrb_value*)mrb_malloc(mrb, sizeof(mrb_value) * argc);

With this patch, "rake test" causes segmentation fault.
2015-06-29 14:39:30 +09:00
Franck Verrot 2588507285 Remove unnecessary backticks.
Dr Markus Kuhn published in 1999 an article [1] explaining in details
why we shouldn't use the ASCII grave accent (0x60) as a left quotation.

Backticks have been used most notably to produce nice-looking LaTeX
documents but it doesn't seem to be an issue on modern platforms and
for the oldest ones, there are workarounds as mentioned by Dr Kuhn.

[1]: https://www.cl.cam.ac.uk/~mgk25/ucs/quotes.html
2015-06-24 13:07:07 +02:00
cremno 6ed64e2367 rewrite printstr() to get rid of code duplication 2015-06-23 12:44:28 +02:00
Jared Breeden 18337266f8 Merge branch 'master' of http://github.com/mruby/mruby into alloc_doc 2015-06-22 23:20:24 -07:00
Jared Breeden 9781580c71 Fixes #912 2015-06-22 23:19:58 -07:00
Yukihiro "Matz" Matsumoto 1001be2e99 Merge pull request #2852 from jbreeden/mrb_string_value_cstr_patch
Mrb string value cstr patch
2015-06-23 14:54:13 +09:00
Yukihiro "Matz" Matsumoto 937b5b5462 fix Proc#curry test failure; ref #2848 2015-06-23 14:42:58 +09:00
Jared Breeden 9ad632559e *Correctly* removing extra mrb_str_to_str call 2015-06-22 20:49:09 -07:00
Jared Breeden cfcca2a727 Reverting overzealous changes 2015-06-22 19:49:12 -07:00
Jared Breeden 264a059aef Removing unneeded bad_checks for verified strings 2015-06-22 19:15:52 -07:00
Jared Breeden 9553e20d34 Removing redundant mrb_str_to_str call 2015-06-22 19:07:25 -07:00
Jared Breeden 338ca305ae Calling mrb_str_to_str in mrb_string_value_cstr. Fixes #2847 2015-06-22 18:37:14 -07:00
cremno f0eaf9eaf5 fix arity of lambdas with optional arguments
From the CRuby 2.2.2 Proc#arity documentation:

If the block has optional arguments, returns -n-1, where n is the number
of mandatory arguments, with the exception for blocks that are not
lambdas and have only a finite number of optional arguments; in this
latter case, returns n.
2015-06-22 13:34:24 +02:00
Yukihiro "Matz" Matsumoto a219e8b717 Merge pull request #2839 from yui-knk/fix/string_split_sample
[ci skip] Remove some Srting#split samples
2015-06-19 23:53:49 +09:00
yui-knk d1e6d647bd [ci skip] Remove some Srting#split samples
mruby not support regexp, so remove these samples.
2015-06-19 20:34:32 +09:00
cremno 5e8d2a4b84 refactor code to call mrb_inspect() instead
mrb_inspect() also calls mrb_obj_as_string() after #inspect to ensure
the mrb_value is a string.
2015-06-13 14:59:57 +02:00
Nobuhiro Iwamatsu 3bcf570a17 Fix build on MIPS of linux
MIPS of Linux platform is supported frexpl(3).
This fixes to use the frexpl that are provided with gcc if user wants to build
on MIPS of Linux platform.

Signe-doff-by: Nobuhiro Iwamatsu <iwamatsu@nigauri.org>
2015-06-06 09:05:53 +09:00
Yukihiro "Matz" Matsumoto 630c2c5853 Merge pull request #2823 from cremno/remove-unnecessary-mrb_immediate_p
remove unnecessary mrb_immediate_p()
2015-06-03 22:40:43 +09:00
cremno ef0fc90cd0 remove unnecessary mrb_immediate_p()
`!mrb_array_p(ary2)` and `mrb_type(obj) != MRB_TT_DATA` are  sufficient.
2015-06-02 08:56:41 +02:00
cremno 599d141cc8 directly call ary_new_capa() 2015-06-02 08:34:36 +02:00
take_cheeze 6460ef77bc Compile mruby compiler as mrbgem.
Compiler codes is moved to "mruby-compiler".
Executable `mrbc` is moved to "mruby-bin-mrbc".
2015-06-01 21:53:55 +09:00
Yukihiro "Matz" Matsumoto 214bc3c95a Merge pull request #2819 from cremno/only-genop-non-lvar-gets-in-val-mode
only generate gets of non-local vars in VAL mode
2015-06-01 21:40:11 +09:00
Yukihiro "Matz" Matsumoto ddab53e66f Merge pull request #2820 from cremno/add-too-big-array-size-checks
fix two potential cases of signed integer overflow
2015-06-01 21:39:21 +09:00