- 09 7月, 2013 28 次提交
-
-
由 bors 提交于
Added external iterators as well as tests to SmallIntMap and SmallIntSet. Fixes #7366
-
由 bors 提交于
This should never cause a segfault, but rather fail somehow. Possibly a condition could be used here, but for now there's not much else to do.
-
由 bors 提交于
Correct treatment of irrefutable patterns. The old code was wrong in many, many ways. `ref` bindings didn't work, it sometimes copied when it should have moved, the borrow checker didn't even look at such patterns at all, we weren't consistent about preventing values with destructors from being pulled apart, etc. Fixes #3224. Fixes #3225. Fixes #3255. Fixes #6225. Fixes #6386. r? @catamorphism
-
由 bors 提交于
-
由 bors 提交于
Avoids the overhead of read_char for every character. Benchmark reading example.json 10 times from https://code.google.com/p/rapidjson/wiki/Performance Before: 2.55s After: 0.16s Regression testing is already done by isrustfastyet.
-
由 bors 提交于
-
由 Niko Matsakis 提交于
-
由 Niko Matsakis 提交于
-
由 Niko Matsakis 提交于
-
由 Niko Matsakis 提交于
-
由 Niko Matsakis 提交于
-
由 Niko Matsakis 提交于
-
由 Niko Matsakis 提交于
-
由 Niko Matsakis 提交于
-
由 Niko Matsakis 提交于
-
由 Niko Matsakis 提交于
-
由 Niko Matsakis 提交于
-
由 Niko Matsakis 提交于
let and function arguments; modify type checker to store type information for all patterns and handles some missing cases.
-
由 Niko Matsakis 提交于
for cases where it's hard to decide what id to use for the lookup); modify irrefutable bindings code to move or copy depending on the type, rather than threading through a flag. Also updates how local variables and arguments are registered. These changes were hard to isolate.
-
由 Niko Matsakis 提交于
in the generated LLVM code.
-
由 Niko Matsakis 提交于
-
由 Niko Matsakis 提交于
-
由 Niko Matsakis 提交于
-
由 Niko Matsakis 提交于
In particular, it is not valid to go around passing uninitialized or zero'd memory as arguments. Rust should generally be free to assume that the arguments it gets are valid input values, but the output of intrinsics::uninit() and intrinsics::init() are not (e.g., an @T is just null, leading to an error if we should try to increment the ref count).
-
由 Niko Matsakis 提交于
-
由 Niko Matsakis 提交于
-
由 Brian Anderson 提交于
-
由 bors 提交于
This can be useful for inserting debugging code at different steps in an iterator pipeline.
-
- 08 7月, 2013 12 次提交
-
-
由 bors 提交于
There are lots of unneeded allocas and Store/Load cycles for calls with immediate return values. This is a first step towards removing that, allowing immediate return values to be directly returned from trans_call_inner and trans_lang_call (for now), instead of always stuffing them into an alloca. For now, only a few things take advantage of the new behaviour, but this already saves 16k allocas and 43k lines in total in the unoptimized IR for librustc. Running "make check" under time shows that CPU time for the unoptimized test suite is reduced by about 7%.
-
由 Björn Steinbrink 提交于
We currently still handle immediate return values a lot like non-immediate ones. We provide a slot for them and store them into memory, often just to immediately load them again. To improve this situation, trans_call_inner has to return a Result which contains the immediate return value. Also, it also needs to accept "No destination" in addition to just SaveIn and Ignore. Since "No destination" isn't something that fits well into the Dest type, I've chosen to simply use Option<Dest> instead, paired with an assertion that checks that "None" is only allowed for immediate return values.
-
由 bors 提交于
A lot of cross-platform issues stem from rusti/rustpkg, so include these two test suites in the 'check-lite' target which is run on the cross-compile bots. It shouldn't be much of a performance hit because these suites are pretty fast to run. Hopefully this will make snapshot/tarball creation easier in the future.
-
由 Björn Steinbrink 提交于
There's no need to allocate a return slot for anykind of immediate return value, not just not for nils. Also, when the return value is ignored, we only have to copy it to a temporary alloca if it's actually required to call drop_ty on it.
-
由 bors 提交于
This is work continued from the now landed #7495 and #7521 pulls. Removing the headers from unique vectors is another project, so I've separated the allocator.
-
由 Daniel Micay 提交于
-
由 Daniel Micay 提交于
remove some method resolve workarounds
-
由 Daniel Micay 提交于
-
由 Daniel Micay 提交于
-
由 bors 提交于
-
由 bors 提交于
Closes #7589
-
由 Alex Crichton 提交于
Ironically also disable rusti tests for now, but mainly because they're awaiting LLVM upgrades before proceeding
-