Commit Graph

280 Commits

Author SHA1 Message Date
Marijn Haverbeke
a045514477 Start making the standard-lib utf-8 aware
Finally implements _str.is_utf8, adds from_chars, from_char, to_chars,
char_at, char_len, (push|pop|shift|unshift)_char. Also, proper
character I/O for streams.
2011-03-25 08:22:52 -07:00
Graydon Hoare
4e49ca8abd Start hooking resolve into creater. 2011-03-24 17:37:32 -07:00
Patrick Walton
af3d0d1848 rustc: Open "use"d crates; add a _vec.vec_from_buf() method along the way; XFAIL use-import-export.rs in rustc 2011-03-24 17:22:07 -07:00
Graydon Hoare
86f1ace55b Teach creader about reading ty_float, and trim trailing whitespace. 2011-03-24 11:50:45 -07:00
Lindsey Kuper
0b63512f4c Support for 'float' in type signatures. 2011-03-23 16:01:29 -07:00
Tim Chevalier
23e23bd762 Further support for floating-point. Literals with exponents work
and literals with the 'f32' or 'f64' suffixes work as well. In
addition, logging things with the f32 or f64 type works. (float is
still assumed to be a synonym for f64).
2011-03-22 17:31:27 -07:00
Tim Chevalier
caa22c9341 Started adding support for floating-point type, floating-point literals, and logging of floats. Other operations on float probably don't work yet. 2011-03-21 18:10:34 -07:00
Patrick Walton
3dec5b5e50 rustc: Remove uses of Unicode in type deserialization and fix vector-push operations 2011-03-21 12:03:34 -07:00
Patrick Walton
84c0d8638e rustc: Update type serialization and deserialization for the "mutable?" change 2011-03-21 11:44:08 -07:00
Marijn Haverbeke
86d05655b4 rustc: Merge in type serialization and deserialization
Signed-off-by: Patrick Walton <pcwalton@mimiga.net>
2011-03-21 11:35:04 -07:00
Graydon Hoare
4b946cea35 Modify native_item_fn to handle trailing linkage names that differ from the item name (used in win32 build of std.dll) 2011-03-20 20:18:19 -07:00
Patrick Walton
8b82a549bf rustc: When encountering "mutable" as a tycon, parse it, drop it on the floor, and emit a warning 2011-03-18 13:44:54 -07:00
Patrick Walton
2ef9c01ffc rustc: Implement "mutable?". Add a test case and XFAIL it in rustboot for now. 2011-03-18 11:49:47 -07:00
Patrick Walton
5eca7129e3 rustc: Switch mutability from being a type constructor to a field annotation 2011-03-17 17:39:47 -07:00
Patrick Walton
ed96688be5 rustc: Typo: mutabliity -> mutability 2011-03-17 16:39:10 -07:00
Graydon Hoare
54587bdccb Switch all vases of vec += elt to vec += vec. Prohibit former in rustboot. Tweak std lib vec fns in process. 2011-03-16 14:58:02 -07:00
Rafael Ávila de Espíndola
e65e1716a7 Revert 6fdb81fa17, it is causing failures in
the bots.
2011-03-16 11:46:51 -04:00
Patrick Walton
1d8b0e8f8a rustc: Remove the memory-managed interface to LLVM memory buffers; passing them around transfers ownership 2011-03-15 18:08:30 -07:00
Patrick Walton
6fdb81fa17 rustc: Open "use"d crates with the LLVM object file reader 2011-03-15 18:05:29 -07:00
Patrick Walton
71b6e602c5 rustc: Add an annotation for the crate definition to view_item_use 2011-03-15 17:33:05 -07:00
Patrick Walton
7d32f3d052 rustc: Add a stub crate reader module for "use" directives 2011-03-15 16:30:43 -07:00
Graydon Hoare
7f5bffc3ea Merge remote branch 'brson/recursive-elseif' 2011-03-14 16:59:04 -07:00
Brian Anderson
a309f74a94 Reorganize evaluation of expr_send/recv to put them closer to expr_assign, to which they are similar 2011-03-14 16:41:46 -07:00
Brian Anderson
f0842030f3 Fix typo in expr_recv parsing 2011-03-14 16:41:46 -07:00
Brian Anderson
7464237256 Add folding and type checking for ports and chans 2011-03-14 16:41:46 -07:00
Brian Anderson
292dac644f Parse receive expressions 2011-03-14 16:41:46 -07:00
Brian Anderson
80e0ebaa86 Parse port and chan types, constructors, send statements 2011-03-14 16:41:46 -07:00
Marijn Haverbeke
441697ab35 Extend stream functionality
Writer and reader streams now come with methods to write and read
little-endian numbers. Whether that is the right place for such
methods is debatable, but for now, that's where they live.
2011-03-14 14:57:13 -07:00
Marijn Haverbeke
c731d625fe Add basic file-system functionality
std.fs.list_dir will list the files in a directory, std.fs.file_is_dir
will, given a pathname, determine whether it is a directory or not.
2011-03-14 14:57:13 -07:00
Brian Anderson
bbb6836da0 Merge branch 'master' into recursive-elseif
Conflicts:

	src/comp/middle/typeck.rs
2011-03-13 19:40:25 -04:00
Graydon Hoare
ec7e84ae0d Preserve crate directives in the parsed crate. 2011-03-11 15:49:56 -08:00
Rafael Ávila de Espíndola
74d891517b reindex the block index. 2011-03-11 17:35:33 -05:00
Rafael Ávila de Espíndola
28d51e3fd2 Add support for indexing tags in blocks. 2011-03-11 17:12:25 -05:00
Rafael Ávila de Espíndola
0117cf2fc2 Handle resolving to native modules. 2011-03-10 21:33:53 -05:00
Patrick Walton
7454b53411 rustc: Build up a list of upvars inside foreach bodies 2011-03-10 16:49:00 -08:00
Rafael Ávila de Espíndola
4ca0259b20 Update the current id when we create sub parsers. 2011-03-10 17:36:41 -05:00
Graydon Hoare
0d3cec71a3 Fix eval typo (caught by Martin Hock). 2011-03-10 10:17:10 -08:00
Patrick Walton
4654faa67c rustc: Add a slot for explicit type parameter instantations to the typechecker's AST annotation 2011-03-08 12:42:56 -08:00
Brian Anderson
fa2525a7bd Remove old pretty-printer from rustc 2011-03-07 22:06:07 -05:00
Brian Anderson
9fc4db6b89 Merge branch 'master' into recursive-elseif
Conflicts:

	src/Makefile
	src/comp/front/ast.rs
	src/comp/front/parser.rs
	src/comp/middle/fold.rs
	src/comp/middle/trans.rs
2011-03-07 21:21:01 -05:00
Graydon Hoare
df3038e68b Parse opacity (and drop on the floor), so std.rc parses now. 2011-03-07 15:38:20 -08:00
Marijn Haverbeke
0624f9db4a Add a pretty-printer
Adds a -pp option to the compiler which will cause it to simply
pretty-print the given file.
2011-03-07 12:58:08 -08:00
Graydon Hoare
90f299e710 Permit view items in native modules. 2011-03-07 11:48:43 -08:00
Graydon Hoare
dfa85968c3 Stage the last compile fix to put out fire. Thanks git. 2011-03-07 10:33:04 -08:00
Graydon Hoare
44bceb84a7 Complain on unexpected native symbol, rather than failing with none-exhaustive match. 2011-03-07 10:02:01 -08:00
Marijn Haverbeke
1ce6cfbe7c use a precedence table for operator parsing 2011-03-07 15:32:11 +01:00
Brian Anderson
d39da6f978 Remove typestate workarounds 2011-03-06 15:13:35 -08:00
Graydon Hoare
d97c800e31 Make ret and fail stmts have 0 out-edges, Closes #250. 2011-03-05 20:05:02 +00:00
Graydon Hoare
596face274 Parse (and generally ignore) constraints and constrained types. 2011-03-04 14:19:48 -08:00
Graydon Hoare
02dff96b52 Parse meta directives in crates. 2011-03-04 11:28:40 -08:00
Brian Anderson
5876da00cf Remove some erroneous FIXMEs from #fmt parser 2011-03-02 22:05:19 -05:00
Graydon Hoare
fc722b17c9 Comment-out some logging chatter in extfmt. 2011-03-02 13:53:08 -08:00
Graydon Hoare
9e4943c922 Parse, add to AST, and otherwise ignore 'export' view items. Need to add support to resolve. 2011-03-02 13:50:42 -08:00
Brian Anderson
012c2d18d0 Finish #fmt string parsing. Completely untested. 2011-03-02 10:28:15 -08:00
Brian Anderson
4bc9052e13 Add debug logging for #fmt conv. Implement peek_num fn 2011-03-02 10:28:15 -08:00
Brian Anderson
77a0dc06a7 Whitespace cleanup 2011-03-02 10:28:15 -08:00
Brian Anderson
dbd90996ee Remove unused is_ext_expr 2011-03-02 10:28:15 -08:00
Brian Anderson
c1e6f5328c Make the expanded expression in expr_ext not optional 2011-03-02 10:28:15 -08:00
Brian Anderson
7cef1b3a0f Add pretty printing for expr_call, expr_path, and more literals 2011-03-02 10:28:14 -08:00
Brian Anderson
41a043303a Remove debug logging from extfmt 2011-03-02 10:28:14 -08:00
Brian Anderson
61edf544a2 Implement #fmt conversion for int and uint 2011-03-02 10:28:14 -08:00
Brian Anderson
f9144d5972 Start generating AST nodes for #fmt 2011-03-02 10:28:14 -08:00
Brian Anderson
1badf9316a Begin an AST pretty-printer 2011-03-02 10:28:14 -08:00
Brian Anderson
5e06ec977f Rewrite expand_syntax_ext to avoid a mysterious memory leak 2011-03-02 10:28:14 -08:00
Brian Anderson
fe5de6bfff Parse parameter types for fmt extension 2011-03-02 10:28:14 -08:00
Brian Anderson
1c60399257 Begin work on #fmt parsing 2011-03-02 10:28:14 -08:00
Brian Anderson
9528c34774 Begin implementing #fmt in rustc 2011-03-02 10:28:14 -08:00
Graydon Hoare
64ab5eaaf0 Parse (and ignore) dtors on objs. 2011-03-01 17:33:17 -08:00
Graydon Hoare
7cae0c8c4d Implement the gross rustboot hack for contextual parser access to the compilation environment. 2011-03-01 16:50:32 -08:00
Graydon Hoare
348c77c31b Populate default compilation environment as in rustboot. 2011-03-01 15:57:55 -08:00
Graydon Hoare
7a6ac1c000 Fix typo in crate directive evaluator. 2011-02-25 15:43:50 -08:00
Rafael Ávila de Espíndola
081c3aa76d Pass the abi of native functions all the way to codegen. 2011-02-25 15:58:08 -05:00
Rafael Ávila de Espíndola
f8f6f078c5 There are no native iterators (or at least they are not going to be supported
soon.).
2011-02-25 12:08:21 -05:00
Graydon Hoare
88f0463c2b Support the awful alt-else form in rustboot's cexp grammar, at least transiently. Remove in the future. 2011-02-24 17:17:39 -08:00
Graydon Hoare
dbf53b4c37 Connect the crate and source parsers together. 2011-02-24 17:00:24 -08:00
Graydon Hoare
9acf4b9127 Handle the mutant 'let'-block directive in rustboot, temporarily. 2011-02-24 16:42:04 -08:00
Graydon Hoare
b2a09562a6 Factor crate expr evaluator out of parser, expand to simple scalars and ops, if, alt. 2011-02-24 15:55:10 -08:00
Graydon Hoare
127139aecd Parse crate directive tree in one pass, then evaluate it in a second. 2011-02-24 12:14:05 -08:00
Graydon Hoare
381684043f Add a type for crate directives, to support intermixing with exprs in crate files. 2011-02-23 14:37:39 -08:00
Graydon Hoare
c6bc5cce4b Parse auth clauses, drop them on the floor. Nothing exists to use them yet anyways. 2011-02-23 13:28:46 -08:00
Rafael Ávila de Espíndola
5f6110a4db Use the computed abi :-( 2011-02-23 14:10:02 -05:00
Rafael Ávila de Espíndola
ffcb461370 Parse the abi in native modules. 2011-02-23 14:06:37 -05:00
Brian Anderson
eac75b7648 Teach rustc about reserved keywords 2011-02-22 21:52:23 -05:00
Brian Anderson
c4df39609c Rename std._io to std.io since 'io' is no longer a keyword 2011-02-22 21:52:23 -05:00
Graydon Hoare
34c60b6edb Make a tag for iterness / fnness, teach many places about it. 2011-02-18 17:30:57 -08:00
Rafael Avila de Espindola
012fa69ea5 More typechecking for native types and the needed plumbing in codegen. 2011-02-16 14:02:02 -05:00
Graydon Hoare
9ae89bd404 Add _mutable unop. 2011-02-15 12:20:30 -08:00
Graydon Hoare
2bba49a9fe Fix missing path in expr_ext. 2011-02-15 12:20:13 -08:00
Graydon Hoare
4a72a23171 Add basic front-end support for 'for each' loops. 2011-02-14 18:17:31 -08:00
Graydon Hoare
15a01f5c36 Add basic front-end support for expr_put. 2011-02-14 17:58:32 -08:00
Graydon Hoare
f1f33abdeb Move all non-decl/non-expr stmts to exprs. 2011-02-14 17:46:28 -08:00
Graydon Hoare
88cb966363 Adjust commented-out diagnostic log statement in parser.rs. 2011-02-14 16:35:08 -08:00
Graydon Hoare
890d027b65 Add parse support for expr_ext. 2011-02-14 16:33:25 -08:00
Graydon Hoare
59bce06a96 Expand expr_rec to take its optional trailing 'with' parameter. 2011-02-14 15:52:38 -08:00
Graydon Hoare
c89460bb65 Support indexing pat_lit. 2011-02-10 19:04:37 -08:00
Graydon Hoare
a396652766 Add pat_lit to ast, and support parsing it. 2011-02-10 18:59:23 -08:00
Graydon Hoare
b59d98ccb9 Parse effects and layers in a couple contexts; drop on floor as we have nowhere to put them yet. 2011-02-10 18:58:58 -08:00
Brian Anderson
f17a3421e0 Cleanup for 'be' statement and comments about future typestate 2011-02-10 12:12:10 -08:00
Brian Anderson
378c0087ca Parse 'be' statement. Pass tailcall tests. No actual tailcalls yet. 2011-02-10 12:12:10 -08:00
Rafael Avila de Espindola
3e613c1648 Add native modules to resolve. With this hello world gets to typecheck. 2011-02-07 15:07:27 -05:00