about summary refs log tree commit diff
path: root/src/lib
AgeCommit message (Collapse)AuthorLines
2011-06-28Rework how linkage attributes are determinedBrian Anderson-4/+6
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-28stdlib: Remove old botch from ufindPatrick Walton-5/+2
2011-06-28Add simple syntax extension (#simplext)Paul Stansifer-0/+18
2011-06-28Use "" in the native_name as an indication that no extra options have toRafael Ávila de Espíndola-3/+3
be passed to the "linker". Use that for libc.
2011-06-27Record and link with used native libraries.Rafael Ávila de Espíndola-3/+3
2011-06-24Invalidate constraints correctly after an assignment expressionTim Chevalier-1/+1
Modified typestate to throw away any constraints mentioning a variable on the LHS of an assignment, recv, assign_op, or on either side of a swap. Some code cleanup as well.
2011-06-24Remove res idents from stdlibMarijn Haverbeke-40/+40
2011-06-21Serialize constraints in types (literal arguments still not supported)Tim Chevalier-6/+14
This involved, in part, changing the ast::def type so that a def_fn has a "purity" field. This lets the typechecker determine whether functions defined in other crates are pure. It also required updating some error messages in tests. As a test for cross-crate constrained functions, I added a safe_slice function to std::str (slice(), with one of the asserts replaced with a function precondition) and some test cases (various versions of fn-constraint.rs) that call it. Also, I changed "fn" to "pred" for some of the boolean functions in std::uint.
2011-06-19Remove various rustboot workaroundsBrian Anderson-29/+4
2011-06-19rustc: Change smallintmap to use an ivec and use it for the node type table. ↵Patrick Walton-10/+14
3x typechecking speedup.
2011-06-18Replace unexported meta tags with attributesBrian Anderson-3/+2
Issue #487
2011-06-18stdlib: Add ivec::grow_set()Patrick Walton-1/+20
2011-06-18stdlib: Add ivec::grow() and ivec::grow_fn()Patrick Walton-0/+22
2011-06-17stdlib: Add some more ivec functions, untested as of yetPatrick Walton-3/+66
2011-06-17Made sure getcwd and friends work well on Windows.unknown-4/+14
2011-06-17stdlib: added getcwd and a convenience function to make relative paths ↵Eric Holk-2/+39
absolute. This will be helpful for #441.
2011-06-17rustc: Support both meta tags and attributes for crate metadataBrian Anderson-4/+4
This is a transitional patch for converting from 'meta' to attributes. Issue #487
2011-06-16stdlib: Sketch out ivec::init_fn, currently segfaultingPatrick Walton-0/+10
2011-06-16rustc: Implement conversions from interior vector data to unsafe pointers ↵Patrick Walton-0/+16
and vice-versa
2011-06-16Reformat a bunch of recent churn.Graydon Hoare-32/+19
2011-06-16stdlib: Introduce an ivec module into the standard library; add a minimal ↵Patrick Walton-0/+26
test case
2011-06-16stdlib: Add option::is_someBrian Anderson-0/+4
2011-06-15Re-enabled join.Eric Holk-2/+2
2011-06-15Add xterm to the term lib's list of supported terms.Michael Sullivan-0/+1
2011-06-15stdlib: Add color support for GNU screenBrian Anderson-2/+10
2011-06-15stdlib: Add emacs variables to term.rsBrian Anderson-0/+9
2011-06-15stdlib: Add an either moduleBrian Anderson-0/+65
Like Haskell's, with left and right tags, various conversion functions
2011-06-15Fix unsafe uses of aliases in tail callsMarijn Haverbeke-18/+35
2011-06-15Fix a bunch of compile-command lines to use RBUILDGraydon Hoare-22/+22
2011-06-15Attempt to put out windows tinderbox.Graydon Hoare-4/+4
2011-06-15Reformat source tree (minus a couple tests that are still grumpy).Graydon Hoare-2026/+1331
2011-06-15Fix assignments to immutable fields throughout the codeMarijn Haverbeke-11/+12
2011-06-13This is the mega-ucontext commit. It replaces the task switching mechanism ↵Eric Holk-2/+12
with a new one inspired by ucontext. It works under Linux, OS X and Windows, and is Valgrind clean on Linux and OS X (provided the runtime is built with gcc). This commit also moves yield and join to the standard library, as requested in #42. Join is currently a no-op though.
2011-06-11stdlib: Remove a FIXME for issue #452Brian Anderson-3/+1
2011-06-10Encode meta tags in the crate and start sketching enhanced logic for ↵Graydon Hoare-6/+17
resolving crate "use" directives. Now with extra "works on OSX" kludging.
2011-06-10rustc: Remove the bitwise not operatorPatrick Walton-8/+4
2011-06-10Fix unsafe uses of mutable referencesMarijn Haverbeke-3/+11
2011-06-10Fix all occurrences of writing to immutable aliasesMarijn Haverbeke-3/+3
You'd be surprised.
2011-06-09Further support for predicate constraintsTim Chevalier-0/+15
Changed function types to include a list of constraints. Added code for parsing and pretty-printing constraints. This necessitated splitting pprust into two files (pprust and ppaux) to break a circulate dependency, as ty_to_str now needs to print out constraints, which may include literals, but pprust depended on ty.
2011-06-09stdlib: Make union-find not create loops when unifying two already-unified setsPatrick Walton-1/+1
2011-06-09Properly handle lifetime of aliases in nested blocksMarijn Haverbeke-1/+2
There was a bug that would cause the alias analyser to allow you to invalidate an alias that was no longer directly referred to, even if another alias was rooted in it. It now properly tracks dependencies between live aliases. Required another case of copying values in map.rs.
2011-06-09Add vec::memberMarijn Haverbeke-0/+7
2011-06-09Some more workarounds to please the alias checkerMarijn Haverbeke-19/+25
Some of the vec utilities now only work on immutable vecs, since they would have to be rewritten to do a lot more copying to be alias-safe. Some forced copying was added to map.rs, showing a weakness in the alias checker (or maybe the alias system): when fn args are passed into a function, calling them must assume all aliases that are not immutably rooted (directly connected to a local or temporary without any mutable edges) become invalid. This will be a drag on functional programming in Rust. Work around alias issues in the stdlib
2011-06-08Tidy up 'export meta' situation now that snapshot understands it.Graydon Hoare-4/+4
2011-06-07rustc: Use a set-based approach to unification; remove ty_bound_param and ↵Patrick Walton-4/+30
ty_local. Sorry, big perf regression; will fix soon.
2011-06-07More work on proper linkage name-mangling. Almost right, aside from version ↵Graydon Hoare-3/+19
numbers.
2011-06-06Begin tidying up name-mangling rules.Graydon Hoare-0/+6
2011-06-04stdlib: Use spans for #fmt errors originating in stdBrian Anderson-10/+12
Issue #444
2011-06-03rustc: Add a "smallintmap" implementationPatrick Walton-0/+54
2011-06-02Fix and un-xfail vec-append testMarijn Haverbeke-4/+6