»ö« 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 negative␤Str␤»
..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 negative␤Str␤»
..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 negative␤Str␤»
..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