From f55b8b34f6a38c8dbbe57b14a640fc5fc97c4cee Mon Sep 17 00:00:00 2001 From: Jack Conger Date: Sun, 7 Dec 2025 08:00:07 -0800 Subject: [PATCH 1/2] Make esdebug work with current es. --- esdebug | 40 ++++++++++++++++++++++++++-------------- 1 file changed, 26 insertions(+), 14 deletions(-) diff --git a/esdebug b/esdebug index 4d0798f8..aa327142 100755 --- a/esdebug +++ b/esdebug @@ -1,4 +1,4 @@ -#! /bin/es -p +#!/usr/local/bin/es -p # esdebug: a debugger for es scripts ($Revision: 1.1.1.1 $) # TODO @@ -37,7 +37,7 @@ fn _print { } fn _get { - $&seq {echo >[1=3] -n $*} {return `{line <[0=3]}} + $&seq {echo >[1=3] -n $*} {%split ' '\t <={%read <[0=3]}} } _prompt = '(esdebug) ' @@ -173,7 +173,7 @@ _debug-watch = @ vars { } { _print new $var '=' $* } { - return $* + result $* } } } @@ -196,7 +196,7 @@ _debug-trap = @ vars { local (old = $$var; new = $*) _debug break } { - return $* + result $* } } } @@ -258,13 +258,14 @@ let (commands =) { # the main debugger loop # +let (fn-while = $fn-while) fn-_debug = $&noreturn @ { $&if {~ $1 break || $_stepping} { <= { - $&while { + while { let (cmd = <={_get $_prompt}) { $&seq { - $&while {~ $cmd(1) $_prompt} { + while {~ $cmd(1) $_prompt} { cmd = $cmd(2 ...) } } { @@ -289,7 +290,8 @@ fn-_debug = $&noreturn @ { # history = -fn %interactive-loop dispatch { +let (fn-while = $fn-while) +fn %interactive-loop { let (result = <= true) { catch @ e type msg { $&if {~ $e eof} { @@ -298,7 +300,13 @@ fn %interactive-loop dispatch { } { _debug break } { - return $result + result $result + } + } {~ $e exit} { + $&seq { + _print exiting ... + } { + result $type } } { $&seq { @@ -315,20 +323,24 @@ fn %interactive-loop dispatch { $&seq { _print parsing input from $_program: } { - $&while {~ $#cmd 0} { + while {~ $#cmd 0} { cmd = <={%parse} } } { _debug } { - catch @ e { - $&seq { - _print exception: $e + catch @ e rest { + if {~ $e exit} { + throw $e $rest } { - _debug + $&seq { + _print exception: $e ... + } { + _debug + } } } { - result = <={$dispatch $cmd} + result = <={$fn-%dispatch $cmd} } } } From 3714c3f7f217be6729f2ccc48bc3b6008cf845a6 Mon Sep 17 00:00:00 2001 From: Jack Conger Date: Mon, 8 Dec 2025 21:25:11 -0800 Subject: [PATCH 2/2] Fix call to "while" --- esdebug | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/esdebug b/esdebug index aa327142..302cd1e8 100755 --- a/esdebug +++ b/esdebug @@ -262,7 +262,7 @@ let (fn-while = $fn-while) fn-_debug = $&noreturn @ { $&if {~ $1 break || $_stepping} { <= { - while { + while true { let (cmd = <={_get $_prompt}) { $&seq { while {~ $cmd(1) $_prompt} {