»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'perl6: say 3;' or rakudo:, niecza:, std:, or /msg camelia perl6: ... | irclog: irc.perl6.org | UTF-8 is our friend! Set by sorear on 25 June 2013. |
|||
00:09
raiph left
00:10
xenoterracide left
00:12
Psyche^_ joined
00:16
Psyche^ left
00:21
xenoterracide joined,
raiph joined
00:28
wbill left
00:48
Rotwang left
00:50
Rotwang joined
00:53
telex left
00:56
telex joined
00:59
raiph left
01:01
Rotwang left
01:03
Rotwang joined
01:05
berekuk left,
dayangkun left
01:06
berekuk joined
01:07
virtualsue left
01:08
Rotwang left
01:17
berekuk left
01:18
johnny5_ left
01:19
johnny5_ joined
01:22
johnny5_ left
01:23
johnny5_ joined
01:57
logie joined
02:10
benabik joined
02:23
cibs_ left,
cibs joined
02:43
jeffreykegler joined
02:49
jeffreykegler left
02:54
logie left
02:58
LordVorp left
03:02
ggoebel15 left
03:04
LordVorp joined
03:19
xenoterracide left
04:00
logie joined
04:04
logie left,
kaleem joined
04:09
sftp left
04:12
sftp joined
04:14
SamuraiJack joined
04:17
sftp left
04:18
sftp joined
04:21
preflex_ joined,
ChanServ sets mode: +v preflex_
04:22
preflex left,
preflex_ is now known as preflex
04:37
johnny5_ left
04:38
johnny5_ joined
04:43
virtualsue joined
04:57
benabik left
04:58
johnny5_ left
04:59
virtualsue left,
johnny5_ joined
05:01
johnny5_ left
05:02
johnny5_ joined
05:04
Ben_Goldberg left
05:11
johnny5_ left
05:12
johnny5_ joined
05:16
johnny5_ left
05:17
johnny5_ joined
05:18
kaleem left
05:20
[Sno] left
05:39
johnny5_ left
05:40
johnny5_ joined
05:49
ssutch left
05:51
SamuraiJack_ joined
05:54
SamuraiJack left
05:55
raiph joined
05:59
SamuraiJack__ joined
06:03
SamuraiJack_ left
06:17
darutoko joined
06:21
dmol joined
06:25
ssutch joined
06:26
[Sno] joined
06:32
raiph left
|
|||
moritz | \o | 06:48 | |
JimmyZ | o/ | 06:49 | |
06:50
kaleem joined
06:58
FROGGS joined,
wbill joined
07:16
cognominal joined
07:18
atroxaper joined
07:22
SamuraiJack joined,
dayangkun joined
07:23
dayangkun left
07:24
SamuraiJack__ left,
SamuraiJack_ joined
07:28
SamuraiJack left
|
|||
FROGGS | preflex: ask TimToady Can you please look/reply on that? gist.github.com/FROGGS/6464777#comment-947906 | 07:47 | |
preflex | Consider it noted. | ||
FROGGS | thanks | ||
07:50
zakharyas joined
|
|||
FROGGS | preflex: tell arnsholt interesting for you too: gist.github.com/FROGGS/6464777#comment-947906 | 07:57 | |
preflex | Consider it noted. | ||
FROGGS | if anybody else has a minute, I'd appreciate every comment/musing about that :o) | 08:03 | |
first I was thinking that there could be a pack/unpack implementation that work for rakudo *and* v5, but that does not seems to be the case | |||
08:14
nnunley left
08:18
ssutch left
08:19
salv0 left
08:20
salv0 joined
08:28
kurahaupo left
08:40
kurahaupo joined
09:14
tobyink joined
|
|||
timotimo | o/ | 09:18 | |
atroxaper | timotimo o/ | 09:19 | |
FROGGS | o/ | ||
atroxaper | Do you know why i can't call .hash() with NQPMatch? | 09:20 | |
r: say Perl6::Grammar.parse('my $b=4;', :actions(Perl6::Actions.new())).hash; | |||
camelia | rakudo-jvm 2c40f6: OUTPUT«Could not find symbol '&Grammar' in any find_method_fallback at gen/jvm/Metamodel.nqp:2607 in any find_method at gen/jvm/Metamodel.nqp:945 in any at gen/jvm/BOOTSTRAP.nqp:1658 in block at /tmp/P3pwhJAduo:1 in any eval at gen/jvm/stage2…» | ||
..rakudo-parrot 2c40f6: OUTPUT«Could not find symbol '&Grammar' in method <anon> at gen/parrot/CORE.setting:11987 in any at gen/parrot/Metamodel.nqp:2691 in any find_method_fallback at gen/parrot/Metamodel.nqp:2679 in any find_method at gen/parrot/Metamodel.nqp:946…» | |||
atroxaper | r: use Perl6::Grammar:from<NQP>; use Perl6::Actions:from<NQP>; say Perl6::Grammar.parse('my $b=4;', :actions(Perl6::Actions.new())).hash; | 09:21 | |
camelia | rakudo-parrot 2c40f6: OUTPUT«Nominal type check failed for parameter '$got'; expected Any but got NQPMatch instead in method BUILD at gen/parrot/CORE.setting:8359 in method new at gen/parrot/CORE.setting:8358 in method reify at gen/parrot/CORE.setting:8480 in method …» | ||
..rakudo-jvm 2c40f6: OUTPUT«Nominal type check failed for parameter '$got' in method BUILD at gen/jvm/CORE.setting:8334 in block at gen/jvm/CORE.setting:8451 in block at gen/jvm/CORE.setting:7106 in block at gen/jvm/CORE.setting:7106 in block at gen/jvm/CORE.se…» | |||
timotimo | NQPMatch doesn't know how to turn itself into a perl6 hash | 09:30 | |
FROGGS | r: say nqp::hllize(Perl6::Grammar.parse('my $b=4;', :actions(Perl6::Actions.new()))).hash; | 09:31 | |
camelia | rakudo-jvm 2c40f6: OUTPUT«Could not find symbol '&Grammar' in any find_method_fallback at gen/jvm/Metamodel.nqp:2607 in any find_method at gen/jvm/Metamodel.nqp:945 in any at gen/jvm/BOOTSTRAP.nqp:1658 in block at /tmp/udqbZhEHSS:1 in any eval at gen/jvm/stage2…» | ||
..rakudo-parrot 2c40f6: OUTPUT«Could not find symbol '&Grammar' in method <anon> at gen/parrot/CORE.setting:11987 in any at gen/parrot/Metamodel.nqp:2691 in any find_method_fallback at gen/parrot/Metamodel.nqp:2679 in any find_method at gen/parrot/Metamodel.nqp:946…» | |||
FROGGS | r: use Perl6::Grammar:from<NQP>; use Perl6::Actions:from<NQP>; say nqp::hllize(Perl6::Grammar.parse('my $b=4;', :actions(Perl6::Actions.new()))).hash; | ||
camelia | rakudo-parrot 2c40f6: OUTPUT«Nominal type check failed for parameter '$got'; expected Any but got NQPMatch instead in method BUILD at gen/parrot/CORE.setting:8359 in method new at gen/parrot/CORE.setting:8358 in method reify at gen/parrot/CORE.setting:8480 in method …» | ||
..rakudo-jvm 2c40f6: OUTPUT«Nominal type check failed for parameter '$got' in method BUILD at gen/jvm/CORE.setting:8334 in block at gen/jvm/CORE.setting:8451 in block at gen/jvm/CORE.setting:7106 in block at gen/jvm/CORE.setting:7106 in block at gen/jvm/CORE.se…» | |||
atroxaper | r: use Perl6::Grammar:from<NQP>; use Perl6::Actions:from<NQP>; say Perl6::Grammar.parse('my $b=4;', :actions(Perl6::Actions.new())).hash; | 09:38 | |
camelia | rakudo-parrot 2c40f6: OUTPUT«Nominal type check failed for parameter '$got'; expected Any but got NQPMatch instead in method BUILD at gen/parrot/CORE.setting:8359 in method new at gen/parrot/CORE.setting:8358 in method reify at gen/parrot/CORE.setting:8480 in method …» | ||
..rakudo-jvm 2c40f6: OUTPUT«Nominal type check failed for parameter '$got' in method BUILD at gen/jvm/CORE.setting:8334 in block at gen/jvm/CORE.setting:8451 in block at gen/jvm/CORE.setting:7106 in block at gen/jvm/CORE.setting:7106 in block at gen/jvm/CORE.se…» | |||
09:39
cognominal left
09:51
fhelmberger joined
09:54
dakkar joined
|
|||
FROGGS | rp: use Perl6::Grammar:from<NQP>; use Perl6::Actions:from<NQP>; my Mu $x := Perl6::Grammar.parse('my $b=4;', :actions(Perl6::Actions.new())); say .Str for $x | 09:54 | |
camelia | rakudo-parrot 2c40f6: OUTPUT«my $b=4;» | ||
FROGGS | rp: use Perl6::Grammar:from<NQP>; use Perl6::Actions:from<NQP>; my Mu $x := Perl6::Grammar.parse('my $b=4; $b++', :actions(Perl6::Actions.new())); say .Str for $x | ||
camelia | rakudo-parrot 2c40f6: OUTPUT«my $b=4; $b++» | 09:55 | |
timotimo | so how do i find out how to fix my jvm implementation of charrange? | 10:04 | |
10:09
brrt joined
|
|||
timotimo puts checks and throws before every array creation in the compiler | 10:15 | ||
no help | |||
at least in JASTToJVMBytecode | 10:16 | ||
i wish it gave me a filename and line for that exception :( | 10:26 | ||
i don't even know where i would have to put code to get that in the output | 10:27 | ||
10:28
Rotwang joined
|
|||
timotimo coaxed a line number out of jdb | 10:32 | ||
10:32
tobyink left
|
|||
timotimo | processMethod calls visitMaxs from ASM with (0, 0) and *that* causes the negativeArraySizeException | 10:34 | |
great. | |||
10:34
spider-mario joined
|
|||
timotimo | you try to pop an argument from the stack but there is no argument on stack :( | 10:35 | |
but i double-checked that everything is right :( | 10:37 | ||
10:45
berekuk joined
|
|||
lizmat | good *, #perl6! | 10:47 | |
timotimo | hey liz :) | 10:48 | |
lizmat | timotimo o/ | ||
lizmat just realized that (+=) for atomic updates is bogus | |||
nwc10 | moritz: thanks for the reality check on JVM star. | 10:49 | |
it's a bit :-/ | |||
in that, for within-the-community marketing reasons, my opinion (*opinion*) is that it's important to be able to deliver a JVM Star, to capitalise on the growing awareness of the concurrency features | 10:50 | ||
10:50
denis_boyun joined
|
|||
timotimo | yeah :( | 10:51 | |
nwc10 | I have to apologise that I really have no time to help deliver on this. | 10:52 | |
timotimo | come over to arnsholt's place to do housework for him, cooking and cleaning and walking the dog, then he'll have more time to spend on nativecall :D | 10:53 | |
nwc10 | I don't have time to do that *either* | ||
timotimo | ;) | ||
nwc10 | however much I like walking dogs (at least, well behaved dogs) | ||
10:55
Rotwang left
|
|||
dalek | p/charrange_jvm: da40731 | (Timo Paulssen)++ | src/ (2 files): first attempt at charrange on JVM |
10:58 | |
timotimo | if anyone wants to help, i'm at my wit's end here | 10:59 | |
dalek | ecs: 82ae35f | (Elizabeth Mattijsen)++ | S17-concurrency.pod: Introduce "is cas" variable trait |
||
lizmat | timotimo: I'm afraid I'm more of a JVM noob than you | ||
10:59
pernatiy left
|
|||
timotimo | i've already tried the rubber duck method | 11:00 | |
11:00
tgt joined
|
|||
FROGGS | if there are any LHFs I would be proud to pick them... but... are there any? | 11:01 | |
timotimo | FROGGS: i'm guessing you don't know terribly much about jvm bytecode? | 11:02 | |
FROGGS | no :/ | 11:03 | |
nwc10 | moritz: are you able to break out any of the Star blockers into "tickets others could do"? | ||
FROGGS | neither about Java/JVM in general | ||
nwc10: that would be awesome! | |||
having a concrete task would definitely help | |||
nwc10 | I'm not sure if I'm asking a stupidly obvious (or obviously pointless) question | 11:04 | |
but my suspicion is that some of this stuff is more scripting/automating than really JVM domain specific | |||
timotimo | moritz mentioned something about Configure.pl changes that need to happen | ||
11:04
Rotwang joined
|
|||
FROGGS | 1) I guess the first thing would be to fiddle with the build system to somehow make a release at all | 11:04 | |
timotimo | but nothing specific that i know of | ||
nwc10 | but that might mean that it needs more familarity/confidence with the build system | ||
FROGGS | 2) then we'd try to build modules, and fix those which are fixable without nativecall implementation | 11:05 | |
and "2)" should expose some LHFs | 11:06 | ||
timotimo | so i've been thinking: if the right qregex node existed, i could implement an optimizer for QRegex that turns a scan + a node that it "knows" how to negate into a smarter/faster scan. also, doing things like turning "...foo" into "search for foo and step 3 back" would also be possible, but the NFA creator must be told how to handle that | 11:10 | |
it would be best if i could just say "for the NFA, use these nodes, for creating the actual regex code, use these. they mean the same" | 11:11 | ||
FROGGS | like a QAST::WVal? | 11:14 | |
timotimo | you mean QAST::Want? | ||
FROGGS | err yes | ||
timotimo | yeah, kind of like that | 11:15 | |
I guess that could totally be re-used for this! | 11:16 | ||
FROGGS | reused++ | 11:17 | |
timotimo | hm, the "...foo" doesn't have to be a "search for foo, then step 3 back", it could also be "after scanning, look 3 ahead to see if there's “foo” there" | 11:18 | |
11:18
atroxaper left
|
|||
timotimo | it's a bit less performant (because it doesn't use boyer-moore), but it would still be a little speed boost in that case, and it would probably be simpler to implement | 11:18 | |
FROGGS | string_at_pos("foo", pos+3), yeah | ||
(sortof) | |||
timotimo | yes :) | ||
FROGGS | yeah, that would work for everything that has a known width... | 11:19 | |
timotimo | yeah | ||
11:20
brrt left
|
|||
timotimo | i'll just go ahead and implement negated simple charranges first instead | 11:21 | |
11:22
kurahaupo left,
bbkr_ joined
|
|||
timotimo | turns out no negated simple charranges actually exist in nqp nor rakudo | 11:36 | |
oh well. maybe some users will have regexes like that | |||
11:45
kurahaupo joined
11:46
xenoterracide joined
|
|||
timotimo | negated charranges are also faster than their enumcharlist equivalents (20s vs 25s for 1000x 100_000 non-matching characters, 5s vs 17s for 1000x 100_000 matching characters) | 11:46 | |
11:50
dram joined
|
|||
timotimo | (and that is if the non-matching character is found early in the enumcharlist. if i had used the latest, it would probably be a more dramatic difference) | 11:51 | |
FROGGS | cool | 11:52 | |
very very cool! | |||
lizmat | timotimo++ | ||
timotimo | :) | ||
it doesn't make any difference at all in stage parse, though | |||
FROGGS | can we apply this technique to grammar rules like: token foo { \W "something" } ? | 11:53 | |
timotimo | \W and friends are already specially implemented | ||
FROGGS | I guess stage parse is just about method call overhead... | 11:54 | |
ahh, k | |||
nwc10 | rakudo++ # sufficiently simple and clear that mere mortals can hack on the regex engine | ||
11:55
dmol left
|
|||
FROGGS | yeah, its design is quite awesome | 11:55 | |
(written in itself)++ | 11:56 | ||
timotimo | the debug output that spews the bytecode before compilation doesn't have the mnemonics >_< | 11:57 | |
r: (1, 2, 3, 4).hash.say | 11:59 | ||
camelia | rakudo-parrot 2c40f6: OUTPUT«("1" => 2, "3" => 4).hash» | ||
..rakudo-jvm 2c40f6: OUTPUT«("3" => 4, "1" => 2).hash» | |||
timotimo | r: (1, 2, 3, 4).hash.invert.say | ||
camelia | rakudo-parrot 2c40f6: OUTPUT«2 => "1" 4 => "3"» | ||
..rakudo-jvm 2c40f6: OUTPUT«4 => "3" 2 => "1"» | |||
12:00
denis_boyun left
|
|||
timotimo | how do i tell lines() to operate on the first argument if it's given, otherwise on stdin? | 12:00 | |
ah, lines already does that | |||
nice. | |||
12:05
pernatiy joined,
kivutar joined
|
|||
diakopter | lizmat: there are atomic add instructions | 12:07 | |
timotimo | sprunge.us/RjZD <- have some jvm bytecodes for you. the wrongness is somewhere around the only mention of charCodeAt | 12:09 | |
codePointAt* | 12:10 | ||
12:19
kivutar left
12:38
cognominal joined,
kaleem left
12:44
dmol joined
12:59
SamuraiJack_ left
13:02
tipdbmp left
13:05
kivutar joined
13:12
dmol left,
raiph joined
13:15
araujo left,
araujo joined
13:20
kivutar left
13:21
dmol joined
13:24
Rotwang left
13:27
raiph left
13:31
Rotwang joined
13:32
cognominal left
13:36
raiph joined
13:42
smash__ is now known as smash
13:46
sqirrel joined
13:49
kivutar joined
13:51
ajr joined,
ajr is now known as Guest34367
13:52
Guest34367 is now known as ajr_
14:07
fhelmberger_ joined
14:11
fhelmberger left
14:15
denis_boyun joined
|
|||
colomon | .u 𠀡 | 14:18 | |
14:21
fhelmberger_ left,
fhelmberger joined
|
|||
colomon is having fun writing Unicode tests in C++ | 14:22 | ||
mathw | sounds like the kind of thing you have to pay attention to | 14:23 | |
timotimo is having no fun trying to make his bytecodes work properly | 14:24 | ||
colomon | mathw: I discovered my text editor doesn't seem to handle codepoints greater than FFFF. | 14:25 | |
mathw: my code, on the other hand, hand no problem with that. | |||
actually, the only bug I've found in my testing so far was failing to handle codepoints between 80 and FF. | 14:26 | ||
and that's fixed. | |||
colomon is now fantasizing about how beautiful this code would be in p6 | 14:27 | ||
14:30
sqirrel left,
pippo joined
|
|||
dalek | p: f8a27c0 | (Timo Paulssen)++ | src/vm/moar/QAST/QASTRegexCompilerMAST.nqp: stub charrange for moarvm. |
14:31 | |
timotimo | now nqp-moar should also build again. | ||
pippo | o/ #perl6 | ||
timotimo | o/ pippo | ||
colomon | \o | 14:32 | |
pippo | Hi timotimo. I hav seen you testing this earlier "(1, 2, 3, 4).hash.say" | ||
timotimo | yup | ||
i needed a perl6 script that pretty-prints the debug output of the jvm bytecode creator. it doesn't have the mnemonics | 14:33 | ||
so i copypasted the nqp::hash from the translator and changed nqp::hash(...) into (...).hash | |||
pippo | I have one question. (1, 2, 1, 4).hash.say does not return what I expect. | 14:34 | |
14:34
raiph left
|
|||
timotimo | r: (1, 2, 1, 4).hash.say | 14:34 | |
camelia | rakudo-parrot 2c40f6, rakudo-jvm 2c40f6: OUTPUT«("1" => 4).hash» | ||
timotimo | why not? | ||
pippo | timotmo I would expect somthing like my %h; %h.push(1, 2, 1, 4); instead | 14:35 | |
timotimo | if you want these semantics, you will have to use .push instead | ||
pippo | r: my %h; %h.push(1, 2, 1, 4); say %h | ||
timotimo | i don't think the constructor should do that for you | ||
camelia | rakudo-parrot 2c40f6, rakudo-jvm 2c40f6: OUTPUT«("1" => [2, 4]).hash» | ||
pippo | If it should be like this. Then OK. | 14:37 | |
dalek | p/charrange_jvm: 643eb6f | (Timo Paulssen)++ | src/vm/moar/QAST/QASTRegexCompilerMAST.nqp: stub charrange for moarvm. |
14:38 | |
p/charrange_jvm: e5c7395 | (Timo Paulssen)++ | src/ (3 files): implement negated charrange on parrot and jvm jvm part is still b0rked, though |
|||
[Coke] spent a few moments trying to get star's modules-test to work, no luck yet. | |||
timotimo | bah, derp. | ||
mathw | colomon: the best advice about unicode is to let someone else i.e. an established unicode library handle it if at all possible | 14:39 | |
dalek | p/charrange_jvm: 8f0d8f4 | (Timo Paulssen)++ | src/ (2 files): first attempt at charrange on JVM |
||
p/charrange_jvm: 8e4f995 | (Timo Paulssen)++ | src/ (3 files): implement negated charrange on parrot and jvm jvm part is still b0rked, though |
|||
mathw | colomon: good way to get a headache | ||
colomon | mathw: as far as I know there is no available library for converting utf-8 to STEP-style pure-ASCII strings and vice-versa. | 14:40 | |
14:40
logie joined
|
|||
colomon is sorely tempted to write such a library in p6, but really should not stop doing lucrative contract work to do so. | 14:42 | ||
mathw | colomon: there will be soon, though? :) | ||
14:42
dmol left,
bluescreen10 joined
|
|||
colomon | this code would be so much more beautiful in p6... | 14:42 | |
14:43
btyler joined
|
|||
timotimo | also probably 100_000x slower | 14:43 | |
Rotwang | hi | ||
mathw | colomon: lots of code is more beautiful in P6 | 14:44 | |
Rotwang | can I create constant class attribute? e.g. constant $!foo = 5; doesn't work inside a class | ||
colomon | timotimo: I bet it would only be 100x slower at most | ||
timotimo | maybe on rakudo-jvm. | ||
14:44
PacoAir joined
|
|||
timotimo | Rotwang: maybe our constant $foo = 5 may work? | 14:45 | |
colomon | it's certainly a better idea, unless you intend to have a different constant $!foo for each class object. | 14:46 | |
Rotwang | timotimo: indeed it did work, thanks | ||
timotimo | yw :) | ||
timotimo is afk for a bit | |||
pippo | lizmat: ping | 14:47 | |
14:52
denis_boyun left,
sqirrel joined,
logie left
14:53
denisboyun joined,
benabik joined
14:59
sqirrel left
15:04
raiph joined
15:05
logie joined
15:13
kaleem joined
15:22
jnap joined
15:25
zakharyas1 joined
15:26
ajr_ left,
ajr joined
15:27
ajr is now known as Guest82245,
Guest82245 is now known as ajr_,
nnunley joined
15:31
kbaker joined
15:35
kaleem left
15:39
spider-mario left
|
|||
timotimo | jnthn: it would be super swell if you could tell me what i'm screwing up in the charrange_jvm branch? | 15:40 | |
15:41
benabik left
15:43
kaare_ joined
|
|||
FROGGS thinks that timotimo++ meant that it would be totally champion or good-oh or hunky-dory or spiffing! | 15:49 | ||
15:50
thou joined
15:52
ajr_ left
15:53
ajr_ joined
15:55
araujo left
15:56
araujo joined
15:57
denis_boyun joined,
denisboyun left
16:02
betterworld left,
betterworld joined
16:06
lue left
16:08
fhelmberger left
16:09
fhelmberger joined,
REPLeffect left
16:10
ggoebel15 joined
16:15
zakharyas1 left
|
|||
timotimo | are the lookup tables for boyer moore string search cached? | 16:18 | |
hm, calculating them is done in C land on parrot, i bet | |||
that's probably a small enough overhead to not need caching at all | |||
16:20
FROGGS left
16:24
kurahaupo left
|
|||
timotimo | i wonder if boyer-moore can be generalised to a subset of regex in a clever fashion | 16:25 | |
16:25
[Sno] left
|
|||
moritz thinks that timotimo looks at entirely the wrong places to optimize :( | 16:26 | ||
timotimo | probably :) | ||
that's just things my mind comes up with randomly | |||
16:39
REPLeffect joined
|
|||
colomon | do we have good rakudo jvm profiles yet? | 16:40 | |
timotimo | what's a profile? | ||
16:42
kivutar left
16:43
SmokeMachine left
16:45
FROGGS joined
|
|||
timotimo | er | 16:48 | |
i think i'm looking at a bug right here | |||
looks like it's not honoring zerowidth if it matches \r\n | 16:49 | ||
nqp: say("\r\na" ~~ /<?[\w]>'\r\na'/); | |||
camelia | nqp-moarvm: OUTPUT«Substring length (-6) cannot be negativeStr» | ||
..nqp-jvm, nqp-parrot: OUTPUT«» | |||
timotimo | nqp: say('\r\n'); | 16:50 | |
camelia | nqp-moarvm, nqp-jvm, nqp-parrot: OUTPUT«\r\n» | ||
timotimo | nqp: say("\r\n"); | ||
camelia | nqp-moarvm, nqp-jvm, nqp-parrot: OUTPUT« | ||
timotimo | nqp: say("\r\na" ~~ /<?[\w]>"\r\na"/); | ||
camelia | nqp-moarvm: OUTPUT«Substring length (-6) cannot be negativeStr» | ||
..nqp-jvm, nqp-parrot: OUTPUT«» | |||
timotimo | nqp: say("\r\na" ~~ /"\r\na"/); | ||
camelia | nqp-moarvm, nqp-jvm, nqp-parrot: OUTPUT« | ||
16:51
fhelmberger_ joined
|
|||
timotimo | ha! i has found a bug! | 16:51 | |
\o/ | |||
this one i can fix on the train ride tonight | |||
Rotwang | here is something I REALLY didn't expect: | ||
16:51
fhelmberger left
|
|||
Rotwang | r: sub quux (Mu $foo) { say $foo.WHAT }; quux ( "a", ) | 16:51 | |
camelia | rakudo-parrot 2c40f6, rakudo-jvm 2c40f6: OUTPUT«(Parcel)» | ||
Rotwang | r: sub quux (Mu $foo) { say $foo.WHAT }; quux( "a", ) | ||
camelia | rakudo-parrot 2c40f6, rakudo-jvm 2c40f6: OUTPUT«(Str)» | ||
timotimo | spaces are significant | 16:52 | |
Rotwang | now I see -__- | ||
timotimo | you can either write quux("a") or you can write quux "a" | ||
if you write quux ("a") that's different if there are , in there | |||
16:52
tgt left
|
|||
Rotwang | perl6 is full of surprises [; | 16:53 | |
just spent around half an hour to find that because isa_ok from Test.pm didn't work | 16:54 | ||
16:55
jaffa4 joined,
denis_boyun left
|
|||
jaffa4 | hi all | 16:55 | |
Is there true and false in Perl6? | |||
16:55
fhelmberger_ left
|
|||
timotimo | r: say Bool.pick; | 16:55 | |
camelia | rakudo-parrot 2c40f6, rakudo-jvm 2c40f6: OUTPUT«False» | ||
16:56
denisboyun joined
16:57
btyler left
|
|||
hoelzro | jaffa4: True | 16:57 | |
FROGGS .oO( use help; quux ( "a", "b" ) # would warn to keep beginners on trak ) | |||
hoelzro | ;) | ||
FROGGS .oO( maybe even: use any-help-there-is; ) | |||
timotimo | er, i used \w instead of \n | 17:03 | |
nqp: say("\r\na" ~~ /<?[\n]>"\r\na"/); | |||
camelia | nqp-moarvm: OUTPUT«Substring length (-6) cannot be negativeStr» | ||
..nqp-jvm, nqp-parrot: OUTPUT«» | |||
timotimo | it's the same either way | ||
jaffa4 | so True | ||
Rotwang | FROGGS: if there was a book similar to the lama book it would make learning curve much flatter | ||
timotimo | nqp: say("\r\na" ~~ /"\r\na"/); | ||
camelia | nqp-moarvm, nqp-jvm, nqp-parrot: OUTPUT« | ||
17:04
iSlug joined
17:05
zakharyas left
17:07
btyler joined
|
|||
timotimo | we should implement a perl6 module for this new and upcoming very efficient compression format: m68k.soup.io/post/365158786/For-exa...ld-like-to | 17:14 | |
diakopter | lizmat++ # (is cas) # seems implementable efficiently (eventually) | 17:16 | |
17:16
logie left
|
|||
timotimo | diakopter: can you help with jvm bytecode generation? | 17:19 | |
FROGGS | Rotwang: I agree, but nor I am a good writer nor do I know writers | 17:20 | |
17:21
nebuchadnezzar left
17:22
fhelmberger joined
|
|||
timotimo is also not good at writing, he thinks | 17:22 | ||
but it's a thing where you can get good with practice, i think | |||
17:25
SamuraiJack_ joined
17:27
woolfy1 joined
|
|||
Rotwang | timotimo: so practice your writing skills on new perl6 introductory book ^__^ | 17:27 | |
17:28
woolfy left
17:30
raiph left
17:40
kivutar joined
17:43
[Sno] joined
17:52
tgt joined
17:57
dakkar left
17:59
SamuraiJack_ left
18:06
ssutch joined
18:09
fhelmberger left
18:11
nebuchadnezzar joined
18:12
nebuchadnezzar left
18:13
dmol joined
|
|||
TimToady 's brane is completely jet-lagged from the hackers conference, even though it was only a 45-minute drive away--couldn't've had anything to do with staying up half the night gabbing... | 18:16 | ||
preflex | TimToady: you have 1 new message. '/msg preflex messages' to read it. | ||
TimToady | FROGGS: need more brane to think on it deeply, but how is sint32 different from int32? | 18:25 | |
(btw, I always backlog, so msging is redundant) | 18:26 | ||
((I keep telling myself that redundancy is a good thing...)) | 18:27 | ||
pippo | TimToady: I have a question for you :-). If (1,2,1,4).hash is the hash representation of the list shall it return {"1"=>4 } or {"1" => [2,4]}? | 18:29 | |
FROGGS | TimToady: sint32 has no special meaning there... replaced it by int32 | 18:30 | |
18:33
lowpro30 joined
18:34
jeffreykegler joined
|
|||
timotimo | Rotwang: i'm waiting for rakudo-js to become browser-able to make an interactive thingie happen | 18:37 | |
18:37
Eily left
18:38
lue joined
|
|||
lue | hello world o/ | 18:38 | |
FROGGS | hi lue | 18:39 | |
jaffa4 | panda, which files should I edit to add a module? | ||
pippo | o/ lue | ||
TimToady | pippo: normal hash only stringifies the key, though you can suppress that as well | 18:43 | |
18:43
lizmat left
|
|||
TimToady | oh, wait | 18:43 | |
bad line wrap so I didn't read your Q right | |||
dalek | osystem: a915ad1 | jaffa4++ | META.list: Update META.list |
18:44 | |
TimToady | it should be the first; only .push has the second semantics | ||
pippo | OK. Thank you | ||
:-) | 18:45 | ||
TimToady | though how I misread [2,4] as "4" (even with the linewrap) is a mystery | 18:46 | |
probably a paris-in-the-the-spring moment | 18:47 | ||
timotimo | jetlagged brane probably | ||
TimToady | the two are not mutually exclusive :) | ||
pippo | :-) Time to tak a rest ? | ||
TimToady | there is never enough rest for a BDFL... :) | ||
pippo | BDFL ? | 18:48 | |
TimToady | we have to plan most of our rest for after we've gone the way of all flesh :) | ||
18:50
Eily joined,
lizmat joined
|
|||
pippo | :-) | 18:50 | |
o/ lizmat. | 18:51 | ||
timotimo | TimToady: i'm considering introducing QAST::Want to QRegex to signify that a section has a declarative half and an equivalent, but perhaps faster, non-declarative half. does that sounds like a terrible idea? | ||
so, ...foo would be turned into whatever it was before for the NFA, but the WANT would have a second child "optimized" and a third would have a string-equal-at-offset assertion before the ... and the "foo" may then be dropped | 18:52 | ||
TimToady is not familiar enough with QRegex to have a valid opinion | |||
timotimo | ah, that's all right then | 18:53 | |
it's basically mostly QAST::Regex nodes for everything | |||
18:54
ajr_ left
18:55
denis_boyun__ joined
|
|||
TimToady | after a chat with Don Knuth over the weekend, maybe I should break down the barrier we erected in 2001 between me and the implementations, and plan to do some code review, and maybe I'll get a clue as to how to make things faster | 18:56 | |
18:56
denisboyun left
|
|||
timotimo | you've seen plenty an optimization over your lifetime, i'm sure. that'll come in handy i bet :) | 18:57 | |
pippo | \o/ perl6 faster !!! | ||
TimToady | well, after 13 years I doubt it would qualify as premature optimization :) | 18:58 | |
more likely, of course, is I'll merely discover that I've made it impossible :) | |||
timotimo | how do i .gist a string in nqp-land? :o | ||
18:58
ajr joined
18:59
ajr is now known as Guest76247
19:05
logie joined,
bluescreen10 left
|
|||
dalek | p: 4df65de | (Timo Paulssen)++ | src/vm/parrot/QAST/Compiler.nqp: don't move the cursor for zerowidth match of \r\n Fixes #120511 |
19:06 | |
synopsebot | Link: rt.perl.org/rt3//Public/Bug/Displa...?id=120511 | ||
19:07
jeffreykegler left
|
|||
timotimo | from my git log it doesn't look like we actually merged cursless into master! | 19:08 | |
moritz | we didn't? | 19:09 | |
19:09
rurban_ left
|
|||
FROGGS | ohh, ++TimToady | 19:09 | |
timotimo: we did | 19:10 | ||
otherwise I'd still be at 140s instead of 125s for stage parse | |||
moritz | commit 1820f2eb7272cfeafb071b06cfa3e1d0efab2360, "Bump NQP_REVISION to get latest qregex cursor and closure fixes. jnthn++" | 19:11 | |
$ git merge origin/cursless | |||
Already up-to-date. | |||
and 03f81f8249120859c89bbaab6289cbb87e3c5c11 was the merge commit | |||
FROGGS | timotimo: what do you need the .gist of a string for? | 19:12 | |
timotimo | i was wrong | ||
19:12
darutoko left
|
|||
timotimo | FROGGS: testing :) | 19:12 | |
for science | |||
moritz deletes the remote branch | |||
FROGGS | rp: say "hello".gist | ||
camelia | rakudo-parrot 2c40f6: OUTPUT«hello» | ||
timotimo | yeah, we actually did merge it in. i don't know why i thought otherwise | ||
19:12
logie left
|
|||
FROGGS | how is that different to .Str ? | 19:12 | |
moritz | but the NQP cursless branch is not merged | ||
FROGGS | O.o | 19:13 | |
moritz | FROGGS: for strings not at all | ||
FROGGS | timotimo: see? :P --^ | ||
timotimo | it^H^H^H^Hnqp: say("\r\n".Str); | ||
escape sequences | |||
FROGGS | ahhh | ||
timotimo | the branch itself is not merged, but all the commits are in already it seems | 19:14 | |
FROGGS | timotimo: I thought that just happens here with camelia | ||
timotimo | the JVM problem of my charrange bytecode generation is driving me mad | 19:15 | |
FROGGS | TimToady: I too think that rakudo has settled enough for the most things already | ||
timotimo | i'm certain i didn't do anything wrong that i'd know of, but there must be something i'm missing | ||
FROGGS | timotimo: maybe you can use some sort of p5 script? eval "nqp-p -e '$@'" | perl -CSDL -E 'while(<>) { s/[\r\n]/\x{2424}/g; print }' | 19:19 | |
put an improved version in a nqp-debug.pl or so | 19:20 | ||
19:22
Guest76247 is now known as ajr_
|
|||
timotimo | enh | 19:24 | |
diakopter | TimToady: mwhaha you can start with reviewing some iteration(s) of the p5 interop; oh wait you mostly did that :P | 19:26 | |
FROGGS | I have suh a thing that invokes perl6 with -Mv5 | ||
timotimo | bad reception here :( | 19:28 | |
i've figured out something great | |||
the qregex NFA stuff is generated in the actions of P6Regex | 19:29 | ||
that means when i get my grubby hands on it in the Optimizer, i can do whatever transformations i want and as long as they're safe, the NFA won't be affected | |||
nwc10 | TimToady: I'm not familiar with the reason(s) why a barrier was a good thing (if I knew, I've forgotten, sorry), but do those reasons still apply? | ||
TimToady | "we already know how you implement things, and we don't want Perl 6 implemented that way" :) | 19:30 | |
timotimo | 7 | 19:31 | |
TimToady | but it was also good that I did not pick winners over that time | ||
nwc10 | the latter was my guess - at this time it seems that there is one viable winner | ||
and whilst someone might write a better Perl 6 in the future, for the next couple of years what matters is Rakudo's completeness, performance and uptake. And without *that*, there likely won't be a future where someone writes a better Perl 6 | 19:32 | ||
TimToady | though I still use niecza when something needs to run fast | ||
19:32
pernatiy left,
rurban joined
|
|||
nwc10 | but the former also applies - at this time, it would be hard to subvert the Rakudo implementation into using a lexer, yacc, smoke and mirrors | 19:33 | |
written in C | |||
TimToady | nor would I want to :) | ||
FROGGS | nwc10++ # exactly | ||
moritz | and increasing the bus factor of rakudo also wouldn't hurt | 19:34 | |
nwc10 | I know it's selection bias, but I keep spotting the benefits of a self-hosting implementation | ||
FROGGS .oO( love the language - hack the language ) | 19:35 | ||
moritz | .oO( love the language - hack the compiler ) |
19:37 | |
19:41
wtw joined
|
|||
TimToady | diakopter: if you want more review, iterate it s'more :P | 19:43 | |
19:44
ajr_ left
19:45
rurban1 joined
19:48
denysonique left
|
|||
diakopter | ok | 19:48 | |
lue | I can only think that add_parent isn't adding the right something, but I'm not sure -> gist.github.com/lue/c0923d2d1498fce7f19c | 19:50 | |
19:57
rurban1 left
20:10
jeff_s2 left
|
|||
PerlJam | TimToady: If you wanted to remove the implementation barrier, you could kill two birds by starting to maintain niecza yourself :) | 20:10 | |
moritz | lue: try to add a debug print in add_parent | 20:11 | |
diakopter | .oO( the bird known as niecza ) |
||
moritz | and why use an array of parents when you only want to support one parent class? | 20:12 | |
lue | "Null PMC access in get_string()" (I remember this being an issue yesterday. That I can't see anything once it's put in a QAST::Var) | ||
moritz: the exercises told me to :) | 20:13 | ||
That is, I can print the value of $<ident>[1] in the action method, but whatever's passed to the PHPish is completely unprintable :( | 20:14 | ||
lue hates how he has to keep bugging everybody about these exercises... | 20:18 | ||
timotimo switches to another train | 20:19 | ||
lue: i also didn't do every exercise in the course :( | |||
PerlJam | lue, timotimo: what course? | 20:20 | |
(I'm guessing that thing that lizmat and jnthn put together) | |||
lue | timotimo: the only thing I've not done so far is fiddling with the terminators so that I don't need semicolons where I shouldn't need them. I've been insistent on doing everything else so far though :) | ||
PerlJam: it's a "get to know NQP" course from Edument. Don't have a link to it on-hand though. | 20:21 | ||
jnthn | evening, #perl6 | 20:22 | |
FROGGS | hi jnthn | 20:23 | |
jnthn yawns | |||
20:24
tipdbmp joined
|
|||
timotimo | good for you :) lue++ | 20:29 | |
20:30
iSlug left
|
|||
timotimo is about to create a regex optimizer | 20:30 | ||
lue | timotimo: well, I've got an annoying NULL PMC ACCESS to deal with right now :P . (The supplied rubyish example doesn't have inheritance, and NQP's own ClassHOW plays with these C3MRO thingys way more complex than what I'm doing.) | 20:31 | |
timotimo | try using jvm | ||
jnthn | That probably just turns it into a null pointer exception :P | 20:32 | |
timotimo: You still having problems with code-gen on JVM? | 20:33 | ||
timotimo | yes | 20:34 | |
ASM is trying to tell me i pop too much by raising a negative stay size expression | 20:35 | ||
jnthn | yes, it's error reporting is crap | ||
timotimo | excuse the fat fingered typing | ||
jnthn | common issues are different stack sizes either side of a conditional | ||
timotimo | i've tried to make sure that all paths through the different gotos end up with 0 stuff left on the stack and may have made a mistake there | 20:36 | |
sprunge.us/RjZD - this is an excerpt, the one i generated |