Merge.
Merge.
1.1 --- a/ambuild2/database.py Wed Nov 13 16:23:04 2013 -0800
1.2 +++ b/ambuild2/database.py Fri Nov 15 19:55:42 2013 -0800
1.3 @@ -422,6 +422,7 @@
1.4 'Could not unmark file as dirty; leaving dirty.',
1.5 util.ConsoleNormal
1.6 )
1.7 + return
1.8
1.9 self.cn.execute(query, (stamp, entry.id))
1.10 entry.dirty = False
2.1 --- a/ambuild2/frontend/amb2/gen.py Wed Nov 13 16:23:04 2013 -0800
2.2 +++ b/ambuild2/frontend/amb2/gen.py Fri Nov 15 19:55:42 2013 -0800
2.3 @@ -399,7 +399,7 @@
2.4 for outgoing in self.db.query_strong_outgoing(cmd_entry):
2.5 if outgoing not in must_link:
2.6 self.db.drop_strong_edge(cmd_entry, outgoing)
2.7 - self.old_outputs.add(outgoing)
2.8 + self.db.drop_output(outgoing)
2.9 else:
2.10 must_link.remove(outgoing)
2.11
2.12 @@ -459,12 +459,12 @@
2.13 def parseCxxDeps(self, context, binary, inputs, items):
2.14 for val in items:
2.15 if util.IsString(val):
2.16 - if os.path.isabs(val):
2.17 - inputs.append(val)
2.18 continue
2.19
2.20 if util.IsLambda(val.node):
2.21 item = val.node(context, binary)
2.22 + elif val.node is None:
2.23 + item = val.text
2.24 else:
2.25 item = val.node
2.26
4.1 --- a/ambuild2/task.py Wed Nov 13 16:23:04 2013 -0800
4.2 +++ b/ambuild2/task.py Fri Nov 15 19:55:42 2013 -0800
4.3 @@ -96,7 +96,12 @@
4.4 new_timestamps = []
4.5 if response['ok']:
4.6 for output in message['task_outputs']:
4.7 - new_timestamps.append((output, os.path.getmtime(output)))
4.8 + try:
4.9 + new_timestamps.append((output, os.path.getmtime(output)))
4.10 + except:
4.11 + response['ok'] = False
4.12 + response['stderr'] += 'Expected output file, but not found: {0}'.format(output)
4.13 + break
4.14
4.15 # Send a message back to the master process to update the DAG and spew
4.16 # stdout/stderr if needed.