about summary refs log tree commit diff stats
Commit message (Collapse)AuthorAgeFilesLines
* 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
|
* 3525Kartik K. Agaram2016-10-202-6/+5
|
* 3524Kartik K. Agaram2016-10-2058-565/+769
|
* 3523 - http client now workingKartik K. Agaram2016-10-203-12/+163
|
* 3522Kartik K. Agaram2016-10-1952-331/+331
|
* 3521Kartik K. Agaram2016-10-181-2/+15
|
* 3520Kartik K. Agaram2016-10-187-10/+0
| | | | | | | | Drop a few debug prints. Hopefully now we need never duplicate trace statements and can instead just dump them to screen. I'll soon need the ability to selectively dump traces for a specific label.
* 3519 - reading lots of data from a socketKartik K. Agaram2016-10-182-5/+17
| | | | | | In the process I've also altered the API of $read-from-socket to return a boolean (eof?) rather than the number of bytes read (which is implicit in the length of the returned array).
* 3518Kartik K. Agaram2016-10-181-2/+0
| | | | The bugfix of commit 3517 allows us to drop this redundant condition.
* 3517 - don't block routines in 'switch'Kartik K. Agaram2016-10-181-37/+21
| | | | | The notion of blocking is just to enable certain kinds of tests. We should never be using it in production code.
* 3516 - print the trace as it is generatedKartik K. Agaram2016-10-181-1/+3
| | | | | | I had this early on. Why did I delete it? Was it because I was only flushing the current trace when I started on the next one? We don't have that problem anymore..
* 3515Kartik K. Agaram2016-10-181-7/+8
| | | | Bugfix: allow 'new' to be passed in type abbreviations.
* 3514Kartik K. Agaram2016-10-182-6/+20
| | | | | | | | Let's constrain 'push' on lists to always modify its ingredient. That makes some possibilities more verbose, such as lists that share a common tail. But may be worthwhile to get better errors in the common use-case.
* 3513Kartik K. Agaram2016-10-171-0/+9
|
* 3512Kartik K. Agaram2016-10-171-1/+1
|
* 3511Kartik K. Agaram2016-10-161-3/+3
|
* 3510Kartik K. Agaram2016-10-162-37/+37
|