about summary refs log tree commit diff
path: root/src
AgeCommit message (Collapse)AuthorLines
2011-08-02Compiler accepts input from stdin when source file is called "-"Brian Anderson-17/+66
2011-08-02Assign collection element ty to loop local tvar when checking loopsMarijn Haverbeke-2/+5
This makes the type declarationg for the loop variable optional in most cases. Closes #790
2011-08-02Do not try to save block result when the block is an iter bodyMarijn Haverbeke-1/+2
Closes #791
2011-08-02Be a little more clever about picking columns to match on in trans_altMarijn Haverbeke-4/+34
This should result in slightly more efficient matching of 'complex' patterns with multiple discriminants in them.
2011-08-02Copy locals created by destructuring on the content of a boxMarijn Haverbeke-8/+29
This is required so that assigning to these locals doesn't clobber the content of the box. (A possible optimization would be to only do this copying for locals that actually are assigned to.)
2011-08-02Move ppaux::ty_to_str to new record syntaxMarijn Haverbeke-5/+5
2011-08-02Improve handling of bottom type in alt armsMarijn Haverbeke-0/+1
2011-08-01Handle bang functions correctly in typestateTim Chevalier-59/+117
The logic for how the "returns" constraint was handled was always dodgy, for reasons explained in the comments I added to auxiliary::fn_info in this commit. Fixed it by adding distinct "returns" and "diverges" constraints for each function, which are both handled positively (that is: for a ! function, the "diverges" constraint must be true on every exit path; for any other function, the "returns" constraint must be true on every exit path). Closes #779
2011-08-01Add std::str::is_whitespaceBrian Anderson-0/+22
2011-08-01Add std::str::trim/trim_left/trim_rightBrian Anderson-0/+69
2011-08-01Add std::char_sliceBrian Anderson-0/+13
2011-08-01Add std::char::is_whitespaceBrian Anderson-0/+56
2011-08-01Add std::char moduleBrian Anderson-0/+1
2011-08-01Fix incorrect uses of str::buf()Paul Stansifer-11/+18
2011-08-01Adding an intrinsic for recv.Eric Holk-53/+209
2011-08-01Ignore whitespace in argument lists in compiletestBrian Anderson-1/+20
Makes testing work with DEBUG=1
2011-08-01Added send and receive to comm library.Eric Holk-23/+56
2011-08-01Enabling logging in circular_buffer again.Eric Holk-46/+44
2011-08-01Objectified library chans and ports.Eric Holk-13/+15
2011-08-01Started working on a library-based comm system. Creating and deleting ports ↵Eric Holk-19/+176
work.
2011-08-01Fix closures over dynamically-sized polymorphic values.Michael Sullivan-17/+44
2011-08-01Fix closures over known-size polymorphic values.Michael Sullivan-15/+15
2011-08-01Add a GEPi function that wraps GEP with integer arguments.Michael Sullivan-12/+22
2011-08-01Replace a lock/unlock with scoped_lock in rust_scheduler::create_taskBrian Anderson-3/+5
2011-08-01Add tests for destructuring localsMarijn Haverbeke-0/+37
2011-08-01Add check for irrefutable patterns in destructuring localsMarijn Haverbeke-4/+35
2011-08-01Partially implement destructuring localsMarijn Haverbeke-250/+308
You can now say let {bcx, val} = some_result_returner(); Similar for loop variables. Assigning to such variables is not safe yet. Function arguments also remain a TODO.
2011-07-31Get rid of walk.rsMarijn Haverbeke-463/+0
And we're down to a single AST walker again
2011-07-31Stop using walk.rs in the fuzzerMarijn Haverbeke-5/+5
2011-07-31Remove unused importsTim Chevalier-2/+0
2011-07-31Change bitvectors::relax_precond_block to use visit instead of walkTim Chevalier-24/+28
2011-07-29Minimize scheduler locking on task creationBrian Anderson-1/+2
This takes my CPU utilization on task-perf-spawnalot from 35% to 55%
2011-07-29Add a task spawning benchmarkBrian Anderson-0/+29
This is the kind of workload that the test runner generates - lots of tiny little tasks - and currently it leaves the CPU underutilized.
2011-07-29Lock the new task's scheduler when creating a taskBrian Anderson-2/+3
Previously we were locking the spawning task's scheduler. I couldn't see that that was protecting anything. The newborn_task list in the new task's scheduler though was unprotected from concurrent access. So now we're locking the new task's scheduler.
2011-07-29Base test concurrency on the number of scheduler threads.Brian Anderson-13/+7
Ideally we would just spawn every test and collect the results but I'm not entirely comfortable doing that yet for reasons that I'm too tired to remember right now. Urgh.
2011-07-29Add sched_threads rt function to get the number of scheduler threadsBrian Anderson-3/+7
2011-07-29Refactor std::testBrian Anderson-70/+108
Separate the console output from the running of tests
2011-07-29Removing proxies and message queues.Eric Holk-687/+64
2011-07-29Fix bug in typechecker counting occurrences of typarams in instantiation ↵Graydon Hoare-6/+6
rather than checking formals list.
2011-07-29Enable kind checking on typarams, fix kind constraints in library and comp.Graydon Hoare-62/+85
2011-07-29Reduced test case for current backwarding bug.Lindsey Kuper-0/+35
Still working on getting backwarding to play nicely with self and overriding. Currently can't fix issue #702 without breaking how self and overriding interact.
2011-07-29Switch the heap build and load environment functions to use GEP_tup_like.Michael Sullivan-25/+29
2011-07-29Initial trans of lambdas. Doesn't work with polymorphism yet.Michael Sullivan-8/+61
2011-07-29Test case for previous commitTim Chevalier-0/+5
2011-07-29Refactor typestate code involving stmt_declsTim Chevalier-94/+129
To handle multiple-LHS declarations with initializers properly, I changed seq_states to take a list of expressions paired with optional names, not just a list of expressions. Then, the same logic that handles ordered lists of subexpressions everywhere else can handle multi- declarations.
2011-07-29Encode, decode, and thread through typechecking all the param kinds, not ↵Graydon Hoare-104/+143
just the counts.
2011-07-29Do some cleanup in load_environment.Michael Sullivan-30/+23
2011-07-29Add in some missing cases for typestate with closures.Michael Sullivan-2/+5
2011-07-29Don't confuse backwards and forwards.Lindsey Kuper-3/+7
Oops. If we already have a backwarding vtable, that means that we are currently building a forwarding fn. (Progress toward issue #702.)
2011-07-29Comments and cleanup, in preparation for more work on issue #702.Lindsey Kuper-19/+56