summaryrefslogtreecommitdiffhomepage
path: root/src
AgeCommit message (Collapse)Author
2015-06-01Compile mruby compiler as mrbgem.take_cheeze
Compiler codes is moved to "mruby-compiler". Executable `mrbc` is moved to "mruby-bin-mrbc".
2015-06-01Merge pull request #2819 from cremno/only-genop-non-lvar-gets-in-val-modeYukihiro "Matz" Matsumoto
only generate gets of non-local vars in VAL mode
2015-06-01Merge pull request #2820 from cremno/add-too-big-array-size-checksYukihiro "Matz" Matsumoto
fix two potential cases of signed integer overflow
2015-06-01singleton_class should not be duped; fix #2815Yukihiro "Matz" Matsumoto
2015-06-01only generate gets of non-local vars in VAL modecremno
This fixes a crash for code like "#{@a;1}". Unlike CRuby globals are excluded too since mruby doesn't implement hooking.
2015-06-01fix two potential cases of signed integer overflowcremno
2015-06-01singleton_class should not be cloned; close #2815Yukihiro "Matz" Matsumoto
2015-05-31fix masgn nosplat array rhs bugcremno
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-31fix OP_APOST bug for no pre arg cases; fix #2810Yukihiro "Matz" Matsumoto
2015-05-31Merge pull request #2811 from cremno/check-if-outer-is-a-class-or-moduleYukihiro "Matz" Matsumoto
check if outer is a class or module
2015-05-29check if outer is a class or modulecremno
For modules this check didn't exist yet. Also call #inspect.
2015-05-29remove unreachable codecremno
It's just a copy of the code in the previous case (NODE_CALL).
2015-05-29Merge pull request #2807 from cremno/fix-capture-group-index-parsing-ub-bugYukihiro "Matz" Matsumoto
fix capture group index bug
2015-05-28fix capture group index bugcremno
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-28remove unnecessary including of <ctype.h>cremno
Not needed anymore since 85075bef7583edd0a48cfbdfaa632cbdacf78f2c
2015-05-25Move "src/mrb_throw.h" to "include/mruby/throw.h".take_cheeze
Related to #2760.
2015-05-24Merge pull request #2802 from take-cheeze/move_codedumpYukihiro "Matz" Matsumoto
Move `mrb_codedump_all` to "src/codedump.c".
2015-05-23Add null check on lex_strterm in heredoc blockCarson McDonald
2015-05-23Move `mrb_codedump_all` to "src/codedump.c".take_cheeze
Related to #2760.
2015-05-23Merge pull request #2801 from carsonmcdonald/fix2779Yukihiro "Matz" Matsumoto
Add locals null checks
2015-05-22Add locals null checksCarson McDonald
2015-05-22Verify that proc_lambda is passed a procCarson McDonald
2015-05-21remove an always-true conditional.Tomoyuki Sahara
2015-05-20there may be expecting here-doc when we see terminating characters; fix #2780Yukihiro "Matz" Matsumoto
2015-05-20Merge pull request #2797 from iij/pr-split-only-firstYukihiro "Matz" Matsumoto
String#split fails to split on second or later separator
2015-05-20NetBSD (6.1.5) does not have frexpl(3).Tomoyuki Sahara
2015-05-20RSTRING_PTR may be changed in while loop.Tomoyuki Sahara
2015-05-18fix type of mrb_exc_new()'s len parametercremno
mrb_str_new() takes size_t, so should mrb_exc_new().
2015-05-17Merge pull request #2792 from cremno/let-the-c-compiler-validate-the-identifierYukihiro "Matz" Matsumoto
let the C compiler validate the identifier
2015-05-15let the C compiler validate the identifiercremno
Some C compilers may allow other characters in identifiers such as $. They may also implement C99's extended identifiers (\u30EB\u30D3\u30FC, ルビー).
2015-05-15remove mrb_define_method_vm() functioncremno
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-14Reenable mrb_dump_irep under DISABLE_STDIO.Simon Génier
2015-05-13remove unused token declarationscremno
2015-05-08Merge pull request #2784 from cremno/fix-splat-without-assignmentYukihiro "Matz" Matsumoto
fix splat without assignment
2015-05-07fix splat without assignment; fix #2781cremno
The parser generates NODE_NIL for tSTAR without argument in masgns. The codegen didn't handle that.
2015-05-07Merge pull request #2782 from cremno/define-yydebug-macro-conditionallyYukihiro "Matz" Matsumoto
define YYDEBUG macro conditionally
2015-05-07Defining static version of frexpl also fro MIPS platforms.Paolo Bosetti
On MIPS/linaro, libm.so lacks frexpl() as CygWin does.
2015-05-04define YYDEBUG macro conditionallycremno
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-04-30push cmdarg_stack in lambda body; fix [ruby-bug#11107]Yukihiro "Matz" Matsumoto
2015-04-30Merge pull request #2778 from cremno/fix-load-size-error-macrosYukihiro "Matz" Matsumoto
src/load.c: fix size error macros
2015-04-30Merge pull request #2777 from cremno/fix-parser-locals-null-derefYukihiro "Matz" Matsumoto
parser: fix possible null dereferences
2015-04-30Merge pull request #2776 from cremno/undef-strndupYukihiro "Matz" Matsumoto
prevent accidental macro redefinition of strndup()
2015-04-29always define SIZE_ERROR_MUL() macrocremno
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-29remove SIZE_ERROR() macrocremno
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-29add more descriptive error message and fail earliercremno
2015-04-28fix null dereference (ref: #2769)cremno
parser_state->locals might be a null pointer. Fixes (and other similiar invalid code): def a; Proc.new do def x==x end end
2015-04-28prevent accidental macro redefinition of strndup()cremno
2015-04-28fix possible unsigned integer underflowcremno
buf_size has to be greater than header_size, otherwise subtracting header_size from buf_size will cause an integer underflow. Being equal to header_size is fine, however useless, so quit early.
2015-04-28unify error handlingcremno
Convert mrb_read_irep_file() to use goto like read_section_lv() and read_section_debug() already do.
2015-04-27C++ compilation failed due to skipping iniitalization by goto out_superYukihiro "Matz" Matsumoto