diff --git a/debug/compilation/nqueens.c b/debug/compilation/nqueens.c new file mode 100644 index 00000000..a9bfcc35 --- /dev/null +++ b/debug/compilation/nqueens.c @@ -0,0 +1,1480 @@ +/** + ** This file was automatically generated by the Cyclone scheme compiler + ** + ** (c) 2014-2016 Justin Ethier + ** Version 0.0.4 (Pre-release) + ** + **/ + +/* +"---------------- input program:" + */ +/* +((import (scheme base) (scheme write)) (define (nqueens n) (define (dec-to n) (let loop ((i n) (l (quote ()))) (if (= i 0) l (loop (- i 1) (cons i l))))) (define (try x y z) (if (null? x) (if (null? y) 1 0) (+ (if (ok? (car x) 1 z) (try (append (cdr x) y) (quote ()) (cons (car x) z)) 0) (try (cdr x) (cons (car x) y) z)))) (define (ok? row dist placed) (if (null? placed) #t (and (not (= (car placed) (+ row dist))) (not (= (car placed) (- row dist))) (ok? row (+ dist 1) (cdr placed))))) (try (dec-to n) (quote ()) (quote ()))) (write (nqueens 8))) + */ +/* +"imports:" + */ +/* +((scheme base) (scheme write)) + */ +/* +"resolved imports:" + */ +/* +(cons-source syntax-rules letrec* guard guard-aux receive abs max min modulo floor-remainder even? exact-integer? exact? inexact? odd? gcd lcm quotient remainder truncate-quotient truncate-remainder truncate/ floor-quotient floor-remainder floor/ square expt call-with-current-continuation call/cc call-with-values dynamic-wind values char=? char? char<=? char>=? string=? string? string>=? foldl foldr not list? zero? positive? negative? append list make-list list-copy map for-each list-tail list-ref list-set! reverse boolean=? symbol=? Cyc-obj=? vector vector-append vector-copy vector-copy! vector-fill! vector->list vector->string vector-map vector-for-each make-string string string-copy string-copy! string-fill! string->list string->vector string-map string-for-each make-parameter current-output-port current-input-port current-error-port call-with-port error raise raise-continuable with-exception-handler Cyc-add-exception-handler Cyc-remove-exception-handler newline write-char write-string flush-output-port read-line read-string input-port? output-port? input-port-open? output-port-open? features any every and or let let* letrec begin case cond cond-expand do when unless quasiquote floor ceiling truncate round exact inexact eof-object syntax-error display write) + */ +/* +"resolved macros:" + */ +/* +() + */ +/* +"---------------- after macro expansion:" + */ +/* +((define nqueens (lambda (n) (define dec-to (lambda (n) ((lambda (i l) ((lambda (loop) (set! loop (lambda (i l) (if (= i 0) l (loop (- i 1) (cons i l))))) (loop i l)) #f)) n (quote ())))) (define try (lambda (x y z) (if (null? x) (if (null? y) 1 0) (+ (if (ok? (car x) 1 z) (try (append (cdr x) y) (quote ()) (cons (car x) z)) 0) (try (cdr x) (cons (car x) y) z))))) (define ok? (lambda (row dist placed) (if (null? placed) #t (if (not (= (car placed) (+ row dist))) (if (not (= (car placed) (- row dist))) (ok? row (+ dist 1) (cdr placed)) #f) #f)))) (try (dec-to n) (quote ()) (quote ())))) (write (nqueens 8))) + */ +/* +"---------------- after processing globals" + */ +/* +((define nqueens (lambda (n) (define dec-to (lambda (n) ((lambda (i l) ((lambda (loop) (set! loop (lambda (i l) (if (= i 0) l (loop (- i 1) (cons i l))))) (loop i l)) #f)) n (quote ())))) (define try (lambda (x y z) (if (null? x) (if (null? y) 1 0) (+ (if (ok? (car x) 1 z) (try (append (cdr x) y) (quote ()) (cons (car x) z)) 0) (try (cdr x) (cons (car x) y) z))))) (define ok? (lambda (row dist placed) (if (null? placed) #t (if (not (= (car placed) (+ row dist))) (if (not (= (car placed) (- row dist))) (ok? row (+ dist 1) (cdr placed)) #f) #f)))) (try (dec-to n) (quote ()) (quote ())))) ((lambda () 0 (write (nqueens 8))))) + */ +/* +"---------------- after alpha conversion:" + */ +/* +((define nqueens (lambda (n$4) ((lambda (dec-to$10 ok?$9 try$8) ((lambda (dec-to$13 try$12 ok?$11) (set! dec-to$10 (lambda (n$20) ((lambda (i$22 l$21) ((lambda (loop$23) (set! loop$23 (lambda (i$25 l$24) (if (= i$25 0) l$24 (loop$23 (- i$25 1) (cons i$25 l$24))))) (loop$23 i$22 l$21)) #f)) n$20 (quote ())))) (set! try$8 (lambda (x$19 y$18 z$17) (if (null? x$19) (if (null? y$18) 1 0) (+ (if (ok?$9 (car x$19) 1 z$17) (try$8 (append (cdr x$19) y$18) (quote ()) (cons (car x$19) z$17)) 0) (try$8 (cdr x$19) (cons (car x$19) y$18) z$17))))) (set! ok?$9 (lambda (row$16 dist$15 placed$14) (if (null? placed$14) #t (if (not (= (car placed$14) (+ row$16 dist$15))) (if (not (= (car placed$14) (- row$16 dist$15))) (ok?$9 row$16 (+ dist$15 1) (cdr placed$14)) #f) #f)))) (try$8 (dec-to$10 n$4) (quote ()) (quote ()))) #f #f #f)) #f #f #f))) ((lambda () 0 (write (nqueens 8))))) + */ +/* +"---------------- after CPS:" + */ +/* +((define nqueens (lambda (k$30 n$4) ((lambda (dec-to$10 ok?$9 try$8) ((lambda (dec-to$13 try$12 ok?$11) ((lambda (r$67) ((lambda (r$31) ((lambda (r$50) ((lambda (r$32) ((lambda (r$37) ((lambda (r$33) (dec-to$10 (lambda (r$34) ((lambda (r$35) ((lambda (r$36) (try$8 k$30 r$34 r$35 r$36)) (quote ()))) (quote ()))) n$4)) (set! ok?$9 r$37))) (lambda (k$38 row$16 dist$15 placed$14) ((lambda (r$39) (if r$39 (k$38 #t) ((lambda (r$48) ((lambda (r$49) ((lambda (r$47) (not (lambda (r$40) (if r$40 ((lambda (r$45) ((lambda (r$46) ((lambda (r$44) (not (lambda (r$41) (if r$41 ((lambda (r$42) ((lambda (r$43) (ok?$9 k$38 row$16 r$42 r$43)) (cdr placed$14))) (+ dist$15 1)) (k$38 #f))) r$44)) (= r$45 r$46))) (- row$16 dist$15))) (car placed$14)) (k$38 #f))) r$47)) (= r$48 r$49))) (+ row$16 dist$15))) (car placed$14)))) (null? placed$14))))) (set! try$8 r$50))) (lambda (k$51 x$19 y$18 z$17) ((lambda (r$52) (if r$52 ((lambda (r$53) (if r$53 (k$51 1) (k$51 0))) (null? y$18)) ((lambda (k$59) ((lambda (r$66) (ok?$9 (lambda (r$60) (if r$60 ((lambda (r$65) (append (lambda (r$61) ((lambda (r$62) ((lambda (r$64) ((lambda (r$63) (try$8 k$59 r$61 r$62 r$63)) (cons r$64 z$17))) (car x$19))) (quote ()))) r$65 y$18)) (cdr x$19)) (k$59 0))) r$66 1 z$17)) (car x$19))) (lambda (r$54) ((lambda (r$56) ((lambda (r$58) ((lambda (r$57) (try$8 (lambda (r$55) (k$51 (+ r$54 r$55))) r$56 r$57 z$17)) (cons r$58 y$18))) (car x$19))) (cdr x$19)))))) (null? x$19))))) (set! dec-to$10 r$67))) (lambda (k$68 n$20) ((lambda (r$69) ((lambda (i$22 l$21) ((lambda (loop$23) ((lambda (r$71) ((lambda (r$70) (loop$23 k$68 i$22 l$21)) (set! loop$23 r$71))) (lambda (k$72 i$25 l$24) ((lambda (r$73) (if r$73 (k$72 l$24) ((lambda (r$74) ((lambda (r$75) (loop$23 k$72 r$74 r$75)) (cons i$25 l$24))) (- i$25 1)))) (= i$25 0))))) #f)) n$20 r$69)) (quote ()))))) #f #f #f)) #f #f #f))) ((lambda () ((lambda (r$26) (nqueens (lambda (r$27) (write %halt r$27)) 8)) 0)))) + */ +/* +"---------------- after wrap-mutables:" + */ +/* +((define nqueens (lambda (k$30 n$4) ((lambda (dec-to$10 ok?$9 try$8) ((lambda (dec-to$10) ((lambda (ok?$9) ((lambda (try$8) ((lambda (dec-to$13 try$12 ok?$11) ((lambda (r$67) ((lambda (r$31) ((lambda (r$50) ((lambda (r$32) ((lambda (r$37) ((lambda (r$33) ((cell-get dec-to$10) (lambda (r$34) ((lambda (r$35) ((lambda (r$36) ((cell-get try$8) k$30 r$34 r$35 r$36)) (quote ()))) (quote ()))) n$4)) (set-cell! ok?$9 r$37))) (lambda (k$38 row$16 dist$15 placed$14) ((lambda (r$39) (if r$39 (k$38 #t) ((lambda (r$48) ((lambda (r$49) ((lambda (r$47) (not (lambda (r$40) (if r$40 ((lambda (r$45) ((lambda (r$46) ((lambda (r$44) (not (lambda (r$41) (if r$41 ((lambda (r$42) ((lambda (r$43) ((cell-get ok?$9) k$38 row$16 r$42 r$43)) (cdr placed$14))) (+ dist$15 1)) (k$38 #f))) r$44)) (= r$45 r$46))) (- row$16 dist$15))) (car placed$14)) (k$38 #f))) r$47)) (= r$48 r$49))) (+ row$16 dist$15))) (car placed$14)))) (null? placed$14))))) (set-cell! try$8 r$50))) (lambda (k$51 x$19 y$18 z$17) ((lambda (r$52) (if r$52 ((lambda (r$53) (if r$53 (k$51 1) (k$51 0))) (null? y$18)) ((lambda (k$59) ((lambda (r$66) ((cell-get ok?$9) (lambda (r$60) (if r$60 ((lambda (r$65) (append (lambda (r$61) ((lambda (r$62) ((lambda (r$64) ((lambda (r$63) ((cell-get try$8) k$59 r$61 r$62 r$63)) (cons r$64 z$17))) (car x$19))) (quote ()))) r$65 y$18)) (cdr x$19)) (k$59 0))) r$66 1 z$17)) (car x$19))) (lambda (r$54) ((lambda (r$56) ((lambda (r$58) ((lambda (r$57) ((cell-get try$8) (lambda (r$55) (k$51 (+ r$54 r$55))) r$56 r$57 z$17)) (cons r$58 y$18))) (car x$19))) (cdr x$19)))))) (null? x$19))))) (set-cell! dec-to$10 r$67))) (lambda (k$68 n$20) ((lambda (r$69) ((lambda (i$22 l$21) ((lambda (loop$23) ((lambda (loop$23) ((lambda (r$71) ((lambda (r$70) ((cell-get loop$23) k$68 i$22 l$21)) (set-cell! loop$23 r$71))) (lambda (k$72 i$25 l$24) ((lambda (r$73) (if r$73 (k$72 l$24) ((lambda (r$74) ((lambda (r$75) ((cell-get loop$23) k$72 r$74 r$75)) (cons i$25 l$24))) (- i$25 1)))) (= i$25 0))))) (cell loop$23))) #f)) n$20 r$69)) (quote ()))))) #f #f #f)) (cell try$8))) (cell ok?$9))) (cell dec-to$10))) #f #f #f))) ((lambda () ((lambda (r$26) (nqueens (lambda (r$27) (write %halt r$27)) 8)) 0)))) + */ +/* +"---------------- after closure-convert:" + */ +/* +((define nqueens (lambda (k$30 n$4) ((%closure (lambda (self$77 dec-to$10 ok?$9 try$8) ((%closure (lambda (self$78 dec-to$10) ((%closure (lambda (self$79 ok?$9) ((%closure (lambda (self$80 try$8) ((%closure (lambda (self$81 dec-to$13 try$12 ok?$11) ((%closure (lambda (self$93 r$67) ((%closure (lambda (self$94 r$31) ((%closure (lambda (self$111 r$50) ((%closure (lambda (self$112 r$32) ((%closure (lambda (self$125 r$37) ((%closure (lambda (self$126 r$33) ((%closure-ref (cell-get (%closure-ref self$126 1)) 0) (cell-get (%closure-ref self$126 1)) (%closure (lambda (self$127 r$34) ((%closure (lambda (self$128 r$35) ((%closure (lambda (self$129 r$36) ((%closure-ref (cell-get (%closure-ref self$129 4)) 0) (cell-get (%closure-ref self$129 4)) (%closure-ref self$129 1) (%closure-ref self$129 2) (%closure-ref self$129 3) r$36)) (%closure-ref self$128 1) (%closure-ref self$128 2) r$35 (%closure-ref self$128 3)) (quote ()))) (%closure-ref self$127 1) r$34 (%closure-ref self$127 2)) (quote ()))) (%closure-ref self$126 2) (%closure-ref self$126 4)) (%closure-ref self$126 3))) (%closure-ref self$125 1) (%closure-ref self$125 2) (%closure-ref self$125 3) (%closure-ref self$125 5)) (set-cell! (%closure-ref self$125 4) r$37))) (%closure-ref self$112 1) (%closure-ref self$112 2) (%closure-ref self$112 3) (%closure-ref self$112 4) (%closure-ref self$112 5)) (%closure (lambda (self$113 k$38 row$16 dist$15 placed$14) ((%closure (lambda (self$114 r$39) (if r$39 ((%closure-ref (%closure-ref self$114 2) 0) (%closure-ref self$114 2) #t) ((%closure (lambda (self$115 r$48) ((%closure (lambda (self$116 r$49) ((%closure (lambda (self$117 r$47) ((%closure-ref not 0) not (%closure (lambda (self$118 r$40) (if r$40 ((%closure (lambda (self$119 r$45) ((%closure (lambda (self$120 r$46) ((%closure (lambda (self$121 r$44) ((%closure-ref not 0) not (%closure (lambda (self$122 r$41) (if r$41 ((%closure (lambda (self$123 r$42) ((%closure (lambda (self$124 r$43) ((%closure-ref (cell-get (%closure-ref self$124 2)) 0) (cell-get (%closure-ref self$124 2)) (%closure-ref self$124 1) (%closure-ref self$124 4) (%closure-ref self$124 3) r$43)) (%closure-ref self$123 1) (%closure-ref self$123 2) r$42 (%closure-ref self$123 4)) (cdr (%closure-ref self$123 3)))) (%closure-ref self$122 2) (%closure-ref self$122 3) (%closure-ref self$122 4) (%closure-ref self$122 5)) (+ (%closure-ref self$122 1) 1)) ((%closure-ref (%closure-ref self$122 2) 0) (%closure-ref self$122 2) #f))) (%closure-ref self$121 1) (%closure-ref self$121 2) (%closure-ref self$121 3) (%closure-ref self$121 4) (%closure-ref self$121 5)) r$44)) (%closure-ref self$120 1) (%closure-ref self$120 2) (%closure-ref self$120 3) (%closure-ref self$120 4) (%closure-ref self$120 6)) (= (%closure-ref self$120 5) r$46))) (%closure-ref self$119 1) (%closure-ref self$119 2) (%closure-ref self$119 3) (%closure-ref self$119 4) r$45 (%closure-ref self$119 5)) (- (%closure-ref self$119 5) (%closure-ref self$119 1)))) (%closure-ref self$118 1) (%closure-ref self$118 2) (%closure-ref self$118 3) (%closure-ref self$118 4) (%closure-ref self$118 5)) (car (%closure-ref self$118 4))) ((%closure-ref (%closure-ref self$118 2) 0) (%closure-ref self$118 2) #f))) (%closure-ref self$117 1) (%closure-ref self$117 2) (%closure-ref self$117 3) (%closure-ref self$117 4) (%closure-ref self$117 5)) r$47)) (%closure-ref self$116 1) (%closure-ref self$116 2) (%closure-ref self$116 3) (%closure-ref self$116 4) (%closure-ref self$116 6)) (= (%closure-ref self$116 5) r$49))) (%closure-ref self$115 1) (%closure-ref self$115 2) (%closure-ref self$115 3) (%closure-ref self$115 4) r$48 (%closure-ref self$115 5)) (+ (%closure-ref self$115 5) (%closure-ref self$115 1)))) (%closure-ref self$114 1) (%closure-ref self$114 2) (%closure-ref self$114 3) (%closure-ref self$114 4) (%closure-ref self$114 5)) (car (%closure-ref self$114 4))))) dist$15 k$38 (%closure-ref self$113 1) placed$14 row$16) (null? placed$14))) (%closure-ref self$112 4)))) (%closure-ref self$111 1) (%closure-ref self$111 2) (%closure-ref self$111 3) (%closure-ref self$111 4) (%closure-ref self$111 5)) (set-cell! (%closure-ref self$111 5) r$50))) (%closure-ref self$94 1) (%closure-ref self$94 2) (%closure-ref self$94 3) (%closure-ref self$94 4) (%closure-ref self$94 5)) (%closure (lambda (self$95 k$51 x$19 y$18 z$17) ((%closure (lambda (self$96 r$52) (if r$52 ((%closure (lambda (self$110 r$53) (if r$53 ((%closure-ref (%closure-ref self$110 1) 0) (%closure-ref self$110 1) 1) ((%closure-ref (%closure-ref self$110 1) 0) (%closure-ref self$110 1) 0))) (%closure-ref self$96 1)) (null? (%closure-ref self$96 5))) ((%closure (lambda (self$102 k$59) ((%closure (lambda (self$103 r$66) ((%closure-ref (cell-get (%closure-ref self$103 2)) 0) (cell-get (%closure-ref self$103 2)) (%closure (lambda (self$104 r$60) (if r$60 ((%closure (lambda (self$105 r$65) ((%closure-ref append 0) append (%closure (lambda (self$106 r$61) ((%closure (lambda (self$107 r$62) ((%closure (lambda (self$108 r$64) ((%closure (lambda (self$109 r$63) ((%closure-ref (cell-get (%closure-ref self$109 4)) 0) (cell-get (%closure-ref self$109 4)) (%closure-ref self$109 1) (%closure-ref self$109 2) (%closure-ref self$109 3) r$63)) (%closure-ref self$108 1) (%closure-ref self$108 2) (%closure-ref self$108 3) (%closure-ref self$108 4)) (cons r$64 (%closure-ref self$108 5)))) (%closure-ref self$107 1) (%closure-ref self$107 2) r$62 (%closure-ref self$107 3) (%closure-ref self$107 5)) (car (%closure-ref self$107 4)))) (%closure-ref self$106 1) r$61 (%closure-ref self$106 2) (%closure-ref self$106 3) (%closure-ref self$106 4)) (quote ()))) (%closure-ref self$105 1) (%closure-ref self$105 2) (%closure-ref self$105 3) (%closure-ref self$105 5)) r$65 (%closure-ref self$105 4))) (%closure-ref self$104 1) (%closure-ref self$104 2) (%closure-ref self$104 3) (%closure-ref self$104 4) (%closure-ref self$104 5)) (cdr (%closure-ref self$104 3))) ((%closure-ref (%closure-ref self$104 1) 0) (%closure-ref self$104 1) 0))) (%closure-ref self$103 1) (%closure-ref self$103 3) (%closure-ref self$103 4) (%closure-ref self$103 5) (%closure-ref self$103 6)) r$66 1 (%closure-ref self$103 6))) k$59 (%closure-ref self$102 1) (%closure-ref self$102 2) (%closure-ref self$102 3) (%closure-ref self$102 4) (%closure-ref self$102 5)) (car (%closure-ref self$102 3)))) (%closure-ref self$96 2) (%closure-ref self$96 3) (%closure-ref self$96 4) (%closure-ref self$96 5) (%closure-ref self$96 6)) (%closure (lambda (self$97 r$54) ((%closure (lambda (self$98 r$56) ((%closure (lambda (self$99 r$58) ((%closure (lambda (self$100 r$57) ((%closure-ref (cell-get (%closure-ref self$100 4)) 0) (cell-get (%closure-ref self$100 4)) (%closure (lambda (self$101 r$55) ((%closure-ref (%closure-ref self$101 1) 0) (%closure-ref self$101 1) (+ (%closure-ref self$101 2) r$55))) (%closure-ref self$100 1) (%closure-ref self$100 2)) (%closure-ref self$100 3) r$57 (%closure-ref self$100 5))) (%closure-ref self$99 1) (%closure-ref self$99 2) (%closure-ref self$99 3) (%closure-ref self$99 4) (%closure-ref self$99 6)) (cons r$58 (%closure-ref self$99 5)))) (%closure-ref self$98 1) (%closure-ref self$98 2) r$56 (%closure-ref self$98 3) (%closure-ref self$98 5) (%closure-ref self$98 6)) (car (%closure-ref self$98 4)))) (%closure-ref self$97 1) r$54 (%closure-ref self$97 2) (%closure-ref self$97 3) (%closure-ref self$97 4) (%closure-ref self$97 5)) (cdr (%closure-ref self$97 3)))) (%closure-ref self$96 1) (%closure-ref self$96 3) (%closure-ref self$96 4) (%closure-ref self$96 5) (%closure-ref self$96 6))))) k$51 (%closure-ref self$95 1) (%closure-ref self$95 2) x$19 y$18 z$17) (null? x$19))) (%closure-ref self$94 4) (%closure-ref self$94 5)))) (%closure-ref self$93 1) (%closure-ref self$93 2) (%closure-ref self$93 3) (%closure-ref self$93 4) (%closure-ref self$93 5)) (set-cell! (%closure-ref self$93 1) r$67))) (%closure-ref self$81 1) (%closure-ref self$81 2) (%closure-ref self$81 3) (%closure-ref self$81 4) (%closure-ref self$81 5)) (%closure (lambda (self$82 k$68 n$20) ((%closure (lambda (self$83 r$69) ((%closure (lambda (self$84 i$22 l$21) ((%closure (lambda (self$85 loop$23) ((%closure (lambda (self$86 loop$23) ((%closure (lambda (self$91 r$71) ((%closure (lambda (self$92 r$70) ((%closure-ref (cell-get (%closure-ref self$92 4)) 0) (cell-get (%closure-ref self$92 4)) (%closure-ref self$92 2) (%closure-ref self$92 1) (%closure-ref self$92 3))) (%closure-ref self$91 1) (%closure-ref self$91 2) (%closure-ref self$91 3) (%closure-ref self$91 4)) (set-cell! (%closure-ref self$91 4) r$71))) (%closure-ref self$86 1) (%closure-ref self$86 2) (%closure-ref self$86 3) loop$23) (%closure (lambda (self$87 k$72 i$25 l$24) ((%closure (lambda (self$88 r$73) (if r$73 ((%closure-ref (%closure-ref self$88 2) 0) (%closure-ref self$88 2) (%closure-ref self$88 3)) ((%closure (lambda (self$89 r$74) ((%closure (lambda (self$90 r$75) ((%closure-ref (cell-get (%closure-ref self$90 2)) 0) (cell-get (%closure-ref self$90 2)) (%closure-ref self$90 1) (%closure-ref self$90 3) r$75)) (%closure-ref self$89 2) (%closure-ref self$89 4) r$74) (cons (%closure-ref self$89 1) (%closure-ref self$89 3)))) (%closure-ref self$88 1) (%closure-ref self$88 2) (%closure-ref self$88 3) (%closure-ref self$88 4)) (- (%closure-ref self$88 1) 1)))) i$25 k$72 l$24 (%closure-ref self$87 1)) (= i$25 0))) loop$23))) (%closure-ref self$85 1) (%closure-ref self$85 2) (%closure-ref self$85 3)) (cell loop$23))) i$22 (%closure-ref self$84 1) l$21) #f)) (%closure-ref self$83 1)) (%closure-ref self$83 2) r$69)) k$68 n$20) (quote ())))))) (%closure-ref self$80 1) (%closure-ref self$80 2) (%closure-ref self$80 3) (%closure-ref self$80 4) try$8) #f #f #f)) (%closure-ref self$79 1) (%closure-ref self$79 2) (%closure-ref self$79 3) ok?$9) (cell (%closure-ref self$79 4)))) dec-to$10 (%closure-ref self$78 1) (%closure-ref self$78 2) (%closure-ref self$78 4)) (cell (%closure-ref self$78 3)))) (%closure-ref self$77 1) (%closure-ref self$77 2) ok?$9 try$8) (cell dec-to$10))) k$30 n$4) #f #f #f))) ((lambda () ((lambda (r$26) ((%closure-ref nqueens 0) nqueens (%closure (lambda (self$76 r$27) ((%closure-ref write 0) write %halt r$27))) 8)) 0)))) + */ +/* +"---------------- C code:" + */ +#define closcall0(td,cfn) ((cfn)->fn)(td,0,cfn) +/* Check for GC, then call given continuation closure */ +#define return_closcall0(td,cfn) \ +{char stack; \ + if (check_overflow(&stack,(((gc_thread_data *)data)->stack_limit))) { \ + object buf[0]; \ + GC(td,cfn,buf,0); return; \ + } else {closcall0(td,(closure) (cfn)); return;}} + +/* Check for GC, then call C function directly */ +#define return_direct0(td,_fn) { \ + char stack; \ + if (check_overflow(&stack,(((gc_thread_data *)data)->stack_limit))) { \ + object buf[0]; \ + mclosure0(c1, _fn); \ + GC(td,&c1, buf, 0); return; \ + } else { (_fn)(td,0,(closure)_fn); }} + +#define closcall1(td,cfn,a1) if (type_of(cfn) == cons_tag || prim(cfn)) { Cyc_apply(td,0, (closure)(a1), cfn); } else { ((cfn)->fn)(td,1,cfn,a1);} +/* Check for GC, then call given continuation closure */ +#define return_closcall1(td,cfn,a1) \ +{char stack; \ + if (check_overflow(&stack,(((gc_thread_data *)data)->stack_limit))) { \ + object buf[1]; buf[0] = a1;\ + GC(td,cfn,buf,1); return; \ + } else {closcall1(td,(closure) (cfn),a1); return;}} + +/* Check for GC, then call C function directly */ +#define return_direct1(td,_fn,a1) { \ + char stack; \ + if (check_overflow(&stack,(((gc_thread_data *)data)->stack_limit))) { \ + object buf[1]; buf[0] = a1; \ + mclosure0(c1, _fn); \ + GC(td,&c1, buf, 1); return; \ + } else { (_fn)(td,1,(closure)_fn,a1); }} + +#define closcall2(td,cfn,a1,a2) if (type_of(cfn) == cons_tag || prim(cfn)) { Cyc_apply(td,1, (closure)(a1), cfn,a2); } else { ((cfn)->fn)(td,2,cfn,a1,a2);} +/* Check for GC, then call given continuation closure */ +#define return_closcall2(td,cfn,a1,a2) \ +{char stack; \ + if (check_overflow(&stack,(((gc_thread_data *)data)->stack_limit))) { \ + object buf[2]; buf[0] = a1;buf[1] = a2;\ + GC(td,cfn,buf,2); return; \ + } else {closcall2(td,(closure) (cfn),a1,a2); return;}} + +/* Check for GC, then call C function directly */ +#define return_direct2(td,_fn,a1,a2) { \ + char stack; \ + if (check_overflow(&stack,(((gc_thread_data *)data)->stack_limit))) { \ + object buf[2]; buf[0] = a1;buf[1] = a2; \ + mclosure0(c1, _fn); \ + GC(td,&c1, buf, 2); return; \ + } else { (_fn)(td,2,(closure)_fn,a1,a2); }} + +#define closcall3(td,cfn,a1,a2,a3) if (type_of(cfn) == cons_tag || prim(cfn)) { Cyc_apply(td,2, (closure)(a1), cfn,a2,a3); } else { ((cfn)->fn)(td,3,cfn,a1,a2,a3);} +/* Check for GC, then call given continuation closure */ +#define return_closcall3(td,cfn,a1,a2,a3) \ +{char stack; \ + if (check_overflow(&stack,(((gc_thread_data *)data)->stack_limit))) { \ + object buf[3]; buf[0] = a1;buf[1] = a2;buf[2] = a3;\ + GC(td,cfn,buf,3); return; \ + } else {closcall3(td,(closure) (cfn),a1,a2,a3); return;}} + +/* Check for GC, then call C function directly */ +#define return_direct3(td,_fn,a1,a2,a3) { \ + char stack; \ + if (check_overflow(&stack,(((gc_thread_data *)data)->stack_limit))) { \ + object buf[3]; buf[0] = a1;buf[1] = a2;buf[2] = a3; \ + mclosure0(c1, _fn); \ + GC(td,&c1, buf, 3); return; \ + } else { (_fn)(td,3,(closure)_fn,a1,a2,a3); }} + +#define closcall4(td,cfn,a1,a2,a3,a4) if (type_of(cfn) == cons_tag || prim(cfn)) { Cyc_apply(td,3, (closure)(a1), cfn,a2,a3,a4); } else { ((cfn)->fn)(td,4,cfn,a1,a2,a3,a4);} +/* Check for GC, then call given continuation closure */ +#define return_closcall4(td,cfn,a1,a2,a3,a4) \ +{char stack; \ + if (check_overflow(&stack,(((gc_thread_data *)data)->stack_limit))) { \ + object buf[4]; buf[0] = a1;buf[1] = a2;buf[2] = a3;buf[3] = a4;\ + GC(td,cfn,buf,4); return; \ + } else {closcall4(td,(closure) (cfn),a1,a2,a3,a4); return;}} + +/* Check for GC, then call C function directly */ +#define return_direct4(td,_fn,a1,a2,a3,a4) { \ + char stack; \ + if (check_overflow(&stack,(((gc_thread_data *)data)->stack_limit))) { \ + object buf[4]; buf[0] = a1;buf[1] = a2;buf[2] = a3;buf[3] = a4; \ + mclosure0(c1, _fn); \ + GC(td,&c1, buf, 4); return; \ + } else { (_fn)(td,4,(closure)_fn,a1,a2,a3,a4); }} + +#include "cyclone/types.h" +object __glo_nqueens = nil; +extern object __glo_cons_91source; +extern object __glo_syntax_91rules; +extern object __glo_letrec_85; +extern object __glo_guard; +extern object __glo_guard_91aux; +extern object __glo_receive; +extern object __glo_abs; +extern object __glo_max; +extern object __glo_min; +extern object __glo_modulo; +extern object __glo_floor_91remainder; +extern object __glo_even_127; +extern object __glo_exact_91integer_127; +extern object __glo_exact_127; +extern object __glo_inexact_127; +extern object __glo_odd_127; +extern object __glo_gcd; +extern object __glo_lcm; +extern object __glo_quotient; +extern object __glo_remainder; +extern object __glo_truncate_91quotient; +extern object __glo_truncate_91remainder; +extern object __glo_truncate_95; +extern object __glo_floor_91quotient; +extern object __glo_floor_91remainder; +extern object __glo_floor_95; +extern object __glo_square; +extern object __glo_expt; +extern object __glo_call_91with_91current_91continuation; +extern object __glo_call_95cc; +extern object __glo_call_91with_91values; +extern object __glo_dynamic_91wind; +extern object __glo_values; +extern object __glo_char_123_127; +extern object __glo_char_121_127; +extern object __glo_char_125_127; +extern object __glo_char_121_123_127; +extern object __glo_char_125_123_127; +extern object __glo_string_123_127; +extern object __glo_string_121_127; +extern object __glo_string_121_123_127; +extern object __glo_string_125_127; +extern object __glo_string_125_123_127; +extern object __glo_foldl; +extern object __glo_foldr; +extern object __glo_not; +extern object __glo_list_127; +extern object __glo_zero_127; +extern object __glo_positive_127; +extern object __glo_negative_127; +extern object __glo_append; +extern object __glo__list; +extern object __glo_make_91list; +extern object __glo_list_91copy; +extern object __glo_map; +extern object __glo_for_91each; +extern object __glo_list_91tail; +extern object __glo_list_91ref; +extern object __glo_list_91set_67; +extern object __glo_reverse; +extern object __glo_boolean_123_127; +extern object __glo_symbol_123_127; +extern object __glo_Cyc_91obj_123_127; +extern object __glo_vector; +extern object __glo_vector_91append; +extern object __glo_vector_91copy; +extern object __glo_vector_91copy_67; +extern object __glo_vector_91fill_67; +extern object __glo_vector_91_125list; +extern object __glo_vector_91_125string; +extern object __glo_vector_91map; +extern object __glo_vector_91for_91each; +extern object __glo_make_91string; +extern object __glo_string; +extern object __glo_string_91copy; +extern object __glo_string_91copy_67; +extern object __glo_string_91fill_67; +extern object __glo_string_91_125list; +extern object __glo_string_91_125vector; +extern object __glo_string_91map; +extern object __glo_string_91for_91each; +extern object __glo_make_91parameter; +extern object __glo_current_91output_91port; +extern object __glo_current_91input_91port; +extern object __glo_current_91error_91port; +extern object __glo_call_91with_91port; +extern object __glo_error; +extern object __glo_raise; +extern object __glo_raise_91continuable; +extern object __glo_with_91exception_91handler; +extern object __glo_Cyc_91add_91exception_91handler; +extern object __glo_Cyc_91remove_91exception_91handler; +extern object __glo_newline; +extern object __glo_write_91char; +extern object __glo_write_91string; +extern object __glo_flush_91output_91port; +extern object __glo_read_91line; +extern object __glo_read_91string; +extern object __glo_input_91port_127; +extern object __glo_output_91port_127; +extern object __glo_input_91port_91open_127; +extern object __glo_output_91port_91open_127; +extern object __glo_features; +extern object __glo_any; +extern object __glo_every; +extern object __glo_and; +extern object __glo_or; +extern object __glo_let; +extern object __glo_let_85; +extern object __glo_letrec; +extern object __glo_begin; +extern object __glo__case; +extern object __glo_cond; +extern object __glo_cond_91expand; +extern object __glo__do; +extern object __glo_when; +extern object __glo_unless; +extern object __glo_quasiquote; +extern object __glo_floor; +extern object __glo_ceiling; +extern object __glo_truncate; +extern object __glo_round; +extern object __glo_exact; +extern object __glo_inexact; +extern object __glo_eof_91object; +extern object __glo_syntax_91error; +extern object __glo_display; +extern object __glo_write; +#include "cyclone/runtime.h" +#include "cyclone/runtime-main.h" +static void __lambda_56(void *data, int argc, closure _) ; +static void __lambda_55(void *data, int argc, closure _,object r_7326) ; +static void __lambda_54(void *data, int argc, object self_7376, object r_7327) ; +static void __lambda_53(void *data, int argc, closure _,object k_7330, object n_734) ; +static void __lambda_52(void *data, int argc, object self_7377, object dec_91to_7310, object ok_127_739, object try_738) ; +static void __lambda_51(void *data, int argc, object self_7378, object dec_91to_7310) ; +static void __lambda_50(void *data, int argc, object self_7379, object ok_127_739) ; +static void __lambda_49(void *data, int argc, object self_7380, object try_738) ; +static void __lambda_48(void *data, int argc, object self_7381, object dec_91to_7313, object try_7312, object ok_127_7311) ; +static void __lambda_47(void *data, int argc, object self_7382, object k_7368, object n_7320) ; +static void __lambda_46(void *data, int argc, object self_7383, object r_7369) ; +static void __lambda_45(void *data, int argc, object self_7384, object i_7322, object l_7321) ; +static void __lambda_44(void *data, int argc, object self_7385, object loop_7323) ; +static void __lambda_43(void *data, int argc, object self_7386, object loop_7323) ; +static void __lambda_42(void *data, int argc, object self_7387, object k_7372, object i_7325, object l_7324) ; +static void __lambda_41(void *data, int argc, object self_7388, object r_7373) ; +static void __lambda_40(void *data, int argc, object self_7389, object r_7374) ; +static void __lambda_39(void *data, int argc, object self_7390, object r_7375) ; +static void __lambda_38(void *data, int argc, object self_7391, object r_7371) ; +static void __lambda_37(void *data, int argc, object self_7392, object r_7370) ; +static void __lambda_36(void *data, int argc, object self_7393, object r_7367) ; +static void __lambda_35(void *data, int argc, object self_7394, object r_7331) ; +static void __lambda_34(void *data, int argc, object self_7395, object k_7351, object x_7319, object y_7318, object z_7317) ; +static void __lambda_33(void *data, int argc, object self_7396, object r_7352) ; +static void __lambda_32(void *data, int argc, object self_7397, object r_7354) ; +static void __lambda_31(void *data, int argc, object self_7398, object r_7356) ; +static void __lambda_30(void *data, int argc, object self_7399, object r_7358) ; +static void __lambda_29(void *data, int argc, object self_73100, object r_7357) ; +static void __lambda_28(void *data, int argc, object self_73101, object r_7355) ; +static void __lambda_27(void *data, int argc, object self_73102, object k_7359) ; +static void __lambda_26(void *data, int argc, object self_73103, object r_7366) ; +static void __lambda_25(void *data, int argc, object self_73104, object r_7360) ; +static void __lambda_24(void *data, int argc, object self_73105, object r_7365) ; +static void __lambda_23(void *data, int argc, object self_73106, object r_7361) ; +static void __lambda_22(void *data, int argc, object self_73107, object r_7362) ; +static void __lambda_21(void *data, int argc, object self_73108, object r_7364) ; +static void __lambda_20(void *data, int argc, object self_73109, object r_7363) ; +static void __lambda_19(void *data, int argc, object self_73110, object r_7353) ; +static void __lambda_18(void *data, int argc, object self_73111, object r_7350) ; +static void __lambda_17(void *data, int argc, object self_73112, object r_7332) ; +static void __lambda_16(void *data, int argc, object self_73113, object k_7338, object row_7316, object dist_7315, object placed_7314) ; +static void __lambda_15(void *data, int argc, object self_73114, object r_7339) ; +static void __lambda_14(void *data, int argc, object self_73115, object r_7348) ; +static void __lambda_13(void *data, int argc, object self_73116, object r_7349) ; +static void __lambda_12(void *data, int argc, object self_73117, object r_7347) ; +static void __lambda_11(void *data, int argc, object self_73118, object r_7340) ; +static void __lambda_10(void *data, int argc, object self_73119, object r_7345) ; +static void __lambda_9(void *data, int argc, object self_73120, object r_7346) ; +static void __lambda_8(void *data, int argc, object self_73121, object r_7344) ; +static void __lambda_7(void *data, int argc, object self_73122, object r_7341) ; +static void __lambda_6(void *data, int argc, object self_73123, object r_7342) ; +static void __lambda_5(void *data, int argc, object self_73124, object r_7343) ; +static void __lambda_4(void *data, int argc, object self_73125, object r_7337) ; +static void __lambda_3(void *data, int argc, object self_73126, object r_7333) ; +static void __lambda_2(void *data, int argc, object self_73127, object r_7334) ; +static void __lambda_1(void *data, int argc, object self_73128, object r_7335) ; +static void __lambda_0(void *data, int argc, object self_73129, object r_7336) ; + +static void __lambda_56(void *data, int argc, closure _) { + make_int(c_73411, 0); +return_direct1(data,__lambda_55,&c_73411);; +} + +static void __lambda_55(void *data, int argc, closure _,object r_7326) { + +mclosure0(c_73408, (function_type)__lambda_54);c_73408.num_args = 1; + +make_int(c_73410, 8); +return_closcall2(data, __glo_nqueens, &c_73408, &c_73410);; +} + +static void __lambda_54(void *data, int argc, object self_7376, object r_7327) { + return_closcall2(data, __glo_write, primitive__75halt, r_7327);; +} + +static void __lambda_53(void *data, int argc, closure _,object k_7330, object n_734) { + Cyc_st_add(data, "nqueens.scm:nqueens"); + +closureN_type c_73132; +c_73132.hdr.mark = gc_color_red; + c_73132.hdr.grayed = 0; +c_73132.tag = closureN_tag; + c_73132.fn = (function_type)__lambda_52; +c_73132.num_args = 3; +c_73132.num_elt = 2; +c_73132.elts = (object *)alloca(sizeof(object) * 2); +c_73132.elts[0] = k_7330; +c_73132.elts[1] = n_734; + +return_closcall3(data,(closure)&c_73132, boolean_f, boolean_f, boolean_f);; +} + +static void __lambda_52(void *data, int argc, object self_7377, object dec_91to_7310, object ok_127_739, object try_738) { + Cyc_st_add(data, "nqueens.scm:nqueens"); + +closureN_type c_73134; +c_73134.hdr.mark = gc_color_red; + c_73134.hdr.grayed = 0; +c_73134.tag = closureN_tag; + c_73134.fn = (function_type)__lambda_51; +c_73134.num_args = 1; +c_73134.num_elt = 4; +c_73134.elts = (object *)alloca(sizeof(object) * 4); +c_73134.elts[0] = ((closureN)self_7377)->elts[0]; +c_73134.elts[1] = ((closureN)self_7377)->elts[1]; +c_73134.elts[2] = ok_127_739; +c_73134.elts[3] = try_738; + + +make_cell(c_73404,dec_91to_7310); +return_closcall1(data,(closure)&c_73134, &c_73404);; +} + +static void __lambda_51(void *data, int argc, object self_7378, object dec_91to_7310) { + Cyc_st_add(data, "nqueens.scm:nqueens"); + +closureN_type c_73136; +c_73136.hdr.mark = gc_color_red; + c_73136.hdr.grayed = 0; +c_73136.tag = closureN_tag; + c_73136.fn = (function_type)__lambda_50; +c_73136.num_args = 1; +c_73136.num_elt = 4; +c_73136.elts = (object *)alloca(sizeof(object) * 4); +c_73136.elts[0] = dec_91to_7310; +c_73136.elts[1] = ((closureN)self_7378)->elts[0]; +c_73136.elts[2] = ((closureN)self_7378)->elts[1]; +c_73136.elts[3] = ((closureN)self_7378)->elts[3]; + + +make_cell(c_73400,((closureN)self_7378)->elts[2]); +return_closcall1(data,(closure)&c_73136, &c_73400);; +} + +static void __lambda_50(void *data, int argc, object self_7379, object ok_127_739) { + Cyc_st_add(data, "nqueens.scm:nqueens"); + +closureN_type c_73138; +c_73138.hdr.mark = gc_color_red; + c_73138.hdr.grayed = 0; +c_73138.tag = closureN_tag; + c_73138.fn = (function_type)__lambda_49; +c_73138.num_args = 1; +c_73138.num_elt = 4; +c_73138.elts = (object *)alloca(sizeof(object) * 4); +c_73138.elts[0] = ((closureN)self_7379)->elts[0]; +c_73138.elts[1] = ((closureN)self_7379)->elts[1]; +c_73138.elts[2] = ((closureN)self_7379)->elts[2]; +c_73138.elts[3] = ok_127_739; + + +make_cell(c_73396,((closureN)self_7379)->elts[3]); +return_closcall1(data,(closure)&c_73138, &c_73396);; +} + +static void __lambda_49(void *data, int argc, object self_7380, object try_738) { + Cyc_st_add(data, "nqueens.scm:nqueens"); + +closureN_type c_73140; +c_73140.hdr.mark = gc_color_red; + c_73140.hdr.grayed = 0; +c_73140.tag = closureN_tag; + c_73140.fn = (function_type)__lambda_48; +c_73140.num_args = 3; +c_73140.num_elt = 5; +c_73140.elts = (object *)alloca(sizeof(object) * 5); +c_73140.elts[0] = ((closureN)self_7380)->elts[0]; +c_73140.elts[1] = ((closureN)self_7380)->elts[1]; +c_73140.elts[2] = ((closureN)self_7380)->elts[2]; +c_73140.elts[3] = ((closureN)self_7380)->elts[3]; +c_73140.elts[4] = try_738; + +return_closcall3(data,(closure)&c_73140, boolean_f, boolean_f, boolean_f);; +} + +static void __lambda_48(void *data, int argc, object self_7381, object dec_91to_7313, object try_7312, object ok_127_7311) { + Cyc_st_add(data, "nqueens.scm:nqueens"); + +closureN_type c_73142; +c_73142.hdr.mark = gc_color_red; + c_73142.hdr.grayed = 0; +c_73142.tag = closureN_tag; + c_73142.fn = (function_type)__lambda_36; +c_73142.num_args = 1; +c_73142.num_elt = 5; +c_73142.elts = (object *)alloca(sizeof(object) * 5); +c_73142.elts[0] = ((closureN)self_7381)->elts[0]; +c_73142.elts[1] = ((closureN)self_7381)->elts[1]; +c_73142.elts[2] = ((closureN)self_7381)->elts[2]; +c_73142.elts[3] = ((closureN)self_7381)->elts[3]; +c_73142.elts[4] = ((closureN)self_7381)->elts[4]; + + +mclosure0(c_73338, (function_type)__lambda_47);c_73338.num_args = 1; +return_closcall1(data,(closure)&c_73142, &c_73338);; +} + +static void __lambda_47(void *data, int argc, object self_7382, object k_7368, object n_7320) { + Cyc_st_add(data, "nqueens.scm:nqueens"); + +closureN_type c_73340; +c_73340.hdr.mark = gc_color_red; + c_73340.hdr.grayed = 0; +c_73340.tag = closureN_tag; + c_73340.fn = (function_type)__lambda_46; +c_73340.num_args = 1; +c_73340.num_elt = 2; +c_73340.elts = (object *)alloca(sizeof(object) * 2); +c_73340.elts[0] = k_7368; +c_73340.elts[1] = n_7320; + +return_closcall1(data,(closure)&c_73340, nil);; +} + +static void __lambda_46(void *data, int argc, object self_7383, object r_7369) { + Cyc_st_add(data, "nqueens.scm:nqueens"); + +closureN_type c_73342; +c_73342.hdr.mark = gc_color_red; + c_73342.hdr.grayed = 0; +c_73342.tag = closureN_tag; + c_73342.fn = (function_type)__lambda_45; +c_73342.num_args = 2; +c_73342.num_elt = 1; +c_73342.elts = (object *)alloca(sizeof(object) * 1); +c_73342.elts[0] = ((closureN)self_7383)->elts[0]; + +return_closcall2(data,(closure)&c_73342, ((closureN)self_7383)->elts[1], r_7369);; +} + +static void __lambda_45(void *data, int argc, object self_7384, object i_7322, object l_7321) { + Cyc_st_add(data, "nqueens.scm:nqueens"); + +closureN_type c_73344; +c_73344.hdr.mark = gc_color_red; + c_73344.hdr.grayed = 0; +c_73344.tag = closureN_tag; + c_73344.fn = (function_type)__lambda_44; +c_73344.num_args = 1; +c_73344.num_elt = 3; +c_73344.elts = (object *)alloca(sizeof(object) * 3); +c_73344.elts[0] = i_7322; +c_73344.elts[1] = ((closureN)self_7384)->elts[0]; +c_73344.elts[2] = l_7321; + +return_closcall1(data,(closure)&c_73344, boolean_f);; +} + +static void __lambda_44(void *data, int argc, object self_7385, object loop_7323) { + Cyc_st_add(data, "nqueens.scm:nqueens"); + +closureN_type c_73346; +c_73346.hdr.mark = gc_color_red; + c_73346.hdr.grayed = 0; +c_73346.tag = closureN_tag; + c_73346.fn = (function_type)__lambda_43; +c_73346.num_args = 1; +c_73346.num_elt = 3; +c_73346.elts = (object *)alloca(sizeof(object) * 3); +c_73346.elts[0] = ((closureN)self_7385)->elts[0]; +c_73346.elts[1] = ((closureN)self_7385)->elts[1]; +c_73346.elts[2] = ((closureN)self_7385)->elts[2]; + + +make_cell(c_73392,loop_7323); +return_closcall1(data,(closure)&c_73346, &c_73392);; +} + +static void __lambda_43(void *data, int argc, object self_7386, object loop_7323) { + Cyc_st_add(data, "nqueens.scm:nqueens"); + +closureN_type c_73348; +c_73348.hdr.mark = gc_color_red; + c_73348.hdr.grayed = 0; +c_73348.tag = closureN_tag; + c_73348.fn = (function_type)__lambda_38; +c_73348.num_args = 1; +c_73348.num_elt = 4; +c_73348.elts = (object *)alloca(sizeof(object) * 4); +c_73348.elts[0] = ((closureN)self_7386)->elts[0]; +c_73348.elts[1] = ((closureN)self_7386)->elts[1]; +c_73348.elts[2] = ((closureN)self_7386)->elts[2]; +c_73348.elts[3] = loop_7323; + + +closureN_type c_73361; +c_73361.hdr.mark = gc_color_red; + c_73361.hdr.grayed = 0; +c_73361.tag = closureN_tag; + c_73361.fn = (function_type)__lambda_42; +c_73361.num_args = 2; +c_73361.num_elt = 1; +c_73361.elts = (object *)alloca(sizeof(object) * 1); +c_73361.elts[0] = loop_7323; + +return_closcall1(data,(closure)&c_73348, &c_73361);; +} + +static void __lambda_42(void *data, int argc, object self_7387, object k_7372, object i_7325, object l_7324) { + Cyc_st_add(data, "nqueens.scm:nqueens"); + +closureN_type c_73363; +c_73363.hdr.mark = gc_color_red; + c_73363.hdr.grayed = 0; +c_73363.tag = closureN_tag; + c_73363.fn = (function_type)__lambda_41; +c_73363.num_args = 1; +c_73363.num_elt = 4; +c_73363.elts = (object *)alloca(sizeof(object) * 4); +c_73363.elts[0] = i_7325; +c_73363.elts[1] = k_7372; +c_73363.elts[2] = l_7324; +c_73363.elts[3] = ((closureN)self_7387)->elts[0]; + + +make_int(c_73389, 0); +return_closcall1(data,(closure)&c_73363, __num_eq(data, i_7325, &c_73389));; +} + +static void __lambda_41(void *data, int argc, object self_7388, object r_7373) { + Cyc_st_add(data, "nqueens.scm:nqueens"); +if( !eq(boolean_f, r_7373) ){ + return_closcall1(data, ((closureN)self_7388)->elts[1], ((closureN)self_7388)->elts[2]); +} else { + +closureN_type c_73368; +c_73368.hdr.mark = gc_color_red; + c_73368.hdr.grayed = 0; +c_73368.tag = closureN_tag; + c_73368.fn = (function_type)__lambda_40; +c_73368.num_args = 1; +c_73368.num_elt = 4; +c_73368.elts = (object *)alloca(sizeof(object) * 4); +c_73368.elts[0] = ((closureN)self_7388)->elts[0]; +c_73368.elts[1] = ((closureN)self_7388)->elts[1]; +c_73368.elts[2] = ((closureN)self_7388)->elts[2]; +c_73368.elts[3] = ((closureN)self_7388)->elts[3]; + + +make_int(c_73386, 1); + +common_type c_73384 = Cyc_sub(data,2,((closureN)self_7388)->elts[0], &c_73386); +return_closcall1(data,(closure)&c_73368, &c_73384);} +; +} + +static void __lambda_40(void *data, int argc, object self_7389, object r_7374) { + Cyc_st_add(data, "nqueens.scm:nqueens"); + +closureN_type c_73370; +c_73370.hdr.mark = gc_color_red; + c_73370.hdr.grayed = 0; +c_73370.tag = closureN_tag; + c_73370.fn = (function_type)__lambda_39; +c_73370.num_args = 1; +c_73370.num_elt = 3; +c_73370.elts = (object *)alloca(sizeof(object) * 3); +c_73370.elts[0] = ((closureN)self_7389)->elts[1]; +c_73370.elts[1] = ((closureN)self_7389)->elts[3]; +c_73370.elts[2] = r_7374; + + +make_cons(c_73379,((closureN)self_7389)->elts[0], ((closureN)self_7389)->elts[2]); +return_closcall1(data,(closure)&c_73370, &c_73379);; +} + +static void __lambda_39(void *data, int argc, object self_7390, object r_7375) { + Cyc_st_add(data, "nqueens.scm:nqueens"); +return_closcall3(data, cell_get(((closureN)self_7390)->elts[1]), ((closureN)self_7390)->elts[0], ((closureN)self_7390)->elts[2], r_7375);; +} + +static void __lambda_38(void *data, int argc, object self_7391, object r_7371) { + Cyc_st_add(data, "nqueens.scm:nqueens"); + +closureN_type c_73350; +c_73350.hdr.mark = gc_color_red; + c_73350.hdr.grayed = 0; +c_73350.tag = closureN_tag; + c_73350.fn = (function_type)__lambda_37; +c_73350.num_args = 1; +c_73350.num_elt = 4; +c_73350.elts = (object *)alloca(sizeof(object) * 4); +c_73350.elts[0] = ((closureN)self_7391)->elts[0]; +c_73350.elts[1] = ((closureN)self_7391)->elts[1]; +c_73350.elts[2] = ((closureN)self_7391)->elts[2]; +c_73350.elts[3] = ((closureN)self_7391)->elts[3]; + +return_closcall1(data,(closure)&c_73350, Cyc_set_car(data, ((closureN)self_7391)->elts[3], r_7371));; +} + +static void __lambda_37(void *data, int argc, object self_7392, object r_7370) { + Cyc_st_add(data, "nqueens.scm:nqueens"); +return_closcall3(data, cell_get(((closureN)self_7392)->elts[3]), ((closureN)self_7392)->elts[1], ((closureN)self_7392)->elts[0], ((closureN)self_7392)->elts[2]);; +} + +static void __lambda_36(void *data, int argc, object self_7393, object r_7367) { + Cyc_st_add(data, "nqueens.scm:nqueens"); + +closureN_type c_73144; +c_73144.hdr.mark = gc_color_red; + c_73144.hdr.grayed = 0; +c_73144.tag = closureN_tag; + c_73144.fn = (function_type)__lambda_35; +c_73144.num_args = 1; +c_73144.num_elt = 5; +c_73144.elts = (object *)alloca(sizeof(object) * 5); +c_73144.elts[0] = ((closureN)self_7393)->elts[0]; +c_73144.elts[1] = ((closureN)self_7393)->elts[1]; +c_73144.elts[2] = ((closureN)self_7393)->elts[2]; +c_73144.elts[3] = ((closureN)self_7393)->elts[3]; +c_73144.elts[4] = ((closureN)self_7393)->elts[4]; + +return_closcall1(data,(closure)&c_73144, Cyc_set_car(data, ((closureN)self_7393)->elts[0], r_7367));; +} + +static void __lambda_35(void *data, int argc, object self_7394, object r_7331) { + Cyc_st_add(data, "nqueens.scm:nqueens"); + +closureN_type c_73146; +c_73146.hdr.mark = gc_color_red; + c_73146.hdr.grayed = 0; +c_73146.tag = closureN_tag; + c_73146.fn = (function_type)__lambda_18; +c_73146.num_args = 1; +c_73146.num_elt = 5; +c_73146.elts = (object *)alloca(sizeof(object) * 5); +c_73146.elts[0] = ((closureN)self_7394)->elts[0]; +c_73146.elts[1] = ((closureN)self_7394)->elts[1]; +c_73146.elts[2] = ((closureN)self_7394)->elts[2]; +c_73146.elts[3] = ((closureN)self_7394)->elts[3]; +c_73146.elts[4] = ((closureN)self_7394)->elts[4]; + + +closureN_type c_73244; +c_73244.hdr.mark = gc_color_red; + c_73244.hdr.grayed = 0; +c_73244.tag = closureN_tag; + c_73244.fn = (function_type)__lambda_34; +c_73244.num_args = 3; +c_73244.num_elt = 2; +c_73244.elts = (object *)alloca(sizeof(object) * 2); +c_73244.elts[0] = ((closureN)self_7394)->elts[3]; +c_73244.elts[1] = ((closureN)self_7394)->elts[4]; + +return_closcall1(data,(closure)&c_73146, &c_73244);; +} + +static void __lambda_34(void *data, int argc, object self_7395, object k_7351, object x_7319, object y_7318, object z_7317) { + Cyc_st_add(data, "nqueens.scm:nqueens"); + +closureN_type c_73246; +c_73246.hdr.mark = gc_color_red; + c_73246.hdr.grayed = 0; +c_73246.tag = closureN_tag; + c_73246.fn = (function_type)__lambda_33; +c_73246.num_args = 1; +c_73246.num_elt = 6; +c_73246.elts = (object *)alloca(sizeof(object) * 6); +c_73246.elts[0] = k_7351; +c_73246.elts[1] = ((closureN)self_7395)->elts[0]; +c_73246.elts[2] = ((closureN)self_7395)->elts[1]; +c_73246.elts[3] = x_7319; +c_73246.elts[4] = y_7318; +c_73246.elts[5] = z_7317; + +return_closcall1(data,(closure)&c_73246, Cyc_is_null(x_7319));; +} + +static void __lambda_33(void *data, int argc, object self_7396, object r_7352) { + Cyc_st_add(data, "nqueens.scm:nqueens"); +if( !eq(boolean_f, r_7352) ){ + +closureN_type c_73248; +c_73248.hdr.mark = gc_color_red; + c_73248.hdr.grayed = 0; +c_73248.tag = closureN_tag; + c_73248.fn = (function_type)__lambda_19; +c_73248.num_args = 1; +c_73248.num_elt = 1; +c_73248.elts = (object *)alloca(sizeof(object) * 1); +c_73248.elts[0] = ((closureN)self_7396)->elts[0]; + +return_closcall1(data,(closure)&c_73248, Cyc_is_null(((closureN)self_7396)->elts[4])); +} else { + +closureN_type c_73259; +c_73259.hdr.mark = gc_color_red; + c_73259.hdr.grayed = 0; +c_73259.tag = closureN_tag; + c_73259.fn = (function_type)__lambda_27; +c_73259.num_args = 0; +c_73259.num_elt = 5; +c_73259.elts = (object *)alloca(sizeof(object) * 5); +c_73259.elts[0] = ((closureN)self_7396)->elts[1]; +c_73259.elts[1] = ((closureN)self_7396)->elts[2]; +c_73259.elts[2] = ((closureN)self_7396)->elts[3]; +c_73259.elts[3] = ((closureN)self_7396)->elts[4]; +c_73259.elts[4] = ((closureN)self_7396)->elts[5]; + + +closureN_type c_73303; +c_73303.hdr.mark = gc_color_red; + c_73303.hdr.grayed = 0; +c_73303.tag = closureN_tag; + c_73303.fn = (function_type)__lambda_32; +c_73303.num_args = 1; +c_73303.num_elt = 5; +c_73303.elts = (object *)alloca(sizeof(object) * 5); +c_73303.elts[0] = ((closureN)self_7396)->elts[0]; +c_73303.elts[1] = ((closureN)self_7396)->elts[2]; +c_73303.elts[2] = ((closureN)self_7396)->elts[3]; +c_73303.elts[3] = ((closureN)self_7396)->elts[4]; +c_73303.elts[4] = ((closureN)self_7396)->elts[5]; + +return_closcall1(data,(closure)&c_73259, &c_73303);} +; +} + +static void __lambda_32(void *data, int argc, object self_7397, object r_7354) { + Cyc_st_add(data, "nqueens.scm:nqueens"); + +closureN_type c_73305; +c_73305.hdr.mark = gc_color_red; + c_73305.hdr.grayed = 0; +c_73305.tag = closureN_tag; + c_73305.fn = (function_type)__lambda_31; +c_73305.num_args = 1; +c_73305.num_elt = 6; +c_73305.elts = (object *)alloca(sizeof(object) * 6); +c_73305.elts[0] = ((closureN)self_7397)->elts[0]; +c_73305.elts[1] = r_7354; +c_73305.elts[2] = ((closureN)self_7397)->elts[1]; +c_73305.elts[3] = ((closureN)self_7397)->elts[2]; +c_73305.elts[4] = ((closureN)self_7397)->elts[3]; +c_73305.elts[5] = ((closureN)self_7397)->elts[4]; + +return_closcall1(data,(closure)&c_73305, cdr(((closureN)self_7397)->elts[2]));; +} + +static void __lambda_31(void *data, int argc, object self_7398, object r_7356) { + Cyc_st_add(data, "nqueens.scm:nqueens"); + +closureN_type c_73307; +c_73307.hdr.mark = gc_color_red; + c_73307.hdr.grayed = 0; +c_73307.tag = closureN_tag; + c_73307.fn = (function_type)__lambda_30; +c_73307.num_args = 1; +c_73307.num_elt = 6; +c_73307.elts = (object *)alloca(sizeof(object) * 6); +c_73307.elts[0] = ((closureN)self_7398)->elts[0]; +c_73307.elts[1] = ((closureN)self_7398)->elts[1]; +c_73307.elts[2] = r_7356; +c_73307.elts[3] = ((closureN)self_7398)->elts[2]; +c_73307.elts[4] = ((closureN)self_7398)->elts[4]; +c_73307.elts[5] = ((closureN)self_7398)->elts[5]; + +return_closcall1(data,(closure)&c_73307, car(((closureN)self_7398)->elts[3]));; +} + +static void __lambda_30(void *data, int argc, object self_7399, object r_7358) { + Cyc_st_add(data, "nqueens.scm:nqueens"); + +closureN_type c_73309; +c_73309.hdr.mark = gc_color_red; + c_73309.hdr.grayed = 0; +c_73309.tag = closureN_tag; + c_73309.fn = (function_type)__lambda_29; +c_73309.num_args = 1; +c_73309.num_elt = 5; +c_73309.elts = (object *)alloca(sizeof(object) * 5); +c_73309.elts[0] = ((closureN)self_7399)->elts[0]; +c_73309.elts[1] = ((closureN)self_7399)->elts[1]; +c_73309.elts[2] = ((closureN)self_7399)->elts[2]; +c_73309.elts[3] = ((closureN)self_7399)->elts[3]; +c_73309.elts[4] = ((closureN)self_7399)->elts[5]; + + +make_cons(c_73325,r_7358, ((closureN)self_7399)->elts[4]); +return_closcall1(data,(closure)&c_73309, &c_73325);; +} + +static void __lambda_29(void *data, int argc, object self_73100, object r_7357) { + Cyc_st_add(data, "nqueens.scm:nqueens"); + +closureN_type c_73314; +c_73314.hdr.mark = gc_color_red; + c_73314.hdr.grayed = 0; +c_73314.tag = closureN_tag; + c_73314.fn = (function_type)__lambda_28; +c_73314.num_args = 1; +c_73314.num_elt = 2; +c_73314.elts = (object *)alloca(sizeof(object) * 2); +c_73314.elts[0] = ((closureN)self_73100)->elts[0]; +c_73314.elts[1] = ((closureN)self_73100)->elts[1]; + +return_closcall4(data, cell_get(((closureN)self_73100)->elts[3]), &c_73314, ((closureN)self_73100)->elts[2], r_7357, ((closureN)self_73100)->elts[4]);; +} + +static void __lambda_28(void *data, int argc, object self_73101, object r_7355) { + Cyc_st_add(data, "nqueens.scm:nqueens"); + +common_type c_73319 = Cyc_sum(data,2,((closureN)self_73101)->elts[1], r_7355); +return_closcall1(data, ((closureN)self_73101)->elts[0], &c_73319);; +} + +static void __lambda_27(void *data, int argc, object self_73102, object k_7359) { + Cyc_st_add(data, "nqueens.scm:nqueens"); + +closureN_type c_73261; +c_73261.hdr.mark = gc_color_red; + c_73261.hdr.grayed = 0; +c_73261.tag = closureN_tag; + c_73261.fn = (function_type)__lambda_26; +c_73261.num_args = 1; +c_73261.num_elt = 6; +c_73261.elts = (object *)alloca(sizeof(object) * 6); +c_73261.elts[0] = k_7359; +c_73261.elts[1] = ((closureN)self_73102)->elts[0]; +c_73261.elts[2] = ((closureN)self_73102)->elts[1]; +c_73261.elts[3] = ((closureN)self_73102)->elts[2]; +c_73261.elts[4] = ((closureN)self_73102)->elts[3]; +c_73261.elts[5] = ((closureN)self_73102)->elts[4]; + +return_closcall1(data,(closure)&c_73261, car(((closureN)self_73102)->elts[2]));; +} + +static void __lambda_26(void *data, int argc, object self_73103, object r_7366) { + Cyc_st_add(data, "nqueens.scm:nqueens"); + +closureN_type c_73266; +c_73266.hdr.mark = gc_color_red; + c_73266.hdr.grayed = 0; +c_73266.tag = closureN_tag; + c_73266.fn = (function_type)__lambda_25; +c_73266.num_args = 1; +c_73266.num_elt = 5; +c_73266.elts = (object *)alloca(sizeof(object) * 5); +c_73266.elts[0] = ((closureN)self_73103)->elts[0]; +c_73266.elts[1] = ((closureN)self_73103)->elts[2]; +c_73266.elts[2] = ((closureN)self_73103)->elts[3]; +c_73266.elts[3] = ((closureN)self_73103)->elts[4]; +c_73266.elts[4] = ((closureN)self_73103)->elts[5]; + + +make_int(c_73298, 1); +return_closcall4(data, cell_get(((closureN)self_73103)->elts[1]), &c_73266, r_7366, &c_73298, ((closureN)self_73103)->elts[5]);; +} + +static void __lambda_25(void *data, int argc, object self_73104, object r_7360) { + Cyc_st_add(data, "nqueens.scm:nqueens"); +if( !eq(boolean_f, r_7360) ){ + +closureN_type c_73268; +c_73268.hdr.mark = gc_color_red; + c_73268.hdr.grayed = 0; +c_73268.tag = closureN_tag; + c_73268.fn = (function_type)__lambda_24; +c_73268.num_args = 1; +c_73268.num_elt = 5; +c_73268.elts = (object *)alloca(sizeof(object) * 5); +c_73268.elts[0] = ((closureN)self_73104)->elts[0]; +c_73268.elts[1] = ((closureN)self_73104)->elts[1]; +c_73268.elts[2] = ((closureN)self_73104)->elts[2]; +c_73268.elts[3] = ((closureN)self_73104)->elts[3]; +c_73268.elts[4] = ((closureN)self_73104)->elts[4]; + +return_closcall1(data,(closure)&c_73268, cdr(((closureN)self_73104)->elts[2])); +} else { + +make_int(c_73297, 0); +return_closcall1(data, ((closureN)self_73104)->elts[0], &c_73297);} +; +} + +static void __lambda_24(void *data, int argc, object self_73105, object r_7365) { + Cyc_st_add(data, "nqueens.scm:nqueens"); + +closureN_type c_73270; +c_73270.hdr.mark = gc_color_red; + c_73270.hdr.grayed = 0; +c_73270.tag = closureN_tag; + c_73270.fn = (function_type)__lambda_23; +c_73270.num_args = 1; +c_73270.num_elt = 4; +c_73270.elts = (object *)alloca(sizeof(object) * 4); +c_73270.elts[0] = ((closureN)self_73105)->elts[0]; +c_73270.elts[1] = ((closureN)self_73105)->elts[1]; +c_73270.elts[2] = ((closureN)self_73105)->elts[2]; +c_73270.elts[3] = ((closureN)self_73105)->elts[4]; + +return_closcall3(data, __glo_append, &c_73270, r_7365, ((closureN)self_73105)->elts[3]);; +} + +static void __lambda_23(void *data, int argc, object self_73106, object r_7361) { + Cyc_st_add(data, "nqueens.scm:nqueens"); + +closureN_type c_73272; +c_73272.hdr.mark = gc_color_red; + c_73272.hdr.grayed = 0; +c_73272.tag = closureN_tag; + c_73272.fn = (function_type)__lambda_22; +c_73272.num_args = 1; +c_73272.num_elt = 5; +c_73272.elts = (object *)alloca(sizeof(object) * 5); +c_73272.elts[0] = ((closureN)self_73106)->elts[0]; +c_73272.elts[1] = r_7361; +c_73272.elts[2] = ((closureN)self_73106)->elts[1]; +c_73272.elts[3] = ((closureN)self_73106)->elts[2]; +c_73272.elts[4] = ((closureN)self_73106)->elts[3]; + +return_closcall1(data,(closure)&c_73272, nil);; +} + +static void __lambda_22(void *data, int argc, object self_73107, object r_7362) { + Cyc_st_add(data, "nqueens.scm:nqueens"); + +closureN_type c_73274; +c_73274.hdr.mark = gc_color_red; + c_73274.hdr.grayed = 0; +c_73274.tag = closureN_tag; + c_73274.fn = (function_type)__lambda_21; +c_73274.num_args = 1; +c_73274.num_elt = 5; +c_73274.elts = (object *)alloca(sizeof(object) * 5); +c_73274.elts[0] = ((closureN)self_73107)->elts[0]; +c_73274.elts[1] = ((closureN)self_73107)->elts[1]; +c_73274.elts[2] = r_7362; +c_73274.elts[3] = ((closureN)self_73107)->elts[2]; +c_73274.elts[4] = ((closureN)self_73107)->elts[4]; + +return_closcall1(data,(closure)&c_73274, car(((closureN)self_73107)->elts[3]));; +} + +static void __lambda_21(void *data, int argc, object self_73108, object r_7364) { + Cyc_st_add(data, "nqueens.scm:nqueens"); + +closureN_type c_73276; +c_73276.hdr.mark = gc_color_red; + c_73276.hdr.grayed = 0; +c_73276.tag = closureN_tag; + c_73276.fn = (function_type)__lambda_20; +c_73276.num_args = 1; +c_73276.num_elt = 4; +c_73276.elts = (object *)alloca(sizeof(object) * 4); +c_73276.elts[0] = ((closureN)self_73108)->elts[0]; +c_73276.elts[1] = ((closureN)self_73108)->elts[1]; +c_73276.elts[2] = ((closureN)self_73108)->elts[2]; +c_73276.elts[3] = ((closureN)self_73108)->elts[3]; + + +make_cons(c_73286,r_7364, ((closureN)self_73108)->elts[4]); +return_closcall1(data,(closure)&c_73276, &c_73286);; +} + +static void __lambda_20(void *data, int argc, object self_73109, object r_7363) { + Cyc_st_add(data, "nqueens.scm:nqueens"); +return_closcall4(data, cell_get(((closureN)self_73109)->elts[3]), ((closureN)self_73109)->elts[0], ((closureN)self_73109)->elts[1], ((closureN)self_73109)->elts[2], r_7363);; +} + +static void __lambda_19(void *data, int argc, object self_73110, object r_7353) { + Cyc_st_add(data, "nqueens.scm:nqueens"); +if( !eq(boolean_f, r_7353) ){ + +make_int(c_73251, 1); +return_closcall1(data, ((closureN)self_73110)->elts[0], &c_73251); +} else { + +make_int(c_73254, 0); +return_closcall1(data, ((closureN)self_73110)->elts[0], &c_73254);} +; +} + +static void __lambda_18(void *data, int argc, object self_73111, object r_7350) { + Cyc_st_add(data, "nqueens.scm:nqueens"); + +closureN_type c_73148; +c_73148.hdr.mark = gc_color_red; + c_73148.hdr.grayed = 0; +c_73148.tag = closureN_tag; + c_73148.fn = (function_type)__lambda_17; +c_73148.num_args = 1; +c_73148.num_elt = 5; +c_73148.elts = (object *)alloca(sizeof(object) * 5); +c_73148.elts[0] = ((closureN)self_73111)->elts[0]; +c_73148.elts[1] = ((closureN)self_73111)->elts[1]; +c_73148.elts[2] = ((closureN)self_73111)->elts[2]; +c_73148.elts[3] = ((closureN)self_73111)->elts[3]; +c_73148.elts[4] = ((closureN)self_73111)->elts[4]; + +return_closcall1(data,(closure)&c_73148, Cyc_set_car(data, ((closureN)self_73111)->elts[4], r_7350));; +} + +static void __lambda_17(void *data, int argc, object self_73112, object r_7332) { + Cyc_st_add(data, "nqueens.scm:nqueens"); + +closureN_type c_73150; +c_73150.hdr.mark = gc_color_red; + c_73150.hdr.grayed = 0; +c_73150.tag = closureN_tag; + c_73150.fn = (function_type)__lambda_4; +c_73150.num_args = 1; +c_73150.num_elt = 5; +c_73150.elts = (object *)alloca(sizeof(object) * 5); +c_73150.elts[0] = ((closureN)self_73112)->elts[0]; +c_73150.elts[1] = ((closureN)self_73112)->elts[1]; +c_73150.elts[2] = ((closureN)self_73112)->elts[2]; +c_73150.elts[3] = ((closureN)self_73112)->elts[3]; +c_73150.elts[4] = ((closureN)self_73112)->elts[4]; + + +closureN_type c_73173; +c_73173.hdr.mark = gc_color_red; + c_73173.hdr.grayed = 0; +c_73173.tag = closureN_tag; + c_73173.fn = (function_type)__lambda_16; +c_73173.num_args = 3; +c_73173.num_elt = 1; +c_73173.elts = (object *)alloca(sizeof(object) * 1); +c_73173.elts[0] = ((closureN)self_73112)->elts[3]; + +return_closcall1(data,(closure)&c_73150, &c_73173);; +} + +static void __lambda_16(void *data, int argc, object self_73113, object k_7338, object row_7316, object dist_7315, object placed_7314) { + Cyc_st_add(data, "nqueens.scm:nqueens"); + +closureN_type c_73175; +c_73175.hdr.mark = gc_color_red; + c_73175.hdr.grayed = 0; +c_73175.tag = closureN_tag; + c_73175.fn = (function_type)__lambda_15; +c_73175.num_args = 1; +c_73175.num_elt = 5; +c_73175.elts = (object *)alloca(sizeof(object) * 5); +c_73175.elts[0] = dist_7315; +c_73175.elts[1] = k_7338; +c_73175.elts[2] = ((closureN)self_73113)->elts[0]; +c_73175.elts[3] = placed_7314; +c_73175.elts[4] = row_7316; + +return_closcall1(data,(closure)&c_73175, Cyc_is_null(placed_7314));; +} + +static void __lambda_15(void *data, int argc, object self_73114, object r_7339) { + Cyc_st_add(data, "nqueens.scm:nqueens"); +if( !eq(boolean_f, r_7339) ){ + return_closcall1(data, ((closureN)self_73114)->elts[1], boolean_t); +} else { + +closureN_type c_73179; +c_73179.hdr.mark = gc_color_red; + c_73179.hdr.grayed = 0; +c_73179.tag = closureN_tag; + c_73179.fn = (function_type)__lambda_14; +c_73179.num_args = 1; +c_73179.num_elt = 5; +c_73179.elts = (object *)alloca(sizeof(object) * 5); +c_73179.elts[0] = ((closureN)self_73114)->elts[0]; +c_73179.elts[1] = ((closureN)self_73114)->elts[1]; +c_73179.elts[2] = ((closureN)self_73114)->elts[2]; +c_73179.elts[3] = ((closureN)self_73114)->elts[3]; +c_73179.elts[4] = ((closureN)self_73114)->elts[4]; + +return_closcall1(data,(closure)&c_73179, car(((closureN)self_73114)->elts[3]));} +; +} + +static void __lambda_14(void *data, int argc, object self_73115, object r_7348) { + Cyc_st_add(data, "nqueens.scm:nqueens"); + +closureN_type c_73181; +c_73181.hdr.mark = gc_color_red; + c_73181.hdr.grayed = 0; +c_73181.tag = closureN_tag; + c_73181.fn = (function_type)__lambda_13; +c_73181.num_args = 1; +c_73181.num_elt = 6; +c_73181.elts = (object *)alloca(sizeof(object) * 6); +c_73181.elts[0] = ((closureN)self_73115)->elts[0]; +c_73181.elts[1] = ((closureN)self_73115)->elts[1]; +c_73181.elts[2] = ((closureN)self_73115)->elts[2]; +c_73181.elts[3] = ((closureN)self_73115)->elts[3]; +c_73181.elts[4] = r_7348; +c_73181.elts[5] = ((closureN)self_73115)->elts[4]; + + +common_type c_73233 = Cyc_sum(data,2,((closureN)self_73115)->elts[4], ((closureN)self_73115)->elts[0]); +return_closcall1(data,(closure)&c_73181, &c_73233);; +} + +static void __lambda_13(void *data, int argc, object self_73116, object r_7349) { + Cyc_st_add(data, "nqueens.scm:nqueens"); + +closureN_type c_73183; +c_73183.hdr.mark = gc_color_red; + c_73183.hdr.grayed = 0; +c_73183.tag = closureN_tag; + c_73183.fn = (function_type)__lambda_12; +c_73183.num_args = 1; +c_73183.num_elt = 5; +c_73183.elts = (object *)alloca(sizeof(object) * 5); +c_73183.elts[0] = ((closureN)self_73116)->elts[0]; +c_73183.elts[1] = ((closureN)self_73116)->elts[1]; +c_73183.elts[2] = ((closureN)self_73116)->elts[2]; +c_73183.elts[3] = ((closureN)self_73116)->elts[3]; +c_73183.elts[4] = ((closureN)self_73116)->elts[5]; + +return_closcall1(data,(closure)&c_73183, __num_eq(data, ((closureN)self_73116)->elts[4], r_7349));; +} + +static void __lambda_12(void *data, int argc, object self_73117, object r_7347) { + Cyc_st_add(data, "nqueens.scm:nqueens"); + +closureN_type c_73185; +c_73185.hdr.mark = gc_color_red; + c_73185.hdr.grayed = 0; +c_73185.tag = closureN_tag; + c_73185.fn = (function_type)__lambda_11; +c_73185.num_args = 1; +c_73185.num_elt = 5; +c_73185.elts = (object *)alloca(sizeof(object) * 5); +c_73185.elts[0] = ((closureN)self_73117)->elts[0]; +c_73185.elts[1] = ((closureN)self_73117)->elts[1]; +c_73185.elts[2] = ((closureN)self_73117)->elts[2]; +c_73185.elts[3] = ((closureN)self_73117)->elts[3]; +c_73185.elts[4] = ((closureN)self_73117)->elts[4]; + +return_closcall2(data, __glo_not, &c_73185, r_7347);; +} + +static void __lambda_11(void *data, int argc, object self_73118, object r_7340) { + Cyc_st_add(data, "nqueens.scm:nqueens"); +if( !eq(boolean_f, r_7340) ){ + +closureN_type c_73187; +c_73187.hdr.mark = gc_color_red; + c_73187.hdr.grayed = 0; +c_73187.tag = closureN_tag; + c_73187.fn = (function_type)__lambda_10; +c_73187.num_args = 1; +c_73187.num_elt = 5; +c_73187.elts = (object *)alloca(sizeof(object) * 5); +c_73187.elts[0] = ((closureN)self_73118)->elts[0]; +c_73187.elts[1] = ((closureN)self_73118)->elts[1]; +c_73187.elts[2] = ((closureN)self_73118)->elts[2]; +c_73187.elts[3] = ((closureN)self_73118)->elts[3]; +c_73187.elts[4] = ((closureN)self_73118)->elts[4]; + +return_closcall1(data,(closure)&c_73187, car(((closureN)self_73118)->elts[3])); +} else { + return_closcall1(data, ((closureN)self_73118)->elts[1], boolean_f);} +; +} + +static void __lambda_10(void *data, int argc, object self_73119, object r_7345) { + Cyc_st_add(data, "nqueens.scm:nqueens"); + +closureN_type c_73189; +c_73189.hdr.mark = gc_color_red; + c_73189.hdr.grayed = 0; +c_73189.tag = closureN_tag; + c_73189.fn = (function_type)__lambda_9; +c_73189.num_args = 1; +c_73189.num_elt = 6; +c_73189.elts = (object *)alloca(sizeof(object) * 6); +c_73189.elts[0] = ((closureN)self_73119)->elts[0]; +c_73189.elts[1] = ((closureN)self_73119)->elts[1]; +c_73189.elts[2] = ((closureN)self_73119)->elts[2]; +c_73189.elts[3] = ((closureN)self_73119)->elts[3]; +c_73189.elts[4] = r_7345; +c_73189.elts[5] = ((closureN)self_73119)->elts[4]; + + +common_type c_73220 = Cyc_sub(data,2,((closureN)self_73119)->elts[4], ((closureN)self_73119)->elts[0]); +return_closcall1(data,(closure)&c_73189, &c_73220);; +} + +static void __lambda_9(void *data, int argc, object self_73120, object r_7346) { + Cyc_st_add(data, "nqueens.scm:nqueens"); + +closureN_type c_73191; +c_73191.hdr.mark = gc_color_red; + c_73191.hdr.grayed = 0; +c_73191.tag = closureN_tag; + c_73191.fn = (function_type)__lambda_8; +c_73191.num_args = 1; +c_73191.num_elt = 5; +c_73191.elts = (object *)alloca(sizeof(object) * 5); +c_73191.elts[0] = ((closureN)self_73120)->elts[0]; +c_73191.elts[1] = ((closureN)self_73120)->elts[1]; +c_73191.elts[2] = ((closureN)self_73120)->elts[2]; +c_73191.elts[3] = ((closureN)self_73120)->elts[3]; +c_73191.elts[4] = ((closureN)self_73120)->elts[5]; + +return_closcall1(data,(closure)&c_73191, __num_eq(data, ((closureN)self_73120)->elts[4], r_7346));; +} + +static void __lambda_8(void *data, int argc, object self_73121, object r_7344) { + Cyc_st_add(data, "nqueens.scm:nqueens"); + +closureN_type c_73193; +c_73193.hdr.mark = gc_color_red; + c_73193.hdr.grayed = 0; +c_73193.tag = closureN_tag; + c_73193.fn = (function_type)__lambda_7; +c_73193.num_args = 1; +c_73193.num_elt = 5; +c_73193.elts = (object *)alloca(sizeof(object) * 5); +c_73193.elts[0] = ((closureN)self_73121)->elts[0]; +c_73193.elts[1] = ((closureN)self_73121)->elts[1]; +c_73193.elts[2] = ((closureN)self_73121)->elts[2]; +c_73193.elts[3] = ((closureN)self_73121)->elts[3]; +c_73193.elts[4] = ((closureN)self_73121)->elts[4]; + +return_closcall2(data, __glo_not, &c_73193, r_7344);; +} + +static void __lambda_7(void *data, int argc, object self_73122, object r_7341) { + Cyc_st_add(data, "nqueens.scm:nqueens"); +if( !eq(boolean_f, r_7341) ){ + +closureN_type c_73195; +c_73195.hdr.mark = gc_color_red; + c_73195.hdr.grayed = 0; +c_73195.tag = closureN_tag; + c_73195.fn = (function_type)__lambda_6; +c_73195.num_args = 1; +c_73195.num_elt = 4; +c_73195.elts = (object *)alloca(sizeof(object) * 4); +c_73195.elts[0] = ((closureN)self_73122)->elts[1]; +c_73195.elts[1] = ((closureN)self_73122)->elts[2]; +c_73195.elts[2] = ((closureN)self_73122)->elts[3]; +c_73195.elts[3] = ((closureN)self_73122)->elts[4]; + + +make_int(c_73212, 1); + +common_type c_73210 = Cyc_sum(data,2,((closureN)self_73122)->elts[0], &c_73212); +return_closcall1(data,(closure)&c_73195, &c_73210); +} else { + return_closcall1(data, ((closureN)self_73122)->elts[1], boolean_f);} +; +} + +static void __lambda_6(void *data, int argc, object self_73123, object r_7342) { + Cyc_st_add(data, "nqueens.scm:nqueens"); + +closureN_type c_73197; +c_73197.hdr.mark = gc_color_red; + c_73197.hdr.grayed = 0; +c_73197.tag = closureN_tag; + c_73197.fn = (function_type)__lambda_5; +c_73197.num_args = 1; +c_73197.num_elt = 4; +c_73197.elts = (object *)alloca(sizeof(object) * 4); +c_73197.elts[0] = ((closureN)self_73123)->elts[0]; +c_73197.elts[1] = ((closureN)self_73123)->elts[1]; +c_73197.elts[2] = r_7342; +c_73197.elts[3] = ((closureN)self_73123)->elts[3]; + +return_closcall1(data,(closure)&c_73197, cdr(((closureN)self_73123)->elts[2]));; +} + +static void __lambda_5(void *data, int argc, object self_73124, object r_7343) { + Cyc_st_add(data, "nqueens.scm:nqueens"); +return_closcall4(data, cell_get(((closureN)self_73124)->elts[1]), ((closureN)self_73124)->elts[0], ((closureN)self_73124)->elts[3], ((closureN)self_73124)->elts[2], r_7343);; +} + +static void __lambda_4(void *data, int argc, object self_73125, object r_7337) { + Cyc_st_add(data, "nqueens.scm:nqueens"); + +closureN_type c_73152; +c_73152.hdr.mark = gc_color_red; + c_73152.hdr.grayed = 0; +c_73152.tag = closureN_tag; + c_73152.fn = (function_type)__lambda_3; +c_73152.num_args = 1; +c_73152.num_elt = 4; +c_73152.elts = (object *)alloca(sizeof(object) * 4); +c_73152.elts[0] = ((closureN)self_73125)->elts[0]; +c_73152.elts[1] = ((closureN)self_73125)->elts[1]; +c_73152.elts[2] = ((closureN)self_73125)->elts[2]; +c_73152.elts[3] = ((closureN)self_73125)->elts[4]; + +return_closcall1(data,(closure)&c_73152, Cyc_set_car(data, ((closureN)self_73125)->elts[3], r_7337));; +} + +static void __lambda_3(void *data, int argc, object self_73126, object r_7333) { + Cyc_st_add(data, "nqueens.scm:nqueens"); + +closureN_type c_73157; +c_73157.hdr.mark = gc_color_red; + c_73157.hdr.grayed = 0; +c_73157.tag = closureN_tag; + c_73157.fn = (function_type)__lambda_2; +c_73157.num_args = 1; +c_73157.num_elt = 2; +c_73157.elts = (object *)alloca(sizeof(object) * 2); +c_73157.elts[0] = ((closureN)self_73126)->elts[1]; +c_73157.elts[1] = ((closureN)self_73126)->elts[3]; + +return_closcall2(data, cell_get(((closureN)self_73126)->elts[0]), &c_73157, ((closureN)self_73126)->elts[2]);; +} + +static void __lambda_2(void *data, int argc, object self_73127, object r_7334) { + Cyc_st_add(data, "nqueens.scm:nqueens"); + +closureN_type c_73159; +c_73159.hdr.mark = gc_color_red; + c_73159.hdr.grayed = 0; +c_73159.tag = closureN_tag; + c_73159.fn = (function_type)__lambda_1; +c_73159.num_args = 1; +c_73159.num_elt = 3; +c_73159.elts = (object *)alloca(sizeof(object) * 3); +c_73159.elts[0] = ((closureN)self_73127)->elts[0]; +c_73159.elts[1] = r_7334; +c_73159.elts[2] = ((closureN)self_73127)->elts[1]; + +return_closcall1(data,(closure)&c_73159, nil);; +} + +static void __lambda_1(void *data, int argc, object self_73128, object r_7335) { + Cyc_st_add(data, "nqueens.scm:nqueens"); + +closureN_type c_73161; +c_73161.hdr.mark = gc_color_red; + c_73161.hdr.grayed = 0; +c_73161.tag = closureN_tag; + c_73161.fn = (function_type)__lambda_0; +c_73161.num_args = 1; +c_73161.num_elt = 4; +c_73161.elts = (object *)alloca(sizeof(object) * 4); +c_73161.elts[0] = ((closureN)self_73128)->elts[0]; +c_73161.elts[1] = ((closureN)self_73128)->elts[1]; +c_73161.elts[2] = r_7335; +c_73161.elts[3] = ((closureN)self_73128)->elts[2]; + +return_closcall1(data,(closure)&c_73161, nil);; +} + +static void __lambda_0(void *data, int argc, object self_73129, object r_7336) { + Cyc_st_add(data, "nqueens.scm:nqueens"); +return_closcall4(data, cell_get(((closureN)self_73129)->elts[3]), ((closureN)self_73129)->elts[0], ((closureN)self_73129)->elts[1], ((closureN)self_73129)->elts[2], r_7336);; +} + +static void c_entry_pt_first_lambda(void *data, int argc, closure cont, object value); +extern void c_schemebase_entry_pt(void *data, int argc, closure cont, object value); +extern void c_schemewrite_entry_pt(void *data, int argc, closure cont, object value); +static void c_entry_pt(data, argc, env,cont) void *data; int argc; closure env,cont; { + + add_global((object *) &__glo_nqueens); + mclosure0(c_73130, (function_type)__lambda_53);c_73130.num_args = 1; + __glo_nqueens = &c_73130; + + make_cvar(cvar_73412, (object *)&__glo_nqueens);make_cons(pair_73413, find_or_add_symbol("nqueens"), &cvar_73412); +make_cons(c_73414, &pair_73413,Cyc_global_variables); +Cyc_global_variables = &c_73414; +mclosure1(c_done, c_entry_pt_first_lambda, &c_done); +mclosure1(c_73415, c_schemewrite_entry_pt, &c_done); +mclosure1(c_73416, c_schemebase_entry_pt, &c_73415); +(c_73416.fn)(data, 0, &c_73416, &c_73416); +} +static void c_entry_pt_first_lambda(void *data, int argc, closure cont, object value) { + + return_direct0(data,__lambda_56); +} +main(int argc,char **argv) +{gc_thread_data *thd; + long stack_size = global_stack_size = STACK_SIZE; + long heap_size = global_heap_size = HEAP_SIZE; + mclosure0(clos_halt,&Cyc_halt); // Halt if final closure is reached + mclosure0(entry_pt,&c_entry_pt); // First function to execute + _cyc_argc = argc; + _cyc_argv = argv; + gc_initialize(); + thd = malloc(sizeof(gc_thread_data)); + gc_thread_data_init(thd, 0, (char *) &stack_size, stack_size); + thd->gc_cont = &entry_pt; + thd->gc_args[0] = &clos_halt; + thd->gc_num_args = 1; + gc_add_mutator(thd); + Cyc_heap_init(heap_size); + thd->thread_state = CYC_THREAD_STATE_RUNNABLE; + Cyc_start_trampoline(thd); + return 0;} diff --git a/debug/compilation/nqueens.scm b/debug/compilation/nqueens.scm new file mode 100644 index 00000000..e3933508 --- /dev/null +++ b/debug/compilation/nqueens.scm @@ -0,0 +1,35 @@ +;(cond-expand +; (cyclone + (import + (scheme base) + (scheme write)) +; ) +; (else #f)) + +(define (nqueens n) + + (define (dec-to n) + (let loop ((i n) (l '())) + (if (= i 0) l (loop (- i 1) (cons i l))))) + + (define (try x y z) + (if (null? x) + (if (null? y) + 1 + 0) + (+ (if (ok? (car x) 1 z) + (try (append (cdr x) y) '() (cons (car x) z)) + 0) + (try (cdr x) (cons (car x) y) z)))) + + (define (ok? row dist placed) + (if (null? placed) + #t + (and (not (= (car placed) (+ row dist))) + (not (= (car placed) (- row dist))) + (ok? row (+ dist 1) (cdr placed))))) + + (try (dec-to n) '() '())) + +(write + (nqueens 8))