Brian Anderson
740196987e
Rename std::str::unsafe_from_bytes_ivec to unsafe_from_bytes
2011-08-12 12:08:27 -07:00
Brian Anderson
4caeba9178
Remove vecs from the rustc driver
2011-08-12 12:08:26 -07:00
Patrick Walton
a5d5f9ef48
rustc: Add a --gc switch for debugging and experimentation
2011-08-10 22:13:30 -07:00
Erick Tryzelaar
8b15045224
Port the compiler to the ivec type [T] syntax.
2011-08-09 15:53:26 -07:00
Brian Anderson
e4da7c5bee
parse_crate_from_source_str takes a parse_sess, not codemap
...
This was causing problems when reading from stdin for subsequent passes that
needed to generate node ids.
2011-08-03 10:55:59 -07:00
Brian Anderson
97a8784c98
Fix pretty-printer to read from files again
...
I accidentally made the pretty-printer always read from stdin
2011-08-03 10:55:59 -07:00
Brian Anderson
840a09c86e
Add a --no-trans command line option
...
Runs all passes before translation. This will be used for pretty-printing
tests to verify that the results are still probably valid Rust code.
2011-08-02 10:39:12 -07:00
Brian Anderson
5f4b7e1ba7
Compiler accepts input from stdin when source file is called "-"
2011-08-02 10:39:09 -07:00
Marijn Haverbeke
c34d74315f
Remove unreachable statements
2011-07-29 20:54:44 +02:00
Marijn Haverbeke
c78ac29002
Show millisecond precision for time_passes times
...
Closes #713
2011-07-28 07:22:16 +02:00
Graydon Hoare
63f74f3771
Remove vestiges of "layers", insert skeletal do-nothing "kind" pass plus cached calculation of kind for each type.
2011-07-27 17:49:00 -07:00
Marijn Haverbeke
6e2a7bff7f
Fix damage done by the pretty-printer
2011-07-27 15:54:33 +02:00
Marijn Haverbeke
df7f21db09
Reformat for new syntax
2011-07-27 15:54:33 +02:00
Graydon Hoare
552bff8a21
Adjust pp interface to that printing a crate (an reproducing literals/comments) takes a reader, not just a filename. Fixes first big pp-fuzzer bug.
2011-07-25 14:04:49 -07:00
Marijn Haverbeke
beab6ba8aa
Add a pass that checks for unreachable alt arms
2011-07-25 13:52:59 +02:00
Paul Stansifer
e6e53aff63
Add --expand
option to rustc to pretty-print expanded code.
2011-07-23 14:33:12 -07:00
Michael Sullivan
f8bb5a3b58
Make ty::ctxt be boxed.
...
Arguably we should leave ty_ctxt as a bare rec and just always work with
boxes of it. This winds up being simpler and prettier, though.
2011-07-21 17:39:06 -07:00
Tim Chevalier
bd4aeef78b
Beginnings of support for constrained types
...
Programs with constrained types now parse and typecheck, but
typestate doesn't check them specially, so the one relevant test
case so far is XFAILed.
Also rewrote all of the constraint-related data structures in the
process (again), for some reason. I got rid of a superfluous
data structure in the context that was mapping front-end constraints
to resolved constraints, instead handling constraints in the same
way in which everything else gets resolved.
2011-07-19 18:57:28 -07:00
Michael Sullivan
f8c6d282f8
Add a pass that finds all of the free variables.
2011-07-19 12:01:14 -07:00
Josh Matthews
a411c865b2
Make clear the differentiation between char pos and byte pos in filemaps. Fix up error printing for files with multi-byte characters.
2011-07-16 15:57:24 -07:00
Graydon Hoare
fafb42e6b1
Merge the stage1,2,3.mk files into a common definition in stageN.mk, more rearrangement of host/target libs.
2011-07-15 16:16:51 -07:00
Patrick Walton
9fadab64a2
rustc: Introduce a stub destination-passing-style translation engine, accessible via the --dps switch for now
2011-07-15 11:38:46 -07:00
Patrick Walton
917afa4cc9
rustc: Remove a bunch of exterior vectors
2011-07-15 11:38:46 -07:00
Patrick Walton
be489ee9e2
rustc: Move much of metadata reading over to interior vectors
2011-07-14 12:00:48 -07:00
Brian Anderson
8d2706cca8
Flag --test implies '--cfg test'. Issue #428
...
So certain code can be conditionally compiled only when building for testing
2011-07-14 10:27:02 -07:00
Tim Chevalier
f26ca025de
Make resolve and the typechecker check for a main fn of the
...
correct type
This means if a non-library program leaves out the main program,
the error gets caught earlier than link.
Closes #626 .
2011-07-13 18:30:53 -07:00
Paul Stansifer
425732311a
Move macro expansion to a separate phase, change macro syntax, and add parse_sess to session.
2011-07-11 18:52:50 -07:00
Josh Matthews
fd24fd5e31
Only print up to six lines on error. Print ^~~~~ to highlight error span.
2011-07-11 18:44:27 -07:00
Rafael Ávila de Espíndola
94f0e9d956
Add just enough logic to the driver so that we can link std statically.
2011-07-08 15:05:32 -04:00
Brian Anderson
29b766029c
Move external crate/lib resolution to its own pass
...
The scope of external crate reading is beyond the resolve pass now, as it
builds up tables of information needed for several different purposes.
2011-07-08 09:37:01 -07:00
Brian Anderson
58d288a4f7
Move used_link_args from session to cstore
2011-07-08 09:37:00 -07:00
Brian Anderson
4bfa269fe7
Move used_libraries from session to cstore
2011-07-08 09:37:00 -07:00
Brian Anderson
1386420cad
Move used_crate_files from session to cstore
2011-07-08 09:37:00 -07:00
Brian Anderson
82983e5005
Replace the crate cache in session with the one in cstore
2011-07-08 09:37:00 -07:00
Brian Anderson
b23ecd47ce
Introduce metadata::cstore
...
I intend for this to be the location for storing all the data retrieved by
creader, most of which is currently in the session.
2011-07-08 09:37:00 -07:00
Rafael Ávila de Espíndola
77c708cdbf
Implement --lib --static.
2011-07-07 15:25:09 -04:00
Rafael Ávila de Espíndola
b13527735e
Use an early exit to reduce indentation.
2011-07-07 14:59:18 -04:00
Rafael Ávila de Espíndola
6d6c4c2a76
Command line changes for adding support for static libraries.
2011-07-07 14:42:50 -04:00
Brian Anderson
cf4c2ac0be
Generate a main fn for test running. Issue #428
2011-07-06 18:26:22 -07:00
Patrick Walton
401b6362d7
rustc: Make meta items into interior vectors
2011-07-06 15:46:03 -07:00
Brian Anderson
b06ccb45ab
Begin adding unit testing infrastructure to the compiler
...
Add a --test flag and a pass for transforming the AST to generate a test
harness.
Issue #428
2011-07-06 14:39:36 -07:00
Marijn Haverbeke
7661c08496
Remove temporary stdlib placeholders, use actual stdlib functions
...
(Possible now that a snapshot took place.)
2011-07-06 16:46:17 +02:00
Brian Anderson
2cb129355b
Change ast::meta_name_value to accept any literal, not just string
...
This isn't useful for much of anything yet, since metadata::encoder doesn't
know how to handle the non-string variants.
Issue #611
2011-07-05 17:25:18 -07:00
Marijn Haverbeke
4349eaed84
Don't thread the local crate number through the session
...
It's a constant, anyway.
2011-07-05 16:09:32 +02:00
Marijn Haverbeke
6fd6fdea93
Move everything syntax-related to syntax/, break deps on rest of compiler
...
src/comp/syntax is currently just a sub-module of rustc, but it will,
in the near future, be its own crate. This includes:
- The AST data structure
- The parser
- The pretty-printer
- Visit, walk, and fold
- The syntax extension system
- Some utility stuff that should be in the stdlib*
*) Stdlib extensions currently require a snapshot before they can be
used, and the win build is very broken right now. This is temporary
and will be cleaned up when one of those problems goes away.
A lot of code was moved by this patch, mostly towards a more organized
layout. Some package paths did get longer, and I guess the new layout
will take some getting used to. Sorry about that!
Please try not to re-introduce any dependencies in syntax/ on any of
the other src/comp/ subdirs.
2011-07-05 15:57:21 +02:00
Marijn Haverbeke
04acba7968
Move pretty-printing 'modes' into a callback hook
...
This way, the pretty-printer does not have to know about middle::ty.
(This is a preparation for separating the AST functionality into a
separate crate.)
2011-07-05 10:42:17 +02:00
Rafael Ávila de Espíndola
b669430f72
Use metadata to avoid always passing -Lrustllvm to the linker.
2011-07-04 13:22:23 -04:00
Rafael Ávila de Espíndola
e0ce092ddc
Simplify the code a bit.
2011-07-04 11:17:30 -04:00
Brian Anderson
396c4defcc
Introduce --cfg argument for providing additional configuration. Issue #489
2011-07-01 15:30:25 -07:00
Brian Anderson
bca45720f7
Remove the environment concept from front::eval
...
This is the old method of conditional compilation. It is going away.
Issue #489
2011-07-01 10:45:30 -07:00