aboutsummaryrefslogtreecommitdiff
path: root/src/boot/me/trans.ml
Commit message (Collapse)AuthorAgeFilesLines
...
* Add Ast.ATOM_pexp and -pexp mode wherein pexps live beyond parsing, into ↵Graydon Hoare2010-09-151-0/+9
| | | | later stages. Fixes to pexp pretty printer.
* Begin actually folding constant items into operands at site of use.Graydon Hoare2010-09-141-8/+77
|
* Translate const uses via runtime expression evaluation.Graydon Hoare2010-09-141-6/+16
|
* Fix leaking arg slots on tail calls. Closes #160.Graydon Hoare2010-09-131-0/+2
|
* Fix a leak when box types are used via type descriptors.Graydon Hoare2010-09-121-2/+2
|
* Switch tags to purely nominal, removing TY_iso and TY_idx. Seems to mostly ↵Graydon Hoare2010-09-091-234/+169
| | | | work, possibly a little bumpy. Changes a lot.
* Recursively drop a type's parts if the type uses any typarams, since those ↵Roy Frostig2010-09-071-3/+5
| | | | typarams may represent types that actually require dropping.
* When vec growth results in a newly allocated (extended) buffer, copy ↵Roy Frostig2010-09-031-16/+185
| | | | existing elements over via element-wise copy, not flat memcpy. Introduce new vec growth glue to achieve this.
* Assert to insure that the worst-case glue-call arg count is not exceeded ↵Roy Frostig2010-09-031-5/+22
| | | | unless allowed to.
* Fail a bit more informatively on a bad get_element_ptr_dyn.Roy Frostig2010-09-031-2/+6
|
* Make pattern-alt drop the slots it initializes when binding slot patterns. ↵Roy Frostig2010-08-271-27/+11
| | | | Undoes most of the hackiness in 5e77e784f006e36c06252d9beccbd7893eddac73 and replaces it with a more proper fix.
* Have alt-pattern drop the slots it initializes when binding slot patterns. ↵Roy Frostig2010-08-271-10/+35
| | | | Add a testcase for this as well.
* Simplify null-writing from commit 8559a85ccacf70c51d93759b47a3880ae818b247 ↵Roy Frostig2010-08-261-8/+2
| | | | so as to avoid a branch.
* When copying function values, null out the destination's binding iff the ↵Roy Frostig2010-08-261-1/+14
| | | | source's binding is null.
* Insure bools remain 0x1 or 0x0 by having boolean-NOT not just be a simple ↵Roy Frostig2010-08-251-1/+4
| | | | bit-NOT.
* Add element to closure to hold captured tydesc (not body tydesc).Graydon Hoare2010-08-251-3/+5
|
* Merge obj-drop and closure-drop code, handles freeing bound exteriors now.Graydon Hoare2010-08-251-40/+43
|
* First pass of updating the in-memory layout of closures, for issue 81.Graydon Hoare2010-08-251-90/+84
|
* Janitorial work on obj box / body / field terminology, following froystig's ↵Graydon Hoare2010-08-251-28/+28
| | | | brave lead.
* Obj ctors are not obj fns so translate their frame entry as such.Roy Frostig2010-08-251-1/+1
|
* Fix residual nonsense of storing crate-rel displacements in a closure pair ↵Graydon Hoare2010-08-241-12/+4
| | | | (made it impossible to pass between crates, of course).
* Elide preempt check on thunk and ctor frames. Wins 8kb on rustc.Graydon Hoare2010-08-241-6/+11
|
* Avoid emitting unnecessary frame glue. Wins a couple hundred kb of rustc.Graydon Hoare2010-08-241-33/+74
|
* Avoid iterating ty parts on drop when there are no heap pointers in ty. Wins ↵Graydon Hoare2010-08-241-4/+4
| | | | several tens of kb on rustc.
* Shrink size of glue calls. Wins a few tens of kb on rustc.Graydon Hoare2010-08-241-6/+2
|
* Support single-element append on vec, str. Closes #44.Graydon Hoare2010-08-201-8/+53
|
* Increment ref counts of objects sent along channels.Michael Bebenita2010-08-111-2/+11
|
* Always bounce mul/div/mod ops. Closes #131 harder.Graydon Hoare2010-08-101-1/+1
|
* Merge commit 'jyasskin/work'Graydon Hoare2010-08-101-4/+7
|\ | | | | | | | | | | Conflicts: src/rt/rust_dom.cpp src/rt/rust_upcall.cpp
| * Add names to tasks and domains. These can either be an explicit literal stringJeffrey Yasskin2010-08-091-4/+7
| | | | | | | | | | after the "spawn" keyword, or implicitly the call expression used to start the spawn.
* | Get object's captured typarams when querying for an object method's typarams ↵Roy Frostig2010-08-091-33/+61
| | | | | | | | in Trans. Together with commit 982dcc29bf6cd41e967a0befe0c6195811cd6a55 this... Closes #138.
* | Get object's captured typarams when calculating sizes in the backend's ↵Roy Frostig2010-08-091-35/+32
| | | | | | | | fn-prologue-generation for object methods.
* | Synthesize a flush_chan upcall right before a channel's ref_count drops to ↵Michael Bebenita2010-08-091-0/+20
|/ | | | zero. This should only happen in the Rust code and not in the drop glue, or on the unwind path. This change allows the task owning the channel to block on a flush and delete its own channel. This change also cleans up some code around rust_port and rust_chan.
* Degrade emitter size cache to just a flat hashtable with regular flushes ↵Graydon Hoare2010-08-051-25/+35
| | | | (sigh) and re-introduce horrible bounce-off-spill hack for DIV, MUL, etc.
* Something is wrong with the emitter size cache; disable for now, possibly ↵Graydon Hoare2010-08-051-1/+3
| | | | put out flaming tinderboxes.
* Move 'as' precedence up to just above relational; support indexing str and ↵Graydon Hoare2010-08-051-1/+2
| | | | vec by all integral types. Closes #94.
* Kill the preallocator, install a sane replacement. Closes #131. And probably ↵Graydon Hoare2010-08-041-2/+1
| | | | a lot of others.
* Avoid mem cmp mem in trans even though it's an X86ism becase we don't always ↵Roy Frostig2010-08-031-1/+11
| | | | catch it later on.
* Get slots in trans_tag using Semant tables. Closes #133.Roy Frostig2010-07-281-5/+10
|
* Test the deque a bit. Give it a get-by-index method. Fix two uncovered ↵Roy Frostig2010-07-281-6/+15
| | | | state-calculation bugs --- one decently, the other with an ugly hack. Bug on the latter coming right up.
* Switch machine-type lexemes to use suffixes. Remove support for foo(bar) as ↵Graydon Hoare2010-07-271-3/+3
| | | | a cast notation. Closes #129.
* Distill semantics of use-def maps to fewer and more-obvious words.Graydon Hoare2010-07-271-5/+5
| | | | | | | - Remove redundant uses of 'resolve' and 'referent' in semant. - Use defn, defn_id, lval, lval_base more consistently. - Make associated query functions more consistent. - Closes #127.
* Change ctxt_crate_main to an Ast.name.Graydon Hoare2010-07-261-3/+5
|
* Don't write to NULL after calling C natives returning void.Roy Frostig2010-07-251-2/+6
|
* Include all lval-writing statements in stmt_is_init calculation, not just ↵Graydon Hoare2010-07-231-1/+1
| | | | "copy-like". Un-XFAIL generic-tag-alt.rs
* Rename STMT_init_* to STMT_new_*; former name was confusing.Graydon Hoare2010-07-231-53/+41
|
* Notify copy glue of dst-initialization and fix _vec.alloc issues in lib and ↵Roy Frostig2010-07-221-6/+25
| | | | runtime. Closes #109.
* A certain incomplete quantity of wrestling with "INIT" statements that don't ↵Graydon Hoare2010-07-221-28/+76
| | | | actually initialize. Should probably rename them to MAKE. Anyway, WIP, but two steps forward (and one back). More later.
* Re-classify some err / bug cases as unimpl. Ideally rustboot should never ↵Graydon Hoare2010-07-221-3/+4
| | | | produce a backtrace.
* Source FIXME annotations for issue #81 and a correction to STMT_bind fmt.Roy Frostig2010-07-221-1/+4
|