about summary refs log tree commit diff
path: root/src
AgeCommit message (Collapse)AuthorLines
2011-08-24Optimize += [x] into a simple push operationMarijn Haverbeke-14/+82
This is a preparation for making vectors always-on-the-heap again, which would cause way too much malloc traffic for this idiom. I will add an efficient std::vec::push in the future, and migrate += [x] to that instead. Reduces compiler code size by 3%
2011-08-24Check for is_terminated after translating a blockMarijn Haverbeke-1/+1
Closes #861
2011-08-23Resolve a number of FIXMEsBrian Anderson-49/+10
2011-08-23Zero locals with initializers that may break or terminate. Closes #787Brian Anderson-1/+92
2011-08-23Add kind-checking for assign-op, copy, ret, be, fail exprs. Fix caught ↵Graydon Hoare-35/+45
kinding-violations in rustc and libstd.
2011-08-23Recheck the while loop contition after continuing. Closes #825Brian Anderson-4/+14
2011-08-23Cleanup formatting in std::sha1Brian Anderson-35/+15
This file has suffered a lot of reformats and was looking pretty ragged
2011-08-23Fix pretty-printing of istr literals. Issue #855Brian Anderson-2/+13
2011-08-22Eliminate unused variable warnings in stdtestBrian Anderson-6/+7
2011-08-22Add ivec::from_str and to_str methods. Issue #855Brian Anderson-0/+18
2011-08-22Add std::istr. Issue #855Brian Anderson-0/+712
2011-08-22Promote std::task::rustrt::leak to std::unsafe::leakBrian Anderson-3/+8
I want to use this for std::istr
2011-08-22Teach rustc to append istrs. Issue #855Brian Anderson-7/+42
2011-08-22Teach rustc to add istrs. Issue #855Brian Anderson-2/+33
2011-08-22Encode the istr shape correctly. Issue #855Brian Anderson-2/+13
2011-08-22Fix ivec self-append. Closes #816Brian Anderson-6/+45
2011-08-22Create correct drop glue for istrs. Issue #855Brian Anderson-0/+10
2011-08-22Translate istr literals. Issue #855Brian Anderson-55/+41
2011-08-22Extract trans_ivec::alloc_with_heap from trans_ivec::trans_ivecBrian Anderson-9/+32
Need this for building istrs
2011-08-22Move trans::ivec to middle::trans_ivecBrian Anderson-691/+705
2011-08-22Move trans_ivec into the ivec moduleBrian Anderson-95/+93
2011-08-22Silence unused variable warnings in compiletestBrian Anderson-2/+2
2011-08-22Move functions from syntax::ast to syntax::ast_utilBrian Anderson-314/+358
This leaves syntax::ast just defining the AST, which strikes me as somewhat nicer
2011-08-22Remove ast::spawn_domBrian Anderson-2/+0
2011-08-22Implement pattern guardsMarijn Haverbeke-29/+96
The syntax is alt x { mypat where mycond { ... } } The condition may refer to any of the variables bound by the pattern. When a guard fails, pattern-matching continues with the next pattern. Closes #857
2011-08-22Fix bug introduced by 1a45a84e73a92e8aMarijn Haverbeke-0/+1
2011-08-22Start using copy glue to copy bits that may contain ivecsMarijn Haverbeke-26/+43
This is not currently necessary, but will be, when I land the new ivec representation.
2011-08-22Write a type_structurally_contains, use it to rewrite has_dynamic_sizeMarijn Haverbeke-35/+29
(I'll be using this for type-needs-copy-glue in the near future.)
2011-08-22Remove silly restriction on passing type params by aliasMarijn Haverbeke-21/+2
Since they are now passed by pointer, this is no longer a problem
2011-08-22Replace &ty::t with ty::t throughout the compilerMarijn Haverbeke-151/+151
Type handles are uints, passing them by reference only causes unnecessary spilling.
2011-08-22Do not check for self-assign unless dest is initializedMarijn Haverbeke-93/+92
Also, give copy_val and move_val a more sane return type.
2011-08-22Write call_copy_glueMarijn Haverbeke-1/+40
2011-08-22Add skeleton of copy glue that actually copiesMarijn Haverbeke-17/+82
2011-08-22Rename copy_glue back to take_glueMarijn Haverbeke-30/+30
2011-08-22Drop arguments on the caller side, not the calleeMarijn Haverbeke-147/+125
This makes it easier for the caller to optimize the take/drop away for temporary values, and opens up new possibilities for alias handling. Breaks tail calls.
2011-08-22Pass structural types by pointer, not by valueMarijn Haverbeke-45/+38
If we lose tail calls, this is possible. It simplifies things a lot. Direct motivation: We want ivecs with pointers pointing into themselves. When copying those, the pointers have to be adjusted. It is impossible to this when copying them with Load/Store.
2011-08-20Conditionally define CDECL and FASTCALL on windowsBrian Anderson-0/+4
These may already be defined by other includes. Hopefully puts out the windows fire.
2011-08-20Fix comment typosBrian Anderson-2/+2
2011-08-20Rewrite reap_dead_tasks to never grab the sched lock before a task lockBrian Anderson-9/+47
Doing so contradicts the locking order used everywhere else and causes deadlocks. Un-XFAIL task-perf-spawnalot Closes #854
2011-08-20rustc: Introduce ABI versioning so we can change value representations ↵Patrick Walton-6/+34
without breaking the compiler
2011-08-20rt: Move the GetProcAddress/dlsym stuff out of rust_gc.cpp into rust_abi.hPatrick Walton-18/+43
2011-08-20Convert task-perf-spawnalot to spawn_joinable. XFAILBrian Anderson-1/+7
2011-08-20Stop parsing ~[] vector syntaxBrian Anderson-10/+2
2011-08-20Stop parsing .() indexesBrian Anderson-7/+0
2011-08-20ReformatBrian Anderson-7387/+6788
This changes the indexing syntax from .() to [], the vector syntax from ~[] to [] and the extension syntax from #fmt() to #fmt[]
2011-08-20Move bump_dp, get_dp from rust_shape.cpp to rust_shape.hBrian Anderson-18/+18
Put out the darwin fire for real
2011-08-20Revert "Add another 'using namespace shape' inside namespace shape"Brian Anderson-2/+0
This reverts commit 09f4cd90a852b69bb72fc5385fdabbde39f5fb91.
2011-08-20Add another 'using namespace shape' inside namespace shapeBrian Anderson-0/+2
Try again to put out the darwin tinderbox
2011-08-20Revert "Shuffle around definitions in rust_shape.h"Brian Anderson-110/+110
This reverts commit d09b421d55d3772516181cfa5b791be485389876.
2011-08-20Shuffle around definitions in rust_shape.hBrian Anderson-110/+110
Try to put out darwin tinderbox fire