samth changed the topic of #racket to: Racket v7.6 has been released: https://blog.racket-lang.org/2020/02/racket-v7-6.html -- Racket -- https://racket-lang.org -- https://pkgs.racket-lang.org -- Paste at http://pasterack.org
srji has quit [Ping timeout: 256 seconds]
iyzsong has joined #racket
<jcowan> rudybot: init
<rudybot> jcowan: your sandbox is ready
<jcowan> rudybot: (define (foo x y :a :b :c) (+ x y)))
<rudybot> jcowan: so if I have the definer (define-test ...), having done (define-test foo (_fun a -> b)) , will (foo x y) force contract checks?
<jcowan> rudybot(foo 1 2)
<jcowan> rudybot: (foo 1 2)
<rudybot> jcowan: error: foo: undefined; <NEWLINE> cannot reference an identifier before its definition <NEWLINE> in module: 'program
<jcowan> bah
<jcowan> rudybot: eval (define (foo x y :a :b :c) (+ x y)))
<rudybot> jcowan: error: eval:1:35: read: unexpected `)'
<jcowan> rudybot: eval foo
<rudybot> jcowan: error: foo: undefined; <NEWLINE> cannot reference an identifier before its definition <NEWLINE> in module: 'program
<jcowan> rudybot: eval (define (foo x y :a :b :c) (+ x y))
<rudybot> jcowan: Done.
<jcowan> rudybot: (foo 1 2)
<rudybot> jcowan: error: foo: arity mismatch; <NEWLINE> the expected number of arguments does not match the given number <NEWLINE> expected: 5 <NEWLINE> given: 2 <NEWLINE> arguments...: <NEWLINE> 1 <NEWLINE> 2
<jcowan> eval (define (foo z y #:a #:b #:c) (+ x y))
SGASAU has quit [Remote host closed the connection]
<jcowan> rudybot: eval (define (foo z y #:a #:b #:c) (+ x y))
<rudybot> jcowan: error: eval:1:17: define: missing argument identifier after keyword <NEWLINE> at: #:a <NEWLINE> in: (define (foo z y #:a #:b #:c) (+ x y))
<jcowan> bah
SGASAU has joined #racket
rmnull has joined #racket
ephemeron has quit [Quit: ZNC 1.6.6+deb1ubuntu0.2 - http://znc.in]
YuGiOhJCJ has joined #racket
ephemeron has joined #racket
efm has joined #racket
Junjie has joined #racket
brendyyn has joined #racket
cantstanya has quit [Ping timeout: 240 seconds]
cantstanya has joined #racket
libertyprime has quit [Read error: No route to host]
dddddd has quit [Ping timeout: 240 seconds]
libertyprime has joined #racket
sword865 has joined #racket
libertyprime has quit [Read error: Connection reset by peer]
orivej has joined #racket
libertyprime has joined #racket
_whitelogger has joined #racket
N0S4A2 has quit [Quit: WeeChat 2.8]
rmnull has quit [Quit: WeeChat 2.8]
libertyprime has quit [Read error: Connection reset by peer]
libertyprime has joined #racket
Intensity has joined #racket
nebunez has quit [Ping timeout: 252 seconds]
endformationage has quit [Quit: WeeChat 2.6]
sauvin has joined #racket
dustyweb has quit [Remote host closed the connection]
dustyweb has joined #racket
efm has quit [Read error: Connection reset by peer]
efm has joined #racket
narimiran_ has joined #racket
rmnull has joined #racket
Naptra has joined #racket
ober has joined #racket
FreeFull has quit [Quit: rebooting]
revtintin has joined #racket
revtintin has quit [Ping timeout: 256 seconds]
rmnull has quit [Quit: WeeChat 2.8]
rmnull has joined #racket
ephemera_ has quit [Ping timeout: 256 seconds]
revtintin has joined #racket
ephemera_ has joined #racket
FreeFull has joined #racket
rmnull has quit [Quit: WeeChat 2.8]
SGASAU has quit [Remote host closed the connection]
SGASAU has joined #racket
sword865 has quit [Quit: Connection closed for inactivity]
revtintin has quit [Ping timeout: 250 seconds]
dddddd has joined #racket
revtintin has joined #racket
libertyprime has quit [Ping timeout: 258 seconds]
libertyprime has joined #racket
YuGiOhJCJ has quit [Remote host closed the connection]
YuGiOhJCJ has joined #racket
YuGiOhJCJ has quit [Remote host closed the connection]
revtintin has quit [Ping timeout: 256 seconds]
revtintin has joined #racket
revtintin has quit [Ping timeout: 260 seconds]
notzmv has quit [Remote host closed the connection]
notzmv has joined #racket
narimiran_ is now known as narimiran
<dzoe> Gosh, didn't know ptr-ref/ptr-set! are so inherently slow :(
libertyprime has quit [Remote host closed the connection]
<dzoe> Doing four unsafe-bytes-set! is way faster than one ptr-set! with _uint32 ...
cpup has quit [Quit: Breaking stuff]
cpup has joined #racket
revtintin has joined #racket
true-grue has joined #racket
nullcone has quit [Quit: Connection closed for inactivity]
KDr21 has joined #racket
KDr2 has quit [Ping timeout: 250 seconds]
revtintin has quit [Ping timeout: 264 seconds]
selimcan has joined #racket
revtintin has joined #racket
revtintin has quit [Ping timeout: 264 seconds]
pilne has quit [Read error: Connection reset by peer]
revtintin has joined #racket
pilne has joined #racket
keep_learning has quit [Quit: This computer has gone to sleep]
iyzsong has quit [Quit: ZNC 1.7.1 - https://znc.in]
pilne has quit [Read error: Connection reset by peer]
revtintin has quit [Ping timeout: 258 seconds]
pilne has joined #racket
revtintin has joined #racket
pilne has quit [Read error: Connection reset by peer]
pilne has joined #racket
revtintin has quit [Ping timeout: 258 seconds]
vraid has joined #racket
revtintin has joined #racket
vraid has quit [Quit: Leaving]
<samth> wingo: you might be interested in https://github.com/racket/racket/pull/3101
pilne has quit [Ping timeout: 258 seconds]
pilne has joined #racket
efm has quit [Ping timeout: 256 seconds]
efm has joined #racket
pilne has quit [Read error: Connection reset by peer]
pilne has joined #racket
efm has quit [Ping timeout: 265 seconds]
\dev\ice has joined #racket
efm has joined #racket
efm has quit [Client Quit]
<wingo> samth: i saw that as paolo tagged me :)
<wingo> in guile i added perf-map support but jit-map stuff looks significantly more capable
<wingo> i haven't implemented that yet in guile fwiw, but the bug points to an implementation for v8
<samth> wingo: on a totally unrelated note, I've been enjoying your wasm blog posts but they make me think that wasm is designed wrong and should be closer to machine code
<wingo> like, declare a fixed set of registers, that sort of thing?
<wingo> (tx, also)
<wingo> also you mean have just integer and floating-point values? or would you keep the type system (such as it is)?
<samth> yes. basically, that needing multiple tiers for wasm is a sign that it's not right.
<samth> maybe that also, but i'm unclear on the implications of structured types for compilation speed
<wingo> apparently what the optimizing tier gives you is better instruction selection, register allocation, but also some code motion optimizations relative to how the access to instance state is managed
revtintin has quit [Ping timeout: 265 seconds]
<samth> maybe the answer is "TAL is too hard to add to browsers so we need a stack machine to make verification tractable" but the performance predictability problems seem quite severe
<wingo> i only see one performance predictability concern, which is whether a baseline compiler will tier up from a loop
<wingo> since the tiering isn't based on speculative or feedback-driven optimizations, i think the predictable part works fairly well
<wingo> but i do have a bias to see things and not be able to imagine them other ways :P
<samth> but if you add OSR (and even if you don't) you get issues of "when does it tier up"
<wingo> that's true, though i guess i don't perceive it as much of a problem... could be wrong of course
brendyyn has quit [Ping timeout: 240 seconds]
<wingo> i wonder what % of wasm module instantiations will be cached, also
<samth> i guess it depends on your reference point -- predictability is much better than for JS but significantly worse than running pre-compiled native binaries
nebunez has joined #racket
pilne has quit [Read error: Connection reset by peer]
revtintin has joined #racket
pilne has joined #racket
notzmv has quit [Read error: Connection reset by peer]
<true-grue> With a stack-based IR one could use a simple technique of abstract interpretation of IR code to generate a target register-based code. Funny that this idea was taken by V8 developers from old Scheme papers (see DDCG).
revtintin has quit [Ping timeout: 250 seconds]
<wingo> true-grue: citation?
<wingo> that post-dates spidermonkey's baseline compiler fwiw
<wingo> hum
<wingo> ok that is older than when it was posted :)
<wingo> ah ok you refer to the full-codegen compiler that used to be in v8
<wingo> long time ago, that :)
<wingo> i had forgotten that link
<true-grue> wingo, Yeah, my point that you can still have a decent quality code generation for a register machine while compiling to a simple stack-based IR :)
<wingo> fwiw that is what the baseline compilers do in wasm implementations; rule of thumb is optimized code is generally 2x faster than that approach
<wingo> i don't have a lot of numbers on that but you can compare to https://v8.dev/blog/liftoff
<true-grue> "This virtual stack exists only during compilation.". Yes, that's it, of course.
<wingo> see graph at the bottom
<wingo> *articles
<true-grue> In fact, I'm already enjoying by reading your blog for a quite long time :) It's interesting to see functional programmers point of view on the compilers. And I really appreciate your attempt to unify different "compiler people" tribes: https://wingolog.org/archives/2011/07/12/static-single-assignment-for-functional-programmers
notzmv has joined #racket
TCZ has joined #racket
revtintin has joined #racket
ArthurStrong has joined #racket
TCZ has left #racket ["Leaving"]
TCZ has joined #racket
TCZ has left #racket ["Leaving"]
TCZ has joined #racket
TCZ has left #racket [#racket]
Junjie has left #racket [#racket]
revtintin has quit [Ping timeout: 258 seconds]
revtintin has joined #racket
efm has joined #racket
real-grue has joined #racket
true-grue has quit [Ping timeout: 265 seconds]
revtintin has quit [Ping timeout: 260 seconds]
revtintin has joined #racket
pilne has quit [Read error: Connection reset by peer]
jshap has joined #racket
pilne has joined #racket
sauvin has quit [Read error: Connection reset by peer]
tonyg has joined #racket
orivej has quit [Ping timeout: 264 seconds]
<dzoe> Hmmm, and why the heck is pointer to data in fxvector at different location than in byte string? Some of the Racket internals make me turn my head inside out.
efm has quit [Read error: Connection reset by peer]
efm has joined #racket
efm has quit [Ping timeout: 258 seconds]
efm has joined #racket
miskatonic has joined #racket
SGASAU has quit [Remote host closed the connection]
SGASAU has joined #racket
SGASAU has quit [Remote host closed the connection]
SGASAU has joined #racket
TCZ has joined #racket
miskatonic has quit [Quit: ERC (IRC client for Emacs 24.5.1)]
revtintin has quit [Quit: WeeChat 1.9.1]
narimiran has quit [Ping timeout: 260 seconds]
SGASAU has quit [Remote host closed the connection]
SGASAU has joined #racket
<samth> dzoe: what exactly do you mean?
Ven`` has joined #racket
vraid has joined #racket
SGASAU has quit [Remote host closed the connection]
SGASAU has joined #racket
Naptra has quit [Remote host closed the connection]
SGASAU has quit [Remote host closed the connection]
SGASAU has joined #racket
TCZ has quit [Quit: Leaving]
efm has quit [Read error: Connection reset by peer]
rmnull has joined #racket
SGASAU has quit [Remote host closed the connection]
SGASAU has joined #racket
SGASAU has quit [Remote host closed the connection]
SGASAU has joined #racket
keep_learning has joined #racket
SGASAU has quit [Remote host closed the connection]
SGASAU has joined #racket
keep_learning has quit [Client Quit]
real-grue has quit [Read error: Connection reset by peer]
SGASAU has quit [Remote host closed the connection]
SGASAU has joined #racket
jboy has quit [Quit: bye]
jboy has joined #racket
keep_learning has joined #racket
brendyyn has joined #racket
SGASAU has quit [Remote host closed the connection]
rmnull has quit [Quit: WeeChat 2.8]
keep_learning has quit [Quit: This computer has gone to sleep]
epony has quit [Read error: Connection reset by peer]
SGASAU has joined #racket
epony has joined #racket
epony has quit [Remote host closed the connection]
TCZ has joined #racket
SGASAU has quit [Remote host closed the connection]
SGASAU has joined #racket
epony has joined #racket
Ven`` has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
TCZ has quit [Quit: Leaving]
nullcone has joined #racket
TCZ has joined #racket
keep_learning has joined #racket