rust/src
Huon Wilson cc760a647a syntax: modernise attribute handling in syntax::attr.
This does a number of things, but especially dramatically reduce the
number of allocations performed for operations involving attributes/
meta items:

- Converts ast::meta_item & ast::attribute and other associated enums
  to CamelCase.
- Converts several standalone functions in syntax::attr into methods,
  defined on two traits AttrMetaMethods & AttributeMethods. The former
  is common to both MetaItem and Attribute since the latter is a thin
  wrapper around the former.
- Deletes functions that are unnecessary due to iterators.
- Converts other standalone functions to use iterators and the generic
  AttrMetaMethods rather than allocating a lot of new vectors (e.g. the
  old code would have to allocate a new vector to use functions that
  operated on &[meta_item] on &[attribute].)
- Moves the core algorithm of the #[cfg] matching to syntax::attr,
  similar to find_inline_attr and find_linkage_metas.

This doesn't have much of an effect on the speed of #[cfg] stripping,
despite hugely reducing the number of allocations performed; presumably
most of the time is spent in the ast folder rather than doing attribute
checks.

Also fixes the Eq instance of MetaItem_ to correctly ignore spaces, so
that `rustc --cfg 'foo(bar)'` now works.
2013-07-20 01:06:16 +10:00
..
compiletest compiletest: Remove stray copies. 2013-07-17 18:03:48 -07:00
driver Bring compiletest/rustpkg/driver up to date on std vs core 2013-07-04 16:30:48 -07:00
etc auto merge of #7747 : chris-morgan/rust/vim-compiler-rustc, r=huonw 2013-07-18 05:07:39 -07:00
libextra auto merge of #7857 : blake2-ppc/rust/fix-test-warnings, r=alexcrichton 2013-07-18 20:55:38 -07:00
librust librustc: Remove all uses of the Copy bound. 2013-07-17 14:57:53 -07:00
librustc syntax: modernise attribute handling in syntax::attr. 2013-07-20 01:06:16 +10:00
librustdoc syntax: modernise attribute handling in syntax::attr. 2013-07-20 01:06:16 +10:00
librusti auto merge of #7857 : blake2-ppc/rust/fix-test-warnings, r=alexcrichton 2013-07-18 20:55:38 -07:00
librustpkg syntax: modernise attribute handling in syntax::attr. 2013-07-20 01:06:16 +10:00
libstd auto merge of #7857 : blake2-ppc/rust/fix-test-warnings, r=alexcrichton 2013-07-18 20:55:38 -07:00
libsyntax syntax: modernise attribute handling in syntax::attr. 2013-07-20 01:06:16 +10:00
libuv@dfae9c3e95
llvm@2e9f0d21fe
rt auto merge of #7859 : kmcallister/rust/rt-diag-messages, r=pcwalton 2013-07-18 22:40:38 -07:00
rustllvm force LLVM clean 2013-07-03 23:23:29 -04:00
test auto merge of #7863 : catamorphism/rust/issue-5883, r=catamorphism 2013-07-19 00:25:36 -07:00
README.txt
snapshots.txt

This is a preliminary version of the Rust compiler, libraries and tools

Source layout:

librustc/          The self-hosted compiler

libstd/            The standard library (imported and linked by default)
libextra/          The "extras" library (slightly more peripheral code)
libsyntax/         The Rust parser and pretty-printer

rt/                The runtime system
rt/rust_*.cpp      - The majority of the runtime services
rt/isaac           - The PRNG used for pseudo-random choices in the runtime
rt/bigint          - The bigint library used for the 'big' type
rt/uthash          - Small hashtable-and-list library for C, used in runtime
rt/sync            - Concurrency utils
rt/util            - Small utility classes for the runtime.
rt/vg              - Valgrind headers
rt/msvc            - MSVC support
rt/linenoise       - a readline-like line editing library

test/              Testsuite
test/compile-fail  - Tests that should fail to compile
test/run-fail      - Tests that should compile, run and fail
test/run-pass      - Tests that should compile, run and succeed
test/bench         - Benchmarks and miscellanea
test/pretty        - Pretty-printer tests
test/auxiliary     - Dependencies of tests

compiletest/       The test runner

librustpkg/        The package manager and build system

librusti/          The JIT REPL

librustdoc/        The Rust API documentation tool

llvm/              The LLVM submodule

libuv/             The libuv submodule

rustllvm/          LLVM support code

libfuzzer/         A collection of fuzz testers

etc/               Scripts, editor support, misc