about summary refs log tree commit diff stats
Commit message (Collapse)AuthorAgeFilesLines
* 3575Kartik K. Agaram2016-10-231-2/+2
|
* 3574Kartik K. Agaram2016-10-234-230/+193
| | | | Shorter branches above longer ones.
* 3573 - client socket testsKartik K. Agaram2016-10-232-4/+31
| | | | This is just the same as tests for a fake file-system.
* 3572 - new way to write server testsKartik K. Agaram2016-10-231-126/+43
| | | | | | | | | | | | | This time we're opening real sockets so we might run into issues on machines with firewalls. Macs for example flash up a dialog warning people about a port being opened, though it shuts down immediately if the test passes. On the flip side, the test has greater verisimilitude. You don't really need fakes except when you want to pin down the environment a test runs in. The only way this test might be flaky is on a machine that has lots of sockets open (so the random port opened by the test is in use for something else). That and the firewall concern above. Hmm.
* 3571 - make 'read-from-socket' non-blockingKartik K. Agaram2016-10-232-12/+40
| | | | Its interface now mirrors that of 'read-event'.
* 3570 - don't busy-wait in 'wait-for-event'Kartik K. Agaram2016-10-231-1/+3
|
* 3569Kartik K. Agaram2016-10-2351-4605/+4607
| | | | Update syntax highlighting to not color numeric locations like literals.
* 3568Kartik K. Agaram2016-10-2319-60/+62
| | | | Fix syntax highlighting for labels after commit 3552.
* 3567Kartik K. Agaram2016-10-238-25/+58
|
* 3566Kartik K. Agaram2016-10-231-3/+4
| | | | | | | | | | | | vim: Stop loading C++-specific syntax highlighting in non-C++ files. I also figured out why the autocommand wasn't running on the first file: my local setup for directory-specific vimrc files runs inside an autocommand, and it runs autocommands recursively inside an autocommand, and it runs only autocommands inside a 'LocalVimrc' autocommand group to ensure infinite regress (autocommands running multiple times in practice). And I'd forgotten this 'feature' of my vimrc setup by the time I set this up for Mu.
* 3565Kartik K. Agaram2016-10-237-24/+24
| | | | | | Cleaning up the console interfaces before we start changing the socket interfaces to look like them. Reading from sockets need to be non-blocking just like reading from the console.
* 3564Kartik K. Agaram2016-10-232-2/+35
| | | | | Change the interface for reading a URL slightly so that we can directly use the path in `assume-resources`.
* 3563Kartik K. Agaram2016-10-231-1/+1
|
* 3562Kartik K. Agaram2016-10-224-262/+214
| | | | Fix CI. Revert accidentally-added files.
* 3561Kartik K. Agaram2016-10-2269-358/+414
|
* 3560Kartik K. Agaram2016-10-222-2/+2
|
* 3559Kartik K. Agaram2016-10-221-2/+11
|
* 3558Kartik K. Agaram2016-10-2243-134/+241
|
* 3557Kartik K. Agaram2016-10-224-9/+9
|
* 3556Kartik K. Agaram2016-10-221-1/+1
|
* 3555Kartik K. Agaram2016-10-2212-15/+15
|
* 3554 - flag unexpected header for recipe 'main'Kartik K. Agaram2016-10-221-0/+43
| | | | | | As long as Mu operates atop Unix, we need to make these assumptions. Thanks Ella Couch for finding this loophole.
* 3553Kartik K. Agaram2016-10-226-7/+7
| | | | | | | Tag all transforms as idempotent or not. I'd fallen off this wagon. I might even be getting it wrong. Something a type system should automatically verify.
* 3552Kartik K. Agaram2016-10-2230-88/+111
| | | | | | | | | | | | | | | | | | Stop requiring jump instructions to explicitly provide a ':label' type for jump targets. This has been a source of repeated confusion for my students: a) They'd add the ':label' to the label definition rather than the jump target (label use) b) They'd spend time thinking about whether the initial '+' prefix was part of the label name. In the process I cleaned up a couple of things: - the space of names is more cleanly partitioned into labels and non-labels (clarifying that '_' and '-' are non-label prefixes) - you can't use label names as regular variables anymore - you can infer the type of a label just from its name
* 3551Kartik K. Agaram2016-10-221-1/+4
|
* 3550Kartik K. Agaram2016-10-222-2/+2
|
* 3549Kartik K. Agaram2016-10-225-29/+41
| | | | | | | | | | | | | | | | | | More consistent definitions for jump targets and waypoints. 1. A label is a word starting with something other than a letter or digit or '$'. 2. A waypoint is a label that starts with '<' and ends with '>'. It has no restrictions. A recipe can define any number of waypoints, and recipes can have duplicate waypoints. 3. The special labels '{' and '}' can also be duplicated any number of times in a recipe. The only constraint on them is that they have to balance in any recipe. Every '{' must be followed by a matching '}'. 4. All other labels are 'jump targets'. You can't have duplicate jump targets in a recipe; that would make jumps ambiguous.
* 3548Kartik K. Agaram2016-10-221-1/+4
|
* 3547Kartik K. Agaram2016-10-221-1/+0
|
* 3546Kartik K. Agaram2016-10-221-0/+4
|
* 3545Kartik K. Agaram2016-10-222-10/+39
| | | | Type-check ingredients of 'start-running'
* 3544Kartik K. Agaram2016-10-2267-67/+67
|
* 3543Kartik K. Agaram2016-10-2272-127/+278
|
* 3542Kartik K. Agaram2016-10-221-1/+1
| | | | | Keep color of control flow keywords from bleeding into that of function headers.
* 3541Kartik K. Agaram2016-10-212-6/+2
|
* 3540Kartik K. Agaram2016-10-211-2/+2
|
* 3539Kartik K. Agaram2016-10-218-9/+130
| | | | | | | | | | | | | Always check if next_word() returned an empty string (if it hit eof). Thanks Rebecca Allard for running into a crash when a .mu file ends with '{' (without a following newline). Open question: how to express the constraint that next_word() should always check if its result is empty? Can *any* type system do that?! Even the usual constraint that we must use a result isn't iron-clad: you could save the result in a variable but then ignore it. Unless you go to Go's extraordinary lengths of considering any dead code an error.
* 3538Kartik K. Agaram2016-10-201-1/+6
|
* 3537Kartik K. Agaram2016-10-201-0/+19
|
* 3536Kartik K. Agaram2016-10-201-0/+4
|
* 3535Kartik K. Agaram2016-10-201-2/+2
|
* 3534Kartik K. Agaram2016-10-201-33/+22
| | | | | | | | | | | | | | | | | | | | Streamline the build process. It's safest to always: a) check if each output is `older_than` the inputs necessary to construct it, and b) update the output only if something changed. However: i) We don't yet have helpers to do b) in all situations, and ii) combining a) and b) can cause `older_than` to spuriously report files being updated. So we'll always run exactly one of a) and b) and err on the side of keeping the output reliable, at the risk of occasionally updating a file unnecessarily and triggering unnecessary work downstream. Cross that bridge when we run into it.
* 3533Kartik K. Agaram2016-10-201-13/+35
| | | | Don't update autogenerated *_list files unless necessary.
* 3532Kartik K. Agaram2016-10-203-8/+1
| | | | Coalesce all the management of number of failed scenarios.
* 3531Kartik K. Agaram2016-10-202-5/+5
| | | | | Be consistent in checking for Scenario_testing_scenario when signalling that a Mu scenario failed.
* 3530Kartik K. Agaram2016-10-203-13/+5
| | | | Coalesce some duplicate signalling that the current test failed.
* 3529Kartik K. Agaram2016-10-202-1/+20
| | | | | Bugfix: refcounts were getting updated for the wrong ingredients in 'call' instructions.
* 3528Kartik K. Agaram2016-10-201-2/+2
|
* 3527Kartik K. Agaram2016-10-202-9/+16
|
* 3526Kartik K. Agaram2016-10-202-6/+6
|