Perl 6 - the future is here, just unevenly distributed

IRC log for #moarvm, 2016-01-27

| Channels | #moarvm index | Today | | Search | Google Search | Plain-Text | summary

All times shown according to UTC.

Time Nick Message
00:44 vendethiel joined #moarvm
01:30 vendethiel joined #moarvm
02:26 vendethiel joined #moarvm
03:15 vendethiel joined #moarvm
03:26 colomon joined #moarvm
03:39 vendethiel joined #moarvm
04:03 vendethiel joined #moarvm
04:27 vendethiel joined #moarvm
05:18 vendethiel joined #moarvm
05:50 vendethiel joined #moarvm
06:23 vendethiel joined #moarvm
06:49 vendethiel joined #moarvm
06:59 domidumont joined #moarvm
07:04 domidumont joined #moarvm
07:28 FROGGS joined #moarvm
07:42 vendethiel joined #moarvm
07:54 zakharyas joined #moarvm
08:08 vendethiel joined #moarvm
08:11 Ven joined #moarvm
08:23 Hotkeys left #moarvm
08:34 vendethiel joined #moarvm
08:39 zakharyas joined #moarvm
09:00 vendethiel joined #moarvm
09:11 leont joined #moarvm
09:34 zakharyas joined #moarvm
09:36 brrt joined #moarvm
09:42 brrt hmm.. anybody got a good idea for presentation software?
09:42 brrt i tried to use libreoffice present.. and was dissapointed
09:44 jnthn powerpoint? :D
09:45 brrt hmmmm.... yeah
09:45 brrt i suppose
09:45 jnthn It can be used to do great evil :)
09:45 brrt that would mean i have to login a university computer over citrix, such a drag :-P
09:45 brrt although i did look at beamer and was not terribly happy
09:45 jnthn But can also be used fairly well :)
09:46 brrt yeah, i suppose
09:46 brrt do you use powerpoint ususally?
09:46 jnthn Yeah :)
09:46 brrt do you use comic sans? i know it is heresy, but i actually find comic sans to be more readable than otherfonts
09:47 jnthn No :P
09:47 jnthn Do you? :)
09:47 jnthn I heard it should only be used for really important things, like announcing discovery of sub-atomic particles and stuff.
09:47 brrt i thought about it but last time i decided against it due to not wanting to start a flamewar
09:48 brrt or at any cause distraction
09:48 brrt i think so too :-)
09:48 brrt *case
09:49 vendethiel joined #moarvm
10:08 arnsholt brrt: I'm a beamer user meself
10:09 arnsholt But LaTeX is more a question of problems I prefer over problems with Office, rather than objectively better
10:10 brrt i think most of the themes are really too cluttered?
10:10 brrt but ymmv
10:11 jnthn My Perl 6 intro course from SPW was done with Bemaer, fwiw
10:11 jnthn As was the Rakudo and NQP Internals course
10:11 jnthn Though in both cases markdown was used and translated by pandoc
10:11 brrt ah
10:11 brrt what is pandoc?
10:11 jnthn A program that translates between different document formats
10:12 jnthn In this case, markdown => latex
10:12 brrt aha....
10:12 brrt well.. ain't that something
10:12 brrt i have my slide outlines already in markdown as it happens :-)
10:12 jnthn Anyway, the Rakudo/NQP internals course has the build scripts we use
10:13 jnthn (in the repo)
10:13 arnsholt Oh, themes can be fixed though =)
10:13 brrt cool. thanks :-)
10:14 brrt well, the thing is, i don't care :-)
10:14 brrt or rather
10:14 arnsholt Yeah, fixing them can be a bit of a hassle
10:14 brrt fixing beamer themes or presentation software in general is very far down in the list of my life priorities :-)
10:15 arnsholt Yeah, definitely
10:16 arnsholt I've got a decent theme you can use, but it's super sparse, mind
10:18 brrt well, i kind of like sparse :-)
10:19 arnsholt This is an example: http://heim.ifi.uio.no/~arnskj/inf1820/v16/lec1_intro.pdf
10:19 arnsholt Text in Norwegian, though =)
10:21 brrt doesn't look too bad, although perhaps still a bit ornamentish for my preferences
10:22 arnsholt Then there's always the default beamer theme
10:23 arnsholt It's just text, IIRC
10:23 brrt fwiw, i recall changing the dynasm protocol to https because git:// was not supported as $thesis-institute
10:24 brrt (dynasm git url protocol)
10:24 brrt i am not of a mind to change that to support some lowest-common-denominator
10:25 brrt more to the point, all submodules use https:// as their checkout protocol
10:25 brrt if rakudobrew and others want to support other git protocols, i suggest that they edit the .gitmodules file  before running Configure.pl
10:28 virtualsue joined #moarvm
10:28 jnthn Editing the gitconfig after git submodules init is run may be more robust
10:32 brrt hmmm
10:32 brrt maybe
10:32 brrt i think it is rather fringe, really
10:32 brrt if you're not allowed to connect to https due to company policy... well...
10:34 brrt jnthn: thanks, i'm so going to reuse those tools :-)
10:38 jnthn :-)
10:43 vendethiel joined #moarvm
11:03 timotimo brrt: you know, libreoffice present has something pretty darn cool that i haven't seen in other programs yet ... at least not FOSS ones
11:03 timotimo which is a presenter tool for smart phones that connects via bluetooth and gives you a preview of the next slide or your notes on your smartphone and also a handy "laser pointer" tool for your fingertip
11:03 timotimo on the other hand, presenting slides with "impressive" (yes, terrible name to search for) is very neat
11:03 jnthn ooh :)
11:05 timotimo and there's always that javascript thingie that people tend to use nowadays
11:05 vendethiel joined #moarvm
11:05 timotimo reveal.js maybe?
11:05 timotimo http://lab.hakim.se/reveal-js/#/ - that's the one i was thinking about
11:06 timotimo looks like it's very suited for the "few as-big-as-possible words on screen" type of presentation. which yours probably isn't :)
11:06 timotimo arnsholt: your presentation talks about "Faget"s? o_O
11:07 jnthn Faget about it...
11:09 virtualsue joined #moarvm
11:36 arnsholt timotimo: course-DET.N.SG =)
11:36 timotimo the what now?
11:37 Ven joined #moarvm
11:39 brrt timotimo: i didnt know about that
11:39 brrt how does that work
11:39 timotimo which exactly? reveal.js?
11:40 brrt the libreoffice present bit
11:40 timotimo oh
11:40 brrt also reveal.js
11:40 brrt but it requires a web browser i presume?
11:40 timotimo i've only used the presenter thingie once before and that was like 2 years ago
11:40 timotimo yes, a browser
11:41 brrt hmmm
11:41 brrt i'm all for the minimum-work-possible fwiw
11:41 brrt :-)
11:42 timotimo you know how thinkpads still come with VGA ports?
11:42 timotimo how is it, then, that lenovo smartphones don't?
11:42 timotimo just something to think about
11:43 arnsholt timotimo: "the course" a single word, inflected for definite singular
11:43 timotimo oh
11:43 timotimo that's what "faget" means?
11:44 jnthn Yeah, Scandinavian languages seem to inflect the definite article (while leaving the indefintie one in the "normal" place :))
11:44 brrt lol
11:44 brrt (the VGA ports bit)
11:48 timotimo wouldn't that be cool, though? :P
11:49 timotimo the whole "use your phone as a workstation if need be" idea was kinda cool, but nothing really did it well yet, as far as i can tell
11:49 timotimo there's tablets with covers that double as keyboards. those seem to do okay
11:49 timotimo but phones? no, not yet
11:50 brrt hmmm
11:51 brrt my guess is that bluetooth is to energy-consuming / low-bandwidth to serve for display purposes
11:51 timotimo yeah, you'd rather use wifi-direct for that
11:51 timotimo which is what miracast and WiDi are
11:51 brrt and that displayed-workspace is the limiting factor for phone-as-workspace
11:52 timotimo and of course there's microusb-to-hdmi adapters
11:52 brrt anyway, when you do that, you're going to run into the 2000mAh limit quite fast
11:52 timotimo ideally with a few extra ports for extra peripherals beyond mouse and keyboard
11:52 timotimo right. but if you're already setting your phone up as the center of a display + a mouse and keyboard, you're kind of likely to have a wall socket nearby
11:53 timotimo i hope :)
11:53 brrt i dunno if usb-c uses considerably less energy than bluetooth. moreover it will end with a): people having to carry another dongle to connect all of them, b): your phone's battery will have to power the whole thing
11:53 brrt well, if we're going that way, why not just a chromecast-sized stick that you plug into a monitor / tv-with-hdmi
11:54 brrt i'd carry that
11:54 brrt for my regular office-ish tasks
11:54 timotimo hehehe
11:54 timotimo well, hmdi + USB usually
11:55 timotimo usb for power
11:55 timotimo i don't think HDMI has power at all?
11:55 timotimo beyond what's in there by accident/neccessity
11:58 brrt aye... rather a missed opportunity imho
11:59 timotimo usb-3c supposedly can do display-y stuff just fine
11:59 timotimo i wouldn't mind being able to connect everything and their dog with usb-3c in the future
12:00 * jnthn lols at the result of googling "usb dog"
12:01 timotimo oh, the little humping dog? :D
12:02 jnthn yes :)
12:05 zakharyas joined #moarvm
12:12 FROGGS *g*
12:16 vendethiel joined #moarvm
12:36 timotimo thet weet i sent out about lenovo smartphones with vga ports is seeing some approval from my internet friends on twitter %)
13:05 vendethiel joined #moarvm
13:41 Ven joined #moarvm
13:51 vendethiel joined #moarvm
14:27 flaviusb joined #moarvm
14:49 vendethiel joined #moarvm
15:29 vendethiel joined #moarvm
16:39 vendethiel joined #moarvm
16:42 domidumont joined #moarvm
17:33 vendethiel joined #moarvm
18:09 Ven joined #moarvm
18:09 Hotkeys joined #moarvm
18:49 vendethiel joined #moarvm
18:55 FROGGS joined #moarvm
19:04 zakharyas joined #moarvm
20:03 timotimo so, just debugspam in MVM_malloc gives a surprising amount of allocations of 8 bytes for the fixedsizealloc
20:04 jnthn o.O
20:04 timotimo that's the result of sizeof(void *) * al->size_classes[bin].num_pages
20:05 timotimo i'm just logging backtraces for all mallocs smaller than 32bytes
20:06 jnthn Aha
20:08 timotimo and line before that is num_pages = 1
20:08 timotimo so, no surprise there
20:08 jnthn It should only be one per size class though?
20:12 timotimo aye, but i see surprisingly many of those. i don't have a scientific base fo rthat feeling, though
20:21 timotimo the most annoying thing, of course, is that gdb forces me to use a pager for output
20:21 timotimo i must be able to redirect this to a file for analysis or so
20:22 geekosaur can't you run valgrind/memcheck in a verbose mode?
20:23 geekosaur hm, guess that makes it harder to do the "smaller than 32 bytes" part
20:23 geekosaur maybe "script" is your friend
20:24 dalek joined #moarvm
20:34 timotimo i just breakpointed MVM_malloc with gdb
20:48 timotimo a very big amount comes - unsurprisingly - from decoding latin1 strings
20:53 timotimo deserialize_repr_data for p6opaque often makes extremely small allocs, not quite surprisingly
21:00 timotimo deserialize_object also does a metric shit-ton of allocations of 24 bytes
21:00 jnthn Which one?
21:00 jnthn If you have a decent report on where they come from I'd be interested :)
21:07 timotimo i'm hoping gdb is actually outputting this to a file, as i told it to
21:07 timotimo then i'd be able to post-process somehow
21:10 timotimo the pager is seriously atrocious
21:16 timotimo AARRRGGGHHH
21:16 timotimo 1) i forgot to "set logging on"
21:16 timotimo 2) i still get the pager's prompts to "press return to continue"
21:16 timotimo and i have to return through the whole f'ing output
21:17 timotimo (none of which i get to see)
21:18 timotimo but at least the pager prompts don't end up in the file (hopefully)
21:18 timotimo No: GDB doesn't call into external program to display the output, it simply pauses the output every screenfull (and you can make it not pause by set height 0).
21:18 timotimo <3
21:39 timotimo of course it refused to actually write the file
21:39 timotimo it seems like
21:47 Ven joined #moarvm
22:04 timotimo this time i seem to have made it work
22:04 timotimo http://t.h8.lv/all_small_mallocs.txt.gz
22:04 timotimo if you want to have a look
22:05 timotimo it's only "bt 3", though. dunno if that sometimes causes problems
22:09 timotimo i have no good idea how to analyze this
22:09 timotimo i could just sum up 32 - $size or something
22:24 timotimo 1068663
22:25 timotimo 81672
22:25 timotimo that's 1) the sum of 32 - $foo for all size lines
22:25 timotimo and 2) the number of allocations counted
22:26 timotimo 64M is the amount of maxrss this thing occupies
22:26 timotimo there's apparently only 1 megabyte of wastage from these mallocs alone
22:26 timotimo however, there's also 16 bytes for every allocation, i think
22:28 timotimo m: (1068663 + 81672 * 16) / (64996 * 1024)
22:28 camelia rakudo-moar 86a90b: OUTPUT«WARNINGS for /tmp/yDouXgJByP:␤Useless use of "/" in expression "(1068663 + 81672 * 16) / (64996 * 1024)" in sink context (line 1)␤»
22:28 timotimo m: say (1068663 + 81672 * 16) / (64996 * 1024)
22:28 camelia rakudo-moar 86a90b: OUTPUT«0.035690523␤»
22:28 timotimo 3.5% even when adding the 16 byte big headers that i seem to recall from somewhere
22:29 timotimo probably extremely sloppily measured, too.
22:31 timotimo the analysis script is faster than 1 megabyte per second
22:31 timotimo so that's something
22:35 timotimo now for a little histogram of all mallocs
22:35 hoelzro sloppy makes for a good start =)
22:36 timotimo 47742 alloc: 24
22:36 timotimo 15229 alloc: 288
22:36 timotimo 12515 alloc: 48
22:36 timotimo 10339 alloc: 104
22:36 timotimo 9334 alloc: 8
22:36 timotimo 8276 alloc: 16
22:36 timotimo 8043 alloc: 56
22:36 timotimo 5977 alloc: 72
22:36 timotimo 5250 alloc: 32
22:36 timotimo 3759 alloc: 100
22:36 timotimo 3674 alloc: 2
22:36 hoelzro that 47k of 24s - that's the deserialize code, I take it?
22:37 timotimo i think so, yes
22:37 hoelzro it would be cool if you could group them by REPR
22:37 timotimo now i'd love to know how much ram in total is nommed by NFAs having the list + the nfa object itself in the serialized blob
22:38 hoelzro is this the kind of thing that integrating valgrind can tell you?
22:38 timotimo i don't think so
22:38 hoelzro it would be great if we had this tooling enabled with certain build flags, so we don't have to build it over and over again
22:38 timotimo i can't identify those perfectly
22:39 timotimo like, these arrays don't say "i belong to an NFA", except that they get deserialized temporally close by a NFA object
22:39 hoelzro ahhh
22:40 timotimo also, this is only malloc, not free.
22:40 timotimo i don't track that at all in my measurements yet
22:40 hoelzro if you had a backtrace of where every malloc was called, could you use that to determine whether it's an NFA array?
22:41 timotimo no
22:41 timotimo the backtrace is currently C-level
22:41 hoelzro ahhhh
22:41 hoelzro I...C what you mean
22:41 timotimo i'm not sure a moarvm-bytecode-level stacktrace would be better, actually
22:42 hoelzro </sunglasses>
22:42 timotimo hah
22:42 timotimo do you want to take this idea and run with it?
22:42 timotimo is the day just starting on your end of the globe?
22:43 hoelzro my work day is ending =)
22:43 timotimo oh
22:43 timotimo even better! :)
22:43 hoelzro sadly, I have a lot of coursera work to catch up on tonight =/
22:43 timotimo my sleep-day is coming up
22:43 timotimo ah, okay
22:43 hoelzro heh, really? I feel like you often go to sleep around the time I do =P
22:43 timotimo sometimes. but not always
22:44 hoelzro timotimo: you wanna push your stuff up to a branch, in case I get bored with coursera? =P
22:44 timotimo i don't have "stuff" yet ;)
22:44 timotimo this last bit was literally
22:44 timotimo full-speed
22:44 hoelzro I told myself I would work on fixing rakudo-j, or on my RT canary script
22:44 timotimo er
22:44 timotimo fprintf(stderr, "alloc: %d\n", size);
22:44 timotimo in src/core/alloc.h
22:45 timotimo and then 2> all_mallocs_ever.txt and then cat | sort | uniq -c | sort -n
22:45 hoelzro nice
22:45 timotimo the other thing was starting it in gdb, and then:
22:45 timotimo break MVM_malloc if (size < 32)
22:45 timotimo commands
22:45 timotimo print size
22:45 timotimo bt 3
22:45 timotimo c
22:45 timotimo end
22:45 timotimo set height 0
22:45 timotimo set logging (lots of stuff)
22:45 timotimo AND GO!
22:46 timotimo perl6 -ne 'state $foo; state $bar; next unless $_.starts-with("\$"); $foo += $_.split(" ")[2]; $bar++; END { say $foo; say $bar }' all_small_mallocs.txt
22:46 timotimo that works against the .txt i put up on my web host, see above
22:46 hoelzro ah ha
22:46 hoelzro so how does that gdb bit differ from your fprintf in alloc.h?
22:47 hoelzro oh man, I just thought of a great title for a blog post about this
22:47 hoelzro Alloc in Wonderland
22:47 geekosaur Wanderland...
22:48 geekosaur ("not all those who wander are lost --- unless they leak")
22:49 hoelzro hahah
22:52 timotimo oh lord %)
22:59 timotimo you got a nice idea for how to go on?
23:00 timotimo i mean, of course you could use my "nfatostatelist" branch of moarvm and make nqp happy about it? :)
23:01 hoelzro heh
23:01 hoelzro I could probably figure it out
23:01 timotimo cool!
23:01 hoelzro we'll see if I get a round tuit tonight
23:01 timotimo the difficult part is when exactly to throw out @!states
23:01 timotimo and when to restore it
23:01 timotimo so that it doesn't end up in the serialized blob
23:02 hoelzro ah ha
23:02 timotimo you'll definitely be getting conflicts in moarvm, because it adds another op, but those are easy to fix, as most conflicting files are generated from the oplist anyway with tools/generate_ops
23:03 hoelzro mhmm
23:03 timotimo there's potentially already a branch in nqp, too, that'd add the op to the compiler and maybe even add it to NFA.nqp
23:03 hoelzro potentially? =S
23:04 timotimo no clue if i found it sufficiently progressed to have pushed it
23:04 timotimo i spent the majority of time on nfatostatelist, then ran against nqp and immediately stopped
23:04 timotimo i tend to do that kind of crap ;(
23:04 hoelzro if I get around to MVM work tonight, it will more like be your alloc log stuff, since that's easier to figure out =)
23:05 timotimo damn
23:06 vendethiel joined #moarvm
23:16 pyrimidine joined #moarvm
23:20 timotimo well, in any case, do make sure to report :)
23:32 hoelzro will do!
23:49 vendethiel joined #moarvm

| Channels | #moarvm index | Today | | Search | Google Search | Plain-Text | summary