« first day (509 days earlier)      last day (2146 days later) » 

ngn
7:08 AM
@Adám I think I managed to narrow that gap a little, we should re-test when TIO gets updated
 
 
2 hours later…
8:58 AM
Using RIDE, what's the proper way to make a namespace that I can enter code into? Currently I'm going )ed ∘#.foo and then changing interface to namespace. What's the correct way?
 
@Probie The prefix symbol for a namespace is . Did you know that you can type )ed (or pretty much anything else, for that matter) and press F1?
 
@Adám nope. Vaguely related; is there any way I can plug my own text editor (i.e emacs) into )ed
 
@Probie Not to )ed, but you can fairly easily write a user command to do so. E.g. you could then write ]emacs foo to edit foo.
 
9:29 AM
@Probie Correction with good news: Set RIDE_EDITOR=emacs
 
@Adám *correction with great news
 
@Probie :-D It is undocumented, hence I wasn't aware. But I asked the CTO if it would be possible to add, and he told me it was already there.
 
 
2 hours later…
11:30 AM
Don't forget to join our live webinar - Acquiring online data using HttpCommand, ⎕JSON and ⎕XML - on Thursday 21 June at 15:00 UTC with Morten Kromberg https://dyalog.tv/Webinar
 
 
3 hours later…
ngn
2:58 PM
@Adám Wow - try them now! Dennis updated ngn/k on TIO.
 
@ngn Whoa, down from ×10 to ÷3
 
ngn
@Adám honestly, I didn't expect that much improvement
all I did was replace some i++%n with i++;i*=i<n in C, and play a little with my memory manager
 
@ngn I have no idea what those mean, but sure, we should do so too…
 
ngn
@Adám it's not as low as ÷3, maybe ÷2 ... ÷2.5, but still unexpected
@Adám I'm pretty sure Dyalog's impl of ⍳ already has the hell optimised out of it. But from my point of view your memory manager sucks as it was designed for a different age - before virtual memory, caches, and prefetching existed.
 
3:17 PM
@Adám Huh?
Never mind, I forgot it was a reply >_<
 
ngn
3:32 PM
on the same test kona is somewhere between ngn/k and dyalog - tio.run/##y9bNzs9L/P9fubpCWVuxotZI2dTA4P9/AA
 
@Adám n|1-⍨i+←1 and i+←1⋄i×←i<n would be the APL equivalents to that
@ngn i does NOT go above n, right? That's pretty clever!
 
ngn
@Zacharý right, 0≤i<n, just like the result of % (modulo)
@Zacharý division and mod are terribly slow compared to addition and multiplication - that may be a bit surprising to you and me, but it's probably just obvious to those who spend their lifetimes squeezing performance out of cpus...
 
3:54 PM
@ngn Yeah, that makes sense
 
4:04 PM
Dyalog are visiting Japan in July where, amongst other events, Morten is presenting at Chuo University in Tokyo https://twitter.com/Chuo_PR/status/1008589161429946368
 
ngn
another surprising fact: I thought I might be able to speed up some primitives, like the k equivalents of transpose and iota, by batch-allocating N lists (i.e. a k matrix) before filling them up
it turns out that's slower because when allocating I have to initialise the headers, and I end up touching memory in a bad interleaved jumpy pattern - first the headers, then the data
if the order is header0, data0, header1, data1, etc, prefetching takes effect and it's faster
 
4:57 PM
@ngn huh, I really thought compilers would be able to make that optimization.
 
ngn
5:12 PM
@dzaima clang -03 definitely doesn't - in one case it generates instructions like cqo and idiv, in the other - a very tight loop with only inc, add, and mov
 
 
1 hour later…
6:15 PM
@dzaima It doesn't because i could be above n, and, for example, 10%3 is NOT 0.
 
@Zacharý well, at least in my example, i stays in-bounds always and that optimization would be perfectly valid. I'd expect compilers to work very hard to get division/modulo out of the code
 
@dzaima Yeah
 
ngn
6:33 PM
I wonder how much junk the compiler adds to my executable just because it doesn't know that my arrays are aligned
 
7:01 PM
IDK
 
 
4 hours later…
11:27 PM
@Adám I didn't get around to trying using emacs for )ed until now. RIDE_EDITOR needs to be set as an environment variable in the shell (at first I thought it went along with the things like MAXWS until I realised it'd make little sense for it to be there). The temporary file it opens gets given a .dyalog extension which makes it trivial to autoload my input mode. For an undocumented feature it works really well
 
@Probie Good to hear.
 

« first day (509 days earlier)      last day (2146 days later) »