about summary refs log tree commit diff stats
path: root/091run_interactive.cc
diff options
context:
space:
mode:
Diffstat (limited to '091run_interactive.cc')
-rw-r--r--091run_interactive.cc10
1 files changed, 8 insertions, 2 deletions
diff --git a/091run_interactive.cc b/091run_interactive.cc
index 25e02836..a883a5ae 100644
--- a/091run_interactive.cc
+++ b/091run_interactive.cc
@@ -107,6 +107,7 @@ bool run_interactive(long long int address) {
 }
 
 void run_code_begin() {
+//?   cerr << "loading new trace\n";
   // stuff to undo later, in run_code_end()
   Hide_warnings = true;
   Hide_errors = true;
@@ -119,6 +120,7 @@ void run_code_begin() {
 }
 
 void run_code_end() {
+//?   cerr << "back to old trace\n";
   Hide_warnings = false;
   Hide_errors = false;
   Disable_redefine_warnings = false;
@@ -127,6 +129,7 @@ void run_code_end() {
   Save_trace_stream = NULL;
   Trace_file = Save_trace_file;
   Save_trace_file.clear();
+  Recipe.erase(get(Recipe_ordinal, "interactive"));  // keep past sandboxes from inserting errors
 }
 
 :(before "End Load Recipes")
@@ -417,6 +420,7 @@ case RELOAD: {
 }
 :(before "End Primitive Recipe Implementations")
 case RELOAD: {
+//?   cerr << "== reload\n";
   // clear any containers in advance
   for (long long int i = 0; i < SIZE(recently_added_types); ++i) {
     Type_ordinal.erase(get(Type, recently_added_types.at(i)).name);
@@ -427,15 +431,17 @@ case RELOAD: {
   routine* save_current_routine = Current_routine;
   Current_routine = NULL;
   vector<recipe_ordinal> recipes_reloaded = load(code);
-  for (long long int i = 0; i < SIZE(recipes_reloaded); ++i) {
+  // clear a few things from previous runs
+  // ad hoc list; we've probably missed a few
+  for (long long int i = 0; i < SIZE(recipes_reloaded); ++i)
     Name.erase(recipes_reloaded.at(i));
-  }
   transform_all();
   Trace_stream->newline();  // flush trace
   Current_routine = save_current_routine;
   products.resize(1);
   products.at(0).push_back(trace_error_warning_contents());
   run_code_end();  // wait until we're done with the trace contents
+//?   cerr << "reload done\n";
   break;
 }
 
>
82ac0b7e ^


bc643692 ^
a91c1c2a ^
bc643692 ^

5497090a ^
82ac0b7e ^

d9025124 ^
82ac0b7e ^


436b2b2e ^
2199940a ^
82ac0b7e ^
363be37f ^
82ac0b7e ^
436b2b2e ^
b2e4056d ^
82ac0b7e ^

363be37f ^
795f5244 ^
57d01f21 ^
795f5244 ^

82ac0b7e ^
ac0e9db5 ^
ab6ed192 ^
0487a30e ^
c6034af3 ^

795f5244 ^
c6034af3 ^
795f5244 ^
c6034af3 ^
795f5244 ^
c6034af3 ^
5f98a10c ^
82ac0b7e ^

ae256ea1 ^

795f5244 ^
35064671 ^

ae256ea1 ^

f3760b0f ^
795f5244 ^
c157066c ^
82ac0b7e ^

795f5244 ^
57d01f21 ^




795f5244 ^
82ac0b7e ^



82ac0b7e ^


363be37f ^

82ac0b7e ^
5f98a10c ^
82ac0b7e ^

ae256ea1 ^


82ac0b7e ^
363be37f ^


82ac0b7e ^




363be37f ^
82ac0b7e ^
f3760b0f ^
5f98a10c ^
ac0e9db5 ^
5f98a10c ^
82ac0b7e ^
5f98a10c ^
82ac0b7e ^








363be37f ^
82ac0b7e ^
f3760b0f ^
795f5244 ^
82ac0b7e ^





5f98a10c ^
ac0e9db5 ^

82ac0b7e ^
ae256ea1 ^

5f98a10c ^
e4630643 ^

ae256ea1 ^
82ac0b7e ^
f3760b0f ^
82ac0b7e ^
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