Patrick Walton
429964b439
Merge branch 'gcc-4.5.1' of http://github.com/rillian/rust
2010-10-28 10:52:59 -07:00
Ralph Giles
3b3cd550d4
Cast NULL to uintptr_t when calling rust_task::start().
...
On gcc 4.5.1 (fedora 14 i686) rust_test_runtime.cpp fails to compile
with the following error:
rt/test/rust_test_runtime.cpp:57:61: error: passing NULL to non-pointer argument 3 of ‘void rust_task::start(uintptr_t, uintptr_t, uintptr_t, size_t)’
The explicit cast works around the error.
2010-10-28 10:13:30 -07:00
Patrick Walton
679dca8541
Emit a sensible error message if one or more of the parameters isn't enough context to instantiate a polymorphic function
2010-10-27 15:06:19 -07:00
Patrick Walton
b3c4c1426a
rustboot: Emit an error message instead of asserting on a type-param mismatch in tag constructors in patterns
2010-10-27 11:29:19 -07:00
Patrick Walton
3d0da75455
rustboot: For error reporting, map tag IDs to *tag* names, not to tag *variant* names
2010-10-26 15:37:49 -07:00
Patrick Walton
7e3c662b4f
rustboot: Use a less hacky method to report tag names in error messages, which works for resolve errors as well
2010-10-26 14:52:31 -07:00
Patrick Walton
7ed8b781d5
Thread a source location though for type error reporting instead of the awful "List.hd scopes" hack
2010-10-25 18:16:34 -07:00
Patrick Walton
af39e222bc
Merge commit '1875a36feecb7dab183a59ead2d0a342f733422e'
2010-10-25 17:58:41 -07:00
Patrick Walton
1875a36fee
Prevent Not_found in the unfortunate case when we have to "friendly_stringify" a tag type we haven't yet recorded into cx.ctxt_all_tag_info
2010-10-25 17:58:24 -07:00
Graydon Hoare
f3b7aa9068
Long line police.
2010-10-22 19:37:03 -07:00
Graydon Hoare
3bf775e80f
Pass outptr as in rustboot. Probably need to revisit this ABI. Also disgusting hack employed. Please remove.
2010-10-22 19:35:48 -07:00
Graydon Hoare
b2f07c6056
Collect all fns first so decl order doesn't matter to translation.
2010-10-22 19:31:33 -07:00
Graydon Hoare
d4497e481e
Extremely broken hacked-up incorrect attempt at 'ret'.
2010-10-22 19:23:10 -07:00
Graydon Hoare
a0867e0ccf
More fire-fighting.
2010-10-22 17:54:27 -07:00
Graydon Hoare
e5229b97d7
Don't use string == in x86.rs, doesn't work.
2010-10-22 17:27:22 -07:00
Graydon Hoare
cb254f3558
Merge branch 'master' of github.com:graydon/rust
2010-10-22 17:24:05 -07:00
Graydon Hoare
bd9a8fd57b
Attempt to extinguish burning tree.
2010-10-22 17:23:53 -07:00
Patrick Walton
05a3c5c0f3
rustc: Add an "_" prefix to assembler-generated symbols on Mac
2010-10-22 16:16:02 -07:00
Graydon Hoare
6d47d2abde
Implement check-exprs, un-xfail 5 rustc tests.
2010-10-22 15:37:42 -07:00
Patrick Walton
fc8b5155a8
rustboot: If the user tries to instantiate a non-parametric type with type parameters, report the location of the error
2010-10-22 15:12:48 -07:00
Graydon Hoare
6ec402d4a6
Add makefile bits to run rustc on the testsuite as part of 'make check'. Mostly xfailed.
2010-10-22 14:46:03 -07:00
Graydon Hoare
76dc0ae995
Match llvm xfails inside-out, to make life a little less painful.
2010-10-22 13:43:25 -07:00
Graydon Hoare
25263c9576
Make test targets in Makefile end in -boot.x86 or -boot.llvm when made by rustboot.
2010-10-22 12:12:01 -07:00
Graydon Hoare
36aea66e47
Give rustc the beginnings of an option-processing loop (at least -nowarn, -h and -o).
2010-10-22 11:47:28 -07:00
Graydon Hoare
74eda5bb70
Make append take a mutable &. Not even checked at present, tsk tsk.
2010-10-22 11:46:54 -07:00
Graydon Hoare
dd0d255737
Add some filename helpers to os.
2010-10-22 11:46:33 -07:00
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 11d2af72cf956cc28549cfd280ba40de1645eee7)
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 83cc297561a78ad13fcd1c2943f17ace81c725b8)
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 8af7360bd3de851668a133ae6ba4419e3722c6aa)
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 b606b65756f087c403180abd5418fe7dce469758)
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