about summary refs log tree commit diff stats
path: root/101run_sandboxed.cc
Commit message (Collapse)AuthorAgeFilesLines
* 4421Kartik Agaram2018-07-261-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Clean up the rat's nest that all my trace management globals had gradually turned into. a) Get rid of 'Start_tracing'. Horryibly named, I don't know how I missed that until now. b) Never use START_TRACING_UNTIL_END_OF_SCOPE in main(). It's confusing to combine it with atexit(delete Trace_stream), because the atexit() never has to run. Instead we'll just manually initialize Trace_stream and let atexit() clean up. c) If we run tests we only want a trace for the test run itself. So delete the Trace_stream that was initialized at the top of main -- once it's clear we had no load-time errors. d) Clean up horribly "Load Recipes" waypoints, combine them with the better name, "Mu Prelude". Putting these together, we have the following manual tests: - CFLAGS=-g mu x.mu Should not create last_run. - CFLAGS=-g mu --trace x.mu Should create last_run. Should write it out exactly once. - CFLAGS=-g mu --trace x.mu # when x.mu has an error Should create last_run. Should write it out exactly once. - CFLAGS=-g mu --trace test copy_literal # C test Should create last_run. Should write it out exactly once. - CFLAGS=-g mu --trace test recipe_with_header # Mu test Should create last_run. Should write it out exactly once. I don't know how to automate these scenarios yet. We need a way to run our build toolchain atop our stack.
* 4266 - space for alloc-id in heap allocationsKartik Agaram2018-06-241-51/+86
| | | | This has taken me almost 6 weeks :(
* 4258 - undo 4257Kartik Agaram2018-06-151-67/+44
|
* 4257 - abortive attempt at safe fat pointersKartik Agaram2018-06-151-44/+67
| | | | | | | | | | | | | | | | I've been working on this slowly over several weeks, but it's too hard to support 0 as the null value for addresses. I constantly have to add exceptions for scalar value corresponding to an address type (now occupying 2 locations). The final straw is the test for 'reload': x:num <- reload text 'reload' returns an address. But there's no way to know that for arbitrary instructions. New plan: let's put this off for a bit and first create support for literals. Then use 'null' instead of '0' for addresses everywhere. Then it'll be easy to just change what 'null' means.
* 4088Kartik K. Agaram2017-10-211-1/+1
| | | | | I no longer remember why we were disabling memory reclamation inside sandboxes. Everything seems to be working. Just take it out.
* 3966Kartik K. Agaram2017-07-091-1/+1
|
* 3907 - standardize test failure messagesKartik K. Agaram2017-06-151-2/+2
|
* 3888 - beginnings of a profilerKartik K. Agaram2017-05-281-0/+5
| | | | Time to make my ad hoc commented out code fragments a first-class feature.
* 3805Kartik K. Agaram2017-03-201-3/+45
|
* 3803Kartik K. Agaram2017-03-201-1/+0
|
* 3802 - more accurate sandbox resultsKartik K. Agaram2017-03-201-1/+21
| | | | Thanks Lakshman Swaminathan for reporting this issue.
* 3801Kartik K. Agaram2017-03-201-5/+5
|
* 3730Kartik K. Agaram2017-01-061-0/+8
| | | | | | | Properly support reloading lessons containing scenarios in edit/ and sandbox/ apps. I was so sure I tested this for commit 3724, but apparently not.
* 3705 - switch to tested file-system primitivesKartik K. Agaram2016-12-111-1/+1
|
* 3561Kartik K. Agaram2016-10-221-2/+2
|
* 3409Kartik K. Agaram2016-09-221-0/+4
| | | | | | | Support reloading the recipe side of the edit/ app when it includes type abbreviations. Thanks Ella Couch for reporting this problem.
* 3408Kartik K. Agaram2016-09-221-11/+1
|
* 3390Kartik K. Agaram2016-09-171-5/+5
|
* 3389Kartik K. Agaram2016-09-171-3/+3
|
* 3388Kartik K. Agaram2016-09-171-1/+1
|
* 3385Kartik K. Agaram2016-09-171-16/+16
|
* 3379Kartik K. Agaram2016-09-171-4/+4
| | | | Can't use type abbreviations inside 'memory-should-contain'.
* 3377Kartik K. Agaram2016-09-171-25/+25
|
* 3374Kartik K. Agaram2016-09-161-10/+10
|
* 3367Kartik K. Agaram2016-09-151-8/+24
| | | | | | | | | | | | | | | | | | | | | | Solution to a minor puzzle that came up during today's lesson with Ella: some sandboxes were showing the address of text results, while others were showing their contents. It took a while to realize that the distinction lay in whether the sandbox was saving the results in a text variable: new [abc] => <some address> x:text <- new [abc] => abc It took *much* longer to realize why I couldn't make the first case work like the second. Eventually I realized why: recipes were reclaiming their results if they weren't 'escaping' -- that is, being saved in a variable in the caller so they could be used later. Any solution to this would be a hack, so I'm going to just leave it alone. Type abbreviations should help minimize the extra typing needed to get sandboxes to show text contents.
* 3269Kartik K. Agaram2016-08-281-1/+0
| | | | | | | | | Deconstruct the tracing layer which had been an exception to our includes-types-prototypes-globals-functions organization thus far. To do this we predefine a few primitive globals before the types that use them, and we pull some method definitions out of struct definitions at the cost of having to manually write a couple of prototypes.
* 3230Kartik K. Agaram2016-08-201-0/+518