Commit message (Collapse) | Author | Age | Files | Lines | ||
---|---|---|---|---|---|---|
... | ||||||
* | 373 | Kartik K. Agaram | 2014-11-28 | 1 | -6/+5 | |
| | ||||||
* | 372 - size check for arrays | Kartik K. Agaram | 2014-11-28 | 1 | -2/+5 | |
| | ||||||
* | 371 - bugfix: don't read destination when writing array | Kartik K. Agaram | 2014-11-28 | 1 | -3/+10 | |
| | | | | | Finally we've gotten to one of the top-level bugs uncovered by 'interpolate'. | |||||
* | 370 - unit tests for 'setm' | Kartik K. Agaram | 2014-11-28 | 1 | -4/+7 | |
| | ||||||
* | 369 | Kartik K. Agaram | 2014-11-28 | 1 | -4/+4 | |
| | ||||||
* | 368 - replace 'sz' with our new 'sizeof' | Kartik K. Agaram | 2014-11-28 | 1 | -21/+6 | |
| | ||||||
* | 366 - reorg run's helpers | Kartik K. Agaram | 2014-11-28 | 1 | -142/+155 | |
| | | | | | First step to using our new 'deref' and 'absolutize' helpers more coherently. | |||||
* | 365 - new primitives let us generalize 'addr' | Kartik K. Agaram | 2014-11-28 | 1 | -4/+5 | |
| | ||||||
* | 364 | Kartik K. Agaram | 2014-11-28 | 1 | -16/+2 | |
| | ||||||
* | 363 | Kartik K. Agaram | 2014-11-28 | 1 | -1/+14 | |
| | ||||||
* | 362 | Kartik K. Agaram | 2014-11-28 | 1 | -0/+1 | |
| | | | | Gaining confidence.. | |||||
* | 361 - *now* 'sizeof' on array pointers | Kartik K. Agaram | 2014-11-28 | 1 | -0/+4 | |
| | ||||||
* | 360 - back up, let's create a new 'deref' helper | Kartik K. Agaram | 2014-11-28 | 1 | -0/+13 | |
| | ||||||
* | 359 - 'sizeof' supports 'deref' pointers | Kartik K. Agaram | 2014-11-28 | 1 | -1/+6 | |
| | | | | Just non-arrays for now. | |||||
* | 358 - start of 'sizeof' support for arrays | Kartik K. Agaram | 2014-11-28 | 1 | -0/+4 | |
| | ||||||
* | 356 - high time 'sizeof' supported operands | Kartik K. Agaram | 2014-11-28 | 1 | -12/+14 | |
| | ||||||
* | 354 - stepping back, test-driving 'addr' helper again | Kartik K. Agaram | 2014-11-28 | 1 | -1/+2 | |
| | ||||||
* | 352 - 'interpolate' as a poor man's printf | Kartik K. Agaram | 2014-11-27 | 1 | -0/+73 | |
| | ||||||
* | 351 - break/loop from nested blocks | Kartik K. Agaram | 2014-11-27 | 1 | -10/+14 | |
| | ||||||
* | 350 | Kartik K. Agaram | 2014-11-27 | 1 | -9/+9 | |
| | ||||||
* | 349 - jump to label | Kartik K. Agaram | 2014-11-27 | 1 | -3/+28 | |
| | ||||||
* | 348 | Kartik K. Agaram | 2014-11-27 | 1 | -2/+2 | |
| | ||||||
* | 347 - allow 'arg' channel to be rewound | Kartik K. Agaram | 2014-11-27 | 1 | -9/+9 | |
| | ||||||
* | 345 | Kartik K. Agaram | 2014-11-27 | 1 | -20/+2 | |
| | ||||||
* | 344 - about to give up on rewrite rules | Kartik K. Agaram | 2014-11-27 | 1 | -5/+10 | |
| | | | | | | | | | | | | | | | | | I wanted to come up with some way to rewrite 'def-clause foo' to 'after foo/more-clauses', something like: rewrite def-clause [ (fn-name string-address) <- arg (label-name string-address) <- strcat (fn-name string-address deref) ("/more-clauses" literal) (body expr) <- arg reply `(after ,label-name ,body) ] But the quasiquote is still a nested expression that doesn't fit our model well. Still an open question how to do template interpolation in mu. | |||||
* | 343 - experiment: rewrite rules | Kartik K. Agaram | 2014-11-27 | 1 | -2/+17 | |
| | | | | We'll worry later about implementing them in mu. | |||||
* | 342 - strcat | Kartik K. Agaram | 2014-11-27 | 1 | -1/+50 | |
| | ||||||
* | 341 - standardize traces again | Kartik K. Agaram | 2014-11-27 | 1 | -0/+1 | |
| | ||||||
* | 340 | Kartik K. Agaram | 2014-11-26 | 1 | -0/+1 | |
| | ||||||
* | 339 - string literals for convenience | Kartik K. Agaram | 2014-11-26 | 1 | -7/+19 | |
| | | | | | | I'm cheating a little when it comes to strings, making use of Racket primitives. But in principle it seems like a local transform to implement even in machine code. | |||||
* | 338 - starting to work on string primitives | Kartik K. Agaram | 2014-11-26 | 1 | -1/+1 | |
| | ||||||
* | 337 - rename 'continue' instructions to 'loop' | Kartik K. Agaram | 2014-11-26 | 1 | -10/+10 | |
| | ||||||
* | 336 | Kartik K. Agaram | 2014-11-26 | 1 | -1/+0 | |
| | ||||||
* | 335 - tangle at labels scoped to functions | Kartik K. Agaram | 2014-11-26 | 1 | -5/+7 | |
| | ||||||
* | 332 - example function with multiple clauses | Kartik K. Agaram | 2014-11-26 | 1 | -0/+2 | |
| | | | | | | | | | | | I'm still figuring out the idioms, and it doesn't seem like there's an easy way to avoid redundant allocations and arg reading. At least for generic functions we want to optimize for each call-site, we can create subsidiary labels to jump to. Also, this is the first genuine use for random access to a function's arguments. | |||||
* | 325 - example program using channels | Kartik K. Agaram | 2014-11-25 | 1 | -0/+1 | |
| | ||||||
* | 323 - function clauses | Kartik K. Agaram | 2014-11-24 | 1 | -2/+6 | |
| | | | | | | | | | | | You can now call 'def' on a function name multiple times. Each time the instructions you provide are *prepended* to any existing instructions. One important use for this is when you define a new type and need to support it in all your generic methods. Now you can keep all those extensions in one place, near the definition of the type. To redefine a function, use 'def!'. | |||||
* | 321 - before/after can now come anywhere | Kartik K. Agaram | 2014-11-24 | 1 | -7/+9 | |
| | | | | | | This pollutes our traces with all 'system software'. Too much trouble to keep it out; just lump it for now. Who knows, might even be useful. Most of the time convert* labels are easy to grep out when debugging. | |||||
* | 320 | Kartik K. Agaram | 2014-11-24 | 1 | -1/+1 | |
| | ||||||
* | 319 - ack, forgot to handle blocks when tangling | Kartik K. Agaram | 2014-11-24 | 1 | -13/+22 | |
| | | | | | | | | | | | | Will the 'lightweight tools' really be all that useable if we encourage people to layer them one atop another and track precisely what inputs each can accept? Something to keep an eye on. In the meanwhile, we have a new (but very unrealistic) example demonstrating the tangling directives. There's still a big constraint on ordering: before/after clauses have to come before functions that need them. | |||||
* | 318 | Kartik K. Agaram | 2014-11-24 | 1 | -0/+7 | |
| | ||||||
* | 317 | Kartik K. Agaram | 2014-11-24 | 1 | -79/+83 | |
| | ||||||
* | 315 - handle before/after uniformly like def | Kartik K. Agaram | 2014-11-24 | 1 | -16/+22 | |
| | ||||||
* | 314 - better syntax for functions | Kartik K. Agaram | 2014-11-24 | 1 | -3/+5 | |
| | ||||||
* | 313 - tangling primitives | Kartik K. Agaram | 2014-11-24 | 1 | -2/+33 | |
| | ||||||
* | 312 | Kartik K. Agaram | 2014-11-24 | 1 | -7/+9 | |
| | ||||||
* | 311 | Kartik K. Agaram | 2014-11-24 | 1 | -3/+3 | |
| | ||||||
* | 306 - 'sleep' now watches for changes to a location | Kartik K. Agaram | 2014-11-23 | 1 | -21/+8 | |
| | | | | | | | | | | | | This simplifies things a lot and eliminates the race condition. I think it's practical too, as long as you save a single location and don't permit sleeping on compound structures. I'm resigned to needing a lock in the native setting. Should I be concerned that I fixed a failing test by getting rid of hit? If I had alternatives, how would I save the old sleep implementation? | |||||
* | 305 - simplify wakeup to not require routine* | Kartik K. Agaram | 2014-11-23 | 1 | -7/+2 | |
| | ||||||
* | 304 - a unit test for a race condition | Kartik K. Agaram | 2014-11-23 | 1 | -0/+6 | |
| | | | | | | | | | | | Still failing, but worth memorializing for posterity. Race condition tests are still experimental, even more tied to a very specific implementation. If I make changes to 'write' the very 'wipe-read' label will go away. But then you just delete all tests relying on stale labels and try to think up new race conditions. |