Djzin
83f1f118e5
hack around bug in emscripten
2017-06-09 07:07:58 +01:00
Djzin
b795b7b43b
restore old behaviour
2017-05-28 18:10:12 +01:00
Djzin
8a973dfa24
restore old behaviour for sizes < 128
2017-05-28 15:39:47 +01:00
Djzin
d4d3f53468
better respect alignment for copying tail
2017-05-27 16:39:51 +01:00
Djzin
74751358e6
Merge remote-tracking branch 'upstream/master' into fast-swap
2017-05-27 14:31:47 +01:00
Djzin
c6307a2fa5
copy tail bytes better for aligned types
2017-05-27 14:29:41 +01:00
bors
256e497fe6
Auto merge of #42245 - frewsxcv:rollup, r=frewsxcv
...
Rollup of 7 pull requests
- Successful merges: #42169 , #42215 , #42216 , #42224 , #42230 , #42236 , #42241
- Failed merges:
2017-05-26 15:31:49 +00:00
Corey Farwell
7e47327d90
Rollup merge of #42169 - scottmcm:new-step-trait-issue, r=alexcrichton
...
Give step_trait a distinct tracking issue from step_by
iterator_step_by has decoupled their futures, so the tracking issue should split.
Old issue: https://github.com/rust-lang/rust/issues/27741
New issue: https://github.com/rust-lang/rust/issues/42168
r? @alexcrichton (another follow-up to closed PR https://github.com/rust-lang/rust/pull/42110#issuecomment-303176049 )
2017-05-26 10:20:25 -04:00
bors
c732446edd
Auto merge of #42014 - tbu-:pr_scan_not_fused, r=alexcrichton
...
Remove `FusedIterator` implementation of `iter::Scan`
Fixes #41964 .
This is a breaking change.
2017-05-26 12:54:11 +00:00
Mark Simulacrum
a78a0dbe5f
Rollup merge of #42195 - SamWhited:fix_broken_link, r=steveklabnik
...
fix broken link to nomicon in Unsize docs
Add a missing link that is currently broken in the docs (see the last sentence of https://doc.rust-lang.org/std/marker/trait.Unsize.html )
2017-05-24 19:50:09 -06:00
Mark Simulacrum
ca0860df66
Rollup merge of #42159 - Havvy:doc-drop, r=steveklabnik
...
Document drop more.
Adds two examples to Drop and describes the recursive drop on types that contain fields.
2017-05-24 19:50:06 -06:00
Mark Simulacrum
00c87a6486
Rollup merge of #42134 - scottmcm:rangeinclusive-struct, r=aturon
...
Make RangeInclusive just a two-field struct
Not being an enum improves ergonomics and consistency, especially since NonEmpty variant wasn't prevented from being empty. It can still be iterable without an extra "done" bit by making the range have !(start <= end), which is even possible without changing the Step trait.
Implements merged https://github.com/rust-lang/rfcs/pull/1980 ; tracking issue https://github.com/rust-lang/rust/issues/28237 .
This is definitely a breaking change to anything consuming `RangeInclusive` directly (not as an Iterator) or constructing it without using the sugar. Is there some change that would make sense before this so compilation failures could be compatibly fixed ahead of time?
r? @aturon (as FCP proposer on the RFC)
2017-05-24 19:50:01 -06:00
Sam Whited
f6d935b455
fix broken link to nomicon in Unsize docs
2017-05-24 11:55:05 -05:00
Scott McMurray
794e5724a8
Give step_trait a distinct tracking issue from step_by
...
iterator_step_by has decoupled their futures, so the tracking issue should split.
2017-05-23 03:08:18 -07:00
Havvy
b41b2947d5
Suggested changes by birkenfeld
2017-05-22 23:49:35 -07:00
projektir
6e27bd8c01
Adding links to option::Option
2017-05-22 21:59:42 -04:00
Havvy
5f4b0ffe59
Fix trailing whitespace.
2017-05-22 16:33:55 -07:00
Havvy
d7927ffb8f
Add description of how values are dropped to Drop trait.
2017-05-22 15:59:00 -07:00
Havvy
ca909c836f
Add example of variable declaration drop order to Drop trait.
2017-05-22 15:15:04 -07:00
Havvy
14b767d07e
Add example of recursive drop to Drop trait.
2017-05-22 15:06:25 -07:00
Scott McMurray
7eaca60f3b
Return a correct size_hint for degenerate inclusive ranges
...
Fixes https://github.com/rust-lang/rust/issues/42135
Found while fixing run-pass/range_inclusive test failure.
2017-05-21 05:03:49 -07:00
Scott McMurray
f166bd9857
Make RangeInclusive just a two-field struct
...
Not being an enum improves ergonomics, especially since NonEmpty could be Empty. It can still be iterable without an extra "done" bit by making the range have !(start <= end), which is even possible without changing the Step trait.
Implements RFC 1980
2017-05-21 01:48:03 -07:00
Mark Simulacrum
950e4266e6
Rollup merge of #42098 - japaric:gh42097, r=Mark-Simulacrum
...
core: fix unused_macro warning
when compiling the crate for a target with max-atomic-width = 0
fixes #42097
2017-05-20 17:48:15 -06:00
Alexis Beingessner
892df1db60
expose needs_drop under mem::
2017-05-20 19:26:34 -04:00
bors
272e77f035
Auto merge of #42111 - ollie27:stab, r=Mark-Simulacrum
...
Correct some stability versions
These were found by running tidy on stable versions of rust and finding
features stabilised with the wrong version numbers.
2017-05-20 15:42:43 +00:00
Oliver Middleton
2f703e4304
Correct some stability versions
...
These were found by running tidy on stable versions of rust and finding
features stabilised with the wrong version numbers.
2017-05-20 08:38:39 +01:00
bors
5dfcd85fd4
Auto merge of #42105 - Mark-Simulacrum:rollup, r=Mark-Simulacrum
...
Rollup of 17 pull requests
- Successful merges: #41870 , #41910 , #41958 , #41971 , #42006 , #42024 , #42037 , #42056 , #42067 , #42070 , #42079 , #42080 , #42082 , #42089 , #42092 , #42096 , #42100
- Failed merges:
2017-05-19 20:41:18 +00:00
Mark Simulacrum
db01c945fc
Rollup merge of #42037 - nagisa:charpat, r=sfackler
...
Minor optimisation of the string operations
The interesting benchmarks are
<table cellspacing="0" border="0">
<tr>
<th height="17" align="right"><b> (<100% → better than original )</b></th>
<th align="left" sdnum="2057;0;0.00%">Delta</th>
<th align="left">Original ns/i</th>
<th align="left">This Patch ns/i</th>
</tr>
<tr>
<td height="17" align="left">str::contains_bang_char::long_lorem_ipsum</td>
<td align="right" sdval="0.249775381850854" sdnum="2057;0;0.00%">24.98%</td>
<td align="right" sdval="5565" sdnum="2057;">5565</td>
<td align="right" sdval="1390" sdnum="2057;">1390</td>
</tr>
<tr>
<td height="17" align="left">str::contains_bang_char::short_ascii</td>
<td align="right" sdval="0.277777777777778" sdnum="2057;0;0.00%">27.78%</td>
<td align="right" sdval="144" sdnum="2057;">144</td>
<td align="right" sdval="40" sdnum="2057;">40</td>
</tr>
<tr>
<td height="17" align="left">str::contains_bang_char::short_mixed</td>
<td align="right" sdval="0.333333333333333" sdnum="2057;0;0.00%">33.33%</td>
<td align="right" sdval="120" sdnum="2057;">120</td>
<td align="right" sdval="40" sdnum="2057;">40</td>
</tr>
<tr>
<td height="17" align="left">str::contains_bang_char::short_pile_of_poo</td>
<td align="right" sdval="0.594202898550725" sdnum="2057;0;0.00%">59.42%</td>
<td align="right" sdval="69" sdnum="2057;">69</td>
<td align="right" sdval="41" sdnum="2057;">41</td>
</tr>
<tr>
<td height="17" align="left">str::ends_with_ascii_char::long_lorem_ipsum</td>
<td align="right" sdval="0.452629649990837" sdnum="2057;0;0.00%">45.26%</td>
<td align="right" sdval="5457" sdnum="2057;">5457</td>
<td align="right" sdval="2470" sdnum="2057;">2470</td>
</tr>
<tr>
<td height="17" align="left">str::ends_with_ascii_char::short_ascii</td>
<td align="right" sdval="0.450054684651841" sdnum="2057;0;0.00%">45.01%</td>
<td align="right" sdval="5486" sdnum="2057;">5486</td>
<td align="right" sdval="2469" sdnum="2057;">2469</td>
</tr>
<tr>
<td height="17" align="left">str::ends_with_ascii_char::short_mixed</td>
<td align="right" sdval="0.463132795304475" sdnum="2057;0;0.00%">46.31%</td>
<td align="right" sdval="5452" sdnum="2057;">5452</td>
<td align="right" sdval="2525" sdnum="2057;">2525</td>
</tr>
<tr>
<td height="17" align="left">str::ends_with_ascii_char::short_pile_of_poo</td>
<td align="right" sdval="0.453426419254088" sdnum="2057;0;0.00%">45.34%</td>
<td align="right" sdval="5443" sdnum="2057;">5443</td>
<td align="right" sdval="2468" sdnum="2057;">2468</td>
</tr>
<tr>
<td height="17" align="left">str::ends_with_unichar::long_lorem_ipsum</td>
<td align="right" sdval="0.459385290889133" sdnum="2057;0;0.00%">45.94%</td>
<td align="right" sdval="5466" sdnum="2057;">5466</td>
<td align="right" sdval="2511" sdnum="2057;">2511</td>
</tr>
<tr>
<td height="17" align="left">str::ends_with_unichar::short_ascii</td>
<td align="right" sdval="0.460593841642229" sdnum="2057;0;0.00%">46.06%</td>
<td align="right" sdval="5456" sdnum="2057;">5456</td>
<td align="right" sdval="2513" sdnum="2057;">2513</td>
</tr>
<tr>
<td height="17" align="left">str::ends_with_unichar::short_mixed</td>
<td align="right" sdval="0.454976303317536" sdnum="2057;0;0.00%">45.50%</td>
<td align="right" sdval="5486" sdnum="2057;">5486</td>
<td align="right" sdval="2496" sdnum="2057;">2496</td>
</tr>
<tr>
<td height="17" align="left">str::ends_with_unichar::short_pile_of_poo</td>
<td align="right" sdval="0.456497797356828" sdnum="2057;0;0.00%">45.65%</td>
<td align="right" sdval="5448" sdnum="2057;">5448</td>
<td align="right" sdval="2487" sdnum="2057;">2487</td>
</tr>
<tr>
<td height="17" align="left">str::find_underscore_char::long_lorem_ipsum</td>
<td align="right" sdval="0.622058559367703" sdnum="2057;0;0.00%">62.21%</td>
<td align="right" sdval="5567" sdnum="2057;">5567</td>
<td align="right" sdval="3463" sdnum="2057;">3463</td>
</tr>
<tr>
<td height="17" align="left">str::find_underscore_char::short_ascii</td>
<td align="right" sdval="0.664383561643836" sdnum="2057;0;0.00%">66.44%</td>
<td align="right" sdval="146" sdnum="2057;">146</td>
<td align="right" sdval="97" sdnum="2057;">97</td>
</tr>
<tr>
<td height="17" align="left">str::find_underscore_char::short_mixed</td>
<td align="right" sdval="0.762295081967213" sdnum="2057;0;0.00%">76.23%</td>
<td align="right" sdval="122" sdnum="2057;">122</td>
<td align="right" sdval="93" sdnum="2057;">93</td>
</tr>
<tr>
<td height="17" align="left">str::find_underscore_str::short_pile_of_poo</td>
<td align="right" sdval="0.476190476190476" sdnum="2057;0;0.00%">47.62%</td>
<td align="right" sdval="252" sdnum="2057;">252</td>
<td align="right" sdval="120" sdnum="2057;">120</td>
</tr>
<tr>
<td height="17" align="left">str::find_zzz_char::long_lorem_ipsum</td>
<td align="right" sdval="0.621655593463818" sdnum="2057;0;0.00%">62.17%</td>
<td align="right" sdval="5569" sdnum="2057;">5569</td>
<td align="right" sdval="3462" sdnum="2057;">3462</td>
</tr>
<tr>
<td height="17" align="left">str::find_zzz_char::short_ascii</td>
<td align="right" sdval="0.666666666666667" sdnum="2057;0;0.00%">66.67%</td>
<td align="right" sdval="147" sdnum="2057;">147</td>
<td align="right" sdval="98" sdnum="2057;">98</td>
</tr>
<tr>
<td height="17" align="left">str::find_zzz_char::short_mixed</td>
<td align="right" sdval="0.754098360655738" sdnum="2057;0;0.00%">75.41%</td>
<td align="right" sdval="122" sdnum="2057;">122</td>
<td align="right" sdval="92" sdnum="2057;">92</td>
</tr>
<tr>
<td height="17" align="left">str::find_zzz_str::long_lorem_ipsum</td>
<td align="right" sdval="0.728648648648649" sdnum="2057;0;0.00%">72.86%</td>
<td align="right" sdval="925" sdnum="2057;">925</td>
<td align="right" sdval="674" sdnum="2057;">674</td>
</tr>
<tr>
<td height="17" align="left">str::rfind_underscore_char::long_lorem_ipsum</td>
<td align="right" sdval="0.3418911335578" sdnum="2057;0;0.00%">34.19%</td>
<td align="right" sdval="7128" sdnum="2057;">7128</td>
<td align="right" sdval="2437" sdnum="2057;">2437</td>
</tr>
<tr>
<td height="17" align="left">str::rfind_underscore_char::short_ascii</td>
<td align="right" sdval="0.373056994818653" sdnum="2057;0;0.00%">37.31%</td>
<td align="right" sdval="193" sdnum="2057;">193</td>
<td align="right" sdval="72" sdnum="2057;">72</td>
</tr>
<tr>
<td height="17" align="left">str::rfind_underscore_char::short_mixed</td>
<td align="right" sdval="0.414201183431953" sdnum="2057;0;0.00%">41.42%</td>
<td align="right" sdval="169" sdnum="2057;">169</td>
<td align="right" sdval="70" sdnum="2057;">70</td>
</tr>
<tr>
<td height="17" align="left">str::rfind_underscore_char::short_pile_of_poo</td>
<td align="right" sdval="0.505050505050505" sdnum="2057;0;0.00%">50.51%</td>
<td align="right" sdval="99" sdnum="2057;">99</td>
<td align="right" sdval="50" sdnum="2057;">50</td>
</tr>
<tr>
<td height="17" align="left">str::rfind_zzz_char::long_lorem_ipsum</td>
<td align="right" sdval="0.341983447888904" sdnum="2057;0;0.00%">34.20%</td>
<td align="right" sdval="7129" sdnum="2057;">7129</td>
<td align="right" sdval="2438" sdnum="2057;">2438</td>
</tr>
<tr>
<td height="17" align="left">str::rfind_zzz_char::short_ascii</td>
<td align="right" sdval="0.371134020618557" sdnum="2057;0;0.00%">37.11%</td>
<td align="right" sdval="194" sdnum="2057;">194</td>
<td align="right" sdval="72" sdnum="2057;">72</td>
</tr>
<tr>
<td height="17" align="left">str::rfind_zzz_char::short_mixed</td>
<td align="right" sdval="0.409356725146199" sdnum="2057;0;0.00%">40.94%</td>
<td align="right" sdval="171" sdnum="2057;">171</td>
<td align="right" sdval="70" sdnum="2057;">70</td>
</tr>
<tr>
<td height="17" align="left">str::rfind_zzz_char::short_pile_of_poo</td>
<td align="right" sdval="0.548076923076923" sdnum="2057;0;0.00%">54.81%</td>
<td align="right" sdval="104" sdnum="2057;">104</td>
<td align="right" sdval="57" sdnum="2057;">57</td>
</tr>
<tr>
<td height="17" align="left">str::trim_right_ascii_char::short_mixed</td>
<td align="right" sdval="1.10416666666667" sdnum="2057;0;0.00%">110.42%</td>
<td align="right" sdval="48" sdnum="2057;">48</td>
<td align="right" sdval="53" sdnum="2057;">53</td>
</tr>
<tr>
<td height="17" align="left">string::bench_from</td>
<td align="right" sdval="1.17241379310345" sdnum="2057;0;0.00%">117.24%</td>
<td align="right" sdval="58" sdnum="2057;">58</td>
<td align="right" sdval="68" sdnum="2057;">68</td>
</tr>
<tr>
<td height="17" align="left">string::bench_from_str</td>
<td align="right" sdval="1.17241379310345" sdnum="2057;0;0.00%">117.24%</td>
<td align="right" sdval="58" sdnum="2057;">58</td>
<td align="right" sdval="68" sdnum="2057;">68</td>
</tr>
<tr>
<td height="17" align="left">string::bench_push_str</td>
<td align="right" sdval="1.11111111111111" sdnum="2057;0;0.00%">111.11%</td>
<td align="right" sdval="54" sdnum="2057;">54</td>
<td align="right" sdval="60" sdnum="2057;">60</td>
</tr>
<tr>
<td height="17" align="left">string::bench_to_string</td>
<td align="right" sdval="1.12068965517241" sdnum="2057;0;0.00%">112.07%</td>
<td align="right" sdval="58" sdnum="2057;">58</td>
<td align="right" sdval="65" sdnum="2057;">65</td>
</tr>
<tr>
<td height="17" align="left">string::from_utf8_lossy_100_invalid</td>
<td align="right" sdval="1.1131458469588" sdnum="2057;0;0.00%">111.31%</td>
<td align="right" sdval="1529" sdnum="2057;">1529</td>
<td align="right" sdval="1702" sdnum="2057;">1702</td>
</tr>
</table>
2017-05-19 14:16:17 -06:00
bors
543691d0eb
Auto merge of #41439 - ivandardi:master, r=BurntSushi
...
Stabilize step_by by adding it to Iterator (issue #27741 )
Inspired by itertools' `take()` method. See issue #27741
2017-05-19 17:42:28 +00:00
Simonas Kazlauskas
41debc365e
Try to optimise char patterns
2017-05-19 10:14:13 +03:00
Jorge Aparicio
e4f9db7b8f
core: fix unused_macro warning
...
when compiling the crate for a target with max-atomic-width = 0
fixes #42097
2017-05-18 23:33:08 -05:00
bors
86319e473e
Auto merge of #41907 - est31:macro_unused, r=jseyfried
...
Add lint for unused macros
Addresses parts of #34938 , to add a lint for unused macros.
We now output warnings by default when we encounter a macro that we didn't use for expansion.
Issues to be resolved before this PR is ready for merge:
- [x] fix the NodeId issue described above
- [x] remove all unused macros from rustc and the libraries or set `#[allow(unused_macros)]` next to them if they should be kept for some reason. This is needed for successful boostrap and bors to accept the PR. -> #41934
- [x] ~~implement the full extent of #34938 , that means the macro match arm checking as well.~~ *let's not do this for now*
2017-05-16 23:27:36 +00:00
Ivan Dardi
c5a35f4a8d
Update documentation
2017-05-15 16:59:43 -03:00
Tobias Bucher
a7d91ef2fe
Remove FusedIterator implementation of iter::Scan
...
Fixes #41964 .
This is a breaking change.
2017-05-15 16:21:02 +02:00
bors
ac254fbe79
Auto merge of #41859 - froydnj:align-float-parts, r=sfackler
...
fix confusion about parts required for float formatting
The documentation for flt2dec doesn't match up with the actual
implementation, so fix the documentation to align with reality.
Presumably due to the mismatch, the formatting code for floats in
std::fmt can use correspondingly shorter arrays in some places, so fix
those places up as well.
Fixes #41304 .
2017-05-15 08:42:10 +00:00
Mark Simulacrum
c75ccd7b4e
Rollup merge of #41612 - mandeep:add-ops-generics, r=GuillaumeGomez,frewsxcv
...
Added generic example of std::ops::Add in doc comments
We discussed on IRC how the std::ops examples were potentially missing examples using generics. This PR adds an example to std::ops::Add that shows the use of a generic type T. I'm not sure this is ready for merge as I think the two examples now make the documentation a bit verbose, but I think it's a good starting point. I'd love to hear others thoughts on this. This is in relation to the last item in issue #29365 .
2017-05-13 20:55:08 -06:00
est31
ba0601d4b6
libcore: #[allow] some unused macros
2017-05-13 16:02:29 +02:00
bors
77f1bec6f5
Auto merge of #41920 - arielb1:inline-drop, r=eddyb
...
remove the #[inline] attribute from drop_in_place
Apparently LLVM has exponential code growth while inlining landing pads
if that attribute is present.
Fixes #41696 .
beta-nominating because regression.
r? @eddyb
2017-05-13 13:59:19 +00:00
Mark Simulacrum
f6bf99af5c
Rollup merge of #41934 - est31:remove_unused_macros, r=nagisa
...
Remove unused macros from the codebase
Thanks to the lint I've implemented in #41907 I've found some unused macros inside the rustc codebase.
2017-05-12 18:57:34 -06:00
Ivan Dardi
fa01372555
Fix commit derp and update implementations and documentation
2017-05-12 15:11:15 -03:00
est31
80891f6e47
Remove some unused macros from the rust codebase
...
Removes unused macros from:
* libcore
* libcollections
The last use of these two macros was removed in commit
b64c9d5670
when the char_range_at_reverse function was been removed.
* librustc_errors
Their last use was removed by commits
2f2c3e1783
and 11dc974a38 .
* libsyntax_ext
* librustc_trans
Also, put the otry macro in back/msvc/mod.rs under the
same cfg argument as the places that use it.
2017-05-12 09:37:28 +02:00
Ariel Ben-Yehuda
b0c80a93e4
remove the #[inline] attribute from drop_in_place
...
Apparently LLVM has exponential code growth while inlining landing pads
if that attribute is present.
Fixes #41696 .
2017-05-11 23:17:11 +03:00
Martin Glagla
641d05353a
Fix typo in size_hint example comment
2017-05-11 20:38:15 +02:00
mandeep
a2a9d1965b
Added generic example of std::ops::Add in doc comments
...
Added blank lines around example
Added comment to Add example referencing the Output type
Removed whitespace from lines 272 and 273
Removed Debug derivation from Add examples
Added Debug derivation
2017-05-11 11:24:20 -05:00
Ralf Jung
ec141c8c96
fix typo in Unique::empty doc
2017-05-10 17:08:58 +02:00
bors
2b97174ada
Auto merge of #41764 - scottmcm:faster-reverse, r=brson
...
Make [u8]::reverse() 5x faster
Since LLVM doesn't vectorize the loop for us, do unaligned reads of a larger type and use LLVM's bswap intrinsic to do the reversing of the actual bytes. cfg!-restricted to x86 and x86_64, as I assume it wouldn't help on things like ARMv5.
Also makes [u16]::reverse() a more modest 1.5x faster by loading/storing u32 and swapping the u16s with ROT16.
Thank you ptr::*_unaligned for making this easy :)
Benchmark results (from my i5-2500K):
```text
# Before
test slice::reverse_u8 ... bench: 273,836 ns/iter (+/- 15,592) = 3829 MB/s
test slice::reverse_u16 ... bench: 139,793 ns/iter (+/- 17,748) = 7500 MB/s
test slice::reverse_u32 ... bench: 74,997 ns/iter (+/- 5,130) = 13981 MB/s
test slice::reverse_u64 ... bench: 47,452 ns/iter (+/- 2,213) = 22097 MB/s
# After
test slice::reverse_u8 ... bench: 52,170 ns/iter (+/- 3,962) = 20099 MB/s
test slice::reverse_u16 ... bench: 93,330 ns/iter (+/- 4,412) = 11235 MB/s
test slice::reverse_u32 ... bench: 74,731 ns/iter (+/- 1,425) = 14031 MB/s
test slice::reverse_u64 ... bench: 47,556 ns/iter (+/- 3,025) = 22049 MB/s
```
If you're curious about the assembly, instead of doing this
```
movzx eax, byte ptr [rdi]
movzx ecx, byte ptr [rsi]
mov byte ptr [rdi], cl
mov byte ptr [rsi], al
```
it does this
```
mov rax, qword ptr [rdx]
mov rbx, qword ptr [r11 + rcx - 8]
bswap rbx
mov qword ptr [rdx], rbx
bswap rax
mov qword ptr [r11 + rcx - 8], rax
```
2017-05-10 08:54:50 +00:00
Nathan Froyd
b1858447d3
fix confusion about parts required for float formatting
...
The documentation for flt2dec doesn't match up with the actual
implementation, so fix the documentation to align with reality.
Presumably due to the mismatch, the formatting code for floats in
std::fmt can use correspondingly shorter arrays in some places, so fix
those places up as well.
Fixes #41304 .
2017-05-09 12:58:50 -04:00
Djzin
fcc970aca5
fix nit
2017-05-07 21:56:14 +01:00
Djzin
ca2fa97b6c
improve wording
2017-05-07 20:29:39 +01:00
Djzin
165f3668d6
optimize out stack alignment for sizes < 32
2017-05-07 20:26:19 +01:00