Perl 6 language and compiler development | Logs at colabti.org/irclogger/irclogger_log/perl6-dev | For toolchain/installation stuff see #perl6-toolchain | For MoarVM see #moarvm
Set by Zoffix on 27 July 2018.
patrickb vrurg: Then it didn't work out. :-( 00:00
vrurg The only solution is to build small statically linked binary which would later dynamically load the lib. 00:01
They hard-code path to .dyld into the executable. 00:02
patrickb vrurg: Are you sure there is no posibility? I read up on this a little and I thought there is a way... 00:06
www.mikeash.com/pyblog/friday-qa-2...names.html 00:07
vrurg patrickb: Can't give you all my confidence, but the error message supports my statement: dyld: Library not loaded: /Users/vrurg/tmp/MoarVM/../install/lib/libmoar.dylib – note that even the double dot is there! 00:08
Look the date of the post. 10 years ago. They've strictened the rules 2 or 3 major releases ago. 00:09
vrurg struggled with dynamic loading of mysql driver a while ago. 00:10
patrickb medium.com/@donblas/fun-with-rpath...e41ae86172 <- The same thing less than a year old
vrurg: I have to leave. But I'd really like to get back to this.... 00:12
vrurg Checking out the latest link. The problem is that I didn't do compiling for years now. 00:13
Ping me anytime, I'l respond when available.
patrickb vrurg: Thanks!
vrurg welcome! And good luck! I like the idea.
patrickb vrurg: github.com/MoarVM/MoarVM/pull/1053...d41308R582 <- this line and the following are all the magic I put in there for mac 00:15
o/ 00:16
00:16 patrickb left
DrForr Ah, this might be more active. I'm playing with traits, and wanting to create a custom class trait like C<is repr()>... Any hints as to what the proper type to use for classes is? 00:18
vrurg DrForr: :U 00:27
multi trait_mod:<is> ( Any:U $class ... ) 00:28
DrForr Aha, thanks!
vrurg welcome! 00:29
DrForr It still thinks it's a nonexistent class. Maybe I can leverage that somehow... 00:30
I'll fiddle, at least that gives me a point to work from. 00:31
00:42 sortiz left 01:11 MasterDuke joined 01:12 MasterDuke left, MasterDuke joined
timotimo oh hey DrForr 01:51
DrForr O hai. 01:52
Got it solved.
timotimo good to hear :) 01:53
am i remembering right that you've been away from irc for a while?
DrForr Indeed. 01:54
timotimo well, welcome back, then! 01:55
DrForr Dank u wel. 02:01
timotimo i hope you have been well? 02:08
02:10 lizmat left
DrForr Well, I've been .. busy. 02:11
timotimo that's good, then 02:13
DrForr MOre recently in a good sense, beforehand ... not so good. 02:29
timotimo ;( 02:35
DrForr Stuff happens. But I'm in a better financial situation now and can actually enjoy myself a little. 02:38
timotimo that's good to hear at least 02:39
say, you're a bit of a mathy person, right?
DrForr A touch. 02:40
timotimo i'm building a little re-usable display for frame rate/timings for SDL2::Raw 02:41
it's supposed to be a rect where one pixel is colored each frame
i.e. the pixel that changes travels across the rectangle
DrForr Oo, frame rates...
timotimo now i'd like to map "time the frame took" to "color"
got anything good for that? :)
actually, i have the "time the frame took" and "time the frame is supposed to take to hit the framerate target" 02:43
DrForr Not especially... I'd want to get some good timings for the average.. Ah, that helps.
timotimo so it'd be kind of a "how much of your budget have you spent" display and a "how many times over have you blown the budget?" 02:44
DrForr Well, statistics isn't my strong suit, but one thing I'd say is that the standard deviation might be more useful than the straight percentage. 02:46
timotimo i think i want something really simple :) 02:47
DrForr Do you have lower and upper bounds? I.E. fastest frame and "wow, that really sucked?" 02:49
timotimo nope 02:53
if the user suspends to ram while the program is running, the frame time could go up to years
DrForr Very true...
I was just thinking that way the scale would be bounded... 02:54
timotimo but i think i'm fine clipping the values for now
OK, let's do the smoke test :) 02:56
DrForr So you have a value between the baseline and clipped, 02:57
100 * ( (v - baseline) / (clip - baseline) ) # percentage, lower values better. 03:00
timotimo hey that looks kind of like the Z buffer used in OpenGL :) 03:02
DrForr Perspective calculation, yes.
Time to nuke the current tmux session... 03:03
timotimo one of these days i need a NativeCall expert to help me with the frickin' SDL_LockTexture API :S 03:06
DrForr That would have been me at one time :) 03:07
timotimo if you want a go at it, it's a void **pixels, so you'll get a pointer back that has the pixel data at the end of it 03:08
DrForr Unfortunately no, but my new current project might end up going that route... 03:09
(perl6-Spreadsheet - I should check whether that's already been done too...)
'excel' and 'spread' didn't return any hits... 03:10
timotimo welllll
just the other day, something like that appeared!
github.com/Xliff/p6-GTKSheet
maybe not what you meant 03:11
DrForr GTK ... that might not be it. 03:12
MasterDuke i think someone in #perl6 just a couple days ago was wanting something like a perl6-Spreadsheet 03:13
DrForr That's not it...
(XLiff's...) 03:14
What I've got is mostly a plugin architecture so you can declare your writer and reader API... 03:16
timotimo who would like to explain to me why after some time i start putting black pixels into the texture ... 03:25
oh, i'm getting a null back 03:26
well, that's certainly fun
it's not related to the x/y, it also happens when i reset the position earlier ... the hell? :o 03:29
DrForr Rogue pointer?
timotimo oh no
it could be the jit 03:30
yeah, it is
dangit
DrForr That would make it not-quite-the-right-time? :/
timotimo aye
and i might be partially to blame :P
wanna see the thing in action, though? 03:31
DrForr Sure. 03:39
timotimo hold on 03:41
ok i've got a vidya file 03:43
hack.p6c.org/~timo/frame_rate_display.mp4 (i put in a little random sleep so it isn't all 100% green all the time) 03:44
DrForr Heh. I can snarf that...
timotimo what kind of snarf are we talking about here 03:45
DrForr Just copied it down...
timotimo ah
i think i'll make the point go zig zag and use the topmost line to "return" to the start 03:46
MasterDuke: ^- check out the video :) :)
MasterDuke nice 03:49
why does the moving pixel start out red?
DrForr Wowsers. 03:50
timotimo not entirely sure. perhaps there were a whole bunch of events stored up, or something else was slow the first time around
oh
actually, the video doesn't start when the program does
so that's not even in there i think?
i don't see the red pixel you're refering to 03:52
MasterDuke it persists for a couple frames, even after the black pixel starts moving 03:54
timotimo ah
*shruuuug*
it looks funny when turning off vsync 03:55
because it's way too fast
of course, the main render task is so trivial that it'd be sad if it didn't reach a high framerate 03:56
i should probably go to bed :) 03:57
i see now that it regularly has a red spot. i'd expect that to be major garbage collections happening 04:03
MasterDuke fun to actually see them 04:05
timotimo the "BREAKFAST" was an exercise in getting an image from the output of figlet into SDL as an image
with the current code, i think a bright red would be "the frame took exactly 1/60 of a second" 04:09
04:43 dct joined 04:53 dct left 06:32 nebuchadnezzar joined 07:48 lizmat joined 08:02 ufobat joined 08:38 Kaiepi left
lizmat Files=1267, Tests=88064, 405 wallclock secs (20.84 usr 6.48 sys + 2938.15 cusr 228.48 csys = 3193.95 CPU) 09:18
10:50 Kaiepi joined 12:33 lucasb joined
|Tux| Rakudo version 2018.12-311-gd6563816e - MoarVM version 2018.12-110-g04982f6e9
csv-ip5xs0.747 - 0.755
csv-ip5xs-206.125 - 6.146
csv-parser22.208 - 23.020
csv-test-xs-200.444 - 0.447
test7.675 - 7.737
test-t1.901 - 1.923
test-t --race0.858 - 0.867
test-t-2032.337 - 32.622
test-t-20 --race10.256 - 11.039
13:26
13:42 gugod left 13:58 gugod joined
AlexDaniel is under the weather 14:02
timotimo is adjacent to the weather 14:09
dogbert2_ it's an epidemic 14:30
timotimo i don't know how it does it, but it seems like the weather is everywhere 14:53
lizmat goes off to Köln 15:17
15:17 lizmat left 16:38 titsuki joined 16:50 llfourn left 16:51 llfourn joined
timotimo 430 words into the blog post i'm having second thoughts whether i should really be writing such a wordy explanation of an optimization phenomenon, or just gloss over the details since the post is really about the profiler frontend, not the internals ... 17:15
nine Turn it into it's own post and get 2 for the price of 1? 17:16
timotimo ha
i guess i could
that ought to allow me to actually go into detail properly, put some actual code examples up, maybe even paste some spesh logs for extra fun
17:17 awwaiid left
timotimo looking for a program that causes loads of scalar replacements 17:36
17:37 awwaiid joined
timotimo There were 56,923,690 object allocations. The dynamic optimizer was able to eliminate the need to allocate 30,165,891 additional objects (that's 34.64%) 17:41
that's a good one
oh, day-um! this one doesn't only scalar-replace Scalar objects, but also Num and even a few Hash ones!
hashes: in a "new" and a "BUILDALL" method 17:42
18:58 ufobat_ joined
timotimo wakelift.de/p/1a4b9bd1-bde8-4a34-8d...670f60c43/ - i'd appreciate proof-reading and general comments :) 18:59
19:02 ufobat left
timotimo wakelift.de/2019/02/21/always-wear...scalaring/ - published my latest grant report for moarperf 20:46
20:46 lizmat joined 20:48 Kaiepi left 20:58 lizmat left 21:01 lizmat joined 21:12 lizmat left
jnthn timotimo: "effected by deoptimization" should be affected 21:15
timotimo++ # nice post 21:16
The explanation text is nice 21:17
Though I suspect I'm not the target audience :) 21:18
timotimo damn, i was thinking if i should have used the a-version there 21:20
i had already written about 400 words when i noticed i was writing a full explanation of scalar replacement instead of a progress report; the text is still on my blog as a secret draft: wakelift.de/p/c3b0c03d-28b4-41ce-83...50a1d0843/ 21:21
21:32 lucasb left
timotimo the example needs a bit of change so it's actually compatible what happens in real-world rakudo 21:35
nine Trust jnthn++ to shatter my hope for working around a tricky issue :P 21:39
timotimo hmm? 21:40
nine But wait! On platforms our JIT dosn't support we don't have JITed native calls anyway. So actually, the 100 % JIT coverage suggestion is not completely out of the race
timotimo: github.com/rakudo/rakudo/issues/27...-466174058
timotimo i didn't see jnthn weigh in on that theory
ooh
it does seem like your explanation still makes a lot of sens 21:41
the problem is getting half-way to jit
i.e. believing we can jit, but then actually failing in the middle?
nine The thing is: I actually don't have an idea yet how else to fix it. I'd have to know in optimize_getarg whether we're gonna JIT compile or not
timotimo the "get jit coverage up to 100%" fix isn't feasible at the moment? 21:43
nine I actually don't know. How far away from 100 % are we? 21:44
timotimo i was hoping you would know :D
is this the "goto fail" in that function i added something to recently?
or somewhere else?
nine No, talking about plain normal lego JIT here 21:45
In my golfed code it came down to MVM_OP_getlexref_u* missing in the lego JIT
timotimo ooh, unsigneds, they are fun
looks like that's just a matter of putting one more "case" in a few places and extending a ternary in graph.c 21:46
nine yep, that was easily fixed 21:47
timotimo oh hey btw 21:48
how would you bind this function: SDL_LockTexture(SDL_Texture *tex, SDL_Rect *rect, void **pixdata, int *pitch) returns int 21:49
the problem is making the pixdata easy to write to
nine What exactly is pixdata?
timotimo right now i have "uint64 $pixdata is rw" 21:50
depends on the pixel format of the texture
but with uint8** you can't make much of a mistake
nine So why not CArray[uint8] $pixdata is rw? 21:51
timotimo i think when i tried it it didn't work
gimme a sec 21:52
also, CArray doesn't get the write-*int* functions yet, right?
nine A workaround I've used before rw worked is CArray[CArray[uint8]]
probably not
timotimo a sad omission, we should fix that :) 21:53
it compiles, and it doesn't crash, but i think that's one less level of indirection than i need, because it keeps writing black instead of color 21:57
oooh 21:58
no, not quite
not having much success 22:00
nine We should find out why CArray[uint8] is rw doesn't work and just fix that... 22:02
But first: sleep
timotimo good night, nine!
22:42 MasterDuke left 22:43 Kaiepi joined 23:57 Kaiepi left 23:59 lizmat joined