More reliable ctrl-c

master
Mark 2022-11-12 17:47:41 -08:00
parent b26d968884
commit 495c947441
Signed by: Mark
GPG Key ID: AD62BB059C2AAEE4
1 changed files with 43 additions and 41 deletions

View File

@ -127,6 +127,7 @@ class Runner:
skip_to_end = False skip_to_end = False
try:
while ( while (
( (
(self.reduction_limit is None) or (self.reduction_limit is None) or
@ -141,11 +142,8 @@ class Runner:
): ):
print(f" Reducing... {k:,}", end = "\r") print(f" Reducing... {k:,}", end = "\r")
try: # Reduce
red_type, node = lamb_engine.nodes.reduce(node) red_type, node = lamb_engine.nodes.reduce(node)
except KeyboardInterrupt:
stop_reason = StopReason.INTERRUPT
break
# If we can't reduce this expression anymore, # If we can't reduce this expression anymore,
# it's in beta-normal form. # it's in beta-normal form.
@ -175,6 +173,10 @@ class Runner:
("class:warn", "Skipping to end."), ("class:warn", "Skipping to end."),
]), style = lamb_engine.utils.style) ]), style = lamb_engine.utils.style)
# Gracefully catch keyboard interrupts
except KeyboardInterrupt:
stop_reason = StopReason.INTERRUPT
# Print a space between step messages # Print a space between step messages
if self.step_reduction: if self.step_reduction:
print("") print("")