Commit Graph

1058 Commits

Author SHA1 Message Date
Erick Tryzelaar
8ca8e6fa4d rustup: factor out installing packages into a function 2014-12-03 15:17:36 -08:00
Erick Tryzelaar
b388dc61a5 rustup: factor out downloading and extracting the snapshot tarballs 2014-12-03 15:17:32 -08:00
Erick Tryzelaar
4f65d97bf8 rustup: factor out the install flags into a CFG_INSTALL_FLAGS variable 2014-12-03 14:40:33 -08:00
Erick Tryzelaar
fcb31e8347 rustup: rename TMP_DIR to CFG_TMP_DIR 2014-12-03 14:40:33 -08:00
Erick Tryzelaar
e688eb3b4f rustup: add a RUST_ prefix to the rust-specific variables 2014-12-03 14:40:33 -08:00
Erick Tryzelaar
98f01f1f54 rustup: probe for the existance of tar 2014-12-03 14:40:33 -08:00
Erick Tryzelaar
3b4ad726f1 rustup: make rustup executable 2014-12-03 14:40:33 -08:00
Erick Tryzelaar
c7ae4a9664 whitespace cleanup 2014-12-03 14:40:33 -08:00
Luqman Aden
89d0995373 gdb: Fix pretty printer for nullable-opt enums with fat pointers. 2014-12-02 18:28:43 -05:00
Luqman Aden
886ff4f3c3 lldb: Fix pretty printer for nullable-opt enums with fat pointers. 2014-12-02 17:33:52 -05:00
Johannes Hoff
8f827d33ca Fall back to hard coded download directory
If mktemp fails, fall back to a hard coded directory, per @nodakai's feedback.
2014-11-27 11:15:49 -08:00
Alex Crichton
4c5b9669e8 rollup merge of #19322: DiamondLovesYou/multi-llvmdeps 2014-11-26 16:50:12 -08:00
Michael Woerister
67ba096cc3 debuginfo: Fix LLDB pretty printer for enum variants with zero fields. 2014-11-26 17:42:32 +01:00
Michael Woerister
7608d06027 debuginfo: Add script that allows to conveniently start LLDB in "rust-mode" 2014-11-26 15:58:17 +01:00
Richard Diamond
f17faf49be Never generate multiple extern {} blocks in mklldeps.py. 2014-11-25 17:53:05 -06:00
bors
689ef2dabf auto merge of #19255 : aturon/rust/merge-sync, r=alexcrichton,alexcrichton
This patch merges the `libsync` crate into `libstd`, undoing part of the
facade. This is in preparation for ultimately merging `librustrt`, as
well as the upcoming rewrite of `sync`.

Because this removes the `libsync` crate, it is a:

[breaking-change]

However, all uses of `libsync` should be able to reroute through
`std::sync` and `std::comm` instead.

r? @alexcrichton
2014-11-25 20:32:20 +00:00
bors
5acb97ae76 auto merge of #19021 : roysc/rust/emacs-pr, r=brson
"_" should keep the default syntax class (symbol, not word). This
allows, e.g., `forward-word' to behave in the familiar way, jumping to
underscores within a function or variable name.
2014-11-24 23:06:45 +00:00
Aaron Turon
985acfdb67 Merge libsync into libstd
This patch merges the `libsync` crate into `libstd`, undoing part of the
facade. This is in preparation for ultimately merging `librustrt`, as
well as the upcoming rewrite of `sync`.

Because this removes the `libsync` crate, it is a:

[breaking-change]

However, all uses of `libsync` should be able to reroute through
`std::sync` and `std::comm` instead.
2014-11-24 10:51:39 -08:00
Jakub Bukaj
ab8d811ebd rollup merge of #19166: richo/lldb-cleanups
While poking at rust in lldb I found a few nits to clean up.
2014-11-23 14:11:48 -05:00
Johannes Hoff
cb501535b3 Use mktemp for temporary download directory
Using the current directory may not always be appropriate, for example in
the case where it will unnecessarily trigger a backup to be made.

The only risk with this change is that systems might not have a mktemp.
I am not aware of such a system, but have not tested on Windows. It is
working on a basic Ubuntu and OS X installation.
2014-11-22 15:49:38 -08:00
bors
acfdb14044 auto merge of #19125 : chris-morgan/rust/vim-prelude-2014-11-20, r=alexcrichton 2014-11-22 10:46:40 +00:00
bors
829680840c auto merge of #17513 : dradtke/rust/master, r=kballard
Looks like I made my previous PR a little too hastily. =)

This PR fixes a couple issues that I discovered with my previous revision:

1. Updated the errorformat to ignore "pointer lines" so that they don't show up in the output (with quickfix jumping, they're redundant and unnecessary).
2. Renamed a couple variables to be more in line with Cargo's terminology (`g:cargo_toml_name` should now be `g:cargo_manifest_name`).
3. Added support for errors reported with absolute paths (looks to be the case when compiling an executable instead of a library).
4. Most importantly, added support for errors reported while compiling a dependency. When building a Cargo package with local dependencies, if one of those dependencies failed to compile, the quickfix would be completely broken as it assumed that all errors were relative to the local manifest, or the closest Cargo.toml. With this update, it now pays attention to lines that end with `(file://<path>)`, and from then on adjusts all errors to be relative to `<path>`.

As a side note, that `<path>` output is somewhat broken on Windows. While `file:///home/damien/...` on *Nix is a valid URI, `file:///C:/Users/damien/...` on Windows is not, because `C:/` (or whatever the drive is) should take the place of the third slash which is *Nix's root, not be appended to it. I added a workaround for this in my script, but I figured I'd mention it to see if this is a bug in how Rust formats paths.
2014-11-22 06:31:43 +00:00
Richo Healey
7191cd92c1 lldb: Clean up struct printing 2014-11-21 11:20:02 -08:00
bors
f530aa08df auto merge of #19095 : juxiliary/rust/master, r=bstrie
Vim plugins shouldn't override user settings unless they ask!

Stops the plugin from modifying the users settings by default
instead makes them opt-in with `g:rust_recommended_style`
2014-11-21 16:56:47 +00:00
bors
2fcbf90d68 auto merge of #16552 : jauhien/rust/fix-libdir, r=alexcrichton
Fixies #11671

This commit changes default relative libdir 'lib' to a relative libdir calculated using LIBDIR provided by --libdir configuration option. In case if no option was provided behavior does not change.
2014-11-21 06:21:48 +00:00
Richo Healey
0ab01048d5 lldb: refactor print_vec_slice_val
Be more idiomatic and rely less on fiddly construction of output
2014-11-20 16:31:56 -08:00
Richo Healey
125677e3f0 Add vim modeline to lldb formatter
The file doesn't adhere to the python standard, but this will let vi do
The Right Thing by default
2014-11-20 16:30:05 -08:00
Chris Morgan
dc0416ebce Update the Vim syntax prelude. 2014-11-20 11:00:45 +11:00
juxiliary
62a2a1d5cf Adding switch in vim plugin to toggle format opts 2014-11-19 18:06:53 +10:00
Steven Fackler
3dcd215740 Switch to purely namespaced enums
This breaks code that referred to variant names in the same namespace as
their enum. Reexport the variants in the old location or alter code to
refer to the new locations:

```
pub enum Foo {
    A,
    B
}

fn main() {
    let a = A;
}
```
=>
```
pub use self::Foo::{A, B};

pub enum Foo {
    A,
    B
}

fn main() {
    let a = A;
}
```
or
```
pub enum Foo {
    A,
    B
}

fn main() {
    let a = Foo::A;
}
```

[breaking-change]
2014-11-17 07:35:51 -08:00
Roy Crihfield
f3bd844d2a rust-mode.el: Tweak syntax table
"_" should keep the default syntax class (symbol, not word). This
allows, e.g., `forward-word' to behave in the familiar way, jumping to
underscores within a function or variable name.
2014-11-16 21:42:57 -06:00
bors
aad75471fd auto merge of #18994 : sfackler/rust/struct-variants-pt2, r=jakub-
Struct variant field visibility is now inherited. Remove `pub` keywords
from declarations.

Closes #18641

[breaking-change]

r? @alexcrichton
2014-11-16 18:27:10 +00:00
Jakub Bukaj
4c30cb2564 rollup merge of #18976: bjz/rfc369-numerics 2014-11-16 10:21:42 +01:00
Jakub Bukaj
0d97b95d43 rollup merge of #18935: jmesmon/cody/no-vendor-triplle 2014-11-16 10:19:47 +01:00
Steven Fackler
579c65da1b Un-feature gate struct variants
Struct variant field visibility is now inherited. Remove `pub` keywords
from declarations.

Closes #18641

[breaking-change]
2014-11-15 18:15:27 -08:00
Brendan Zabarauskas
2d8ca045d6 Rename IntoStr to IntoString
For consistancy with ToString
2014-11-16 12:41:55 +11:00
Jauhien Piatlicki
e889f8091a Look for standard crates in LIBDIR provided by --libdir option,
not in hardcoded libdir path. If there was no LIBDIR provided
during configuration fallback to hardcoded paths.

Thanks to Jan Niklas Hasse for solution and to Alex Crichton for improvements.

Closes #11671
2014-11-16 01:01:11 +01:00
bors
6f7081fad5 auto merge of #18827 : bjz/rust/rfc369-numerics, r=alexcrichton
This implements a considerable portion of rust-lang/rfcs#369 (tracked in #18640). Some interpretations had to be made in order to get this to work. The breaking changes are listed below:

[breaking-change]

- `core::num::{Num, Unsigned, Primitive}` have been deprecated and their re-exports removed from the `{std, core}::prelude`.
- `core::num::{Zero, One, Bounded}` have been deprecated. Use the static methods on `core::num::{Float, Int}` instead. There is no equivalent to `Zero::is_zero`. Use `(==)` with `{Float, Int}::zero` instead.
- `Signed::abs_sub` has been moved to `std::num::FloatMath`, and is no longer implemented for signed integers.
- `core::num::Signed` has been removed, and its methods have been moved to `core::num::Float` and a new trait, `core::num::SignedInt`. The methods now take the `self` parameter by value.
- `core::num::{Saturating, CheckedAdd, CheckedSub, CheckedMul, CheckedDiv}` have been removed, and their methods moved to `core::num::Int`. Their parameters are now taken by value. This means that
- `std::time::Duration` no longer implements `core::num::{Zero, CheckedAdd, CheckedSub}` instead defining the required methods non-polymorphically.
- `core::num::{zero, one, abs, signum}` have been deprecated. Use their respective methods instead.
- The `core::num::{next_power_of_two, is_power_of_two, checked_next_power_of_two}` functions have been deprecated in favor of methods defined a new trait, `core::num::UnsignedInt`
- `core::iter::{AdditiveIterator, MultiplicativeIterator}` are now only implemented for the built-in numeric types.
- `core::iter::{range, range_inclusive, range_step, range_step_inclusive}` now require `core::num::Int` to be implemented for the type they a re parametrized over.
2014-11-14 05:37:17 +00:00
Cody P Schafer
fb954a1578 src/etc/snapshot: support triples lacking a vendor 2014-11-13 17:23:02 -05:00
Alex Crichton
b73bc79d12 etc: Don't bundle libctl3d32 on windows
Apparently it's not found on win64!

Closes #18928
2014-11-13 09:28:26 -08:00
Brendan Zabarauskas
de938b6ca1 Remove Signed trait and add SignedInt trait
The methods have been moved into Float and SignedInt
2014-11-13 03:46:03 +11:00
Brendan Zabarauskas
26196715e8 Deprecate Num, Unsigned and Primitive 2014-11-13 02:04:31 +11:00
Brendan Zabarauskas
e51cc089da Move checked arithmetic operators into Int trait 2014-11-13 02:02:44 +11:00
bors
351f7afd06 auto merge of #18793 : swgillespie/rust/master, r=alexcrichton
I noticed today that `move` wasn't getting highlighted in my editor of choice (emacs), so I went ahead and added it as a keyword in the emacs, vim, and kate editor files. Apparently it has already been done for gedit.
2014-11-11 18:26:56 +00:00
bors
5c058418df auto merge of #18797 : vadimcn/rust/prefer-bundled2, r=alexcrichton
Based on Windows bundle feedback we got to date, 
- We *do* want to prefer the bundled linker: The external one might be for the wrong architecture (e.g. 32 bit vs 64 bit).  On the other hand, binutils don't add many new features these days, so using an older bundled linker is not likely to be a problem.
- We *do* want to prefer bundled libraries: The external ones might not have the symbols we expect (e.g. what's needed for DWARF exceptions vs SjLj).  Since `-L rustlib/<triple>/lib` appears first on the linker command line, it's a good place to keep our platform libs that we want to be found first.

Closes #18325, closes #17726.
2014-11-11 10:12:00 +00:00
Sean Gillespie
27774e8e24 Add 'move' keyword to emacs, kate, and vim editor modes. 2014-11-10 23:46:36 -08:00
Josh Stone
e94912aa85 vim: move 'move' to rustStorage 2014-11-10 13:48:17 -08:00
bors
830c82dd74 auto merge of #18782 : netvl/rust/update-vim-syntax, r=alexcrichton
`as` (already for a long time) and `move` (which was only added recently, AFAIK) are not marked as keywords in Vim syntax file, so they are not highlighted as keywords in Rust sources. This PR fixes this.
2014-11-10 07:01:49 +00:00
Vladimir Matveev
3961eaec85 Added move keyword and renamed fail to panic 2014-11-09 21:10:08 +03:00
Vadim Chugunov
cb2328f839 Include some of the more popular Windows import libs into the bundle. 2014-11-08 19:47:37 -08:00
Vadim Chugunov
5cd4862c69 Move gcc back to rustlib\<triple>\bin 2014-11-08 18:33:41 -08:00
gamazeps
16c8cd931c Renamed Extendable to Extend
In order to upgrade, simply rename the Extendable trait to Extend in
your code

Part of #18424

[breaking-change]
2014-11-08 15:02:09 +01:00
Alex Crichton
f87ff765fe rollup merge of #18654 : michaelwoerister/lldb-test-timeout 2014-11-06 13:53:27 -08:00
Alex Crichton
fa530fff51 rollup merge of #18656 : thiagopnts/rename-deprecated-non_uppercase_statics 2014-11-06 13:31:54 -08:00
Aaron Turon
cfafc1b737 Prelude: rename and consolidate extension traits
This commit renames a number of extension traits for slices and string
slices, now that they have been refactored for DST. In many cases,
multiple extension traits could now be consolidated. Further
consolidation will be possible with generalized where clauses.

The renamings are consistent with the [new `-Prelude`
suffix](https://github.com/rust-lang/rfcs/pull/344). There are probably
a few more candidates for being renamed this way, but that is left for
API stabilization of the relevant modules.

Because this renames traits, it is a:

[breaking-change]

However, I do not expect any code that currently uses the standard
library to actually break.

Closes #17917
2014-11-06 08:03:18 -08:00
Michael Woerister
36088ab21f debuginfo: Add a timeout for LLDB tests.
Fixes #18649.
2014-11-05 18:35:24 +01:00
thiagopnts
23913ec713 rename deprecated non_uppercase_statics to non_upper_case_globals 2014-11-05 12:04:26 -02:00
Michael Woerister
37a823b223 debuginfo: Add timeout before running executable in LLDB tests.
This should help with a potential race condition.
2014-11-05 13:32:09 +01:00
Patrick Walton
e8d6031c71 libsyntax: Forbid escapes in the inclusive range \x80-\xff in
Unicode characters and strings.

Use `\u0080`-`\u00ff` instead. ASCII/byte literals are unaffected.

This PR introduces a new function, `escape_default`, into the ASCII
module. This was necessary for the pretty printer to continue to
function.

RFC #326.

Closes #18062.

[breaking-change]
2014-11-04 14:58:11 -08:00
Damien Radtke
75e4d95838 Added check for absolute file path, removed hard tab, and added documentation for new option. 2014-11-04 14:08:57 -06:00
Corey Richardson
6b130e3dd9 Implement flexible target specification
Removes all target-specific knowledge from rustc. Some targets have changed
during this, but none of these should be very visible outside of
cross-compilation. The changes make our targets more consistent.

iX86-unknown-linux-gnu is now only available as i686-unknown-linux-gnu. We
used to accept any value of X greater than 1. i686 was released in 1995, and
should encompass the bare minimum of what Rust supports on x86 CPUs.

The only two windows targets are now i686-pc-windows-gnu and
x86_64-pc-windows-gnu.

The iOS target has been renamed from arm-apple-ios to arm-apple-darwin.

A complete list of the targets we accept now:

arm-apple-darwin
arm-linux-androideabi
arm-unknown-linux-gnueabi
arm-unknown-linux-gnueabihf

i686-apple-darwin
i686-pc-windows-gnu
i686-unknown-freebsd
i686-unknown-linux-gnu

mips-unknown-linux-gnu
mipsel-unknown-linux-gnu

x86_64-apple-darwin
x86_64-unknown-freebsd
x86_64-unknown-linux-gnu
x86_64-pc-windows-gnu

Closes #16093

[breaking-change]
2014-11-04 05:07:47 -05:00
Alex Crichton
b8e2eb7294 rollup merge of #18247 : kballard/vim_rust_run_cwd_space 2014-11-03 15:29:03 -08:00
Joseph Crail
835b92efb8 Replace deprecated missing_doc attribute. 2014-11-01 21:12:13 -04:00
bors
3fa2b56537 auto merge of #17851 : brson/rust/rustup, r=alexcrichton
Just to have it somewhere to point to. Updating it will not
automatically update the one on static.rust-lang.org.
2014-10-28 17:47:01 +00:00
Brian Anderson
9106546aa7 Long lines 2014-10-28 10:24:03 -07:00
Brian Anderson
e59355b64c Untabify rustup.sh 2014-10-27 13:55:35 -07:00
Joseph Crail
30403204d6 Fix spelling mistakes in comments. 2014-10-25 23:11:17 -04:00
Damien Radtke
0207e25d70 Updates based on kballard's feedback. 2014-10-24 18:14:45 -05:00
Kevin Ballard
c5829746f9 vim: Fix :RustRun when cwd has a space in it 2014-10-22 22:22:44 -07:00
Michael Woerister
423dca7fc6 debuginfo: Print more output in lldb_batchmode.py for better error logs. 2014-10-22 11:08:21 +02:00
bors
181538a135 auto merge of #18023 : chris-morgan/rust/vim-misc-2014-10-14, r=kballard
- Stop highlighting foo in `use foo;` specially.
- Highlight `extern crate "foo" as bar;` properly.
- Highlight 1..2 according to the current grammar.
2014-10-14 17:22:25 +00:00
Chris Morgan
a118bd77ad Highlight 1..2 according to the current grammar. 2014-10-14 11:49:48 +11:00
Chris Morgan
81da141b7d Highlight extern crate "foo" as bar; properly. 2014-10-14 11:49:12 +11:00
Chris Morgan
add8a85905 Vim: Stop highlighting foo in use foo; specially
This wasn’t really consistent with other things; the last section of the
import was not highlighted in any other case.

Also `use {foo, bar};` was having the foo and bar not highlighted, where
they would have been as separate statements.
2014-10-14 11:44:34 +11:00
Simon Sapin
61a8a28f9f Include the Unicode version used to generate src/libunicode/tables.rs. 2014-10-13 14:07:12 +01:00
bors
f9fc49c06e auto merge of #17853 : alexcrichton/rust/issue-17718, r=pcwalton
This change is an implementation of [RFC 69][rfc] which adds a third kind of
global to the language, `const`. This global is most similar to what the old
`static` was, and if you're unsure about what to use then you should use a
`const`.

The semantics of these three kinds of globals are:

* A `const` does not represent a memory location, but only a value. Constants
  are translated as rvalues, which means that their values are directly inlined
  at usage location (similar to a #define in C/C++). Constant values are, well,
  constant, and can not be modified. Any "modification" is actually a
  modification to a local value on the stack rather than the actual constant
  itself.

  Almost all values are allowed inside constants, whether they have interior
  mutability or not. There are a few minor restrictions listed in the RFC, but
  they should in general not come up too often.

* A `static` now always represents a memory location (unconditionally). Any
  references to the same `static` are actually a reference to the same memory
  location. Only values whose types ascribe to `Sync` are allowed in a `static`.
  This restriction is in place because many threads may access a `static`
  concurrently. Lifting this restriction (and allowing unsafe access) is a
  future extension not implemented at this time.

* A `static mut` continues to always represent a memory location. All references
  to a `static mut` continue to be `unsafe`.

This is a large breaking change, and many programs will need to be updated
accordingly. A summary of the breaking changes is:

* Statics may no longer be used in patterns. Statics now always represent a
  memory location, which can sometimes be modified. To fix code, repurpose the
  matched-on-`static` to a `const`.

      static FOO: uint = 4;
      match n {
          FOO => { /* ... */ }
          _ => { /* ... */ }
      }

  change this code to:

      const FOO: uint = 4;
      match n {
          FOO => { /* ... */ }
          _ => { /* ... */ }
      }

* Statics may no longer refer to other statics by value. Due to statics being
  able to change at runtime, allowing them to reference one another could
  possibly lead to confusing semantics. If you are in this situation, use a
  constant initializer instead. Note, however, that statics may reference other
  statics by address, however.

* Statics may no longer be used in constant expressions, such as array lengths.
  This is due to the same restrictions as listed above. Use a `const` instead.

[breaking-change]
Closes #17718 

[rfc]: https://github.com/rust-lang/rfcs/pull/246
2014-10-10 00:07:08 +00:00
Brian Anderson
afc1b20d8e Bump version to 0.13.0 2014-10-09 10:41:23 -07:00
Alex Crichton
34d66de52a unicode: Make statics legal
The tables in libunicode are far too large to want to be inlined into any other
program, so these tables are all going to remain `static`. For them to be legal,
they cannot reference one another by value, but instead use references now.

This commit also modifies the src/etc/unicode.py script to generate the right
tables.
2014-10-09 09:44:51 -07:00
bors
d569dfe37e auto merge of #17871 : michaelwoerister/rust/lldb-versioning, r=alexcrichton
Apart from making the build system determine the LLDB version, this PR also fixes an issue with enums in LLDB pretty printers. In order for GDB's pretty printers to know for sure if a field of some value is an enum discriminant, I had rustc mark discriminant fields with the `artificial` DWARF tag. This worked out nicely for GDB but it turns out that one can't access artificial fields from LLDB. So I changed the debuginfo representation so that enum discriminants are marked by the special field name `RUST$ENUM$DISR` instead, which works in both cases.

The PR does not activate the LLDB test suite yet.
2014-10-09 03:07:27 +00:00
Michael Woerister
98a0f9166c debuginfo: Don't mark struct fields as artificial.
LLDB doesn't allow for reading 'artifical' fields (fields that are generated by the compiler). So do not mark, slice fields, enum discriminants, and GcBox value fields as artificial.
2014-10-08 11:52:06 +02:00
John Gallagher
4d190b1235 Add abstract, final, and override to rust.vim keyword list 2014-10-07 22:18:36 -04:00
Damien Radtke
83f6a29f12 Use rustc's errorformat and add option to specify permanent parameters. 2014-10-07 13:57:10 -05:00
Brian Anderson
03ad7e7119 Add rustup.sh to the repo
Just to have it somewhere to point to. Updating it will not
automatically update the one on static.rust-lang.org.
2014-10-07 10:56:47 -07:00
Daniel Micay
497b6354e4 rm obsolete valgrind suppressions 2014-10-02 05:01:10 -04:00
bors
ff2616e847 auto merge of #17630 : sfackler/rust/cfg-warnings, r=brson
Closes #17490
2014-10-01 09:22:15 +00:00
bors
88d1a22f76 auto merge of #17479 : gamazeps/rust/issue17478, r=alexcrichton
closes #17478
2014-09-30 20:27:16 +00:00
Steven Fackler
c4e0755245 Fix librustc_llvm 2014-09-30 12:52:47 -07:00
bors
38015eeb70 auto merge of #17640 : brson/rust/wininst, r=alexcrichton
This makes the windows `make dist` target start producing binary tarballs, and tweaks install.sh so they work, in preparation for working on a combined Rust+Cargo installer.
2014-09-30 12:27:27 +00:00
Brian Anderson
887da8d33a install: Fix the install.sh script to work with spaces
Makes it work on windows
2014-09-29 15:29:57 -07:00
gamazeps
e543878f0f Replaced some TODO by FIXME
closes #17478
2014-09-29 18:14:28 +02:00
Alex Crichton
757fa6ffba rollup merge of #17573 : iliekturtles/17570-windows-installer-path 2014-09-29 08:12:48 -07:00
Mike Boutin
35f5a674d4 dist: Make Windows installer modify system %PATH%
Modify the system %PATH% environment variable instead of the current
user's %PATH% environment. The current user will be an admin user
that may not be the same user who originally started the installer.
Closes #17570.
2014-09-26 18:04:48 -04:00
Guillaume Pinot
01e4354ec4 Relicense shootout-fasta-redux.rs to the shootout license.
Everyone agreed.

Fix #17078
2014-09-25 00:31:47 +02:00
Damien Radtke
1e2e2ac555 Some improvements to the Cargo compiler file. 2014-09-24 10:25:36 -05:00
Damien Radtke
59e750f198 Add cargo.vim compiler file. 2014-09-22 17:24:26 -05:00
bors
eeda1b87ff auto merge of #17212 : mahkoh/rust/vim, r=kballard
There are currently two huge problems with the indent file:

1. Long list-like things cannot be indented. See #14446 for one example. Another one is long enums with over 100 lines, including comments. The indentation process stops after 100 lines and the rest is in column 0.
2. In certain files, opening a new line at mod level is extremely slow. See [this](https://github.com/mahkoh/posix.rs/blob/master/src/unistd/mod.rs) for an example. Opening a line at the very end and holing \<cr> down will freeze vim temporarily.

The reason for 1. is that cindent doesn't properly indent things that end with a `,` and the indent file tries to work around this by using the indentation of the previous line. It does this by recursively calling a function on the previous lines until it reaches the start of the block. Naturally O(n^2) function calls don't scale very well. Instead of recalculating the indentation of the previous line, we will now simply use the given indentation of the previous line and let the user deal with the rest. This is sufficient unless the user manually mis-indents a line.

The reason for 2. seems to be function calls of the form
```
searchpair('{\|(', '', '}\|)', 'nbW', 's:is_string_comment(line("."), col("."))')
```
I've no idea what this even does or why it is there since I cannot reproduce the mistake cindent is supposed to make without this fix. Therefore I've simply removed that part.
2014-09-22 07:15:30 +00:00
bors
8d3728fae0 auto merge of #17412 : vadimcn/rust/gccpref, r=alexcrichton
Fixes #17251
2014-09-21 16:30:28 +00:00
Vadim Chugunov
04c41eb372 Move bundled gcc and its libs out into $rust/rustlib/<triple>/gcc/(bin|lib). This way the libs won't be on the -L library search path, and won't confuse external gcc, if one is used. The bundled gcc itself will still be able to find them, because it searches for libs relative to own install location. 2014-09-20 11:42:26 -07:00
Alex Crichton
129aff7d97 rollup merge of #17306 : scialex/fix-zsh 2014-09-19 10:00:19 -07:00
Julian Orth
39116d0191 fix for vim < 7.4.355 2014-09-18 22:16:47 +02:00