about summary refs log tree commit diff stats
path: root/082scenario_screen.cc
Commit message (Collapse)AuthorAgeFilesLines
* 4266 - space for alloc-id in heap allocationsKartik Agaram2018-06-241-24/+45
| | | | This has taken me almost 6 weeks :(
* 4258 - undo 4257Kartik Agaram2018-06-151-45/+24
|
* 4257 - abortive attempt at safe fat pointersKartik Agaram2018-06-151-24/+45
| | | | | | | | | | | | | | | | 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-4/+4
| | | | | | | | | | | | | | | | | | | | | 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?
* 4106Kartik K. Agaram2017-11-031-1/+1
|
* 3987Kartik K. Agaram2017-09-011-2/+2
|
* 3966Kartik K. Agaram2017-07-091-1/+1
|
* 3937Kartik K. Agaram2017-06-221-4/+8
| | | | | Fix screen-checking functions to handle fake screen after scrolling. I can't believe I forgot about this during commit 3882.
* 3907 - standardize test failure messagesKartik K. Agaram2017-06-151-24/+17
|
* 3877Kartik K. Agaram2017-05-261-2/+2
|
* 3643Kartik K. Agaram2016-11-071-1/+1
| | | | | Standardize on calling literate waypoints "Special-cases" rather than "Cases". Invariably there's a default path already present.
* 3561Kartik K. Agaram2016-10-221-2/+2
|
* 3531Kartik K. Agaram2016-10-201-2/+2
| | | | | Be consistent in checking for Scenario_testing_scenario when signalling that a Mu scenario failed.
* 3522Kartik K. Agaram2016-10-191-3/+3
|
* 3503Kartik K. Agaram2016-10-151-7/+7
| | | | | Undo commit 3500; turns out we need the duplicate scenario names for good test failure messages.
* 3501Kartik K. Agaram2016-10-151-2/+2
|
* 3500Kartik K. Agaram2016-10-151-7/+7
|
* 3429 - standardize Mu scenariosKartik K. Agaram2016-09-281-19/+19
| | | | | | | | | | | | | A long-standing problem has been that I couldn't spread code across 'run' blocks because they were separate scopes, so I've ended up making them effectively comments. Running code inside a 'run' block is identical in every way to simply running the code directly. The 'run' block is merely a visual aid to separate setup from the component under test. In the process I've also standardized all Mu scenarios to always run in a local scope, and only use (raw) numeric addresses for values they want to check later.
* 3393Kartik K. Agaram2016-09-171-4/+4
|
* 3390Kartik K. Agaram2016-09-171-2/+2
|
* 3389Kartik K. Agaram2016-09-171-9/+9
|
* 3385Kartik K. Agaram2016-09-171-1/+1
|
* 3379Kartik K. Agaram2016-09-171-18/+18
| | | | Can't use type abbreviations inside 'memory-should-contain'.
* 3374Kartik K. Agaram2016-09-161-2/+2
|
* 3273Kartik K. Agaram2016-08-281-5/+5
| | | | | | | | | | | Undo 3272. The trouble with creating a new section for constants is that there's no good place to order it since constants can be initialized using globals as well as vice versa. And I don't want to add constraints disallowing either side. Instead, a new plan: always declare constants in the Globals section using 'extern const' rather than just 'const', since otherwise constants implicitly have internal linkage (http://stackoverflow.com/questions/14894698/why-does-extern-const-int-n-not-work-as-expected)
* 3272Kartik K. Agaram2016-08-281-3/+3
| | | | | | Move global constants into their own section since we seem to be having trouble linking in 'extern const' variables when manually cleaving mu.cc into separate compilation units.
* 3251Kartik K. Agaram2016-08-251-6/+45
| | | | | Replace some asserts when checking scenario screens with better error messages.
* 3250Kartik K. Agaram2016-08-251-3/+6
|
* 3229 - fake file systems using 'assume-filesystem'Kartik K. Agaram2016-08-201-4/+5
| | | | Built with Stephen Malina.
* 3226Kartik K. Agaram2016-08-181-3/+3
|
* 3178Kartik K. Agaram2016-08-131-0/+5
|
* 3126Kartik K. Agaram2016-07-221-8/+2
|
* 3120Kartik K. Agaram2016-07-211-0/+7
| | | | | | | | Always show instruction before any transforms in error messages. This is likely going to make some errors unclear because they *need* to show the original instruction. But if we don't have tests for those situations did they ever really work?
* 3108Kartik K. Agaram2016-07-101-0/+3
|
* 3025 - fix a minor annoyance in edit/Kartik K. Agaram2016-05-291-3/+1
| | | | | 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.
* 2983 - migrate buttons over to sandbox/Kartik K. Agaram2016-05-191-0/+1
|
* 2864 - replace all address:shared with just addressKartik K. Agaram2016-04-241-11/+11
| | | | | | | Now that we no longer have non-shared addresses, we can just always track refcounts for all addresses. Phew!
* 2773 - switch to 'int'Kartik K. Agaram2016-03-131-19/+19
| | | | This should eradicate the issue of 2771.
* 2771 - fix for clang on 32-bit machinesKartik K. Agaram2016-03-131-2/+2
| | | | | | | | | | | Turns out that LLVM/Clang still doesn't support multiplying 64-bit numbers on a 32-bit platform. https://llvm.org/bugs/show_bug.cgi?id=14469 This is just a quick fix, because it turns out I don't have any integer multiplication anywhere else. In the long run I think I'm going to just drop 'long long int' in favor of 'int'. Overflow is less likely than this configuration on somebody's machine.
* 2735 - define recipes using 'def'Kartik K. Agaram2016-03-081-1/+1
| | | | | | | | | | | | I'm dropping all mention of 'recipe' terminology from the Readme. That way I hope to avoid further bike-shedding discussions while I very slowly decide on the right terminology with my students. I could be smarter in my error messages and use 'recipe' when code uses it and 'function' otherwise. But what about other words like ingredient? It would all add complexity that I'm not yet sure is worthwhile. But I do want separate experiences for veteran programmers reading about Mu on github and for people learning programming using Mu.
* 2712Kartik K. Agaram2016-02-261-5/+5
|
* 2709Kartik K. Agaram2016-02-251-1/+0
| | | | | Only Hide_errors when strictly necessary. In other places let test failures directly show the unexpected error.
* 2707Kartik K. Agaram2016-02-251-2/+0
|
* 2581 - make space for the refcount in address:sharedKartik K. Agaram2016-01-201-5/+5
| | | | | | | | | | | We don't yet actually maintain the refcount. That's next. Hardest part of this was debugging the assume-console scenarios in layer 85. That took some detailed manual diffing of traces (because the output of diff was no good). New tracing added in this commit add 8% to .traces LoC. Commented out trace() calls (used during debugging) make that 45%.
* 2576 - distinguish allocated addresses from othersKartik K. Agaram2016-01-191-11/+11
| | | | | | | | | | | | | | | | This is the one major refinement on the C programming model I'm planning to introduce in mu. Instead of Rust's menagerie of pointer types and static checking, I want to introduce just one new type, and use it to perform ref-counting at runtime. So far all we're doing is updating new's interface. The actual ref-counting implementation is next. One implication: I might sometimes need duplicate implementations for a recipe with allocated vs vanilla addresses of the same type. So far it seems I can get away with just always passing in allocated addresses; the situations when you want to pass an unallocated address to a recipe should be few and far between.
* 2548 - teach 'print' to print integersKartik K. Agaram2015-12-281-7/+14
| | | | | | | | | | Still can't print non-integer numbers, so this is a bit hacky. The big consequence is that you can't print literal characters anymore because of our rules about how we pick which variant to statically dispatch to. You have to save to a character variable first. Maybe I can add an annotation to literals..
* 2627Kartik K. Agaram2015-12-151-3/+3
|
* 2626Kartik K. Agaram2015-12-151-0/+2
|
* 2468 - overload print-character as just 'print'Kartik K. Agaram2015-11-211-7/+7
|
* 2463 - make edit/ robust to errors in client codeKartik K. Agaram2015-11-191-0/+2
|
9-12 10:57:28 +0200 committer Anselm R. Garbe <arg@10kloc.org> 2006-09-12 10:57:28 +0200 removed a bunch of lines through making function signatures more consistent with my style ( { does not belong to a new line, if function args are single-lined)' href='/acidbong/suckless/dwm/commit/main.c?h=5.7&id=ca65478c8968434c78aacf4a102ccbbe4a66ad9e'>ca65478 ^
3399650 ^








e6cbe9c ^
3399650 ^

adaa28a ^
ca65478 ^
727449d ^
1076f2b

dba2306 ^
bf35794 ^

b597fa4 ^
dba2306 ^

ca65478 ^
dba2306 ^
dc5d967 ^




1d7674b ^

dba2306 ^

dc5d967 ^
b597fa4 ^
4641aa2 ^

1076f2b
ca65478 ^
b5159df ^
dc5d967 ^
1076f2b
4970ef9 ^


1076f2b
4970ef9 ^

1076f2b


86d1224 ^
1076f2b
e571de8 ^
1076f2b


dba2306 ^

86d1224 ^
1076f2b
f60c597 ^
1076f2b
dba2306 ^

1076f2b
b6ad663 ^
f60c597 ^
dba2306 ^
2ffdc19 ^
1076f2b
b5159df ^
c0705ee ^
dba2306 ^
1076f2b
4e2c5b5 ^
0680c76 ^
b6ad663 ^
727449d ^
e3fd306 ^
0e5c819 ^
95e8d12 ^

e571de8 ^
b5159df ^

0e5c819 ^
b5159df ^
95e8d12 ^


0cf3ba0 ^
95e8d12 ^

c0705ee ^
0e5c819 ^

b5159df ^
b439892 ^
df74b26 ^
439e15d ^
1076f2b




1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296