
is there any library with a bitvector implemention?

whoops: https://docs.racket-lang.org/data/bit-vector.html thanks @soegaard2

@mflatt @ryanc following up on the travis failure, it started failing on macOS on 12/2, with this build https://travis-ci.org/racket/racket/builds/310672782 of this commit https://github.com/racket/racket/commit/0de27b6ce96df044422ac41c29d9df1d149fbb5e which did change rktio on macOS

However, between that build and the previous successful build, Travis also rolled out a change from xcode 7.3 to 8.3 (https://blog.travis-ci.com/2017-11-21-xcode8-3-default-image-announce) so that could also have caused the problem

which package has the raco test command? I thought rackunit-lib was it but apparently not.

compiler-lib

thank you

@stamourv ping

@samth: pong

do you have any knowledge of the profiler infrastructure + threads?

(see https://github.com/racket/gui/issues/86#issuecomment-356643160 for context)

Not particularly, but lemme have a quick look.

The contract-profiler and the regular profiler share sampling infrastructure, so seeing the same result makes sense.

basically, I want to profile a program that starts a gui, and I can’t seem to

:threads starts a new custodian, and profiles anything under that. IIUC, this won’t sample the GUI thread. Can you try creating the sampler yourself (create-sampler
), and passing the current custodian as the to-track
argument?

that errors because the custodian isn’t a subcustodian

but there’s now an unsafe function for the root custodian

actually, no, there isn’t, so I have to use the FFI

@stamourv having now failed a couple times, do you have a suggestion for getting the root custodian?

Unfortunately not.

It does sound like what you would need, though.

ok, I’ll write this annoying ffi code

@mflatt Is there any good way to suppress the "Warning: lexer at ~a can accept the empty string.\n"
warning when using parser-tools/lex
to make a lexer you very intentionally want to lex the empty string?

(Alternatively, would it be bad to add a keyword argument to the lexer
form to suppress it?)

@leif No idea if a way already exists; a keyword to suppress sounds fine

@mflatt do you have Racket code lying around that gets the root custodian?

I think it’s intentionally impossible

I mean using the FFI

Even using the FFI

Using the root custodian as an argument to various functions might break; I’m not sure

I seem to recall doing this once, by following parent pointers

Okay cool, thanks.

Looking again, the root custodian is the initial custodian, so I guess it’s ok. (Maybe I was thinking of something else.)

hmm, just following the parent
field seems to get NULL
for the parent of the initial (current-custodian)

but I suppose that’s consistent with what you just said

@mflatt since this code doesn’t seem to work, do you have an alternate suggestion for getting a custodian to use in profiler sampling that will include the gui thread?

@samth Do you have control over the way the program is started, so that you can create a new custodian and use the original to inspect the new one?

@mflatt Thanks, I tried that. I now see the the loop in gtk/queue in the profile, but none of the actual plot code I’m trying to profile /cc @stamourv

Hi friends!

Is Racket using continuations to implement any functions in standard libraries? I’m just trying to clearly understand how continuations work and what benefits they provide, that’s why I’m looking for examples, especially quite complicated ones. Thank you very much in advance!