« first day (1263 days earlier)      last day (1375 days later) » 

2:48 AM
Turns out it can be done without loops. Just decidedly not easy.
 
 
9 hours later…
12:08 PM
@dzaima should now be fully implemented
 
 
1 hour later…
1:29 PM
i've been working on various different performance things (not builtins though), and nothing has changed performance of Marshall's compiler at all.. ¯\_(ツ)_/¯
(by "not builtins though" i meant not directly working on specific built-ins, but rather things that apply to classes of things (special /f` for scalar number fs and DoubleArr argument, the valuecopy stuff, etc))
i guess the slow builtins are still way too slow to show effect of any of the changes
(or the changes are just bad ¯\_(ツ)_/¯)
 
2:04 PM
I think it's pretty likely it's bottlenecked in a few builtins. Keep measuring.
It might help to find a specific line that's relatively slow and figure out why.
@dzaima The changes you made did show improvement on some benchmark, right? They'll probably be relevant eventually.
Oh, it's probably also worth looking at much larger programs (~10kB?). That's the range that we should actually care about, and the performance characteristics will be very different.
 
@Marshall yeah, though looking at it now, improving -´↕10000 from .14ms to 0.02ms is probably not gonna change much..
@Marshall right, but i don't have any such programs (i guess generating a random one is possible)
i really should get a fast working before anything else but it's such an annoying built-in (sorting algorithms are complicated (i'd definitely have to write my own, plus it's more than just sorting), i don't have any integer types so index tables would have annoying overhead)
(i should probably check what's the overhead of checking for overflow for integer math, maybe it could actually be worth it)
 
2:32 PM
@dzaima It should be pretty close to being able to compile the body of DParse. Might have to expand the modified assignments. I doubt the output would be completely correct, but it probably doesn't matter for benchmarking.
 
for the time being i'm just gonna play with creating an IntArr
(and cleaning up the absolute mess of methods on Value)
 
 
1 hour later…
3:51 PM
between all my rearranging of things for preparation for int arrs (including changing an interface to an abstract class), 3367 → 3097 ms. ¯\_(ツ)_/¯
(changing more interfaces to abstract classes - the reason they were interfaces in the first place was to be able to use lambdas. ಠ_ಠ java)
 
4:20 PM
2x speeed boost (though here the only check is for whether there is an Integer.MIN_VALUE)
 
4:53 PM
 
 
1 hour later…
6:16 PM
not so pretty for +:
https://dzaima.github.io/paste/#0zVQ9SwNBEO3zK5ZrA8fs9y7YHMYiEEWMf0BJioP4wSVC0h0iFmqR4goLISAKCaS0FAL5KftLHOMFzVkYPIN7XHE7czP7ePPeEEL6sUtng9hdD136WI/m437rPdD6CBxEezXC3PPNFgV88IO2bYUQgrntRtRs4v95g3SWV1ZcdueytNw79aDDJloNkZ3LaL8R9gbn7W54lCTdsH7ai5Jk/Xjt7OK40/4xhTdlpfG@eNBhE63uV0XsRqjj6iAm7vaK9FtV1P9o4omQf6UdD4VQ4H6EpE9wYbDFUpE4i8P67s58bPAcLEYQYDZYjCUoP4rpH3APIVDKhZFUMk1O4k4n7uZhMIorAGE@w1jxUO7S13LlT0vMwEBykCzHRpZhDUIoa4SXmKlhTHOjCjwjZmO4YX7yrBCxpeYbZmkR9Srm7F/9uJ4H5dKC0h8HglWCW2E1K7AslabSKuqhMsCiAjRFsxUwc8GFZsZ6iZlyqoXiRTUzLrmU1FOelQaKq7iIGXD/afllAXrgwDc#BQN18
(but not that bad either)
 
6:29 PM
usage isn't pretty either
(for comparison, no overflow detection)
somehow i missed that there is an @HotSpotIntrinsicCandidate for Math.addExact. here's a comparison using it
 
 
4 hours later…
10:13 PM
@dzaima dunno what part of what i've been doing is the most important (i have squeezing to IntArrs, but only dyadic +×∨∧ & monadic ¬- explicitly output them), but that's now 2548ms
oh, and dt.js fails. ¯\_(ツ)_/¯
first problem down: was . now there are pretty errors
 

« first day (1263 days earlier)      last day (1375 days later) »