about summary refs log tree commit diff
path: root/src/comp
AgeCommit message (Collapse)AuthorLines
2011-12-14first attempt, not happy with itNiko Matsakis-67/+62
2011-12-14define ty and update parser for sendable lambdasNiko Matsakis-7/+97
2011-12-14rustc: Always write split stack prologuesBrian Anderson-6/+4
2011-12-13Copy first batch of material from libstd to libcore.Graydon Hoare-192/+215
2011-12-13Reorganize some code in typeckMarijn Haverbeke-305/+233
This should cut down a lot on the amount of closures being allocated, and removes some duplicated code.
2011-12-12rustc: Work around a segmentation faultHaitao Li-24/+24
On Linux/Mac, I got a segmentation fault: (gdb) bt #0 0x00000000007519af in glue_take584 () #1 0x00000000006d4bec in back::rpath::get_rpath_flags::_3899df2ca513c603 () #2 0x00000000006c7655 in back::link::link_binary::_7afde00a9791031c () #3 0x00000000007d3ff5 in driver::rustc::compile_input::thunk9212 () #4 0x0000000000710f24 in driver::rustc::time::_3e691b2a4ba58aee () #5 0x000000000071a79d in driver::rustc::compile_input::_7b4a41b87c18e034 () #6 0x000000000072f0a9 in driver::rustc::main::_cd8b8c8185af3dee () #7 0x000000000072f1ed in _rust_main () #8 0x00007ffff7e6e146 in task_start_wrapper (a=<optimized out>) at ../src/rt/rust_task.cpp:176 The variable `output` or `out_filename` becomes (null) after the definition of `fn unlib`. Move the function defintion to the beginning seems prevent the crash on Linux.
2011-12-12rustc: Refactor and get built on WindowsHaitao Li-14/+12
2011-12-12rustc: Hash includes direct dependent cratesHaitao Li-3/+36
2011-12-12rustc: Encode crate hash into metadataHaitao Li-3/+21
2011-12-12rustc: build versioned library with hash in its nameHaitao Li-12/+19
Also updated build to install versioned libraries and added a few missing actions for `make clean`.
2011-12-12Using filename when finding libraries for linkingHaitao Li-8/+22
Revert #999 commit 16dad84f7b2f173db012dda2e77b08ccb423391f
2011-12-12Handle external-crate case when printing full unresolved pathsMarijn Haverbeke-5/+13
Closes #1283
2011-12-09Allow type annotations for blocksMarijn Haverbeke-10/+8
I.e. {|foo: int| -> int foo + 2} Issue #1275
2011-12-08rustc: Actually hook the crate_type attribute into sessionBrian Anderson-3/+9
2011-12-08Add crate_type attributes to rustc, std, coreBrian Anderson-1/+1
2011-12-08rustc: Support 'crate_type' attributeBrian Anderson-0/+74
[crate_type = "lib"] builds it as a library. [crate_type = "bin"] builds it as an executable. Executable is the default. --lib and --bin switches override.
2011-12-08rustc: Move linking into compile_inputBrian Anderson-16/+20
2011-12-08rustc: Determine the crate type (lib/bin) in the session, not session optsBrian Anderson-16/+28
This is in preparation for adding a #[crate_type] attribute
2011-12-08Error when parsing the empty record typeMarijn Haverbeke-0/+1
Issue #1200
2011-12-08Allow binding of nested patternsMarijn Haverbeke-79/+120
See src/test/run-pass/nested-patterns.rs for some examples. The syntax is boundvar@subpattern Which will match the subpattern as usual, but also bind boundvar to the whole matched value. Closes #838
2011-12-08Stop passing around some unused information in typeckMarijn Haverbeke-27/+7
2011-12-08Consider variant constructors pure functions for the purpose of purity checkingMarijn Haverbeke-3/+3
Closes #1269
2011-12-07Inject the view_items for core in the right place, add comment documenting ↵Graydon Hoare-5/+10
why the wrong place was wrong.
2011-12-07Remove stmt_crate_directive, it's vestigial and confusing.Graydon Hoare-37/+2
2011-12-07Check for literals that are out of range for their typeMarijn Haverbeke-1/+36
2011-12-07Change literal representation to not truncateMarijn Haverbeke-650/+410
Also shuffles around the organization of numeric literals and types, separating by int/uint/float instead of machine-vs-non-machine types. This simplifies some code. Closes #974 Closes #1252
2011-12-07repair more hash functionsNiko Matsakis-16/+16
2011-12-07Disallow binding by-mut-ref and by-move argumentsMarijn Haverbeke-0/+31
Fix bug in bound by-copy arguments. Closes #1261
2011-12-07Make typestate properly descend pattern guardsMarijn Haverbeke-0/+10
Closes #1265
2011-12-06fix hash function: + binds tighter than <<Niko Matsakis-1/+4
2011-12-06do not stringify AST nodes unless emitting commentsNiko Matsakis-2/+6
2011-12-06rt: Various tweaks to make __morestack unwinding work on linuxBrian Anderson-2/+9
When unwinding through __morestack the stack limit in the TLS is invalidated and must be reset. Instead of actually landing at __morestack we're just going to make all our Rust landing pads call upcall_reset_stack_limit, which will find the stack segment that corresponds to the current stack pointer and put the limit in the TLS. Also massively expand the stack segment red zone to make more room for the dynamic linker. Will fix in the future.
2011-12-06Add --no-core option and inject a use core/import core::* pair into crate ↵Graydon Hoare-0/+33
unless it's given.
2011-12-06Fix next-node-id "hackasaurus" in comp/front/test.rs.Graydon Hoare-37/+25
2011-12-06Rename --noverify flag to --no-verify.Graydon Hoare-3/+3
2011-12-05rustc: Remove whitespaceBrian Anderson-1/+1
2011-12-05rustc: Add suffix ".rc" to LLVM module identifierHaitao Li-1/+12
LLVM code generator emits the ".file filename" directive for ELF backends. Value of the "filename" is set as the LLVM module identifier. Due to a LLVM MC bug[1], LLVM crashes if the module identifer is same as other symbols such as a function name in the module. This patch adds a ".rc" suffix (means crates) to LLVM module identifier to workaround the bug. Fixes issue #1251. 1. http://llvm.org/bugs/show_bug.cgi?id=11479
2011-12-05typeck: Fix for #932Stefan Plantikow-0/+14
2011-12-04Upgrade LLVM to svn revision 145779Brian Anderson-10/+8
This pulls in commits 145765 & 145766, which are required for split stacks.
2011-12-05rustc: Fix memory leak in do-while loopHaitao Li-2/+5
Issue #1257
2011-12-02const_check: trans: added support for trivial castsStefan Plantikow-0/+11
Part of #1215
2011-12-02parse: typeck: enabling trivial casts of tail-call return valuesStefan Plantikow-14/+33
introduces ctypes::m_* machine type aliases for int, uint, float depending on cfg(target_arch) that are used in tests
2011-12-02ty: trans: added support for dropping trivial castsStefan Plantikow-5/+33
2011-12-02ty: added type comparison that subs prim types with targ_cfg machine typesStefan Plantikow-0/+37
2011-12-02Include full module path in unresolved errors when looking in moduleMarijn Haverbeke-28/+61
Closes #1228
2011-12-02Make import ignore imports coming after themMarijn Haverbeke-14/+54
This broke no code at all, so I guess people were already writing imports in this style. Issue #1228
2011-12-02Finally make the -1 crate id in resolve.rs a constMarijn Haverbeke-10/+7
2011-12-02Stop lexing -1 as a single tokenMarijn Haverbeke-62/+3
And remove the hack that made 1-1 work given that other hack. Issue #954
2011-12-02Allow literal patterns to contain arbitrary literal expressionsMarijn Haverbeke-128/+175
This removes the need for the unary minus hacks, and allows some other neat things like matching on 1 >> 4. Issue #954
2011-12-01Fix mistake in last use passMarijn Haverbeke-5/+12
Closes #1243