about summary refs log tree commit diff
path: root/src/libsyntax/parse/token.rs
AgeCommit message (Collapse)AuthorLines
2013-08-16Reserve 'yield' keywordKevin Ballard-4/+7
Rename task::yield() to task::deschedule(). Fixes #8494.
2013-08-11syntax: Shrink enum Token and enum nonterminalblake2-ppc-4/+4
`enum Token` was 192 bytes (64-bit), as pointed out by pnkfelix; the only bloating variant being `INTERPOLATED(nonterminal)`. Updating `enum nonterminal` to use ~ where variants included big types, shrunk size_of(Token) to 32 bytes (64-bit). I am unsure if the `nt_ident` variant should have an indirection, with ast::ident being only 16 bytes (64-bit), but without this, enum Token would be 40 bytes. A dumb benchmark says that compilation time is unchanged, while peak memory usage for compiling std.rs is down 3% Before:: $ time ./x86_64-unknown-linux-gnu/stage1/bin/rustc --cfg stage1 src/libstd/std.rs 19.00user 0.39system 0:19.41elapsed 99%CPU (0avgtext+0avgdata 627820maxresident)k 0inputs+28896outputs (0major+228665minor)pagefaults 0swaps $ time ./x86_64-unknown-linux-gnu/stage1/bin/rustc -O --cfg stage1 src/libstd/std.rs 31.64user 0.34system 0:32.02elapsed 99%CPU (0avgtext+0avgdata 629876maxresident)k 0inputs+22432outputs (0major+229411minor)pagefaults 0swaps After:: $ time ./x86_64-unknown-linux-gnu/stage1/bin/rustc --cfg stage1 src/libstd/std.rs 19.07user 0.45system 0:19.55elapsed 99%CPU (0avgtext+0avgdata 609384maxresident)k 0inputs+28896outputs (0major+221997minor)pagefaults 0swaps $ time ./x86_64-unknown-linux-gnu/stage1/bin/rustc -O --cfg stage1 src/libstd/std.rs 31.90user 0.34system 0:32.28elapsed 99%CPU (0avgtext+0avgdata 612080maxresident)k 0inputs+22432outputs (0major+223726minor)pagefaults 0swaps
2013-08-08Allow attributes to appear as macro argumentsNiko Matsakis-0/+3
Fixes #8393
2013-08-07core: option.map_consume -> option.map_moveErick Tryzelaar-1/+1
2013-08-03remove obsolete `foreach` keywordDaniel Micay-10/+7
this has been replaced by `for`
2013-08-01migrate many `for` loops to `foreach`Daniel Micay-1/+0
2013-08-01convert `pure` to a reserved keywordDaniel Micay-31/+31
2013-08-01make `in` and `foreach` get treated as keywordsDaniel Micay-13/+13
2013-07-31remove `copy` as a keywordDaniel Micay-70/+68
2013-07-30syntax: add temporary 'foreach' keyword.Graydon Hoare-0/+3
2013-07-30syntax: add 'in' keywordGraydon Hoare-0/+3
2013-07-24Change 'print(fmt!(...))' to printf!/printfln! in src/lib*Birunthan Mohanathas-2/+2
2013-07-22Ast spanned<T> refactoring, renaming: crate, local, blk, crate_num, crate_cfg.Michael Woerister-1/+1
`crate => Crate` `local => Local` `blk => Block` `crate_num => CrateNum` `crate_cfg => CrateConfig` Also, Crate and Local are not wrapped in spanned<T> anymore.
2013-07-22new snapshotDaniel Micay-3/+0
2013-07-17librustc: Remove `copy` expressions from the language.Patrick Walton-2/+0
2013-07-17librustc: Remove all uses of "copy".Patrick Walton-5/+5
2013-07-14Make TLS keys actually take up spaceAlex Crichton-1/+2
If the TLS key is 0-sized, then the linux linker is apparently smart enough to put everything at the same pointer. OSX on the other hand, will reserve some space for all of them. To get around this, the TLS key now actuall consumes space to ensure that it gets a unique pointer
2013-07-14Purge the last remnants of the old TLS apiAlex Crichton-13/+10
Closes #3273
2013-07-11Remove all external requirements of `@` from TLSAlex Crichton-1/+1
Closes #6004
2013-07-09Rename local_data methods/types for less keystrokesAlex Crichton-2/+2
2013-07-07De-share ast::TyJames Miller-1/+1
2013-07-07De-managed ast::PathJames Miller-1/+1
2013-06-30Change char::escape_{default,unicode} to take callbacks instead of allocatingAlex Crichton-2/+6
strings
2013-06-29Use more deriving(IterBytes) in libsyntax.Ben Blum-3/+3
2013-06-29Change taskgroup key type to fn:Copy in prep for noncopyable stack closures.Ben Blum-1/+1
2013-06-28librustc: Fix merge fallout and test cases.Patrick Walton-1/+1
2013-06-28librustc: Remove the broken overloaded assign-ops from the language.Patrick Walton-2/+2
They evaluated the receiver twice. They should be added back with `AddAssign`, `SubAssign`, etc., traits.
2013-06-28librustc: Rename Const to FreezePatrick Walton-1/+1
2013-06-25great renaming propagation: syntaxCorey Richardson-8/+6
2013-06-23syntax: Remove unused tokensPhilipp Brüschweiler-105/+99
TyDesc, TyVisitor and intrinsic are not used anymore.
2013-06-21libsyntax: cleanup warningsJames Miller-3/+1
2013-06-21Remove all #[cfg(stage0)]-protected codeJames Miller-166/+0
New snapshot means this can all go. Also removes places that have comments that say they are workarounds for stage0 errors.
2013-06-20libsyntax: Remove `drop` as a keyword.Luqman Aden-35/+202
2013-06-13Use @str instead of @~str in libsyntax and librustc. Fixes #5048.Huon Wilson-27/+11
This almost removes the StringRef wrapper, since all strings are Equiv-alent now. Removes a lot of `/* bad */ copy *`'s, and converts several things to be &'static str (the lint table and the intrinsics table). There are many instances of .to_managed(), unfortunately.
2013-06-12std: convert str::escape_* to methods.Huon Wilson-1/+1
2013-06-09remove unused import warningsHuon Wilson-1/+0
2013-06-05added fresh-name fnJohn Clements-0/+28
2013-06-05token_to_ident takes argument by referenceJohn Clements-5/+5
2013-06-05interner just uses uints, not idents with syntax contextJohn Clements-25/+47
2013-06-05rename repr to nameJohn Clements-81/+81
2013-06-05change to newer macro escape mechanism, using uints in more placesJohn Clements-2/+4
2013-06-01Remove all uses of `pub impl`. rs=stylePatrick Walton-9/+10
2013-05-30Remove unnecessary 'use' formsDaniel Farina-3/+1
Fix a laundry list of warnings involving unused imports that glutted up compilation output. There are more, but there seems to be some false positives (where 'remedy' appears to break the build), but this particular set of fixes seems safe.
2013-05-29librustc: Stop reexporting the standard modules from prelude.Patrick Walton-0/+6
2013-05-29libsyntax: Make `drop` no longer a keywordPatrick Walton-2/+0
2013-05-28Remove unnecessary allocations flagged by lintSeo Sanghyeon-5/+5
2013-05-25Use an enum for keywords and intern them to improve parser performanceBjörn Steinbrink-45/+156
Currently, keywords are stored in hashsets that are recreated for every Parser instance, which is quite expensive since macro expansion creates lots of them. Additionally, the parser functions that look for a keyword currently accept a string and have a runtime check to validate that they actually received a keyword. By creating an enum for the keywords and inserting them into the ident interner, we can avoid the creation of the hashsets and get static checks for the keywords. For libstd, this cuts the parse+expansion part from ~2.6s to ~1.6s.
2013-05-22libextra: Rename the actual metadata names of libcore to libstd and libstd ↵Patrick Walton-0/+2
to libextra
2013-05-20Remove all unnecessary allocations (as flagged by lint)Alex Crichton-2/+2
2013-05-20getting rid of interner_key! macroJohn Clements-10/+19