Brian Anderson
cb8eabab3d
rustc: Fix tests
2012-01-14 15:14:43 -08:00
Brian Anderson
e36ea8e993
rustc: Run the compiler in a subtask and monitor the diagnostics
...
Since we are no longer logging to the console it's possible for us to
hit a plain-old-fail statement and not output anything.
This adds a defensive mechanism that will monitor the emitted errors
and compare them to the result of the compiler task. If the compiler
fails without emitting an error it results in an ICE.
2012-01-14 15:14:43 -08:00
Brian Anderson
d9d3be7acc
rustc: Extract the logic for generating an ICE message
2012-01-14 15:14:43 -08:00
Brian Anderson
8f57be5bff
rustc: Rename mk_codemap_handler to mk_handler
2012-01-14 15:14:43 -08:00
Brian Anderson
77e95dcf9f
rustc: Rename emit_diagnostic to emit
2012-01-14 15:14:43 -08:00
Brian Anderson
ff24f7e583
rustc: Use the same diagnostic emmiter for both early errors and the session
...
This funnels all properly reported errors through a single closure. Yay.
2012-01-14 15:14:43 -08:00
Brian Anderson
9820abfcc7
rustc: Thread a diagnostic::emitter through driver
2012-01-14 15:14:43 -08:00
Brian Anderson
e78b1040e7
rustc: Pull some uses of early_error up into build_target_config
2012-01-14 15:14:43 -08:00
Brian Anderson
876e9fdc06
rustc: Rename diagnostic::diagnostictype to 'level'
2012-01-14 15:14:43 -08:00
Brian Anderson
824beb4c3b
rustc: Make it not an error when the source can't be loaded for highlighting
...
I plan to have a callback mechanism for reporting errors and it gets wierd
when reporting errors while reporting an error.
2012-01-14 15:14:43 -08:00
Brian Anderson
e4849d5e5d
rustc: Allow a custom diagnostic emitter when building the handler
2012-01-14 15:14:43 -08:00
Brian Anderson
dbf6ed9221
rustc: Remove emit_fatal/error/warning/note functions
2012-01-13 22:07:55 -08:00
Brian Anderson
1a6383a0eb
rustc: Add a distinct fatal diagnostic level
2012-01-13 22:07:55 -08:00
Brian Anderson
f4bd03b998
rustc: Replace the lexer's error handling with diagnostic impl
2012-01-13 22:07:55 -08:00
Brian Anderson
e90701c546
rustc: Replace parser's error handling with diagnostic impl
2012-01-13 22:07:55 -08:00
Brian Anderson
2e69c29660
rustc: Replace session's error handling with diagnostic impl
2012-01-13 22:07:55 -08:00
Brian Anderson
d4e089e94b
rustc: Add diagnostic::handler iface and default impl
...
This is for moving error handling logic out of the session
2012-01-13 22:07:55 -08:00
Brian Anderson
da6674baed
rustc: Stop exporting various things from driver::diagnostic
2012-01-13 16:08:59 -08:00
Brian Anderson
ced0aa13d3
rustc: Extract driver::diagnostic from syntax::codemap
2012-01-13 16:06:56 -08:00
Brian Anderson
f26266e03d
rustc: Refactor codemap::emit_* functions
...
A codemap is only needed when we have a span so put them both into the option.
2012-01-13 15:52:03 -08:00
Brian Anderson
6c05214ef8
rustc: Turn logging off by default
2012-01-13 13:44:09 -08:00
Marijn Haverbeke
efb9df1ebd
Make driver::session::session no longer an object
...
Rather, it is now a struct where properties like opts are accessed
directly, and the error-reporting methods are part of a static impl
(with the same name as the type).
2012-01-12 18:04:02 +01:00
Marijn Haverbeke
34d7f05292
Major clean-up of std::io
...
Use ifaces instead of objs, stop wrapping everything in two (or three)
layers of no-value-added indirection, and remove some of the more
pointless/outdated idioms from the code.
2012-01-11 21:00:11 +01:00
Brian Anderson
c2c497ff53
rustc: Configure out #[test] functions when not testing
2012-01-05 17:31:57 -08:00
Marijn Haverbeke
60ae1590af
Switch to new param kind bound syntax
...
And remove support for the old syntax
2012-01-05 15:50:02 +01:00
Marijn Haverbeke
e1dc40b271
More work on translating dictionary-passing
...
Reached a point where simple uses of interfaces without bounds work.
Issue #1227
2012-01-03 15:36:57 +01:00
User Jyyou
a59c4b1b47
freebsd support
2012-01-01 20:18:55 -08:00
Graydon Hoare
bfc9a499c2
Print usage messages to rustc and rustdoc when invoked with no args. Close #1394 .
2011-12-30 15:26:49 -08:00
Graydon Hoare
389329ef1e
Merge all 3 log syntaxes, tidy up residual misuses.
2011-12-22 16:14:00 -08:00
Haitao Li
bc95ccb536
Separate driver rustc and librustc
...
rustc is now a minimal wrapper of librustc.
2011-12-20 21:06:04 +08:00
Haitao Li
5cfcf20b25
rustc: Cleanup unused ext_map
2011-12-20 15:38:40 +08:00
Josh Matthews
6637340c28
Properly calculate base working dir for compile units.
2011-12-19 03:42:58 -05:00
Josh Matthews
c6f16ed2c4
Hide extended, unfinished debug information behind --xg compiler flag.
2011-12-18 23:48:04 -05:00
Stefan Plantikow
fa27724a4b
std: getopts now uses result::t ( fixes #1289 )
2011-12-18 18:55:39 -08:00
Brian Anderson
555006a304
rustc: Remove --stack-growth option
2011-12-17 16:58:26 -08:00
Marijn Haverbeke
58a81a68ed
Finish resolving and calling of crate-external impls
...
Issue #1227
2011-12-16 22:18:38 +01:00
Niko Matsakis
2833ca478c
reorder args to the various vec, option fns so blk comes last
2011-12-16 07:17:23 -08:00
Marijn Haverbeke
1dd2f1ec03
Get very simple impl method calls to compile
...
Resolution is still dumb, and no self support yet.
2011-12-16 11:46:57 +01:00
Marijn Haverbeke
888bc80025
Parse and resolve implementations.
...
Issue #1227
2011-12-16 11:46:57 +01:00
Haitao Li
9bb290c725
rustc: Implement non-renamed re-export across crates
...
First patch for issue #1115 . Not yet ready for re-exported modules which
are renamed when importing them.
2011-12-16 17:16:00 +08:00
Graydon Hoare
8f0c475562
Add an --out-dir option to rustc.
2011-12-15 13:52:43 -08:00
Graydon Hoare
7694689044
Fix bug in library output filename construction: /tmp/foo.rc was being linked as lib/tmp/foo-<hash>-<vers>.so not /tmp/foo-<hash>-<vers>.so
2011-12-15 11:33:57 -08:00
Graydon Hoare
fa9ad984fb
Copy first batch of material from libstd to libcore.
2011-12-13 16:34:50 -08:00
Haitao Li
6dbd4c21e9
rustc: build versioned library with hash in its name
...
Also updated build to install versioned libraries and added a few
missing actions for `make clean`.
2011-12-12 16:15:29 -08:00
Brian Anderson
54f72fbc10
rustc: Actually hook the crate_type attribute into session
2011-12-08 21:31:50 -08:00
Brian Anderson
9116a6d9b1
rustc: Support 'crate_type' attribute
...
[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-08 21:09:15 -08:00
Brian Anderson
6156295a4c
rustc: Move linking into compile_input
2011-12-08 20:33:31 -08:00
Brian Anderson
fd81fb6a24
rustc: Determine the crate type (lib/bin) in the session, not session opts
...
This is in preparation for adding a #[crate_type] attribute
2011-12-08 20:08:00 -08:00
Graydon Hoare
e056ffa17d
Inject the view_items for core in the right place, add comment documenting why the wrong place was wrong.
2011-12-07 13:33:00 -08:00
Marijn Haverbeke
e3eca9174b
Change literal representation to not truncate
...
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-07 21:08:28 +01:00
Graydon Hoare
a1b215aea1
Add --no-core option and inject a use core/import core::* pair into crate unless it's given.
2011-12-06 14:40:30 -08:00
Graydon Hoare
baf3de4733
Rename --noverify flag to --no-verify.
2011-12-06 13:02:59 -08:00
Marijn Haverbeke
64ce092c27
Allow literal patterns to contain arbitrary literal expressions
...
This removes the need for the unary minus hacks, and allows some other
neat things like matching on 1 >> 4.
Issue #954
2011-12-02 13:42:51 +01:00
Marijn Haverbeke
b4217b383b
Add a pass that checks that blocks are only used in safe ways
...
Closes #1188
2011-11-21 11:01:15 +01:00
Marijn Haverbeke
86c1f16a10
Fix bad interaction between last-use finding and references
...
The last-use pass now takes input from the alias pass to not mark things
as last uses that are still accessed through a reference.
Issue #925
2011-11-21 09:25:42 +01:00
Marijn Haverbeke
68db68c4cc
Make trans use last_use info to not actually generate copies
...
Issue #925
2011-11-18 15:56:53 +01:00
Marijn Haverbeke
8f8ebb550c
Implement a last-use-of-local finding algorithm
...
Issue #925
2011-11-18 12:49:01 +01:00
Niko Matsakis
adc79e2f44
remove compile-command from local variable blocks
2011-11-17 11:46:13 -08:00
Haitao Li
388eed383f
rustc: Add a flag '--warn-unused-imports'
...
Followup of issue #889
2011-11-17 09:28:30 +01:00
Niko Matsakis
bfc81352aa
remove unused flag (thanks lht)
2011-11-16 21:52:01 -08:00
Stefan Plantikow
99c421f01d
Removed --no-typestate flag from rutsc
...
Fixes issue #1139
2011-11-16 18:52:46 -08:00
Brian Anderson
55f89dbed9
rustc: Fix help text for --sysroot
2011-11-16 18:35:30 -08:00
Niko Matsakis
9043bd9778
wrap long line;
2011-11-16 15:16:43 -08:00
Niko Matsakis
cb9675259f
enable comments in generated asm, ll
2011-11-16 15:16:42 -08:00
Brian Anderson
dd5512ccb0
Support conditional compilation based on architecture
...
target_os = "x86" or target_os = "x86_64"
2011-11-15 16:33:09 -08:00
Marijn Haverbeke
9ff6f816ba
Fix handling of loops and conditionals in alias.rs
...
It now threads information about invalidated aliases through the AST
properly. This makes it more permissive for conditionals (invalidating
an alias in one branch doesn't prevent you from using it in another),
and less permissive for loops (it now properly notices when a loop
invalidates an alias that it might still use in another iteration).
Closes #1144
2011-11-15 13:29:57 +01:00
Haitao Li
39084fb881
Remove unused "--check-unsafe" flag
...
Fixes issue #1138
2011-11-12 00:01:37 +08:00
Haitao Li
5a7249c935
Cleanup unused imports
2011-11-10 19:19:40 -08:00
Joshua Wise
e674a7e99f
middle: Add a pass to reject bad const expressions earlier. Currently just rejects unimplemented const expressions, but will be needed later.
2011-11-09 14:33:05 -08:00
Haitao Li
253242390c
Use ".ll" as default suffix of LLVM assembly file
...
This commit is a follow up of Issue #1147 .
Althought there are some inconsistency about this naming convention in
LLVM. For example, `clang' write LLVM assembly to a file with ".s" suffix,
while both `llvm-dis' and `opt' write to files with ".ll" suffices. We
think ".ll" makes more sense.
Also rustc manual page is updated.
2011-11-07 21:12:48 -08:00
Haitao Li
b12de98814
rustc: Add support of generating LLVM assembly
...
rustc generates output files in LLVM bitcode format if "--emit-llvm"
option is given. When used with the "-S" option, rustc generates LLVM
intermediate language assembly files.
Fixes Issue #476
2011-11-07 21:44:40 +08:00
Marijn Haverbeke
1a68a98824
Disallow writing to function arguments again
...
Remove implicit copying hack.
Closes #1118
2011-11-03 10:57:54 +01:00
Niko Matsakis
8011e3fabb
hack around on makefiles trying to get a 64 bit build
...
right now there are many temporary hacks, search for NDM to find them
2011-11-02 14:13:22 -07:00
Niko Matsakis
5b3bddcd87
start to isolate target strings so that they can be configured for
...
x64 or other targets
2011-11-02 14:13:22 -07:00
Brian Anderson
2cebef095e
stdlib: Make io failures recoverable by returning a result
2011-10-29 01:25:11 -07:00
Brian Anderson
83219269d5
rustc: Remove broken --depend flag
2011-10-28 12:58:10 -07:00
Brian Anderson
2a2945e5de
rustc: -h cleanup
2011-10-28 12:51:46 -07:00
Brian Anderson
d106a336cc
rustc: Change --OptLevel to --opt-level
2011-10-28 12:49:19 -07:00
Brian Anderson
bab2b37fd0
rustc: Use consistent error handling in main
2011-10-28 11:57:01 -07:00
Brian Anderson
f2a3270b9c
Reorder statements in rustc main to avoid bounds check
2011-10-28 11:17:07 -07:00
Haitao Li
a81fdf0a5a
rustc: Lift output file name handling out of main
2011-10-28 11:12:10 -07:00
Haitao Li
7bb9a54c73
Produce dyn libraries with proper names
...
Issue #744
2011-10-28 11:05:43 -07:00
Marijn Haverbeke
cfdf193c46
Update our code to new type parameter kind syntax
...
Closes #1067
2011-10-25 15:56:55 +02:00
Brian Anderson
29ad3bdb10
Make fn denote a bare function. Convert fn to fn@ as needed
2011-10-20 18:23:48 -07:00
Brian Anderson
89466ffd74
Rename rustc::middle::unsafeck to fn_usage
...
I'm going to add further checks unrelated to unsafe.
Issue #1038
2011-10-13 12:25:57 -07:00
Niko Matsakis
e8a0e592da
reimplement some of the unsafe stuff which got lost
...
- blocks inherit unsafety
- remove the --check-unsafe flag
- add unsafe annotations where needed to get things to compile
2011-10-12 16:33:07 -07:00
Niko Matsakis
9f9deff7af
make a good error msg if you try to use an unsafe fn for a test
2011-10-12 16:33:07 -07:00
Niko Matsakis
81533ff737
add pass to check that unsafe fns cannot be used as values
2011-10-12 16:33:06 -07:00
Niko Matsakis
b9a9559c91
correct lines over 78 chars
2011-10-12 14:39:34 -07:00
Niko Matsakis
f3c68e7238
enable unsafe checking but only with a flag --check-unsafe
2011-10-12 14:39:34 -07:00
David Rajchenbach-Teller
8c9dd54ded
[Renaming] str_to_float is now float::from_str, float_to_str is now float::to_str
2011-10-12 10:56:05 +02:00
David Rajchenbach-Teller
2ec85135e2
[Move] Moved str_to_float, float_to_str from compiler to lib
2011-10-11 16:41:34 +02:00
Marijn Haverbeke
33167f7dec
Adjust function signatures to allow for vecs being immediate
...
Some code was relying on vectors being implicitly by-reference (as
non-immediate value). This adds the necessary &&-sigils.
Closes #1021
2011-10-10 16:01:51 +02:00
Marijn Haverbeke
9c037d2194
Revert "rustc: Add a workaround for a segfault with --time-passes (issue #1005 )."
...
This reverts commit 100e0264b2
.
2011-10-06 16:12:47 +02:00
Patrick Walton
100e0264b2
rustc: Add a workaround for a segfault with --time-passes (issue #1005 ).
2011-10-05 14:35:30 -07:00
Brian Anderson
1f2e999262
Use std::os::get_exe_path to determine sysroot
2011-10-04 21:35:06 -07:00
Brian Anderson
33ee73102d
Remove some redundancy in metadata::creader
2011-10-04 21:35:06 -07:00
Brian Anderson
d91b7b61ef
Encapsulate current sysroot and lib path handling into util::filesearch
2011-10-04 21:35:06 -07:00
Patrick Walton
e9287e55cc
rustc: Stub a --stack-growth option; it's behind a flag for now because it requires patches to LLVM.
2011-09-30 18:21:39 -07:00
Brian Anderson
821dd6c02c
Change the directory for target libs
...
This pushes them down from stageN/lib/rustc/$(target) to
stageN/lib/rustc/$(target)/lib in order to make room for a target bin dir
2011-09-30 17:19:24 -07:00