(DEBUG bind-in-order ((#((var-tag) result #t () () #(result #(expr result #f)) #f)))) (INNER DEBUG (#((var-tag) result #t () () #(result #(expr result #f)) #f)) (#((var-tag) result #t () () #(result #(expr result #f)) #f))) (define (bind-in-order order) (write `(DEBUG bind-in-order ,order)) (if (null? order) (pt-body source body env use) (let* ((vars-set (car order)) (vars (set->list vars-set))) (write `(INNER DEBUG ,vars-set ,vars)) ERROR: returned incorrect result: ( "|------------------------------------------------------" "| #[primitive #!program] =" "L1:" " cmpw #1,d0" " beq L1000" " TRAP1(9,0)" " LBL_PTR(L1)" "L1000:" " MOVE_PROC(2,a1)" " movl a1,GLOB(fib)" " MOVE_PROC(3,a1)" " movl a1,GLOB(tak)" " MOVE_PROC(4,a1)" " movl a1,GLOB(ack)" " MOVE_PROC(5,a1)" " movl a1,GLOB(create-x)" " MOVE_PROC(6,a1)" " movl a1,GLOB(create-y)" " MOVE_PROC(7,a1)" " movl a1,GLOB(my-try)" " MOVE_PROC(8,a1)" " movl a1,GLOB(go)" " movl a0,sp@-" " movl #160,d1" " lea L2,a0" " dbra d5,L1001" " moveq #9,d5" " cmpl a5@,sp" " bcc L1001" " TRAP2(24)" " RETURN(L1,1,1)" "L1002:" "L1001:" " JMP_PROC(1,10)" " RETURN(L1,1,1)" "L2:" " movl d1,sp@-" " moveq #48,d3" " moveq #96,d2" " movl #144,d1" " lea L3,a0" " JMP_PROC(2,14)" " RETURN(L1,2,1)" "L3:" " movl d1,sp@-" " moveq #72,d2" " moveq #24,d1" " lea L4,a0" " JMP_PROC(3,10)" " RETURN(L1,3,1)" "L4:" " movl d1,sp@-" " movl #1600000,d1" " lea L5,a0" " JMP_PROC(7,10)" " RETURN(L1,4,1)" "L5:" " dbra d5,L1003" " moveq #9,d5" " cmpl a5@,sp" " bcc L1003" " TRAP2(24)" " RETURN(L1,4,1)" "L1004:" "L1003:" "L6:" " addl sp@(8),d1" " addl sp@(4),d1" " addl sp@+,d1" " rts" "L0:" "|------------------------------------------------------" "| #[primitive fib] =" "L1:" " bmi L1000" " TRAP1(9,1)" " LBL_PTR(L1)" "L1000:" " moveq #16,d0" " cmpl d1,d0" " ble L3" " bra L4" " RETURN(L1,2,1)" "L2:" " movl d1,sp@-" " movl sp@(4),d1" " moveq #-16,d0" " addl d0,d1" " lea L5,a0" " moveq #16,d0" " cmpl d1,d0" " bgt L4" "L3:" " movl a0,sp@-" " movl d1,sp@-" " subql #8,d1" " lea L2,a0" " dbra d5,L1001" " moveq #9,d5" " cmpl a5@,sp" " bcc L1001" " TRAP2(24)" " RETURN(L1,2,1)" "L1002:" "L1001:" " moveq #16,d0" " cmpl d1,d0" " ble L3" "L4:" " jmp a0@" " RETURN(L1,3,1)" "L5:" " addl sp@+,d1" " dbra d5,L1003" " moveq #9,d5" " cmpl a5@,sp" " bcc L1003" " TRAP2(24)" " RETURN(L1,2,1)" "L1004:" "L1003:" " rts" "L0:" "|------------------------------------------------------" "| #[primitive tak] =" "L1:" " cmpw #4,d0" " beq L1000" " TRAP1(9,3)" " LBL_PTR(L1)" "L1000:" " cmpl d1,d2" " bge L4" " bra L3" " RETURN(L1,6,1)" "L2:" " movl d1,d3" " movl sp@(20),a0" " movl sp@+,d2" " movl sp@+,d1" " dbra d5,L1001" " moveq #9,d5" " cmpl a5@,sp" " bcc L1001" " movl a0,sp@(12)" " TRAP2(24)" " RETURN(L1,4,1)" "L1002:" " movl sp@(12),a0" "L1001:" " cmpl d1,d2" " bge L4" "L3:" " movl a0,sp@-" " movl d1,sp@-" " movl d2,sp@-" " movl d3,sp@-" " subql #8,d1" " lea L5,a0" " dbra d5,L1003" " moveq #9,d5" " cmpl a5@,sp" " bcc L1003" " TRAP2(24)" " RETURN(L1,4,1)" "L1004:" "L1003:" " cmpl d1,d2" " blt L3" "L4:" " movl d3,d1" " jmp a0@" " RETURN(L1,4,1)" "L5:" " movl d1,sp@-" " movl sp@(12),d3" " movl sp@(4),d2" " movl sp@(8),d1" " subql #8,d1" " lea L6,a0" " cmpl d1,d2" " bge L4" " bra L3" " RETURN(L1,5,1)" "L6:" " movl d1,sp@-" " movl sp@(12),d3" " movl sp@(16),d2" " movl sp@(8),d1" " subql #8,d1" " lea L2,a0" " cmpl d1,d2" " bge L4" " bra L3" "L0:" "|------------------------------------------------------" "| #[primitive ack] =" "L1:" " beq L1000" " TRAP1(9,2)" " LBL_PTR(L1)" "L1000:" " movl d1,d0" " bne L3" " bra L5" " RETURN(L1,2,1)" "L2:" " movl d1,d2" " movl sp@+,d1" " subql #8,d1" " movl sp@+,a0" " dbra d5,L1001" " moveq #9,d5" " cmpl a5@,sp" " bcc L1001" " movl a0,sp@-" " TRAP2(24)" " RETURN(L1,1,1)" "L1002:" " movl sp@+,a0" "L1001:" " movl d1,d0" " beq L5" "L3:" " movl d2,d0" " bne L6" "L4:" " subql #8,d1" " moveq #8,d2" " dbra d5,L1003" " moveq #9,d5" " cmpl a5@,sp" " bcc L1003" " movl a0,sp@-" " TRAP2(24)" " RETURN(L1,1,1)" "L1004:" " movl sp@+,a0" "L1003:" " movl d1,d0" " bne L3" "L5:" " movl d2,d1" " addql #8,d1" " jmp a0@" "L6:" " movl a0,sp@-" " movl d1,sp@-" " movl d2,d1" " subql #8,d1" " movl d1,d2" " movl sp@,d1" " lea L2,a0" " dbra d5,L1005" " moveq #9,d5" " cmpl a5@,sp" " bcc L1005" " TRAP2(24)" " RETURN(L1,2,1)" "L1006:" "L1005:" " movl d1,d0" " bne L3" " bra L5" "L0:" "|------------------------------------------------------" "| #[primitive create-x] =" "L1:" " bmi L1000" " TRAP1(9,1)" " LBL_PTR(L1)" "L1000:" " movl a0,sp@-" " movl d1,sp@-" " lea L2,a0" " dbra d5,L1001" " moveq #9,d5" " cmpl a5@,sp" " bcc L1001" " TRAP2(24)" " RETURN(L1,2,1)" "L1002:" "L1001:" " moveq #-1,d0" " JMP_PRIM(make-vector,0)" " RETURN(L1,2,1)" "L2:" " movl d1,d2" " movl sp@+,d1" " moveq #0,d3" " movl sp@+,a0" " dbra d5,L1003" " moveq #9,d5" " cmpl a5@,sp" " bcc L1003" " movl a0,sp@-" " TRAP2(24)" " RETURN(L1,1,1)" "L1004:" " movl sp@+,a0" "L1003:" " cmpl d1,d3" " bge L4" "L3:" " movl d3,d0" " asrl #1,d0" " movl d2,a1" " movl d3,a1@(1,d0:l)" " addql #8,d3" " dbra d5,L1005" " moveq #9,d5" " cmpl a5@,sp" " bcc L1005" " movl a0,sp@-" " TRAP2(24)" " RETURN(L1,1,1)" "L1006:" " movl sp@+,a0" "L1005:" " cmpl d1,d3" " blt L3" "L4:" " movl d2,d1" " jmp a0@" "L0:" "|------------------------------------------------------" "| #[primitive create-y] =" "L1:" " bmi L1000" " TRAP1(9,1)" " LBL_PTR(L1)" "L1000:" " movl d1,a1" " movl a1@(-3),d2" " lsrl #7,d2" " movl a0,sp@-" " movl d1,sp@-" " movl d2,sp@-" " movl d2,d1" " lea L2,a0" " dbra d5,L1001" " moveq #9,d5" " cmpl a5@,sp" " bcc L1001" " TRAP2(24)" " RETURN(L1,3,1)" "L1002:" "L1001:" " moveq #-1,d0" " JMP_PRIM(make-vector,0)" " RETURN(L1,3,1)" "L2:" " movl sp@+,d2" " subql #8,d2" " movl d2,d3" " movl d1,d2" " movl sp@+,d1" " movl sp@+,a0" " dbra d5,L1003" " moveq #9,d5" " cmpl a5@,sp" " bcc L1003" " movl a0,sp@-" " TRAP2(24)" " RETURN(L1,1,1)" "L1004:" " movl sp@+,a0" "L1003:" " movl d3,d0" " blt L4" "L3:" " movl d3,d0" " asrl #1,d0" " movl d1,a1" " movl a1@(1,d0:l),d4" " movl d3,d0" " asrl #1,d0" " movl d2,a1" " movl d4,a1@(1,d0:l)" " subql #8,d3" " dbra d5,L1005" " moveq #9,d5" " cmpl a5@,sp" " bcc L1005" " movl a0,sp@-" " TRAP2(24)" " RETURN(L1,1,1)" "L1006:" " movl sp@+,a0" "L1005:" " movl d3,d0" " bge L3" "L4:" " movl d2,d1" " jmp a0@" "L0:" "|------------------------------------------------------" "| #[primitive my-try] =" "L1:" " bmi L1000" " TRAP1(9,1)" " LBL_PTR(L1)" "L1000:" " movl a0,sp@-" " lea L2,a0" " dbra d5,L1001" " moveq #9,d5" " cmpl a5@,sp" " bcc L1001" " TRAP2(24)" " RETURN(L1,1,1)" "L1002:" "L1001:" " JMP_PROC(4,10)" " RETURN(L1,1,1)" "L2:" " lea L3,a0" " JMP_PROC(5,10)" " RETURN(L1,1,1)" "L3:" " movl d1,a1" " movl a1@(-3),d1" " lsrl #7,d1" " dbra d5,L1003" " moveq #9,d5" " cmpl a5@,sp" " bcc L1003" " TRAP2(24)" " RETURN(L1,1,1)" "L1004:" "L1003:" " rts" "L0:" "|------------------------------------------------------" "| #[primitive go] =" "L1:" " bmi L1000" " TRAP1(9,1)" " LBL_PTR(L1)" "L1000:" " moveq #0,d3" " movl #800,d2" " dbra d5,L1001" " moveq #9,d5" " cmpl a5@,sp" " bcc L1001" " movl a0,sp@-" " TRAP2(24)" " RETURN(L1,1,1)" "L1002:" " movl sp@+,a0" "L1001:" " movl d2,d0" " ble L4" " bra L3" " RETURN(L1,3,1)" "L2:" " movl d1,d3" " movl sp@+,d1" " subql #8,d1" " movl d1,d2" " movl sp@+,d1" " movl sp@+,a0" " dbra d5,L1003" " moveq #9,d5" " cmpl a5@,sp" " bcc L1003" " movl a0,sp@-" " TRAP2(24)" " RETURN(L1,1,1)" "L1004:" " movl sp@+,a0" "L1003:" " movl d2,d0" " ble L4" "L3:" " movl a0,sp@-" " movl d1,sp@-" " movl d2,sp@-" " lea L2,a0" " dbra d5,L1005" " moveq #9,d5" " cmpl a5@,sp" " bcc L1005" " TRAP2(24)" " RETURN(L1,3,1)" "L1006:" "L1005:" " JMP_PROC(6,10)" "L4:" " movl d3,d1" " jmp a0@" "L0:" "")