
I didn’t change the default value of it, I change it according to how many events are received and restore it immediately after the composed wheel event emitted. For example, If 10 wheel-down events are received, I increased it to 10 times and call the on-char from super class with a single wheel-up event.

It seems the reason of scrolling problems is that the os deliver wheel events much more quick than DrRacket’s redrawing. My code just limits the frequency of redrawing for wheel events, and it works well for me.

Why not put it in DrRacket?

Huh. Using \epsilon in DrRacket inserts an epsilon as expected. But if I copy paste it - I get a prompt to normalize the inserted string - and then I get a different epsilon!

I think DrRacket would need similar things, but my solutions, which only use public APIs, are really ugly hacks. It would be better to be built into DrRacket deeply, which I am unfamiliar with.

$\epsilon$ and $\varepsilon$, interesting

vincent: ping!

@stamourv ping!

@jbclements: Here!

Let’s move to PMs.

yeah… uh… tell me how that works on slack …

@oskar982 has joined the channel

Will (call-with-output-bytes newline)
return #"\r\n"
on Windows? I don’t have a Windows machine to check.

Not on my system

DrRacket 7.1

Thanks. I wonder if there’s a way to get the right newline sequence for the current platform.

(call-with-output-bytes newline)
#"\n"

I know that normally it doesn’t matter, since reading/writing a file in text mode automatically converts as-needed in Racket. But in my case I’m just looking at some bytes, and I can’t depend on the automatic conversion.

What I usually do is I implement hash-proc
by extracting a list of the fields in the struct I care about and calling the recur
function on that list. I also toss in a gensym
so that struct instances have a different hash code than actual lists. Something like this:
#:methods gen:equal+hash
[(define (this->list this) (list ... important fields only ...))
(define datatype-gensym (gensym))
(define (equal-proc this other recur)
(recur (this->list this) (this->list other)))
(define (hash-proc this recur)
(recur (cons datatype-gensym (this->list this)))
;; the recur argument given to hash2-proc
;; returns different codes than the one given
;; to hash-proc, so using the same implementation
;; for both still gives us a different secondary
;; hash code
(define hash2-proc hash-proc)]

This allocates lists every time equal?
is called or hash codes are computed, but… oh well. It’s simple, easy to maintain, and gets the job done.

hey, if anyone has thoughts on plots & color maps please comment on this pull request: https://github.com/racket/plot/pull/52

for \r\n
: looks like it is converted at the rktio layer https://github.com/racket/racket/blob/master/racket/src/rktio/rktio_fd.c#L947 so perhaps you have to look at (system-type 'os)
and repeat what open-input-file
documented

I played with a #lang
a little, a while ago. I remember there being a few annoying things: for example, wasm exposes the payloads of nan values, which Racket doesn’t.