about summary refs log tree commit diff
path: root/src/comp
AgeCommit message (Collapse)AuthorLines
2011-06-28rustc: Rename take glue to copy gluePatrick Walton-27/+27
2011-06-28Implement "claim"Tim Chevalier-15/+48
Implement "claim" (issue #14), which is a version of "check" that doesn't really do the check at runtime. It's an unsafe feature. The new flag --check-claims turns claims into checks automatically -- but it's off by default, so by default, the assertion in a claim doesn't execute at runtime.
2011-06-28Re-enabling some tests.Eric Holk-2/+2
2011-06-28There is only one domain per kernel now.Eric Holk-6/+0
2011-06-28Teach the parser and typechecker to understand port[int](). Closes #588Eric Holk-11/+41
2011-06-28Use span_fatal for failure to find cratesBrian Anderson-6/+5
2011-06-28Extract meta_item sorting from back::link to middle::attrBrian Anderson-23/+40
2011-06-28Add comments to middle::attr. Issue #487Brian Anderson-0/+3
2011-06-28Rework how linkage attributes are determinedBrian Anderson-125/+109
The meta items within a crate's link attribute are used in linkage: #[link(name = "std", vers = "1.0", custom = "whatever")]; Name and vers are treated specially, and everything else is hashed together into the crate meta hash. Issue #487
2011-06-28Add some helper functions for attributes. Issue #487Brian Anderson-0/+79
2011-06-28Handle lazy binops properly in typestateTim Chevalier-7/+26
The typestate analysis now reflects that the second operand of a logical and or or may not be evaluated.
2011-06-28add a predicate that determines whether a binop is lazy (and and or are lazy)Tim Chevalier-0/+8
2011-06-28Move glue.o to stageN/lib.Rafael Ávila de Espíndola-1/+1
2011-06-28rustc: Add a "type-owns-heap-mem" cache. 2x translation speedup.Patrick Walton-0/+10
2011-06-28rustc: Don't call cmp glue if the type is a simple scalarPatrick Walton-39/+60
2011-06-28Write metadata for more meta_item types. Issue #487Brian Anderson-55/+93
2011-06-28Write metadata for crate attributes. Issue #487Brian Anderson-22/+74
2011-06-28Add emacs variables to encoder.rsBrian Anderson-0/+10
2011-06-28List crate attributes when running rustc with '--ls'Brian Anderson-22/+64
2011-06-28Use 'resource' rather than 'res' as a keywordMarijn Haverbeke-2/+2
Resources are now defined like... resource fd(int n) { close(n); } Calling fd with an int will then produce a non-copyable value that, when dropped, will call close on the given int.
2011-06-28Add test cases for resourcesMarijn Haverbeke-1/+1
2011-06-28Fix bug that prevented boxes-in-resources from being freedMarijn Haverbeke-1/+1
2011-06-28Add some missing cases for ty_res in ty.rsMarijn Haverbeke-2/+28
2011-06-28Make it possible to use * to dereference a resourceMarijn Haverbeke-9/+16
2011-06-28'#simplext' -> '#macro'Paul Stansifer-1/+1
2011-06-28Add simple syntax extension (#simplext)Paul Stansifer-42/+202
2011-06-28Add AST fold.Paul Stansifer-0/+690
2011-06-28Properly guard resource values against double-dropMarijn Haverbeke-18/+51
Ths involved adding an extra field to their representation, so that there is something to check for zero.
2011-06-28Use "" in the native_name as an indication that no extra options have toRafael Ávila de Espíndola-9/+6
be passed to the "linker". Use that for libc.
2011-06-27rustc: Call cmp glue directly if we statically know itPatrick Walton-3/+11
2011-06-27rustc: Fix stack explosion on -O0 from Alloca() instead of alloca() in cmp gluePatrick Walton-1/+1
2011-06-27Tests for while loops that may invalidate constraintsTim Chevalier-96/+150
Wrote some small test cases that use while loops and moves, to make sure the poststate for the loop body gets propagated into the new prestate and deinitialization gets reflected. Along with that, rewrite the code for intersecting states. I still find it dodgy, but I guess I'll continue trying to add more tests. Also, I'll probably feel better about it once I start formalizing the algorithm.
2011-06-27pure_exp should set the state, not extend itTim Chevalier-2/+2
This fixes a bug where de-initializations were getting masked (and programs that used a variable that had been de-initialized snuck through).
2011-06-27Rename metadata::defs to metadata::tagsBrian Anderson-4/+4
2011-06-27Don't export some of the metadata modulesBrian Anderson-0/+5
2011-06-27Move what's left of metadata::cwriter into middle::transBrian Anderson-15/+17
2011-06-27Cleanup in metadata moduleBrian Anderson-2/+8
2011-06-27Extract metadata::decoder from metadata::creaderBrian Anderson-274/+295
2011-06-27Extract metadata::tydecode from metadata::creaderBrian Anderson-387/+400
2011-06-27Extract llvm-independent code from cwriter to metadata::encoderBrian Anderson-486/+485
2011-06-27Move metadata tag definition to metadata::defsBrian Anderson-92/+77
2011-06-27Limit exports from metadata::tyencodeBrian Anderson-0/+7
2011-06-27Move metadata::cwriter::encode to metadata::tyencodeBrian Anderson-245/+262
2011-06-27Rename middle::metadata to metadata::cwriter. Move creader to metadataBrian Anderson-50/+54
Preparation for a lot more metadata refactoring
2011-06-27Limit exports from middle::metadataBrian Anderson-0/+26
2011-06-27rustc: Directly emit calls to glue if possiblePatrick Walton-2/+27
2011-06-27Index obj and res ctor metadata by ctor id, not item idBrian Anderson-12/+16
Both the type and the ctor were trying to use the same id and this was making creader unable to find the ctor when running 'rustc --ls'
2011-06-27Record and link with used native libraries.Rafael Ávila de Espíndola-21/+66
2011-06-27removing log statement that snuck in thereTim Chevalier-1/+0
2011-06-27Implement move for scalar valuesTim Chevalier-1/+3
Before, something like: let int y = 42; let int x; x <- y; would cause an LLVM assertion failure. Fixed it.