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
Yukihiro "Matz" Matsumoto
b6121adc7d
singleton_class should not be duped; fix #2815
2015-06-01 21:30:07 +09:00
cremno
7e8fb15457
only generate gets of non-local vars in VAL mode
...
This fixes a crash for code like "#{@a;1}".
Unlike CRuby globals are excluded too since mruby doesn't implement
hooking.
2015-06-01 13:54:20 +02:00
cremno
dc0e335664
fix two potential cases of signed integer overflow
2015-06-01 13:23:43 +02:00
Yukihiro "Matz" Matsumoto
bd2686d82d
singleton_class should not be cloned; close #2815
2015-06-01 00:13:12 +09:00
cremno
5cd877be7f
fix masgn nosplat array rhs bug
...
The rest lhs variable has to be an empty array if rhs is an array with
less elements than pre + post lhs variables. The codegen generated
OP_ARRAY with an invalid length (such as 127 for *a, b = []) because rn
was negative.
2015-05-31 13:30:49 +02:00
Yukihiro "Matz" Matsumoto
6a1978c7e1
fix OP_APOST bug for no pre arg cases; fix #2810
2015-05-31 18:30:37 +09:00
Yukihiro "Matz" Matsumoto
b720cb635a
Merge pull request #2811 from cremno/check-if-outer-is-a-class-or-module
...
check if outer is a class or module
2015-05-31 17:01:49 +09:00
cremno
59ea323976
check if outer is a class or module
...
For modules this check didn't exist yet. Also call #inspect.
2015-05-29 14:58:53 +02:00
cremno
2554fd9c94
remove unreachable code
...
It's just a copy of the code in the previous case (NODE_CALL).
2015-05-29 11:29:11 +02:00
Yukihiro "Matz" Matsumoto
13a2cc3e5d
Merge pull request #2807 from cremno/fix-capture-group-index-parsing-ub-bug
...
fix capture group index bug
2015-05-29 02:03:13 +09:00
cremno
ce31272dba
fix capture group index bug
...
atoi() is used to convert the index to an int but the behavior is
undefined if the value can't be represented.
> $9999999999
00007 NODE_SCOPE:
00007 NODE_BEGIN:
00007 NODE_NTH_REF: $2147483647
irep 00630580 nregs=2 nlocals=1 pools=0 syms=1 reps=0
file: (mirb)
7 000 OP_GETGLOBAL R1 :$2147483647
7 001 OP_STOP
Call strtoul() instead as its behavior in such cases is defined and add
a simple range check.
Alternatively NODE_NTH_REF's cdr could be changed from int to mrb_sym
(like NODE_GVAR).
2015-05-28 12:52:44 +02:00
cremno
2ee84eb3df
remove unnecessary including of <ctype.h>
...
Not needed anymore since 85075bef75
2015-05-28 10:44:20 +02:00
take_cheeze
6498d90f1b
Move "src/mrb_throw.h" to "include/mruby/throw.h".
...
Related to #2760 .
2015-05-25 21:19:24 +09:00
Yukihiro "Matz" Matsumoto
f709054910
Merge pull request #2802 from take-cheeze/move_codedump
...
Move `mrb_codedump_all` to "src/codedump.c".
2015-05-24 01:44:47 +09:00
Carson McDonald
4a791701bc
Add null check on lex_strterm in heredoc block
2015-05-23 11:10:10 -04:00
take_cheeze
46e50492eb
Move mrb_codedump_all to "src/codedump.c".
...
Related to #2760 .
2015-05-23 17:55:44 +09:00
Yukihiro "Matz" Matsumoto
b97c6d10a2
Merge pull request #2801 from carsonmcdonald/fix2779
...
Add locals null checks
2015-05-23 16:11:22 +09:00
Carson McDonald
3e911a8e14
Add locals null checks
2015-05-22 10:42:50 -04:00
Carson McDonald
a797d45e90
Verify that proc_lambda is passed a proc
2015-05-22 10:34:28 -04:00
Tomoyuki Sahara
4308f3c686
remove an always-true conditional.
2015-05-21 11:50:02 +09:00
Yukihiro "Matz" Matsumoto
b7049b3945
there may be expecting here-doc when we see terminating characters; fix #2780
2015-05-20 19:14:04 +09:00
Yukihiro "Matz" Matsumoto
bce3843456
Merge pull request #2797 from iij/pr-split-only-first
...
String#split fails to split on second or later separator
2015-05-20 15:11:59 +09:00
Tomoyuki Sahara
48b63b1c7a
NetBSD (6.1.5) does not have frexpl(3).
2015-05-20 12:43:10 +09:00
Tomoyuki Sahara
64ab781266
RSTRING_PTR may be changed in while loop.
2015-05-20 10:15:19 +09:00
cremno
dc479392ef
fix type of mrb_exc_new()'s len parameter
...
mrb_str_new() takes size_t, so should mrb_exc_new().
2015-05-18 22:18:53 +02:00
Yukihiro "Matz" Matsumoto
cf070b64f1
Merge pull request #2792 from cremno/let-the-c-compiler-validate-the-identifier
...
let the C compiler validate the identifier
2015-05-17 20:42:41 +09:00
cremno
406fb9c809
let the C compiler validate the identifier
...
Some C compilers may allow other characters in identifiers such as $.
They may also implement C99's extended identifiers (\u30EB\u30D3\u30FC,
ルビー).
2015-05-15 22:41:46 +02:00
cremno
2106d4d446
remove mrb_define_method_vm() function
...
It isn't needed as it's very similar to mrb_define_method_raw() and also
there's only one place where mrb_proc_ptr() actually has to be called.
Inspired by @furunkel's method cache patch (#2764 ).
2015-05-15 13:04:55 +02:00
Simon Génier
1e51517615
Reenable mrb_dump_irep under DISABLE_STDIO.
2015-05-14 15:43:29 -04:00
cremno
7fe853c216
remove unused token declarations
2015-05-13 18:31:51 +02:00
Yukihiro "Matz" Matsumoto
d979172b3e
Merge pull request #2784 from cremno/fix-splat-without-assignment
...
fix splat without assignment
2015-05-08 11:49:49 +09:00
cremno
2aa59393ba
fix splat without assignment; fix #2781
...
The parser generates NODE_NIL for tSTAR without argument in masgns. The
codegen didn't handle that.
2015-05-07 16:58:43 +02:00
Yukihiro "Matz" Matsumoto
4bafd62844
Merge pull request #2782 from cremno/define-yydebug-macro-conditionally
...
define YYDEBUG macro conditionally
2015-05-07 23:43:09 +09:00
Paolo Bosetti
5e5e129014
Defining static version of frexpl also fro MIPS platforms.
...
On MIPS/linaro, libm.so lacks frexpl() as CygWin does.
2015-05-07 13:05:25 +02:00
cremno
3cd80a520a
define YYDEBUG macro conditionally
...
The YYDEBUG macro enables parser debugging which
unnecessarily increases the executable size (9 to 10 KB).
Now it only will be defined when PARSER_DEBUG is too.
2015-05-04 16:53:50 +02:00
Yukihiro "Matz" Matsumoto
2fe556d9c0
push cmdarg_stack in lambda body; fix [ruby-bug#11107]
2015-04-30 15:21:01 +09:00
Yukihiro "Matz" Matsumoto
b09f1712af
Merge pull request #2778 from cremno/fix-load-size-error-macros
...
src/load.c: fix size error macros
2015-04-30 12:19:09 +09:00
Yukihiro "Matz" Matsumoto
5d0c8a70e9
Merge pull request #2777 from cremno/fix-parser-locals-null-deref
...
parser: fix possible null dereferences
2015-04-30 12:17:47 +09:00
Yukihiro "Matz" Matsumoto
8d1f9a6ece
Merge pull request #2776 from cremno/undef-strndup
...
prevent accidental macro redefinition of strndup()
2015-04-30 12:17:14 +09:00
cremno
c579ab1c8b
always define SIZE_ERROR_MUL() macro
...
Previously there wasn't a way to trigger the useful definition, but it
is needed and that in every case to check for integer overflow due to
multiplication and faulty/modified binary files.
Also change existing code to a calloc()-like parameter order.
2015-04-29 17:00:35 +02:00
cremno
aaf2615ed6
remove SIZE_ERROR() macro
...
It's only used once and in that case it isn't necessary anyway, since
size_t must be at least 32 bits wide and
the max. length of a filename is UINT16_MAX.
2015-04-29 16:41:45 +02:00
cremno
4a82b9391a
add more descriptive error message and fail earlier
2015-04-29 16:37:35 +02:00