Commit Graph

92632 Commits

Author SHA1 Message Date
Graydon Hoare 05c9d885dd Change vec slice to use uint, add push/pop/shift/unshift. 2010-10-22 11:46:04 -07:00
Graydon Hoare 3f80e79efc Add support for passing args to fns in rustc. 2010-10-21 18:13:57 -07:00
Graydon Hoare 67477b85ae Support basic function calls in rustc. 2010-10-21 17:24:26 -07:00
Graydon Hoare 3aaae2a881 Teach rustc to parse call exprs. 2010-10-21 16:42:02 -07:00
Ralph Giles eec259f625 Fix a typo in the previous commit.
(cherry picked from commit 11d2af72cf)
2010-10-21 16:06:47 -07:00
Ralph Giles 6b9a9a7874 Check the llvm version against a fixed list.
This change is thanks to Peter Hull, who independently resolved
the 2.8 vs 2.8svn issue this way. His patch checked the version
string against a fixed set of options, which is easier to read
and simpler to adjust in the future.
(cherry picked from commit 83cc297561)
2010-10-21 16:06:39 -07:00
Ralph Giles c3879c19c2 Also search the bare ocaml standard library path for llvm bindings.
Ubuntu ships the llvm bindings in /usr/lib/ocaml/llvm/ but Fedora
is installing them directly in /usr/lib/ocaml so we need to check
there as well.

The patch is untested; Fedora 14, the current beta, includes llvm 2.7.
It does add an unnecessary -I directive, but should at least have a
better chance of working on Fedora 15.
(cherry picked from commit 8af7360bd3)
2010-10-21 16:06:21 -07:00
Ralph Giles 45056fc022 Update llvm version detection for the 2.8 release.
The LLVM project recently released version 2.8, and updated
the SVN tree version to 2.9svn, obsoleting the simple check
for 'llvm-config --version' returning 2.8svn.

With this commit we instead check for the substrings 2.8 and 2.9
in the output of 'llvm-config --version', since we (currently)
support both the svn and released varieties of those versions.

A stable release also complicates our check for the ocaml bindings.
Previously we looked in `llvm-config --libdir`/ocaml which is
appropriate for local compiles, but distribution packagers are
likely to put the bindings in the default search path, e.g.
/usr/lib/ocaml/llvm. We now fall back to trying variations on
the standard library path returned by 'ocamlc -config' if we
don't find it under 'llvm-config --libdir'.

With this change, rust builds against LLVM 2.8 as packaged
in Ubuntu 10.10 as well as LLVM 2.9svn compiled locally.
(cherry picked from commit b606b65756)
2010-10-21 16:06:15 -07:00
Graydon Hoare a7599a7968 De-burninate tree. 2010-10-21 15:02:05 -07:00
Dave Herman 6421c13157 eliminated bitv.test, which now lives in test/run-pass 2010-10-21 13:34:16 -07:00
Dave Herman dbe27199b8 line length police; moved comp.util.bits to std.bitv 2010-10-21 11:39:53 -07:00
Patrick Walton 194f38fdff rustboot: Don't use ridiculous type names when describing simple types like int and uint 2010-10-21 11:31:04 -07:00
Patrick Walton a7840f02b0 Use "friendly" type names when reporting a "mismatched type-params" error 2010-10-21 11:14:38 -07:00
Dave Herman 852c0d6631 oops, removed bits.test() from main 2010-10-21 08:06:44 -07:00
Dave Herman da8b6795c7 tests and bugfixes: fns take aliases, fixed binary arithmetic in create, eliminated wasted bit per uint 2010-10-21 07:36:13 -07:00
Dave Herman ce3224652f simpler computation of uint_bits(), plus whitespace police 2010-10-20 22:04:19 -07:00
Patrick Walton 9a539a5dd1 Move the "friendly" type printer to semant 2010-10-20 17:58:55 -07:00
Dave Herman 8f71dad2c9 created a first draft of the bit-set library needed for typestate 2010-10-20 17:04:15 -07:00
Patrick Walton 11deb2f5f1 Eliminate <tag#> stuff from the "friendly" type errors 2010-10-20 15:36:30 -07:00
Patrick Walton 4bb675ba42 Print better error messages when the number of type params is wrong 2010-10-20 11:22:44 -07:00
Patrick Walton 28d43678b6 Add a virtual destructor to rust_thread in sync.h, to quiet the compiler 2010-10-20 10:32:36 -07:00
Graydon Hoare 368943998d Translate lazy && and || operators in rustc. 2010-10-19 17:24:15 -07:00
Graydon Hoare 71b1f1d117 Parse and translate assignments. 2010-10-19 16:33:11 -07:00
Graydon Hoare b8cca0971f Teach trans to allocate, initialize and load from local variables. 2010-10-19 14:54:10 -07:00
Patrick Walton 10d628dbd0 Add a type slot to the AST 2010-10-19 13:28:43 -07:00
Patrick Walton e497fe981b Partial work on adding types to the AST 2010-10-19 13:10:39 -07:00
Graydon Hoare 4a3edb320d Store items and decls in vecs to preserve input order, index externally. Implement block-local name lookup. 2010-10-18 18:19:16 -07:00
Graydon Hoare 865bbae685 More work on resolving names in rustc. Basic expr_name lookup working on items and args. 2010-10-18 16:15:25 -07:00
Graydon Hoare 23a00fd092 Disable use of parametric tail call in map.rs, they don't presently work. 2010-10-18 16:04:47 -07:00
Graydon Hoare f747101b7c Rewrite session formatting to use #fmt extension. 2010-10-18 16:03:22 -07:00
Graydon Hoare 68321b0de8 Make list.find return an option of different type than the list element. 2010-10-18 16:02:59 -07:00
Graydon Hoare 67d4427345 Begin sketching name lookup in rustc. 2010-10-18 14:37:30 -07:00
Graydon Hoare 05e7374e29 Expand rustc's fold to update env on block boundaries. 2010-10-18 14:36:40 -07:00
Graydon Hoare 7801ba9dfe Make type errors in rustboot report the friendly type of both expected and actual. 2010-10-18 14:36:17 -07:00
Graydon Hoare 783be711f5 Flesh out the std.list module a touch. 2010-10-18 14:35:44 -07:00
Patrick Walton 1c3e95e0a5 Roll back the expr->lval change. We're now LL(1) again. 2010-10-18 11:31:31 -07:00
Graydon Hoare 57c7e94c8f Encode and decode tag types in dwarf properly. Add list module to std. Shift rustc to use std.util.option. Fix various dependent bugs. Closes #73. 2010-10-15 22:09:09 -07:00
Graydon Hoare fc2d4828e7 Finish the fold drivers in fold.rs. 2010-10-14 18:14:09 -07:00
Patrick Walton 5826a2e3de rustc: Parse field and vector indexing expressions 2010-10-14 17:42:06 -07:00
Graydon Hoare ff4e9f9141 Enable resolve pass in rustc. Doesn't do much yet aside from an incomplete identity fold, but no longer crashes. 2010-10-14 15:53:28 -07:00
Graydon Hoare 6993346e7d Stop using bound refs (don't work; leak) and work around auto-deref vec-append bug. 2010-10-14 15:52:42 -07:00
Graydon Hoare 5a51716790 Fix mem += mem bug in vec-append. 2010-10-14 15:51:54 -07:00
Graydon Hoare 09b12d167f Fix typos in Type.friendly_stringify. 2010-10-14 15:27:50 -07:00
Patrick Walton 699ef987d7 rustc: Start work on lvals 2010-10-14 15:20:27 -07:00
Patrick Walton c7ab80f743 Typecheck tags in "alt" patterns 2010-10-14 15:08:19 -07:00
Graydon Hoare f234750d80 Fix crasher in rustc. 2010-10-14 12:41:48 -07:00
Graydon Hoare 668f3a90a8 Move the friendly-names table to semant, reuse it in the name mangler. 2010-10-13 17:15:25 -07:00
Graydon Hoare 52c2a1549c Fetch typarams from the outermost item frame, when inside an iter-block. One less crash in rustc. 2010-10-13 15:53:38 -07:00
Patrick Walton 1e19fc969e Use "friendly" types throughout the typechecker 2010-10-13 15:34:18 -07:00
Patrick Walton 45a61b5191 Don't run tidy inside etc/. Should put out the burning tinderbox. 2010-10-13 15:21:42 -07:00