id summary reporter owner description type status priority milestone component version resolution keywords cc difficulty 1765 enable-warnings time-travelling shenanigans Idiomdrottning "(import miscmacros (chicken condition)) (define-syntax-rule (bound-procedure? name) (handle-exceptions ex #f (procedure? name))) (enable-warnings #f) (define wtf (bound-procedure? if)) (enable-warnings #t) wtf ;; ↑↑ quietly and politely evals to #f (begin (enable-warnings #f) (define wtf (bound-procedure? if)) (enable-warnings #t) wtf) ;; ↑↑ expands to a let form (which is fine of course) and complains in ;; the REPL because warnings apply retroactively to the entire form. I've tried enabling the warnings via (let ((ret ...)) enable ret) dynamic-wind or via force/delay or via just a lambda that gets called, but no matter how I do it, it retroactively wants to print warnings. I even did (define (re-enable-warnings val ret) (enable-warnings val) ret) (re-enable-warnings #f (bound-procedure? if)) ;;; politely evals to #f (re-enable-warnings #t (bound-procedure? if)) ;;; causes a ruckus The time travelling super powers of call-with-current-continuation that the REPL uses is haunting me…! This just can't be right!" defect closed not urgent at all someday unknown 5.2.0 worksforme REPL