Perl 6 - the future is here, just unevenly distributed

IRC log for #moarvm, 2017-03-22

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

All times shown according to UTC.

Time Nick Message
00:07 samcv hmm timotimo split on the \ for what reason
00:08 samcv or split on the \r\n's?
00:08 timotimo json has many escape sequences
00:09 samcv yes
00:09 timotimo if i split on \ i get the pieces that will be of interest, and each string after the first will let me just inspect its first character to see what i have to join it with
00:09 samcv it could be a lot of segments
00:09 timotimo it'd be a bit awkward to do the rest of the parsing, though if i just make the $target "is rw", too, and keep a "original-pos" parameter for error reporting ...
00:10 samcv m: "\t".uniprop('NFG_QC').say
00:10 camelia rakudo-moar 28acf0: OUTPUT: «N␤»
00:10 samcv m: "a".uniprop('NFG_QC').say
00:10 camelia rakudo-moar 28acf0: OUTPUT: «Y␤»
00:10 samcv hmm
00:10 samcv ok i might be able to improve this
00:10 samcv in nfg_is_concat_stable
00:13 timotimo cool
00:13 timotimo but \t isn't very common in the json we have, i don't think
00:13 samcv yeah. but it could be very very common in some
00:15 timotimo of course
00:15 timotimo anything to make more concats stable (or rather make the stability easily and quickly assessible)
00:26 pyrimidine joined #moarvm
00:29 MasterDuke timotimo: did you figure out if J::F is doing the "correct" number of joins? is it doing more than it needs to?
00:31 samcv i think i might have solved it. we'll see. haven't tested yet
00:43 timotimo i didn't check that
00:43 timotimo cool
00:43 timotimo i'm not sure if we have a whole bunch of concat-with-combiners tests?
00:45 samcv yeah it's undertested if at all
00:45 samcv i mean some, but need way more since there's so many different factors…
00:45 samcv in normalization and blah blah
00:46 timotimo mhm
00:47 MasterDuke timotimo: btw, had you seen bloaty mcbloatface before? seems like something you could make use of
00:53 timotimo i've seen it, yeah
00:53 timotimo it's mostly interesting for our unicode database
00:53 timotimo other pieces of data we have include our repr structs maybe
00:53 timotimo those are tiny, though
00:53 MasterDuke ah, cool
00:53 timotimo we can definitely run it on libmoar.so of course
00:55 samcv eek MVM_unicode_codepoint_get_property_cstr strikes again
00:55 samcv in passes_quickcheck_and_zero_ccc. can speed that up by using int
00:56 timotimo nice
00:56 MasterDuke timotimo: re MVMNativeRefREPRData, what's involved in adding a field/flag to it? just changing the struct def in src/6model/reprs/NativeRef.h?
00:56 timotimo that's enough, yeah
00:56 samcv ok i reduced it from 3.14s to 1.89s
00:56 samcv \o/
00:56 timotimo what benchmark is that?
00:56 samcv uh that json file
00:57 timotimo what exact part?
00:57 samcv time perl6 -e 'use JSON::Fast; my $j = "mem_leak2.json".IO.slurp; for ^1 { $ = from-json $j;} '
00:57 timotimo is mem_leak2.json smaller than the original one?
00:57 timotimo does it only have that long string in it?
00:57 samcv it's basically the same
00:57 samcv but missing a few controls
00:58 timotimo huh, okay
00:58 samcv but MasterDuke said there was 0 difference between them
00:58 MasterDuke samcv: any change in memory used?
00:58 samcv yeah same time for the original one
00:58 samcv haven't checked
00:58 timotimo ugh, i don't have the gist open any more
00:58 samcv but i'm sure
00:59 samcv what's the easiest way to see max memory usage
00:59 timotimo just run it w/ time
00:59 MasterDuke /usr/bin/time
00:59 samcv how does that get me momory
00:59 MasterDuke just `time` is usually a shell builtin
00:59 samcv yeah
01:00 samcv i don't get memory stats from time
01:00 timotimo right sorry
01:00 MasterDuke have to install time from extra
01:00 samcv not on bash either
01:00 samcv cool
01:00 timotimo fish just gives you the right kind of time stuff by default
01:01 samcv 1.94user 0.52system 0:02.47elapsed 99%CPU (0avgtext+0avgdata 2183472maxresident)k
01:01 samcv 0inputs+0outputs (0major+540131minor)pagefaults 0swaps
01:01 samcv what am i looking at. maxresident?
01:02 MasterDuke yeah, i was getting 2180912maxresident before
01:02 samcv ok from 2621932K to 2183472k
01:02 samcv and even bigger time difference
01:10 pyrimidine joined #moarvm
01:16 samcv i'm putting all my notes for unicode here https://github.com/MoarVM/MoarVM/projects/1
01:16 samcv so i can make sure i have it all down in one place that other people can see as well.
01:19 timotimo i saw
01:20 timotimo maybe i want to build such a project thing, too
01:20 samcv :)
01:20 timotimo for example for the line-based profiler
01:20 samcv sounds like a good plan
01:21 samcv looks like you can even convert them to issues as well
01:23 ggoebel joined #moarvm
01:23 timotimo i noticed
01:23 samcv i just discovered that now
01:23 timotimo i'm surprised trello isn't mad at them for stealign their thing
01:29 samcv just gotta spectest the concat optimizations
01:37 pyrimidine joined #moarvm
01:46 samcv ok well spectest is pass timotimo
01:46 samcv json_fast fails test tho
01:48 samcv nvm it fails them on master too
01:49 samcv wtf
01:49 samcv were they already failing though?
01:51 samcv both fail same number of tests. timotimo
01:51 samcv i mean with and without change. and even reverting before MasterDuke's changes
01:51 timotimo what test is failing?
01:52 samcv t/05-unreasonable-requirements.t and 06-control
01:52 samcv only those
01:53 timotimo oh?
01:53 samcv yep
01:53 timotimo let me check
01:54 timotimo o
01:54 timotimo are you making sure to -Ilib?
01:55 timotimo both pass for me
02:00 samcv oh. yeah that prolly
02:02 samcv how do i ilib timotimo
02:06 MasterDuke `perl6 -I lib t/05-unreasonable-requirements.t`
02:08 samcv k
02:08 samcv nope still failing
02:08 samcv i did prove -e perl6 -I lib
02:09 samcv ok running it manually is fine tho
02:17 timotimo weird.
02:17 timotimo i don't think that's going to work what you did there
02:17 timotimo it'll be parsed as -e perl6 -I lib
02:17 timotimo rather than -e "perl6 -I lib"
02:18 timotimo -l,  --lib             Add 'lib' to the path for your tests (-Ilib).
02:18 timotimo though that would have worked
02:18 timotimo huh, prove can also handle -I apparently
02:21 MasterDuke `prove -e perl6 -I lib` fails 05 and 06 for me, but `prove -e "perl6 -I lib"` passes them all
02:22 timotimo well, prove doesn't give it a -I
02:23 timotimo it also doesn't put anything in the environment
02:23 timotimo so ... ?!?!
02:24 timotimo prove introduces a separation between "options passed to the perl which runs prove" and "options passed to the perl which runs tests"; this distinction is by design. Thus the perl which is running a test starts with the default @INC. Additional library directories can be added via the PERL5LIB environment variable, via -Ifoo in PERL5OPT or via the -Ilib option to prove.
02:25 timotimo ^- this doesn't tell me whether -Ifoo will change what the prove process is using or what the called process is running
02:28 timotimo don't want to go on a deep dive through the guts of prove to find out if -l or -Ilib should have worked
02:48 ilbot3 joined #moarvm
02:48 Topic for #moarvm is now https://github.com/moarvm/moarvm | IRC logs at  http://irclog.perlgeek.de/moarvm/today
04:13 samcv timotimo, ok so my changes appear to work fine for at least simple examples and spectest pass
04:13 samcv like concatting things that change under NFC for example like letter + diacritic. and \r\n is fine
04:13 samcv so i think it's good
04:52 Geth ¦ MoarVM: samcv++ created pull request #558: Optimize MVM_nfg_is_concat_stable to speed up concatenation of strings
04:52 Geth ¦ MoarVM: review: https://github.com/MoarVM/MoarVM/pull/558
04:54 samcv should be ready for merge. was thinking about being more agressive with the optimization for \r and \n and not forcing normalization if the other character is 'unspecial'. but for now that is good
06:32 brrt joined #moarvm
07:06 domidumont joined #moarvm
07:12 domidumont joined #moarvm
07:20 Geth ¦ MoarVM: 477e023bd8 | (Samantha McVey)++ | src/strings/nfg.c
07:20 Geth ¦ MoarVM: Optimize MVM_nfg_is_concat_stable to speed up concatenation of strings
07:20 Geth ¦ MoarVM:
07:20 Geth ¦ MoarVM: Here we special case '\r' ~ '\n' to ensure it will be normalized, since
07:20 Geth ¦ MoarVM: it is a common possible case.
07:20 Geth ¦ MoarVM:
07:20 Geth ¦ MoarVM: All other characters that have Grapheme_Cluster_Break=Control will
07:20 Geth ¦ MoarVM: always break and do not change under normalization.
07:20 Geth ¦ MoarVM: <…commit message has 6 more lines…>
07:20 Geth ¦ MoarVM: review: https://github.com/MoarVM/MoarVM/commit/477e023bd8
07:20 Geth ¦ MoarVM: 029d121826 | (Samantha McVey)++ | src/strings/nfg.c
07:20 Geth ¦ MoarVM: Merge pull request #558 from samcv/nfg
07:20 Geth ¦ MoarVM:
07:20 Geth ¦ MoarVM: Optimize MVM_nfg_is_concat_stable to speed up concatenation of strings
07:20 Geth ¦ MoarVM: review: https://github.com/MoarVM/MoarVM/commit/029d121826
07:37 travis-ci joined #moarvm
07:37 travis-ci MoarVM build errored. Samantha McVey 'Merge pull request #558 from samcv/nfg
07:37 travis-ci https://travis-ci.org/MoarVM/MoarVM/builds/213726983 https://github.com/MoarVM/MoarVM/compare/cac2a57c045f...029d12182633
07:37 travis-ci left #moarvm
07:37 samcv how
07:38 samcv it timed out. restarted the build
07:42 brrt joined #moarvm
07:43 domidumont joined #moarvm
08:29 Geth ¦ MoarVM/even-moar-jit: 4f4c5f2768 | (Bart Wiegmans)++ | 3 files
08:29 Geth ¦ MoarVM/even-moar-jit: Use macro's to extract tile inserters
08:29 Geth ¦ MoarVM/even-moar-jit:
08:29 Geth ¦ MoarVM/even-moar-jit: It's no good to pass half the state of your function to a callee if you
08:29 Geth ¦ MoarVM/even-moar-jit: can do the same within your own scope (and shorter, too).
08:29 Geth ¦ MoarVM/even-moar-jit: review: https://github.com/MoarVM/MoarVM/commit/4f4c5f2768
08:29 Geth ¦ MoarVM/even-moar-jit: dafb674f7b | (Bart Wiegmans)++ | 4 files
08:29 Geth ¦ MoarVM/even-moar-jit: Improve prepare_arglist_and_call toposort
08:29 Geth ¦ MoarVM/even-moar-jit:
08:29 Geth ¦ MoarVM/even-moar-jit: Adding and removing edges is now much more explicit (spills and
08:29 Geth ¦ MoarVM/even-moar-jit: arglist/call conflicts are now counted as outbound edges); renamed the
08:29 Geth ¦ MoarVM/even-moar-jit: variables to make the underlying concept more clear.
08:29 Geth ¦ MoarVM/even-moar-jit: review: https://github.com/MoarVM/MoarVM/commit/dafb674f7b
08:50 brrt after i've split ARGLIST and CALL tiles again (which is more or less a simple translation), this should hopefully be correctish
08:52 samcv o/ brrt
08:53 brrt \o samcv
09:07 zakharyas joined #moarvm
09:36 lizmat .tell jnthn I left some comments with https://gist.github.com/lizmat/b76e88519b74667c8433190941bb6e6a
09:36 yoleaux2 lizmat: I'll pass your message to jnthn.
09:51 brrt \o lizmat
09:52 lizmat brrt /o
09:53 samcv i think i'm going to bed. night all :)
09:53 brrt sleep well
09:53 lizmat nighty night, samcv!
09:54 lizmat good work!
09:58 brrt lizmat: it almost looks like you're writing in lisp there
09:58 lizmat ah?
10:01 brrt nqp::while(nqp::islt_i(), nqp::if(…) etc
10:01 brrt that'd be spelled (while (is_lt ..) )
10:01 brrt in lisp :-)
10:01 lizmat ah, in that sense  :-)
10:02 lizmat yes, there are some visual similarities  :-)
10:06 brrt it is horribly complex to read, though.....
10:46 Geth joined #moarvm
10:46 yoleaux2 joined #moarvm
11:18 lizmat .tell jnthn a new gist: https://gist.github.com/lizmat/1c80d2210aeb4239810d7818fca7e575
11:18 yoleaux2 lizmat: I'll pass your message to jnthn.
11:19 lizmat .tell jnthn this version created R:It.(Hyper|Race)Actions iterators, that take a list of method => capture pairs to execute: so no special casing needed anymore
11:19 yoleaux2 lizmat: I'll pass your message to jnthn.
11:21 lizmat .tell jnthn from where I sit, we only need to fix the syntactic sugar for transforming .hyper.map(foo).grep(bar) to R:It.HyperActions( , (map => \(foo), grep => \(bar) )
11:21 yoleaux2 lizmat: I'll pass your message to jnthn.
11:39 * lizmat moved/adapted comments to new gist and removed the old gist
12:37 domidumont joined #moarvm
12:46 domidumont1 joined #moarvm
14:47 domidumont joined #moarvm
15:27 brrt lizmat: re your comments below, the big thing with concurrent software is always, what happens when a process dies
15:28 lizmat you mean when a worker has an exception ?
15:28 brrt uhuh
15:28 brrt or waits forever
15:29 lizmat then it will wait forever
15:30 lizmat unless you have a promise waiting somewhere that will provide relief
15:30 brrt true….
15:31 brrt my head just says 'condition variable' when you write 'count how many IterationEnd we should get'… but I guess if you have monitor semantics anyway, it's not going to be a problem
15:33 lizmat I'm trying to avoid using explicit condition variables
15:34 lizmat using the ConcBlockingQueue repr for that, basically
15:36 brrt indeed
15:37 brrt so probably… if any one of the proceses dies, the whole thing should be killed?
15:37 timotimo how about letting the developer catch that case?
15:38 lizmat if your .map has a CATCH, you could  :-)
15:38 lizmat brb
15:38 brrt i'm smelling danger
15:38 brrt (i'm heading to $commute)
15:39 timotimo doesn't it have to be outside the map?
16:04 brrt joined #moarvm
16:14 ZofBot joined #moarvm
16:18 SourceBaby joined #moarvm
16:39 brrt omg omg omg
16:39 brrt it works :-o
16:40 jnthn The JIT? :)
16:40 jnthn Calls?
16:40 jnthn :)
16:41 ZofBot joined #moarvm
16:43 brrt yes
16:44 brrt c function calls
16:44 brrt can't say i've properly tested every bit of it
16:44 brrt because i haven't
16:44 brrt but
16:44 brrt call ordering and spilling and restoring works
16:44 jnthn :-)
16:45 jnthn That's a rather important piece :)
16:47 Zoffix_ joined #moarvm
16:47 brrt yeah
16:50 Geth ¦ MoarVM/even-moar-jit: ef816962b9 | (Bart Wiegmans)++ | 3 files
16:50 Geth ¦ MoarVM/even-moar-jit: Split ARGLIST and CALL tiles
16:50 Geth ¦ MoarVM/even-moar-jit:
16:50 Geth ¦ MoarVM/even-moar-jit: This makes the very simple 'say' function call work as expected. Note
16:50 Geth ¦ MoarVM/even-moar-jit: that not all functions of the prepare_arglist_and_call are completely
16:50 Geth ¦ MoarVM/even-moar-jit: tested as of yet (that's only possible with more complex calls). Basic
16:50 Geth ¦ MoarVM/even-moar-jit: parameter ordering and spilling/restoring works.
16:50 Geth ¦ MoarVM/even-moar-jit: review: https://github.com/MoarVM/MoarVM/commit/ef816962b9
16:50 brrt i think… with that done, it's time for me to start working on a blog post again
16:51 jnthn :)
16:51 jnthn brrt++
16:52 brrt oh and there's another thing i need to resolve, which is generalised two-arg resolution
16:59 domidumont joined #moarvm
17:41 domidumont joined #moarvm
17:53 synopsebot6 joined #moarvm
17:55 lizmat joined #moarvm
17:56 timotimo yaaaay
20:41 Geth ¦ MoarVM: dc974a7353 | (Samantha McVey)++ | .travis.yml
20:41 Geth ¦ MoarVM: [Travis CI] Add travis_retry to apt-get lines to retry package dl probs.
20:41 Geth ¦ MoarVM: review: https://github.com/MoarVM/MoarVM/commit/dc974a7353
20:41 Geth ¦ MoarVM: samcv++ created pull request #559: Optimize passes_quickcheck_and_zero_ccc to be much faster
20:41 Geth ¦ MoarVM: review: https://github.com/MoarVM/MoarVM/pull/559
20:43 samcv mmm tea
20:45 spebern joined #moarvm
20:46 travis-ci joined #moarvm
20:46 travis-ci MoarVM build errored. Samantha McVey '[Travis CI] Add travis_retry to apt-get lines to retry package dl probs.'
20:46 travis-ci https://travis-ci.org/MoarVM/MoarVM/builds/213998643 https://github.com/MoarVM/MoarVM/compare/029d12182633...dc974a735349
20:46 travis-ci left #moarvm
20:52 Geth ¦ MoarVM: a2367a2097 | (Samantha McVey)++ | .travis.yml
20:52 Geth ¦ MoarVM: [Travis CI] Don't use travis_retry and instead just use ||
20:52 Geth ¦ MoarVM: review: https://github.com/MoarVM/MoarVM/commit/a2367a2097
21:02 samcv weird got `/usr/bin/ld: src/core/coerce.o: relocation R_X86_64_PC32 against undefined symbol `fast_atoi' can not be used when making a shared object; recompile with -fPIC`
21:02 samcv gonna try make clean
21:03 timotimo hm, we don't -fPIC by default?
21:04 timotimo it's definitely in my makefile
21:04 samcv we do.
21:05 * timotimo builds bloaty
21:06 timotimo um, apparently i already have bloaty
21:06 timotimo somewhere on my machine
21:08 timotimo found it
21:11 timotimo when broken down by compileunit, the vast majority of size is in "[None]"
21:13 samcv ok i think i fixed it
21:28 Geth ¦ MoarVM: 907cbc7722 | (Timo Paulssen)++ | 44 files
21:28 Geth ¦ MoarVM: give this_repr consts more meaningful names
21:28 Geth ¦ MoarVM:
21:28 Geth ¦ MoarVM: they show up when you print an object in gdb, for example
21:28 Geth ¦ MoarVM: review: https://github.com/MoarVM/MoarVM/commit/907cbc7722
21:32 Geth ¦ MoarVM: f12a2b5351 | (Daniel Green)++ | src/strings/ops.c
21:32 Geth ¦ MoarVM: Use correct format for repeat/concat errors
21:32 Geth ¦ MoarVM: review: https://github.com/MoarVM/MoarVM/commit/f12a2b5351
21:32 Geth ¦ MoarVM: 61f02f81c7 | (Jonathan Worthington)++ | src/strings/ops.c
21:32 Geth ¦ MoarVM: Merge pull request #555 from MasterDuke17/master
21:32 Geth ¦ MoarVM:
21:32 Geth ¦ MoarVM: Use correct format for repeat/concat errors
21:32 Geth ¦ MoarVM: review: https://github.com/MoarVM/MoarVM/commit/61f02f81c7
21:53 Geth ¦ MoarVM: ddc97f1075 | (Samantha McVey)++ | src/strings/nfg.c
21:53 Geth ¦ MoarVM: Optimize passes_quickcheck_and_zero_ccc to be much faster
21:53 Geth ¦ MoarVM:
21:53 Geth ¦ MoarVM: Use MVM_unicode_codepoint_get_property_int instead of
21:53 Geth ¦ MoarVM: MVM_unicode_codepoint_get_property_cstr and simplify it as well.
21:54 Geth ¦ MoarVM: review: https://github.com/MoarVM/MoarVM/commit/ddc97f1075
21:54 Geth ¦ MoarVM: d866829cac | timo++ | src/strings/nfg.c
21:54 Geth ¦ MoarVM: Merge pull request #559 from samcv/nfg_2
21:54 timotimo i took the liberty
21:54 Geth ¦ MoarVM:
21:54 Geth ¦ MoarVM: Optimize passes_quickcheck_and_zero_ccc to be much faster
21:54 Geth ¦ MoarVM: review: https://github.com/MoarVM/MoarVM/commit/d866829cac
21:58 samcv thx timotimo
21:58 Geth ¦ MoarVM: 1e2a7b90cd | (Samantha McVey)++ | 4 files
21:58 Geth ¦ MoarVM: Streamline MVM_bigint_radix and MVM_radix for Nd Unicode #'s
21:58 Geth ¦ MoarVM:
21:58 Geth ¦ MoarVM: We can use the fast_atoi function in addition by switching to
21:58 Geth ¦ MoarVM: using Numeric_Value_Numerator instead of Numeric_Value (which may have decimal
21:58 Geth ¦ MoarVM: places). This is because all Nd numbers are 0-9 and thus all have
21:58 Geth ¦ MoarVM: a denominator of 1.
21:58 Geth ¦ MoarVM: review: https://github.com/MoarVM/MoarVM/commit/1e2a7b90cd
21:59 timotimo oh, neat
21:59 samcv no speed difference. but change i'd thought about making before
21:59 timotimo OK
21:59 samcv no measurable one at least
21:59 timotimo that's also only for "fancy" digits, right?
22:00 samcv yeah
22:00 samcv also when i redo the UCD, i'm going to use the Numerator property instead of the Numeric_Value property as well, so thought i might as well change it even if no speed change
22:01 samcv will probably get some speedup with the remake becuase it'll be an int proprety and won't have to atoi it.
22:01 samcv and Numeric_Value property is probably going bye bye
22:02 samcv at least if it doesn't hurt anything
22:02 samcv since it's just a string that holds a floating point number
22:02 timotimo ugh :)
22:02 samcv heh
22:02 timotimo comp_l_* are for unicode comparison stuff?
22:03 samcv what's comp_l_*?
22:03 timotimo a range of symbols i found with bloaty
22:03 samcv let me see what it does :P
22:03 timotimo oh, they only go from 0 to 21
22:04 timotimo maybe more interesting is comp_entry_0 through 375
22:04 samcv oh canonical composition tables
22:05 timotimo ok, they are all rather small, so they are probably packed tightly
22:05 timotimo 12 bytes for every comp_entry_*
22:05 timotimo and 12 for every uni_seq_*
22:05 samcv yeah
22:06 samcv ok i added uni_seq at least
22:06 timotimo except a few that are 16 bytes
22:06 timotimo oh, and a bunch that are 20 bytes
22:06 timotimo (and so on)
22:06 timotimo also 20-byte comp_entry_*
22:06 timotimo and 24 byte uni_seq_*
22:06 timotimo *shrug*
22:06 samcv argh and the comp_entry lines reorder on rebuilds
22:06 samcv so i can't git log -L very well
22:07 timotimo biggest two comp_entrys are 156 bytes
22:07 timotimo ugh, can we somehow sort 'em?
22:07 samcv by size?
22:08 samcv or just to make rebuilds not change order
22:08 samcv and make me go insane
22:08 timotimo not change order
22:09 samcv ok just make it reproducaable?. also curious if ordering could affect packing or if the compilier does that automatically
22:09 samcv at least for seperate arrays
22:10 timotimo absolutely no clue
22:11 timotimo if nm is right, the ordering is lexicographic
22:11 timotimo so 0, then 1, then 10, then 100, then 101, 102, ..., 11, 110, 111, 112, ..., 12, 120, ...
22:11 timotimo no, hold on
22:12 timotimo the addresses to the left of that are kin of scrambled
22:12 timotimo they are actually put in there in reverse, but in proper order
22:12 timotimo i.e. 00000000002ea150 r comp_entry_101
22:12 timotimo 00000000002ea160 r comp_entry_100
22:12 timotimo 00000000002ea170 r comp_entry_99
22:12 timotimo 00000000002ea180 r comp_entry_98
22:12 timotimo 00000000002ea190 r comp_entry_97
22:13 samcv k
22:18 samcv installing bloaty myself
22:23 Zoffix_ joined #moarvm
22:23 hoelzro joined #moarvm
22:23 leego joined #moarvm
22:27 samcv timotimo, what command to get all this info you're. sharing with me
22:28 timotimo one was bloaty -d symbols -n 0, the other was nm | sort
22:28 timotimo it's important to -n 0 or else you won't get the relatively tiny symbols
22:31 samcv 7.7%   407Ki codepoint_names
22:31 samcv not sure how it stores in 407Ki?
22:31 samcv based on my estimate we'd have used a lot more. but maybe it does some packing when it does it in a .so file
22:31 samcv so that could be
22:32 timotimo is codepoint_names still a list of strings?
22:32 timotimo in that case it'd have one pointer per entry
22:33 samcv yeah i guses it doesn't count that?
22:33 samcv it only counts data and not pointers?
22:34 timotimo well, the symbol codepoint_names only has the pointers
22:34 timotimo the individual strings must show up somewhere else
22:35 samcv ah ok. that makes sense
22:37 timotimo perhaps with an entry_* name or something? or are they truly anonymous?
22:37 timotimo well, i don't see 'em anywhere
22:37 timotimo i suppose because nm only shows things that have names
22:38 timotimo and those strings don't have symbol names to refer to them by
22:38 samcv yeah they don't
22:38 samcv they're just in a big array
22:39 timotimo that explains it, then
22:39 leedo joined #moarvm
22:39 samcv still unhelpful if it doesn't show what actually uses space
22:39 samcv not just the uh. things that use space but the uh
22:39 samcv pointers and stuff
22:43 timotimo hm, shouldn't it show up as a lot of usage for compileunit unicode.c?
22:45 samcv dunno
22:56 timotimo gonna go sleep
22:56 timotimo have a good one!
22:58 timotimo oh
22:58 samcv night
22:58 timotimo https://gist.github.com/cygx/9c94eefdf6300f726bc698655555d73b#file-graph-md - i wonder if we can figure this out together some time
22:59 timotimo maybe even find the bottleneck to one of these benchmarks and troll this graph by making it flatline :P
22:59 timotimo o/
22:59 Geth joined #moarvm
23:04 ZofBot joined #moarvm
23:04 yoleaux2 joined #moarvm
23:09 Zoffix joined #moarvm
23:22 samcv that benchmark is not fair
23:22 samcv %words = ($input ~~ m:g/(<-[\n\t]>+)\t(\N+)/).map(*>>.Str.Slip); when perl 5 version is much simpler
23:22 samcv perl 5 is %words = ($input =~ /([^\n\t]+)\t(\N+)/g);
23:32 samcv goes to 7.57s from 13.27s when i remove all that extra stuff. but i guess they're wanting the values to be strings or whatever
23:33 samcv i think it's a bad benchmark

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