aboutsummaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
...
* Don't emit metadata unless compiling -shared.Graydon Hoare2011-04-292-5/+8
|
* Implement destructors in rustcMarijn Haverbeke2011-04-292-40/+61
| | | | | | Unlike rustboot, rustc keeps it destructors in vtables. Entry 0 holds either the destructor for the obj or a NULL pointer. The method offsets start at 1.
* rustc: Temporarily add a switch and a corresponding makefile variable to ↵Patrick Walton2011-04-292-5/+15
| | | | disable typestate
* build: Add a TIME_PASSES=1 variablePatrick Walton2011-04-291-0/+3
|
* rustc: Add a --time-passes optionPatrick Walton2011-04-292-14/+42
|
* rustc: Handle alias parameters in native functions properlyPatrick Walton2011-04-291-14/+20
|
* stdlib: Add a Time module to the standard libraryPatrick Walton2011-04-294-0/+43
|
* rustc: Remove the wrong-compiler warning; we're self-hosting now.Patrick Walton2011-04-292-14/+3
|
* Intern metadata while writing, shrink stage1 from 12mb to 5.7mb.Graydon Hoare2011-04-294-94/+224
|
* rustc: Fix vec append glue for strings. Add a test case.Patrick Walton2011-04-282-5/+22
|
* rustc: Add some value names to the vec append glue function. Un-XFAIL ↵Patrick Walton2011-04-282-2/+6
| | | | vec-growth.rs.
* More attempts at fixing broken vec-append glue.Graydon Hoare2011-04-281-3/+3
|
* test: Add a test case for vec growthPatrick Walton2011-04-281-0/+15
|
* Make the no-growth path (previously never exercised) in rustc *work*.Graydon Hoare2011-04-281-2/+1
|
* Actually hit the no-growth path on vec-append.Graydon Hoare2011-04-281-2/+12
|
* stdlib: Provide "array" as a friendlier shorthand for "vec[mutable? T]"Patrick Walton2011-04-281-17/+18
|
* Consider unop deref as an lval. Un-XFAIL vec-push.Graydon Hoare2011-04-282-3/+2
|
* rustc: Add a testcase for vector push (mutable aliases with *, really)Patrick Walton2011-04-281-0/+11
|
* rustc: Only use color if it's supportedPatrick Walton2011-04-281-2/+10
|
* stdlib: Add a color_supported() function to TermPatrick Walton2011-04-283-0/+12
|
* Change vec-ref-count to handle 1 or 2, so long as non-leaky and ↵Graydon Hoare2011-04-281-4/+5
| | | | non-creeping. un-XFAIL.
* Drop args in native stubs too.Graydon Hoare2011-04-281-0/+11
|
* stdlib: Add getenv(3) to win32_os.Patrick Walton2011-04-281-0/+2
|
* test: Add a test for vector reference counts, XFAIL'd in rustcPatrick Walton2011-04-281-0/+11
|
* Log refcounts in upcall_vec_grow.Graydon Hoare2011-04-281-4/+4
|
* Enable typestate_checkTim Chevalier2011-04-281-2/+1
| | | | This was supposed to be in a previous commit. I don't know what happened.
* Enable typestate_checkTim Chevalier2011-04-2811-11/+0
| | | | | Enable typestate checking (just for uninitialized vars) and un-XFAIL the relevant tests for stage0.
* Add a session field to ty_ctxt and change an err to span_errTim Chevalier2011-04-283-12/+18
| | | | | | | I changed instantiate to print out a more helpful error message, which required passing it a session argument. To avoid threading extra arguments through a lot of functions, I added a session field to ty_ctxt.
* Reindented things and removed superfluous comments, nothing to see hereTim Chevalier2011-04-281-14/+7
|
* Fix some nested patterns in rustcTim Chevalier2011-04-282-0/+31
| | | | | | In rustc, nested patterns were potentially matching when they shouldn't match, because a loop index wasn't being incremented. Fixed it and added one test case.
* Slightly more helpful error message for "null lib handle"Tim Chevalier2011-04-281-1/+2
| | | | | I changed the error message to also suggest checking the -L flag when this happens.
* Fix nested patterns in rustbootTim Chevalier2011-04-281-16/+34
| | | | | | | | | | The code for taking pattern-bound variables was being interspersed with pattern code, so that if a nested pattern failed partway through, a variable would be taken but never dropped (because the drop code is inside the block representing the action for the pattern). For example, in the pattern foo(?i, bar(some[t](_)), _), if the scrutinee was foo(x, bar(none[t]), y), the variable i would be taken but never dropped. The patch fixes this bug.
* Fix bug in handling of expr_alt (postcond for alts was being intersected ↵Tim Chevalier2011-04-282-52/+136
| | | | with postcond for scrutinee)
* Fixed bug in typeck that wasn't filling in anns for stmtsTim Chevalier2011-04-283-8/+39
| | | | | | | (needed for typestate_check). Also changed a (log; fail) to (log_err; fail) in typestate_check, and added some more logging funs in util.common.
* Support all expression forms in typestateTim Chevalier2011-04-284-12/+274
| | | | | | | | | | | | Added support for self_method, cont, chan, port, recv, send, be, do_while, spawn, and ext; handled break and cont correctly. (However, there are no non-xfailed test cases for ext or spawn in stage0 currently.) Although the standard library compiles and all test cases pass with typestate enabled, I left typestate checking disabled as rustc terminates abnormally when building the standard library if so, even though it does generate code correctly.
* Further work on typestate_checkTim Chevalier2011-04-286-131/+483
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Lots of work on typestate_check, seems to get a lot of the way through checking the standard library. * Added for, for_each, assign_op, bind, cast, put, check, break, and cont. (I'm not sure break and cont are actually handled correctly.) * Fixed side-effect bug in seq_preconds so that unioning the preconditions of a sequence of statements or expressions is handled correctly. * Pass poststate correctly through a stmt_decl. * Handle expr_ret and expr_fail properly (after execution of a ret or fail, everything is true -- this is needed to handle ifs and alts where one branch is a ret or fail) * Fixed bug in set_prestate_ann where a thing that needed to be mutated wasn't getting passed as an alias * Fixed bug in how expr_alt was treated (zero is not the identity for intersect, who knew, right?) * Update logging to reflect log_err vs. log * Fixed find_locals so as to return all local decls and exclude function arguments. * Make union_postconds work on an empty vector (needed to handle empty blocks correctly) * Added _vec.cat_options, which takes a list of option[T] to a list of T, ignoring any Nones * Added two test cases.
* Add a very minimal set of .cfi_* statements to get part of backtracesRafael Ávila de Espíndola2011-04-282-3/+35
| | | | | | | | | | | | | | | | | working (on hello world at least): ~/inst/gdb/bin/gdb --args ./foo (gdb) b write ... (gdb) r ... Breakpoint 1, 0xf7f04270 in write () from /lib32/libc.so.6 (gdb) bt 0 0xf7f04270 in write () from /lib32/libc.so.6 1 0x0804931a in rust_native_cdecl_3 () 2 0x080487d7 in _rust_wrapper3_ () 3 0x0804890a in _rust_fn5_main () 4 0x08049440 in rust_native_cdecl_7 ()
* Actually perform take/drop on args (oh my!)Graydon Hoare2011-04-281-4/+36
|
* rustc: Joseph and the Amazing Technicolor Error MessagesPatrick Walton2011-04-281-21/+20
|
* stdlib: Use an unsafe cast to speed up the memory writerPatrick Walton2011-04-271-1/+11
|
* stdlib/rt: Add an unsafe function to cast immutable vectors to mutable onesPatrick Walton2011-04-273-0/+12
|
* rt: Add str_vec to the def file. Puts out burning tinderbox.Patrick Walton2011-04-271-0/+1
|
* Use cnames when present in ty.ty_to_str.Graydon Hoare2011-04-271-10/+10
|
* Cache sha1 values of types, use seq-based mangling for glue as it's private ↵Graydon Hoare2011-04-271-10/+17
| | | | anyways.
* Fix _str.bytes to trivial version.Graydon Hoare2011-04-272-4/+28
|
* stdlib: Real fix for _uint.parse_buf().Patrick Walton2011-04-271-0/+8
|
* stdlib: Fix a crazy underflow bug in _uint.parse_buf. Oops.Patrick Walton2011-04-271-3/+2
|
* Partly disable simplified-type glue optimization due to compile-time cost.Graydon Hoare2011-04-271-1/+11
|
* rustc: Ignore the return value of native functions that return nil. stage1 ↵Patrick Walton2011-04-261-1/+10
| | | | can build libstd now, though it leaks.
* rustc: Actually write the optimized bitcode when --save-temps is onPatrick Walton2011-04-261-12/+13
|