The problem is in the step combinator definition.

This commit is contained in:
Simon Forman 2021-11-25 17:38:01 -08:00
parent f07db9da0a
commit be4a3d6e16
2 changed files with 154 additions and 0 deletions

115
debugger.out Normal file
View File

@ -0,0 +1,115 @@
[1 [2 [3 4 625 6] 7] 8] -- pass
[1 [2 [3 4 625 6] 7] 8] ? pass
[1 [2 [3 4 625 6] 7] 8] && pass
[1 [2 [3 4 625 6] 7] 8] ++ pass
[1 [2 [3 4 625 6] 7] 8] || pass
[1 [2 [3 4 625 6] 7] 8] !- pass
[1 [2 [3 4 625 6] 7] 8] <{} pass
[1 [2 [3 4 625 6] 7] 8] <<{} pass
[1 [2 [3 4 625 6] 7] 8] abs pass
[1 [2 [3 4 625 6] 7] 8] anamorphism pass
[1 [2 [3 4 625 6] 7] 8] app1 pass
[1 [2 [3 4 625 6] 7] 8] app2 pass
[1 [2 [3 4 625 6] 7] 8] app3 pass
[1 [2 [3 4 625 6] 7] 8] appN pass
[1 [2 [3 4 625 6] 7] 8] at pass
[1 [2 [3 4 625 6] 7] 8] average pass
[1 [2 [3 4 625 6] 7] 8] b pass
[1 [2 [3 4 625 6] 7] 8] binary pass
[1 [2 [3 4 625 6] 7] 8] ccccons pass
[1 [2 [3 4 625 6] 7] 8] ccons pass
[1 [2 [3 4 625 6] 7] 8] clear pass
[1 [2 [3 4 625 6] 7] 8] cleave pass
[1 [2 [3 4 625 6] 7] 8] clop pass
[1 [2 [3 4 625 6] 7] 8] codi pass
[1 [2 [3 4 625 6] 7] 8] codireco pass
[1 [2 [3 4 625 6] 7] 8] dinfrirst pass
[1 [2 [3 4 625 6] 7] 8] dipd pass
[1 [2 [3 4 625 6] 7] 8] disenstacken pass
[1 [2 [3 4 625 6] 7] 8] down_to_zero pass
[1 [2 [3 4 625 6] 7] 8] drop pass
[1 [2 [3 4 625 6] 7] 8] dupd pass
[1 [2 [3 4 625 6] 7] 8] dupdd pass
[1 [2 [3 4 625 6] 7] 8] dupdip pass
[1 [2 [3 4 625 6] 7] 8] dupdipd pass
[1 [2 [3 4 625 6] 7] 8] enstacken pass
[1 [2 [3 4 625 6] 7] 8] flatten pass
[1 [2 [3 4 625 6] 7] 8] fork pass
[1 [2 [3 4 625 6] 7] 8] fourth pass
[1 [2 [3 4 625 6] 7] 8] gcd pass
[1 [2 [3 4 625 6] 7] 8] genrec pass
[1 [2 [3 4 625 6] 7] 8] grabN pass
[1 [2 [3 4 625 6] 7] 8] grba pass
[1 [2 [3 4 625 6] 7] 8] hypot pass
[1 [2 [3 4 625 6] 7] 8] ifte pass
[1 [2 [3 4 625 6] 7] 8] ii pass
[1 [2 [3 4 625 6] 7] 8] infra pass
[1 [2 [3 4 625 6] 7] 8] infrst pass
[1 [2 [3 4 625 6] 7] 8] make_generator pass
[1 [2 [3 4 625 6] 7] 8] mod pass
[1 [2 [3 4 625 6] 7] 8] neg pass
[1 [2 [3 4 625 6] 7] 8] not pass
[1 [2 [3 4 625 6] 7] 8] nulco pass
[1 [2 [3 4 625 6] 7] 8] nullary pass
[1 [2 [3 4 625 6] 7] 8] of pass
[1 [2 [3 4 625 6] 7] 8] pam pass
[1 [2 [3 4 625 6] 7] 8] pm pass
[1 [2 [3 4 625 6] 7] 8] popd pass
[1 [2 [3 4 625 6] 7] 8] popdd pass
[1 [2 [3 4 625 6] 7] 8] popop pass
[1 [2 [3 4 625 6] 7] 8] popopop pass
[1 [2 [3 4 625 6] 7] 8] popopd pass
[1 [2 [3 4 625 6] 7] 8] popopdd pass
[1 [2 [3 4 625 6] 7] 8] product pass
[1 [2 [3 4 625 6] 7] 8] quoted pass
[1 [2 [3 4 625 6] 7] 8] range pass
[1 [2 [3 4 625 6] 7] 8] range_to_zero pass
[1 [2 [3 4 625 6] 7] 8] reco pass
[1 [2 [3 4 625 6] 7] 8] rest pass
[1 [2 [3 4 625 6] 7] 8] reverse pass
[1 [2 [3 4 625 6] 7] 8] roll> pass
[1 [2 [3 4 625 6] 7] 8] roll< pass
[1 [2 [3 4 625 6] 7] 8] rollup pass
[1 [2 [3 4 625 6] 7] 8] rolldown pass
[1 [2 [3 4 625 6] 7] 8] rrest pass
[1 [2 [3 4 625 6] 7] 8] run pass
[1 [2 [3 4 625 6] 7] 8] second pass
[1 [2 [3 4 625 6] 7] 8] shift pass
[1 [2 [3 4 625 6] 7] 8] shunt pass
[1 [2 [3 4 625 6] 7] 8] size pass
[1 [2 [3 4 625 6] 7] 8] spiral_next pass
[1 [2 [3 4 625 6] 7] 8] split_at pass
[1 [2 [3 4 625 6] 7] 8] split_list pass
[1 [2 [3 4 625 6] 7] 8] sqr pass
[1 [2 [3 4 625 6] 7] 8] stackd pass
[1 [2 [3 4 625 6] 7] 8] step_zero pass
[1 [2 [3 4 625 6] 7] 8] sum pass
[1 [2 [3 4 625 6] 7] 8] swapd pass
[1 [2 [3 4 625 6] 7] 8] swons pass
[1 [2 [3 4 625 6] 7] 8] swoncat pass
[1 [2 [3 4 625 6] 7] 8] tailrec pass
[1 [2 [3 4 625 6] 7] 8] take pass
[1 [2 [3 4 625 6] 7] 8] ternary pass
[1 [2 [3 4 625 6] 7] 8] third pass
[1 [2 [3 4 625 6] 7] 8] tuck pass
[1 [2 [3 4 625 6] 7] 8] unary pass
[1 [2 [3 4 625 6] 7] 8] uncons pass
[1 [2 [3 4 625 6] 7] 8] unit pass
[1 [2 [3 4 625 6] 7] 8] unquoted pass
[1 [2 [3 4 625 6] 7] 8] unswons pass
[1 [2 [3 4 625 6] 7] 8] while pass
[1 [2 [3 4 625 6] 7] 8] x pass
step failed!
[1 [2 [3 4 625 6] 7] 8] _step0 pass
[1 [2 [3 4 625 6] 7] 8] _step1 pass
[1 [2 [3 4 625 6] 7] 8] _stept pass
[1 [2 [3 4 625 6] 7] 8] times pass
[1 [2 [3 4 625 6] 7] 8] _times0 pass
[1 [2 [3 4 625 6] 7] 8] _times1 pass
[1 [2 [3 4 625 6] 7] 8] _timest pass
[1 [2 [3 4 625 6] 7] 8] map pass
[1 [2 [3 4 625 6] 7] 8] _map? pass
[1 [2 [3 4 625 6] 7] 8] _mape pass
[1 [2 [3 4 625 6] 7] 8] _map0 pass
[1 [2 [3 4 625 6] 7] 8] _map1 pass
[1 [2 [3 4 625 6] 7] 8] _map2 pass

39
debugger.py Normal file
View File

@ -0,0 +1,39 @@
'''
In order to debug the problem I'm having with definitions breaking a
zipper expression I need to load a system, load the defs into a dictionary,
and then run the expression and see if it raises an exception, substituting
definitions one-at-a-time until I find the one that breaks it.
'''
from joy.library import default_defs, initialize, inscribe, Def
from joy.joy import joy
from joy.parser import text_to_expression
from joy.utils.pretty_print import trace
from joy.utils.stack import stack_to_string
inscribe(trace)
dictionary = initialize()
defs = {}
default_defs(defs)
expression = text_to_expression(
'[1 [2 [3 4 25 6] 7] 8]'
'[dup mul]'
'[dip dip infra dip infra dip infra]'
'[[] ccons] step i'
## '[[[] ccons] step i]'
## 'trace'
)
for def_name in defs:
D = dictionary.copy()
D[def_name] = defs[def_name]
try:
stack, _, d = joy((), expression, D)
except:
print(def_name, 'failed!')
else:
print(stack_to_string(stack), def_name, 'pass')