01:47
ilbot3 joined
01:52
zakharyas joined
02:14
vendethiel joined
02:47
harrow joined
|
|||
dalek | arVM: e53dbbf | (Francois Perrad)++ | src/strings/decode_stream.c: remove useless initialization |
02:47 | |
arVM: c3260bd | (Francois Perrad)++ | src/strings/normalize.c: const static variables |
|||
arVM: e2e4d38 | (Francois Perrad)++ | src/strings/ops.c: remove unreachable code |
|||
arVM: 94dc853 | (Francois Perrad)++ | src/strings/ (17 files): const parameter of functions |
|||
nwc10 | good *, #moarvm | 06:17 | |
japhb | good *, nwc10 | 06:18 | |
06:38
Ven joined
07:10
Ven joined
07:24
Ven joined
07:36
brrt joined
|
|||
brrt | \o | 07:36 | |
nwc10 | o/ | 07:40 | |
08:02
Ven joined
|
|||
brrt is not happy at all about panda breakage :-( | 08:04 | ||
09:06
Ven joined
09:39
brrt joined
10:02
brrt left
11:13
Ven joined
11:46
Ven joined
|
|||
Ven | timotimo: news! after I updated my rakudo (yday's) I now get this error message: | 11:46 | |
"Invalid GC status observed; aborting | |||
" while trying to run my Runaway project, using GTK::Simple. fwiw, all tests from GTK::Simple passed | 11:47 | ||
12:37
Ven joined
|
|||
jnthn | eek, loads of const clutter... | 12:58 | |
13:02
Ven joined
|
|||
[Coke] | const is infectious. | 13:03 | |
jnthn | Yes, that's why I tend to feel it's a mixed bag. | 13:04 | |
Modern compilers are pretty good at alias analysis. | |||
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:08 | ||
*decide | 13:09 | ||
nwc10 | jnthn: When looking at trying to make fakecutables, I was of the opinion that proper const *would* be useful | 13:17 | |
as the fakecutable bytecode really wants to end up in a read-only section | |||
which means it needs to be const | |||
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:18 | ||
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 | ||
however, my gut feeling was that there was a way to make a split | |||
but it was worth postponing until figuring how to do it properly | |||
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:30 | |
13:50
Ven joined
|
|||
Ven | jnthn: new paper idea: get a student to research how to make both the same : | 13:51 | |
jnthn | ;) | 14:03 | |
14:06
aiacob joined
|
|||
aiacob | Has anyone else ran into this: gist.github.com/alinbsp/5900b2d10aa9c2f0a5d8 ? | 14:12 | |
[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 | ||
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?) | ||
aiacob | It's fetched. | ||
jnthn | (And if you have a release tarball it should be included) | ||
aiacob | Yes from git. | ||
jnthn | OK, that was my best guess for now "/bin/sh: 1: ./configure: not found" could happen. | ||
*how | |||
[Coke] | are you building in a directory with a space in it? | 14:16 | |
aiacob | Nope. | ||
[Coke] | (or on some distro we don't normally build on?) | ||
aiacob | Ubuntu, 32bit | ||
[Coke] | huh. | 14:17 | |
jnthn | Does ls 3rdparty/dyncall/configure show up the configure script? | ||
aiacob | I'll try to digg deeper and let you know if I find what's happening. | 14:18 | |
jnth: yes it's there. | 14:19 | ||
14:19
Ven joined
|
|||
aiacob | weird | 14:19 | |
jnthn | Very | 14:21 | |
dalek | arVM: 0a66439 | jnthn++ | src/core/args.c: Remove non-6y int/num coercion. Thankfully, we don't seem to have accidentally relied on them in NQP. |
14:41 | |
arVM: c2ce079 | jnthn++ | src/core/args.c: Don't introspect, just do, in arg unbox. Especially as we now have allomorphs in Perl 6, which can unbox in multiple ways. |
|||
arVM: d15a446 | jnthn++ | src/core/args.c: 51dcbe4 | jnthn++ | src/strings/ops.c: |
|||
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. | 14:53 | |
15:11
Ven joined
|
|||
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? | ||
jnthn | lizmat: Why? We already...what timo said :) | ||
lizmat | well, if you look at .words, and you want to separate on non-alphanumeric, rather than whitespace | 15:25 | |
jnthn | Really? | ||
lizmat | you would need to make a switch to use either findcclass or findnotcclass | ||
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 | ||
camelia | rakudo-moar 564a25: OUTPUT«6» | ||
jnthn | Right, and ' is non-alphanumeric | 15:27 | |
timotimo | we already generate either the one or the other from the regex engine | ||
lizmat | that's because it looks for whitespace | ||
m: "foo; bar;".words.say | |||
camelia | rakudo-moar 564a25: OUTPUT«(foo; bar;)» | ||
jnthn | I thought it was meant to by design? :) | ||
lizmat | if you would want "foo" "bar" in that case | 15:28 | |
jnthn | Mebbe I remember wrong :) | ||
lizmat | ? | ||
jnthn | I thought .words was meant to use whitespace to find boundaries? | ||
lizmat | yes, it does | ||
but that's maybe not always what you want | |||
TimToady | it is; she's talking about .comb(/\W+/) | 15:29 | |
jnthn | Ah | ||
TimToady | scared me too : | ||
lizmat | right :) | ||
TimToady | :) | ||
lizmat | sorry to scare you guys | ||
timotimo | 3scary5you? | ||
jnthn | I thought \W compiled into something pretty much as efficient as \w though | ||
timotimo | i expected that, too | ||
and there's still the thing moritz wanted to prototype with me a long time ago for the cclass stuff | 15:30 | ||
multi-level bitfields and such | |||
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 | ||
iirc, anyways | |||
TimToady | there are certainly places that can be optimized in there, but maybe that's not our top priority this week | 15:31 | |
jnthn | :) | ||
Yes, I've got a big pile of RTs that are more semantic than performance in nature to worry about :) | 15:32 | ||
timotimo | bugs me a whole lot | 15:33 | |
i want to fix all the performance, but i can't | |||
lizmat | 6 '"words".IO.slurp.words.join.chars.say' # 0.523 wallclock | ||
timotimo | not even close | ||
lizmat | 6 '"words".IO.slurp.comb(/\w+/).join.chars.say' # 8.169 wallclock | ||
timotimo | lizmat is very performance these days | ||
jnthn | That's either really good or really bad depending on how many words are in "words".IO ;) | ||
Oh, it's a comparison :) | 15:34 | ||
lizmat | 235886 | ||
jnthn | m: say 8.169 / 235886 | ||
camelia | rakudo-moar 564a25: OUTPUT«0.000034631» | ||
timotimo | so .words is already a crapton more efficient than .comb(/\w+/), is what that says, right? | ||
jnthn | Pretty much | ||
timotimo | but joining two hundred thousand words into a string, that's impressive to work in that short of a time | ||
jnthn | Question is whether it's the regex or whether it's comb, though | ||
timotimo | at least for my perl6 standards :) | 15:35 | |
jnthn | Or both :) | ||
timotimo | i imagine we have a whole bunch of overhead when calling into and out of the regex | ||
remember it creates a match object every time | |||
jnthn | Well, regexes are just "normal code" | ||
I dunno if it needs to create the Match in that case | |||
timotimo | whereas comb probably just calls findcclass (or some such) and keeps around a single native niteger | ||
it doesn't need to, but it probably will | |||
jnthn | I mean, all we need to know is where the Cursor was | ||
So we've some optimization potential there. | |||
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" | ||
"the same code"? | |||
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 | ||
if I would want to support alphanumeric splitting | 15:39 | ||
hoelzro | o/ #moarvm | ||
lizmat | I would have to make switch there between using findcclass/findnotccleas | ||
if there would be a non-alphanumeric class, only the constant used there, would need to be changed | |||
timotimo | oh | 15:40 | |
is there a good reason that's a while { }? | |||
looks like it's just copy-pasted from push-exactly? | |||
lizmat | hmmm... good point :) | 15:41 | |
timotimo | i don't think it generates much worse code than if, though | ||
lizmat | timotimo++ | 15:42 | |
15:48
Ven joined
16:33
Ven joined
17:30
Peter_R joined
17:48
vendethiel joined
18:17
FROGGS[mobile] joined
20:31
colomon joined
20:56
colomon joined
21:35
colomon joined
22:04
psch joined
22:06
TimToady joined
22:19
colomon joined
|