about summary refs log tree commit diff stats
Commit message (Collapse)AuthorAgeFilesLines
* 3047 - fix another hole in refcount managementKartik K. Agaram2016-06-111-26/+56
| | | | | | This wouldn't have failed silently; I have that fig leaf. If someone had tried to copy an exclusive container containing an exclusive container containing an address Mu would have crashed on them.
* 3046Kartik K. Agaram2016-06-112-4/+4
|
* 3045 - generalize core refcounting data structureKartik K. Agaram2016-06-112-27/+68
|
* 3044Kartik K. Agaram2016-06-111-0/+1
|
* 3043Kartik K. Agaram2016-06-102-19/+10
|
* 3042Kartik K. Agaram2016-06-101-2/+2
|
* 3041 - fix 3039 in sandbox/ as wellKartik K. Agaram2016-06-092-0/+42
|
* 3040 - improve an error messageKartik K. Agaram2016-06-091-8/+8
|
* 3039 - bug fix in edit/Kartik K. Agaram2016-06-092-0/+43
| | | | Thanks Caleb Couch for finding this.
* 3038 - track down a long-standing bugKartik K. Agaram2016-06-082-50/+112
| | | | | | | | | | | | | | | | | | | | | | | | | | | In some rare situations the editor would join a line with the next when it should simply wrap to the next screen row. Thanks Caleb and Ella Couch for finally running into a situation that was easy to reproduce. The scenario diffs are misleading on this commit. I had to: a) delete the obsolete 'editor-wraps-cursor-after-inserting-characters' because it was written back when a line just large enough to fit in a single line would not wrap: | | <-- screen boundary abcde These days it will wrap after making room for the wrap indicator: | | <-- screen boundary abcd↩ e b) rename editor-wraps-cursor-after-inserting-characters-2 to editor-wraps-cursor-after-inserting-characters-in-middle-of-line c) create a new scenario demonstrating the bug: editor-wraps-cursor-after-inserting-characters-at-end-of-line
* 3037Kartik K. Agaram2016-06-071-8/+12
| | | | | | By disabling lookups on the product of 'create-array', I'd messed it up so we were treating the product as a raw address and ignoring default-space. Just remove that exception.
* 3036Kartik K. Agaram2016-06-061-1/+27
| | | | | | | Drastically streamlined floating-point overflow/underflow detection. For some reason I can't find a way to actually handle SIGFPE traps; they have to segfault the program.
* 3035Kartik K. Agaram2016-06-061-33/+0
| | | | | | | | I'd included handling for SIGFPE on faith but I'm not actually able to see it triggering. Drop it until we can at least test it manually. In general, floating-point is horrendous: https://hal.archives-ouvertes.fr/hal-00576641v1/document. Neither types nor tests will help deal with it.
* 3034Kartik K. Agaram2016-06-051-0/+7
|
* 3033Kartik K. Agaram2016-06-021-0/+1
|
* 3032Kartik K. Agaram2016-06-022-2/+2
|
* 3031 - better integer overflow protectionKartik K. Agaram2016-06-021-1/+68
| | | | | | | | | | | | | | | | | | | | | | This improves on commit 3026; it turns out you need to manually handle the traps generated by -ftrapv. https://gist.github.com/mastbaum/1004768 Signal handling is based on https://spin.atomicobject.com/2013/01/13/exceptions-stack-traces-c. Various combinations of platform+compiler seem to work very differently: gcc everywhere seems to have extremely threadbare ftrapv support Clang + OSX generates SIGILL. Clang + Linux is advertised to generate SIGABRT, so I handle that out of an excess of caution. However, in my experience it seems to kill the program (sometimes segfaulting) even without any signal handlers installed. In the process, I realized that all my current builds are using Clang, so I added one little test on CI to use g++ in commit 3029.
* 3030Kartik K. Agaram2016-06-021-3/+4
|
* 3029Kartik K. Agaram2016-06-022-0/+8
|
* 3028Kartik K. Agaram2016-06-021-1/+2
| | | | | | | Stop depending on the LLVM apt repo in CI: http://lists.llvm.org/pipermail/llvm-dev/2016-May/100303.html (Thanks Travis CI support.)
* 3027Kartik K. Agaram2016-06-027-20/+20
|
* 3026 - integer overflow protectionKartik K. Agaram2016-06-022-3/+3
| | | | | | | How did I not know about -ftrapv for so long?! Found while reading Memarian et al, "Into the depths of C: Elaborating the de facto standards". http://www.cl.cam.ac.uk/~pes20/cerberus/pldi16.pdf
* 3025 - fix a minor annoyance in edit/Kartik K. Agaram2016-05-292-6/+158
| | | | | When I floor the down-arrow too much, don't scroll unnecessarily off the bottom of the screen. But *do* scroll if there's errors to show.
* 3024Kartik K. Agaram2016-05-281-1/+1
|
* 3023Kartik K. Agaram2016-05-281-1/+1
|
* 3022Kartik K. Agaram2016-05-274-20/+79
| | | | Clean up 3020.
* 3021Kartik K. Agaram2016-05-274-101/+120
|
* 3020 - names in chessboard testsKartik K. Agaram2016-05-263-96/+118
| | | | | | | | Extremely ugly change. Also ended up fixing some places where I was mixing up sources and sinks. But I'm not going to bother updating edit/ and sandbox/ apps. Just too many scenarios to clean up.
* 3018Kartik K. Agaram2016-05-261-5/+2
|
* 3017Kartik K. Agaram2016-05-268-648/+696
|
* 3016Kartik K. Agaram2016-05-261-2/+2
|
* 3015 - more symbolic names in testsKartik K. Agaram2016-05-267-521/+569
| | | | | | There's still a problem: if I ever want to use any of the special scenario variables like 'screen', 'console', etc., then I can't use 'local-scope' in my scenario.
* 3014Kartik K. Agaram2016-05-261-126/+126
| | | | | Tests are clearer if memory locations look different from other literal values.
* 3013Kartik K. Agaram2016-05-2612-342/+356
|
* 3012Kartik K. Agaram2016-05-261-209/+255
| | | | Clean up old tests after https://news.ycombinator.com/item?id=11779013
* 3011Kartik K. Agaram2016-05-251-0/+0
|
* 3010Kartik K. Agaram2016-05-251-2/+2
| | | | | | | | | | insert_container is getting pretty gnarly. It's spread across two layers (containers and shape-shifting containers), and since it has to deal with extending existing containers it's coiled in on itself, constantly reading and writing the Type table. Maybe I should uncoil the case of extending a container and make it separate from defining a new container.
* 3009Kartik K. Agaram2016-05-251-2/+6
|
* 3008Kartik K. Agaram2016-05-252-5/+5
|
* 3007 - warn on unused result in 'not'Kartik K. Agaram2016-05-251-2/+2
|
* 3006Kartik K. Agaram2016-05-242-8/+9
|
* 3005Kartik K. Agaram2016-05-241-32/+0
| | | | | | Drop those tests now that we've confirmed over the last few commits that they work. The new test introduced in the bugfix of commit 3003 takes over their duties.
* 3004 - print non-integers correctlyKartik K. Agaram2016-05-241-74/+27
| | | | | | Thanks Caleb Couch for finding this hole, and for noticing that it made a bug in binary-search harder to find. For now we'll just rely on the host's support for printing floating-point.
* 3003Kartik K. Agaram2016-05-242-2/+32
| | | | | | Bugfix: overriding a primitive recipe with a generic variant that takes an address of something shouldn't mask the primitive when you call it with literal 0.
* 3002Kartik K. Agaram2016-05-241-0/+1
|
* 3001Kartik K. Agaram2016-05-243-11/+18
|
* 3000Kartik K. Agaram2016-05-241-1/+1
|
* 2999Kartik K. Agaram2016-05-241-2/+2
|
* 2998Kartik K. Agaram2016-05-242-4/+8
|
* 2997 - new version of http://akkartik.name/aboutKartik K. Agaram2016-05-232-7/+7
|