This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#lang racket/base | |
(require (for-syntax racket/base | |
racket/syntax | |
racket/require-transform | |
syntax/id-table)) | |
(begin-for-syntax | |
(struct import-transformer (aliases) | |
#:property prop:require-transformer |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#lang racket/base | |
(require (only-in racket/port open-output-nowhere) | |
(only-in racket/string string-join)) | |
(struct pending-write (bstr out start end) #:authentic #:mutable) | |
(define-syntax-rule (define/pending-write (bstr out start end) pending-write) | |
(define-values (bstr out start end) | |
(let ([x pending-write]) |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#lang racket/base | |
(define max-chunk-len (sub1 (expt 2 16))) | |
(define (produce in-port out-port) | |
(define buffer (make-bytes max-chunk-len)) | |
(let loop ([chunk-length (read-bytes-avail! buffer in-port 0 max-chunk-len)]) | |
(cond | |
[(eof-object? chunk-length) |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#lang racket/base | |
(require racket/match | |
racket/port | |
syntax/parse/define | |
(for-syntax racket/base)) | |
(define (read-message inp) | |
(match (read-byte inp) | |
[#x00 (define payload-size (read-byte inp)) |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#lang racket/base | |
(struct pending-tee (bstr out start end) #:authentic #:mutable) | |
(define (tee-output-port out1 out2) | |
(define pending #f) | |
(define lock (make-semaphore 1)) | |
;(define ready-evt | |
; (replace-evt lock (λ (_) (replace-evt out1 (λ (_) out2))))) |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#lang racket/base | |
(define (signed-var-int val) | |
(cond | |
[(bitwise-bit-set? val 31) | |
(bitwise-ior val (bitwise-not #xffffffff))] | |
[else | |
val])) | |
(define (read-var-int in) |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#lang racket/base | |
(require racket/match) | |
(define (each+others/non-index cs [prev '()] [res '()]) | |
(match cs | |
['() res] | |
[(cons c cs) (each+others/non-index cs | |
(cons c prev) | |
(cons (cons c (append prev cs)) res))])) |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#lang racket/base | |
;; others: generates a list of characters in `str` *other* | |
;; than the one at index `pos` | |
(define (others str pos [i 0] [res '()]) | |
(cond [(= i (string-length str)) | |
(reverse res)] | |
[(= pos i) | |
(others str pos (add1 i) res)] | |
[else |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
;; RFC 5545 example: "Every other week on Tuesday and Thursday, for 8 occurrences" | |
(define start (moment 1997 9 2 9 #:tz "America/New_York")) | |
;; using for*/fold with #:break and explicit reverse | |
(let-values ([(res _) | |
(for*/fold ([xs '()] [i 0]) ([w (in-naturals)] | |
[t (in-value (+weeks start (* w 2)))] | |
[d (list (on-wday t 2) (on-wday t 4))] | |
#:break (= i 8)) | |
(values (cons d xs) (add1 i)))]) |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
diff --git a/Gemfile.lock b/Gemfile.lock | |
index c6a353c..821b0bf 100644 | |
--- a/Gemfile.lock | |
+++ b/Gemfile.lock | |
@@ -286,7 +286,7 @@ GEM | |
gridhook (0.2.0) | |
multi_json (>= 1.3.0) | |
rails (>= 3.1.0) | |
- guard (2.11.1) | |
+ guard (2.12.1) |
NewerOlder