Results 75 issues of Philip McGrath

I'm interested in the possibility of extending `make-syntax-introducer`, and probably related functions, to allow users to attach some debugging information to the created scope. For an example of what I...

macro system

Using `redirect-generics`, `chaperone-generics`, `impersonate-generics`, etc., a client module can exfiltrate a server module's implementations of generic methods and apply them to arguments that break the server module's invariants. For example,...

This program: ```racket #lang racket (require racket/generic) (chaperone-generics gen:dict #hash() [dict-ref (λ (super) super)]) ``` produces the following error: ``` 901a31301a/collects/racket/generic.rkt:202:9: gen:dict: contract violation expected: gen:dict? given: '#hash() ``` The...

(I found this while thinking further about https://github.com/racket/racket/pull/4913#discussion_r1472969940.) Consider the following program: ```racket #lang racket (require racket/treelist) (define/contract lazy-natural-treelist (treelist/c natural? #:lazy? #t #:flat? #f) (treelist 1 2 3)) (treelist-add...

**What version of Racket are you using?** 8.11.1.10-2024-01-03-8ea7e0d830 [cs] **What program did you run?** ```racket #lang racket (struct wrapped-list (content) #:transparent) (define (wrapped-cons v w-l) (struct-copy wrapped-list w-l [content (cons...

We have `open-output-nowhere` to discard unwanted output á la `/dev/null`. I often want an analogous way to create empty input ports. One concrete use-case is running a process with `system*`,...

good first issue
api design

This PR aims to support ICU as an alternative to `iconv` in rktio to implement [byte converters](https://docs.racket-lang.org/reference/bytestrings.html#%28def._%28%28quote._~23~25kernel%29._bytes-open-converter%29%29). Windows does not have iconv, so Racket currently distributes `libiconv-2.dll` in platform-specific packages...

I've been working on adding support for managing Racket packages to Guix. I've gotten far enough to build `compiler-lib`, meaning that I can run `raco test`, so I started filling...

build

While building Racket 8.7, I noticed that `rktboot` seems to be used when building Racket CS despite having supplied `--enable-scheme` to `configure`. The full build log is [pfb15qc784ad25vjq9kfzcayggclla-racket-vm-cs-8.7.drv.log](https://github.com/racket/racket/files/10019073/pfb15qc784ad25vjq9kfzcayggclla-racket-vm-cs-8.7.drv.log); here are...

build

It looks like [`(fibers operations)`](https://github.com/wingo/fibers/wiki/Manual#22-operations) provides two basic operation combinators: 1. [`choice-operation`](https://github.com/wingo/fibers/wiki/Manual#index-choice_002doperation), corresponding to Concurrent ML's `choose` and Racket's [`choice-evt`](https://docs.racket-lang.org/reference/sync.html#%28def._%28%28quote._~23~25kernel%29._choice-evt%29%29); and 2. [`wrap-operation`](https://github.com/wingo/fibers/wiki/Manual#index-wrap_002doperation), like CML's `wrap` and Racket's [`wrap-evt`](https://docs.racket-lang.org/reference/sync.html#%28def._%28%28quote._~23~25kernel%29._wrap-evt%29%29). But...

enhancement