From b76fa53bd4228c485f91f4c5a88d018bf82904b4 Mon Sep 17 00:00:00 2001 From: Matthew Butterick Date: Mon, 3 Dec 2018 22:59:13 -0800 Subject: [PATCH] retire the dark pattern --- pitfall/pitfall/afm-font.rkt | 11 +++++++++- pitfall/pitfall/annotations.rkt | 9 +++++++- pitfall/pitfall/binprint.rkt | 10 +++++---- pitfall/pitfall/color.rkt | 10 ++++++++- pitfall/pitfall/document.rkt | 25 +++++++++++++++++++---- pitfall/pitfall/embedded.rkt | 22 +++++++++++++++++--- pitfall/pitfall/font-open.rkt | 10 ++++++--- pitfall/pitfall/font.rkt | 9 +++++--- pitfall/pitfall/fonts.rkt | 11 +++++++--- pitfall/pitfall/image.rkt | 9 +++++--- pitfall/pitfall/images.rkt | 11 +++++++--- pitfall/pitfall/jpeg.rkt | 8 +++++++- pitfall/pitfall/main.rkt | 2 -- pitfall/pitfall/object.rkt | 11 +++++++--- pitfall/pitfall/page-test.rkt | 7 ++++++- pitfall/pitfall/page.rkt | 7 ++++++- pitfall/pitfall/path.rkt | 9 +++++--- pitfall/pitfall/pdftest.rkt | 30 ++++++++++++++++++++++++--- pitfall/pitfall/png-reader.rkt | 8 ++++++-- pitfall/pitfall/png.rkt | 29 ++++++++++++++++---------- pitfall/pitfall/racket.rkt | 34 ------------------------------- pitfall/pitfall/reference.rkt | 15 +++++++++++--- pitfall/pitfall/standard-font.rkt | 16 +++++++++++---- pitfall/pitfall/text.rkt | 15 +++++++++++--- pitfall/pitfall/vector.rkt | 13 +++++++++--- pitfall/pitfall/zlib.rkt | 1 - 26 files changed, 238 insertions(+), 104 deletions(-) delete mode 100644 pitfall/pitfall/racket.rkt diff --git a/pitfall/pitfall/afm-font.rkt b/pitfall/pitfall/afm-font.rkt index e9f3fa4e..ab9a7ad9 100644 --- a/pitfall/pitfall/afm-font.rkt +++ b/pitfall/pitfall/afm-font.rkt @@ -1,5 +1,14 @@ #lang at-exp racket/base -(require "racket.rkt") +(require + racket/class + racket/file + racket/match + racket/string + racket/contract + racket/list + sugar/unstable/class + sugar/unstable/js + sugar/unstable/dict) (provide AFMFont AFMFont-open) diff --git a/pitfall/pitfall/annotations.rkt b/pitfall/pitfall/annotations.rkt index 9fdfbfbe..c79c9886 100644 --- a/pitfall/pitfall/annotations.rkt +++ b/pitfall/pitfall/annotations.rkt @@ -1,5 +1,12 @@ #lang racket/base -(require "racket.rkt") +(require + "struct.rkt" + racket/class + racket/match + racket/contract + sugar/unstable/class + sugar/unstable/js + sugar/unstable/dict) (provide annotation-mixin) diff --git a/pitfall/pitfall/binprint.rkt b/pitfall/pitfall/binprint.rkt index 6c895be1..ab6b4142 100644 --- a/pitfall/pitfall/binprint.rkt +++ b/pitfall/pitfall/binprint.rkt @@ -1,7 +1,9 @@ #lang racket/base -(require "racket.rkt") - -(require sugar/list) +(require + racket/string + racket/format + racket/function + sugar/list) (provide binprint) (define (binprint in #:width [width 16]) @@ -30,4 +32,4 @@ (module+ test #;(binprint (open-input-bytes #"foobar is the name")) - (binprint (open-input-file "test/test12.pdf") #:width 24)) \ No newline at end of file + (binprint (open-input-file "../ptest/test12.pdf") #:width 24)) \ No newline at end of file diff --git a/pitfall/pitfall/color.rkt b/pitfall/pitfall/color.rkt index e9d2f0d1..465cf1e4 100644 --- a/pitfall/pitfall/color.rkt +++ b/pitfall/pitfall/color.rkt @@ -1,5 +1,13 @@ #lang racket/base -(require "racket.rkt") +(require + "helper.rkt" + racket/class + racket/match + racket/string + racket/contract + sugar/unstable/class + sugar/unstable/js + sugar/unstable/dict) (provide color-mixin) diff --git a/pitfall/pitfall/document.rkt b/pitfall/pitfall/document.rkt index 2040e94b..18d6c526 100644 --- a/pitfall/pitfall/document.rkt +++ b/pitfall/pitfall/document.rkt @@ -1,8 +1,25 @@ #lang at-exp racket/base -(require "racket.rkt") - -(require "reference.rkt" "object.rkt" "page.rkt") -(require "vector.rkt" "color.rkt" "fonts.rkt" "text.rkt" "images.rkt" "annotations.rkt") +(require + "helper.rkt" + "param.rkt" + "struct.rkt" + racket/class + racket/format + racket/contract + racket/list + sugar/unstable/class + sugar/unstable/js + sugar/unstable/dict + sugar/unstable/port + "reference.rkt" + "object.rkt" + "page.rkt" + "vector.rkt" + "color.rkt" + "fonts.rkt" + "text.rkt" + "images.rkt" + "annotations.rkt") (provide PDFDocument) (define mixed% (annotation-mixin (image-mixin (text-mixin (fonts-mixin (color-mixin (vector-mixin object%))))))) diff --git a/pitfall/pitfall/embedded.rkt b/pitfall/pitfall/embedded.rkt index 17f8afad..73ce19b7 100644 --- a/pitfall/pitfall/embedded.rkt +++ b/pitfall/pitfall/embedded.rkt @@ -1,7 +1,23 @@ #lang racket/base -(require "racket.rkt") - -(require "font.rkt" fontland "reference.rkt") +(require + (for-syntax racket/base) + "param.rkt" + "struct.rkt" + racket/class + racket/match + racket/string + racket/format + racket/contract + racket/list + racket/function + br/define + sugar/unstable/class + sugar/unstable/js + sugar/unstable/dict + sugar/unstable/contract + "font.rkt" + fontland + "reference.rkt") (provide EmbeddedFont) #| diff --git a/pitfall/pitfall/font-open.rkt b/pitfall/pitfall/font-open.rkt index 8df68ddb..9016daea 100644 --- a/pitfall/pitfall/font-open.rkt +++ b/pitfall/pitfall/font-open.rkt @@ -1,7 +1,11 @@ #lang racket/base -(require "racket.rkt") - -(require "standard-font.rkt" "font.rkt" fontland "embedded.rkt") +(require + racket/class + racket/contract + "standard-font.rkt" + "font.rkt" + fontland + "embedded.rkt") (provide PDFFont-open) (define/contract (PDFFont-open document src family id) diff --git a/pitfall/pitfall/font.rkt b/pitfall/pitfall/font.rkt index 9d6db569..8d218b2f 100644 --- a/pitfall/pitfall/font.rkt +++ b/pitfall/pitfall/font.rkt @@ -1,7 +1,10 @@ #lang racket/base -(require "racket.rkt") - -(require "reference.rkt") +(require + racket/class + racket/contract + sugar/unstable/class + sugar/unstable/js + "reference.rkt") (provide PDFFont) (define PDFFont diff --git a/pitfall/pitfall/fonts.rkt b/pitfall/pitfall/fonts.rkt index 11e9e84d..755fbfce 100644 --- a/pitfall/pitfall/fonts.rkt +++ b/pitfall/pitfall/fonts.rkt @@ -1,7 +1,12 @@ #lang racket/base -(require "racket.rkt") - -(require "font.rkt" "font-open.rkt") +(require + racket/class + racket/match + racket/contract + sugar/unstable/class + sugar/unstable/js + sugar/unstable/dict + "font-open.rkt") (provide fonts-mixin) (define (fonts-mixin [% mixin-tester%]) diff --git a/pitfall/pitfall/image.rkt b/pitfall/pitfall/image.rkt index 91d0a823..ddd44900 100644 --- a/pitfall/pitfall/image.rkt +++ b/pitfall/pitfall/image.rkt @@ -1,7 +1,10 @@ #lang racket/base -(require "racket.rkt") - -(require "jpeg.rkt" "png.rkt") +(require + "helper.rkt" + racket/class + racket/contract + "jpeg.rkt" + "png.rkt") (provide PDFImage-open) #;(define PDFImage diff --git a/pitfall/pitfall/images.rkt b/pitfall/pitfall/images.rkt index 4f82a2c7..7313ebf5 100644 --- a/pitfall/pitfall/images.rkt +++ b/pitfall/pitfall/images.rkt @@ -1,7 +1,12 @@ #lang racket/base -(require "racket.rkt") - -(require "image.rkt") +(require + racket/class + racket/match + racket/contract + sugar/unstable/class + sugar/unstable/js + sugar/unstable/dict + "image.rkt") (provide image-mixin) (define (image-mixin [% mixin-tester%]) diff --git a/pitfall/pitfall/jpeg.rkt b/pitfall/pitfall/jpeg.rkt index 45c74cf5..2564c154 100644 --- a/pitfall/pitfall/jpeg.rkt +++ b/pitfall/pitfall/jpeg.rkt @@ -1,5 +1,11 @@ #lang debug racket/base -(require "racket.rkt") +(require + racket/class + racket/contract + sugar/unstable/class + sugar/unstable/js + sugar/unstable/dict + sugar/unstable/port) (provide JPEG) diff --git a/pitfall/pitfall/main.rkt b/pitfall/pitfall/main.rkt index f1825268..0d359583 100644 --- a/pitfall/pitfall/main.rkt +++ b/pitfall/pitfall/main.rkt @@ -1,5 +1,3 @@ #lang racket/base -(require "racket.rkt") - (require "document.rkt") (provide (all-from-out "document.rkt")) \ No newline at end of file diff --git a/pitfall/pitfall/object.rkt b/pitfall/pitfall/object.rkt index 2d1b768a..34634776 100644 --- a/pitfall/pitfall/object.rkt +++ b/pitfall/pitfall/object.rkt @@ -1,7 +1,12 @@ #lang racket/base -(require "racket.rkt") - -(require (only-in srfi/19 date->string)) +(require + "struct.rkt" + racket/class + racket/string + racket/contract + racket/list + sugar/unstable/js + (only-in srfi/19 date->string)) (provide PDFObject convert) (define PDFObject diff --git a/pitfall/pitfall/page-test.rkt b/pitfall/pitfall/page-test.rkt index de38054a..9b67dce3 100644 --- a/pitfall/pitfall/page-test.rkt +++ b/pitfall/pitfall/page-test.rkt @@ -1,5 +1,10 @@ #lang racket/base -(require racket/class rackunit "document.rkt" "page.rkt" "reference.rkt" "helper.rkt" sugar/unstable/js) +(require racket/class + rackunit + "document.rkt" + "page.rkt" + "reference.rkt" + sugar/unstable/js) (define p (make-object PDFPage (make-object PDFDocument))) (check-equal? (· p size) "letter") (check-equal? (· p layout) "portrait") diff --git a/pitfall/pitfall/page.rkt b/pitfall/pitfall/page.rkt index d261bdc6..39a96ea6 100644 --- a/pitfall/pitfall/page.rkt +++ b/pitfall/pitfall/page.rkt @@ -1,5 +1,10 @@ #lang racket/base -(require "racket.rkt") +(require + racket/class + racket/contract + sugar/unstable/class + sugar/unstable/js + sugar/unstable/dict) (provide PDFPage) diff --git a/pitfall/pitfall/path.rkt b/pitfall/pitfall/path.rkt index ada30380..3a286217 100644 --- a/pitfall/pitfall/path.rkt +++ b/pitfall/pitfall/path.rkt @@ -1,7 +1,10 @@ #lang racket/base -(require "racket.rkt") - -(require brag/support sugar/list) +(require + racket/class + racket/match + racket/list + brag/support + sugar/list) (provide parse-svg-path) (define (parse-svg-path doc path) diff --git a/pitfall/pitfall/pdftest.rkt b/pitfall/pitfall/pdftest.rkt index 94734ee6..2dc87a78 100644 --- a/pitfall/pitfall/pdftest.rkt +++ b/pitfall/pitfall/pdftest.rkt @@ -1,12 +1,36 @@ #lang racket/base -(require "racket.rkt" "check-pdf.rkt") -(provide (all-from-out "racket.rkt")) +(require + (for-syntax racket/base) + "helper.rkt" + "param.rkt" + "struct.rkt" + sugar/debug + racket/class + racket/file + racket/match + racket/string + racket/format + racket/contract + racket/list + racket/port + racket/function + br/define + sugar/unstable/class + sugar/unstable/js + sugar/unstable/dict + sugar/unstable/stub + sugar/unstable/port + sugar/unstable/contract + describe + "check-pdf.rkt") + (provide check-copy-equal? check-pdfkit? make-doc) (test-mode #t) -(r+p rackunit racket/runtime-path pitfall/document) +(require rackunit racket/runtime-path pitfall/document racket/class) +(provide (all-from-out rackunit racket/runtime-path pitfall/document racket/class)) (define (this->control this) (path-add-extension this #"" #" copy.")) diff --git a/pitfall/pitfall/png-reader.rkt b/pitfall/pitfall/png-reader.rkt index 8a57b6d2..f58fa0fe 100644 --- a/pitfall/pitfall/png-reader.rkt +++ b/pitfall/pitfall/png-reader.rkt @@ -1,7 +1,11 @@ #lang racket/base -(require "racket.rkt") +(require + sugar/debug + racket/file + racket/contract + racket/list + sugar/unstable/dict) -(require "zlib.rkt") (provide read-png) #| diff --git a/pitfall/pitfall/png.rkt b/pitfall/pitfall/png.rkt index eddcd8a4..bee334ab 100644 --- a/pitfall/pitfall/png.rkt +++ b/pitfall/pitfall/png.rkt @@ -1,5 +1,12 @@ #lang debug racket/base -(require "racket.rkt") +(require + racket/class + racket/contract + racket/list + sugar/unstable/class + sugar/unstable/js + sugar/unstable/dict + sugar/unstable/port) (require "png-reader.rkt" "zlib.rkt") (provide PNG) @@ -86,7 +93,7 @@ ;; embed the actual image data (send (· this obj) end (· this imgData))) -(require sugar/debug racket/draw) +(require racket/draw) ;; todo: this function is too slow. ;; switch to draw/unsafe/png (define/contract (splitAlphaChannel this) @@ -105,15 +112,15 @@ #;(report 'unpacking-argb) (define-values (imgBytes alphaBytes) (parameterize ([current-input-port (open-input-bytes pixels)]) - (for/fold ([img-bytes empty] - [alpha-bytes empty] - #:result (values (apply bytes-append (reverse img-bytes)) - (apply bytes-append (reverse alpha-bytes)))) - ([i (in-naturals)] - #:break (eof-object? (peek-byte))) - (if (even? i) - (values img-bytes (cons (read-bytes 1) alpha-bytes)) - (values (cons (read-bytes 3) img-bytes) alpha-bytes))))) + (for/fold ([img-bytes empty] + [alpha-bytes empty] + #:result (values (apply bytes-append (reverse img-bytes)) + (apply bytes-append (reverse alpha-bytes)))) + ([i (in-naturals)] + #:break (eof-object? (peek-byte))) + (if (even? i) + (values img-bytes (cons (read-bytes 1) alpha-bytes)) + (values (cons (read-bytes 3) img-bytes) alpha-bytes))))) #;(report 'deflate-imgBytes) (set-field! imgData this (deflate imgBytes)) diff --git a/pitfall/pitfall/racket.rkt b/pitfall/pitfall/racket.rkt deleted file mode 100644 index 0e4738ef..00000000 --- a/pitfall/pitfall/racket.rkt +++ /dev/null @@ -1,34 +0,0 @@ -#lang racket/base -(require (for-syntax racket/base br/syntax)) -(provide (for-syntax (all-from-out racket/base br/syntax))) -(provide (all-from-out racket/base) r+p) - -(define-syntax-rule (r+p id ...) (begin (require id ...) (provide (all-from-out id ...)))) - -(r+p "helper.rkt" - "param.rkt" - "struct.rkt" - sugar/debug - racket/class - racket/file - racket/match - racket/string - racket/format - racket/contract - racket/list - racket/port - racket/function - br/define - sugar/unstable/class - sugar/unstable/js - sugar/unstable/dict - sugar/unstable/stub - sugar/unstable/port - sugar/unstable/contract - describe) - -(module reader syntax/module-reader - #:language 'pitfall/racket - #:read @-read - #:read-syntax @-read-syntax - (require (prefix-in @- scribble/reader))) \ No newline at end of file diff --git a/pitfall/pitfall/reference.rkt b/pitfall/pitfall/reference.rkt index 75e8056a..c8a0c879 100644 --- a/pitfall/pitfall/reference.rkt +++ b/pitfall/pitfall/reference.rkt @@ -1,7 +1,16 @@ #lang racket/base -(require "racket.rkt") - -(require "object.rkt" "zlib.rkt") +(require + "helper.rkt" + "param.rkt" + racket/class + racket/contract + racket/list + sugar/unstable/class + sugar/unstable/js + sugar/unstable/dict + sugar/unstable/port + "object.rkt" + "zlib.rkt") (provide PDFReference) (define-subclass object% (PDFReference document id [payload (mhash)]) diff --git a/pitfall/pitfall/standard-font.rkt b/pitfall/pitfall/standard-font.rkt index d30cf4be..f3704ae3 100644 --- a/pitfall/pitfall/standard-font.rkt +++ b/pitfall/pitfall/standard-font.rkt @@ -1,8 +1,16 @@ #lang racket/base -(require "racket.rkt") - -(require "afm-font.rkt" "font.rkt" fontland) -(require racket/runtime-path) +(require + (for-syntax racket/base) + racket/class + racket/file + racket/contract + sugar/unstable/class + sugar/unstable/js + sugar/unstable/dict + "afm-font.rkt" + "font.rkt" + fontland + racket/runtime-path) (provide isStandardFont standard-fonts StandardFont) (define-subclass PDFFont (StandardFont document name id) diff --git a/pitfall/pitfall/text.rkt b/pitfall/pitfall/text.rkt index 967066a4..dbd39757 100644 --- a/pitfall/pitfall/text.rkt +++ b/pitfall/pitfall/text.rkt @@ -1,7 +1,16 @@ #lang racket/base -(require "racket.rkt") - -(require sugar/list racket/promise) +(require + racket/class + racket/match + racket/string + racket/contract + racket/list + racket/function + sugar/unstable/class + sugar/unstable/js + sugar/unstable/dict + sugar/list + racket/promise) (provide text-mixin) #| diff --git a/pitfall/pitfall/vector.rkt b/pitfall/pitfall/vector.rkt index 1846b480..5eefb837 100644 --- a/pitfall/pitfall/vector.rkt +++ b/pitfall/pitfall/vector.rkt @@ -1,7 +1,14 @@ #lang racket/base -(require "racket.rkt") - -(require "path.rkt") +(require + "helper.rkt" + racket/class + racket/match + racket/string + racket/contract + sugar/unstable/class + sugar/unstable/js + sugar/unstable/dict + "path.rkt") (provide vector-mixin default-ctm-value) (define (vector-mixin [% mixin-tester%]) diff --git a/pitfall/pitfall/zlib.rkt b/pitfall/pitfall/zlib.rkt index 547a9902..1a223d74 100644 --- a/pitfall/pitfall/zlib.rkt +++ b/pitfall/pitfall/zlib.rkt @@ -1,5 +1,4 @@ #lang racket/base -(require "racket.rkt") (provide deflate inflate)