about summary refs log tree commit diff stats
path: root/038new_text.cc
Commit message (Collapse)AuthorAgeFilesLines
* 4266 - space for alloc-id in heap allocationsKartik Agaram2018-06-241-32/+41
| | | | This has taken me almost 6 weeks :(
* 4265Kartik Agaram2018-06-171-2/+2
| | | | Standardize use of type ingredients some more.
* 4258 - undo 4257Kartik Agaram2018-06-151-42/+30
|
* 4257 - abortive attempt at safe fat pointersKartik Agaram2018-06-151-30/+42
| | | | | | | | | | | | | | | | 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.
* 4179 - experiment: rip out memory reclamationKartik K. Agaram2018-01-031-8/+5
| | | | | | | | | | | | | | | | | | | | | I have a plan for a way to avoid use-after-free errors without all the overheads of maintaining refcounts. Has the nice side-effect of requiring manual memory management. The Mu way is to leak memory by default and build tools to help decide when and where to expend effort plugging memory leaks. Arguably programs should be distributed with summaries of their resource use characteristics. Eliminating refcount maintenance reduces time to run tests by 30% for `mu edit`: this commit parent mu test: 3.9s 4.5s mu test edit: 2:38 3:48 Open questions: - making reclamation easier; some sort of support for destructors - reclaiming local scopes (which are allocated on the heap) - should we support automatically reclaiming allocations inside them?
* 4104Kartik K. Agaram2017-11-031-4/+4
| | | | | Stop hardcoding Max_depth everywhere; we had a default value for a reason but then we forgot all about it.
* 3917Kartik K. Agaram2017-06-161-1/+0
| | | | Redo commit 3905 to always shutdown cleanly on any error raised.
* 3909Kartik K. Agaram2017-06-151-4/+7
| | | | | | | | | In tests where a text has the wrong length, properly show the text observed to help debug failures. We now also consistently say 'text' in Mu errors, never 'string'. Thanks Ella Couch for reporting this long-standing issue.
* 3905Kartik K. Agaram2017-06-101-1/+2
| | | | | | | Standardize exit paths. Most layers now don't need to know about termbox. We can't really use `assert` in console-mode apps; it can't just exit because we want to be able to check assertion failures in tests.
* 3877Kartik K. Agaram2017-05-261-1/+1
|
* 3847Kartik K. Agaram2017-05-061-1/+1
| | | | | Fix a crash on an invalid program. Thanks Lakshman Swaminathan for reporting this issue.
* 3809Kartik K. Agaram2017-04-041-1/+1
|
* 3799Kartik K. Agaram2017-03-181-1/+1
|
* 3694Kartik K. Agaram2016-11-261-1/+44
| | | | Fix CI, broken by commit 3691.
* 3678 - complain about string labelsKartik K. Agaram2016-11-151-0/+9
| | | | Thanks Jack Couch for running into this.
* 3671 - support text in '$print'Kartik K. Agaram2016-11-121-0/+5
|
* 3669Kartik K. Agaram2016-11-111-1/+1
|
* 3668 - $read a word, stopping at whitespaceKartik K. Agaram2016-11-111-0/+30
| | | | | | | | | | | | Useful for programming contests like https://halite.io Doesn't suffer from C++'s usual buffered gotchas: it'll skip leading whitespace. Slow, though. Can be speeded up, though. - 20 minutes later But what's the point? Typewriter mode is actually harder to test than 'raw' console mode. Writing Mu programs in typewriter mode is just going to encourage us all to slack off on writing tests.
* 3561Kartik K. Agaram2016-10-221-1/+1
|
* 3522Kartik K. Agaram2016-10-191-2/+2
|
* 3393Kartik K. Agaram2016-09-171-1/+1
|
* 3380Kartik K. Agaram2016-09-171-2/+2
| | | | | One more place we were missing expanding type abbreviations: inside container definitions.
* 3379Kartik K. Agaram2016-09-171-3/+3
| | | | Can't use type abbreviations inside 'memory-should-contain'.
* 3376 - start maximally using all type abbreviationsKartik K. Agaram2016-09-171-14/+14
| | | | | | It might be too much, particularly if students start peeking inside .mu files early. But worth a shot for not just to iron out the kinks in the abbreviation system.
* 3375Kartik K. Agaram2016-09-171-1/+5
|
* 3374Kartik K. Agaram2016-09-161-9/+9
|
* 3260Kartik K. Agaram2016-08-261-2/+2
| | | | | array length = number of elements array size = in locations
* 3259Kartik K. Agaram2016-08-261-2/+2
| | | | | | | | | | | Prefer preincrement operators wherever possible. Old versions of compilers used to be better at optimizing them. Even if we don't care about performance it's useful to make unary operators look like unary operators wherever possible, and to distinguish the 'statement form' which doesn't care about the value of the expression from the postincrement which usually increments as a side-effect in some larger computation (and so is worth avoiding except for some common idioms, or perhaps even there).
* 3257Kartik K. Agaram2016-08-261-16/+14
|
* 3256Kartik K. Agaram2016-08-261-0/+3
| | | | | Bugfix in filesystem creation. I'm sure there are other fake-filesystem bugs.
* 3079Kartik K. Agaram2016-06-291-1/+1
|
* 3074Kartik K. Agaram2016-06-291-0/+11
| | | | Thanks Ella Couch for finding this bug.
* 2998Kartik K. Agaram2016-05-241-1/+1
|
* 2932Kartik K. Agaram2016-05-061-1/+1
| | | | | | | More consistent labeling of waypoints. Use types only when you need to distinguish between function overloadings. Otherwise just use variable names unless it's truly not apparent what they are (like that the result is a recipe in "End Rewrite Instruction").
* 2895Kartik K. Agaram2016-05-031-0/+123