Ralph Giles
11d2af72cf
Fix a typo in the previous commit.
2010-10-20 16:40:39 -07:00
Ralph Giles
83cc297561
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.
2010-10-20 15:59:01 -07:00
Ralph Giles
8af7360bd3
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.
2010-10-20 14:36:40 -07:00
Ralph Giles
b606b65756
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.
2010-10-19 12:05:22 -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
Patrick Walton
e129a9b4ce
Use the user-defined type aliases when reporting type errors
2010-10-13 15:14:04 -07:00
Patrick Walton
5c622b6ecb
rustc: Lex identifiers that have numbers in them too
2010-10-13 11:02:56 -07:00
Patrick Walton
d50d481529
rustc: Parse vector types
2010-10-13 10:55:20 -07:00
Patrick Walton
b7e6d9895e
First stab at a Vim syntax highlighter for Rust
2010-10-13 10:43:19 -07:00
Graydon Hoare
69ae63d4b0
Fix horribly embarassing signedness bug in backend, plus related regressions.
2010-10-12 16:51:27 -07:00
Patrick Walton
81a43ef698
rustc: Add mutability to tuple literals
2010-10-12 16:30:44 -07:00
Patrick Walton
b1ca4da3b3
rustc: Parse box types
2010-10-12 14:54:49 -07:00
Patrick Walton
a41aa5595b
rustc: Parse tuple types
2010-10-12 14:15:59 -07:00
Graydon Hoare
beb4c07e26
Git index wins again.
2010-10-12 12:28:46 -07:00
Graydon Hoare
76f7b043bc
Changes to make rustboot compile on OCaml 3.12
2010-10-12 12:16:35 -07:00
Patrick Walton
0415841504
rustc: Add the tuple type to the AST
2010-10-11 18:42:10 -07:00
Patrick Walton
c9afe78c0c
Parse autos
2010-10-11 18:20:25 -07:00
Patrick Walton
8a7a0308e3
rustc: Parse lets
2010-10-11 18:13:14 -07:00
Patrick Walton
a2c9879442
rustc: Say "expected expression" instead of "expected literal" when we expect an expression
2010-10-11 17:21:36 -07:00
Patrick Walton
5177898db1
Use new and delete instead of alloca(). Should put out the burning tinderbox.
2010-10-11 17:11:59 -07:00
Patrick Walton
94cec74096
Try to print backtraces on failure
2010-10-11 16:40:18 -07:00
Patrick Walton
99086292ac
Bind labels explicitly in fe/cexp.ml. Should fix issue #169 .
2010-10-11 10:51:57 -07:00
Graydon Hoare
594cf63214
Remove obsolete comment, issue was fixed with last checkin.
2010-10-10 00:17:41 -07:00
Graydon Hoare
caaf8679d8
Teach bind to actually bind typarams, as it claims to.
2010-10-10 00:14:26 -07:00
Graydon Hoare
9fc963842d
Subject copying code to inline heuristic, cut 30kb from rustc.
2010-10-09 01:35:50 -07:00
Graydon Hoare
a441865f6e
Actually do what I meant to in the inline threshold. Don't drink and code. Cut rustc by 50kb.
2010-10-09 01:02:13 -07:00
Graydon Hoare
967a6f861d
Elide mark and sever glue in -minimal mode.
2010-10-09 00:47:02 -07:00