Commit graph

6847 commits

Author SHA1 Message Date
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
Grahame Bowland
ca8fe6446b don't leave files that will not checksum if download is interrupted 2012-01-17 22:41:11 +08: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
Marijn Haverbeke
e046360e69 Add an std::md4 module 2012-01-17 12:02:04 +01:00
Brian Anderson
d367cdf1d9 rustdoc: Write headers for modules 2012-01-16 23:10:25 -08:00
Brian Anderson
b8840cbee6 rustdoc: Add a pass to prune undocumented items 2012-01-16 22:50:00 -08:00
Roland Tanglao
315e3ff8dd Forgot to add some spaces before backslashes 2012-01-16 22:41:56 -08:00
Roland Tanglao
e631df3429 add spaces before newlines in rustdocs 2012-01-16 22:24:56 -08:00
Brian Anderson
ba41342279 rustdoc: Add gen::subsection for managing header levels 2012-01-16 22:01:25 -08:00
Brian Anderson
ab86642e35 rustdoc: Don't use by copy in fst/snd to work around segv
Issue #1546
2012-01-16 21:56:21 -08:00
Brian Anderson
27fe23dcaa rustdoc: Refactor header writing a bit 2012-01-16 21:37:29 -08:00
Brian Anderson
bd63c3928e rustc: Move some attribute accessors from rustdoc to rustc 2012-01-16 21:12:36 -08:00
Brian Anderson
4f2ad6b124 rustdoc: Move fst and snd into util mod 2012-01-16 21:12:36 -08:00
Brian Anderson
75dbb0f193 rustdoc: Use attr API in attr_parser 2012-01-16 21:12:36 -08:00
Brian Anderson
29409afe1a rustdoc: Add a fallthrough path to meta_item search in parse_fn 2012-01-16 21:12:35 -08:00
Brian Anderson
cf40b60b5a rustdoc: Begin writting the attribute extracting pass 2012-01-16 21:12:35 -08:00
Brian Anderson
a0ed75bc49 rustdoc: Use the parsing method that supports .rc files 2012-01-16 21:12:35 -08:00
Brian Anderson
645035a715 rustdoc: Convert tystr_pass to use astsrv 2012-01-16 21:12:35 -08:00
Brian Anderson
447f1fd4af rustdoc: Add a pass type and a run_passes function 2012-01-16 21:12:35 -08:00
Brian Anderson
74d4989876 rustdoc: Add extract::from_srv to extract a doc from an astsrv 2012-01-16 21:12:35 -08:00
Brian Anderson
439a28abe0 rustdoc: Add module astsrv to provide access to the (non-sendable) AST 2012-01-16 21:12:35 -08:00
Brian Anderson
d455d46b15 rustdoc: Remove non-attribute related stuff from attr_parser 2012-01-16 21:12:35 -08:00
Brian Anderson
c87b820298 rustdoc: Add attr_pass for extracting attributes 2012-01-16 21:12:35 -08:00
Brian Anderson
b768df4ea3 rustdoc: Remove unused import from extract module 2012-01-16 21:12:35 -08:00
Brian Anderson
22d182acd7 rustdoc: Remove attribute parsing from extract module 2012-01-16 21:12:35 -08:00
Brian Anderson
04294e437b rustdoc: Cleanup 2012-01-16 21:12:35 -08:00
Brian Anderson
6e0bcb5bd0 rustdoc: Eliminate AST usage in gen module 2012-01-16 21:12:34 -08:00
Brian Anderson
c4de718f37 rustdoc: Add tystr_pass module for extracting type strings 2012-01-16 21:12:34 -08:00
Brian Anderson
497814642f rustdoc: Make fold polymorphic on a context type
This will allow it to be instantiated for non-sendable contexts
2012-01-16 21:12:34 -08:00
Brian Anderson
5457b4d3fb rustdoc: Add fold module 2012-01-16 21:12:34 -08:00
Brian Anderson
e77b8db707 rustdoc: Convert fn return type to retdoc record 2012-01-16 21:12:34 -08:00
Brian Anderson
63dcc64275 rustdoc: Change fndoc's arg list to a vec from map 2012-01-16 21:12:34 -08:00
Brian Anderson
b6ad840c18 rustdoc: Make gen module exports explicit 2012-01-16 21:12:34 -08:00
Brian Anderson
5f25804f46 rustdoc: Push imports down into submodules 2012-01-16 21:12:34 -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
Roland Tanglao
ca55a4b421 convert comments to rustdocs for box, char, comm and cytpes.rs 2012-01-16 18:34:03 -08:00
Josh Matthews
ea1e360c15 Ensure library file always has a proper suffix. 2012-01-16 13:35:35 -05:00
Josh Matthews
1223bbc4de Make str::replace smarter. 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
936c933fd8 Move emacs mode into tree 2012-01-16 12:44:24 +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
b39154233a rustdoc: Attach the doc writer to the doc extractor 2012-01-16 01:07:42 -08:00
Brian Anderson
a8428a896e rustdoc: Write fn docs 2012-01-16 01:07:42 -08:00
Brian Anderson
d928952191 rustdoc: Write crate name 2012-01-16 01:07:42 -08:00
Brian Anderson
ae584263da rustdoc: Set the crate name in the top module 2012-01-16 01:07:42 -08:00
Brian Anderson
77690baa70 rustdoc: Attach the AST node id to fndocs 2012-01-16 01:07:42 -08:00
Brian Anderson
7a9ba240a0 rustdoc: Rename type rustdoc to gen::ctxt 2012-01-16 01:07:42 -08:00
Brian Anderson
906a7c2174 rustdoc: Move rustdoc type into the gen module 2012-01-16 01:07:42 -08:00
Brian Anderson
237d96512a rustdoc: Wire up the doc extractor to attribute parser 2012-01-16 01:07:42 -08:00
Brian Anderson
763f3c4d5b rustdoc: Add regression tests for existing attr parsing behavior 2012-01-16 01:07:42 -08:00
Brian Anderson
01fedcad77 rustdoc: Change parse_fn to take a vector of attributes 2012-01-16 01:07:42 -08:00
Brian Anderson
d85fa7c8dc rustdoc: Rename parse_compound_fndoc to parse_fn 2012-01-16 01:07:42 -08:00
Brian Anderson
f3c4263635 rustdoc: Move parse_compound_fndoc into mod attr_parser 2012-01-16 01:07:42 -08:00
Brian Anderson
46a662ecb2 rustdoc: Build mod and fn nodes from the AST 2012-01-16 01:07:42 -08:00
Brian Anderson
995c50b69b rustdoc: Add extract module for building doc model from AST 2012-01-16 01:07:41 -08:00
Brian Anderson
555d5aed37 rustdoc: Move markdown-writing functions into gen module 2012-01-16 01:07:41 -08:00
Brian Anderson
140fbd3019 rustdoc: Move document model into doc module 2012-01-16 01:07:41 -08:00
Brian Anderson
e32cf827ff rustdoc: Add cratedoc and moddoc types 2012-01-16 01:07:41 -08:00
Brian Anderson
c59a0ec774 rustdoc: Move parse module to its own file 2012-01-16 01:07:41 -08:00
Brian Anderson
377316d8f6 rustdoc: Add parse::from_str for testing purposes 2012-01-16 01:07:41 -08:00
Brian Anderson
0e65ddfaea rustdoc: Move AST parsing into the parse module 2012-01-16 01:07:41 -08:00
Jyun-Yan You
e4d553c534 use correct size for logging mod_entry state fields
The compiler outputs 32-bit values for these and on 64-bit FreeBSD
the runtime was scribbling on some state used by getenv and segfaulting.
2012-01-16 00:41:14 -08:00
Jyun-Yan You
79d7388455 add lgamma functions for FreeBSD 2012-01-16 00:38:52 -08:00
Kevin Cantu
d8b0a1910a Added string functions: split_func, split_char, lines, lines_any, words,
and more tests
2012-01-15 20:20:06 -08: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
16462a77b0 build: Add rustdoc to tidy rules 2012-01-15 14:30:12 -08:00
Brian Anderson
66e97a9b08 rustdoc: Add a crate file 2012-01-15 14:30:12 -08:00
Brian Anderson
6860dcc958 Register snapshots 2012-01-15 13:50:37 -08:00
Brian Anderson
48debac944 Revert "Register snapshots"
This reverts commit 28423bddb1.
2012-01-15 13:45:31 -08:00
Brian Anderson
28423bddb1 Register snapshots 2012-01-15 13:36:10 -08:00
Brian Anderson
7e6ce6637e bench: Lower the default inputs on many shootout benchmarks
Make them run a bit faster during normal testing
2012-01-14 20:34:02 -08:00
Brian Anderson
1588ae204e bench: Update shootout-nbody for style 2012-01-14 20:29:56 -08:00
Brian Anderson
93dcb9fb6b bench: Update fannkuchredux for style 2012-01-14 20:13:03 -08:00
Brian Anderson
9c21673e3f bench: Update shootout-binarytrees for style 2012-01-14 20:13:03 -08:00
Brian Anderson
c53d0a0af8 bench: Update shootout-ackermann for performance 2012-01-14 20:13:01 -08:00
Brian Anderson
492dba8bfe bench: Update shootout-fibo for performance 2012-01-14 19:39:52 -08:00
Brian Anderson
bc77d7bdb0 libcore: Add sys::set_min_stack
Adding this back to the library as a stopgap measure to recover some benchmark
performance. See #1527.
2012-01-14 19:24:33 -08:00
Brian Anderson
b93ed36555 Merge pull request #1521 from grahame/master
Simple update of the vim syntax file
2012-01-14 18:49:58 -08:00
Brian Anderson
c6f62b6374 bench: Update shootout-binarytrees to use unique boxes
Shared boxes have a huge performance overhead due to #1493
2012-01-14 17:02:51 -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
Grahame Bowland
2b5bd7cd6d Update vim syntax with new keywords 2012-01-14 23:11:33 +08:00
Brian Anderson
84664304cc libcore: Remove void declaration from comm::rustrt 2012-01-14 03:13:41 -08:00
Brian Anderson
d978aace53 libcore: Make ctypes::void an unconstructable, undestructurable tag 2012-01-14 03:13:09 -08:00
Brian Anderson
26551e5481 libstd: Remove util::void 2012-01-14 02:51:08 -08:00
Brian Anderson
a3f5c66484 libstd: Remove util::orb. Redundant with core::bool 2012-01-14 02:48:16 -08:00
Brian Anderson
8f69176a14 Register snapshots 2012-01-14 01:13:56 -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
eb41fd9021 Update tools for new parser API 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
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
bb1e8d2339 rustc: Some more codemap refactoring 2012-01-13 15:52:03 -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
Graydon Hoare
91b0a51290 Change builtin macro defs to use #macro() 2012-01-13 15:43:12 -08:00
Graydon Hoare
4f9e1ba80b More doc porting. 2012-01-13 15:43:12 -08:00
Niko Matsakis
4a34a7128a xfail the tests for now, pending #1511 being fixed 2012-01-13 15:30:50 -08:00
Brian Anderson
a2e07a97ba test: xfail-pretty run-pass/tag-disr-val-shape 2012-01-13 15:14:06 -08:00
Brian Anderson
d76362d45e test: Simplify rope::bal1. Closes #1424 2012-01-13 14:55:07 -08:00
Josh Matthews
bdf3a6ba88 Undo over-enthusiastic obj system removal in debuginfo. 2012-01-13 17:28:23 -05:00
Brian Anderson
e66c036c9f libcore: Add task::try 2012-01-13 14:21:17 -08:00
Niko Matsakis
31bb6a60bb Fixes #1499: a test that shape code can walk explicit disr values 2012-01-13 13:57:06 -08:00
Brian Anderson
6c05214ef8 rustc: Turn logging off by default 2012-01-13 13:44:09 -08:00
Brian Anderson
79207321ae libcore: Add core::logging::console_on/off functions
These affect logging output to stdout globally, and turning the console off
has no effect when overridden by RUST_LOG.
2012-01-13 13:44:09 -08:00
Brian Anderson
f5f36e8b49 rt: Allow console logging to be turned off 2012-01-13 13:44:09 -08:00
Marijn Haverbeke
7150643588 Remove workaround for issue #1494
We have a snapshot that includes the fix.
2012-01-13 21:38:29 +01:00
Brian Anderson
bb1e79768c llvm: Switch back to LLVM trunk 2012-01-13 11:05:59 -08:00
Niko Matsakis
8685a1f7c4 distinguish "any closure" and "stack closure" (block) 2012-01-13 09:31:40 -08:00
Niko Matsakis
47a534c197 make blocks fn& and fn stand for "any closure" 2012-01-13 06:36:31 -08:00
Niko Matsakis
3f3bfeec27 make "native fn" the type for bare functions, remove fn exprs 2012-01-13 06:27:35 -08:00
Niko Matsakis
455f8b0d45 deprecate fn exprs and the fn() type, preferring fn@ and native fn 2012-01-13 06:27:34 -08:00
Marijn Haverbeke
d2be5b6c7a Remove tests for objs, adjust tests that use objs 2012-01-13 11:52:13 +01:00
Marijn Haverbeke
24102d50ad Obj system? What obj system?
Removes the obj system from the compiler.

Closes #1484
2012-01-13 11:51:29 +01:00
Marijn Haverbeke
eb07fa4d3b Remove all remaining uses of objs from the compiler 2012-01-13 11:51:17 +01:00
Marijn Haverbeke
7f62944559 Convert the objects used in the lexer and parser to records + impls 2012-01-13 11:50:53 +01:00
Brian Anderson
0616cba62b libcore: Add sys::set_exit_status
Sets the process exit code
2012-01-12 22:24:27 -08:00
Brian Anderson
dcac427795 Revert "build: Build libraries in the bin directory on win32"
This reverts commit 23e0d16b5f.
2012-01-12 20:06:45 -08:00
Brian Anderson
6becf517e3 Revert "Register snapshots"
This reverts commit 17d504e0a9.
2012-01-12 20:06:30 -08:00
Brian Anderson
d95de0dd95 Merge remote-tracking branch 'brson/win32' 2012-01-12 19:25:27 -08:00
Graydon Hoare
fefdb63c4c Begin shift over to using pandoc, markdown and llnextgen for reference manual. Fix man page URL while at it. 2012-01-12 19:10:30 -08:00
Brian Anderson
17d504e0a9 Register snapshots 2012-01-12 17:16:31 -08:00
Tim Chevalier
565ea068ca Add type parameters when checking wildcard patterns
For some reason, wildcard patterns were never getting type parameter
substitutions attached. This would cause an assertion failure when
checking a wildcard pattern that matches against a tag with
polymorphic type (not sure why this didn't come up before). Fixed it.
(The diff and test case may be easier to understand than this note
:P)

Closes #1503.
2012-01-12 16:51:07 -08:00