136 Commits

Author SHA1 Message Date
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
81533ff737 add pass to check that unsafe fns cannot be used as values 2011-10-12 16:33:06 -07:00
Brian Anderson
19ba9b4d8d Begin work on rpath 2011-10-05 16:21:55 -07:00
Brian Anderson
d91b7b61ef Encapsulate current sysroot and lib path handling into util::filesearch 2011-10-04 21:35:06 -07:00
Brian Anderson
8492eed137 Move uniq trans code to trans_uniq module
Issue #409
2011-09-22 13:53:30 -07:00
Marijn Haverbeke
785c26f7f4 Rename ivecs to vecs in the compiler 2011-09-02 16:09:41 +02:00
Brian Anderson
6972f07510 Make #fmt and #ifmt synonymous. Issue #855 2011-09-01 17:56:25 -07:00
Brian Anderson
775b64c955 Remove the estr #fmt. Issue #855 2011-09-01 12:14:31 -07:00
Marijn Haverbeke
2d1dec78e7 Move mutability checking into its own pass.
Having it in the alias pass was slightly more efficient (finding
expression roots has to be done in both passes), but further muddled
up the already complex alias checker.

Also factors out some duplication in the mutability-checking code.
2011-09-01 16:32:38 +02:00
Brian Anderson
4c936d7992 Add #ifmt extension, like #fmt but for istrs. Issue #855 2011-08-30 21:08:07 -07:00
Brian Anderson
f0820662c9 Revert "Add rustc::middle::cstrcache for getting c string bufs safely"
This reverts commit 4e136d1fd9bd5536d441c062d41e7b71b375a942.
2011-08-26 13:58:19 -07:00
Brian Anderson
4e136d1fd9 Add rustc::middle::cstrcache for getting c string bufs safely
We continue to leak string buffers in trans so this creates a way to get c
string buffers from strings while guaranteeing that they are not freed before
use.

Hopefully this can be made efficient in the istr regime.
2011-08-26 13:20:23 -07:00
Marijn Haverbeke
b9112525ba Move to a more lightweight builder system
You now do

    bld::Ret(bcx, someval)

where you used to say

    bcx.build.Ret(someval)

Two fewer boxes are allocated for each block context, and build calls
no longer go through a vtable.
2011-08-24 16:48:10 +02:00
Brian Anderson
309a7534d7 Move trans::ivec to middle::trans_ivec 2011-08-22 12:04:05 -07:00
Brian Anderson
152cbaade7 Move functions from syntax::ast to syntax::ast_util
This leaves syntax::ast just defining the AST, which strikes me as somewhat
nicer
2011-08-22 10:44:04 -07:00
Marijn Haverbeke
27169387fe Remove partial DPS back-end
It won't be finished on the short term, and it's already bit-rotting
fast. We can fetch this from git's autumn annals if we need it.
2011-08-16 21:35:50 +02:00
Eric Holk
cf2def46c1 Removed trans_comm.rs from the compiler. Updating aio/sio to work with the new chan and port system, started on a networking module for the standard library. 2011-08-16 09:36:29 -07:00
Paul Stansifer
f50a582126 Add a syntax extension to log syntax, for debugging macros. 2011-08-15 15:35:27 -07:00
Patrick Walton
5079f51386 rustc: Associate type descriptors with allocas as metadata 2011-08-11 14:35:33 -07:00
Lindsey Kuper
5d9680fc7e Move object-system-related trans stuff to its own file. 2011-08-09 16:42:55 -07:00
Patrick Walton
4061ca2bbd rustc: Generate shapes 2011-08-04 10:46:10 -07:00
Paul Stansifer
513276e595 Add #concat_idents[] and #ident_to_str[] 2011-08-03 12:42:35 -07:00
Marijn Haverbeke
48ec25da42 Get rid of walk.rs
And we're down to a single AST walker again
2011-07-31 12:24:14 +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
beab6ba8aa Add a pass that checks for unreachable alt arms 2011-07-25 13:52:59 +02:00
Michael Sullivan
c4bcd0a44d Move collect_upvars into its own file. 2011-07-19 12:01:13 -07:00
Patrick Walton
08eabde97b rustc: First stab at implementing interior vector concat in the DPS engine 2011-07-18 17:43:24 -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
Eric Holk
827e300485 refactor: Move the task and communication-related translation functions to a new module. 2011-07-14 17:33:28 -07:00
Eric Holk
8afb1a7c63 refactor: Move the LLVM type and constant constructors into a new module. 2011-07-14 17:08:45 -07:00
Marijn Haverbeke
12d5532166 Use switches rather than chained conditionals to compile alt matches
This also moves the alt-related trans code into its own file.

Closes #467
2011-07-13 00:38:24 +02: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
Brian Anderson
d0a432f4bb Don't export tyencode from the metadata module
This involves pulling the type_abbrev cache out of crate_ctxt
2011-07-08 09:37:01 -07:00
Brian Anderson
7ae711fc03 Begin splitting metadata::decoder into decoding and crate search modules 2011-07-08 09:37:01 -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
Brian Anderson
e29ef1bec2 Refactor a few things in the metadata module
Rename metadata::tags to metadata::common. Move some utility functions from
metadata::encoder to metadata::common.
2011-07-07 13:31:11 -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
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
Brian Anderson
4165d3640a Add a pass to fold out items that do not belong in the current configuration
The parser needs to parse unconfigured items into the AST so that they can
make the round trip back through the pretty printer, but subsequent passes
shouldn't care about items not being translated. Running a fold pass after
parsing is the lowest-impact way to make this work. The performance seems
fine.

Issue #489
2011-06-30 10:06:26 -07:00
Brian Anderson
5de916dd5c Move middle::attr to front::attr 2011-06-30 10:06:26 -07:00
Brian Anderson
78a82b9fd1 Switch rustc's crate metadata to use the link attribute 2011-06-30 10:03:07 -07:00
Brian Anderson
0608e277b6 Add some helper functions for attributes. Issue #487 2011-06-28 15:25:47 -07:00
Paul Stansifer
c3901cdf8e Add simple syntax extension (#simplext) 2011-06-28 15:02:12 +00:00
Paul Stansifer
b632681780 Add AST fold. 2011-06-28 15:02:12 +00:00
Brian Anderson
a72481f90b Rename metadata::defs to metadata::tags 2011-06-27 16:43:50 -07:00
Brian Anderson
55944f4e7f Don't export some of the metadata modules 2011-06-27 16:38:57 -07:00
Brian Anderson
df2cfac07f Move what's left of metadata::cwriter into middle::trans 2011-06-27 16:30:27 -07:00
Brian Anderson
119193497e Extract metadata::decoder from metadata::creader 2011-06-27 16:30:27 -07:00
Brian Anderson
a3a2cc3d98 Extract metadata::tydecode from metadata::creader 2011-06-27 16:30:27 -07:00