3895 Commits

Author SHA1 Message Date
Niko Matsakis
54f6bf57e6 remove align_mode and rewrite GEP_tup_like to align correctly
Although the old version of GEP_tup_like was incorrect in some
cases, I do not believe we ever used it in an incorrect fashion.
In particular, it could go wrong with extended index sequences
like [0, 1, 3], but as near as I can tell we only ever use it
with short sequences like [0, i].
2012-01-18 17:20:46 -08:00
Niko Matsakis
da828747e6 correct use of GEP_tup_like in closure constr
also, streamline type_is_tup_like() to the cases which
actually work
2012-01-18 17:20:46 -08:00
Patrick Walton
1aaee20737 rustc: Accept commas to separate tag variants 2012-01-18 12:27:12 -08:00
Haitao Li
04882d7c43 rustc: Use integer from ctypes consistently 2012-01-19 02:10:36 +08:00
Haitao Li
dde41869ce Use ctypes in native function declarations 2012-01-19 02:10:36 +08:00
Haitao Li
f03eb96f39 rustc: Warn when int or uint is used in a native type decl
Issue #1403
2012-01-19 02:10:36 +08:00
Niko Matsakis
31b25d81eb use 64-bit memset on 64-bit platforms. Fixes #1546. Fixes #843.
Actually, we don't "fix" #843 so much as close it: as with memmove,
we simply use an alignment of 1 with dynamically sized types.
2012-01-17 20:21:09 -08:00
Niko Matsakis
7bc2930cfa roll back commit 1c7a62 2012-01-17 20:21:09 -08:00
Brian Anderson
8acae671c7 rustc: Allow std to be built as a test runner 2012-01-17 19:41:05 -08:00
Graydon Hoare
80c7bfb069 Rename some readmes and fix some dist logic. 2012-01-17 16:50:13 -08:00
Brian Anderson
c0df13958c Update crates with correct crate_type attribute 2012-01-17 15:13:43 -08:00
Brian Anderson
47b9fc278e rustc: --test overrides the crate_type attribute 2012-01-17 15:13:43 -08:00
Graydon Hoare
711fc20d88 Merge pull request #1544 from kevina/issue-1393
Minor cleanups to custom discriminator code.
2012-01-17 12:45:09 -08:00
Niko Matsakis
a83ad1b9e6 encode variant names and have log print them out. 2012-01-17 10:33:28 -08:00
Tim Chevalier
c3bc8fada8 Allow omission of the '.' after nullary tag patterns
This commit allows patterns like:

alt x { some(_) { ... } none { } }

without the '.' after none. The parser suspends judgment about
whether a bare ident is a tag or a new bound variable; instead,
the resolver disambiguates.

This means that any code after resolution that pattern-matches on
patterns needs to call pat_util::normalize_pat, which consults
an environment to do this disambiguation.

In addition, local variables are no longer allowed to shadow
tag names, so this required changing some code (e.g. renaming
variables named "mut", and renaming ast::sub to subtract).

The parser currently accepts patterns with and without the '.'.
Once the compiler and libraries are changed, it will no longer
accept the '.'.
2012-01-17 10:08:16 -08:00
Tim Chevalier
a7bd817017 Fail slightly more gracefully when given an -o filename that doesn't have an extension 2012-01-17 10:08:16 -08:00
Marijn Haverbeke
87418dbc93 Prevent pretty-printer from trying to consume stdin twice
Why this didn't fail on my machine, I don't know.
2012-01-17 17:44:38 +01:00
Marijn Haverbeke
54d5a9846f Try to fix pretty-printer failure
I can't reproduce it on my side, unfortunately.
2012-01-17 17:12:58 +01:00
Marijn Haverbeke
08c16b17e9 Fix --pretty normal, reorganize some code in driver.rs
There is now only one path doing crate expanding and typechecking,
which should make it less likely for the pretty-printing code to be
broken by changes to the compilation pipeline.

Closes #1536
2012-01-17 16:42:49 +01:00
Marijn Haverbeke
1c7a62c93b Use a memset upcall to zero things without static alignment
This fixes issues #843 and #1546. The cost of an upcall is
unfortunate, though. I assume there must be a way to simply manually
compute the pointer or size, using something akin to the formula in
`align_to` in `rust_util.h`. I could not get this to work,
unfortunately.
2012-01-17 14:04:55 +01:00
Brian Anderson
bd63c3928e rustc: Move some attribute accessors from rustdoc to rustc 2012-01-16 21:12:36 -08:00
Kevin Atkinson
bdc8e8d222 Minor cleanups to custom discriminator code.
Mostly updates to the comments and docs from Pull Request #1537.
2012-01-16 21:04:02 -07:00
Josh Matthews
ea1e360c15 Ensure library file always has a proper suffix. 2012-01-16 13:35:35 -05:00
Marijn Haverbeke
b3927d6052 Don't write out type names when hashing types
I hope this is why my patch made things so much slower...
2012-01-16 17:03:51 +01:00
Marijn Haverbeke
d673f76fdf Remove misguided indirect return in trans_closure
Closes #1528
2012-01-16 14:27:41 +01:00
Marijn Haverbeke
1375b31c1c Store type names in crate metadata
Improves type error messages referring to external types.

Issue #1507
2012-01-16 12:08:00 +01:00
Marijn Haverbeke
c2fe7b6398 When pretty-printing fn types, leave off arg modes when they are the default
This reduces ++/&& spam in the output to a bare minimum.

Issue #1507
2012-01-16 12:08:00 +01:00
Kevin Atkinson
e1c50c4410 Don't evaluate discriminator value constants when parsing.
Remove disr_val from ast::variant_ and always use ty::variant_info
when the value is needed.  Move what was done during parsing into
other passes, primary typeck.rs.  This move also correctly type checks
the disr. value expression; thus, fixing rustc --pretty=typed when
disr. values are used.
2012-01-16 11:19:33 +01:00
Marijn Haverbeke
96f1eda6d0 Be more careful about pretty-printing literals
Before, literal printing would basically get derailed completely when
a literal was encountered that did not end up being printed. This
caused the strangeness seen in #1532.

Also cleans up pretty-printing of discriminants a little.

Closes #1510
Closes #1532
2012-01-16 11:19:32 +01:00
Kevin Atkinson
2d36a71aee Update pretty printer to print out disr. values.
Partly fixes issue #1510.  "rustc --pretty=typed" fails.
2012-01-16 11:19:32 +01:00
Marijn Haverbeke
13b9a16a7b Properly print u suffix for uint literals
Issue #1532
2012-01-16 11:19:32 +01:00
Brian Anderson
3466c9b4be rustc: Parse fn inner attributes. Closes #1506 2012-01-15 17:48:58 -08:00
Brian Anderson
17585cc47e rustc: Extract comman parts of view parsing 2012-01-15 16:25:31 -08:00
Brian Anderson
793e3b231c rustc: Output a note about how to debug unexpected failures 2012-01-14 16:33:33 -08:00
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
Josh Matthews
7cbd90f501 Fix up LLVM type stringification to correspond to Core.h 2012-01-14 18:13:26 -05:00
Brian Anderson
9e40e43e74 build: Build libraries in the bin directory on win32 2012-01-14 13:43:04 -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
478134354d rustc: Rename the lexer's err message to fatal and make it fail 2012-01-13 22:07:55 -08:00