Perl 6 - the future is here, just unevenly distributed

IRC log for #moarvm, 2015-09-23

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

All times shown according to UTC.

Time Nick Message
01:47 ilbot3 joined #moarvm
01:47 Topic for #moarvm is now https://github.com/moarvm/moarvm | IRC logs at  http://irclog.perlgeek.de/moarvm/today
01:52 zakharyas joined #moarvm
02:14 vendethiel joined #moarvm
02:47 harrow joined #moarvm
02:47 dalek MoarVM: e53dbbf | (Francois Perrad)++ | src/strings/decode_stream.c:
02:47 dalek MoarVM: remove useless initialization
02:47 dalek MoarVM: review: https://github.com/MoarVM/MoarVM/commit/e53dbbfdbe
02:47 dalek MoarVM: c3260bd | (Francois Perrad)++ | src/strings/normalize.c:
02:47 dalek MoarVM: const static variables
02:47 dalek MoarVM: review: https://github.com/MoarVM/MoarVM/commit/c3260bdc39
02:47 dalek MoarVM: e2e4d38 | (Francois Perrad)++ | src/strings/ops.c:
02:47 dalek MoarVM: remove unreachable code
02:47 dalek MoarVM: review: https://github.com/MoarVM/MoarVM/commit/e2e4d38b17
02:47 dalek MoarVM: 94dc853 | (Francois Perrad)++ | src/strings/ (17 files):
02:47 dalek MoarVM: const parameter of functions
02:47 dalek MoarVM: review: https://github.com/MoarVM/MoarVM/commit/94dc853052
06:17 nwc10 good *, #moarvm
06:18 japhb good *, nwc10
06:38 Ven joined #moarvm
07:10 Ven joined #moarvm
07:24 Ven joined #moarvm
07:36 brrt joined #moarvm
07:36 brrt \o
07:40 nwc10 o/
08:02 Ven joined #moarvm
08:04 * brrt is not happy at all about panda breakage :-(
09:06 Ven joined #moarvm
09:39 brrt joined #moarvm
10:02 brrt left #moarvm
11:13 Ven joined #moarvm
11:46 Ven joined #moarvm
11:46 Ven timotimo: news! after I updated my rakudo (yday's) I now get this error message:
11:46 Ven "Invalid GC status observed; aborting
11:47 Ven " while trying to run my Runaway project, using GTK::Simple. fwiw, all tests from GTK::Simple passed
12:37 Ven joined #moarvm
12:58 jnthn eek, loads of const clutter...
13:02 Ven joined #moarvm
13:03 [Coke] const is infectious.
13:04 jnthn Yes, that's why I tend to feel it's a mixed bag.
13:04 jnthn Modern compilers are pretty good at alias analysis.
13:08 jnthn I'd really rather it'd have been discussed whether to go on a const'ing spree rather than just doing it. But at least the patches doing it are easy to grep out if I decided we're worse off with it.
13:09 jnthn *decide
13:17 nwc10 jnthn: When looking at trying to make fakecutables, I was of the opinion that proper const *would* be useful
13:17 nwc10 as the fakecutable bytecode really wants to end up in a read-only section
13:17 nwc10 which means it needs to be const
13:18 nwc10 also, I *think* (but have not looked at the generated assember) that const on function pointer parameters does give the compiler information about what can be assumed not to change
13:19 nwc10 however, a lot would be needed / it wasn't clear how to spit things in just the right place to avoid a lot of churn/complexity
13:19 nwc10 however, my gut feeling was that there was a way to make a split
13:19 nwc10 but it was worth postponing until figuring how to do it properly
13:30 jnthn I guess my concern is partly that once you have it, you have to always think about it when adding stuff too (so as not to get a bunch of new warnings), and I'd rather the brain cycles went on things like upholding the VM's GC invariants than keeping the C compiler happy.
13:50 Ven joined #moarvm
13:51 Ven jnthn: new paper idea: get a student to research how to make both the same :
14:03 jnthn ;)
14:06 aiacob joined #moarvm
14:12 aiacob Has anyone else ran into this: https://gist.github.com/alinbsp/5900b2d10aa9c2f0a5d8 ?
14:14 [Coke] aiacob: OOC, what's your build directory?
14:14 jnthn aiacob: No, but it looks as if somehow the dyncall git submodule wasn't fetched
14:15 jnthn I'm not quite sure how that can happen, since Configure shouldn't work out if it's missing that
14:15 [Coke] (are you building from git?)
14:15 aiacob It's fetched.
14:15 jnthn (And if you have a release tarball it should be included)
14:15 aiacob Yes from git.
14:15 jnthn OK, that was my best guess for now "/bin/sh: 1: ./configure: not found" could happen.
14:15 jnthn *how
14:16 [Coke] are you building in a directory with a space in it?
14:16 aiacob Nope.
14:16 [Coke] (or on some distro we don't normally build on?)
14:16 aiacob Ubuntu, 32bit
14:17 [Coke] huh.
14:17 jnthn Does ls 3rdparty/dyncall/configure show up the configure script?
14:18 aiacob I'll try to digg deeper and let you know if I find what's happening.
14:19 aiacob jnth: yes it's there.
14:19 Ven joined #moarvm
14:19 aiacob weird
14:21 jnthn Very
14:41 dalek MoarVM: 0a66439 | jnthn++ | src/core/args.c:
14:41 dalek MoarVM: Remove non-6y int/num coercion.
14:41 dalek MoarVM:
14:41 dalek MoarVM: Thankfully, we don't seem to have accidentally relied on them in NQP.
14:41 dalek MoarVM: review: https://github.com/MoarVM/MoarVM/commit/0a66439709
14:41 dalek MoarVM: c2ce079 | jnthn++ | src/core/args.c:
14:41 dalek MoarVM: Don't introspect, just do, in arg unbox.
14:41 dalek MoarVM:
14:41 dalek MoarVM: Especially as we now have allomorphs in Perl 6, which can unbox in
14:41 dalek MoarVM: multiple ways.
14:41 dalek MoarVM: review: https://github.com/MoarVM/MoarVM/commit/c2ce079cad
14:41 dalek MoarVM: d15a446 | jnthn++ | src/core/args.c:
14:53 aiacob Ok, I've got it building. It turned out that configure had a dos line ending on the first line. No idea how it got there.
15:11 Ven joined #moarvm
15:14 dalek MoarVM: 51dcbe4 | jnthn++ | src/strings/ops.c:
15:14 dalek MoarVM: Fix mis-nested negation in CCLASS_PRINTING.
15:14 dalek MoarVM: review: https://github.com/MoarVM/MoarVM/commit/51dcbe4a41
15:24 lizmat jnthn: while you're busy here, how would you consider creating negated classes, such as CCLASS_NONALPHANUMERIC
15:24 timotimo but don't we have a "findnotcclass" already?
15:24 jnthn lizmat: Why? We already...what timo said :)
15:25 lizmat well, if you look at .words, and you want to separate on non-alphanumeric, rather than whitespace
15:25 jnthn Really?
15:25 lizmat you would need to make a switch to use either findcclass or findnotcclass
15:26 jnthn 'it's the cat's mother's pet monkey" # how many words?
15:26 lizmat m: "it's the cat's mother's pet monkey".words.elems.say
15:26 camelia rakudo-moar 564a25: OUTPUT«6␤»
15:27 jnthn Right, and ' is non-alphanumeric
15:27 timotimo we already generate either the one or the other from the regex engine
15:27 lizmat that's because it looks for whitespace
15:27 lizmat m: "foo; bar;".words.say
15:27 camelia rakudo-moar 564a25: OUTPUT«(foo; bar;)␤»
15:27 jnthn I thought it was meant to by design? :)
15:28 lizmat if you would want "foo" "bar" in that case
15:28 jnthn Mebbe I remember wrong :)
15:28 lizmat ?
15:28 jnthn I thought .words was meant to use whitespace to find boundaries?
15:28 lizmat yes, it does
15:28 lizmat but that's maybe not always what you want
15:29 TimToady it is; she's talking about .comb(/\W+/)
15:29 jnthn Ah
15:29 TimToady scared me too :
15:29 lizmat right  :)
15:29 TimToady :)
15:29 lizmat sorry to scare you guys
15:29 timotimo 3scary5you?
15:29 jnthn I thought \W compiled into something pretty much as efficient as \w though
15:29 timotimo i expected that, too
15:30 timotimo and there's still the thing moritz wanted to prototype with me a long time ago for the cclass stuff
15:30 timotimo multi-level bitfields and such
15:30 jnthn Like it checks the unicode char prop and then branches with if/unless to the backtracker depending on whether it's \w or \W
15:30 jnthn iirc, anyways
15:31 TimToady there are certainly places that can be optimized in there, but maybe that's not our top priority this week
15:31 jnthn :)
15:32 jnthn Yes, I've got a big pile of RTs that are more semantic than performance in nature to worry about :)
15:33 timotimo bugs me a whole lot
15:33 timotimo i want to fix all the performance, but i can't
15:33 lizmat 6 '"words".IO.slurp.words.join.chars.say'   # 0.523 wallclock
15:33 timotimo not even close
15:33 lizmat 6 '"words".IO.slurp.comb(/\w+/).join.chars.say'   # 8.169 wallclock
15:33 timotimo lizmat is very performance these days
15:33 jnthn That's either really good or really bad depending on how many words are in "words".IO ;)
15:34 jnthn Oh, it's a comparison :)
15:34 lizmat 235886
15:34 jnthn m: say 8.169 / 235886
15:34 camelia rakudo-moar 564a25: OUTPUT«0.000034631␤»
15:34 timotimo so .words is already a crapton more efficient than .comb(/\w+/), is what that says, right?
15:34 jnthn Pretty much
15:34 timotimo but joining two hundred thousand words into a string, that's impressive to work in that short of a time
15:34 jnthn Question is whether it's the regex or whether it's comb, though
15:35 timotimo at least for my perl6 standards :)
15:35 jnthn Or both :)
15:35 timotimo i imagine we have a whole bunch of overhead when calling into and out of the regex
15:35 timotimo remember it creates a match object every time
15:35 jnthn Well, regexes are just "normal code"
15:35 jnthn I dunno if it needs to create the Match in that case
15:35 timotimo whereas comb probably just calls findcclass (or some such) and keeps around a single native niteger
15:35 timotimo it doesn't need to, but it probably will
15:35 jnthn I mean, all we need to know is where the Cursor was
15:35 jnthn So we've some optimization potential there.
15:36 lizmat anyways, my point is that by having a non-alphanumeric charclass,, the same code could be used in words, just change the charclass constant in the findcclass/findnotcclass calls
15:36 timotimo aye, i've wished for making regexes cheaper if we just want to find out "match yes/no"
15:36 timotimo "the same code"?
15:38 timotimo you mean we should make comb smart enough that we no longer need special code to implement .words?
15:38 lizmat look at src/core/Str.pm , lines 909 and 914
15:39 lizmat if I would want to support alphanumeric splitting
15:39 hoelzro o/ #moarvm
15:39 lizmat I would have to make switch there between using findcclass/findnotccleas
15:39 lizmat if there would be a non-alphanumeric class, only the constant used there, would need to be changed
15:40 timotimo oh
15:40 timotimo is there a good reason that's a while { }?
15:40 timotimo looks like it's just copy-pasted from push-exactly?
15:41 lizmat hmmm... good point  :)
15:41 timotimo i don't think it generates much worse code than if, though
15:42 lizmat timotimo++
15:48 Ven joined #moarvm
16:33 Ven joined #moarvm
17:30 Peter_R joined #moarvm
17:48 vendethiel joined #moarvm
18:17 FROGGS[mobile] joined #moarvm
20:31 colomon joined #moarvm
20:56 colomon joined #moarvm
21:35 colomon joined #moarvm
22:04 psch joined #moarvm
22:06 TimToady joined #moarvm
22:19 colomon joined #moarvm

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