From 49c93d6aabb5e6c229d730785e378cf2aa38eca2 Mon Sep 17 00:00:00 2001 From: AlexKnauth Date: Sun, 11 Oct 2015 14:38:43 -0400 Subject: [PATCH] add debug/report --- debug/report.rkt | 48 ++++++++++++++++++++++++++++++++++++++++++++++++ info.rkt | 8 ++++++++ 2 files changed, 56 insertions(+) create mode 100644 debug/report.rkt create mode 100644 info.rkt diff --git a/debug/report.rkt b/debug/report.rkt new file mode 100644 index 0000000..8f9427c --- /dev/null +++ b/debug/report.rkt @@ -0,0 +1,48 @@ +#lang racket/base + +(provide (all-defined-out)) + +(require (for-syntax racket/base)) + +;; from mbutterick/sugar, typed/sugar/debug.rkt +;; https://github.com/mbutterick/sugar/blob/0ffe3173879cef51d29b4c91a336a4de6c3f8ef8/typed/sugar/debug.rkt +;; using normal racket/base so that it doesn't have a dependancy on typed racket + +(define-syntax (report stx) + (syntax-case stx () + [(_ expr) #'(report expr expr)] + [(_ expr name) + #'(let ([expr-result expr]) + (eprintf "~a = ~v\n" 'name expr-result) + expr-result)])) + + +(define-syntax (report/line stx) + (syntax-case stx () + [(_ expr) #'(report/line expr expr)] + [(_ expr name) + (with-syntax ([line (syntax-line #'expr)]) + #'(let ([expr-result expr]) + (eprintf "~a = ~v on line ~v\n" 'name expr-result 'line) + expr-result))])) + + +(define-syntax (report/file stx) + (syntax-case stx () + [(_ expr) #'(report/file expr expr)] + [(_ expr name) + (with-syntax ([file (syntax-source #'expr)] + [line (syntax-line #'expr)]) + #'(let ([expr-result expr]) + (eprintf "~a = ~v on line ~v in \"~a\"\n" 'name expr-result 'line 'file) + expr-result))])) + + +(define-syntax-rule (define-multi-version multi-name name) + (define-syntax-rule (multi-name x (... ...)) + (begin (name x) (... ...)))) + +(define-multi-version report* report) +(define-multi-version report*/line report/line) +(define-multi-version report*/file report/file) + diff --git a/info.rkt b/info.rkt new file mode 100644 index 0000000..37d03b4 --- /dev/null +++ b/info.rkt @@ -0,0 +1,8 @@ +#lang info + +(define collection 'multi) + +(define deps + '("base" + )) +