about summary refs log tree commit diff
path: root/src/comp/middle
AgeCommit message (Collapse)AuthorLines
2011-11-02start to isolate target strings so that they can be configured forNiko Matsakis-4/+4
x64 or other targets
2011-11-02Evaluate alt expressions in their own block contextMarijn Haverbeke-3/+10
Closes #785
2011-11-02Rename car/cdr to head/tail in std::listMarijn Haverbeke-5/+4
Closes #1086
2011-11-02Make it possible to cast unsafe pointers with the 'as' operatorMarijn Haverbeke-6/+15
2011-11-02Make resolving of imports behave more sanelyMarijn Haverbeke-65/+57
An import now ignores itself when resolving its target. This gets rid of the previously existing (problematic) behaviour where the import would start looking one scope up when its name was the same as its target's first component. Closes #1114
2011-11-01Fix alignment of interior pointers of dynamic-size types. Closes #1112Brian Anderson-8/+26
GEP_tup_like finds interior pointers by creating a tuple of all the types preceding the element it wants a pointer to, then asks for the size of that tuple. This results in incorrect pointers when the alignment of that tuple is not the alignment of the interior type you're getting a pointer to.
2011-10-28Cleanup: Remove uneccesary generic_cmp function.Matt Brubeck-27/+13
2011-10-28Use IEEE 754 semantics for NaN (Issue #1084)Matt Brubeck-58/+47
2011-10-28stdlib: Make reinterpret_cast and leak unsafeBrian Anderson-4/+6
2011-10-28Make shared kind the default only for generic functionsMarijn Haverbeke-11/+14
You almost never want a function with pinned type params. For types, objects, resources, and tags, pinned types are actually often more sane. For most of these, shared rarely makes sense. Only tricky case is objs -- you'll have to think about the kinds you want there. Issue #1076
2011-10-28Move to short type parameter keywordsMarijn Haverbeke-2/+2
Issue #1076
2011-10-27Remove uint::max/min in favor if math::max/minMatt Brubeck-1/+2
2011-10-25Properly take mutable object fields into account during alias analysisMarijn Haverbeke-16/+23
Closes #1055
2011-10-25Update our code to new type parameter kind syntaxMarijn Haverbeke-9/+9
Closes #1067
2011-10-24fix c-stack-cdecl when used w/ i64Niko Matsakis-2/+8
2011-10-24kill errant log_errNiko Matsakis-2/+0
2011-10-24switch over sqrt from llvm to c-stack-cdecl, exposing a bug inNiko Matsakis-6/+19
the supported return types of upcall_c_stack
2011-10-21update trans_c_stack_native_call() to use type_of_explicit_args()Niko Matsakis-28/+18
currently trans_c_stack_native_call() had some ad-hoc code for determining the type of the arguments. this code was not in agreement with the rest of trans. now it uses the same code path.
2011-10-21avoid extra load for by_mutable_ref parametersNiko Matsakis-4/+7
2011-10-21Change the way block calls are parsed, mark them as block-calls.Marijn Haverbeke-16/+16
This makes it possible to omit the semicolon after the block, and will cause the pretty-printer to properly print such calls (if pretty-printing of blocks wasn't so broken). Block calls (with the block outside of the parentheses) can now only occur at statement level, and their value can not be used. When calling a block-style function that returns a useful value, the block must be put insde the parentheses. Issue #1054
2011-10-21Drop support for iter, put, and for-eachMarijn Haverbeke-408/+51
Closes #1056
2011-10-21Remove remaining uses of iter and for-eachMarijn Haverbeke-5/+3
Issue #1056
2011-10-21Move ast_util::pat_bindings over to new iter system.Marijn Haverbeke-34/+31
Issue #1056
2011-10-21Remove last uses of iterators from stdlibMarijn Haverbeke-2/+2
Issue #1056
2011-10-21Move hash table iteration over to block-taking functionsMarijn Haverbeke-53/+49
Issue #1056
2011-10-20Give native functions proto_bareBrian Anderson-1/+1
2011-10-20Remove typeck::proto_to_ty_protoBrian Anderson-10/+2
2011-10-20Merge ast::proto_shared and ast::proto_closureBrian Anderson-27/+40
Now they are both just proto_shared and proto_shared takes an argument indicating that it is sugared as 'lambda'
2011-10-20Rename ast::proto_fn to ast::proto_sharedBrian Anderson-18/+20
2011-10-20Make fn denote a bare function. Convert fn to fn@ as neededBrian Anderson-22/+28
2011-10-20Tweak typecheck to enforce covariance on higher-order function argumentsBrian Anderson-1/+4
2011-10-20Remove type coercion from fn to blockBrian Anderson-48/+4
fn is a proper subtype of block now
2011-10-20Give subtype relationships to function typesBrian Anderson-2/+57
2011-10-20Bare functions can coerce to blocksBrian Anderson-0/+4
2011-10-20Bare functions can coerce to shared closuresBrian Anderson-6/+15
2011-10-20Revert "Remove the environment argument from bare functions"Brian Anderson-35/+7
This reverts commit 1b0f1f0b79fb29d28bcabb7a8468f4a5a95c0712.
2011-10-20Fix the problem with check-fast randomly failingBrian Anderson-5/+6
Trans has been assuming that tag node id's are unique across crates and they are not so, depending on which way the wind is blowing, it would choose to use a crate-local tag variant instead of the correct one from std. No test case since I can't come up with a reliable one that compiles in a reasonable amount of time.
2011-10-20Don't rely on main.ll anymoreMarijn Haverbeke-26/+61
I'll remove the actual file after I register a snapshot. Issue #992
2011-10-20Get rid of taskpointer-passing throughout the compilerMarijn Haverbeke-60/+33
Only intrinsics still take a dummy taskptr. We'll have to do some makefile stunts to snapshot a version without taskptrs-in-intrinsics. Issue #466
2011-10-20Do not pass taskpointers to "rust" native functionsMarijn Haverbeke-1/+1
Issue #466
2011-10-20Remove taskptr argument from upcallsMarijn Haverbeke-21/+16
Issue #466
2011-10-20Remove spawn_wrap and main_wrap kludgesMarijn Haverbeke-1/+1
This isn't needed now that our functions are cdecl (and was apparently only still working by accident). Issue #992
2011-10-18Immutable and mutable? are covariant on their inner typesBrian Anderson-3/+10
Whereas [mutable T] is invariant with respect to T, [T] and [mutable? T] are covariant with respect to T.
2011-10-18Add a math module to the standard libMarijn Haverbeke-3/+3
I need some rudimentary stdlib stuff for the tutorial. Closes #1042
2011-10-18Don't try to build an LLVM switch on floatsMarijn Haverbeke-1/+2
Closes #1046
2011-10-17Enforce variance rules for mutable typesBrian Anderson-40/+48
2011-10-17Add a variance transform for calculation of recursive varianceBrian Anderson-14/+53
2011-10-17Introduce covariance, contravariance and invariance to the type unifierBrian Anderson-22/+47
This will be used to resolve some problems with mutable? covariance and also to implement function subtyping
2011-10-17Don't unify from mutable? to immutableBrian Anderson-1/+0
Immutable is supposed to be a subtype of mutable-huh.
2011-10-17Split record_var_binding into methods for expected and actualBrian Anderson-4/+26
This allows unify to maintain the same subtype relationship between expected and actual throughout unify, which we are going to need for mutable? and for function types.