about summary refs log tree commit diff
path: root/src/etc
AgeCommit message (Collapse)AuthorLines
2014-06-17emacs: Add shebang to test scriptTom Jakubowski-0/+1
2014-06-17emacs: Don't overwrite font lock for attributesTom Jakubowski-27/+87
This addresses the font lock regression introduced by the earlier pull request #14818 - attributes are no longer be highligted inside of comments and strings. Also add some font lock test infrastructure and some tests for attribute font locking.
2014-06-17auto merge of #14818 : tomjakubowski/rust/emacs-attributes-key-value, r=pnkfelixbors-3/+3
This addresses two problems noted in #14347: the highlight of `#foo]` as an attribute, and the non-highlight of `#[foo = "bar"]`.
2014-06-17auto merge of #14955 : alexcrichton/rust/rollup, r=alexcrichtonbors-2/+59
2014-06-16Update repo locationBrian Anderson-2/+2
2014-06-16Add a Syntastic plugin for Rust.Andrew Gallant-0/+57
2014-06-17auto merge of #14855 : TeXitoi/rust/relicense-shootout-binarytrees, r=brsonbors-0/+1
Everyone agreed. Related to #14248, close #14720 @brson OK?
2014-06-16rustc: Start accepting `*const T`Alex Crichton-2/+1
This does not yet change the compiler and libraries from `*T` to `*const T` as it will require a snapshot to do so. cc #7362
2014-06-16auto merge of #14852 : TeXitoi/rust/relicense-shootout-pidigits, r=brsonbors-0/+1
Everyone agreed. Related to #14248, close #14718 @brson OK?
2014-06-12Relicense shootout-binarytrees.rsGuillaume Pinot-0/+1
Everyone agreed. Related to #14248, close #14720
2014-06-12Relicense shootout-pidigits.rsGuillaume Pinot-0/+1
Everyone agreed. Related to #14248, close #14718
2014-06-11sync: Move underneath libstdAlex Crichton-3/+3
This commit is the final step in the libstd facade, #13851. The purpose of this commit is to move libsync underneath the standard library, behind the facade. This will allow core primitives like channels, queues, and atomics to all live in the same location. There were a few notable changes and a few breaking changes as part of this movement: * The `Vec` and `String` types are reexported at the top level of libcollections * The `unreachable!()` macro was copied to libcore * The `std::rt::thread` module was moved to librustrt, but it is still reexported at the same location. * The `std::comm` module was moved to libsync * The `sync::comm` module was moved under `sync::comm`, and renamed to `duplex`. It is now a private module with types/functions being reexported under `sync::comm`. This is a breaking change for any existing users of duplex streams. * All concurrent queues/deques were moved directly under libsync. They are also all marked with #![experimental] for now if they are public. * The `task_pool` and `future` modules no longer live in libsync, but rather live under `std::sync`. They will forever live at this location, but they may move to libsync if the `std::task` module moves as well. [breaking-change]
2014-06-11emacs: highlight `#[foo = "bar"]` attributesTom Jakubowski-2/+2
Setting `OVERRIDE` to `t` overrides the conflicting highlight Emacs places on string literals. Fix #14347
2014-06-11emacs: do not highlight `#foo]` as an attributeTom Jakubowski-1/+1
part of #14347
2014-06-08relicense shootout-fannkuch-redux.rsGuillaume Pinot-0/+1
Part of #14248 Main contributors are @pcwalton, @alexcrichton and me. Only @dguenther appear in git blame as a minor contribution, but it is only adding the rust license, so removed by this relicensing.
2014-06-07relicense shootout-regex-dna.rsGuillaume Pinot-0/+1
Part of #14248 The authors are @pcwalton and @BurntSushi, and we have their agreement.
2014-06-05relicense shootout-meteor.rsGuillaume Pinot-0/+1
part of #14248, fix #14420 Removed @richo's contribution (outdated comment) Quoting @brson: let's move forward with this one. The only statement I'm missing is @richo's and it sounds like his was a minor patch.
2014-05-30std: Rename {Eq,Ord} to Partial{Eq,Ord}Alex Crichton-3/+5
This is part of the ongoing renaming of the equality traits. See #12517 for more details. All code using Eq/Ord will temporarily need to move to Partial{Eq,Ord} or the Total{Eq,Ord} traits. The Total traits will soon be renamed to {Eq,Ord}. cc #12517 [breaking-change]
2014-05-24core: rename strbuf::StrBuf to string::StringRicho Healey-3/+3
[breaking-change]
2014-05-20vim: Handle box expressions speciallyKevin Ballard-7/+20
Attempt to highlight the placement expression in a `box (expr) foo` expression. Also treat GC as a keyword within the placement expression. This doesn't work correctly for arbitrary expressions. Notably, this makes no attempt at balancing delimiters. I believe handling that will require rewriting the syntax rules to add a region for every pair of delimiters. That may be a desirable thing to do in the end, because we can then rewrite our indent rules based on the syntax and get rid of cindent(), but for the time being, we'll just live with the limitation.
2014-05-20Update rust.vim for the latest prelude/keywordsKevin Ballard-18/+23
2014-05-18Refactoring: Introduce distinct host and target rpath var setters.Felix S. Klock II-7/+8
Two line summary: Distinguish HOST_RPATH and TARGET_RPATH; added RPATH_LINK_SEARCH; skip tests broken in stage1; general cleanup. `HOST_RPATH_VAR$(1)_T_$(2)_H_$(3)` and `TARGET_RPATH_VAR$(1)_T_$(2)_H_$(3)` both match the format of the old `RPATH_VAR$(1)_T_$(2)_H_$(3)` (which is still being set the same way that it was before, to one of either HOST/TARGET depending on what stage we are building). Namely, the format is <XXX>_RPATH_VAR = "<LD_LIB_PATH_ENVVAR>=<COLON_SEP_PATH_ENTRIES>" What this commit does: * Pass both of the (newly introduced) HOST and TARGET rpath setup vars to `maketest.py` * Update `maketest.py` to no longer update the LD_LIBRARY_PATH itself Instead, it passes along the HOST and TARGET rpath setup vars in environment variables `HOST_RPATH_ENV` and `TARGET_RPATH_ENV` * Also, pass the current stage number to maketest.py; it in turn passes it (via an env var) to run-make tests. This allows the run-make tests to selectively change behavior (e.g. turn themselves off) to deal with incompatibilities with e.g. stage1. * Cleanup: Distinguish in tools.mk between the command to run (`RUN`) and the file to generate to drive that command (`RUN_BINFILE`). The main thing this enables is that `RUN` can now setup the `TARGET_RPATH_ENV` without having to dirty up the runner code in each of the `run-make` Makefiles. * Cleanup: Factored out commands to delete dylib/rlib into REMOVE_DYLIBS/REMOVE_RLIBS. There were places where we were only calling `rm $(call DYLIB,foo)` even though we really needed to get rid of the whole glob (at least based on alex's findings on #13753 that removing the symlink does not suffice). Therefore rather than peppering the code with the awkward `rm $(TMPDIR)/$(call DYLIB_GLOB,foo)`, I instead introduced a common `REMOVE_DYLIBS` user function that expands into that when called. After I adding an analogous `REMOVE_RLIBS`, I changed all of the existing calls that rm dylibs or rlibs to use these routines instead. Note that the latter is not a true refactoring since I may have changed cases where it was our intent to only remove the sym-link. (But if that is the case, then we need to more deeply investigate alex's findings on #13753 where the system was still dynamically loading up the non-symlinked libraries that it finds on the load path.) * Added RPATH_LINK_SEARCH command and use it on Linux. On some platforms, namely Linux, when you have libboot.so that has its internal rpath set (to e.g. $(ORIGIN)/path/to/HOSTDIR), the linker still complains when you do the link step and it does not know where to find libraries that libboot.so depends upon that live in HOSTDIR (think e.g. librustuv.so). As far as I can tell, the GNU linker will consult the LD_LIBRARY_PATH as part of the linking process to find such libraries. But if you want to be more careful and not override LD_LIBRARY_PATH for the `gcc` invocation, then you need some other way to tell the linker where it can find the libraries that libboot.so needs. The solution to this on Linux is the `-Wl,-rpath-link` command line option. However, this command line option does not exist on Mac OS X, (which appears to be figuring out how to resolve the libboot.dylib dependency by some other means, perhaps by consulting the rpath setting within libboot.dylib). So, in order to abstract over this distinction, I added the RPATH_LINK_SEARCH macro to the run-make infrastructure and added calls to it where necessary to get Linux working. On architectures other than Linux, the macro expands to nothing. * Disable miscellaneous tests atop stage1. * An especially interesting instance of the previous bullet point: Excuse regex from doing rustdoc tests atop stage1. This was a (nearly-) final step to get `make check-stage1` working again. The use of a special-case check for regex here is ugly but is analogous other similar checks for regex such as the one that landed in PR #13844. The way this is written, the user will get a reminder that doc-crate-regex is being skipped whenever their rules attempt to do the crate documentation tests. This is deliberate: I want people running `make check-stage1` to be reminded about which cases are being skipped. (But if such echo noise is considered offensive, it can obviously be removed.) * Got windows working with the above changes. This portion of the commit is a cleanup revision of the (previously mentioned on try builds) re-architecting of how the LD_LIBRARY_PATH setup and extension is handled in order to accommodate Windows' (1.) use of `$PATH` for that purpose and (2.) use of spaces in `$PATH` entries (problematic for make and for interoperation with tools at the shell). * In addition, since the code has been rearchitected to pass the HOST_RPATH_DIR/TARGET_RPATH_DIR rather than a whole sh environment-variable setting command, there is no need to for the convert_path_spec calls in maketest.py, which in fact were put in place to placate Windows but were now causing the Windows builds to fail. Instead we just convert the paths to absolute paths just like all of the other path arguments. Also, note for makefile hackers: apparently you cannot quote operands to `ifeq` in Makefile (or at least, you need to be careful about adding them, e.g. to only one side).
2014-05-14Get rid of the android-cross-path flag to rustc.Luqman Aden-1/+0
There's no need to include this specific flag just for android. We can already deal with what it tries to solve by using -C linker=/path/to/cc and -C ar=/path/to/ar. The Makefiles for rustc already set this up when we're crosscompiling. I did add the flag to compiletest though so it can find gdb. Though, I'm pretty sure we don't run debuginfo tests on android anyways right now. [breaking-change]
2014-05-13std: Rename str::Normalizations to str::DecompositionsFlorian Zeitz-6/+6
The Normalizations iterator has been renamed to Decompositions. It does not currently include all forms of Unicode normalization, but only encompasses decompositions. If implemented recomposition would likely be a separate iterator which works on the result of this one. [breaking-change]
2014-05-13core: Move Hangul decomposition into unicode.rsFlorian Zeitz-19/+58
2014-05-13std, core: Generate unicode.rs using unicode.pyFlorian Zeitz-55/+76
2014-05-12emacs: highlight `macro_name!` in macro invocations using [] delimitersHuon Wilson-1/+1
2014-05-12add shebang to scripts that have execute bit setDavid Creswick-3/+13
2014-05-12Add the patch number to version strings. Closes #13289Brian Anderson-1/+1
2014-05-12auto merge of #13922 : Rufflewind/rust/patch-1, r=pnkfelixbors-5/+5
Since rust-top-item-beg-re hasn't been defined yet, using defvar instead of setq is more appropriate here (and also silences compilation warnings).
2014-05-08vim: Fix an indentation issue with cindentKevin Ballard-11/+16
cindent handles the following case incorrectly: impl X { b: int, // c: int, } if you try and insert a new line after the `c` declaration. To fix this, fix the get_line_trimmed() function to work properly, and then extend GetRustIndent to keep searching backwards until it finds a non-blank line after trimming. This lets it handle the trailing comma case properly, as if the comment were never there. Fixes #14041.
2014-05-08auto merge of #13986 : alexcrichton/rust/box-keyword, r=thestingerbors-1/+3
This keyword is about to be used much more often than it was a few weeks ago, it's time to tell editors about the new keyword.
2014-05-07debuginfo: Split debuginfo autotests into debuginfo-gdb and debuginfo-lldbMichael Woerister-0/+184
2014-05-06etc: Add box as a keyword to editor configsAlex Crichton-1/+3
This keyword is about to be used much more often than it was a few weeks ago, it's time to tell editors about the new keyword.
2014-05-05auto merge of #13925 : kballard/rust/vim_indent_bracket_fix, r=thestingerbors-3/+19
If an unbalanced [ exists in a string or comment, this should not be considered when calculating the indent at the top level. Similarly, when testing for ({/}) to see if we're at the top level to begin with, strings and comments should be skipped.
2014-05-04vim: Fix indentation at global scope after non-semantic ([{/)]}Kevin Ballard-3/+19
If an unbalanced [ exists in a string or comment, this should not be considered when calculating the indent at the top level. Similarly, when testing for ({/}) to see if we're at the top level to begin with, strings and comments should be skipped.
2014-05-03Recommend autoload instead of requirePhil Ruffwind-3/+4
Lazy loading with autoload will result in faster startup time for Emacs users and is generally the recommended approach for major modes.
2014-05-03Use defvar for rust-top-item-beg-re insteadPhil Ruffwind-5/+5
Since rust-top-item-beg-re hasn't been defined yet, using defvar instead of setq is more appropriate here (and also silences compilation warnings).
2014-05-02emacs: Add 'box' to keywordsBrian Anderson-1/+1
2014-05-01Fix a/an typosJorge Aparicio-1/+1
2014-04-28test: Fix run-make on windowsklutzy-10/+37
2014-04-25Add a regex crate to the Rust distribution.Andrew Gallant-0/+292
Also adds a regex_macros crate, which provides natively compiled regular expressions with a syntax extension. Closes #3591. RFC: 0007-regexps
2014-04-24Fix Vim indent regressions from #13600.Chris Morgan-1/+1
The change in #13600 was incorrect, containing a bad regular expression; inside an indent function, errors are silently ignored (and the ``~=`` operation will return 0), so it just always failed, causing the cases that were supposed to be caught to not be caught and making things like the ``match`` example shown above or struct field definitions regress. I have fixed the regular expression to what it should have been. This is still imperfect, of course, not handling cases like where the first argument to a function is a function call (``foo(bar(),``), but it'll do for now.
2014-04-22There are no 64-bit Windows snapshots yet, so we'll use 32-bit ones instead.Vadim Chugunov-1/+3
2014-04-19auto merge of #13609 : richo/rust/str-type-vim, r=alexcrichtonbors-1/+1
It seems really weird to me when StrSlice and str highlight sanely, but StrBuf doesn't. I think I added it to the right place.
2014-04-18auto merge of #13513 : alexcrichton/rust/up-llvm, r=brsonbors-25/+46
This is a bit of an interesting upgrade to LLVM. Upstream LLVM has started using C++11 features, so they require a C++11 compiler to build. I've updated all the bots to have a C++11 compiler, and they appear to be building LLVM successfully: * Linux bots - I added gcc/g++ 4.7 (good enough) * Android bots - same as the linux ones * Mac bots - I installed the most recent command line tools for Lion which gives us clang 3.2, but LLVM wouldn't build unless it was explicitly asked to link to `libc++` instead of `libstdc++`. This involved tweaking `mklldeps.py` and the `configure` script to get things to work out * Windows bots - mingw-w64 has gcc 4.8.1 which is sufficient for building LLVM (hurray!) * BSD bots - I updated FreeBSD to 10.0 which brought with it a relevant version of clang. The largest fallout I've seen so far is that the test suite doesn't work at all on FreeBSD 10. We've already stopped gating on FreeBSD due to #13427 (we used to be on freebsd 9), so I don't think this puts us in too bad of a situation. I will continue to attempt to fix FreeBSD and the breakage on there. The LLVM update brings with it all of the recently upstreamed LLVM patches. We only have one local patch now which is just an optimization, and isn't required to use upstream LLVM. I want to maintain compatibility with LLVM 3.3 and 3.4 while we can, and this upgrade is keeping us up to date with the 3.5 release. Once 3.5 is release we will in theory no longer require a bundled LLVM.
2014-04-18vim: Add StrBuf as type to hilightingRicho Healey-1/+1
2014-04-18Add another case where cindent is correctBrandon Waskiewicz-0/+11
When calling a function, or anything with nested parens, default to cindent's indent. The least error-prone way I could think of identifying this is to look for a line that ends with a ',', as well as a non-zero number of any character except parens before the comma, and then an open paren. This will overlap with the previous rule accounting for function definitions, but that should be fine because it is also using cindent.
2014-04-17llvm: Add an option to statically link libstdc++Alex Crichton-3/+10
The goal of the snapshot bots is to produce binaries which can run in as many locations as possible. Currently we build on Centos 6 for this reason, but with LLVM's update to C++11, this reduces the number of platforms that we could possibly run on. This adds a --enable-llvm-static-stdcpp option to the ./configure script for Rust which will enable building a librustc with a static dependence on libstdc++. This normally isn't necessary, but this option can be used on the snapshot builders in order to continue to make binaries which should be able to run in as many locations as possible.
2014-04-17etc: The --system-libs flag is LLVM 3.5+Alex Crichton-26/+25
Older version of LLVM did not have this flag, so we need to fall back to our previous library detection when using older versions of LLVM.