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| |
|
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
|