Commit graph

224 commits

Author SHA1 Message Date
Graydon Hoare
6668595ebf Include all lval-writing statements in stmt_is_init calculation, not just "copy-like". Un-XFAIL generic-tag-alt.rs 2010-07-23 12:21:06 -07:00
Graydon Hoare
7d44ee7c3c Add pretty-printing for alt-tag statements. 2010-07-23 12:20:20 -07:00
Graydon Hoare
4d4fa99b31 Rename STMT_init_* to STMT_new_*; former name was confusing. 2010-07-23 11:37:38 -07:00
Roy Frostig
1730d2e037 Notify copy glue of dst-initialization and fix _vec.alloc issues in lib and runtime. Closes #109. 2010-07-22 17:47:32 -07:00
Graydon Hoare
ede42cf931 A certain incomplete quantity of wrestling with "INIT" statements that don't actually initialize. Should probably rename them to MAKE. Anyway, WIP, but two steps forward (and one back). More later. 2010-07-22 17:05:45 -07:00
Graydon Hoare
1cb4a57b7b Re-classify some err / bug cases as unimpl. Ideally rustboot should never produce a backtrace. 2010-07-22 15:25:29 -07:00
Roy Frostig
1ae13b3fdd Source FIXME annotations for issue #81 and a correction to STMT_bind fmt. 2010-07-22 12:45:58 -07:00
Graydon Hoare
eaa35611dc Add XFAIL'ed test for return-in-iter, call unimpl when we find it. Closes #100. 2010-07-22 12:24:55 -07:00
Graydon Hoare
c96634af4b Fix mem op= mem bug in trans.ml (via not terribly good fix). Closes #111. 2010-07-22 12:11:39 -07:00
Jeffrey Yasskin
2c24f70cf4 Fix simple generic type parameters in LLVM. 2010-07-23 00:42:51 +08:00
Jeffrey Yasskin
09885b5b87 Implement tuple access for LLVM.
This involved adding an Ast.ty return to trans_lval.

I also included the code for record and box access, but their tests don't
completely pass yet.
2010-07-23 00:42:51 +08:00
Jeffrey Yasskin
c99f0273e3 Make sure debug locations are propagated to every new block created by making
them an argument to new_block.  gdb should do a good job of single-stepping
LLVM-compiled rust programs by rust line number now.
2010-07-22 01:11:35 +08:00
Patrick Walton
34016d323c Make bound functions have the right types 2010-07-20 17:29:36 -07:00
Graydon Hoare
cb989a816d Pick off the last LLVM-crasher from mbx's change. 2010-07-20 15:29:13 -07:00
Graydon Hoare
05f34b0886 Adjust llasm, llabi to be aware of changes to rust_task structure. Still not working fully. 2010-07-20 15:17:08 -07:00
Graydon Hoare
62522def74 Tidy up handling of unimplemented features. These are expected (if undesirable) sorts of error, we should handle better than "backtrace and exit 2". 2010-07-20 13:55:56 -07:00
Patrick Walton
b0f77088fa Strip off TY_mutables and TY_constraineds when unboxing values during autoderef 2010-07-19 19:14:41 -07:00
Roy Frostig
ae515c017c ctxt_auto_deref_lval decides whether to autoderef the entire lval, not its base. 2010-07-19 19:06:55 -07:00
Roy Frostig
fde9ca0937 Autoderef objects when passing them as implicit (indirect) arg upon vtbl-dispatch. Add testcase and XFAIL it on LLVM. Closes #112. 2010-07-19 18:25:26 -07:00
Patrick Walton
0863114a05 Include the statements on the LHS of a binop when desugaring. Closes #117. 2010-07-19 17:52:31 -07:00
Michael Bebenita
00d1465d13 Added a message passing system based on lock free queues for inter-thread communication. Channels now buffer on the sending side, and no longer require blocking when sending. Lots of other refactoring and bug fixes. 2010-07-19 14:05:18 -07:00
Graydon Hoare
1f0656d908 Add a test for an obvious-seeming (but not actually legal) kind of cast attempted in issue #115, downgrade bug to an err in type.ml so you get a better message. 2010-07-19 13:25:04 -07:00
Graydon Hoare
f1db420317 Fix over-optimistic resolution of self-methods within obj scopes. There is no such feature in the language at present. Add test to prevent regression. Closes #114. 2010-07-19 12:03:58 -07:00
Graydon Hoare
bacb8e6b79 Missing semicolon in type.ml, plus test to catch regression. Closes #113. 2010-07-19 11:50:41 -07:00
Roy Frostig
2141154c85 Change the body-fetching GEP in mark_ty to be dynamic. Our box may be parametric. 2010-07-19 11:47:46 -07:00
Jeffrey Yasskin
2a2ec67e6e Fix opeq.rs for LLVM by implementing simple augmented-assignment operators. 2010-07-20 02:08:01 +08:00
Jeffrey Yasskin
9d0d350d2c Make the LLVM compiler crash when it hits a source construct it doesn't know
what to do with, rather than silently omitting it from the output.
2010-07-20 02:08:00 +08:00
Jeffrey Yasskin
ca95da8bea Teach the LLVM backend to emit line number information.
This isn't complete: it misses line numbers in certain kinds of block.  It's
also still tricky to use it on Darwin, where we need to call dsymutil while the
.o file is still around in order for gdb to find the debugging symbols.
2010-07-20 01:23:45 +08:00
Patrick Walton
1c1dc651a7 Stub an interface to the (as-yet-nonexistent) structural comparison glue in trans 2010-07-18 14:25:43 +08:00
Jeffrey Yasskin
22eca31d98 Fix argv.rs under the LLVM compiler.
The call to rust_start was assuming that all rust main() functions have the
same signature, but the compiler doesn't actually canonicalize them.  So
instead just match the C signature of rust_start, and cast.
2010-07-18 14:25:19 +08:00
Roy Frostig
c906759807 Fix IL translation of pattern-alt to allow a value of mutable/constrained type to be the subject of a pattern-alt. 2010-07-16 18:04:34 -07:00
Patrick Walton
1ac01e16cf Ensure that functions that should return a value do; issue 41 2010-07-16 15:34:25 -07:00
Patrick Walton
8b00ab1a48 Feed the correct return type to the typechecker when typechecking objects, and add a testcase. 2010-07-16 14:54:47 -07:00
Roy Frostig
700e522dff More renaming of GEP offsets in abi/trans. This should settle it. Also, fix some overenthusiastic renaming in previous commit. 2010-07-16 12:23:46 -07:00
Roy Frostig
348e434cee Clean up nomenclature in the Abi constants brigade. Purge magic GEP numbers in trans. Adjust obj_closure_rty (and its consumers) to be more explicit about the fact that it is a box. 2010-07-16 11:17:25 -07:00
Graydon Hoare
de8a7dc7dc Merge branch 'contrib' 2010-07-15 23:58:13 -07:00
Jason Orendorff
7671828d45 Support nested for-each loops. Closes #79. 2010-07-16 14:53:49 +08:00
Patrick Walton
c96f0bf738 Implement the "simple typechecker", which avoids HM inference 2010-07-15 18:27:09 -07:00
Jeffrey Yasskin
3e63343fbc Let the compiler find libraries that aren't in the current directory. 2010-07-16 08:13:07 +08:00
Jeffrey Yasskin
29d0458814 Remove the __PAGEZERO segment from shared MachO libraries. This avoids a
segfault in dlclose() and fixes the tests on OSX 10.5.8.
2010-07-16 08:13:07 +08:00
Jeffrey Yasskin
9c4bc7b872 In Mach-O shared libraries, avoid counting an extra load command. Closes #99. 2010-07-16 08:13:07 +08:00
Graydon Hoare
6cf1fe8dd5 Merge branch 'master' of git@github.com:graydon/rust 2010-07-15 17:00:36 -07:00
Roy Frostig
d2b845d29c Define (in Abi) and use named constants for indices of elements of an obj IL referent type. 2010-07-15 16:54:38 -07:00
Graydon Hoare
c218d06601 Merge branch 'contrib' 2010-07-15 16:49:02 -07:00
Adam Bozanich
7a13a61e02 use,import,export parse fixes
* use,import,export must come before all other items.
* disallow use,import in "native" declarations.
2010-07-16 07:23:16 +08:00
Adam Bozanich
b096b0e308 permit use before import. closes #48 2010-07-16 07:19:14 +08:00
Patrick Walton
0b675a021a Make mutability no longer a type constructor 2010-07-15 15:20:04 -07:00
Roy Frostig
f02f9cbf29 Correct the way we get typarams when dropping an obj type in drop_ty by using get_tydesc_params. 2010-07-15 12:30:46 -07:00
Roy Frostig
25a38ee4f7 Modify copy_fn_args not to bother with dynamic GEP to get the indirect args cell in a calltup. It's now possible to obtain it with just regular GEP. 2010-07-15 12:30:46 -07:00
Roy Frostig
373f904c92 Explicitly provide an optional closure/obj pointer to trans_call_glue so that it can push one in the right position when calling glue, instead of always pushing a null. As far as I can tell this only affects calls to obj drop glue, since only that makes use of an object binding passed as closure/obj, so pass the binding there as needed. 2010-07-15 12:30:46 -07:00