8000 Update to 2.1.7 by dbussink · Pull Request #28 · github/ruby · GitHub
[go: up one dir, main page]

Skip to content

Update to 2.1.7 #28

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 67 commits into from
Aug 19, 2015
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
Show all changes
67 commits
Select commit Hold shift + click to select a range
116ec56
* version.h (RUBY_VERSION): bump RUBY_VERSION to 2.1.7.
unak Apr 14, 2015
976bf35
merge revision(s) 49154,49155,49156,49159: [Backport #10384] [Backpor…
unak Apr 24, 2015
513b313
merge revision(s) 50316: [Backport #11030]
unak Apr 28, 2015
7829c32
merge revision(s) 50141: [Backport #11021]
unak Apr 28, 2015
4a680e8
merge revision(s) 50402: [Backport #11107]
unak May 11, 2015
14c7be2
merge revision(s) 50416: [Backport #11111]
unak May 11, 2015
dd4cf6b
* ext/tk/extconf.rb: support Tcl/Tk8.6.
unak May 12, 2015
0cddf1b
merge revision(s) 49095: [Backport #11144]
unak May 13, 2015
79881c9
merge revision(s) 50541,50542: [Backport #11159]
unak May 20, 2015
f1cb00f
merge revision(s) 49776: [Backport #9144]
unak May 21, 2015
bf8a18a
merge revision(s) 49792: [Backport #10918]
unak May 21, 2015
53ce4da
merge revision(s) 50185: [Backport #10952]
unak May 21, 2015
e358e2f
merge revision(s) 50187,50202: [Backport #11051]
unak May 21, 2015
39a6566
merge revision(s) 50206: [Backport #10724]
unak May 21, 2015
bdf81a6
merge revision(s) 50305: [Backport #11065]
unak May 21, 2015
ad70c73
merge revision(s) 50404,50405: [Backport #10975]
unak May 21, 2015
137514a
merge revision(s) 50406,50407: [Backport #11075]
unak May 21, 2015
7a03d46
merge revision(s) 50421: [Backport #11113]
unak May 21, 2015
a2126a6
merge revision(s) 50509: [Backport #11132]
unak May 21, 2015
7944b62
merge revision(s) 50444: [Backport #11128]
unak May 21, 2015
3a31231
merge revision(s) 50449: [Backport #11123]
unak May 21, 2015
ed737b8
merge revision(s) 49999,50000: [Backport #10979]
unak May 28, 2015
847b7bc
* marshal.c (r_symreal): register the symbol name first so that
unak May 29, 2015
e8dc702
Partially merge revision 49195: [Bug #10717]
unak May 29, 2015
6f97605
merge revision(s) 49618,49640: [Backport #10858]
unak May 29, 2015
0d1f4fb
merge revision(s) 49491: [Backport #10823]
unak May 29, 2015
4def227
merge revision(s) 50515: [Backport #11155]
unak Jun 9, 2015
16b551f
merge revision(s) 50637: [Backport #11172]
unak Jun 9, 2015
7d7ed2c
merge revision(s) 50646: [Backport #11185]
unak Jun 9, 2015
f201642
merge revision(s) 50685: [Backport #11198]
unak Jun 9, 2015
9af0f53
merge revision(s) 49898: [Backport #10951]
unak Jun 17, 2015
61f3bae
merge revision(s) 50982,50983: [Backport #11291]
unak Jun 29, 2015
ee15197
merge revision(s) 49224,49225,49234,49235: [Backport #10711]
unak Jun 30, 2015
dffe87c
merge revision(s) 50887,50896,50902: [Backport #11060]
unak Jul 3, 2015
1bd36e3
merge revision(s) 50430,50440: [Backport #11117]
unak Jul 3, 2015
a57c925
merge revision(s) 50793,51120: [Backport #11162]
unak Jul 3, 2015
bf57198
merge revision(s) 50671: [Backport #11192]
unak Jul 3, 2015
f81db3c
merge revision(s) 50717: [Backport #11201]
unak Jul 3, 2015
759d128
merge revision(s) 49235: [Backport #10711]
unak Jul 3, 2015
b0ed276
* test/ruby/test_require.rb (TestRequire#test_loading_fifo_threading):
unak Jul 3, 2015
6282b15
* test/ruby/test_require.rb (TestRequire#test_loading_fifo_threading):
unak Jul 3, 2015
e25bb03
merge revision(s) 50972:
unak Jul 7, 2015
a0cf0fb
merge revision(s) 50860: [Backport #11249]
unak Jul 7, 2015
c7458b5
merge revision(s) 50834: [Backport #11221]
unak Jul 7, 2015
e9ea9d6
merge revision(s) 49542: [Backport #10820]
unak Aug 17, 2015
b2bb029
merge revision(s) 50827,50921: [Backport #11235]
unak Aug 17, 2015
7766666
merge revision(s) 51037: [Backport #11277]
unak Aug 17, 2015
a61756e
merge revision(s) 49788,49790: [Backport #10904]
unak Aug 17, 2015
51954bd
merge revision(s) 51344: [Backport #11387]
unak Aug 17, 2015
59f1eaa
merge revision(s) 51263,51264: [Backport #11352]
unak Aug 17, 2015
9580200
merge revision(s) 51061,51063,51091: [Backport #11285]
unak Aug 17, 2015
ccef579
merge revision(s) 51213: [Backport #11344]
unak Aug 17, 2015
d3a6478
merge revision(s) 51531: [Backport #11368]
unak Aug 17, 2015
510bdd1
merge revision(s) 51350: [Backport #11380]
unak Aug 17, 2015
bd929bb
merge revision(s) 51202,51203,51204: [Backport #11340]
unak Aug 17, 2015
d3cd7b4
merge revision(s) 51409,51453: [Backport #10910]
unak Aug 17, 2015
a5ffcda
merge revision(s) 46681,51464,51465: [Backport #11058]
unak Aug 17, 2015
190241f
merge revision(s) 51046: [Backport #11260]
unak Aug 17, 2015
813b5f4
merge revision(s) 51066: [Backport #11319]
unak Aug 17, 2015
445954a
merge revision(s) 44497: [Backport #11441]
unak Aug 17, 2015
170f64d
merge revision(s) 51423,51425: [Backport #9381]
unak Aug 17, 2015
4bf7894
merge revision(s) 51116: [Backport #11324]
unak Aug 17, 2015
26eb8e4
merge revision(s) 51470: [Backport #11413]
unak Aug 17, 2015
911ade3
merge revision(s) 51575,51584: [Backport #11439]
unak Aug 17, 2015
9ce1bf8
merge revision(s) 50829: [Backport #11248]
unak Aug 18, 2015
0f66473
add tag v2_1_7
unak Aug 18, 2015
eef7698
Merge tag 'v2_1_7' into 2.1
dbussink Aug 19, 2015
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
merge revision(s) 50671: [Backport ruby#11192]
	* compile.c (iseq_compile_each): out of range NTH_REF is always
	  nil.

	* parse.y (parse_numvar): check overflow of NTH_REF and range.
	  [ruby-core:69393] [Bug ruby#11192]

	* util.c (ruby_scan_digits): make public and add length parameter.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_1@51122 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
  • Loading branch information
unak committed Jul 3, 2015
commit bf571987ecdb9faf350ee3bcd772fca5a3e79f85
10 changes: 10 additions & 0 deletions ChangeLog
Original file line number Diff line number Diff line change
@@ -1,3 +1,13 @@
Fri Jul 3 18:32:37 2015 Nobuyoshi Nakada <nobu@ruby-lang.org>

* compile.c (iseq_compile_each): out of range NTH_REF is always
nil.

* parse.y (parse_numvar): check overflow of NTH_REF and range.
[ruby-core:69393] [Bug #11192]

* util.c (ruby_scan_digits): make public and add length parameter.

Fri Jul 3 17:53:43 2015 Nobuyoshi Nakada <nobu@ruby-lang.org>

* vm_eval.c (rb_method_call_status): resolve refined method entry
Expand Down
4 changes: 4 additions & 0 deletions compile.c
Original file line number Diff line number Diff line change
Expand Up @@ -4795,6 +4795,10 @@ iseq_compile_each(rb_iseq_t *iseq, LINK_ANCHOR *ret, NODE * node, int poped)
}
case NODE_NTH_REF:{
if (!poped) {
if (!node->nd_nth) {
ADD_INSN(ret, line, putnil);
break;
}
ADD_INSN2(ret, line, getspecial, INT2FIX(1) /* '~' */,
INT2FIX(node->nd_nth << 1));
}
Expand Down
1 change: 1 addition & 0 deletions internal.h
Original file line number Diff line number Diff line change
Expand Up @@ -867,6 +867,7 @@ VALUE rb_gcd_gmp(VALUE x, VALUE y);

/* util.c */
extern const signed char ruby_digit36_to_number_table[];
extern unsigned long ruby_scan_digits(const char *str, ssize_t len, int base, size_t *retlen, int *overflow);

/* variable.c */
void rb_gc_mark_global_tbl(void);
Expand Down
23 changes: 22 additions & 1 deletion parse.y
Original file line number Diff line number Diff line change
Expand Up @@ -6957,6 +6957,27 @@ parser_prepare(struct parser_params *parser)
space_seen && !ISSPACE(c) && \
(ambiguous_operator(op, syn), 0)))

static int
parse_numvar(struct parser_params *parser)
{
size_t len;
int overflow;
unsigned long n = ruby_scan_digits(tok()+1, toklen()-1, 10, &len, &overflow);
const unsigned long nth_ref_max =
(FIXNUM_MAX / 2 < INT_MAX) ? FIXNUM_MAX / 2 : INT_MAX;
/* NTH_REF is left-shifted to be ORed with back-ref flag and
* turned into a Fixnum, in compile.c */

if (overflow || n > nth_ref_max) {
/* compile_error()? */
rb_warnS("`%s' is too big for a number variable, always nil", tok());
return 0; /* $0 is $PROGRAM_NAME, not NTH_REF */
}
else {
return (int)n;
}
}

static int
parser_yylex(struct parser_params *parser)
{
Expand Down Expand Up @@ -8053,7 +8074,7 @@ parser_yylex(struct parser_params *parser)
pushback(c);
if (IS_lex_state_for(last_state, EXPR_FNAME)) goto gvar;
tokfix();
set_yylval_node(NEW_NTH_REF(atoi(tok()+1)));
set_yylval_node(NEW_NTH_REF(parse_numvar(parser)));
return tNTH_REF;

default:
Expand Down
7 changes: 7 additions & 0 deletions test/ruby/test_syntax.rb
Original file line number Diff line number Diff line change
Expand Up @@ -421,6 +421,13 @@ def test_null_range_cmdarg
assert_syntax_error('0...%w.', /unterminated string/, bug10957)
end

def test_too_big_nth_ref
bug11192 = '[ruby-core:69393] [Bug #11192]'
assert_warn(/too big/, bug11192) do
eval('$99999999999999999')
end
end

private

def not_label(x) @result = x; @not_label ||= nil end
Expand Down
22 changes: 13 additions & 9 deletions util.c
Original file line number Diff line number Diff line change
Expand Up @@ -75,21 +75,25 @@ const signed char ruby_digit36_to_number_table[] = {
/*f*/ -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
};

static unsigned long
scan_digits(const char *str, int base, size_t *retlen, int *overflow)
unsigned long
ruby_scan_digits(const char *str, ssize_t len, int base, size_t *retlen, int *overflow)
{

const char *start = str;
unsigned long ret = 0, x;
unsigned long mul_overflow = (~(unsigned long)0) / base;
int c;

*overflow = 0;

while ((c = (unsigned char)*str++) != '\0') {
int d = ruby_digit36_to_number_table[c];
if (!len) {
*retlen = 0;
return 0;
}

do {
int d = ruby_digit36_to_number_table[(unsigned char)*str++];
if (d == -1 || base <= d) {
*retlen = (str-1) - start;
return ret;
break;
}
if (mul_overflow < ret)
*overflow = 1;
Expand All @@ -98,7 +102,7 @@ scan_digits(const char *str, int base, size_t *retlen, int *overflow)
ret += d;
if (ret < x)
*overflow = 1;
}
} while (len < 0 || --len);
*retlen = (str-1) - start;
return ret;
}
Expand Down Expand Up @@ -150,7 +154,7 @@ ruby_strtoul(const char *str, char **endptr, int base)
b = base == 0 ? 10 : base;
}

ret = scan_digits(str, b, &len, &overflow);
ret = ruby_scan_digits(str, -1, b, &len, &overflow);

if (0 < len)
subject_found = str+len;
Expand Down
2 changes: 1 addition & 1 deletion version.h
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
#define RUBY_VERSION "2.1.7"
#define RUBY_RELEASE_DATE "2015-07-03"
#define RUBY_PATCHLEVEL 372
#define RUBY_PATCHLEVEL 373

#define RUBY_RELEASE_YEAR 2015
#define RUBY_RELEASE_MONTH 7
Expand Down
0