« first day (1292 days earlier)      last day (1346 days later) » 

5:36 AM
@TessellatingHeckler Needs 18.0. In 17.1 you'd have to do (×/⍴)⍴⊢
 
 
5 hours later…
10:18 AM
halved the runtime of DGenFn"b←3⋄⊢d←(b×b)-4×2×1⋄((-b)+√d)÷2×2" by implementing dyadic ⍋⍒ (among other things)
 
 
2 hours later…
12:02 PM
 
 
4 hours later…
3:44 PM
Turns out Javascript-based BQN has been compiling the compiler correctly for several days now, and I just forgot that it needs the runtime as a left argument. Anyway, you can time but not verify it with time test/tj.js "$(cat src/c.bqn)" and it's down to about 1m25s now. Not too bad.
Performance is very noticeably slow but usable for a line or two at a time, so I guess I should put it on a webpage now. I started rewriting the VM in Rust but the memory management is clearly going to be annoying so I think I'll try a Go version first (both of these compile to WASM).
And for anyone else interested, if you reimplement the ~150 lines in bqn.js, you can copy the bytecode and have your very own very slow BQN running on whatever platform you want. And it'll speed up some as I start adding optimizations to the compiler.
 
4:08 PM
alternate vm, 1m12s → 0m49s:
https://dzaima.github.io/paste/#0xZdLc9s2EMfv/hRrXAQYkCzKeYqFO/Wok1MmOeXCajqUSlFs@RqQptxq9N27AEGKikgnVdKWB1F47f5/WIDARhug1w/eaD1aMniYrEHC/uBexUEJ6yzJsYiVdblKsETzTEDAQN7DHm5v4aPKQuUn2PkxLQMl4Oe0ilSWJkFaXgFE2rw25OUZOthjFYA2phZobOq2Ze0pz45lhWVCjuXir/dY43Q6fMJyWuvARvneL7eTxH@iWBApd5gLKigfVQqjasRTFw6dsR9xbOXHerT6RNWCcwYciCQcazlxO47VO03NbNfxWC3YsTF9TNrWmq2uX0ln9kak8sHLOV@6tkVPRvrDijXCUrczJJKOgFJOm7rfMgQruYxuaDpeIU10I1cutDbhALttFAdo8l6uWDPMmi55dGPNH2q1WZbP6xG0VI8YwT0oLskvKWmGFruoXG9pbZ@1PABrvwhgOof2MUNxFin54BGOk0AZJ0vCtKiVCvw/XLi9KSb5Y7GlHzzTvmTuze2pxbt5/YYXc7RoplOavhi
 
4:30 PM
<kritixilithos> moon-child: ^^^ the link to "bqn.js" is dropped on the irc side
 
4:49 PM
@dzaima The blazing speed of native execution...
Was hoping that would be a bigger improvement for very short programs, since they're still annoyingly slow, but it looks to be about the same difference.
 
i was kind of expecting a bigger improvement too (since, besides the current native builtins, interpreter overhead is pretty the only thing that happens), but ¯\_(ツ)_/¯
 
5:16 PM
@dzaima I think building the environment on each function call is a pretty major cost. So I probably need some kind of inlining to avoid the performance hit of defining all those operators as BQN blocks.
 

« first day (1292 days earlier)      last day (1346 days later) »