samth changed the topic of #racket to: Racket v7.7 has been released: https://blog.racket-lang.org/2020/05/racket-v7-7.html -- Racket -- https://racket-lang.org -- https://pkgs.racket-lang.org -- Paste at http://pasterack.org
orivej has quit [Ping timeout: 256 seconds]
orivej has joined #racket
corpix has quit [Remote host closed the connection]
orivej has quit [Ping timeout: 264 seconds]
orivej has joined #racket
corpix has joined #racket
corpix has quit [Remote host closed the connection]
catonano_ has joined #racket
tilpner_ has joined #racket
corpix has joined #racket
tilpner has quit [Ping timeout: 265 seconds]
tilpner_ is now known as tilpner
catonano has quit [Ping timeout: 260 seconds]
catonano_ is now known as catonano
orivej has quit [Ping timeout: 272 seconds]
orivej has joined #racket
orivej has quit [Quit: No Ping reply in 180 seconds.]
orivej has joined #racket
orivej has quit [Quit: No Ping reply in 180 seconds.]
sinsnare has joined #racket
orivej has joined #racket
sinsnare has quit [Remote host closed the connection]
sleepnap has joined #racket
KindOne has quit [Ping timeout: 272 seconds]
lockywolf has joined #racket
lockywolf_ has joined #racket
lockywolf has quit [Ping timeout: 260 seconds]
KindOne has joined #racket
sleepnap has quit [Quit: Leaving.]
orivej has quit [Ping timeout: 240 seconds]
orivej has joined #racket
wingsorc has joined #racket
orivej has quit [Ping timeout: 272 seconds]
orivej_ has joined #racket
wingsorc has quit [Quit: Leaving]
orivej_ has quit [Ping timeout: 272 seconds]
lavaflow has quit [Ping timeout: 256 seconds]
lavaflow has joined #racket
orivej has joined #racket
lavaflow has quit [Ping timeout: 260 seconds]
YuGiOhJCJ has joined #racket
orivej has quit [Ping timeout: 240 seconds]
orivej_ has joined #racket
FreeFull has quit []
ArneBab has joined #racket
KindTwo has joined #racket
KindOne has quit [Ping timeout: 256 seconds]
KindTwo is now known as KindOne
orivej_ has quit [Ping timeout: 272 seconds]
orivej has joined #racket
dddddd has quit [Ping timeout: 258 seconds]
nebunez has quit [Ping timeout: 265 seconds]
orivej_ has joined #racket
orivej has quit [Ping timeout: 264 seconds]
orivej_ has quit [Ping timeout: 240 seconds]
FreeFull has joined #racket
lockywolf_ has quit [Remote host closed the connection]
lockywolf_ has joined #racket
lockywolf_ has quit [Max SendQ exceeded]
lockywolf_ has joined #racket
lockywolf_ has quit [Max SendQ exceeded]
lockywolf_ has joined #racket
lockywolf_ has quit [Max SendQ exceeded]
lockywolf_ has joined #racket
SGASAU has quit [Remote host closed the connection]
aidalgol has quit [Read error: Connection reset by peer]
ArneBab has quit [Read error: Connection reset by peer]
Lowl3v3l has quit [Quit: Leaving.]
aidalgol has joined #racket
SGASAU has joined #racket
SGASAU has quit [Remote host closed the connection]
SGASAU has joined #racket
rgherdt has joined #racket
SGASAU has quit [Remote host closed the connection]
SGASAU has joined #racket
andrei-n has joined #racket
SGASAU has quit [Remote host closed the connection]
SGASAU has joined #racket
nullcone has joined #racket
SGASAU has quit [Ping timeout: 256 seconds]
orivej has joined #racket
Sgeo has quit [Read error: Connection reset by peer]
lockywolf_ has quit [Remote host closed the connection]
lockywolf_ has joined #racket
SGASAU has joined #racket
FreeFull has quit [Quit: rebooting]
bkhl_ has joined #racket
FreeFull has joined #racket
bkhl_ is now known as bkhl
orivej_ has joined #racket
orivej has quit [Ping timeout: 258 seconds]
srandon111 has quit [Ping timeout: 256 seconds]
orivej_ has quit [Ping timeout: 264 seconds]
orivej has joined #racket
orivej has quit [Quit: No Ping reply in 180 seconds.]
orivej has joined #racket
orivej has quit [Ping timeout: 256 seconds]
orivej_ has joined #racket
bkhl has left #racket [#racket]
libertyprime has joined #racket
orivej_ has quit [Ping timeout: 256 seconds]
orivej has joined #racket
orivej has quit [Quit: No Ping reply in 180 seconds.]
orivej has joined #racket
orivej has quit [Ping timeout: 240 seconds]
orivej has joined #racket
orivej has quit [Ping timeout: 265 seconds]
orivej has joined #racket
orivej has quit [Quit: No Ping reply in 180 seconds.]
orivej has joined #racket
SGASAU has quit [Remote host closed the connection]
SGASAU has joined #racket
orivej has quit [Ping timeout: 256 seconds]
orivej has joined #racket
jellie has joined #racket
sleepnap has joined #racket
sleepnap has left #racket [#racket]
orivej has quit [Quit: No Ping reply in 180 seconds.]
orivej has joined #racket
<dzoe> Ok, now the futures are slightly faster, but apparently after some continuation frames are GC'd, the futures start to allocate memory in chunks of 16 bytes after each iteration.
<dzoe> If I could get a rid of this allocation, there would be a huge performance boost.
<dzoe> Is there a way to confirm what is the source of this allocation?
true-grue has joined #racket
urbanslug has joined #racket
jellie has quit [Ping timeout: 260 seconds]
real-grue has joined #racket
true-grue has quit [Ping timeout: 256 seconds]
<und-l-t-d[m]> (a quick style question) if I want to represent a value that is unset (function argument or struct field that should be ignored if unset) - is #f or (void) better? I think I've seen #f used more often in main distribution...
lockywolf_ has quit [Ping timeout: 240 seconds]
iyzsong has joined #racket
nullcone has quit [Quit: Connection closed for inactivity]
<und-l-t-d[m]> foing to use #f for now since it is not a valid value for the field anyway and doesn't require anything around it in an if expression
<und-l-t-d[m]> *going
<dzoe> That's what most of us do - you can (if value ...) easily.
orivej has quit [Quit: No Ping reply in 180 seconds.]
orivej has joined #racket
catonano has quit [Read error: Connection reset by peer]
urbanslug is now known as jellie
catonano has joined #racket
YuGiOhJCJ has quit [Quit: YuGiOhJCJ]
jellie has quit [Ping timeout: 265 seconds]
jellie has joined #racket
lockywolf_ has joined #racket
jellie has quit [Ping timeout: 260 seconds]
orivej has quit [Ping timeout: 256 seconds]
orivej has joined #racket
jellie has joined #racket
dddddd has joined #racket
jellie has quit [Ping timeout: 260 seconds]
orivej_ has joined #racket
orivej has quit [Ping timeout: 260 seconds]
<und-l-t-d[m]> thanks
jellie has joined #racket
davidl_ has quit [Ping timeout: 258 seconds]
orivej_ has quit [Ping timeout: 240 seconds]
orivej has joined #racket
jellie has quit [Ping timeout: 264 seconds]
jellie has joined #racket
davidl_ has joined #racket
tlcu has joined #racket
jellie has quit [Ping timeout: 256 seconds]
jellie has joined #racket
sz0 has quit [Ping timeout: 260 seconds]
terrorjack has quit [Ping timeout: 260 seconds]
orivej has quit [Ping timeout: 264 seconds]
^[_ has quit [Ping timeout: 260 seconds]
orivej has joined #racket
krono has quit [Ping timeout: 260 seconds]
krono has joined #racket
sz0 has joined #racket
jellie has quit [Ping timeout: 260 seconds]
terrorjack has joined #racket
jellie has joined #racket
aidalgol has quit [Read error: Connection reset by peer]
TCZ has joined #racket
jellie has quit [Ping timeout: 260 seconds]
jellie has joined #racket
jellie has quit [Ping timeout: 256 seconds]
jellie has joined #racket
jellie has quit [Ping timeout: 272 seconds]
jellie has joined #racket
<samth> dzoe: there's not great memory profiling support, but you could use `dump-memory-stats` periodically and look at what changes
jellie has quit [Ping timeout: 256 seconds]
jellie has joined #racket
<wingo> samth: fwiw something i've found useful in the past in guile at least is a way of driving the sampling profiler not from SIGITIMER but from gc
<wingo> the sampling rate is much lower tho so you have to run your test for longer
jellie has quit [Ping timeout: 256 seconds]
jellie has joined #racket
lavaflow has joined #racket
jellie has quit [Ping timeout: 260 seconds]
orivej has quit [Read error: Connection reset by peer]
orivej_ has joined #racket
<samth> wingo: thanks, that's a clever idea
iyzsong has quit [Quit: ZNC 1.7.1 - https://znc.in]
orivej_ has quit [Ping timeout: 256 seconds]
orivej has joined #racket
SGASAU has quit [Remote host closed the connection]
SGASAU has joined #racket
iyzsong has joined #racket
libertyprime has quit [Remote host closed the connection]
TCZ has quit [Quit: Leaving]
jellie has joined #racket
orivej has quit [Ping timeout: 272 seconds]
orivej_ has joined #racket
orivej_ has quit [Ping timeout: 265 seconds]
orivej has joined #racket
srandon111 has joined #racket
orivej has quit [Ping timeout: 246 seconds]
orivej has joined #racket
<dzoe> samth: I suspect that actually some call frames need to be allocated and I have no idea how to confirm that.
<dzoe> The only hint is that all allocations are 16 bytes.
<dzoe> And I do remember that the function call tree should not be very deep in futures.
<dzoe> I'll look into inlining one variant and check the difference.
<dzoe> Although more information from future-event 'sync with "allocate memory" would be really beneficial :-/
<samth> dzoe: that `'sync` should only happen for a whole new page
<samth> so unfortunately I don't think there's much more info at that point
tlcu has quit [Ping timeout: 258 seconds]
tlcu has joined #racket
<dzoe> Interesting.
<dzoe> Maybe I'll add some debug info to custom racket build.
<dzoe> Btw, CS has absolutely no syncs there.
<dzoe> Futures in CS work like a charm.
<dzoe> But there are boxed flonums :)
<samth> i expect mflatt will fix that relatively soon
<samth> more significant imo is that racket doesn't have a good way to work with 64-bit integers efficiently
<samth> although i don't know if you run into that
jellie has quit [Quit: WeeChat 2.8]
samlamamma has joined #racket
<samlamamma> Does Racket have any built-in procedures for tree traversal? I'm hopelessly in need of SUBST-IF from CL :-/
<samth> samlamamma: I don't know of anything like htat
<samlamamma> samth:That's too bad! I wrote it myself in the end, I should've done that from the beginning he-he :-)
<dzoe> samth: and what are fixnums all about?
<dzoe> I know it is roughly 62bits or whatever, but that is enough :)
<samth> fixnums (being shorter by a few bits) are not enough for some uses
<dzoe> You are not entirely right here :)
<dzoe> I am using full 32bit numbers on 32bit Racket builds without any performance impact :)
<dzoe> With 32bit = #x0 .. #xffffffff
<dzoe> I assume the same trick can be used with 64bit numbers.
iyzsong has quit [Quit: ZNC 1.7.1 - https://znc.in]
<samlamamma> dzoe:How do you do that? Doesn't Racket do bit tagging?
orivej has quit [Quit: No Ping reply in 180 seconds.]
orivej has joined #racket
<dzoe> samlamamma: racket/unsafe/ops and you construct the numbers, it is easy to write "conversion" functions for that
juanfra has quit [Ping timeout: 256 seconds]
<samth> dzoe: i'm interested to see that
<dzoe> samth: just do not write #xff000000 but rather (unsafe-fxior (unsafe-fxlshift #xff 24) #x000000) for example :)
<dzoe> But of course, you must not EVER touch that value using anything else than unsafe fixnum operations.
<dzoe> A simple display or format can bring the whole program down, of course ...
endformationage has joined #racket
<samlamamma> Could you `deref` that number by putting it into function position?
<dzoe> For some numbers I'd be afraid, yes ...
<dzoe> Not a good idea.
<samlamamma> He-he :-)
<dzoe> This is by far the least unsafe thing I do with Racket ...
Lowl3v3l has joined #racket
orivej has quit [Ping timeout: 258 seconds]
orivej has joined #racket
samlamamma has quit [Ping timeout: 260 seconds]
juanfra has joined #racket
samlamamma has joined #racket
orivej has quit [Ping timeout: 240 seconds]
orivej has joined #racket
SGASAU has quit [Remote host closed the connection]
SGASAU has joined #racket
nebunez has joined #racket
Sgeo has joined #racket
orivej has quit [Ping timeout: 256 seconds]
orivej has joined #racket
efm has quit [Ping timeout: 264 seconds]
efm has joined #racket
orivej has quit [Ping timeout: 256 seconds]
orivej has joined #racket
orivej has quit [Ping timeout: 256 seconds]
orivej_ has joined #racket
orivej_ has quit [Ping timeout: 258 seconds]
orivej has joined #racket
juanfra has quit [Ping timeout: 256 seconds]
juanfra has joined #racket
orivej_ has joined #racket
orivej has quit [Ping timeout: 272 seconds]
epony has quit [Quit: upgrades]
epony has joined #racket
sleepnap has joined #racket
orivej has joined #racket
orivej_ has quit [Ping timeout: 256 seconds]
efm has quit [Ping timeout: 265 seconds]
orivej has quit [Ping timeout: 256 seconds]
orivej has joined #racket
ArthurStrong has quit [Ping timeout: 265 seconds]
orivej has quit [Ping timeout: 246 seconds]
orivej has joined #racket
orivej has quit [Ping timeout: 256 seconds]
orivej_ has joined #racket
KindTwo has joined #racket
KindOne has quit [Ping timeout: 272 seconds]
KindTwo is now known as KindOne
orivej has joined #racket
orivej_ has quit [Ping timeout: 264 seconds]
SGASAU has quit [Remote host closed the connection]
SGASAU has joined #racket
stagboot has joined #racket
<stagboot> Seems I misunderstand require/typed's #:opaque argument. I'd think that (require/typed net/http-client [#:opaque SSL base-ssl?-tnl/c]) (define x : SSL #f) would be OK, but it retorts, "expected SSL. given False"?
<samth> stagboot: if you use `#:opaque` the only way to produce such a value is to import it with `require/typed` or to check for it with `base-ssl?-tnl/c`
<stagboot> samth: thanks. I'm producing a new value, so I can't import it. How can I "check for it?"
<samth> in that case, opaque probably isn't the right thing. but how are you creating it?
<samth> looking at the docs, I recommend translating the definitions of `base-ssl?` and `base-ssl?-tnl/c` directly
<samth> ie, (define-type Base-SSL (U Boolean Symbol SSL-Client-Context))
<samth> (define-type Base-SSL-TNL (U Base-SSL (List Base-SSL Input-Port Output-Port (-> Port Void)))
<samth> and use #:opaque for SSL-Client-Context
<stagboot> isn't that hacky, though? what if the type were more complex, and made of many non-standard types?
<stagboot> oh! wait, i think i see: i was trying to use #:opaque to derive a type from a contract, but it expects a boolean.
<stagboot> which would mean that, unless there's a function to derive types from contracts, i would need to define the types as you've outlined.
even4void has joined #racket
<samth> the problem is not that it got a boolean, but that typed racket doesn't know what's in `base-ssl?-tnl/c`.
aidalgol has joined #racket
even4void has quit [Remote host closed the connection]
orivej_ has joined #racket
orivej has quit [Read error: Connection reset by peer]
samlamamma has quit [Ping timeout: 260 seconds]
even4void has joined #racket
even4void_ has joined #racket
even4void_ has quit [Client Quit]
even4void has quit [Remote host closed the connection]
orivej_ has quit [Ping timeout: 246 seconds]
orivej has joined #racket
jmiven has quit [Quit: bye]
jmiven has joined #racket
orivej has quit [Ping timeout: 256 seconds]
ArneBab has joined #racket
orivej has joined #racket
stagboot has quit [Quit: Leaving]
tlcu has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
<dzoe> Sometimes I think I should have never started this project.
<dzoe> Apparently there is a way to remove all allocations and as a nice side effect reduce GC frequency.
<dzoe> The downside is I need to maintain a pool of special structures for passing arguments to "procedures" the futures "call" and just reference these in the "futures-friendly" queue.
<dzoe> Now I am really curious what other bugs are lurking in there ...
TCZ has joined #racket
nebunez has quit [Ping timeout: 256 seconds]
zmt00 has quit [Quit: Leaving]
zmt00 has joined #racket
orivej has quit [Ping timeout: 256 seconds]
orivej has joined #racket
andrei-n has quit [Quit: Leaving]
corpix_ has joined #racket
corpix has quit [Ping timeout: 240 seconds]
ermo has quit [Ping timeout: 256 seconds]
ermo has joined #racket
orivej has quit [Ping timeout: 256 seconds]
orivej_ has joined #racket
jellie has joined #racket
ArthurStrong has joined #racket
orivej_ has quit [Ping timeout: 264 seconds]
orivej has joined #racket
TCZ has quit [Quit: Leaving]
orivej has quit [Quit: No Ping reply in 180 seconds.]
orivej has joined #racket
libertyprime has joined #racket
ArthurStrong has quit [Read error: Connection reset by peer]
real-grue has quit [Read error: Connection reset by peer]
orivej has quit [Ping timeout: 264 seconds]
orivej has joined #racket
ArthurStrong has joined #racket
orivej has quit [Read error: Connection reset by peer]
orivej has joined #racket
orivej has quit [Ping timeout: 256 seconds]
orivej has joined #racket
orivej has quit [Ping timeout: 260 seconds]
orivej has joined #racket
rgherdt has quit [Ping timeout: 260 seconds]
orivej has quit [Quit: No Ping reply in 180 seconds.]
orivej has joined #racket
dmiles has quit [Read error: Connection reset by peer]
dmiles has joined #racket