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
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
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
Graydon Hoare
3e513008b1
More type-fold caches, shave another second off compile time.
2010-10-09 00:31:26 -07:00
Graydon Hoare
f956067867
Implement a -minimal mode prologue, cut 100kb from rustc.
2010-10-08 23:58:48 -07:00
Graydon Hoare
39f51b31df
Quad counters are revealing. Move drops out-of-line, cut 200kb from rustc.
2010-10-08 23:32:18 -07:00
Graydon Hoare
ef5a64e2cf
Add quad-counting system.
2010-10-08 23:25:37 -07:00
Graydon Hoare
71c266f937
Fix logging bug.
2010-10-08 23:17:29 -07:00
Graydon Hoare
81e791d7b9
Add a tag cache for the cases we can't avoid hitting fold; cut rustc compile time by 50%.
2010-10-08 17:43:46 -07:00
Graydon Hoare
97a6b0935b
More fold caches, cut rustc compile time by 60% again.
2010-10-08 15:56:17 -07:00
Graydon Hoare
f1e2c379cb
Cache referent-type calculations in rustboot; cut rustc compile time by 60%.
2010-10-08 15:17:27 -07:00
Graydon Hoare
5f2459145c
Add -lpath mechanism for logging only a subset of a pass (by module-path prefix)
2010-10-08 14:54:51 -07:00
Patrick Walton
e3758fe321
rustc: Make functions output a type, not a slot
2010-10-08 12:26:34 -07:00
Graydon Hoare
785d9b1594
Add a little code to resolve, to check that the fold interface works.
2010-10-07 18:34:22 -07:00
Graydon Hoare
facc5f8826
Make minimal-mode slightly less aggressive.
2010-10-07 18:21:06 -07:00
Graydon Hoare
b184be07e1
Revise folds to be much-less-polymorphic after some discussion; flesh out stmt and expr fold drivers.
2010-10-07 16:42:48 -07:00
Graydon Hoare
e553ab9fc0
Simplify type-mismatch messages.
2010-10-07 13:15:38 -07:00
Graydon Hoare
fa5ef4cfb6
Add the beginnings of an ast folder plus an empty module for resolve.
2010-10-06 18:36:28 -07:00
Graydon Hoare
5f2d35ed08
Make ast node box uses more uniform in rustc.
2010-10-06 15:41:14 -07:00
Graydon Hoare
8ecbe49a8f
Add -minimal mode to rustboot that skips emitting code that's broken or unneeded for rustc. Shrink rustc by 300kb. Back under 1mb.
2010-10-05 18:44:39 -07:00
Graydon Hoare
d1e59d6910
Add input coordinate tracking to all major rustc ast nodes.
2010-10-05 18:21:44 -07:00
Graydon Hoare
4168c1dcda
Add -lpasses for logging just the progress of passes.
2010-10-05 18:10:33 -07:00
Graydon Hoare
cdf67b1f2e
Better backpointer logic.
2010-10-05 18:09:49 -07:00
Patrick Walton
246e72b0fb
Use RTLD_GLOBAL when loading libraries. This is needed to get LLVM working on the Mac in rustc.
2010-10-05 11:37:46 -07:00
Graydon Hoare
19d0fa107a
Improve name nodes to ast, teach to parse qualified names, put out flaming tinderbox.
2010-10-04 17:25:52 -07:00
Graydon Hoare
44e4b2d63a
Teach rustc about phi nodes, block relationships. Translate if- and block-expressions.
2010-10-04 15:55:12 -07:00
Graydon Hoare
a87e81b929
Support refcount-drop and conditional free in rustc.
2010-10-01 18:25:42 -07:00
Graydon Hoare
d07f7533b0
Sketch out #fmt syntax extension in rustboot.
2010-10-01 14:54:40 -07:00
Graydon Hoare
2e0d075407
Fix bug in bind thunks failing top drop unbound args; add test and adjust rustc to use bind again.
2010-09-30 17:39:37 -07:00
Graydon Hoare
62c224ffe4
Drop slots on block exits even when blocks have no statements. Part way to fixing bind leakage in rustc.
2010-09-30 16:10:30 -07:00
Peter Hull
f6e3e6903b
Initial check-in of 99 Bottles Of Beer
...
using different methods (simple, iterator, tail-call, pattern match)
2010-09-30 13:50:25 -07:00
Or Brostovski
4a3404803b
implemented break for while-loop case
...
ast.ml - added break and cont statements
item.ml - added break and cont statements
lexer.mll - added break and cont statements
token.ml - added break and cont statements
trans.ml - implemented the break statement for the while-loop case
- replaced hash table accesses with get_stmt_depth where needed
type.ml = added break and cont statements
typestate.ml - implemented the break statement for the while-loop case
- added shorthand filter_live_block_slots
walk.ml - added break and cont statements
while-with-break.rs - code for testing while loops
2010-09-30 13:45:57 -07:00
Or Brostovski
74cb9508cd
Closed issue 154 - prevents compiler from compiliing a line to zero statements
2010-09-30 13:40:34 -07:00
Graydon Hoare
b970563fe3
Patchwork of attempted fixes to effect system and gc system; eventually give up and disable it entirely in the runtime. Will need extensive reworking.
2010-09-29 17:22:13 -07:00
Patrick Walton
7e733bf2ee
Allow tag recursion through vectors as well as boxes
2010-09-29 16:58:42 -07:00
Graydon Hoare
f13306e8d6
Switch boolean operands to 1-bit, as llvm prefers. Will promote to 8-bit when storing to memory.
2010-09-28 16:17:28 -07:00
Graydon Hoare
5a4cb3ef36
Translate a modest selection of easy binops.
2010-09-28 14:01:21 -07:00
Graydon Hoare
11e72fd4e0
Translate literal int, char, bool and str types, as well as logging them.
2010-09-28 12:23:40 -07:00
Graydon Hoare
fbea4d04b7
More rustc expr-parsing logic.
2010-09-28 10:30:34 -07:00
Graydon Hoare
5b4b035c7a
Start building up the expression tower.
2010-09-27 18:25:02 -07:00
Graydon Hoare
f5787ed80c
Translate exit-task glue such that rustc's output programs exit properly.
2010-09-27 15:38:34 -07:00
Graydon Hoare
a2f4d9089a
Fix indexing bug in rustc's indirect-upcall arg-copying loops.
2010-09-27 14:42:58 -07:00
Graydon Hoare
d31eca41d5
First linkable and executable translation from rustc. Upcalls to log, passes wrong arg, crashes. Baby steps.
2010-09-27 13:43:53 -07:00
Graydon Hoare
d53209c927
Construct the crate constant in rustc.
2010-09-24 16:41:01 -07:00
Graydon Hoare
b69a0c137c
Modify the task type to not contain any opaques; apparently these make LLVM cross.
2010-09-24 15:22:48 -07:00
Graydon Hoare
4cfc4250bf
More work on trans, almost getting to the point of emitting an upcall.
2010-09-24 14:56:04 -07:00
Graydon Hoare
6b412be619
Wrap long line.
2010-09-23 18:42:49 -07:00
Graydon Hoare
274128c6b2
Add trans.get_upcall and skeleton for trans_log.
2010-09-23 18:38:37 -07:00
Graydon Hoare
730439c508
Improve LLVM builder wrapper-object.
2010-09-23 18:38:09 -07:00
Graydon Hoare
2db1f864e2
Declare the global and upcall glues as ValueRefs in rustc's trans.
2010-09-23 17:16:34 -07:00
Graydon Hoare
bba4cae1b8
Resolve constant types through to their definitions.
2010-09-23 17:11:30 -07:00
Graydon Hoare
46e46d0b49
Translate a bunch of the material (lltrans, llasm, abi) from rustboot to rustc, and move files around.
2010-09-23 15:46:31 -07:00
Graydon Hoare
2c514f33f2
More fleshing-out on rustc.me.trans. Emitting modules and fns corresponding to parsed input now.
2010-09-23 13:15:51 -07:00
Graydon Hoare
04a55df54b
Flesh out rustc.me.trans to construct functions, basic blocks and builders off the AST.
2010-09-22 17:05:38 -07:00
Graydon Hoare
4d17283371
Add 'items' iter to hashmap.
2010-09-22 17:04:08 -07:00
Graydon Hoare
2880ecd73f
Reformat standard library; no code changes.
2010-09-22 15:44:13 -07:00
Graydon Hoare
738fe078a4
Move llvm-using code in rustc to trans module.
2010-09-22 15:27:40 -07:00
Graydon Hoare
e0f682e5fb
Add some basic string functions: index, rindes, find, substr, split, concat, connect.
2010-09-22 15:27:40 -07:00
Graydon Hoare
fc6f307787
Fix linear for loops on strings to not hit trailing null.
2010-09-22 15:27:35 -07:00
Graydon Hoare
913882de7f
Make deps via temps, to avoid syntax errors wedging deps.
2010-09-22 15:27:24 -07:00
Graydon Hoare
264c765931
Revert "Make recursive type verification logic better by allowing it to see through multiple levels of indirection. Still can trigger "unexpected OpaqueTy" bugs, but that's better than infinite loops."
...
This reverts commit 751a47cc5a
.
Broken build.
2010-09-22 10:57:58 -07:00
Patrick Walton
751a47cc5a
Make recursive type verification logic better by allowing it to see through multiple levels of indirection. Still can trigger "unexpected OpaqueTy" bugs, but that's better than infinite loops.
2010-09-21 19:15:47 -07:00
Patrick Walton
742b1c5793
Report an error instead of asserting when an item name is already in use
2010-09-21 17:38:47 -07:00
Graydon Hoare
1f0621d04e
Begin teaching rustc to parse literals, atoms, stmts, blocks, items, modules, crates.
2010-09-21 16:22:32 -07:00
Graydon Hoare
8beb118df4
Add insn-selection fixup-name logging.
2010-09-21 16:21:30 -07:00
Graydon Hoare
b549721a2e
Tighten pattern parsing on 0-ary constructors.
2010-09-21 16:18:47 -07:00
Graydon Hoare
9f0a6c21b2
Implement preliminary form of structured compare. No boxes, vectors or strings yet.
2010-09-21 11:47:10 -07:00
Graydon Hoare
72cc89c8c3
Add QUES to comp/fe/lexer.rs, rustc can self-lex again.
2010-09-21 08:30:06 -07:00
Graydon Hoare
28b9357a0c
Kill residual dead code in Trans.iter_tag_parts. Shaves a couple kb off rustc.
2010-09-21 08:28:19 -07:00
Graydon Hoare
71d49a20a7
Skip 0-ary tag ctors in Trans.iter_tag_parts. Rustc loses 150kb.
2010-09-21 00:13:59 -07:00
Graydon Hoare
c5f4789d5b
Bind pattern slots with ?, drop parens from 0-ary tag constructors, translate 0-ary constructors as constants. Rustc loses ~300kb.
2010-09-20 23:56:43 -07:00
Graydon Hoare
acdec30149
Wrap long lines.
2010-09-20 20:46:44 -07:00
Graydon Hoare
c17964c06d
Use name_base in plval base.
2010-09-20 20:19:22 -07:00
Roy Frostig
dda16f807c
Add issue #163 testcase to str-append testcase.
2010-09-20 17:42:14 -07:00
Roy Frostig
3c3421e01d
When translating vec-append, delay destination string's null-byte-accounting length decrement until the destination string has already been resized. Closes #163 .
2010-09-20 17:26:24 -07:00
Graydon Hoare
7ab3b305e4
Move id counters into sess in preparation for moving desugaring to middle-end.
2010-09-20 13:06:49 -07:00
Graydon Hoare
5536af3d48
Beginnings of post-resolve simplify pass.
2010-09-16 16:59:37 -07:00
Patrick Walton
bc03c82c79
Check for infinitely sized tags. Un-XFAIL test/compile-fail/infinite-tag-type-recursion.rs.
2010-09-16 16:24:19 -07:00
Patrick Walton
659d1e1b7d
Actually build the graph properly. Oops.
2010-09-16 16:20:00 -07:00
Patrick Walton
32103089d3
Create tag nodes for all the tags beforehand
2010-09-16 15:38:49 -07:00
Graydon Hoare
9dac49bcd6
Resolve plvals to their defns.
2010-09-16 15:04:40 -07:00
Patrick Walton
d92e30d773
Populate the tag containment relation
2010-09-16 14:21:24 -07:00
Graydon Hoare
c4c73e09f1
Add a pexp-rebuild phase to the type resolution pass in resolve.ml.
2010-09-16 12:34:07 -07:00
Patrick Walton
01a76e21a6
Better representation of tag containment, which will allow us to discern backreferences
2010-09-16 11:28:55 -07:00
Patrick Walton
a4a8bea3cc
Add ctxt_tag_containment to the Semant context
2010-09-16 11:06:41 -07:00
Patrick Walton
1676a389be
Switch the "expected" and "actual" types for function parameter mismatches
2010-09-16 10:26:20 -07:00
Patrick Walton
09793dd0c8
Not finding a name in a module isn't a bug, it's an error. Report it as such.
2010-09-16 10:26:19 -07:00
Michael Bebenita
1bd331b7aa
Fixed deadlock caused by the message pump not being notified of new message sends.
2010-09-16 00:51:03 -07:00
Graydon Hoare
91b4a0c9f8
Add beginnings of a fuzzer to rustboot.
2010-09-16 00:26:19 -07:00
Graydon Hoare
cd1a765c6f
Add Peter Hull's contributed translation of the fasta shootout benchmark (integer-only version).
2010-09-15 18:22:10 -07:00
Graydon Hoare
e270ab6fbf
Minor improvements to pretty-printer.
2010-09-15 18:14:14 -07:00
Graydon Hoare
e6729a66ec
Teach walk about plvals and pexps.
2010-09-15 17:44:57 -07:00
Graydon Hoare
5c82cb42e7
Add Ast.ATOM_pexp and -pexp mode wherein pexps live beyond parsing, into later stages. Fixes to pexp pretty printer.
2010-09-15 16:10:08 -07:00
Graydon Hoare
3350b17c60
Add pretty-printing for pexps.
2010-09-15 14:36:40 -07:00
Graydon Hoare
77beffc889
Add some form-judgements on plvals and pexps.
2010-09-15 12:29:45 -07:00
Graydon Hoare
c61d021f6d
Commence moving pexp into ast, for eventual merger with expr.
2010-09-14 18:59:14 -07:00
Graydon Hoare
b504b3f8d5
Begin actually folding constant items into operands at site of use.
2010-09-14 15:34:01 -07:00
Graydon Hoare
6cfeac162d
Translate const uses via runtime expression evaluation.
2010-09-14 11:44:25 -07:00
Graydon Hoare
a4a0c6ad1e
XFAIL const test on LLVM, of course.
2010-09-14 11:13:24 -07:00
Graydon Hoare
7287d3aaa0
Teach front-end about simple, first-cut version of const items.
2010-09-14 10:52:32 -07:00
Graydon Hoare
bc646d01c5
Fix leaking arg slots on tail calls. Closes #160 .
2010-09-13 13:37:24 -07:00
Graydon Hoare
67aa39e1ef
Fix a leak when box types are used via type descriptors.
2010-09-12 01:05:56 -07:00
Michael Bebenita
a493350eb5
Cleanup, refactoring, and some runtime tests.
2010-09-10 14:38:31 -07:00
Michael Bebenita
f985fded3e
Added lock_and_signal::signal_all(), and made the rust_kernel::join() use wait instead of yield.
2010-09-10 14:38:31 -07:00
Graydon Hoare
79dc07d648
Use hashtable rather than bitset for vreg constraints in ra; speeds compilation.
2010-09-09 18:56:51 -07:00
Graydon Hoare
a9e2327a18
Switch tags to purely nominal, removing TY_iso and TY_idx. Seems to mostly work, possibly a little bumpy. Changes a lot.
2010-09-09 15:59:29 -07:00
Michael Bebenita
c877f31730
Fixed lost signal notifications.
2010-09-08 22:20:31 -07:00
Michael Bebenita
743ca289b6
Cache task handles.
2010-09-08 21:25:16 -07:00
Graydon Hoare
616b7afb72
Tidy up the sync dir, remove dead or mis-designed code in favour of OS primitives, switch rust_kernel to use a lock/signal pair and wait rather than spin.
2010-09-08 19:13:49 -07:00
Graydon Hoare
13d6f87431
XFAIL many.rs since it crashes on win32, and add a time-slice sleep to the kernel message loop to get tests to finish in a sane time.
2010-09-08 15:48:18 -07:00
Patrick Walton
2172a3bcf4
First lame stab at solving the diamond import problem
2010-09-08 15:38:39 -07:00
Michael Bebenita
388f8ce520
Cleaned up locking in the kernel.
2010-09-08 15:17:09 -07:00
Graydon Hoare
37cc139607
XFAIL task-comm-8, see if this helps burning-tree.
2010-09-08 10:40:33 -07:00
Michael Bebenita
7f6d8b95bd
Fixed race in the rust kernel.
2010-09-07 23:37:51 -07:00
Michael Bebenita
de611a3090
Lots of design changes around proxies and message passing. Made it so that domains can only talk to other domains via handles, and with the help of the rust_kernel.
2010-09-07 18:44:12 -07:00
Michael Bebenita
a6aebdaedd
Started work on a framework for writing runtime tests, added some simple test cases.
2010-09-07 18:41:08 -07:00
Michael Bebenita
5375b39160
Small updates to util classes.
2010-09-07 18:41:08 -07:00
Michael Bebenita
b03812af2b
Change signature of array_list::pop().
2010-09-07 18:41:08 -07:00
Michael Bebenita
6b7ba50e17
Added "new" inline operators to memory regions.
2010-09-07 18:41:08 -07:00
Michael Bebenita
066c14009b
Added a .cpp file for rust_proxy to help avoid .h file dependencies in the future.
2010-09-07 18:41:08 -07:00
Michael Bebenita
9b74129a4f
Added a thread utility class to factor out operations on threads.
2010-09-07 18:41:07 -07:00
Michael Bebenita
9b8d647af3
Make run.py only search in the run-pass directory.
2010-09-07 18:41:07 -07:00
Michael Bebenita
79e3856d7d
Small updates to test cases.
2010-09-07 18:41:07 -07:00
Michael Bebenita
f8ff013e3c
Added a few utility classes, cleaned up the include order of .h files, and started to make the Rust kernel own domain message queues rather than the Rust domains themselves.
2010-09-07 18:41:07 -07:00
Patrick Walton
ffdb5fc858
Initial support for a global crate metadata cache
2010-09-07 16:35:21 -07:00
Roy Frostig
ca1475382e
Add hashmap tests exercising strings as keys and values. No longer leaks on linux.
2010-09-07 01:21:18 -07:00
Roy Frostig
5e5112dac6
Recursively drop a type's parts if the type uses any typarams, since those typarams may represent types that actually require dropping.
2010-09-07 00:54:23 -07:00
Roy Frostig
cf62b54028
Add a little pointer-cast helper to dbg.
2010-09-06 23:24:01 -07:00
Roy Frostig
974092c526
Test multi-ref'ed vec growth more seriously than before.
2010-09-03 16:25:56 -07:00
Roy Frostig
4e355aebf7
When vec growth results in a newly allocated (extended) buffer, copy existing elements over via element-wise copy, not flat memcpy. Introduce new vec growth glue to achieve this.
2010-09-03 16:18:32 -07:00
Roy Frostig
1eb2a8b10b
Assert to insure that the worst-case glue-call arg count is not exceeded unless allowed to.
2010-09-03 16:03:13 -07:00
Roy Frostig
1fa978ebb9
Fail a bit more informatively on a bad get_element_ptr_dyn.
2010-09-03 15:07:58 -07:00
Graydon Hoare
eb90be7798
Add session, span tracking, error reporting, beginning of a function to parse an item to rustc.
2010-09-01 13:24:14 -07:00
Graydon Hoare
b90e6b93c1
Whitespace churn.
2010-08-31 14:36:51 -07:00
Graydon Hoare
cfca901cfe
Add block-comment support, various additional operators. Rustc can lex itself now.
2010-08-31 13:29:08 -07:00
Roy Frostig
47e86a05ae
Fix rust_vec constructor assertion failure caused by slow path of upcall_vec_grow. Add testcase.
2010-08-31 13:01:57 -07:00
Graydon Hoare
11e747fc58
Er, this would be the hunk that actually failed to get committed last time.
2010-08-31 12:54:24 -07:00
Graydon Hoare
2f3201a64c
Reinstate commit 9f0eaa6581
with sufficient fixes to hopefully not break tinderboxes.
2010-08-31 12:42:24 -07:00
Patrick Walton
615b1774a4
Turn native OCaml code generation on for the Mac
2010-08-27 18:06:16 -07:00
Roy Frostig
9481907211
Make pattern-alt drop the slots it initializes when binding slot patterns. Undoes most of the hackiness in 5e77e784f0
and replaces it with a more proper fix.
2010-08-27 17:30:26 -07:00
Patrick Walton
6ec8c21016
Revert "More work on lexer.rs: start using keyword hashtable, handle more lexemes." due to tinderbox bustage
...
This reverts commit 9f0eaa6581
.
2010-08-27 17:29:56 -07:00
Graydon Hoare
9f0eaa6581
More work on lexer.rs: start using keyword hashtable, handle more lexemes.
2010-08-27 16:35:50 -07:00
Roy Frostig
0d15ae4f7a
Modify alt-pattern-drop.rs to also insure the slot bound in the pattern doesn't also get dropped (again) at the end of the block containing the alt.
2010-08-27 13:48:45 -07:00
Roy Frostig
6f52ba7cc5
Whitespace shuffle in rustc's lexer to fit 78-column rule and put out burning tinderbox.
2010-08-27 13:36:18 -07:00
Roy Frostig
ecb7fc2038
Tiny change to tighten up alt-pattern-drop.rs test.
2010-08-27 13:29:53 -07:00
Roy Frostig
5e77e784f0
Have alt-pattern drop the slots it initializes when binding slot patterns. Add a testcase for this as well.
2010-08-27 13:29:53 -07:00
Graydon Hoare
1428b59a19
Modify rustboot to use lexer.reader.
2010-08-27 13:08:47 -07:00
Patrick Walton
88c9759347
Read definitions of tag types in the DWARF
2010-08-27 11:46:59 -07:00
Patrick Walton
1c0c242d0a
Zero-length tuples can show up in tag types. Don't forbid them when reading in the DWARF.
2010-08-27 11:46:59 -07:00
Roy Frostig
927b2f7ef4
Comment out hashmap tests exercising maps with str as key or value type, as they appear to cause leaks.
2010-08-27 11:16:49 -07:00
Roy Frostig
4c1c8460f9
Add simple hashmap tests exercising maps with str as key type, value type, and both.
2010-08-27 11:01:51 -07:00
Roy Frostig
1035ad93dd
Pinching myself for certainty. ;p
2010-08-26 20:02:07 -07:00
Roy Frostig
66b5b9567c
Test the hashmap more, exercising hash collision, element removal, and a forced rehashing that actually causes elements to change buckets. In the process, find a bug in hashmap's remove() and fix it.
2010-08-26 19:44:38 -07:00
Roy Frostig
aa30304328
Simplify null-writing from commit 8559a85cca
so as to avoid a branch.
2010-08-26 18:55:53 -07:00
Patrick Walton
07095a3ef9
Encode tag names in the DWARF
2010-08-26 17:48:52 -07:00
Graydon Hoare
7cfa7bdd23
Make vreg constrs per-quad, regfence on nontrivial constrs, back out workaround to _uint, add regression test. Closes #152 .
2010-08-26 16:27:47 -07:00
Patrick Walton
a7eeeb596a
Add automatic parameter instantiation. Closes #45 .
2010-08-26 14:47:18 -07:00
Roy Frostig
8559a85cca
When copying function values, null out the destination's binding iff the source's binding is null.
2010-08-26 14:44:11 -07:00
Graydon Hoare
ee04c0236c
Add check to catch bug underlying issue #152 . Fix will take longer.
2010-08-26 14:32:47 -07:00