{"push_id":873865863,"size":5,"distinct_size":5,"ref":"refs/heads/bs_unit_fix","head":"7e1abaf81cc5d0aaa73712cc33044665753b9b84","before":"c22ac34368a0a931ec53524c0b538f71e7faa96f","commits":[{"sha":"c301b2f00c66d79af4f4e64a35a6bc3b55a8f985","author":{"email":"53f5a831f9d0b91cc73e4df02d4419cdcdf883fa@telia.com","name":"Magnus Lång"},"message":"hipe: Allow unsigned args in hipe_rtl_arith\n\nhipe_rtl_arith is only used by hipe_rtl_ssa_const_prop, which applies it\nto any RTL, including RTL where the intent is to do unsigned math. Since\nsigned and unsigned operations produce the same 2's complement result,\nthis change is harmless.\n\nOn 32-bit architectures it caused HiPE crashes when compiling code like\n<<0:((1 bsl 32)-1)>>, because the size of the field is too large to fit\nin a signed integer.","distinct":true,"url":"https://api.github.com/repos/margnus1/otp/commits/c301b2f00c66d79af4f4e64a35a6bc3b55a8f985"},{"sha":"23a1517eaa401cf082e9706009cdb0f1e353da86","author":{"email":"53f5a831f9d0b91cc73e4df02d4419cdcdf883fa@telia.com","name":"Magnus Lång"},"message":"Add missing corner-case to bs_construct_SUITE\n\nhuge_binary/1 did not consider that the Shift variable is not a\nconstant, and misses the case of a literal size.","distinct":true,"url":"https://api.github.com/repos/margnus1/otp/commits/23a1517eaa401cf082e9706009cdb0f1e353da86"},{"sha":"0921514806cdfffac25a0c7da2f34445477c59de","author":{"email":"53f5a831f9d0b91cc73e4df02d4419cdcdf883fa@telia.com","name":"Magnus Lång"},"message":"hipe: Fix binary constructions failing with badarith\n\nExpressions like <<0:(fun(X)->X end(anka))>> would fail with 'badarith'\nin HiPE, but 'badarg' in BEAM.\n\nhipe_beam_to_icode was attempting to optimise the amount of code\ngenerated by letting the arithmetic error propagate instead of\ncatching it. However, since it was emitting a block to throw 'badarg' in\nthat case anyway, we can just reuse it to achieve just as compact code\nthat behaves exactly like BEAM.","distinct":true,"url":"https://api.github.com/repos/margnus1/otp/commits/0921514806cdfffac25a0c7da2f34445477c59de"},{"sha":"a969f4ea48b78cbce50fa8136481ee355f9d21e5","author":{"email":"53f5a831f9d0b91cc73e4df02d4419cdcdf883fa@telia.com","name":"Magnus Lång"},"message":"hipe: Fix constructing huge binaries\n\nBugs were fixed in\nhipe_rtl_binary_match:{first_part/3,make_size/3,set_high/1} in commit\n5aea81c49, but it turns out these had been copy-pasted verbatim into\nhipe_rtl_binary_construct, where they were causing further bugs. They\nhave now moved to hipe_rtl_binary, from where they are included by the\nother two modules.\n\nFurthermore, first_part/3 (reamed get_word_integer/3, since it loads\nintegers that fits into an unsigned word), and make_size/3 now accepts a\nfourth argument to distinguish too large arguments (which should cause a\nsystem_limit exception) from negative or non-integral arguments.\n\nThe use of first_part/3 (get_word_integer/3) from 5aea81c49 in\nhipe_rtl_binary_construct now allows several binary construction\ninstructions to accept bignum sizes, as they were supposed to.\n\nAdditionally, calls to\nhipe_rtl_binary_construct:check_and_untag_fixnum/3 were replaced with\nget_word_integer/4 since all of them were also supposed to accept\nsufficiently small bignums, but didn't, and check_and_untag_fixnum/3 was\nessentially identical to first_part/3 anyway.\n\nHiPE is now capable of passing bs_construct_SUITE completely unmodified.","distinct":true,"url":"https://api.github.com/repos/margnus1/otp/commits/a969f4ea48b78cbce50fa8136481ee355f9d21e5"},{"sha":"7e1abaf81cc5d0aaa73712cc33044665753b9b84","author":{"email":"53f5a831f9d0b91cc73e4df02d4419cdcdf883fa@telia.com","name":"Magnus Lång"},"message":"hipe: Guard against enormous numbers in ranges\n\nThis allows us to compile bs_match_int_SUITE with HiPE without a\nsystem_limit crash.","distinct":true,"url":"https://api.github.com/repos/margnus1/otp/commits/7e1abaf81cc5d0aaa73712cc33044665753b9b84"}]}