aboutsummaryrefslogtreecommitdiff
path: root/src
Commit message (Collapse)AuthorAgeFilesLines
...
* 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
|
* Fix the interaction between various flags in #fmtBrian Anderson2011-04-262-9/+29
|
* Support octal #fmt conversionsBrian Anderson2011-04-263-0/+25
|
* Make #fmt char conversions behave like printfBrian Anderson2011-04-262-3/+6
|
* Speed up calls to get_tydesc and kill cname-redundant glue generation.Graydon Hoare2011-04-261-16/+29
|
* Disable frame-pointer elimination (not sure how this didn't get commited ↵Graydon Hoare2011-04-261-0/+5
| | | | before).
* Merge branch 'master' of ssh://github.com/graydon/rustGraydon Hoare2011-04-266-127/+392
|\
| * rustc: Cap ridiculous type name sizesPatrick Walton2011-04-261-1/+3
| |
| * stdlib: Add a silly ANSI color libraryPatrick Walton2011-04-262-0/+55
| |
| * Change rustc to use GetOpts rather than ad-hoc command-line parsingMarijn Haverbeke2011-04-261-124/+78
| | | | | | | | | | NOTE: all 'long' parameters now use a double dash, so --shared, rather than gcc-style -shared.
| * Add GetOpts module to stdMarijn Haverbeke2011-04-262-0/+250
| |
| * Add _str.slice to std libMarijn Haverbeke2011-04-261-2/+6
| |
* | Various bits of trans lint, nothing major.Graydon Hoare2011-04-261-25/+36
|/
* rustc: Add a missing return value to Collect.ty_of_item()Patrick Walton2011-04-251-1/+3
|
* A little more guarding against wasted work in ty, typeck.Graydon Hoare2011-04-252-2/+19
|
* rustc: Use the abbreviated type names to avoid LLVM bitcode size explosionPatrick Walton2011-04-253-5/+11
|
* Kick ty_var and ty_local entries out of the type store. Pre-compute presence ↵Graydon Hoare2011-04-252-72/+183
| | | | of var, local, param and bound_params in types.
* rustc: Add a -save-temps option to save bitcode and write output ↵Patrick Walton2011-04-252-11/+64
| | | | simultaneously; document command line switches
* rustc: Pass a "type context" around instead of directly passing the type ↵Patrick Walton2011-04-257-833/+786
| | | | store; prep for removing type annotations
* Avoid type_store hashtable access for a variety of cases, probably only ↵Graydon Hoare2011-04-252-45/+168
| | | | ty_var matters.
* Skip substitution and/or binding when there's no work to do.Graydon Hoare2011-04-251-0/+34
|
* Bind tag members as aliases rather than new locals.Graydon Hoare2011-04-251-19/+18
|
* Skip likely-zero initial probe, speed up map.rs.Graydon Hoare2011-04-251-5/+5
|
* Fix busted iter/put code. Un-XFAIL foreach-box-drop.rs.Graydon Hoare2011-04-232-97/+94
|
* rustc: Use a silly "magic numbers" hack; seems to speed things up a bit.Patrick Walton2011-04-221-2/+41
|
* rustc: Include the cname in the hash to increase entropyPatrick Walton2011-04-221-1/+10
|
* rustc: Thread the type store through everything that needs to access type ↵Patrick Walton2011-04-225-383/+412
| | | | structures
* rustc: Move the type serialization logic to an Encode modulePatrick Walton2011-04-222-97/+108
|
* rustc: Remove direct access to the cname field of typesPatrick Walton2011-04-221-4/+7
|
* rustc: Switch @ty.t to ty.t so that we can change it to a uintPatrick Walton2011-04-227-423/+424
|
* Use -c in the Makefiles.Rafael Ávila de Espíndola2011-04-221-0/+1
|